Asterisk 1.4 + 1.6 (deutsch)

Vorwort
1. Installation und "Hello World"
1. Einleitung
2. Eine Minimal-Telefonanlage
Die Aufgabe
Voraussetzungen
Welche Asterisk-Version ist empfehlenswert?
Welche Linux-Distribution ist die richtige für einen Asterisk-Server?
Warum keine fertigen Asterisk-Pakete mit rpm oder apt-get installieren?
Die Installation aus den aktuellen Asterisk-Sourcen
Den Asterisk-Server konfigurieren
Die SIP-Telefone konfigurieren
Und jetzt mit einem Anrufbeantworter
Was haben wir gerade gemacht?
extensions.conf - der Dialplan
voicemail.conf - der Anrufbeantworter
Ins öffentliche Telefonnetz telefonieren
Gespräche vom öffentlichen Netz entgegennehmen
2. Dialplan Grundlagen
1. Context
Syntax
2. Extension
Syntax
Grundlegende Applikationen
Priorität
Ein hello-world Beispiel
n-Priorität
3. Pattern Matching
Syntax
Testen mit dialplan show
Wann matcht welches Pattern?
Sonderregel für das Pattern _. in Asterisk 1.2
4. Includes im Dialplan
Syntax
Beispiel
Reihenfolge beim Include
Includes zeitgesteuert
Syntax
Beispiel
5. Die Variable ${EXTEN} und die Funktion ${CALLERID(num)}
${EXTEN}
${CALLERID(num)}
3. Case-Study einer Beispielfirma
1. Einleitung
2. Die Apfelmus GmbH
3. Der Rufnummernplan
4. Auswahl der Infrastruktur
Netzwerk
Server-Hardware
5. Die Grundkonfiguration
sip.conf für fast 100 Teilnehmer
CallerID
Der Wählplan (Dialplan)
Die extensions.conf für die Apfelmus GmbH
voicemail.conf
6. Wie geht es weiter?
7. FAQ
4. Programmieren im Dialplan
1. Kleines Programmierer Howto
Programmstruktur
Variablen
Labels und Goto()
While() Schleifen
GotoIf() Bedingung
Gosub() Unterprogramme
2. Variablen
Variablen in einer Extension auslesen
Allgemeines
Strings
Quoting
Integer
Globale Variablen in der extensions.conf definieren
Variablen mit Set() definieren
Syntax
Vererbung von Channel-Variablen
Einstufige Vererbung
Mehrstufige Vererbung
Feste Channel-Variablen
Variablenmanipulation
Substring
3. Besondere Extensions
Die h-Extension
Beispiel
Die i-Extension
Beispiel
Die o- und a-Extension
Die t- und T-Extension
t-Extension
T-Extension
Die s-Extension
4. Macro
Macro Basics
5. Priority Jumping ist deprecated
5. Protokolle
1. Einleitung
2. Netzwerkprotokolle
Transmission Control Protocol (TCP)
Allgemeines
Verbindungsaufbau und -abbau
Der Drei-Wege-Handshake
Aufbau des TCP-Headers
Datenübertragung
Datenintegrität und Zuverlässigkeit
User Datagram Protocol (UDP)
Funktionsweise
Eigenschaften
3. Channels
4. Peers, Users und Friends
5. IAX versus SIP
6. SIP
Das SIP-NAT-Problem
SIP-Geräte in der extensions.conf
Globale Einstellungen
context
allowguest
allowtransfer
realm
bindport
bindaddr
TOS-Flags (tos_sip, tos_audio, tos_video)
Sprach-Codecs (allow, disallow)
language
dtmfmode
videosupport
maxcallbitrate
g726nonstandard
rtpkeepalive
t38pt_udptl
register
externip
externhost
localnet
canreinvite
jbenable
jbforce
jbmaxsize
jbresyncthreshold
jbimpl
Channel-Einstellungen
type
context
secret
username
fromuser
host
defaultip
port
call-limit
callerid
nat
mailbox
subscribemwi
vmexten
Sprach-Codecs (allow, disallow)
regexten
qualify
callgroup
pickupgroup
IP-Adressen-Beschränkung (deny, permit)
setvar
rfc2833compensate
7. IAX
Warum IAX?
Beispiel für eine IAX-Konfiguration
Aufgabenstellung
Konfiguration ast1
Konfiguration ast2
Globale Einstellungen
bandwidth
allow
disallow
codecpriority
authdebug
autokill
amaflags
bindaddr
bindport
delayreject
language
mailboxdetail
tos
adsi
register
Channel-Einstellungen
type
accountcode
bandwidth
allow
disallow
codecpriority
amaflags
callerid
host
defaultip
permit
deny
auth
secret
inkeys
outkey
mailbox
language
context
regcontext
regexten
jitterbuffer
forcejitterbuffer
maxjitterbuffer
resyncthreshold
trunk
trunkfreq
qualify
qualifysmoothing
6. ISDN
1. Einleitung
2. Minimalgrundlagen von ISDN
ISDN Basis-Anschluss
ISDN Multiplex-Anschluss
3. Welche ISDN-Karte soll ich nehmen?
4. Installation Asterisk 1.4.x mit ISDN Treiber für Digium B410P auf Debian Linux 4.0 (Etch)
Konfiguration der ISDN-Karte
Start- und Stopskripte
Konfiguration der ISDN-Anschlussart
Anlagenanschluss
Mehrgeräteanschluss
7. Voicemailsystem
1. Einleitung
2. Beispielanwendungen
Voicemailbox der Familie Meier
Aufgabenstellung
Lösung
Die Apfelmus GmbH
Aufgabenstellung
Lösung
Besonderheiten
3. Applikationen
VoiceMail()
Syntax
VoiceMailMain()
Syntax
Menü
4. voicemail.conf
[general]
[zonemessages]
Syntax
Freie Contexte
Der Default-Context
Mailbox-Definition
Syntax
5. Telefonbuch (Dial-by-Name)
Syntax
Funktionsweise
6. voicemail.conf als Passwortspeicher
8. Interactive Voice Response Systeme (IVR)
1. Eine einfache IVR
Unterschied zwischen Playback() und Background()
Unterschied zwischen 10 und 1000
Eigenintelligenz
Falscheingaben (die i-Extension)
Pausen
2. Mehrstufige IVR-Systeme
Tiefe der IVR
3. Text2Speech (TTS)
Installation Cepstral Text-to-Speech
Beispiele und Tests
Pausen in Texten
9. Warteschleifen für Call-Center
1. Extension zum Musiktest
2. musiconhold.conf
3. queues.conf
musiconhold
announce
strategy
servicelevel
context
timeout
retry
weight
wrapuptime
maxlen
announce-frequency
announce-holdtime
announce-round-seconds
Sprachbausteine
periodic-announce-frequency
monitor-format
monitor-join
joinempty
leavewhenempty
eventwhencalled
eventmemberstatus
reportholdtime
memberdelay
timeoutrestart
autopause
ringinuse
member
4. agents.conf
autologoff
ackcall
endcall
wrapuptime
musiconhold
updatecdr
recordagentcalls
recordformat
createlink
urlprefix
savecallsin
agent
5. extensions.conf
6. Log-Datei
Queue-Log in MySQL importieren
10. Asterisk fernsteuern
1. asterisk -rx "Befehl"
Beispiel
2. Call Files
Parameter
Call Files in der Zukunft aufrufen
Beispiel Weckruf
3. Das Manager-Interface (AMI)
Beispiel: Anzahl der Mailbox-Nachrichten mit Expect abfragen
StarAstAPI für PHP
Beispiel: Anzahl der Mailbox-Nachrichten mit PHP abfragen
4. Der Aynchronous Javascript Asterisk Manager (AJAM)
Beispiel: Anzahl der Mailbox-Nachrichten per AJAM abfragen
HTML
Plain-Text
XML
Hinweise zu AJAX und AJAM
JSON
Ping
AJAM Demo
Apache
11. Faxserver
1. Faxserver mit IAXmodem und Hylafax
Installation IAXmodem
Installation Hylafax
Faxe empfangen
Faxe versenden
Empfangene Faxe als E-Mail versenden
IAXmodem und Hylafax FAQ
12. Gemeinschaft
1. TBD
Glossar
A. Installationsanleitungen für Asterisk 1.4
1. Installation Asterisk 1.4.x auf Debian Linux 4.0 (Etch)
Start- und Stopskripte
B. Applikationen im Dialplan
1. AddQueueMember()
2. ADSIProg()
3. AgentCallbackLogin()
4. AgentLogin()
5. AgentMonitorOutgoing()
6. AGI()
7. AlarmReceiver()
8. AMD()
9. Answer()
10. AppendCDRUserField()
11. Authenticate()
12. Background()
13. BackgroundDetect()
14. Busy()
15. CallingPres()
16. ChangeMonitor()
17. ChanIsAvail()
18. ChannelRedirect()
19. ChanSpy()
20. Congestion()
21. ContinueWhile()
22. ControlPlayback()
23. DateTime()
24. DBdel()
25. DBdeltree()
26. DeadAGI()
27. Dial()
28. Dictate()
29. Directory()
30. DISA()
31. DumpChan()
32. EAGI()
33. Echo()
34. EndWhile()
35. Exec()
36. ExecIf()
37. ExecIfTime()
38. ExitWhile()
39. ExtenSpy()
40. ExternalIVR()
41. FastAGI()
42. Festival()
43. Flash()
44. FollowMe()
45. ForkCDR()
46. GetCPEID()
47. Gosub()
48. GosubIf()
49. Goto()
50. GotoIf()
51. GotoIfTime()
52. Hangup()
53. IAX2Provision()
54. ImportVar()
55. Log()
56. LookupBlacklist()
57. LookupCIDName()
58. Macro()
59. MacroExclusive()
60. MacroExit()
61. MacroIf()
62. MailboxExists()
63. MeetMe()
64. MeetMeAdmin()
65. MeetMeCount()
66. Milliwatt()
67. MixMonitor()
68. Monitor()
69. Morsecode()
70. MP3Player()
71. MusicOnHold()
72. NBScat()
73. NoCDR()
74. NoOp()
75. Page()
76. Park()
77. ParkAndAnnounce()
78. ParkedCall()
79. PauseMonitor()
80. PauseQueueMember()
81. Perl()
82. PHP()
83. Pickup()
84. Playback()
85. Playtones()
86. PrivacyManager()
87. Progress()
88. Queue()
89. QueueLog()
90. Random()
91. Read()
92. ReadFile()
93. RealTime()
94. RealTimeUpdate()
95. Record()
96. RemoveQueueMember()
97. ResetCDR()
98. RetryDial()
99. Return()
100. Ringing()
101. SayAlpha()
102. SayDigits()
103. SayNumber()
104. SayPhonetic()
105. SayUnixTime()
106. SendDTMF()
107. SendImage()
108. SendText()
109. SendURL()
110. Set()
111. SetAMAFlags()
112. SetCallerPres()
113. SetCDRUserField()
114. SetGlobalVar()
115. SetMusicOnHold()
116. SetTransferCapability()
117. SIPAddHeader()
118. SIPdtmfMode()
119. SMS()
120. SoftHangup()
121. StopMonitor()
122. StopPlaytones()
123. System()
124. Transfer()
125. TryExec()
126. TrySystem()
127. UnpauseMonitor()
128. UnpauseQueueMember()
129. UserEvent()
130. Verbose()
131. VMAuthenticate()
132. VoiceMail()
133. VoiceMailMain()
134. Wait()
135. WaitExten()
136. WaitForRing()
137. WaitForSilence()
138. WaitMusicOnHold()
139. While()
140. Zapateller()
141. ZapBarge()
142. ZapRAS()
143. ZapScan()
C. Funktionen im Dialplan
1. AGENT()
2. ARRAY()
3. BASE64_DECODE()
4. BASE64_ENCODE()
5. CALLERID()
6. CDR()
7. CHANNEL()
8. CHECKSIPDOMAIN()
9. CURL()
10. CUT()
11. DB()
12. DB_DELETE()
13. DB_EXISTS()
14. DUNDILOOKUP()
15. ENUMLOOKUP()
16. ENV()
17. EVAL()
18. EXISTS()
19. FIELDQTY()
20. FILTER()
21. GLOBAL()
22. GROUP()
23. GROUP_COUNT()
24. GROUP_LIST()
25. GROUP_MATCH_COUNT()
26. IAXPEER()
27. IF()
28. IFTIME()
29. ISNULL()
30. KEYPADHASH()
31. LANGUAGE()
32. LEN()
33. MATH()
34. MD5()
35. MUSICCLASS()
36. ODBC_SQL()
37. ODBC_USER_DATABASE()
38. QUEUEAGENTCOUNT()
39. QUEUE_MEMBER_COUNT()
40. QUEUE_MEMBER_LIST()
41. QUOTE()
42. RAND()
43. REGEX()
44. SET()
45. SHA1()
46. SIPCHANINFO()
47. SIPPEER()
48. SIP_HEADER()
49. SORT()
50. STAT()
51. STRFTIME()
52. STRPTIME()
53. TIMEOUT()
54. TXTCIDNAME()
55. URIDECODE()
56. URIENCODE()
57. VMCOUNT()
D. Konfigurations-Templates
1. Templates anlegen
2. Templates verwenden
Beispiel
E. GNU Free Documentation License
1. PREAMBLE
2. APPLICABILITY AND DEFINITIONS
3. VERBATIM COPYING
4. COPYING IN QUANTITY
5. MODIFICATIONS
6. COMBINING DOCUMENTS
7. COLLECTIONS OF DOCUMENTS
8. AGGREGATION WITH INDEPENDENT WORKS
9. TRANSLATION
10. TERMINATION
11. FUTURE REVISIONS OF THIS LICENSE
12. ADDENDUM: How to use this License for your documents
Stichwortverzeichnis

$Revision:473 $

Beta-Version!

2.0 Entwickler-Version des Asterisk Buches. Die 1.0 stabile Version ist natürlich noch online. Die 2.0er Version enthält viele Neuerungen, ist aber noch nicht 100% fehlerfrei. Im Zweifelsfall bitte auf die 1.0er Version gehen.

Bitte melden Sie Fehler und Feedback zur neuen 2.0er Version per E-Mail an den Autor.

Asterisk-Tag 2008

Lernen Sie Mark Spencer (den Erfinder von Asterisk) kennen! Viele Vorträge, Case-Studies und Workshops rund um die Themen VoIP und Asterisk. Asterisk-Tag.org

Werbung