Настройка голосового меню (ivr) на asterisk

Внутренние номера

Этот раздел позволяет создать внутренние номера FreePBX. Сначала выберите технологию для подключения. Оптимальный вариант – использовать протокол SIP. Для новичков при создании внутреннего номера достаточно задать 3 настройки:

  • User Extension – сам номер. Запрещается указывать следующие: 600-699 (зарезервирован для групп вызовов) и 70-79 (зарезервирован для парковки вызовов).
  • Display Name – имя, под которым номер отображается в списке номеров. Это имя на экране телефона увидит абонент, принимающий звонок.
  • Secret – пароль FreePBX для внутреннего номера (будет сгенерирован автоматически).

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

Добавление операторов к очереди (агентов)

Пользователей, которые отвечают на звонки очереди называют агентами или операторами. Есть два типа агентов — статические и динамические. Первые прописываются в конфигурационном файле queues.conf, вторые — могут присоединятся к очереди, становясь на некоторое время оператором.

Статические агенты

Для создания статического оператора, открываем конфигурационный файл очереди:

vi /etc/asterisk/queues.conf

В настройках очереди добавляем:

strategy = ringall
member => SIP/101,1

* в данном примере, мы добавили оператора к нашей очереди. Это sip агент с именем 101. 1 на конце — пенальти (используется для выставления приоритета при использовании некоторых стратегий).

Перечитываем все конфигурационные файлы:

asterisk -x «core reload»

Динамические агенты

Динамические агенты могут присоединиться к очереди в любой момент набором специального сочетания кнопок на телефонном аппарате. Настройка сервера выполняется в конфигурационном файле диалплана:

vi /etc/asterisk/extensions.conf

exten => *999#,1,Verbose(2,Adding dynamic member to support queue)
 same => n,Set(MemberInfo=${CHANNEL(channeltype)}/${CHANNEL(peername)})
 same => n,AddQueueMember(support,${MemberInfo})
 same => n,Playback(agent-loginok)
 same => n,Hangup()
exten => *888#,1,Verbose(2,Removing dynamic member from support queue.)
 same => n,Set(MemberInfo=${CHANNEL(channeltype)}/${CHANNEL(peername)})
 same => n,RemoveQueueMember(support,${MemberInfo})
 same => n,Playback(agent-loggedoff)
 same => n,Hangup()

* в данном примере, если агент набирает *999#, он присоединяется к очереди и может принимать вызовы. При наборе *888# агент выходит из очереди.
* Verbose — вывод в консоль информации; Set — задает значение переменной, в данном примере, MemberInfo; AddQueueMember/RemoveQueueMember — соответственно, добавляет к очереди агента и удаляет из нее; Playback — проигрывает голосовой сигнал; Hangup — дает сигнал отбоя.

Аутентификация агентов

1. Общий пароль для всех агентов

Можно сделать так, чтобы Asterisk требовал от агентов ввод пароля для присоединения к очереди. Для этого наш диалплан приводим к такому виду:

vi /etc/asterisk/extensions.conf

exten => *999#,1,Verbose(2,Adding dynamic member to support queue)
 same => n,Authenticate(1234)
 same => n,Set(MemberInfo=${CHANNEL(channeltype)}/${CHANNEL(peername)})
 same => n,AddQueueMember(support,${MemberInfo})
 same => n,Playback(agent-loginok)
 same => n,Hangup()

* где Authenticate — запрос пароля, в данном примере, 1234.

2. Индивидуальные пароли для каждого агента

Если необходимо, чтобы каждый агент перед входом вводил свои номер и пароль, необходимо воспользоваться приложением VMAuthenticate (аутентификация по электронному почтовому ящику). Настройку начнем с правки диалплана:

vi /etc/asterisk/extensions.conf

exten => *999#,1,Verbose(2,Adding a member to the cc_ege_support queue.)
 same => n,Read(AGENT_USERID,agent-user)
 same => n,VMAuthenticate(${AGENT_USERID}@vmauth)
 same => n,Set(MemberInfo=${CHANNEL(channeltype)}/${CHANNEL(peername)})
 same => n,AddQueueMember(support,${MemberInfo})
 same => n,Playback(agent-loginok)
 same => n,Hangup()

* Read — запрашиваем данные у агента (agent-user — голосовой файл), и записываем в переменную AGENT_USERID; VMAuthenticate — запрашиваем пароль для почтового ящика ${AGENT_USERID} с контекстом vmauth.

Добавляем почтовые ящики:

