Asterisk 1.4 - 10.0

Installation, Programmierung und Betrieb

Reihe: Open Source Library

Rechtlicher Hinweis

Copyright (c) 2006 - 2009 by Stefan Wintermeyer <sw@wintermeyer-consulting.de>
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

Widmung

Für Gunhild und Aurelius.
Vorwort
1. Das How-To zu diesem Buch
1.1. Was ist Asterisk?
1.1.1. Unterschied zwischen klassischer Telefonanlage und Asterisk
1.2. Welche Kapitel sollten Sie lesen, und womit sollten Sie anfangen?
1.2.1. Absoluter Asterisk-Anfänger
1.2.2. Leser mit etwas Asterisk-Erfahrung
1.2.3. Der Asterisk-Profi
1.3. Updates und Versionen des Buches
1.4. Mitwirken und Feedback
1.4.1. Arten der Hilfe
1.4.2. FAQ für freiwillige Helfer
1.5. Hilfe, ich habe immer noch ein Problem mit Asterisk!
2. Hello World
2.1. Einleitung
2.1.1. Asterisk 1.4 oder 1.6?
2.2. Asterisk auf dem Server installieren
2.3. Hello-World im CLI aufrufen
2.3.1. Asterisk konfigurieren
2.3.2. Asterisk starten und Hello-World abrufen
2.4. Hello-World mit einem SIP-Telefon
2.4.1. sip.conf und das SIP-Telefon konfigurieren
2.4.2. Asterisk und Telefon starten
2.4.3. Der Test
2.4.4. Vom CLI aus das Telefon anrufen
2.4.5. Analyse
2.4.6. Kommentare in der Konfiguration
2.5. Eine Minimal-Telefonanlage mit zwei SIP-Telefonen
2.5.1. ... und jetzt mit einem Anrufbeantworter
2.6. Rechteverwaltung mit Contexten
2.6.1. Quelle: Jedes Telefon ist in einem Context
2.6.2. Ziel: Contexte in der extensions.conf
2.7. Telefonate vom und in das öffentliche Netz
2.7.1. In das öffentliche Telefonnetz telefonieren
2.7.2. Gespräche vom öffentlichen Netz entgegennehmen
3. Dialplan – die Grundlagen
3.1. Context
3.1.1. Syntax
3.2. Extension
3.2.1. Syntax
3.2.2. Grundlegende Applikationen
3.2.3. Priorität
3.3. Pattern Matching
3.3.1. Syntax
3.3.2. Testen mit dialplan show
3.3.3. Wann matcht welches Pattern?
3.4. Includes im Dialplan
3.4.1. Syntax
3.4.2. Beispiel
3.4.3. Die Reihenfolge beim Include
3.4.4. Includes zeitgesteuert
3.5. Die Variable ${EXTEN} und die Funktion ${CALLERID(num)}
3.5.1. ${EXTEN}
3.5.2. ${CALLERID(num)}
4. Deutsche Anpassungen
4.1. Töne und Signale
4.2. Deutsche Sprachbausteine
4.2.1. Download und Installation deutscher Sprachprompts
4.2.2. Konfiguration der deutschen Prompts
4.2.3. Verzeichnisstruktur der Sprachbausteine
5. Case-Study einer Beispielfirma
5.1. Einleitung
5.2. Die Apfelmus GmbH
5.3. Der Rufnummernplan
5.4. Auswahl der Infrastruktur
5.4.1. Netzwerk
5.4.2. Server-Hardware
5.5. Die Grundkonfiguration
5.5.1. sip.conf für fast 100 Teilnehmer
5.5.2. Der Wählplan (Dialplan)
5.6. Wie geht es weiter?
5.7. FAQ
6. Programmieren im Dialplan
6.1. Kleines Programmierer-Howto
6.1.1. Programmstruktur
6.1.2. Variablen
6.1.3. Labels und Goto()
6.1.4. While()-Schleifen
6.1.5. GotoIf()-Bedingung
6.1.6. Gosub()-Unterprogramme
6.2. Variablen
6.2.1. Variablen in einer Extension auslesen
6.2.2. Allgemeines
6.2.3. Globale Variablen in der extensions.conf definieren
6.2.4. Variablen mit Set() definieren
6.2.5. Vererbung von Channel-Variablen
6.2.6. Feste Channel-Variablen
6.2.7. Variablenmanipulation
6.3. Besondere Extensions
6.3.1. Die h-Extension
6.3.2. Die i-Extension
6.3.3. Die o- und die a-Extension
6.3.4. Die t- und die T-Extension
6.3.5. Die s-Extension
6.4. Makro
6.4.1. Makro-Basics
6.5. Priority Jumping ist deprecated!
7. AEL
7.1. CLI-Befehle für AEL
7.2. aelparse
7.3. extensions.conf <-> extensions.ael
7.3.1. Zeilenende/Befehlsende
7.3.2. Kontexte, Extensions, Prioritäten
7.3.3. Kommentare
7.3.4. Includes – Andere Contexte einbinden
7.3.5. Globale Variablen
7.3.6. Ausdrücke und Zuweisungen
7.3.7. Labels, goto und jump
7.3.8. Bedingte Anweisungen (conditionals)
7.3.9. Schleifen (loops)
7.3.10. Makros (macros)
7.3.11. Hints
7.3.12. Filtern nach Anrufernummer
7.4. extensions.ael oder extensions.conf?
8. Protokolle
8.1. Einleitung
8.2. Netzwerkprotokolle
8.2.1. Transmission Control Protocol (TCP)
8.2.2. User Datagram Protocol (UDP)
8.3. Channels
8.4. Peers, Users und Friends
8.5. IAX versus SIP
8.6. SIP
8.6.1. Das SIP-NAT-Problem
8.6.2. SIP-Geräte in der extensions.conf
8.6.3. Globale Einstellungen
8.6.4. Geräte-Einstellungen
8.7. IAX
8.7.1. Warum IAX?
8.7.2. Beispiel für eine IAX-Konfiguration
8.7.3. Globale Einstellungen
8.7.4. Channel-Einstellungen
9. Codecs
9.1. Einleitung
9.2. Was macht ein Codec?
9.3. Performance
9.4. Konfiguration des Codecs
9.4.1. Beispiel mit einem festen Codec
9.4.2. Beispiel mit mehreren Codecs zur Auswahl
9.5. Die wichtigsten Codecs
9.6. Bandbreite und Trunking
10. ISDN
10.1. Einleitung
10.1.1. Minimalgrundlagen von ISDN
10.2. Welche ISDN-Karte soll ich nehmen?
10.2.1. Empfehlung für den Privathaushalt
10.2.2. Empfehlung für den geschäftlichen Einsatz
10.2.3. Hersteller und Treiber
10.2.4. Installationsanleitungen für ISDN-Karten
11. Analoge Telefonie
11.1. Einleitung
11.2. ATA (Analog-Telefon-Adapter)
11.3. Installationsanleitungen für Analog-Karten
12. Media Gateways
12.1. Einleitung
12.2. Vorteile
12.3. Nachteile
12.4. Fazit
13. Voicemail-System
13.1. Einleitung
13.2. Beispielanwendungen
13.2.1. Die Voicemailbox der Familie Meier
13.2.2. Die Apfelmus GmbH
13.3. Applikationen
13.3.1. VoiceMail()
13.3.2. VoiceMailMain()
13.4. voicemail.conf
13.4.1. [general]
13.4.2. [zonemessages]
13.4.3. Freie Contexte
13.4.4. Mailbox-Definition
13.5. Telefonbuch (Dial-by-Name)
13.5.1. Syntax
13.5.2. Funktionsweise
13.6. voicemail.conf als Passwortspeicher
13.7. Mini-VoiceMail (MiniVM)
13.7.1. Verzeichnisstruktur
13.7.2. minivm.conf
13.7.3. CLI-Befehle für Mini-VoiceMail
13.7.4. MiniVM-Applikationen und -Funktionen
14. Interactive-Voice-Response-Systeme (IVR)
14.1. Eine einfache IVR
14.1.1. Unterschied zwischen Playback() und Background()
14.1.2. Unterschied zwischen 10 und 1000
14.1.3. Falscheingaben (die i-Extension)
14.1.4. Pausen
14.2. Mehrstufige IVR-Systeme
14.2.1. Tiefe der IVR
14.3. Text-to-Speech (TTS)
14.3.1. Installation von Cepstral Text-to-Speech
14.3.2. Beispiele und Tests
14.3.3. Pausen in Texten
15. Die Asterisk-Datenbank (AstDB)
15.1. Einleitung
15.1.1. Performance
15.2. Die Asterisk-Datenbank
15.2.1. Werte in die Datenbank schreiben
15.2.2. Werte aus der Datenbank lesen
15.2.3. Werte aus der Datenbank löschen
15.3. Datenbankzugriff vom CLI
15.3.1. Werte in die Datenbank schreiben
15.3.2. Werte aus der Datenbank lesen
15.3.3. Werte aus der Datenbank löschen
15.3.4. Datenbankinhalt anzeigen
15.4. Datenbankzugriff von der Shell
15.5. Backup der Datenbank
15.6. Anwendungsbeispiel Call-Forwarding
15.6.1. Einfaches Call-Forwarding
15.6.2. Komplexes Call-Forwarding
15.7. Anwendungsbeispiel Calling-Card
16. Warteschleifen für Call-Center
16.1. Extension zum Musiktest
16.2. musiconhold.conf
16.3. queues.conf
16.3.1. musiconhold
16.3.2. announce
16.3.3. strategy
16.3.4. servicelevel
16.3.5. context
16.3.6. timeout
16.3.7. retry
16.3.8. weight
16.3.9. wrapuptime
16.3.10. maxlen
16.3.11. announce-frequency
16.3.12. announce-holdtime
16.3.13. announce-round-seconds
16.3.14. Sprachbausteine
16.3.15. periodic-announce-frequency
16.3.16. monitor-format
16.3.17. monitor-join
16.3.18. joinempty
16.3.19. leavewhenempty
16.3.20. eventwhencalled
16.3.21. eventmemberstatus
16.3.22. reportholdtime
16.3.23. memberdelay
16.3.24. timeoutrestart
16.3.25. autopause
16.3.26. ringinuse
16.3.27. member
16.4. agents.conf
16.4.1. autologoff
16.4.2. ackcall
16.4.3. endcall
16.4.4. wrapuptime
16.4.5. musiconhold
16.4.6. updatecdr
16.4.7. recordagentcalls
16.4.8. recordformat
16.4.9. createlink
16.4.10. urlprefix
16.4.11. savecallsin
16.4.12. agent
16.5. extensions.conf
16.6. Log-Datei
16.6.1. Queue-Log in MySQL importieren
17. Features
17.1. Transfer von Gesprächen
17.1.1. Blind Transfer
17.1.2. Attended Transfer
17.2. Gespräche parken
18. Telefonkonferenzen
18.1. Einleitung
18.2. Installation und das Timing-Device
18.3. Definition von Konferenzräumen
18.4. Zugang im Dialplan
18.5. Anzahl der Teilnehmer ansagen
19. Asterisk fernsteuern
19.1. asterisk -rx "Befehl"
19.1.1. Beispiel
19.2. Call Files
19.2.1. Parameter
19.2.2. Call Files in der Zukunft aufrufen
19.2.3. Beispiel Weckruf
19.3. Das Manager-Interface (AMI)
19.3.1. Beispiel: Anzahl der Mailbox-Nachrichten mit Expect abfragen
19.3.2. StarAstAPI für PHP
19.3.3. Beispiel: Anzahl der Mailbox-Nachrichten mit PHP abfragen
19.4. Der Asynchronous Javascript Asterisk Manager (AJAM)
19.4.1. Beispiel: Anzahl der Mailbox-Nachrichten per AJAM abfragen
19.4.2. Hinweise zu AJAX und AJAM
20. Asterisk Gateway Interface (AGI)
20.1. Datenströme
20.1.1. STDIN
20.1.2. STDOUT
20.1.3. STDERR
20.2. Verzeichnisse und Rechte
20.3. Aufruf eines AGI-Skripts im Dialplan
20.4. Beispiele in verschiedenen Programmiersprachen
20.4.1. Perl
20.4.2. PHP
20.4.3. Ruby und Adhearsion
20.4.4. Andere Programmiersprachen
21. Fax-Server
21.1. Faxserver mit IAXmodem und HylaFax
21.1.1. Installation von IAXmodem
21.1.2. Installation von HylaFax
21.1.3. Faxe empfangen
21.1.4. Faxe versenden
21.1.5. Empfangene Faxe als E-Mail versenden
21.1.6. Hylafax-FAQ
22. SIP-Telefone
22.1. Einleitung
22.2. Snom VoIP-Telefone
22.2.1. Konfiguration von Asterisk
22.2.2. Konfiguration der Telefone
22.2.3. Unterschiedliche Klingeltöne
22.2.4. Benutzerdefinierte Menüführung
22.2.5. Telefone per Fernwartung neu starten
22.2.6. Weitere verfügbare Applikationen
23. BLF, Hints, Pickup
23.1. Ansteuerung der LEDs
23.1.1. sip.conf
23.1.2. Hints
23.2. Verfahren für SIP-Subscriptions
23.3. Konfiguration der Telefone für BLF
23.4. Test der Hints
23.5. Heranholen eines Anrufs (Pickup)
23.5.1. extensions.conf für Pickup
23.5.2. Konfiguration des Telefons für Pickup
23.5.3. Heranholen von einer Gruppe
23.6. Gezielte Ansteuerung der LEDs
24. Danksagungen
24.1. Einleitung
24.2. Danksagungen von Stefan Wintermeyer
24.3. Danksagungen von Philipp Kempgen
Glossar
A. Installationsanleitungen für Asterisk 1.4, 1.6, 1.8 und 10.0
A.1. Installation von Asterisk 1.4.x auf Debian Linux
A.2. Installation von Asterisk 1.6.x auf Debian Linux
A.3. Installation von Asterisk 1.8 auf Debian Linux
A.4. Installation von Asterisk 10.0 auf Debian Linux
B. Spezielle Installationsanleitungen für Asterisk mit ISDN- oder Analog-Karten
B.1. Installation der Sangoma B700 FlexBRI
B.1.1. Die FlexBRI-Karte einbauen
B.1.2. Build-Umgebung
B.1.3. Quellen von Zaptel und Asterisk
B.1.4. Installation von Wanpipe
B.1.5. Konfiguration für die FlexBRI
B.1.6. Wichtige Befehle für Wanpipe
B.2. Installation der Sangoma A500 ISDN-Karte
B.2.1. Einbau der A500-Karte
B.2.2. Build-Umgebung
B.2.3. Quellen von Asterisk
B.2.4. Installation von Wanpipe
B.2.5. Silent-Modus-Installation
B.2.6. Interaktiver-Modus-Installation
B.2.7. Runlevel
B.2.8. Konfiguration für die A500
B.2.9. Wichtige Befehle für Wanpipe
B.3. Installation der Digium B410p
B.3.1. Konfiguration der ISDN-Karte
B.3.2. Konfiguration der ISDN-Anschlussart
B.4. Installation der Digium TDM400p Analog-Karte
B.4.1. Installation
B.4.2. Beispiel-Dialplan
B.5. Installation einer BeroFix-Karte
B.5.1. Konfiguration der ISDN-Karte
C. Applikationen im Dialplan
C.1. AbsoluteTimeout()
C.2. AddQueueMember()
C.3. ADSIProg()
C.4. AgentCallbackLogin()
C.5. AgentLogin()
C.6. AgentMonitorOutgoing()
C.7. AGI()
C.8. AlarmReceiver()
C.9. AMD()
C.10. Answer()
C.11. AppendCDRUserField()
C.12. Authenticate()
C.13. Background()
C.14. BackgroundDetect()
C.15. Bridge()
C.16. Busy()
C.17. ChangeMonitor()
C.18. ChanIsAvail()
C.19. ChannelRedirect()
C.20. ChanSpy()
C.21. CheckGroup()
C.22. ClearHash()
C.23. Congestion()
C.24. ContinueWhile()
C.25. ControlPlayback()
C.26. Curl()
C.27. Cut()
C.28. DAHDIBarge()
C.29. DAHDIRAS()
C.30. DAHDIScan()
C.31. DAHDISendKeypadFacility()
C.32. DateTime()
C.33. DBdel()
C.34. DBdeltree()
C.35. DBget()
C.36. DBput()
C.37. DeadAGI()
C.38. Dial()
C.39. Dictate()
C.40. DigitTimeout()
C.41. Directory()
C.42. DISA()
C.43. DumpChan()
C.44. DUNDiLookup()
C.45. EAGI()
C.46. Echo()
C.47. EndWhile()
C.48. EnumLookup()
C.49. Eval()
C.50. Exec()
C.51. ExecIf()
C.52. ExecIfTime()
C.53. ExitWhile()
C.54. ExtenSpy()
C.55. ExternalIVR()
C.56. Festival()
C.57. Flash()
C.58. FollowMe()
C.59. ForkCDR()
C.60. GetCPEID()
C.61. GetGroupCount()
C.62. GetGroupMatchCount()
C.63. Gosub()
C.64. GosubIf()
C.65. Goto()
C.66. GotoIf()
C.67. GotoIfTime()
C.68. Hangup()
C.69. HasNewVoicemail()
C.70. HasVoicemail()
C.71. IAX2Provision()
C.72. ICES()
C.73. ImportVar()
C.74. Incomplete()
C.75. JabberSend()
C.76. JabberStatus()
C.77. KeepAlive()
C.78. Log()
C.79. LookupBlacklist()
C.80. LookupCIDName()
C.81. Macro()
C.82. MacroExclusive()
C.83. MacroExit()
C.84. MacroIf()
C.85. MailboxExists()
C.86. Math()
C.87. MD5()
C.88. MD5Check()
C.89. MeetMe()
C.90. MeetMeAdmin()
C.91. MeetMeChannelAdmin()
C.92. MeetMeCount()
C.93. Milliwatt()
C.94. MinivmAccMess()
C.95. MinivmDelete()
C.96. MinivmGreet()
C.97. MinivmNotify()
C.98. MinivmRecord()
C.99. MixMonitor()
C.100. Monitor()
C.101. Morsecode()
C.102. MP3Player()
C.103. MSet()
C.104. MusicOnHold()
C.105. NBScat()
C.106. NoCDR()
C.107. NoOp()
C.108. ODBCFinish()
C.109. Page()
C.110. Park()
C.111. ParkAndAnnounce()
C.112. ParkedCall()
C.113. PauseMonitor()
C.114. PauseQueueMember()
C.115. Pickup()
C.116. PickupChan()
C.117. Playback()
C.118. Playtones()
C.119. PrivacyManager()
C.120. Proceeding()
C.121. Progress()
C.122. Queue()
C.123. QueueLog()
C.124. RaiseException()
C.125. Random()
C.126. Read()
C.127. ReadExten()
C.128. ReadFile()
C.129. RealTime()
C.130. RealTimeUpdate()
C.131. ReceiveFAX()
C.132. Record()
C.133. RemoveQueueMember()
C.134. ResetCDR()
C.135. ResponseTimeout()
C.136. RetryDial()
C.137. Return()
C.138. Ringing()
C.139. SayAlpha()
C.140. SayDigits()
C.141. SayNumber()
C.142. SayPhonetic()
C.143. SayUnixTime()
C.144. SendDTMF()
C.145. SendFAX()
C.146. SendImage()
C.147. SendText()
C.148. SendURL()
C.149. Set()
C.150. SetAccount()
C.151. SetAMAFlags()
C.152. SetCallerID()
C.153. SetCallerPres()
C.154. SetCDRUserField()
C.155. SetCIDName()
C.156. SetCIDNum()
C.157. SetGlobalVar()
C.158. SetGroup()
C.159. SetLanguage()
C.160. SetMusicOnHold()
C.161. SetRDNIS()
C.162. SetTransferCapability()
C.163. SetVar()
C.164. SIPAddHeader()
C.165. SIPdtmfMode()
C.166. SIPGetHeader()
C.167. SMS()
C.168. SoftHangup()
C.169. Sort()
C.170. StackPop()
C.171. StartMusicOnHold()
C.172. StopMixMonitor()
C.173. StopMonitor()
C.174. StopMusicOnHold()
C.175. StopPlaytones()
C.176. System()
C.177. Transfer()
C.178. TryExec()
C.179. TrySystem()
C.180. TXTCIDName()
C.181. UnpauseMonitor()
C.182. UnpauseQueueMember()
C.183. UserEvent()
C.184. Verbose()
C.185. VMAuthenticate()
C.186. VoiceMail()
C.187. VoiceMailMain()
C.188. Wait()
C.189. WaitExten()
C.190. WaitForNoise()
C.191. WaitForRing()
C.192. WaitForSilence()
C.193. WaitMusicOnHold()
C.194. WaitUntil()
C.195. While()
C.196. Zapateller()
C.197. ZapBarge()
C.198. ZapRAS()
C.199. ZapScan()
C.200. ZapSendKeypadFacility()
D. Funktionen im Dialplan
D.1. AGC()
D.2. AGENT()
D.3. ARRAY()
D.4. AST_CONFIG()
D.5. BASE64_DECODE()
D.6. BASE64_ENCODE()
D.7. BLACKLIST()
D.8. CALLERID()
D.9. CALLERPRES()
D.10. CDR()
D.11. CHANNEL()
D.12. CHANNELS()
D.13. CHECK_MD5()
D.14. CHECKSIPDOMAIN()
D.15. CURL()
D.16. CUT()
D.17. DB()
D.18. DB_DELETE()
D.19. DB_EXISTS()
D.20. DENOISE()
D.21. DEVICE_STATE()
D.22. DIALGROUP()
D.23. DIALPLAN_EXISTS()
D.24. DUNDILOOKUP()
D.25. DUNDIQUERY()
D.26. DUNDIRESULT()
D.27. ENUMLOOKUP()
D.28. ENUMQUERY()
D.29. ENUMRESULT()
D.30. ENV()
D.31. EVAL()
D.32. EXCEPTION()
D.33. EXISTS()
D.34. EXTENSION_STATE()
D.35. FIELDQTY()
D.36. FILE()
D.37. FILTER()
D.38. GLOBAL()
D.39. GROUP()
D.40. GROUP_COUNT()
D.41. GROUP_LIST()
D.42. GROUP_MATCH_COUNT()
D.43. HASH()
D.44. HASHKEYS()
D.45. HINT()
D.46. IAXPEER()
D.47. IAXVAR()
D.48. ICONV()
D.49. IF()
D.50. IFMODULE()
D.51. IFTIME()
D.52. IMPORT()
D.53. ISNULL()
D.54. JABBER_STATUS()
D.55. KEYPADHASH()
D.56. LANGUAGE()
D.57. LEN()
D.58. LOCAL()
D.59. LOCK()
D.60. MAILBOX_EXISTS()
D.61. MATH()
D.62. MD5()
D.63. MEETME_INFO()
D.64. MINIVMACCOUNT()
D.65. MINIVMCOUNTER()
D.66. MUSICCLASS()
D.67. ODBC_ANTIGF()
D.68. ODBC_FETCH()
D.69. ODBC_funktionsname()
D.70. ODBC_PRESENCE()
D.71. ODBC_SQL()
D.72. QUEUE_MEMBER()
D.73. QUEUE_MEMBER_COUNT()
D.74. QUEUE_MEMBER_LIST()
D.75. QUEUE_MEMBER_PENALTY()
D.76. QUEUE_VARIABLES()
D.77. QUEUE_WAITING_COUNT()
D.78. QUEUEAGENTCOUNT()
D.79. QUOTE()
D.80. RAND()
D.81. REALTIME()
D.82. REALTIME_DESTROY()
D.83. REALTIME_STORE()
D.84. REGEX()
D.85. SET()
D.86. SHA1()
D.87. SHARED()
D.88. SHELL()
D.89. SIP_HEADER()
D.90. SIPCHANINFO()
D.91. SIPPEER()
D.92. SMDI_MSG()
D.93. SMDI_MSG_RETRIEVE()
D.94. SORT()
D.95. SPRINTF()
D.96. SQL_ESC()
D.97. STAT()
D.98. STRFTIME()
D.99. STRPTIME()
D.100. SYSINFO()
D.101. TIMEOUT()
D.102. TOLOWER()
D.103. TOUPPER()
D.104. TRYLOCK()
D.105. TXTCIDNAME()
D.106. UNLOCK()
D.107. URIDECODE()
D.108. URIENCODE()
D.109. VALID_EXTEN()
D.110. VERSION()
D.111. VMCOUNT()
D.112. VOLUME()
E. AGI-Befehle
E.1. ANSWER
E.2. ASYNCAGI BREAK
E.3. CHANNEL STATUS
E.4. CONTROL STREAM FILE
E.5. DATABASE DEL
E.6. DATABASE DELTREE
E.7. DATABASE GET
E.8. DATABASE PUT
E.9. EXEC
E.10. GET DATA
E.11. GET FULL VARIABLE
E.12. GET OPTION
E.13. GET VARIABLE
E.14. GOSUB
E.15. HANGUP
E.16. NOOP
E.17. RECEIVE CHAR
E.18. RECEIVE TEXT
E.19. RECORD FILE
E.20. SAY ALPHA
E.21. SAY DATE
E.22. SAY DATETIME
E.23. SAY DIGITS
E.24. SAY NUMBER
E.25. SAY PHONETIC
E.26. SAY TIME
E.27. SEND IMAGE
E.28. SEND TEXT
E.29. SET AUTOHANGUP
E.30. SET CALLERID
E.31. SET CONTEXT
E.32. SET EXTENSION
E.33. SET MUSIC
E.34. SET PRIORITY
E.35. SET VARIABLE
E.36. STREAM FILE
E.37. TDD MODE
E.38. VERBOSE
E.39. WAIT FOR DIGIT
F. AMI-Befehle
F.1. AbsoluteTimeout
F.2. AgentCallbackLogin
F.3. AgentLogoff
F.4. Agents
F.5. AGI
F.6. Atxfer
F.7. Bridge
F.8. Challenge
F.9. ChangeMonitor
F.10. Command
F.11. CoreSettings
F.12. CoreShowChannels
F.13. CoreStatus
F.14. CreateConfig
F.15. DAHDIDialOffhook
F.16. DAHDIDNDoff
F.17. DAHDIDNDon
F.18. DAHDIHangup
F.19. DAHDIRestart
F.20. DAHDIShowChannels
F.21. DAHDITransfer
F.22. DBDel
F.23. DBDelTree
F.24. DBGet
F.25. DBPut
F.26. Events
F.27. ExtensionState
F.28. GetConfig
F.29. GetConfigJSON
F.30. Getvar
F.31. Hangup
F.32. IAXnetstats
F.33. IAXpeerlist
F.34. IAXpeers
F.35. JabberSend
F.36. ListCategories
F.37. ListCommands
F.38. Login
F.39. Logoff
F.40. MailboxCount
F.41. MailboxStatus
F.42. MeetmeList
F.43. MeetmeMute
F.44. MeetmeUnmute
F.45. ModuleCheck
F.46. ModuleLoad
F.47. Monitor
F.48. Originate
F.49. Park
F.50. ParkedCalls
F.51. PauseMonitor
F.52. Ping
F.53. PlayDTMF
F.54. QueueAdd
F.55. QueueLog
F.56. QueuePause
F.57. QueuePenalty
F.58. QueueRemove
F.59. QueueRule
F.60. Queues
F.61. QueueStatus
F.62. QueueSummary
F.63. Redirect
F.64. Reload
F.65. SendText
F.66. SetCDRUserField
F.67. Setvar
F.68. ShowDialPlan
F.69. SIPnotify
F.70. SIPpeers
F.71. SIPqualifypeer
F.72. SIPshowpeer
F.73. SIPshowregistry
F.74. Status
F.75. StopMonitor
F.76. UnpauseMonitor
F.77. UpdateConfig
F.78. UserEvent
F.79. VoicemailUsersList
F.80. WaitEvent
F.81. ZapDialOffhook
F.82. ZapDNDoff
F.83. ZapDNDon
F.84. ZapHangup
F.85. ZapRestart
F.86. ZapShowChannels
F.87. ZapTransfer
G. Konfigurations-Templates
G.1. Templates anlegen
G.2. Templates verwenden
G.2.1. Beispiel
H. Upgrade von Asterisk 1.4 auf 1.6
H.1. AEL
H.2. Kern
H.3. Voicemail
H.4. Dialplan-Applikationen und -Funktionen
H.5. CDR
H.6. Audio-Formate
H.7. Channel-Treiber
H.8. Konfiguration
H.9. Manager-Interface (AMI)
I. Zaptel zu DAHDI
I.1. Geschichte
I.2. Konsequenzen
I.3. DAHDI
I.4. Interview mit Kevin P. Fleming
J. IAX vs. SIP
J.1. Original-E-Mail von Mark Spencer
K. GNU Free Documentation License
Stichwortverzeichnis