Найти тему
Merion Academy

Настройка IVR в Asterisk через консоль

Оглавление

В сегодняшней статье расскажем про настройку IVR (Interactive Voice Response) стандартными способами Asterisk, без использования графической оболочки FreePBX.

Аббревиатура IVR описывает систему, в которой вызывающий абонент, по средствам кнопок на телефоне осуществляет навигацию в голосовом меню и соединяется с нужным отделом, сотрудником и службой. В масштабах крупного "Enterprise", конечно, IVR описывает гораздо более сложные системы, где используются различные технологии интеграции. Но мы рассмотрим простейший вариант.

Про настройку IVR через графический интерфейс FreePBX, читайте в нашей статье.

НЕМНОГО ТЕОРИИ

Перед тем как создать простейший пример IVR, необходимо разобраться во внутренних приложениях, которыми оперирует Asterisk.

Приложение Background() проигрывает звуковую запись и в то же время слушает входящие сигналы DTMF (Dual-Tone Multi-Frequency). Система, тем временем, пытается найти совпадения введённых цифр DTMF и внутреннего номера (extension) в текущем контексте дайл-плана, если совпадение есть, то Asterisk отправит вызов на найденный номер.

Приложение WaitExten() необходимо, если вы хотите заставить Asterisk подождать какое-то время после того, как он воспроизведет звуковую запись. Параметры, задающиеся в WaitExten() - это количество секунд, которые система будет ждать, прежде чем разрешит абоненту совершить набор внутреннего номера, например – WaitExten(10).

Приложение Goto() позволяет переходить с одной позиции в дайл-плане на другую – это может быть контекст (context), внутренний номер (extension) и приоритет (priority).

КОНФИГУРАЦИЯ

Теперь мы можем создать простейший пример голосового меню, используя вышеупомянутые приложения. Как правило, IVR создаётся в новом контексте, таким образом оставаясь независимым от остальных настроенных extension’ов в дайл-плане.

Основная запись, содержащая сценарий голосового меню будет следующей: "Здравствуйте вы позвонили в компанию %companyname%. Для того, чтобы соединиться с отделом поддержки нажмите 1. Для того, чтобы соединиться с отделом продаж нажмите 2. Если Вы знаете внутренний номер абонента, наберите его в тональном режиме".

Настройку IVR проводим в файле extensions.conf и добавляем туда следующую запись:

[ivr-example]
exten => s,1,Answer(500)
same => n(loop),Background(Main_IVR_record)
exten => 1,1,Goto(3445,s,1)
#Переход в контекст отдела поддержки по нажатию кнопки 1. 3444 – Ринг группа отдела поддержки.
exten => 2,1,Goto(3444,s,1)
#Переход в контекст отдела продаж нажатию кнопки 2. 3445 – Ринг группа отдела продаж.
exten => _XXX,1,Dial(SIP/${EXTEN}@Asterisk)
#Набор внутреннего номера сотрудника

Теперь, для инициализации IVR, остается только вызвать контекст [ivr-example].