Здравствуйте, господа!
Делаю e-mail уведомления о пропущенных звонках в очереди(Asterisk 12):
extensions_override_freepbx.conf
[ext-queues]
exten=>h,1,Verbose(0,HungUP!!!!!!!!!!!!!!!!!!!!!!!!!!!)
exten=>h,n,GotoIf($["${CDR(dstchannel)}"=""]?:hangup)
exten=>h,n,GotoIf($["${NODEST}"="5000"]?:step1)
exten=>h,n,System(/usr/local/bin/sendEmail.pl -f info@info.com -t info@info.com -u "Пропущен звонок ${CALLERID(num)}" -m "Пропущен звонок с номера ${CALLERID(num)} \nСрочно перезвоните Клиенту.")
exten=>h,n,Macro(hangupcall,)
exten=>h,n(step1),GotoIf($["${NODEST}"="7004"]?:hangup)
exten=>h,n,System(/usr/local/bin/sendEmail.pl -f info@info.com -t info@info.com -u "Пропущен звонок ${CALLERID(num)}" -m "Пропущен звонок с номера ${CALLERID(num)} \nСрочно перезвоните Клиенту.")
exten=>h,n(hangup),Verbose(0,${CDR(dstchannel)})
exten=>h,n,Macro(hangupcall,)
Чтобы отслеживать ${CDR(dstchannel)} я добавил exten=>h,n(hangup),Verbose(0,${CDR(dstchannel)})
${CDR(dstchannel)}=""(код работает), только тогда, когда очередь без агентов.
Когда вызов приходит в очередь, ${CDR(dstchannel)}=SIP/199-00005007 (например), и код не работает.
На другом сервере(Asterisk 11) ${CDR(dstchannel)}=''', пока агент не ответит. И всё работает.
Если убрать условие GotoIf($["${CDR(dstchannel)}"=""]?:hangup), то уведомления будут отсылаться при каждом hangup (не подходит).
В cdr.conf unanswered=yes на первом и втором сервере.
В чём причина?