1001 => 1234, dmosk, dmosk@example.com
1002 => 5678, dmosk2, dmosk2@example.com

* vmauth — контекст (его мы указали в диалплане); 1001/1002 — номера агентов; 1234/5678 — пароли.

Для применения настроек перечитываем диалплан:

asterisk -x «dialplan reload»

Принцип настройки

IVR настраивается в плане набора Aterisk (dialplan) — в конфигурационном файле extensions.conf.

Сначала мы проигрываем запись с голосовым приветствием и предложением ввести номер в тональном режиме. В том же файле мы обрабатываем вводимую информацию, перекидывая абонента на другие диалплан, очередь или конкретного сотрудника.

Записать голосовое приветствие с просьбой ввода номера можно с помощью различных программ звукозаписи. Asterisk работает с форматами .waw, .gsm. В случае наличия другого формата, можно воспользоваться пакетом для конвертации — sox. Также можно загрузить и установить готовый список голосов на русском, который частично, можно использовать.

Краткий обзор имеющихся модулей: управление модулями

В этом разделе можно управлять модулями FreePBX. То есть предусмотрена возможность установки новых, обновление и удаление имеющихся, а также отключение работающих модулей. Новые доступны в 4 источниках:

  • Basic – фундамент системы. Обновлением и обслуживанием его разработчики озабочены сильнее всего.
  • Extended – модули из этого источника пользуются меньшим приоритетом, чем из предыдущего.
  • Unsupported – разработчики FreePBX не несут ответственности за его работоспособность. Так как модули отсюда разрабатывают сторонние программисты.
  • Commercial – коммерческие модули или поддержка.

Есть возможность использовать в качестве источника и ваш ПК. Для этого предусмотрена кнопка Uploud modules. А чтобы установить или обновить модуль, следуйте пошаговой инструкции:

1. Выберите подходящий источник.

2. Воспользуйтесь функцией Check Online.

3. После обновления списка доступных модулей напротив каждого из них появится один их следующих комментариев:

  • not installed – не установлен;
  • online upgrade available – можно обновить;
  • enabled and ap to date – модуль включен и обновлен до последней версии.

Предусмотрена возможность одновременной установки или обновления всех доступных модулей, для этого нажмите соответствующую кнопку.

Группы вызова

Функция позволяет объединить внутренние номера в группу. Набрав единственный номер, можно одновременно позвонить хоть на все внутренние номера из этой группы. Это очень удобно, когда нужно постоянно связываться сразу с несколькими абонентами. По умолчанию используется номер 600-699. Это функция работает по следующему принципу:

  1. Вы добавляете в группу определенное количество внутренних номеров.
  2. После этого совершаете звонок на номер 6ХХ.
  3. Звонок проходит на внутренние номера в этой группе по схеме, которую вы выбрали.

Доступно несколько схем распределения вызовов:

  • ringall – звонок идет одновременно на все номера группы;
  • hunt – звонок распределяется в случайном порядке по доступным номерам;
  • memoryhunt – звонок идет последовательно на первый номер, потом на первый и второй и так далее;
  • firstunavailable – звонок идет по первому доступному номеру;
  • firstnotonphone – звонок идет по первому номеру, у которого не снята трубка;
  • *-prim – звонок помечается как не отвеченный, если первый номер занят.

Продвинутые пользователи могут вволю поиграться с настройками – тут их 18 штук. Напротив каждой опции есть знак вопроса, нажатие на который расскажет, за что отвечает та или иная функция.

Таймаут по времени ожидания и неправильные действия

Добавим обработку неправильно введенной цифры и превышение времени ожидания. В вышеуказанном примере просто происходит отбой звонка.

Данное поведения указывается в диалплане с помощью ключей t и i. Добавим их в наш конфиг:

vi /etc/asterisk/extensions.conf

exten => 333,1,Answer()
 same => n,Background(basic-pbx-ivr-main)
 same => n,WaitExten(5)
exten => 1,1,Goto(managers,s,1)
exten => 2,1,Goto(support,s,1)
exten => t,1,Dial(SIP/101)
exten => i,1,Background(invalid)
 same => n,Goto(outcaling,333,3)

 * где t,1,Dial(SIP/101) — позвонить по номеру 101, если будет превышен таймаут ожидания; i,1,Background(invalid) — сообщить о том, что введен неправильный номер.

Установка графического интерфейса

Вот пошаговая инструкция:

1. Скачайте дистрибутив FreePBX 13 Distro. Существует несколько версий продукта: для разной разрядности операционной системы. Выбор 32 или 64-битной версии зависит от вашего программного обеспечения. Новичкам лучше не экспериментировать и обойти beta-версии Asterisk PBX стороной.

2. Запишите на диск или флешку образ системы. Для этого используйте стандартные утилиты, которые есть в каждом компьютере.

3. После записи загрузите машину с этого диска. Для этого измените параметры загрузки системы. Порядок действий зависит от конкретной версии BIOS. Обычно всю необходимую информацию можно найти в документации к своему компьютеру. Если все сделано правильно, то появится меню установки программы.

4. Выберите версию сервиса Asterisk PBX и режим, в котором будут работать жесткие диски. Доступны следующие варианты:

  • Full install – автоматически удалит всю информацию с жестких дисков и создаст единый RAID-массив. Такой режим повышает надежность работы системы и уменьшает вероятность отказов.
  • Full install NO RAID – установка системы без автоматического создания RAID.
  • Full install Advanced – установит систему и позволит выполнить ручное разделение диска.
  • HA Install – для дисков емкостью более 250 ГБ.

5. Выбрав нужный режим, переходим к настройкам Сети. Если вы используете DHCP-сервер (динамические IP-адреса), а в большинстве случаев это именно так, то просто нажмите ОК. При статическом IP укажите настройки для вашей Сети.

После этого остается выбрать часовой пояс и установить пароль для пользователя с особыми правами и полным доступом – root.
Ждем, пока система установит и обновит файлы Asterisk FreePBX. Перезагружаем компьютер, переходим в консольный режим и авторизуемся как пользователь с правами root.
Также в интерфейс можно зайти с другого компьютера, используя любой браузер. Для этого просто введите IP-адрес машины, где произведена установка FreePBX.
Тут придется еще раз задать логин и пароль

Важно помнить, что в целях безопасности они должны отличаться от пароля пользователя с правами root.

Установка FreePBX завершена. Теперь можно перейти непосредственно к настройке телефонии.

Транки

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

  1. Trunk name – наименование транка.
  2. Outbound CallerID – CallerID для исходящих звонков.
  3. CID Options – CallerID для входящих звонков.
  4. Maximum Channels – установление максимального количества каналов связи.
  5. Asterisk Trunk Dial Options – дополнительные настройки вызова.
  6. Continue if Busy – возможность позвонить через другой транк в случае ошибки.
  7. Disable Trunk – отключение транка.
  8. Dialed Number Manipulation Rules – правила, по которым формируется номер при исходящем вызове.
  9. Outgoing Settings – настройки исходящих вызовов.
  10. Incoming Settings – настройки входящих вызовов.
  11. PEER Details and USER Details – указание настроек, полученных от провайдера.
  12. Registration – задание строки регистрации для входящей связи.

Зачем нужен Web-интерфейс FreePBX?

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

Последней версией пакета является FreePBX 13. По сути, это программная оболочка. Она позволяет управлять VoIP телефонией и выполнять настройку Asterisk без специальных знаний в области программирования. Если говорить упрощенно, она переводит программный язык, понятный машине, в визуальную информацию, которая понятна пользователю, и наоборот. Чтобы выполнить настройку FreePBX с нуля, оболочку нужно установить на компьютер, который будет использоваться для работы с VoIP телефонией.

Настройка голосового меню для Asterisk

Создаем файл company.tree в корне папки Asterisk. В этом файле будет прописан алгоритм работы голосового меню.

Идем в extensions.conf и в самое начало файла вставляем следующее

#include «company.tree»

этим самым мы подгружаем недавно созданный файл в общий план маршрутизации Asterisk. Там же в extensions.conf ищем где у вас настроены входящие звонки (у меня раздел назван , у вас может быть другое название) и вставляем в самое начало следующую строчку

exten => 84951234567,1,Goto(company_tree,s,1)

здесь вместо 84951234567 указываете Ваш внешний номер при звонке на который будет проигрываться голосовое меню. В моем же случае я просто указывал свой SIP-идентификатор, под которым зарегистрирован у провайдера. Если кратко, то Asterisk переведет нас в контекст company_tree на первую строку «s», который находится в файле company.tree, который мы благополучно подгрузили в общий план маршрутизации выше.

Теперь переходим в файл company.tree и заполняем наш алгоритм голосового меню. Ниже весь код с комментариями:

На этом все. Голосовое меню c приветствием для Asterisk настроено. Осталось только перезагрузить план обзвона из консоли

asterisk -r dialplan reload

Asterisk. Делаем простейшее голосовое меню (IVR).

