Asterisk 1.4 + 1.6

Введение
1. How-To к этой книге
1. Что такое Asterisk?
Разница между классической АТС и Asterisk
2. Какие главы Вам следует прочитать и с какой следует начать?
Абсолютный новичок в Asterisk
FAQ для новичков
Читатель с небольшими знаниями об Asterisk
Asterisk-профи
3. Обновления и версии книги
4. Партнерство и обратная связь
Виды помощи
FAQ для добровольных помощников
5. Помогите, у меня проблема с Asterisk!
2. „Hello World
1. Введение
Asterisk 1.4 или 1.6?
2. Установка Asterisk на сервере
3. Вызов Hello-World в CLI
Конфигурирование Asterisk
Запуск Asterisk и вызов Hello-World
Что такое Extension (программный модуль)?
Повышение Verbosity (болтливости)
Останов Asterisk
4. Hello-World и SIP-телефон
Конфигурирование sip.conf и SIP-телефона
Запуск Asterisk и телефона
Тест
Вызов телефона из CLI
Анализ
Комментарии в файлах конфигурации
5. Минимальная АТС с двумя SIP-телефонами
... и теперь с автоответчиком
6. Управление правами с помощью контекста
Источник: Каждый телефон имеет контекст (среду)
Пример с одним контекстом
Пример с несколькими телефонами
Цель: Контексты в extensions.conf
7. Звонки в и из ТфОП (телефонная сеть общего пользования, англ. PSTN, Public Switched Telephone Network)
Звонки в ТфОП
Прием звонков из ТфОП
3. Dialplan – основы
1. Контекст
Синтакс
2. Extension
Синтакс
Основные приложения
Приоритет
Пример hello-world
n-приоритет
3. Pattern Matching (соответствие шаблону)
Синтакс
Тестирование с dialplan show
Когда имеет место совпадение с шаблоном?
Особое правило для шаблона "_." в Asterisk 1.2
4. Использование Include в Dialplan
Синтакс
Пример
Последовательность применения Include
Include с учетом времени
Синтакс
Пример
5. Переменная ${EXTEN} и функция ${CALLERID(num)}
${EXTEN}
${CALLERID(num)}
4. Настройка на российский стандарт времени
1. Звуки и сигналы
2. Русские голосовые модули
Загрузка и установка русских голосовых сообщений
Sprachbausteine der AMOOMA GmbH
Sprachbausteine der Stadt Pforzheim
Конфигурирование русских голосовых сообщений
Структура каталога голосовых модулей
Asterisk 1.4 и 1.6
5. Учебный пример для условной фирмы
1. Введение
2. ООО Яблочный мусс
3. План номеров абонентов
4. Выбор инфраструктуры
Сеть
Аппаратура сервера
5. Базовая конфигурация
sip.conf для 100 абонентов
CallerID
План звонков (Dialplan)
extensions.conf для ООО Яблочный мусс
voicemail.conf
6. Что делать дальше?
7. FAQ
6. Программирование в Dialplan
1. Небольшой Howto для программирования
Структура программы
Переменные
Метки и Goto()
Циклы While()
Условие GotoIf()
Подпрограммы Gosub()
2. Переменные
Считывание переменных в Extension
Общие сведения
Символьные строки (String)
Quoting (использование зарезервированных символов)
Integer
Определение глобальных переменных в extensions.conf
Определение переменных с помощью Set()
Синтакс
Наследование канальных переменных
Одноступенчатое наследование
Многоступенчатое наследование
Предопределенные канальные переменные
Действия с переменными
Substring
3. Особые Extension
h-Extension
Пример
i-Extension
Пример
o- и a-Extension
t- и T-Extension
t-Extension
T-Extension
s-Extension
4. Макро
Основы макро
5. Priority Jumping нежелательны!
7. AEL (Asterisk Extension Language)
1. CLI-команды для AEL
2. aelparse
3. extensions.conf <-> extensions.ael
Конец строки/команды
Контексты, экстенты, приоритеты
Комментарии
Include – включение других контекстов
Глобальные переменные
Выражения и присвоения
Метки, goto и jump
Условные операторы (conditionals)
Циклы (loops)
Макросы (macros)
Советы
Фильтрация по номеру звонящего
4. extensions.ael или extensions.conf?
8. Протоколы
1. Введение
2. Сетевые протоколы
Transmission Control Protocol (TCP)
Общие сведения
Установление соединения и разъединение
Три способа Handshake (квитирования)
Стуктура TCP-хедера
Передача данных
Целостность данных и надежность
User Datagram Protocol (UDP)
Принцип работы
Свойства
3. Каналы
4. Peer, User и Friend
5. IAX против SIP
6. SIP
Проблема SIP-NAT
SIP-устройства в extensions.conf
Глобальные настройки
context
allowguest
allowtransfer
realm
bindport
bindaddr
TOS-флаги (tos_sip, tos_audio, tos_video)
Голосовые кодеки (allow, disallow)
language
dtmfmode
videosupport
maxcallbitrate
g726nonstandard
rtpkeepalive
t38pt_udptl
register
externip
externhost
localnet
canreinvite
jbenable
jbforce
jbmaxsize
jbresyncthreshold
jbimpl
Настройки устройств
type
context
secret
username
fromuser
host
defaultip
port
call-limit
callerid
nat
mailbox
subscribemwi
vmexten
Голосовые кодеки (allow, disallow)
regexten
qualify
callgroup
pickupgroup
Ограничение IP-адресов (deny, permit)
setvar
rfc2833compensate
7. IAX
Почему IAX?
Пример IAX-конфигурации
Постановка задачи
Конфигурация ast1
Конфигурация ast2
Глобальные настройки
bandwidth
allow
disallow
codecpriority
authdebug
autokill
amaflags
bindaddr
bindport
delayreject
language
mailboxdetail
tos
adsi
register
Настройки каналов
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
9. Кодеки
1. Введение
2. Что делает кодек?
3. Производительность
4. Конфигурирование кодека
Пример с встроенным кодеком
Пример с несколькими кодеками на выбор
5. Самые важные кодеки
6. Полоса пропускания и транкинг (Trunking - группообразование)
10. ISDN
1. Введение
Минимальные сведения по ISDN (цифровая сеть связи)
ISDN-интерфейс базового уровня
ISDN-интерфейс первичного уровня
2. Какие ISDN-платы мне нужны?
Рекомендация для дома
Рекомендация для бизнеса
Hardware-Echo-Cancelation (аппаратная эхокомпенсация)
Прерывания и загрузка сервера
Внутренние аналоговые факс-аппараты
Изготовители и драйвера
Digium
Sangoma
No-Name-HFC-платы
Инструкции по установке ISDN-плат
11. Аналоговая телефония
1. Введение
2. ATA (Analog-Telefon-Adapter)
3. Инструкции по установке аналоговых плат
12. Media Gateways (медиа-шлюзы)
1. Введение
2. Преимущества
3. Недостатки
4. Выводы
13. Voicemail-System (система голосовой почты)
1. Введение
2. Примеры использования
Голосовой почтовый ящик семьи Ивановых
Постановка задачи
Решение
ООО Яблочный мусс
Постановка задачи
Решение
Примечания
3. Приложения
VoiceMail()
Синтакс
VoiceMailMain()
Синтакс
Меню
4. voicemail.conf
[general]
[zonemessages]
Синтакс
Свободные контексты
Default-контекст
Определение почтового ящика
Синтакс
5. Телефонная книга (Dial-by-Name)
Синтакс
Принцип работы
6. voicemail.conf для запоминания паролей
7. Минивариант голосовой почты (MiniVM)
Структура каталога
minivm.conf
CLI-команды для миниварианта VoiceMail
MiniVM-приложения и функции
14. Interactive-Voice-Response-Systeme (IVR, интерактивные системы голосовых меню)
1. Простая IVR
Разница между Playback() и Background()
Разница между 10 и 1000
Собственный интеллект
Неверный ввод(i-Extension)
Паузы
2. Многоступенчатые IVR-системы
Глубина вложенности IVR
3. Text-to-Speech (TTS)
Установка Cepstral Text-to-Speech
Примеры и тесты
Паузы в текстах
15. База данных Asterisk (AstDB)
1. Введение
Производительность
2. База данных Asterisk
Запись значений в базу данных
Чтение значений из базы данных
Удаление значений из базы данных
DBdel() и ${DB_DELETE()}
DBdeltree()
3. Доступ к базе данных из CLI
Запись значений в базу данных
Чтение значений из базы данных
Удаление значений из базы данных
database del
database deltree
Просмотр содержимого базы данных
4. Доступ к базе данных из Shell
5. Архивирование базы данных
6. Пример применения Call-Forwarding (переадресация вызова)
Простая Call-Forwarding
Сложная Call-Forwarding
7. Пример применения Calling-Card
16. Очереди ожидания для Call-Center
1. Extension для музыкального теста
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. Лог-файл
Импорт Queue-Log в MySQL
17. Свойства
1. Перевод разговора на другой номер
Blind Transfer (перевод разговора без запроса)
Attended Transfer (перевод разговора после запроса)
2. Парковка вызовов
18. Телефонные конференции
1. Введение
2. Установка и Timing-Device
3. Определение конференц-залов
4. Доступ в Dialplan
5. Информирование о числе участников
19. Удаленное управление Asterisk
1. asterisk -rx "команда"
Пример
2. Call-файлы
Параметры
Вызов Call-файлов в заданное время
Пример вызова-будильника
3. Asterisk Manager Interface (AMI)
Пример: Опрос числа сообщений в почтовом ящике с помощью Expect-скрипта
StarAstAPI для PHP
Пример: Опрос числа сообщений в почтовом ящике с помощью PHP
4. Asynchronous Javascript Asterisk Manager (AJAM)
Пример: Опрос числа сообщений в почтовом ящике с помощью AJAM
HTML
Plain-Text
XML
Указания к AJAX и AJAM
JSON
Ping
AJAM Demo
Apache
20. Asterisk Gateway Interface (AGI)
1. Потоки данных
STDIN
AGI-хедер
STDOUT
STDERR
2. Каталоги и права
3. Вызов AGI-скрипта в Dialplan
4. Примеры для разных языков программирования
Perl
Пошаговый анализ скрипта agi-test.agi
PHP
phpAGI
Ruby и Adhearsion
Установка
Простая настройка
Программа-пример
Другие языки программирования
21. Факс-сервер
1. Факс-сервер с IAXmodem и HylaFax
Установка IAXmodem
Установка HylaFax
Прием факсов
Передача факсов
Пересылка принятых факсов в виде E-Mail
Hylafax-FAQ
22. SIP-телефоны
1. Введение
2. VoIP-телефоны фирмы Snom
Конфигурирование Asterisk
Конфигурирование телефонов
Ручное конфигурирование
Автоматическое конфигурирование
Различные рингтоны
Пользовательские программируемые меню
Удаленный перезапуск телефонов
Другие доступные приложения
23. BLF, Hints, Pickup (захват вызова)
1. Управление светодиодами
sip.conf
Hints
2. Методы дляr SIP-Subscriptions
3. Конфигурирование телефонов для BLF
4. Тестирование Hints
5. Перехват вызова („Pickup“)
extensions.conf для Pickup
Конфигурирование телефона для Pickup
Перехват вызовов из группы
6. Направленное управление светодиодами
24. Благодарности
1. Введение
2. Слова благодарности Стефана Винтермайера (Stefan Wintermeyer)
3. Слова благодарности Филиппа Кемпгена (Philipp Kempgen)
Глоссарий
A. Инструкции по установке Asterisk 1.4 и 1.6
1. Установка Asterisk 1.4.x на Debian Linux
2. Установка Asterisk 1,6.x на Debian Linux
3. Установка Asterisk 1.4.x на Knoppix 5.1
B. Специальные инструкции по установке Asterisk с ISDN- или аналоговыми платами
1. Установка Sangoma B700 FlexBRI
Установка платы FlexBRI
Build-среда
Источники Zaptel и Asterisk
Установка Wanpipe
Конфигурирование для FlexBRI
Wanpipe
Sangoma Media Gateway (SMG) / Woomera
Zaptel
Asterisk
Важные команды для Wanpipe
2. Установка ISDN-платы Sangoma A500
Установка платы A500
Build-среда
Источники Asterisk
Установка Wanpipe
Установка в Silent-режиме
Установка в интерактивном режиме
Runlevel
Конфигурирование для A500
Wanpipe
Sangoma Media Gateway (SMG) / Woomera
Asterisk
Важные команды для Wanpipe
3. Установка Digium B410p
Конфигурирование ISDN-платы
Конфигурирование типа подключения ISDN
4. Установка аналоговой платы Digium TDM400p
Установка
Пример Dialplan
5. Установка платы BeroFix
Конфигурирование ISDN-платы
Настройка сетевых мостов
Настройка SIP, ISDN и Routing
Настройка SIP-Peer в Asterisk
C. Приложения в Dialplan
1. AbsoluteTimeout()
2. AddQueueMember()
3. ADSIProg()
4. AgentCallbackLogin()
5. AgentLogin()
6. AgentMonitorOutgoing()
7. AGI()
8. AlarmReceiver()
9. AMD()
10. Answer()
11. AppendCDRUserField()
12. Authenticate()
13. Background()
14. BackgroundDetect()
15. Bridge()
16. Busy()
17. ChangeMonitor()
18. ChanIsAvail()
19. ChannelRedirect()
20. ChanSpy()
21. CheckGroup()
22. ClearHash()
23. Congestion()
24. ContinueWhile()
25. ControlPlayback()
26. Curl()
27. Cut()
28. DAHDIBarge()
29. DAHDIRAS()
30. DAHDIScan()
31. DAHDISendKeypadFacility()
32. DateTime()
33. DBdel()
34. DBdeltree()
35. DBget()
36. DBput()
37. DeadAGI()
38. Dial()
39. Dictate()
40. DigitTimeout()
41. Directory()
42. DISA()
43. DumpChan()
44. DUNDiLookup()
45. EAGI()
46. Echo()
47. EndWhile()
48. EnumLookup()
49. Eval()
50. Exec()
51. ExecIf()
52. ExecIfTime()
53. ExitWhile()
54. ExtenSpy()
55. ExternalIVR()
56. Festival()
57. Flash()
58. FollowMe()
59. ForkCDR()
60. GetCPEID()
61. GetGroupCount()
62. GetGroupMatchCount()
63. Gosub()
64. GosubIf()
65. Goto()
66. GotoIf()
67. GotoIfTime()
68. Hangup()
69. HasNewVoicemail()
70. HasVoicemail()
71. IAX2Provision()
72. ICES()
73. ImportVar()
74. Incomplete()
75. JabberSend()
76. JabberStatus()
77. KeepAlive()
78. Log()
79. LookupBlacklist()
80. LookupCIDName()
81. Macro()
82. MacroExclusive()
83. MacroExit()
84. MacroIf()
85. MailboxExists()
86. Math()
87. MD5()
88. MD5Check()
89. MeetMe()
90. MeetMeAdmin()
91. MeetMeChannelAdmin()
92. MeetMeCount()
93. Milliwatt()
94. MinivmAccMess()
95. MinivmDelete()
96. MinivmGreet()
97. MinivmNotify()
98. MinivmRecord()
99. MixMonitor()
100. Monitor()
101. Morsecode()
102. MP3Player()
103. MSet()
104. MusicOnHold()
105. NBScat()
106. NoCDR()
107. NoOp()
108. ODBCFinish()
109. Page()
110. Park()
111. ParkAndAnnounce()
112. ParkedCall()
113. PauseMonitor()
114. PauseQueueMember()
115. Pickup()
116. PickupChan()
117. Playback()
118. Playtones()
119. PrivacyManager()
120. Proceeding()
121. Progress()
122. Queue()
123. QueueLog()
124. RaiseException()
125. Random()
126. Read()
127. ReadExten()
128. ReadFile()
129. RealTime()
130. RealTimeUpdate()
131. ReceiveFAX()
132. Record()
133. RemoveQueueMember()
134. ResetCDR()
135. ResponseTimeout()
136. RetryDial()
137. Return()
138. Ringing()
139. SayAlpha()
140. SayDigits()
141. SayNumber()
142. SayPhonetic()
143. SayUnixTime()
144. SendDTMF()
145. SendFAX()
146. SendImage()
147. SendText()
148. SendURL()
149. Set()
150. SetAccount()
151. SetAMAFlags()
152. SetCallerID()
153. SetCallerPres()
154. SetCDRUserField()
155. SetCIDName()
156. SetCIDNum()
157. SetGlobalVar()
158. SetGroup()
159. SetLanguage()
160. SetMusicOnHold()
161. SetRDNIS()
162. SetTransferCapability()
163. SetVar()
164. SIPAddHeader()
165. SIPdtmfMode()
166. SIPGetHeader()
167. SMS()
168. SoftHangup()
169. Sort()
170. StackPop()
171. StartMusicOnHold()
172. StopMixMonitor()
173. StopMonitor()
174. StopMusicOnHold()
175. StopPlaytones()
176. System()
177. Transfer()
178. TryExec()
179. TrySystem()
180. TXTCIDName()
181. UnpauseMonitor()
182. UnpauseQueueMember()
183. UserEvent()
184. Verbose()
185. VMAuthenticate()
186. VoiceMail()
187. VoiceMailMain()
188. Wait()
189. WaitExten()
190. WaitForNoise()
191. WaitForRing()
192. WaitForSilence()
193. WaitMusicOnHold()
194. WaitUntil()
195. While()
196. Zapateller()
197. ZapBarge()
198. ZapRAS()
199. ZapScan()
200. ZapSendKeypadFacility()
D. Функции в Dialplan
1. AGC()
2. AGENT()
3. ARRAY()
4. AST_CONFIG()
5. BASE64_DECODE()
6. BASE64_ENCODE()
7. BLACKLIST()
8. CALLERID()
9. CALLERPRES()
10. CDR()
11. CHANNEL()
12. CHANNELS()
13. CHECK_MD5()
14. CHECKSIPDOMAIN()
15. CURL()
16. CUT()
17. DB()
18. DB_DELETE()
19. DB_EXISTS()
20. DENOISE()
21. DEVICE_STATE()
22. DIALGROUP()
23. DIALPLAN_EXISTS()
24. DUNDILOOKUP()
25. DUNDIQUERY()
26. DUNDIRESULT()
27. ENUMLOOKUP()
28. ENUMQUERY()
29. ENUMRESULT()
30. ENV()
31. EVAL()
32. EXCEPTION()
33. EXISTS()
34. EXTENSION_STATE()
35. FIELDQTY()
36. FILE()
37. FILTER()
38. GLOBAL()
39. GROUP()
40. GROUP_COUNT()
41. GROUP_LIST()
42. GROUP_MATCH_COUNT()
43. HASH()
44. HASHKEYS()
45. HINT()
46. IAXPEER()
47. IAXVAR()
48. ICONV()
49. IF()
50. IFMODULE()
51. IFTIME()
52. IMPORT()
53. ISNULL()
54. JABBER_STATUS()
55. KEYPADHASH()
56. LANGUAGE()
57. LEN()
58. LOCAL()
59. LOCK()
60. MAILBOX_EXISTS()
61. MATH()
62. MD5()
63. MEETME_INFO()
64. MINIVMACCOUNT()
65. MINIVMCOUNTER()
66. MUSICCLASS()
67. ODBC_ANTIGF()
68. ODBC_FETCH()
69. ODBC_funktionsname()
70. ODBC_PRESENCE()
71. ODBC_SQL()
72. QUEUE_MEMBER()
73. QUEUE_MEMBER_COUNT()
74. QUEUE_MEMBER_LIST()
75. QUEUE_MEMBER_PENALTY()
76. QUEUE_VARIABLES()
77. QUEUE_WAITING_COUNT()
78. QUEUEAGENTCOUNT()
79. QUOTE()
80. RAND()
81. REALTIME()
82. REALTIME_DESTROY()
83. REALTIME_STORE()
84. REGEX()
85. SET()
86. SHA1()
87. SHARED()
88. SHELL()
89. SIP_HEADER()
90. SIPCHANINFO()
91. SIPPEER()
92. SMDI_MSG()
93. SMDI_MSG_RETRIEVE()
94. SORT()
95. SPRINTF()
96. SQL_ESC()
97. STAT()
98. STRFTIME()
99. STRPTIME()
100. SYSINFO()
101. TIMEOUT()
102. TOLOWER()
103. TOUPPER()
104. TRYLOCK()
105. TXTCIDNAME()
106. UNLOCK()
107. URIDECODE()
108. URIENCODE()
109. VALID_EXTEN()
110. VERSION()
111. VMCOUNT()
112. VOLUME()
E. AGI-команды
1. ANSWER
2. ASYNCAGI BREAK
3. CHANNEL STATUS
4. CONTROL STREAM FILE
5. DATABASE DEL
6. DATABASE DELTREE
7. DATABASE GET
8. DATABASE PUT
9. EXEC
10. GET DATA
11. GET FULL VARIABLE
12. GET OPTION
13. GET VARIABLE
14. GOSUB
15. HANGUP
16. NOOP
17. RECEIVE CHAR
18. RECEIVE TEXT
19. RECORD FILE
20. SAY ALPHA
21. SAY DATE
22. SAY DATETIME
23. SAY DIGITS
24. SAY NUMBER
25. SAY PHONETIC
26. SAY TIME
27. SEND IMAGE
28. SEND TEXT
29. SET AUTOHANGUP
30. SET CALLERID
31. SET CONTEXT
32. SET EXTENSION
33. SET MUSIC
34. SET PRIORITY
35. SET VARIABLE
36. STREAM FILE
37. TDD MODE
38. VERBOSE
39. WAIT FOR DIGIT
F. AMI-команды
1. AbsoluteTimeout
2. AgentCallbackLogin
3. AgentLogoff
4. Agents
5. AGI
6. Atxfer
7. Bridge
8. Challenge
9. ChangeMonitor
10. Command
11. CoreSettings
12. CoreShowChannels
13. CoreStatus
14. CreateConfig
15. DAHDIDialOffhook
16. DAHDIDNDoff
17. DAHDIDNDon
18. DAHDIHangup
19. DAHDIRestart
20. DAHDIShowChannels
21. DAHDITransfer
22. DBDel
23. DBDelTree
24. DBGet
25. DBPut
26. Events
27. ExtensionState
28. GetConfig
29. GetConfigJSON
30. Getvar
31. Hangup
32. IAXnetstats
33. IAXpeerlist
34. IAXpeers
35. JabberSend
36. ListCategories
37. ListCommands
38. Login
39. Logoff
40. MailboxCount
41. MailboxStatus
42. MeetmeList
43. MeetmeMute
44. MeetmeUnmute
45. ModuleCheck
46. ModuleLoad
47. Monitor
48. Originate
49. Park
50. ParkedCalls
51. PauseMonitor
52. Ping
53. PlayDTMF
54. QueueAdd
55. QueueLog
56. QueuePause
57. QueuePenalty
58. QueueRemove
59. QueueRule
60. Queues
61. QueueStatus
62. QueueSummary
63. Redirect
64. Reload
65. SendText
66. SetCDRUserField
67. Setvar
68. ShowDialPlan
69. SIPnotify
70. SIPpeers
71. SIPqualifypeer
72. SIPshowpeer
73. SIPshowregistry
74. Status
75. StopMonitor
76. UnpauseMonitor
77. UpdateConfig
78. UserEvent
79. VoicemailUsersList
80. WaitEvent
81. ZapDialOffhook
82. ZapDNDoff
83. ZapDNDon
84. ZapHangup
85. ZapRestart
86. ZapShowChannels
87. ZapTransfer
G. Шаблоны конфигурации
1. Создание шаблонов
2. Применение шаблонов
Пример
H. Переход с Asterisk 1.4 на 1.6
1. AEL
2. Ядро
3. Voicemail
4. Приложения и функции Dialplan
5. CDR
6. Аудио-форматы
7. Драйверы каналов
8. Конфигурация
9. Asterisk Manager Interface (AMI)
I. Zaptel для DAHDI
1. История
2. Последствия
3. DAHDI
4. Интервью с Кевином П. Флемингом (Kevin P. Fleming)
J. IAX против SIP
1. Оригинальное письмо от Марка Спенсера (Mark Spencer)
K. Лицензия свободной документации GNU
Список ключевых слов