Дмитрий Барышников
05.08.2020
14649

Обзор модулей при установке Asterisk

В данной статье мы рассмотрим модули, которые могут установлены в Asterisk при его сборке. Данные модули мы выбираем в menuselect, сегодня рассмотрим модули раздела Applications, а именно для чего их необходимо устанавливать и как они работают. После того, как мы переходим на финальный этап установки, а именно выбор необходимых модулей для установки, мы выполняем команду […]

Модули при установке Asterisk

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

Обзор модулей выполнялся на дистрибутиве Asterisk 13.

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

Окно menuselect

Приложения ядра

app_agent_pool – приложение, предназначенное для формирования шаблона агентов очередей и их входа и выхода из очереди.

Пример настройки:

agents.conf
[new_agents](!)
ackcall=yes
acceptdtmf=#
autologoff=20
 
[101](new_agents)
fullname=Ivan Ivanov
 
[102](new_agents)
fullname=Petr petrov
 
extensions.conf
[agent_login]
exten = _XXX,1,NoOp()
same = n,Set(CHANNEL(dtmf-features)=H)
same = n,Set(CONNECTEDLINE(all)="Awaiting call" <${EXTEN}>)
same = n,Answer()
same = n,AgentLogin(${EXTEN})
same = n,Hangup()
 
[agents]
exten = _XXX,1,NoOp()
same = n,AgentRequest(${EXTEN})
same = n,Congestion()

app_authenticate – приложение, которое при вызове требует от агента ввести заданный пароль.

Пример настройки:

exten => _101,1,Answer()
exten => _101,n,Authenticate(1234)

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

app_cdr – приложение, позволяющее вести подробные отчеты о звонках

app_celgenuserevent —  Это приложение используется для генерации пользовательских событий типа EV_USER_EVENT. Например, можно логировать выбор звонящего в голосовом меню:

exten => 7,1,CELGenUserEvent (MENU_CHOICE,Caller chose option 7)

app_channelredirect – приложение перенаправляет указанный канал на обработку в заданную точку диалплана

app_chanspy – приложение, позволяющее вклиниваться в канал для прослушивания и суфлирования разговора.

exten => _111,n,ChanSpy(SIP/${EXTEN:3},wqdv(-1))

app_confbridge – приложение, позволяющее создавать конференцию или вызывать существующую.

app_controlplayback – приложение проигрывает указанный звкуковой файл, по завершению устанавливает в переменную канала $ {CPLAYBACKSTATUS} статус попытки.

app_db — Используется для добавления/изменения/удаления записей в встроенной базе данных SQLite Asterisk (является устаревшим)

app_dial – Применяется для соединения каналов (совершение телефонных звонков)

app_directed_pickup – приложение позволяет ответить на вызов другого агента (направленный перехват)

exten=_**.,1,Pickup (SIP/${EXTEN:2})

app_directory – Приложение представляет имена из файла voicemail.conf, для того чтобы применять поиск по имени.

app_disa – Позволяет АТС принимать входящие DTMF для совершение транзитных вызовов.

Пример:

exten => s/XXXXXXXXXX,1,Answer
exten => s/XXXXXXXXXX,2,Set(TIMEOUT(digit)=3)
exten => s/XXXXXXXXXX,3,Set(TIMEOUT(response)=5)
exten => s/XXXXXXXXXX,4,Authenticate(XXXXX)
exten => s/XXXXXXXXXX,5,DISA(no-password,mycontext)

app_dumpchan – выводит в консоль информацию о переменных канала, при заданном уровне verbose

exten => _123,1,Dial(SIP/123)
exten => _h,1,DumpChan(3)

app_echo – Приложение возвращает вызывающему его звуковые сигналы. (применяется для тестирования прохождения голоса)

exten => 100,1,Answer()
exten => 100,2,Echo()

app_exec – Выполняет функции диалплана, в которых есть условия (Exec(), TryExec() и ExecIf())

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

app_followme – приложение переводит вызывающего абонента на указанные номера, которые находятся в файле followme.conf

Пример:

extensions.conf:
exten => _123,1,Answer
exten => _123,2,Dial(SIP/${EXTEN},12,t)
exten => _123,3,GotoIf($["${DIALSTATUS}" = "NOANSWER"]?:4:5)
exten => _123,4,Followme(${EXTEN})
exten => _123,5,VoiceMail(u${EXTEN})
exten => _123,6,Hangup
 
followme.conf:
 
[123]
context => default
number => 124,30
number => 125,30

app_forkcdr – приложение запускает новую CDR на текущем звонке. Разделенный CDR будет соединен с концом CDR связанного с каналом.

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

app_milliwatt — Генерирует тональный сигнал 1004 Гц для тестирования потерь на аналоговых цепях

Пример:

exten=>064,1,Answer()
same=>n,Milliwatt()

app_mixmonitor – записывает разговор двух абонентов и сводит его в одну дорожку

Пример:

exten => _70.,1,NoOp(Запись с помощью MixMonitor)
same => n,MixMonitor(/var/spool/asterisk/monitor/${EXTEN}.wav)
same => n,Dial(SIP/${EXTEN:2},30)

app_originate – приложение, создающее исходящий звонок и соединяющее его с заданными номерами или приложениями.

app_page – создает несколько голосовых соединений для заданных устройств

app_playback – приложение, позволяющее воспроизводить указанный голосовой файл в канал (не позволяет вводить DTMF)

exten => 123,1,Playback(/var/lib/asterisk/sounds/record-test)

app_playtones – приложение проигрывает список тонов DTMF

app_privacy – требует ввести номер телефона вызывающего абонента, если не был передан CallerID

app_queue – приложение распределяет вызовы по заданным агентам

app_read – приложение считывает введенные цирфы и записывает их в определенную переменную.

exten => s,1,Read(QUENUM,quenum,3,,,10)

app_readexten – считывает введенные цифры и передает вызов на внутренний номер или контекст

app_record – записывает разговор в заданный файл

exten => 71,1,NoOp (Запись с помощью Record)
same => n,Answer()
same => n,Record(/var/lib/asterisk/sounds/record-test.wav)

app_sayunixtime – воспроизводит время в указанном формате используя файлы из директории /var/lib/asterisk/sounds

exten => 100,1,Answer
exten => 100,n,SayUnixTime()

app_senddtmf – позволяет передавать DTMF вызываемой стороне

app_sendtext – приложение позволяет отправить текстовое сообщение в канал

same => n,SendText(Your Text Here)

app_softhangup – приложение, которое запрашивает завершение связи на указанном канале

app_speech_utils – Разрешает связь с инструментами для распознавания речи.

app_stack – альтренатива app_macro, включающая в себя Gosub(), GoSubIf(), Return(),StackPop(), LOCAL() и LOCAL_PEEK()

app_stasis – Приложение, которое позволяет запускать внешние ARI и передавать им управлние каналом

app_system – приложение позволяет из диалплана вызывать linux команды

exten => 123,n,System(reboot)

app_talkdetect – вызывает уведомления, если Asterisk обнаружил тишину или разговор в канале

app_transfer – позволяет переводить вызов на другой внутренний номер

exten => 100,1,Transfer (SIP/123)

app_userevent – позволяет отправить собственное событие в AMI

app_verbose – приложение отправляет произвольный текст в вывод консоли

app_voicemail – приложение дает право вызывающей стороне оставить голосовое сообщение для заранее указанного почтового адреса.

app_waituntil – ожидает до тех пор, пока время не будет соответствовать указанному

exten = 123,1,WaitUntil (epoch)

app_while – приложение, позволяющее использовать цикл в диалплане до тех пор, пока условие верно. Может применятся, например, в автодозвоне пользователей.

app_alarmreceiver – обеспечивает поддержку получения о тревоге от охранной или пожарной панели в формате Ademco Contact ID.

app_amd – приложение позволяет обнаруживать автоответчики при исходящих звонках

app_attended_transfer – приложение, позволяющее выполнять переводы с уведомлением.

app_blind_transfer – приложение позволяет выполнять переводы без уведомления.

app_chanisavail – проверяет доступность указанных каналов.

Пример:

[test]
exten => _X.,1,Macro(chanisavail,${EXTEN})
 
[macro-chanisavail]
exten => s,1,Set(_PING=SIP/siptrunk)
exten => s,n,ChanIsAvail(${PING }1&${ PING }2&${ PING }3&${ PING }4,a)
exten => s,n,Dial(${CUT(AVAILCHAN,,1)}/${ARG1},,e)

app_dictate – Приводит к запуску виртуального диктофона.

exten => 100,1,Dictate(/tmp/test123)

app_externalivr – позволяет подключаться к внешним IVR – приложениям

exten => 456,1,ExternalIVR(super_test,${ ARGUMENT})

app_festival – синтезирует указанный текст в речь

exten => 123,1, Answer
exten => 123,2, Festival («hellow world»)

app_getcpeid – возвращает идентификатор ADSI CPE для операций с положенной аналоговой трубкой.

exten => 100,1,GetCPEID()

app_image – приложение передает изображение на устройства, которые поддерживают их приём.

app_ivrdemo – пример приложения для разработчиков

app_jack —  Это приложение для подключения канала Asterisk к входному и выходному разъему, чтобы аудио можно было обрабатывать в другом приложении или воспроизводить аудио из другого приложения

app_meetme – создает конференцсвязь. является устаревшим относительно confbridge и трубет установки dahdi

app_morsecode – воспроизводит заданный список символов азбукой Морзе

app_mp3 – позволяет использовать mpg123 для воспроизведения mp3 файлов

app_saycounted — Выбирает и воспроизводит правильную форму существительного в единственном или множественном числе

app_sms – подключается к центрам обслуживания SMS и аналоговым телефонным аппаратам с поддержкой SMS (работает только в определённых странах)

app_url – Позволяет передавать URI на указанный канал.

app_waitforring – приложение, ожидающее звонка, заданное количество времени

exten => 100,1,Answer()
exten => 100,n,WaitForRing(5)
exten => 100,n,Verbose(hello hello)

app_waitforsilence – приложение ждёт, когда на канале будет тишина, чтобы выполнить определенное действие

exten => 100,1,Answer()
exten => 100,n,WaitForSilence(500,5)
exten => 100,n,System(reboot)

app_zapateller – генерация специального информационного тона

На этом обзор раздела Application окончен.

Кейсы внедрения
Asterisk от VoxLink
Узнайте, какие крупные компании уже используют Asterisk в работе.
Скачать
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

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

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

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


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

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 сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.