freepbx уведомление о занятости абонента
ИТ База знаний
Полезно
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Уведомление о занятости при настройке Call Waiting в Asterisk
Функция Call Waiting при настройке в Asterisk или через FreePBX позволяет внутреннему номера принимать второй параллельный вызов, во время текущего разговора. Основной проблемой Call Waiting является то, что звонящий занятому абоненту слышит стандартный КПВ (Контроль посылки вызова, или просто гудок) в телефонной трубке, что создает ложное ощущение игнорирования.
Продвинутый курс по Asterisk
Концентрат редких знаний, для внедрения Asterisk в крупных предприятиях. Все это мы собрали в одном курсе для тебя.
Звонящий думает, что вызываемый абонент не взял трубку по причине обеда, перекура, невнимательности или похищения пришельцами.
Нас такой вариант не устраивает и мы предлагаем решение: звуковое уведомление звонящего о том, что вызываемый абонент сейчас разговаривает и не может принять вызов. Предложим звонящему подождать или позвонить попозже. Приступаем к реализации.
Настройка extensions_custom.conf
После чего, добавляем в файл следующую конфигурацию:
Разберемся с каждой строчкой контекста macro-dialout-one-predial-hook :
Аналогичным способом, как показано выше, мы проводим проверку для состояния хинта равному RINGINUSE. Готово. Перегружаем диалплан командой:
Не работает с Follow Me
Если вы столкнулись с проблемой того, что данный функционал не работает на внутренних номерах, в настройках которых включена опция Follow Me, то сделайте следующие действия:
Продвинутый курс по Asterisk
Концентрат редких знаний, для внедрения Asterisk в крупных предприятиях. Все это мы собрали в одном курсе для тебя.
Оповещение о занятости второй линии в asterisk
Параметр call-limit в asterisk
У меня есть очень популярная статья про настройку asterisk. Там я немного затронул тему активных линий у абонента, но совершил небольшую ошибку. Я упомянул параметр пира call-limit и порекомендовал поставить значение 1 тому, кто не будет использовать вторую линию. И указал, что в этом случае, если абонент уже разговаривает, звонящий услышит в трубке длинные гудки и поймет, что занято. Но это не так.
При значении call-limit=1, если линия уже занята, то звонящий просто получит сброс звонка, и не поймет в чем дело. А в логе сервера будет ошибка:
Если не настроить обработку этого события, то будет вообще не понятно, в каком состоянии абонент и почему идет сброс. Так что для обычных пиров все же стоит ставить call-limit хотя бы 2, чтобы была возможность работать со второй линией и не сбрасывать звонки. Если двух линий уже не хватает, то надо организовывать очередь. Делать лимит линий выше двух для обычного абонента считаю, что нет смысла.
Сегодня я предложу более элегантное решение при настройке нескольких линий.
Для отладки и тестирования работы voip я рекомендую сервис Zadarma. Плюс его в том, что после регистрации вы получите настройки пира для внутренней сети оператора. И внутри этой сети вы можете бесплатно звонить. Например, я одного пира регистрирую на sip клиенте смартфона и с него звоню на второй аккаунт, пир от которого настроен в астериске. Таким образом эмулирую внешний звонок. Удобно отлаживать различные конфигурации звонков, не требуя платного подключения.
Оповещение о занятости второй линии
Я буду опираться на указанную статью по настройке астериска. Покажу на ее примере, как оповестить звонящего о том, что абонент уже разговаривает. Там я предлагаю настройку реакции на занятую линию через функцию ChanIsAvail, которая проверяет доступность канала. Эта функция подойдет, только если у вас стоит ограничение на один канал, как приводится у меня в статье. Если вы хотите использовать более одной линии, то указанная функция не подходит. Сейчас я расскажу более красивое решение через проверку статуса экстеншена.
Я не проверял, есть ли в наборе звуков для asterisk готовая фраза на этот случай. Вместо этого просто записал свою, проговорив примерно следующее: «В настоящий момент абонент разговаривает, подождите на линии или перезвоните позже».
Итак, записываем указанную фразу в wav формате и загружаем на сервер. Перекодируем в формат, понятный для астериск:
Кладем новый файл в директорию /var/lib/asterisk/sounds. После этого открываем диалплан и редактируем контекст внутренних звонков. Рассмотрю самый простой случай, когда изначально было вот так:
Редактируем и приводим к такому виду:
Разберем, что здесь происходит:
В общем, это не принципиально, сами придумайте, как поступать в конкретном случае. Теперь про EXTENSION_STATE. Функция может принимать следующие значения:
Я не знаю точного описания всех значений, не нашел, но по названиям примерно понятно. Подобрал опытным путем те, что меня интересуют. Если пользователь разговаривает, значение BUSY, если он сам набирает кому-то, то INUSE, если ему идет звонок, но он еще не ответил, то RINGINUSE. Остальные значения в рамках указанной задачи меня не интересуют. Можете добавить сами обработку других ситуаций. Я раньше использовал для этого функцию DIALSTATUS, примерно так:
Изначально я собирался решать вопрос с уведомлением о занятости пира через dialstatus, но эта функция не подходит. Опытным путем узнал, что если первая линия занята, новый звонок идет на вторую, статус линии не будет busy. Эта функция не подходит.
И еще одно важное замечание. Во время тестирования, пока я не добавил явно в свойства пира call-limit=2, я не мог определить статус пира через EXTENSION_STATE. Не помню, какое значение получал при звонке, но оно точно было не BUSY во время разговора по первой линии. После того, как явно указал call-limit, все заработало как надо.
Заключение
Буду рад любым подсказкам и замечаниям к статье. Сам последнее время практически не занимаюсь телефонией. По привычке поддерживаю некоторые серверы, но отдалился от темы. Не слежу за ней и не делаю новых установок.
Asterisk: сообщение о занятой линии
Уведомление о занятости при настройке Call Waiting в Asterisk
Вступление
Функция Call Waiting при настройке в Asterisk или через FreePBX позволяет внутреннему номеру принимать второй параллельный вызов во время текущего разговора. Основной проблемой Call Waiting является то, что звонящий занятому абоненту слышит стандартный КПВ (Контроль посылки вызова, или просто гудок) в телефонной трубке, что создает ложное ощущение игнорирования. Звонящий думает, что вызываемый абонент не взял трубку по причине обеда, перекура, невнимательности или похищения пришельцами.
Нас такой вариант не устраивает и мы предлагаем решение: звуковое уведомление звонящего о том, что вызываемый абонент сейчас разговаривает и не может принять вызов. Предложим звонящему подождать или позвонить попозже. Приступаем к реализации.
Настройка extensions_custom.conf
Как можно понять по названию заголовка, настройку мы будем производить в одноименном файле extensions_custom.conf, который находится в директории /etc/asterisk/. Открываем его для редактирования:
После чего, добавляем в файл следующую конфигурацию:
Разберемся с каждой строчкой контекста macro-dialout-one-predial-hook:
выводим в консоль сервера состояние хинта. Здесь может быть : UNKNOWN, NOT_INUSE, INUSE, BUSY, UNAVAILABLE, RINGING, RINGINUSE, HOLDINUSE, ONHOLD
проверяем статус хинта: если он равен INUSE (находится в разговоре), то проигрываем для него заранее записанный файл (/var/lib/asterisk/sounds/ru/custom/abonent_zanyat_ogidayte, где сообщаем звонящему о занятости и просим подождать;
сразу после озвучивания нашего аудио, играем MoH (Music On Hold) звонящему; Аналогичным способом, как показано выше, мы проводим проверку для состояния хинта равному RINGINUSE. Готово. Перегружаем диалплан командой:
Если не работает с Follow me
Если вы столкнулись с проблемой того, что данный функционал не работает на внутренних номерах, в настройках которых включена опция Follow Me, то сделайте следующие действия:
ИТ База знаний
Полезно
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Уведомление о занятости при настройке Call Waiting в Asterisk
Функция Call Waiting при настройке в Asterisk или через FreePBX позволяет внутреннему номера принимать второй параллельный вызов, во время текущего разговора. Основной проблемой Call Waiting является то, что звонящий занятому абоненту слышит стандартный КПВ (Контроль посылки вызова, или просто гудок) в телефонной трубке, что создает ложное ощущение игнорирования.
Базовый курс по Asterisk
Мы собрали концентрат всех must have знаний в одном месте, которые позволят тебе сделать шаг вперед на пути к экспертному владению Asterisk
Звонящий думает, что вызываемый абонент не взял трубку по причине обеда, перекура, невнимательности или похищения пришельцами.
Нас такой вариант не устраивает и мы предлагаем решение: звуковое уведомление звонящего о том, что вызываемый абонент сейчас разговаривает и не может принять вызов. Предложим звонящему подождать или позвонить попозже. Приступаем к реализации.
Настройка extensions_custom.conf
После чего, добавляем в файл следующую конфигурацию:
Разберемся с каждой строчкой контекста macro-dialout-one-predial-hook :
Аналогичным способом, как показано выше, мы проводим проверку для состояния хинта равному RINGINUSE. Готово. Перегружаем диалплан командой:
Не работает с Follow Me
Если вы столкнулись с проблемой того, что данный функционал не работает на внутренних номерах, в настройках которых включена опция Follow Me, то сделайте следующие действия:
Продвинутый курс по Asterisk
Концентрат редких знаний, для внедрения Asterisk в крупных предприятиях. Все это мы собрали в одном курсе для тебя.
FreePBX. Настройка Астериск для уведомлений о пропущенных входящих вызовах.
Данная задача возникает в том случае, если клиент при вызове может ожидать довольно длительное и неопределенное время пока ему ответят. Часто человек не дожидается и кладет трубку. Вот о таких событиях мы и поговорим.
Задача. Необходимо понять: теряются ли у нас входящие вызовы? Если да, то получить номер звонящего клиента, чтобы затем ему можно было перезвонить.
Голосовое меню FreePBX
Допустим, все входящие вызовы у нас поступают в голосовое меню. Есть необходимость оперативно получать пропущенные вызовы, которые завершились на IVR. Тогда необходимо править следующий файл:
[root@localhost asterisk]# nano /etc/asterisk/extensions_override_freepbx.conf
Сохраняем изменения. Применяем. Теперь в случае, если позвонивший положит трубку, слушая голосовое меню, то придет письмо на почту с его номером.
Внимание: скрипт sendEmail.pl в стандартную поставку ОС не входит, но его можно спокойно найти в интернете по его названию.
Уведомления в группах вызова FreePBX
Но чаще пропущенные вызовы можно наблюдать на группах вызова или же очередях. Когда операторы заняты в данный момент и занимаются обработкой вызовов, а клиент ждет. Чтобы настроить уведомления для группы вызова, нам необходимо добавить такие строки диалплана:
[root@localhost asterisk]# nano /etc/asterisk/extensions_override_freepbx.conf
Уведомления в очередях FreePBX
Если же входящие вызовы у нас поступают в очередь, то добавляем такое правило: