Страница 1 из 1

Отправка почтовых уведомления о пропущенных в ОЧЕРЕДе

Добавлено: 23 дек 2020, 10:41
Nikit0ss
Отправка почтовых уведомления о пропущенных в очередь.
Добрый день. кругом есть статьи на тему отправки уведомлений, в основном все они связаны с пропущенным звонком в группе, например:

работает, првоерял.

Код: Выделить всё

[ext-group] ;
exten => h,1,System(echo "${CDR(start)} пропущен звонок от ${CDR(clid)} | Звонок длился: ${CDR(duration)} сек.  Группа ${NODEST} " | mail -s "Пропущен звонок от ${CDR(clid)}" -r NAME-OTPRAVITEL@gmail.com POLUCHATEL@mail.ru)
exten => h,2,Macro(hangupcall,)
а так же есть информация о пропущенных в очереди, НО:

Код: Выделить всё

[ext-queues]
exten => h,1,ExecIf($["${CDR(dstchannel)}"=""]?System(/usr/local/bin/sendEmail.pl -f
pbx1@company.ru -t info@company.ru -u "Queue ${NODEST} missed call from
${CALLERID(num)}" -m "Missed call in Queue ${NODEST} from
${CALLERID(num)}" -o message-charset=UTF-8))
exten => h,2,Macro(hangupcall,)
НО это использует "System(/usr/local/bin/sendEmail.pl"
у меня нет такого скрипта, и найти его не удалось, не говоря уже о проверке работоспособности реализации такой схемы.

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

Код: Выделить всё

[ext-queues]
exten => h,1,ExecIf($["${CDR(dstchannel)}"=""] | mail -s "Пропущенный вызов в ${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} с номера ${CALLERID(name)}" -r PBX01@,,,.ru n.m,,,,@,,,.com)
exten => h,2,Macro(hangupcall,)

Re: Отправка почтовых уведомления о пропущенных в ОЧЕРЕДе

Добавлено: 23 дек 2020, 14:45
ded
Nikit0ss, если знаний в этом чуть меньше нуля, то лучше обратиться в платный суппорт.

вы не можете переправлять из диалплана Астериск выполнение по условию прямо в системную команду mail

Код: Выделить всё

ExecIf($["${CDR(dstchannel)}"=""] | mail -s "Пропущенный вызов в ${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} с номера ${CALLERID(name)}" -r PBX01@,,,.ru n.m,,,,@,,,.com)
надо использовать System(mail....) как описано в примере для скрипта perl.

Чтобы проверить простую работающую конструкцию (выше) надо разбить задачу на подзадачи, и проверить каждое звено.
Например: работает у вас команда (просто из шелла)

Код: Выделить всё

mail -s "Пропущенный вызов в ${STRFTIME(${EPOCH},,%Y-%m-%d %H:%M:%S)} с номера ${CALLERID(name)}" -r PBX01@example.ru n.m@mycompany.com)
??
Думаю, что уже нет. И смотреть надо в отладку:
/var/log/maillog
dig mx example.ru
tcpdump host [output from dig mx example.ru]
и т.д.

А если всё же это работает, то проблема в permissions для Астериска на выполнение этой команды mail.