Александр Мисюрин
19.10.2021
3970

Оповещения о записи вызовов. Музыка на удержании отдельно от основной. Различные дополнения в статистику при поднятой трубке.

В данной статье работать в основном будем с диалпланом Asterisk, частично затронем базу данных. Рассмотрим: — Настройку музыки в ожидании отдельно от основной;— Настройку оповещений при исходящих вызовах вызываемой стороне;— Настройку оповещений при входящих вызовах;— Создание макросов для выполнения при подъеме трубки оператором. 1. Оповещение о записи разговора при исходящем вызове. Настроим через переписывание контекста […]

В данной статье работать в основном будем с диалпланом Asterisk, частично затронем базу данных.

Рассмотрим:

— Настройку музыки в ожидании отдельно от основной;
— Настройку оповещений при исходящих вызовах вызываемой стороне;
— Настройку оповещений при входящих вызовах;
— Создание макросов для выполнения при подъеме трубки оператором.

Тестирование проводилось на системе с установленными Asterisk 13, FreePBX 13.

1. Оповещение о записи разговора при исходящем вызове.

Настроим через переписывание контекста исходящего вызова. В системе FreePBX это обычно [macro-dialout-trunk]. Для удобства, опираться будем на переменную ${CDR(accountcode)}, так как ее можно прописать прямо в веб-интерфейсе.

Перед строкой, ведущей на вызов (у вас может отличаться, у меня же: exten => s,n(gocall), Macro(dialout-trunk-predial-hook,)). Добавляем две строки:

exten => s,n,NoOp(${CDR(accountcode)}--${CHANNEL(channeltype)})
exten => s,n,ExecIf($[ "${CDR(accountcode)}"="direct_speech" & "${CHANNEL(channeltype)}"="SIP" ]?Set(DIAL_TRUNK_OPTIONS=${DIAL_TRUNK_OPTIONS}A(ru/custom/call_recording)))

Опция A в dial отвечает как раз за оповещение вызываемой стороне. Добавлять ее будем соответственно только при совпадении переменной с нужным значением.

Переменная в веб-интерфейсе
Переменная в веб-интерфейсе
Если вы используете «чистый» Asterisk, достаточно прописать опцию A в самом Dial. Если же нужно условие, то опираться также на назначенную переменную каждому внутреннему номеру.

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

2. Оповещение о записи вызова при прямом наборе из ИВР.

К данной задаче можно подойти двумя способами:

Первый: создать Custom Destination на определенный контекст, в котором добавлять оповещение. В таком случае направлять на оповещение можно будет из веб-интерфейса, а редактировать в конфигурационных файлах. Что позволит дать обычным пользователям возможность добавлять подобные маршруты.

Второй: прямое редактирование ИВР через конфигурационные файлы.

Рассмотрим оба варианта.

Создаем контекст в конфигурационном файле extensions_custom.conf

[from-ivr-recording]
exten => _XXX,1,NoOp(Dial from ivr to ${EXTEN})
same => n,Playback(ru/custom/call_recording)
same => n,Goto(ext-local,${EXTEN},1)

В веб-интерфейсе создаем Custom Destination.

Направление на контекст
Направление на контекст

В ИВР добавляем направление на него, по определенной маске (либо отдельными номерами).

Направление из ИВР по маске
Направление из ИВР по маске

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

Второй способ несколько проще и быстрее.

Открываем файл extensions_override_freepbx.conf и добавляем в него следующее:

[ivr-#];# - номер ИВР, который можно посмотреть через веб-интерфейс в адресной строке
exten => _XXX,1,NoOp(Dial from ivr to ${EXTEN})
same => n,Playback(ru/custom/call_recording)
same => n,Goto(ext-local,${EXTEN},1)
Номер ИВР
Номер ИВР

Отдельная музыка на удержании. Стандартно, при вызове используется moh, находящийся в директории default (для FreePBX). Если необходимо сменить его, можем воспользоваться следующим методом.

Использовать будем макрос, выполняющийся при подъеме трубки вызываемой стороной, при внутренних вызовах. Следовательно, необходимо убедиться что у вас он прописан. Обычно это делается в контексте [macro-dial-one], где к переменным Dial добавляется строка вида M (auto-blkvm).

Макрос, выполняемый при подъеме трубки, обычно находится в /etc/asterisk/extensions_additional.conf, изменим его через конфигурационный файл /etc/asterisk/extensions_override_freepbx.conf.

[macro-auto-blkvm]
include => macro-auto-blkvm-custom
exten => s,1,ExecIf($["${FROMQ}" = "true" & "${CALLFILENAME}" != "" & "${CDR(recordingfile)}" = ""]?Set(CDR(recordingfile)=${CALLFILENAME}.${MON_FMT}))
exten => s,n,Set(__MACRO_RESULT=)
exten => s,n,Set(CFIGNORE=)
exten => s,n,Set(MASTER_CHANNEL(CFIGNORE)=)
;Change begin
exten => s,n,Set(MASTER_CHANNEL(CHANNEL(musicclass))=moh-hold)
;Change end
exten => s,n,Set(FORWARD_CONTEXT=from-internal)
exten => s,n,Set(MASTER_CHANNEL(FORWARD_CONTEXT)=from-internal)
exten => s,n,Macro(blkvm-clr,)
exten => s,n,ExecIf($[!${REGEX("[^0-9]" ${DIALEDPEERNUMBER})} && "${DB(AMPUSER/${AMPUSER}/cidname)}" != ""]?Set(MASTER_CHANNEL(CONNECTEDLINE(num))=${DIALEDPEERNUMBER}))
exten => s,n,ExecIf($[!${REGEX("[^0-9]" ${DIALEDPEERNUMBER})} && "${DB(AMPUSER/${AMPUSER}/cidname)}" != ""]?Set(MASTER_CHANNEL(CONNECTEDLINE(name))=${DB(AMPUSER/${DIALEDPEERNUMBER}/cidname)}))
;--== end of [macro-auto-blkvm] ==--;

Соответственно директория MOH должна быть создана.

Директория музыки в ожидании
Директория музыки в ожидании

Теперь при подъеме трубки оператором и постановке вызова на удержание, проигрываться будет именно эта музыка, а не дефолтная.

Чтобы изменить музыку на удержании для исходящего вызова, достаточно указать ее в маршруте исходящей связи (FreePBX).

Исходящий маршрут и музыка в ожидании
Исходящий маршрут и музыка в ожидании
Если у вас «чистый» Asterisk, достаточно указать музыку в ожидании в контексте внешних вызовов. А для входящих, создать аналогичный макрос и прописать его в Dial для внутренних номеров.
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии

Остались вопросы?

Я - Игорь Кондрашин, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование


ближайшие курсы

ближайшие Вебинары

ONLINE

10 доводов в пользу Asterisk

Распространяется бесплатно.

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

Безопасен в использовании.

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

Надежен в эксплуатации.

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

Гибкий в настройке.

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

Имеет огромный функционал.

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

Интегрируется с любыми системами.

То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.

Позволяет телефонизировать офис за считанные часы.

В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.

Отличная масштабируемость.

Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.

Повышает управляемость бизнеса.

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

Снижает расходы на связь.

Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.