Диалплан
Материал из Xgu.ru
Номерной план (диалплан, dialplan) — формальное описание схемы маршрутизации и обработки телефонных звонков.
Номерной план подробно описывает, что система должна делать со входящими и исходящими звонками: передавать их дальше, сохранять, отвечать на них самостоятельно и так далее.
Описание плана набора Asteriskа находится в конфигурационном файле extensions.conf.
Пример фрагмента описания плана набора:
[incoming] exten => s,1,Answer() exten => s,n,Playback(hello-world) exten => s,n,Hangup()
Другой такой же простой пример:
exten => 5212,1,Answer exten => 5212,n,Playback(demo-echotest) exten => 5212,n,Echo exten => 5212,n,Playback(demo-echodone)
При звонке на номер 5212 проигрывается приветственное сообщение, затем запускается приложение Echo, которое повторяет вам обратно всё, что вы говорите. Это позволяет оценить качество и задержку распространения сигнала. Завершить тест можно, нажав клавишу #. В этом случае вы прослушаете завершающее диалог сообщение demo-echodone.
Некоторые приложения диалплана:
- Dial()[1] — позвонить дальше
- MeetMe()[2] — переключиться на комнату-конференцию
- System()[3] — выполнить системную команду (обрабатывается через sh -c)
В диалплане могут использоваться переменные[4] и функции[5]; последовательности действий могут объединяться в макросы[6].
Содержание |
[править] Вопросы и ответы
[править] Как включить один контекст в другой?
[context1] ;.... [context2] ;.... [context1_2] include => context1 include => context2
[править] Как поменять Caller ID при звонке?
Использовать приложение Set(CALLERID(name))[7]:
exten => _1XX,1,Answer exten => _1XX,n,Set(CALLERID(name)="${CALLERID(name)} (KHM)") exten => _1XX,n,Dial(SIP/odessa/${EXTEN},30) exten => _1XX,n,Playback(vm-isunavail)
К Caller ID будет дописываться KHM в конце.
[править] Как отсылать автоматически оповещения о входящих звонках в джаббер?
Описано здесь: «Оповещение в джаббер при звонке через астериск»
[править] Как добавить номер в чёрный список?
Использовать функцию BLACKLIST() диалплана:
exten=>_3XXX,n,GotoIf($[${BLACKLIST()}=1]?blacklist) exten=>_3XXX,n,Dial(...) exten=>_3XXX,n(blacklist),Hangup
Добавление в чёрный список. Добавим номер 4100 в чёрный список, а потом его удалим:
database add blacklist 4100 1 database del blacklist 4100
Подробнее:
- Черный список для Asterisk (рус.)
- Adding blacklist to an Asterisk@Home PBX Server (англ.), более правильное и навороченное решение
[править] Дополнительная информация
- Asterisk Dialplan Introduction (англ.)
- Asterisk documentation of application commands (англ.)
- Asterisk Support for LUA (англ.) — диалплан на Lua
[править] Примечания
- ↑ http://www.voip-info.org/wiki/index.php?page=Asterisk+cmd+Dial
- ↑ http://www.voip-info.org/wiki/view/Asterisk+cmd+MeetMe
- ↑ http://www.voip-info.org/wiki/view/Asterisk+cmd+System
- ↑ http://www.voip-info.org/wiki/view/Asterisk+Detailed+Variable+List
- ↑ http://www.voip-info.org/wiki/view/Asterisk+functions
- ↑ http://www.voip-info.org/wiki/index.php?page=Asterisk+cmd+Macro
- ↑ http://www.voip-info.org/wiki/view/Setting+Callerid