Очень часто, когда возникают большие нагрузки на операторов, клиент может долго ожидать ответа и может не дождавшись положить трубку. В результате, потенциальный клиент до вас не дозвонился, но он обязательно дозвонится до кого-то из ваших конкурентов. Поэтому необходим своевременный отчет о таких пропущенных вызовах, чтобы можно было быстро перезвонить человеку.
Уведомления при потерянных вызовах на IVR
Если вызовы поступают на IVR, и звонящий не дождавшись ответа положил трубку, то для отчетов правим файл /etc/asterisk/extensions_override_freepbx.conf
# nano /etc/asterisk/extensions_override_freepbx.conf
[ivr-1] ;Номер ivr exten => h,1,System(python /usr/local/bin/sendmail.py "Пропущенный вызов в ${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)}с номера ${CALLERID(name)}")
Сохраняем и делаем reload астериска. Тепер. если позвонивший положит трубку слушая голосовое меню, то на почту прийдет уведомление. Сам sendmail.py находится в конце статьи.
Уведомление в группах вызова
Если необходимо уведомлять о потерянных вызовах в группах вызова, то также правим файл /etc/asterisk/extensions_override_freepbx.conf
# nano /etc/asterisk/extensions_override_freepbx.conf
[ext-group] exten => h,1,System(python /usr/local/bin/sendmail.py "Пропущенный вызов в ${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)}с номера ${CALLERID(name)}") exten => h,2,Macro(hangupcall,)
Уведомление в очередях
Если же вызов поступает в очередь, то в /etc/asterisk/extensions_override_freepbx.conf прописываем
[ext-queues] exten => h,1,ExecIf($["${CDR(dstchannel)}"=""]?System(python /usr/local/bin/sendmail.py "Пропущенный вызов в ${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} с номера ${CALLERID(name)}")) exten => h,2,Macro(hangupcall,)
Сам файл sendmail.py
#!/usr/bin/python # -*- coding: utf-8 -*- from email.MIMEText import MIMEText import smtplib import sys sender = 'noanswer@yourdomain.ru' # От кого recivers = 'youremail' # Ваш e-mail host = "localhost" text = sys.argv[1] msg = MIMEText(text, "", "utf-8") msg["Subject"] = "Уведомление о пропущенном вызове" smtpObj = smtplib.SMTP('localhost') smtpObj.sendmail(sender, recivers, msg.as_string()) smtpObj.close()
Не забудте дать права на запуск
chmod 755 /usr/local/bin/sendmail.py
Добрый день.
Сделал по вашему примеру, но почему то если клиент положил трубку на стадии сообщения приветственного, которое идет в начале очереди то приходит сообщение, если не дождавшись ответа оператора после нескольких гудков то сообщение не приходит.
В чем может быть проблемма?