Komparator
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Всем привет! Есть GSM шлюз с безлимитным тарифом на сотрудников(Addpac). Когда принимается вызов на мобильном сотрудника, то определяется (что естественно) номер симки шлюза. Я хочу знать кто мне звонил (внутренние номера), в случае, если я не ответил. Я попробовал переопределить macro-dialout-trunk (у меня * 1.8+Freepbx) в файле extensions_override_freepbx.conf: [macro-dialout-trunk] include => macro-dialout-trunk-custom exten => s,1,Set(DIAL_TRUNK=${ARG1}) exten => s,n,GosubIf($[$["${ARG3}" != ""] & $["${DB(AMPUSER/${AMPUSER}/pinless)}" != "NOPASSWD"]]?sub-pincheck,s,1) exten => s,n,GotoIf($["x${OUTDISABLE_${DIAL_TRUNK}}" = "xon"]?disabletrunk,1) exten => s,n,Set(DIAL_NUMBER=${ARG2}) exten => s,n,Set(DIAL_TRUNK_OPTIONS=${DIAL_OPTIONS}) exten => s,n,Set(OUTBOUND_GROUP=OUT_${DIAL_TRUNK}) exten => s,n,GotoIf($["${OUTMAXCHANS_${DIAL_TRUNK}}foo" = "foo"]?nomax) exten => s,n,GotoIf($[ ${GROUP_COUNT(OUT_${DIAL_TRUNK})} >= ${OUTMAXCHANS_${DIAL_TRUNK}} ]?chanfull) exten => s,n(nomax),GotoIf($["${INTRACOMPANYROUTE}" = "YES"]?skipoutcid) exten => s,n,Set(DIAL_TRUNK_OPTIONS=${TRUNK_OPTIONS}) exten => s,n,Macro(outbound-callerid,${DIAL_TRUNK}) exten => s,n(skipoutcid),GosubIf($["${PREFIX_TRUNK_${DIAL_TRUNK}}" != ""]?sub-flp-${DIAL_TRUNK},s,1) exten => s,n,Set(OUTNUM=${OUTPREFIX_${DIAL_TRUNK}}${DIAL_NUMBER}) exten => s,n,Set(custom=${CUT(OUT_${DIAL_TRUNK},:,1)}) exten => s,n,ExecIf($["${MOHCLASS}"!="default" & "${MOHCLASS}"!="" & "${FORCE_CONFIRM}"="" ]?Set(DIAL_TRUNK_OPTIONS=M(setmusic^${MOHCLASS})${DIAL_TRUNK_OPTIONS})) exten => s,n,ExecIf($["${FORCE_CONFIRM}"!="" ]?Set(DIAL_TRUNK_OPTIONS=${DIAL_TRUNK_OPTIONS}M(confirm))) exten => s,n(gocall),Macro(dialout-trunk-predial-hook,) exten => s,n,GotoIf($["${PREDIAL_HOOK_RET}" = "BYPASS"]?bypass,1) exten => s,n,GotoIf($["${custom}" = "AMP"]?customtrunk) exten => s,n,Dial(${OUT_${DIAL_TRUNK}}/${OUTNUM},300,${DIAL_TRUNK_OPTIONS}) exten => s,n,Noop(Dial failed for some reason with DIALSTATUS = ${DIALSTATUS} and HANGUPCAUSE = ${HANGUPCAUSE}) exten => s,n,GotoIf($[("${ARG1}" = "10") & ("${ARG2}" = "мой-телефон")]?sms:nosms) exten => s,n(sms),System(/var/lib/asterisk/bin/addpac-sms.sh ip-address root password 0 1 ${ARG2} "Tel: ${CALLERID(num)}status= ${HANGUPCAUSE} Date:${STRFTIME(${EPOCH},,%d-%m-%Y %H:%M:%S)})" ) exten => s,n(nosms),Goto(s-${DIALSTATUS},1) exten => s,n(customtrunk),Set(pre_num=${CUT(OUT_${DIAL_TRUNK},$,1)}) exten => s,n,Set(the_num=${CUT(OUT_${DIAL_TRUNK},$,2)}) exten => s,n,Set(post_num=${CUT(OUT_${DIAL_TRUNK},$,3)}) exten => s,n,GotoIf($["${the_num}" = "OUTNUM"]?outnum:skipoutnum) exten => s,n(outnum),Set(the_num=${OUTNUM}) exten => s,n(skipoutnum),Dial(${pre_num:4}${the_num}${post_num},300,${DIAL_TRUNK_OPTIONS}) exten => s,n,Noop(Dial failed for some reason with DIALSTATUS = ${DIALSTATUS} and HANGUPCAUSE = ${HANGUPCAUSE}) exten => s,n,Goto(s-${DIALSTATUS},1) exten => s,n(chanfull),Noop(max channels used up) exten => s-BUSY,1,Noop(Dial failed due to trunk reporting BUSY - giving up) exten => s-BUSY,n,Playtones(busy) exten => s-BUSY,n,Busy(20) exten => s-ANSWER,1,Noop(Call successfully answered - Hanging up now) exten => s-ANSWER,n,Macro(hangupcall,) exten => s-NOANSWER,1,Noop(Dial failed due to trunk reporting NOANSWER - giving up) exten => s-NOANSWER,n,Progress exten => s-NOANSWER,n,Playback(number-not-answering,noanswer) exten => s-NOANSWER,n,Congestion(20) exten => s-INVALIDNMBR,1,Noop(Dial failed due to trunk reporting Address Incomplete - giving up) exten => s-INVALIDNMBR,n,Progress exten => s-INVALIDNMBR,n,Playback(ss-noservice,noanswer) exten => s-INVALIDNMBR,n,Busy(20) exten => s-CHANGED,1,Noop(Dial failed due to trunk reporting Number Changed - giving up) exten => s-CHANGED,n,Playtones(busy) exten => s-CHANGED,n,Busy(20) exten => _s-.,1,Set(RC=${IF($[${ISNULL(${HANGUPCAUSE})}]?0:${HANGUPCAUSE})}) exten => _s-.,n,Goto(${RC},1) exten => 17,1,Goto(s-BUSY,1) exten => 18,1,Goto(s-NOANSWER,1) exten => 22,1,Goto(s-CHANGED,1) exten => 23,1,Goto(s-CHANGED,1) exten => 28,1,Goto(s-INVALIDNMBR,1) exten => _X,1,Goto(continue,1) exten => _X.,1,Goto(continue,1) exten => continue,1,GotoIf($["${OUTFAIL_${ARG1}}" = ""]?noreport) exten => continue,n,AGI(${OUTFAIL_${ARG1}}) exten => continue,n(noreport),Noop(TRUNK Dial failed due to ${DIALSTATUS} HANGUPCAUSE: ${HANGUPCAUSE} - failing through to other trunks) exten => continue,n,Set(CALLERID(number)=${AMPUSER}) exten => disabletrunk,1,Noop(TRUNK: ${OUT_${DIAL_TRUNK}} DISABLED - falling through to next trunk) exten => bypass,1,Noop(TRUNK: ${OUT_${DIAL_TRUNK}} BYPASSING because dialout-trunk-predial-hook) exten => h,1,GotoIf($[("${ARG1}" = "10") & ("${ARG2}" = "мой-телефон")]?sms1:sms2) exten => h,n(sms1),System(/var/lib/asterisk/bin/addpac-sms.sh ip-address root password 0 1 ${ARG2} "Tel: ${CALLERID(num)} status= ${HANGUPCAUSE} Date:${STRFTIME(${EPOCH},,%d-%m-%Y %H:%M:%S)})" ) exten => h,n(sms2),Macro(hangupcall,) ; end of [macro-dialout-trunk] Но проблема в том, что я не знаю, где прописать, если вызывающая сторона бросила трубку. Буду весьма признателен за посыл в нужном направлении. |