Одним из основных достоинств Астериск является легкость, с которой с помощью него создаются IVR.
Для того что бы создать IVR нужно в первую очередь представить себе его структуру, то есть что за чем и как будет делаться, и составить тексты.
Сейчас мы опишем создание простейшего голосового меню, состоящего из приветствия и после приветствия, переключение на оператора. Файл в котором хранится фраза «Здравствуйте, вы позвонили в нашу компанию» называется welcome.wav и находится в директории /home/menu. Номер, который принимает звонки 444. А выглядеть меню будет так:

sip-in
exten => 444,1,Set(home="/home/menu")
exten => 444,2,Wait(1)
exten => 444,3,Playback(${home}welcome)
exten => 444,4,Dial(SIPoperator)

У нас появилась новая функция Playback, она предназначена для проигрывания звуковых файлов, файлы должны быть подготовленны заранее, так как мы описывали в статье ffmpeg, подготавливаем звуковые файлы для Asterisk. Есть еще сходная функция Background, она отлдичается от Playback тем, что не блокирует нажатия на кнопки, то есть в момент проигрывания голосовых меню, позволяет реагировать на передаваемые звонившим DTMF.

Это простейший IVR и в нем отсутствует основная особенность IVR, нет никакого выбора. Поэтому приведем пример с диалогом. Тут будет присутствовать вторая начитка: «Для связи того что бы прослушать тарифы нажмите 1, для связи с оператором нажмите 2». Файл содержащий эту начитку будет называться menu.wav и файл с тарифами соответсвенно tariff.wav. После прочтения инструкции должен осуществляться переход в главное меню.
Выглядит это так:

sip-in
exten => 444,1,Goto(menu,s,1)
 
menu
exten => s,1,Set(home="/home/menu")
exten => s,2,Wait(1)
exten => s,3,Playback(${home}welcome)
exten => s,4,Playback(${home}menu)
exten => s,5,WaitExten()
 
exten => 1,1,Playback(${home}tariff)
exten => 1,2,Goto(s,1)
 
exten => 2,1,Dial(SIPoperator)
 
exten => t,1,Playback(make_choice)
exten => t,2,Goto(s,1)
 
exten => i,1,Playback(wrong_choice)
exten => i,2,Goto(s,1)

Тут у нас появилось много нового. Во первых Goto — функция безусловного перехода. Если в качестве параметров ей передается 3 аргумента, это контекст, екстеншен и метка на которую нужно перейти. Если всего 2 аргумента, то подразумевается, что контекст текущий.
Так же появились екстеншены i — это реакция на неправильно нажатую кнопку, Invalid input и t — реакция на истекшее время ожидания выбора. Если их не описать то при истечении таймаута или при неправильно нажатой кнопке произойдет обрыв соединения.

Filed in VoIP | hilik

Пошаговая инструкция по настройке интерфейса FreePBX

Чтобы подробно изучить все модули, придется ознакомиться с официальным руководством по работе с системой. Скачать его можно на официальном сайте Asterisk. Однако ниже приведена простая пошаговая инструкция по настройке FreePBX с нуля, которая позволит использовать базовые опции и приступить к работе:

Нажимаем меню Admin, переходим на вкладку System Admin и активируем FreePBX. Активация необходима для того, чтобы получить доступ к платным модулям и поддержке. Если процедура проведена верно, то при повторном переходе на вкладку System Admin вы увидите меню, представленное на фото.

  • Нажимаем Submit – сохраняем настройки.
  • Переходим на вкладку Time Zone. Выбираем часовой пояс. Нажимаем Submit и сохраняем настройки.
  • На вкладке Storage вводим e-mail, куда будут приходить отчеты о системных ошибках, связанных с жестким диском. Также система предупредит, когда доступное дисковое пространство подойдет к концу.
  • Выбираем пункт меню Settings, вкладка Asterisk SIP Settings и переходим к настройкам этого модуля. На первой вкладке все оставляем по умолчанию, кроме пункта Local Networks. Заполняем его так, как показано на скриншоте. Первое поле – адрес Сети, второе – маска.
  • После этого нажимаем Submit, ждем обновления настроек и нажимает кнопку Apply Config в правом верхнем углу. Далее таким же образом будет необходимо подтверждать все действия.
  • Следующий этап – создание и настройка внутреннего номера. Для этого выбираем меню Applications и переходим к модулю Extension. Когда модуль прогрузится, нажимает Quick Create Extension и заполняем поля, следуя пошаговой инструкции на экране. Вы можете видеть на фото первый шаг.
  • После того как номер создан, переходим к настройке. Для этого нажмите значок с карандашом. Проверяем правильность всех настроек.
  • Регистрируем софтфон. Для этого скачиваем и устанавливаем на компьютер нужное приложение. Мы рассмотрим процесс на примере бесплатного софтфона MicroSIP. Запускаем программу и вводим необходимые параметры, как показано на фото.
  • Нажимаем кнопку «Сохранить». Если все сделано верно, статус в софтфоне должен измениться на онлайн.
  • Теперь переходим к настройке SIP транка – номера, с которого можно звонить на внешние телефоны. Для этого переходим в меню Connectivity и выбираем пункт Trunks.
  • Чтобы создать новый транк, нажимаем Add Trunk. Выбираем SIP Trunk и вводим настройки, которые можно получить у провайдера.
  • В поле Peer Details на вкладке SIP Settings вводим данные, как на скриншоте.
  • Нажимаем Submit и применяем настройки.
  • Настраиваем исходящую маршрутизацию. Для этого переходим в меню Connectivity и выбираем пункт Outbound Routes. Далее нажимаем кнопку Add Outbound Routes и вводим нужные данные.
  • Теперь записываем звуковой файл с приветствием от имени вашей компании. Его будут слышать абоненты, которые позвонят вам. Для записи можно использовать стандартные средства Windows.
  • Далее переходим в меню Admin и выбираем пункт System Recordings. Вводим нужные настройки и загружаем звуковой файл с приветствием.
  • Теперь создаем голосовое меню. Для этого переходим в меню Applications и выбираем пункт IVR. Нажимаем кнопку Add IVR и заполняем нужные данные.
  • Сохраняем и применяем изменения.
  • Создаем входящий маршрут. Для этого переходим в меню Connectivity и выбираем пункт Inbound Routes. Далее нажимаем кнопку Add Inbound Routes и заполняем необходимые поля. Остается сохранить и применить изменения.

Минимальная настройка FreePBX с нуля завершена. Теперь можно совершать исходящие звонки и принимать входящие вызовы. Вами был создан внутренний и зарегистрирован внешний номер. А также настроено приветствие для входящих вызовов.

FreePBX — настройка с нуля: инструкция на News4Auto.ru.

Наша жизнь состоит из будничных мелочей, которые так или иначе влияют на наше самочувствие, настроение и продуктивность. Не выспался — болит голова; выпил кофе, чтобы поправить ситуацию и взбодриться — стал раздражительным. Предусмотреть всё очень хочется, но никак не получается. Да ещё и вокруг все, как заведённые, дают советы: глютен в хлебе — не подходи, убьёт; шоколадка в кармане — прямой путь к выпадению зубов. Мы собираем самые популярные вопросов о здоровье, питании, заболеваниях и даем на них ответы, которые позволят чуть лучше понимать, что полезно для здоровья.

Asterisk. Голосовое меню своими руками

Всем привет. Постараюсь без нудятины рассказать о том, как создать голосовое меню приветствие на Asterisk.

Буду рассказывать на своем примере голосового меню. У меня оно было следующего вида:

Здравствуйте! Вы позвонили в КОМПАНИЮ, выберите пункт меню, введите внутренний номер или дождитесь ответа секретаря

  • один — первый отдел
  • два — второй отдел
  • шесть — шестой отдел
  • для повтора нажмите НОЛЬ

При этом если человек ничего не вводил его должно было перенаправить на секретаря, если человек ввел не то что надо, его тоже перенаправляет на секретаря.

Я разворачивал свой Asterisk в связке с CentOS. На самом деле это не имеет особого значения, но решил все же уточнить.

И так, на момент чтения этой статьи у Вас должно быть следующее:

  1. установленный Asterisk
  2. настроена минимальная маршрутизация звонков в extensions.conf
  3. и как минимум пара внутренних номеров настроенных в sip.conf

Настройка голосового меню для Asterisk

Создаем файл company.tree в корне папки Asterisk. В этом файле будет прописан алгоритм работы голосового меню.

Идем в extensions.conf и в самое начало файла вставляем следующее

#include «company.tree»

этим самым мы подгружаем недавно созданный файл в общий план маршрутизации Asterisk. Там же в extensions.conf ищем где у вас настроены входящие звонки (у меня раздел назван , у вас может быть другое название) и вставляем в самое начало следующую строчку

exten => 84951234567,1,Goto(company_tree,s,1)

здесь вместо 84951234567 указываете Ваш внешний номер при звонке на который будет проигрываться голосовое меню. В моем же случае я просто указывал свой SIP-идентификатор, под которым зарегистрирован у провайдера. Если кратко, то Asterisk переведет нас в контекст company_tree на первую строку «s», который находится в файле company.tree, который мы благополучно подгрузили в общий план маршрутизации выше.

Теперь переходим в файл company.tree и заполняем наш алгоритм голосового меню. Ниже весь код с комментариями:

На этом все. Голосовое меню c приветствием для Asterisk настроено. Осталось только перезагрузить план обзвона из консоли

asterisk -r dialplan reload

Аудиофайлы для голосового меню в Asterisk

Выше в структуре файла company.tree есть строчка

exten => s,2,Background(/etc/IVR/menu)

здесь

  • Background — это команда на проигрывание фоном вашей записи
  • /etc/IVR/ — путь для папки с аудиофайлом
  • menu — название самой записи. Указывается без расширения. Астер сам знает какой файл забрать.

Конвертация WAV в ULAW

В консоли вашей ОС Linux пишем следующее

sox -V /etc/IVR/menu.wav -r 8000 -c 1 -t ul /etc/IVR/menu.ulaw

здесь

  • /etc/IVR/menu.wav — полный путь до вашего файла с расширением, который нужно конвертировать
  • /etc/IVR/menu.ulaw — полный путь и имя файла с расширением, который получите на выходе

После выполнения команды увидите примерно следующее

Качаете WinSCP с ОФИЦИАЛЬНОГО САЙТА При запуске создаете новое подключение к вашему Linux и далее увидите что-то на подобие интерфейса TotalCommander. Ну а дальше копирует файлы, создаете папки и так далее. В моем случае я создал папку IVR в каталоге etc где у меня и лежит мое голосовое меню.

Попытался кратко резюмировать то, что нарыл в интернете, когда разбирался с настройкой голосового меню для Asterisk. В итоге Вам представлена рабочая схема, которой можете пользоваться

Спасибо за внимание

Теоретическая часть

Рассмотрим, какие события происходят в различных частях системы.

Asterisk

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

Механизм реализуется предельно просто. При попадании входящего вызова в очередь у свободных агентов переменная принимает значение . Возможны и другие варианты. Единственное значение, которое не мог принять в данном случае параметр , это – .

Исследуя , можно увидеть, что при передаче звонка в очередь (в колонке прописывается значение ) у всех событий в колонке устанавливается значение .

Вкратце о CDR

Необходимо иметь представление о том, как функционирует CDR и в какое мгновение туда заносятся сведения, видимые потом нами в Report CDR. Итак, CDR в контексте ОС являет собой базу данных, куда Asterisk помещает детальный отчет по звонкам. В нашей ситуации представлена база под названием , расположенная в Mysql.

Нам удалось показать на практическом примере, что информация о вызове с некоторым записывается в не в тот же миг, как возникло определенное событие, а только после того, как система зафиксировала завершение вызова ().

Принцип работы решения

Решения представляет собой Bash-скрипт, в который передаются три параметра:

  • , чтобы фильтровать информацию, поступающую из CDR;
  • (номер абонента). Необходим, чтобы мы знали, кому необходимо перезванивать;
  • номер очереди, куда был направлен вызов. Этот параметр позволяет определить цель звонившего, узнать, кому требуется направить уведомление по электронной почте о пропущенном звонке.

Скрипт подключается к в Mysql и берет перечень значений переменной с указанным . Из списка необходимо убрать все значения, кроме (удалить и другие). Оставшаяся опция будет означать, что на звонок был ответ, либо будет зафиксирован пропущенный вызов. В последнем случае на электронную почту скрипт отправляет соответствующее сообщение.

Несколько опережая события, отметим один нюанс. Asterisk исполняет команды строго в определенной последовательности. Выполнение следующей начинается только после того, как была завершена предыдущая, что вполне вписывается в логику событий. Но производить вызов Bash-скрипта нам придется до момента выполнения команды . Получается, что на временном отрезке, когда скрипт выполняется, CDR еще не содержит сведений о необходимом нам UniqueID. Эти данные еще просто не внесены в БД.

Чтобы решить эту дилемму, вызов скрипта мы будем производить, пользуясь опцией «». Это позволит Asterisk без задержки приступить к реализации следующего этапа, то есть . В самом скрипте укажем незначительную временную паузу, которая позволит системе записать данные с необходимым нам UniqueID в CDR.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Техноарена
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: