FreePBX, Elastix. Уведомление о пропущенных вызовах

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

Уведомления при потерянных вызовах на 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

Понравилась статья? Поделиться с друзьями:
Comments: 1
  1. ivan

    Добрый день.
    Сделал по вашему примеру, но почему то если клиент положил трубку на стадии сообщения приветственного, которое идет в начале очереди то приходит сообщение, если не дождавшись ответа оператора после нескольких гудков то сообщение не приходит.
    В чем может быть проблемма?

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

ИТ Проффи

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: