Настройка CallBack при помощи Call File. Отложенный CallBack
Функция обратного звонка помогает разгружать Call-центры и позволяет принимать заявки на звонки даже в нерабочее время. В этой статье рассмотрим и настроем прием обратного звонка в рабочее время, когда все участники группы вызова заняты, а также регистрацию звонка в нерабочее. Задачи следующие: 1. Создавать возможность для клиента оставить CallBack в рабочее время для очереди при […]

Функция обратного звонка помогает разгружать Call-центры и позволяет принимать заявки на звонки даже в нерабочее время. В этой статье рассмотрим и настроем прием обратного звонка в рабочее время, когда все участники группы вызова заняты, а также регистрацию звонка в нерабочее.
Задачи следующие:
1. Создавать возможность для клиента оставить CallBack в рабочее время для очереди при длительном ожидании, а также реализовать голосовое оповещение.
2. Сделать возможность для клиентов оставлять заявку на звонок в нерабочее время и автоматического перезвона им в рабочее время.
Создание CallBack для рабочего времени:
Для начала создадим скрипт для создания callfile callback.sh
Код sh-скрипта для дневного времени:
#!/bin/sh
#Получаем номер из звонка
number=$1
callfile=/usr/src/callback/$number.call
rm -rf $callfile
#Создаем call-file
echo "Channel: Local/601@ext-queues
CallerID: $number
MaxRetries: 5
RetryTime: 300
WaitTime: 600
Context: callback
Extension: $number
Priority: 1" > $callfile
#перемещаем созданный call file в нужную директорию
chown asterisk. $callfile
mv $callfile /var/spool/asterisk/outgoing/
Кратко о строках:
Channel: <channel> — Какой канал использовать для звонка.
CallerID: <CallerID> — Установить Caller ID для звонка
MaxRetries: <number> — Количество попыток дозвона, где 0 соответствует одной попытке.
RetryTime: <number> — Время в секундах между попытками дозвона. Стандартно 300 сек.
WaitTime: <number> — Сколько секунд ожидаем поднятия трубки. Стандартно 45 сек.
Context: <context-name> — Имя используемого контекста (позже укажем его в extensions.conf).
Extension: <extensions> — Какой экстеншн используем в выбранном контексте (также в extensions.conf).
Priority: <priority> — С какого приоритета начинаем.
Сохраняем, обязательно даем права на выполнения # chmod 777 callback.sh
в extensions_custom.conf
[callback-to-to]
exten => s,1,System(/var/lib/asterisk/agi-bin/callback.sh ${CALLERID(num)})
same => n,Playback(custom/spasibo_s_vami_svyazhetsya_pervy_osvobodivshyisya_operator)same => n,Hangup()
[callback]
exten => _X.,1,NoOp(CallBack)
same => n,Wait(1)
same => n,Playback(ru/custom/client_prosil_perezvonit)
same => n,Dial(SIP/${EXTEN}@транк-через-который-звонить,220,r)
same => n,Hangup
Остальные настройки для этого CallBack проводим уже в Web. Для начала нам необходимо как-то направить из очереди на наш ранее созданный кастом. Для этого будет использоваться Custom Destinations

Заполняем по аналогии и переходим в нашу очередь операторов во вкладку Caller Announcements, нас интересует Periodic Announcements.

Выставляем необходимую периодичность звонка и создаем/указываем IVR

Указываем запись где сообщаем, что все заняты

и предлагаем нажать «#» если человек не желает больше ожидать звонка в общей очереди. Сохраняем и применяем настройки, после чего создаем специально отдельную очередь для обратных звонков. Это нужно сделать по двум причинам:

1. Queue No Answer – Yes – Чтоб вызов не уходил в сторону клиента до того, пока кто-то из операторов не возьмет звонок

2. Queue Weight – 10 – Пониженный приоритет для обратных звонков. У нас в приоритете те, кто ожидает своей очереди здесь и сейчас.
Остальные настройки уже не так важны. На этом с дневными CallBack мы закончили и переходим к ночным.
Отложенный CallBack для ночного времени:
Код sh-скрипта для ночного времени:
#!/bin/sh
#Получаем номер из звонка
number=$1
callfile=/usr/src/callback/$number.call
rm -Rf $callfile
#Создаем call-file
echo "Channel: Local/605@ext-queues
CallerID: $number
MaxRetries: 5
RetryTime: 300
WaitTime: 600
Context: callback
Extension: $number
Priority: 1" > $callfile
#перемещаем созданный call file в нужную директорию
chown asterisk. $callfile
Опять же не забываем давать разрешение на выполнение.
в extensions_custom.conf добавляем следующее
[callback-to-to-night]
exten => s,1,System(/var/lib/asterisk/agi-bin/callback_night.sh ${CALLERID(num)})
same => n,Playback(custom/My_svyazhemsya_s_vami_v_rabocheye_vremya)
same => n,Hangup()
Для организации звонков в рабочее время будем использовать crontab. Набираем # crontab –e
Нам необходимо чтоб обратный звонок начинался ежедневно в 10:05 и конструкция будет иметь следующий вид:
5 10 * * * /usr/bin/mv /usr/src/callback/*.call /var/spool/asterisk/outgoing/
Сохраняем. Как вы могли заметить, в скрипте мы используем уже другую очередь. Создаем по аналогии с очередью 601 очередь 605 после чего разруливаем в нерабочее время, например, через Time Conditions

И конечно направляем на ночную IVR

Где после оповещения предлагаем что-то нажать, чтоб оставить заявку на обратный звонок

И направляем через Custom Destinations на callback-to-to-night
На этом работы выполнены. Теперь, после заказа обратного звонка сгенерируется вызов и после клиент услышит оповещение: “Вам перезвонит первый освободившийся оператор” после чего вызов будет направлен на очередь с пониженным приоритетом где будет дожидаться ответа.
С “ночным” звонком все несколько интереснее. Да, он так же формируется, но в отличии от дневного звонка не сразу попадает в /var/spool/asterisk/outgoing/
а создает в отдельной созданной для этого папке. После чего через команду в crontab уже выполняет перенос в 10:05, что инициализирует вызов.

Остались вопросы?
Я - Виталий Шелест, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.
категории
- DECT
- Linux
- Вспомогательный софт при работе с Asterisk
- Интеграция с CRM и другими системами
- Интеграция с другими АТС
- Использование Elastix
- Использование FreePBX
- Книга
- Мониторинг и траблшутинг
- Настройка Asterisk
- Настройка IP-телефонов
- Настройка VoIP-оборудования
- Новости и Статьи
- Подключение операторов связи
- Разработка под Asterisk
- Установка Asterisk
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 сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.