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

Выполнение команды при разрыве звонка

Добавлено: 22 дек 2017, 10:53
Prizr2k
Нужно выполнить скрипт когда входящий звонок на группу завершен(т.е. поговорили с оператором, или просто не дождались ответа и скинули, независимо кто положил трубку). Подскажите куда и как вставить команду System(bash test.sh)?

Есть группа вызова:
exten => 603,1,Macro(user-callerid,)
exten => 603,2,System(bash test.sh)
exten => 603,n,Macro(blkvm-setifempty,)
exten => 603,n,GotoIf($["${GOSUB_RETVAL}" = "TRUE"]?skipov)
exten => 603,n,Macro(blkvm-set,reset)
exten => 603,n,Set(__NODEST=)
exten => 603,n(skipov),Set(RRNODEST=${NODEST})
exten => 603,n(skipvmblk),Set(__NODEST=${EXTEN})
exten => 603,n,GosubIf($[${DB_EXISTS(RINGGROUP/603/changecid)} = 1 & "${DB(RINGGROUP/603/changecid)}" != "default" & "${DB(RINGGROUP/603/changecid)}" != ""]?sub-rgsetcid,s,1())
exten => 603,n,Gosub(sub-record-check,s,1(rg,603,dontcare))
exten => 603,n,Set(RingGroupMethod=ringall)
exten => 603,n(DIALGRP),Macro(dial,20,${DIAL_OPTIONS},778)
exten => 603,n,Gosub(sub-record-cancel,s,1())
exten => 603,n,Set(RingGroupMethod=)
exten => 603,n,GotoIf($["foo${RRNODEST}" != "foo"]?nodest)
exten => 603,n,Set(__NODEST=)
exten => 603,n,Macro(blkvm-clr,)
exten => 603,n,Goto(ext-group,604,1)
exten => 603,n(nodest),Noop(SKIPPING DEST, CALL CAME FROM Q/RG: ${RRNODEST})

Re: Выполнение команды при разрыве звонка

Добавлено: 22 дек 2017, 11:07
april22
Есть ли жизнь после exten h ?

Re: Выполнение команды при разрыве звонка

Добавлено: 22 дек 2017, 11:48
awsswa
Перед звонком
После
exten => 603,n,Set(__NODEST=)
Вставляем
exten => 603,n,Set(CHANNEL(hangup_handler_push)=sub-macro-hangupcall,s,1)

[sub-macro-hangupcall]
exten => s,1,NoOp(=DIALSTATUS=${DIALSTATUS}=)
exten => s,n,СУПЕР-МАКРОС-ТУТ
exten => s,n,Return()

Re: Выполнение команды при разрыве звонка

Добавлено: 22 дек 2017, 14:07
Prizr2k
Спасибо за наводку как написано не работает сделал по другому, все как надо получилось.

[sub-macro-hangupcall]
exten => s,1,NoOp(=DIALSTATUS=${DIALSTATUS}=)
exten => s,n,System()
exten => s,n,Return()

exten => 603,1,Macro(user-callerid,)
exten => 603,2,Set(CHANNEL(hangup_handler_push)=sub-macro-hangupcall,s,1)
exten => 603,n,Macro(blkvm-setifempty,)
exten => 603,n,GotoIf($["${GOSUB_RETVAL}" = "TRUE"]?skipov)
exten => 603,n,Macro(blkvm-set,reset)
exten => 603,n,Set(__NODEST=)
exten => 603,n(skipov),Set(RRNODEST=${NODEST})
exten => 603,n(skipvmblk),Set(__NODEST=${EXTEN})
exten => 603,n,GosubIf($[${DB_EXISTS(RINGGROUP/603/changecid)} = 1 & "${DB(RINGGROUP/603/changecid)}" != "default" & "${DB(RINGGROUP/603/changecid)}" != ""]?sub-rgsetcid,s,1())
exten => 603,n,Gosub(sub-record-check,s,1(rg,603,dontcare))
exten => 603,n,Set(RingGroupMethod=ringall)
exten => 603,n(DIALGRP),Macro(dial,20,${DIAL_OPTIONS},778)
exten => 603,n,Gosub(sub-record-cancel,s,1())
exten => 603,n,Set(RingGroupMethod=)
exten => 603,n,GotoIf($["foo${RRNODEST}" != "foo"]?nodest)
exten => 603,n,Set(__NODEST=)
exten => 603,n,Macro(blkvm-clr,)
exten => 603,n,Goto(ext-group,604,1)
exten => 603,n(nodest),Noop(SKIPPING DEST, CALL CAME FROM Q/RG: ${RRNODEST})

Re: Выполнение команды при разрыве звонка

Добавлено: 17 янв 2018, 03:13
whoim
april22 писал(а):Есть ли жизнь после exten h ?
Не у всех, велосипеды интереснее)