Здравствуйте,
Возникла такая необходимость передавать статусы всех звонков на другой сервер и там их анализировать
Написал такой dialplan
Нужно получить статус звонка Отвечен Не отвечен, занято и отменен звонок и отправить curl запрос на удаленный сервер с параметрами кто позвонил и кому позвонили с указанием, года времени, и т.д.
В данном диалплане отрабатываются только правила BUSY и NOANSWER, а правила ANSWER и CANCEL не отправляют curl запрос 1ни как не могу понять в чем проблема.
Заранее спасибо
[test_dial]
exten => _XXXX,1,NoOp(Тест DIALSTATUS)
;; Параметры
same => n,Set(DAY=${STRFTIME(${NOW},,%d)})
same => n,Set(MONTH=${STRFTIME(${NOW},,%m)})
same => n,Set(YEAR=${STRFTIME(${NOW},,%Y)})
same => n,Set(HS=${STRFTIME(${EPOCH},,%H:%M:%S)})
same => n,Set(CURL_URL=https://example.com/asterisk/)
same => n,Set(CURL_ANSWER=answer=callerid=${CALLERID(num)}&to=${EXTEN}&date=${YEAR}-${MONTH}-${DAY}&time=${HS}&id=${UNIQUEID})
same => n,Set(CURL_BUSY=busy=callerid=${CALLERID(num)}&to=${EXTEN}&date=${YEAR}-${MONTH}-${DAY}&time=${HS}&id=${UNIQUEID})
same => n,Set(CURL_NOANSWER=noanswer=callerid=${CALLERID(num)}&to=${EXTEN}&date=${YEAR}-${MONTH}-${DAY}&time=${HS}&id=${UNIQUEID})
same => n,Set(CURL_CANCEL=hangup=callerid=${CALLERID(num)}&to=${EXTEN}&date=${YEAR}-${MONTH}-${DAY}&time=${HS}&id=${UNIQUEID})
same => n,Dial(SIP/${EXTEN},10)
; Check DialStatus
;same => n,Set(call_status=${DIALSTATUS})
same => n,GotoIf($["${DIALSTATUS}"="ANSWER"]?Call_answer)
same => n,GotoIf($["${DIALSTATUS}"="BUSY"]?Call_busy)
same => n,GotoIf($["${DIALSTATUS}"="NOANSWER"]?Call_noanswer)
same => n,GotoIf($["${DIALSTATUS}"="CANCEL"]?Call_cancel)
; Answer
same => n(Call_answer),NoOp(Call was answered)
same => n,System(curl ${CURL_URL}"${CURL_ANSWER}")
same => n,Hangup()
; Busy
same => n(Call_busy),NoOp(Call busy)
same => n,System(curl ${CURL_URL}"${CURL_BUSY}")
same => n,Hangup()
; No Answer
same => n(Call_noanswer),NoOp(Call was noanswered)
same => n,System(curl ${CURL_URL}"${CURL_NOANSWER}")
same => n,Hangup()
; Cancel
same => n(Call_cancel),NoOp(Call was Cancel)
same => n,System(curl ${CURL_URL}"${CURL_CANCEL}")
same => n,Hangup()