Найти в Дзене
Академия АТС

Установка Asterisk. Урок 6. Dialplan. Extension.conf и первый звонок

Ну вот мы и добрались до сердца Asterisk! Dialplan - это движок Asterisk, где происходит вся магия Asterisk. Он находится в файле extension.conf. И здесь настраивается что набирать, как набирать и кому набирать. Мы уже зарегистрировали два софтфона, а теперь давайте наладим между ними связь. Dialplan это скриптовый язык программирования Asterisk. А значит у него есть свой синтаксис, как и у любого другого языка. Рассмотрим его. Итак, сторона A набирает сторону B. exten - оператор набора Asterisk. 99% программистов Asterisk используют только его. Потому что в большинстве случаев этого достаточно. Что набираем - по сути, это набор клавиш на телефоне Номер действия - приоритет наших действия, которые будут происходить с вызовом. Чаще всего вам достаточно будет только 1-го приоритета. Dial - оператор вызова. Ставится перед скобками. Что вызывается - это устройство, которое будет вызываться. Его берут из файла sip.conf в папке asterisk Таймаут - время в секундах, которое будет совершаться в
Оглавление
Установка Asterisk. Урок 6. Dialplan. Первый звонок
Установка Asterisk. Урок 6. Dialplan. Первый звонок

Ну вот мы и добрались до сердца Asterisk! Dialplan - это движок Asterisk, где происходит вся магия Asterisk. Он находится в файле extension.conf. И здесь настраивается что набирать, как набирать и кому набирать.

Мы уже зарегистрировали два софтфона, а теперь давайте наладим между ними связь.

Dialplan это скриптовый язык программирования Asterisk. А значит у него есть свой синтаксис, как и у любого другого языка. Рассмотрим его. Итак, сторона A набирает сторону B.

Установка Asterisk. Урок 6. Dialplan. Первый звонок
Установка Asterisk. Урок 6. Dialplan. Первый звонок

exten - оператор набора Asterisk. 99% программистов Asterisk используют только его. Потому что в большинстве случаев этого достаточно.

Что набираем - по сути, это набор клавиш на телефоне

Номер действия - приоритет наших действия, которые будут происходить с вызовом. Чаще всего вам достаточно будет только 1-го приоритета.

Dial - оператор вызова. Ставится перед скобками.

Что вызывается - это устройство, которое будет вызываться. Его берут из файла sip.conf в папке asterisk

Таймаут - время в секундах, которое будет совершаться вызов, пока сторона B не возьмет трубку, или сторона A не устанет ждать и не повесит свою трубку. В данном пример таймаут стоит 20 секунд, а значит, если соединения не произошло, то через 20 секунд вызов просто оборвется. Если значение оставить пустым, вызов будет продолжаться 136 лет!

Приоритет вызова в Asterisk

Если нужно помимо просто звонка направить вызов дальше по истечению таймаута, применятся последовательность приоритетов.

exten => 1001,1,Dial()

exten => 1001,2,делаем что-то

exten => 1001,3,делаем что-то ещё

exten => 1001,4,сделаем ещё одну вещь

exten => 1001,5,Hangup()

Hangup() - оператор завершения вызова Asterisk. Можно упросить эту запись:

exten => 1001,1,Dial()

same => n,делаем что-то

same => n,делаем что-то ещё

same => n,сделаем ещё одну вещь

same => n,Hangup()

same - это по сути "тоже самое", то есть строка, которая относится к первой строке, как продолжение приоритетов.

n - порядковый номер приоритета. Берется из номера строки, следующей после основной или ниже.

Это удобная запись в Asterisk, так как она экономит время. А еще можно вставить новую строку в любое место и не переписывать наши приоритеты.

Какие еще бывают операторы вызова в dialplan кроме Dial и Hangup?

Dial – вызов

Wait – ожидание

Answer – ответ (был вместо Dial, но сейчас почти не используется)

Playback – проиграть звуковой файл

Voicemail – голосовая почта

Background – голосовое меню IVR

Goto – переход по цифре в IVR

Directory – вызов каталога

Hangup – закончить вызов

А теперь задание для вас. Опишите последовательность следующего вызова:

exten => 1001,1,Dial(SIP/1001,15)

same => n,Playback(vm-nobody)

same => n,Hangup()

Догадались? Правильно! Вызывается номер 1001. Если абонент в течение 15 секунд не взял трубку, вызов направляется на звуковой файл (извините, не могу ответить), а потом прерывается.

Чаще всего бывает так, что у вас в офисе большинство или даже все абоненты Asterisk не нуждаются в особых настройках и работают по одному шаблону. Давайте создадим этот шаблон:

exten => _10XX,1,Dial(SIP/${EXTEN},20)

Нижнее подчеркивание - крайне важная деталь шаблона dialplan. Именно она говорит, что далее будет шаблон.

X - маска, любые цифры от 0 до 9.

${EXTEN} - это место назначения вызова, соответствующее набору. То есть, то что набираем, туда и отправляем.

Контекст в dialplan Asterisk

Наш dialplan делится на контексты. Для исходящих вызовов контекст один, для входящих другой, для особых - третий, и так далее. Синтаксис контекста такой:

[general]

[from-internal]

Заключен в квадратные скобки и берется из файла sip.conf, мы о нем говорили, когда задавали настройки абонента. Вот тут:

Установка Asterisk. Урок 6. Dialplan. Первый звонок
Установка Asterisk. Урок 6. Dialplan. Первый звонок

Контекст [general] задается всегда и самым первым.

Итак, давайте позвоним в сам Asterisk! Заинтриговал?

[general]

[from-internal]

exten => 999, 1,playback(hello-world)

При наборе 999 (тут может поставить любое число) мы услышим первые слова нашего Asterisk: "Привет Мир!"

Ну а теперь пришло время наладить связь между нашими абонентами. Добавим туда еще 2 строки:

[general]

[from-internal]

exten => 999, 1,playback(hello-world)

exten => 1001,1,Dial(SIP/1001,20)

exten => 1002,1,Dial(SIP/1002,20)

или так:

[general]

[from-internal]

exten => 999, 1,playback(hello-world)

exten => _10XX,1,Dial(SIP/${EXTEN},20)

Смело звоните и смотрите в ваш CLI-интерфейс:

Установка Asterisk. Урок 6. Dialplan. Первый звонок
Установка Asterisk. Урок 6. Dialplan. Первый звонок

Лицезрите свой Первый Вызов!

Получилось? Поздравляю! Вы приобщились к когорте избранных! Можно и отпраздновать! )

Не получилось? Пройдитесь по настройкам. Ведь это язык программирования. Где-то не закрыта скобка, где-то кириллица вместо латиницы, где-то не хватает или лишняя запятая. И у вас обязательно получится. У меня же получилось:

Установка Asterisk. Урок 6. Dialplan. Первый звонок
Установка Asterisk. Урок 6. Dialplan. Первый звонок

В следующим уроке мы подключим транк - городскую линию с номером!

Если хотите разбираться в Asterisk профессионально, добро пожаловать на наш курс обучения Aserisk в Академии АТС. Описание курса.

Друзья, ставьте лайки и подписывайтесь на канал! И помните, специалисты со знанием АТС получают на 40% больше своих коллег!
Обучение Asterisk. Как выбрать курс.