diff -r astrad012/files/asterisk/extensions.conf astrad013/files/asterisk/extensions.conf 8d7 < exten => h,1,Hangup(21) 10,11c9,11 < same => n,Log(NOTICE,UC from ${CALLERID(name)} ${CALLERID(num)}@${CHANNEL(recvip)} to ${EXTEN}) < same => n,Hangup(21) --- > same => n,Log(NOTICE,UC from ${CALLERID(name)} ${CALLERID(num)}@${CHANNEL(recvip)} to ${EXTEN}) > same => n,Hangup(21) > exten => h,1,Hangup(21) 74,82c74,79 < exten => _[*0-9]!,1,NoOp() < ;exten => _[*0-9]!,n,ExecIf($[ ${XTOT} < 1 ]?Gosub(check_ua,${EXTEN},1)) < ;exten => _[*0-9]!,n,GotoIf($[ ${XTOT} < 1 & "${multipleUA}" = "0" ]?telephone-number-temp-disconnected,${EXTEN},1) < exten => _[*0-9]!,n,Set(User_Agent=${SIP_HEADER(User-Agent)}) < exten => _[*0-9]!,n,Set(CDR(User-Agent)=User-Agent:${User_Agent}) < exten => _[*0-9]!,n,Progress < ;exten => _[*0-9]!,n,Wait(0.5) < exten => _[*0-9]!,n,ExecIf($[ "${h323-return-code}" = "13" & "${CDR(CustomerType)}" = "SipAuth" ]?Playback(free-calls,noanswer):Playback(beep,noanswer)) < exten => _[*0-9]!,n,Goto(routing,${EXTEN},1) --- > exten => _[*0-9]!,1,NoOp() > same => n,Set(User_Agent=${SIP_HEADER(User-Agent)}) > same => n,Set(CDR(User-Agent)=User-Agent:${User_Agent}) > same => n,Progress > same => n,ExecIf($[ "${h323-return-code}" = "13" & "${CDR(CustomerType)}" = "SipAuth" ]?Playback(free-calls,noanswer):Playback(beep,noanswer)) > same => n,Goto(routing,${EXTEN},1) 85,98c82,95 < exten => _[*0-9]!,1,NoOp() < exten => _[*0-9]!,n,ExecIf($[ "${ActivePrivacy}" = "1" ]?SetCallerPres(prohib_not_screened)) ; this might not be needed --- needs further testing < exten => _[*0-9]!,n,GotoIf($["${connid}" = ""]?MyRoute-error,${EXTEN},1) < exten => _[*0-9]!,n,MYSQL(Query resultid ${connid} CALL set_route('${VDNID}','${CHANNEL(recvip)}','${multipleUA}')) < exten => _[*0-9]!,n,MYSQL(Query resultid ${connid} SELECT get_route('${VDNID}')) < exten => _[*0-9]!,n,MYSQL(Fetch fetchid ${resultid} myROUTE) < exten => _[*0-9]!,n,GotoIf($[ "${myROUTE}"="NULL" | "${myROUTE}"="" ]?MyRoute-error,${EXTEN},1) < exten => _[*0-9]!,n,MYSQL(Clear ${resultid}) < exten => _[*0-9]!,n,MYSQL(Disconnect ${connid}) < exten => _[*0-9]!,n,Set(VDNID=${PBCLD}) < exten => _[*0-9]!,n,Set(ROUTEIP=${NAS_IP_Address}) < exten => _[*0-9]!,n,ExecIf($[ "${TARGET_EXPIRE}" = "" ]?Set(TARGET_EXPIRE=30) < exten => _[*0-9]!,n,Dial(${myROUTE},${TARGET_EXPIRE},${CALL_LIMIT}) < exten => _[*0-9]!,n,Goto(routing,${EXTEN},failed) --- > exten => _[*0-9]!,1,NoOp() > same => n,ExecIf($[ "${ActivePrivacy}" = "1" ]?SetCallerPres(prohib_not_screened)) ; this might not be needed --- needs further testing > same => n,GotoIf($["${connid}" = ""]?MyRoute-error,${EXTEN},1) > same => n,MYSQL(Query resultid ${connid} CALL set_route('${VDNID}','${CHANNEL(recvip)}','${multipleUA}')) > same => n,MYSQL(Query resultid ${connid} SELECT get_route('${VDNID}')) > same => n,MYSQL(Fetch fetchid ${resultid} myROUTE) > same => n,GotoIf($[ "${myROUTE}"="NULL" | "${myROUTE}"="" ]?MyRoute-error,${EXTEN},1) > same => n,MYSQL(Clear ${resultid}) > same => n,MYSQL(Disconnect ${connid}) > same => n,Set(VDNID=${PBCLD}) > same => n,Set(ROUTEIP=${NAS_IP_Address}) > same => n,ExecIf($[ "${TARGET_EXPIRE}" = "" ]?Set(TARGET_EXPIRE=30) > same => n,Dial(${myROUTE},${TARGET_EXPIRE},${CALL_LIMIT}) > same => n,Goto(routing,${EXTEN},failed) 101,104c98,101 < exten => _[*0-9]!,1,NoOp() < exten => _[*0-9]!,n,Dial(SIP/${PBCLD},30,${CALL_LIMIT}) < exten => _[*0-9]!,n,Hangup(${HANGUPCAUSE}) < exten => _[*0-9]!,n,Set(CDR(Hangupcause)=Hangupcause:${HANGUPCAUSE}) --- > exten => _[*0-9]!,1,NoOp() > same => n,Dial(SIP/${PBCLD},30,${CALL_LIMIT}) > same => n,Hangup(${HANGUPCAUSE}) > same => n,Set(CDR(Hangupcause)=Hangupcause:${HANGUPCAUSE}) 107,119c104,116 < exten => _[*0-9]!,1,NoOp() < exten => _[*0-9]!,n,MYSQL(Connect connid localhost ${dbuser} ${dbpass} ${dbname}) < exten => _[*0-9]!,n,GotoIf($["${connid}" = ""]?error) < exten => _[*0-9]!,n,GotoIf($["${CDR(CustomerType)}" = "PeerAuth"]?localmua:allmua) < exten => _[*0-9]!,n(localmua),MYSQL(Query resultid ${connid} SELECT IF ((SELECT count(*) FROM multiple_ua WHERE username='${VDNID}' AND domain='${NAS_IP_Address}')>1,2,0)as a) < exten => _[*0-9]!,n,MYSQL(Fetch fetchid ${resultid} multipleUA) < exten => _[*0-9]!,n,Goto(setvar) < exten => _[*0-9]!,n(allmua),MYSQL(Query resultid ${connid} SELECT IF ((SELECT count(*) FROM multiple_ua WHERE username='${VDNID}')>1,1,0)as a) < exten => _[*0-9]!,n,MYSQL(Fetch fetchid ${resultid} multipleUA) < exten => _[*0-9]!,n(setvar),ExecIf($[ "${multipleUA}"="NULL" | "${multipleUA}"="" ]?Set(multipleUA=0)) < exten => _[*0-9]!,n,MYSQL(Clear ${resultid}) < exten => _[*0-9]!,n,ExecIf($[ "${multipleUA}" = "0" ]?MYSQL(Disconnect ${connid})) < exten => _[*0-9]!,n(error),Return() --- > exten => _[*0-9]!,1,NoOp() > same => n,MYSQL(Connect connid localhost ${dbuser} ${dbpass} ${dbname}) > same => n,GotoIf($["${connid}" = ""]?error) > same => n,GotoIf($["${CDR(CustomerType)}" = "PeerAuth"]?localmua:allmua) > same => n(localmua),MYSQL(Query resultid ${connid} SELECT IF ((SELECT count(*) FROM multiple_ua WHERE username='${VDNID}' AND domain='${NAS_IP_Address}')>1,2,0)as a) > same => n,MYSQL(Fetch fetchid ${resultid} multipleUA) > same => n,Goto(setvar) > same => n(allmua),MYSQL(Query resultid ${connid} SELECT IF ((SELECT count(*) FROM multiple_ua WHERE username='${VDNID}')>1,1,0)as a) > same => n,MYSQL(Fetch fetchid ${resultid} multipleUA) > same => n(setvar),ExecIf($[ "${multipleUA}"="NULL" | "${multipleUA}"="" ]?Set(multipleUA=0)) > same => n,MYSQL(Clear ${resultid}) > same => n,ExecIf($[ "${multipleUA}" = "0" ]?MYSQL(Disconnect ${connid})) > same => n(error),Return() 122,162c119,160 < exten => _[*0-9]!,1,NoOp() < exten => _[*0-9]!,n,ExecIf($[ "${CALLERID(name)}" = "Anonymous" | "${CALLERID(name)}" = "anonymous"]?Set(ActivePrivacy=1)) < exten => _[*0-9]!,n(loop),NoOp() < exten => _[*0-9]!,n,ExecIf($[ ${II} > 1 ]?Playback(the-next,noanswer) < exten => _[*0-9]!,n,Set(KK=0) < exten => _[*0-9]!,n,Set(SUM_ROUTE=${XSUM_${II}}) < exten => _[*0-9]!,n(loop1),NoOp() < exten => _[*0-9]!,n,Set(TARGET_ROUTE=${XROUTE_${II}_${KK}}) < exten => _[*0-9]!,n,GotoIf($[ "${TARGET_ROUTE}"="" ]?defaultroute:varroute) < exten => _[*0-9]!,n(defaultroute),Set(TARGET_ROUTE=SIP/${DNID}@${NAS_IP_Address}) < exten => _[*0-9]!,n,Set(TARGET_EXPIRE=30) < exten => _[*0-9]!,n,Set(TARGET_CLI=${CALLERID(num)}) < exten => _[*0-9]!,n,Goto(routeset) < exten => _[*0-9]!,n(varroute),Set(TARGET_EXPIRE=${XEXP_${II}_${KK}}) < exten => _[*0-9]!,n,Set(TARGET_CLI=${XCLI_${II}_${KK}}) < exten => _[*0-9]!,n,Set(CALLERID(all)=${XCLI_${II}_${KK}} <${XCLI_${II}_${KK}}>) < exten => _[*0-9]!,n(routeset),Set(MYDNID=${CUT(TARGET_ROUTE,@,1)}) < exten => _[*0-9]!,n,Set(VDNID=${CUT(MYDNID,/,2)}) < exten => _[*0-9]!,n,Set(ROUTEIP=${CUT(TARGET_ROUTE,@,2)}) < exten => _[*0-9]!,n,GotoIf($[ "${ROUTEIP}" = "" ]?not_avail,${EXTEN},1) < exten => _[*0-9]!,n,GotoIf($[ "${ActivePrivacy}" != "1" ]?noprivacy) < exten => _[*0-9]!,n,GotoIf($[ "${ROUTEIP}" != "${NAS_IP_Address}" ]?extprivacy) < exten => _[*0-9]!,n,SetCallerPres(prohib_not_screened) ; this might not be needed --- needs further testing < exten => _[*0-9]!,n,Goto(noprivacy) < exten => _[*0-9]!,n(extprivacy),SIPAddHeader(Remote-Party-ID:"${CALLERID(num)}" \;privacy=full\;screen=yes) < exten => _[*0-9]!,n(noprivacy),ExecIf($[ ${multipleUA} = 0 ]?Gosub(check_ua,${EXTEN},1) < exten => _[*0-9]!,n,GotoIf($[ ${XTOT} < 1 & "${multipleUA}" = "0" ]?telephone-number-temp-disconnected,${EXTEN},1) < exten => _[*0-9]!,n,GotoIf($[ "${multipleUA}" = "1" | "${multipleUA}" = "2" ]?MyRoute,${EXTEN},1) < exten => _[*0-9]!,n,Dial(${IF($[ "${ROUTEIP}" = "${NAS_IP_Address}" | $[ "${CDR(CustomerType)}" = "PeerAuth"] ]?${MYDNID}:${TARGET_ROUTE})},${TARGET_EXPIRE},${CALL_LIMIT}) < exten => _[*0-9]!,n(failed),Set(multipleUA=0) < exten => _[*0-9]!,n,Set(HANGUPCAUSE2=${HANGUPCAUSE}) < exten => _[*0-9]!,n,Execif($[ "${ROUTEIP}" = "${NAS_IP_Address}" & "${HANGUPCAUSE2}" = "20"]?Set(HANGUPCAUSE2=126)) < exten => _[*0-9]!,n,Set(CDR(Hangupcause)=Hangupcause:${HANGUPCAUSE2}) < exten => _[*0-9]!,n,Set(KK=$[${KK}+1]) < exten => _[*0-9]!,n,GotoIf($[ "${DIALSTATUS}" = "BUSY" | "${DIALSTATUS}" = "NOANSWER" | "${DIALSTATUS}" = "CANCEL" ]?end1) < exten => _[*0-9]!,n,GotoIf($[${KK} < ${SUM_ROUTE} ]?loop1:end1) < exten => _[*0-9]!,n(end1),NoOp() < exten => _[*0-9]!,n,Set(II=$[${II}+1]) < exten => _[*0-9]!,n,GotoIf($[${II} <= ${XTOT} ]?loop:end) < exten => _[*0-9]!,n(end),NoOp() < exten => _[*0-9]!,n,Goto(Error-Info,${EXTEN},1) --- > exten => _[*0-9]!,1,NoOp() > same => n,ExecIf($[ "${CALLERID(name)}" = "Anonymous" | "${CALLERID(name)}" = "anonymous"]?Set(ActivePrivacy=1)) > same => n(loop),NoOp() > ;same => n,ExecIf($[ ${II} > 1 ]?Playback(the-next,noanswer) > same => n,Set(KK=0) > same => n,Set(SUM_ROUTE=${XSUM_${II}}) > same => n(loop1),NoOp() > same => n,Set(CDR(RouteNum)=${II}_${KK}) > same => n,Set(TARGET_ROUTE=${XROUTE_${II}_${KK}}) > same => n,GotoIf($[ "${TARGET_ROUTE}"="" ]?defaultroute:varroute) > same => n(defaultroute),Set(TARGET_ROUTE=SIP/${DNID}@${NAS_IP_Address}) > same => n,Set(TARGET_EXPIRE=30) > same => n,Set(TARGET_CLI=${CALLERID(num)}) > same => n,Goto(routeset) > same => n(varroute),Set(TARGET_EXPIRE=${XEXP_${II}_${KK}}) > same => n,Set(TARGET_CLI=${XCLI_${II}_${KK}}) > same => n,Set(CALLERID(all)=${XCLI_${II}_${KK}} <${XCLI_${II}_${KK}}>) > same => n(routeset),Set(MYDNID=${CUT(TARGET_ROUTE,@,1)}) > same => n,Set(VDNID=${CUT(MYDNID,/,2)}) > same => n,Set(ROUTEIP=${CUT(TARGET_ROUTE,@,2)}) > same => n,GotoIf($[ "${ROUTEIP}" = "" ]?not_avail,${EXTEN},1) > same => n,GotoIf($[ "${ActivePrivacy}" != "1" ]?noprivacy) > same => n,GotoIf($[ "${ROUTEIP}" != "${NAS_IP_Address}" ]?extprivacy) > same => n,SetCallerPres(prohib_not_screened) ; this might not be needed --- needs further testing > same => n,Goto(noprivacy) > same => n(extprivacy),SIPAddHeader(Remote-Party-ID:"${CALLERID(num)}" \;privacy=full\;screen=yes) > same => n(noprivacy),ExecIf($[ ${multipleUA} = 0 ]?Gosub(check_ua,${EXTEN},1) > same => n,GotoIf($[ ${XTOT} < 1 & "${multipleUA}" = "0" ]?telephone-number-temp-disconnected,${EXTEN},1) > same => n,GotoIf($[ "${multipleUA}" = "1" | "${multipleUA}" = "2" ]?MyRoute,${EXTEN},1) > same => n,Dial(${IF($[ "${ROUTEIP}" = "${NAS_IP_Address}" | $[ "${CDR(CustomerType)}" = "PeerAuth"] ]?${MYDNID}:${TARGET_ROUTE})},${TARGET_EXPIRE},${CALL_LIMIT}) > same => n(failed),Set(multipleUA=0) > same => n,Set(HANGUPCAUSE2=${HANGUPCAUSE}) > same => n,Execif($[ "${ROUTEIP}" = "${NAS_IP_Address}" & "${HANGUPCAUSE2}" = "20"]?Set(HANGUPCAUSE2=126)) > same => n,Set(CDR(Hangupcause)=Hangupcause:${HANGUPCAUSE2}) > same => n,GotoIf($[ "${DIALSTATUS}" = "BUSY" | "${DIALSTATUS}" = "NOANSWER" | "${DIALSTATUS}" = "CANCEL" ]?end1) > same => n,Set(KK=$[${KK}+1]) > same => n,GotoIf($[${KK} < ${SUM_ROUTE} ]?loop1:end1) > same => n(end1),NoOp() > same => n,Set(II=$[${II}+1]) > same => n,GotoIf($[${II} <= ${XTOT} ]?loop:end) > same => n(end),NoOp() > same => n,Goto(Error-Info,${EXTEN},1) 165,176c163,174 < exten => _[*0-9]!,1,NoOp() < exten => _[*0-9]!,n,GotoIf($[ ${XTOT} > 1 ]?Ter) < exten => _[*0-9]!,n,GotoIf($[ "${HANGUPCAUSE2}" = "17" ]?currentlybusy,${EXTEN},1) < exten => _[*0-9]!,n,GotoIf($[ "${HANGUPCAUSE2}" = "126" ]?not_avail,${EXTEN},1) < exten => _[*0-9]!,n,GotoIf($[ "${HANGUPCAUSE2}" = "28" ]?ISUP28,${EXTEN},1) < exten => _[*0-9]!,n,GotoIf($[ "${HANGUPCAUSE2}" = "1" | "${HANGUPCAUSE2}" = "3" | "${HANGUPCAUSE2}" = "27" | "${HANGUPCAUSE2}" = "31" | "${HANGUPCAUSE2}" = "88" | "${HANGUPCAUSE2}" = "95" | "${HANGUPCAUSE2}" = "111" ]?Not-Found,${EXTEN},1) < exten => _[*0-9]!,n,GotoIf($[ ${HANGUPCAUSE2} >= 90 ]?cannot-complete-temp-error,${EXTEN},1) < exten => _[*0-9]!,n,GotoIf($[ "${DIALSTATUS}" = "CANCEL" ]?cancelled,${EXTEN},1) < exten => _[*0-9]!,n,GotoIf($[ "${HANGUPCAUSE2}" = "34" | "${HANGUPCAUSE2}" = "38" | "${HANGUPCAUSE2}" = "41" | "${HANGUPCAUSE2}" = "42" | "${HANGUPCAUSE2}" = "47" ]?all-outgoing-lines-unavailable,${EXTEN},1) < exten => _[*0-9]!,n,GotoIf($[ "${DIALSTATUS}" = "CHANUNAVAIL" ]?an-error-has-occured,${EXTEN},1) < exten => _[*0-9]!,n,GotoIf($[ "${DIALSTATUS}" = "CONGESTION" ]?cannot-complete-otherend-error,${EXTEN},1) < exten => _[*0-9]!,n(Ter),Hangup(${HANGUPCAUSE2}) --- > exten => _[*0-9]!,1,NoOp() > same => n,GotoIf($[ ${XTOT} > 1 ]?Ter) > same => n,GotoIf($[ "${HANGUPCAUSE2}" = "17" ]?currentlybusy,${EXTEN},1) > same => n,GotoIf($[ "${HANGUPCAUSE2}" = "126" ]?not_avail,${EXTEN},1) > same => n,GotoIf($[ "${HANGUPCAUSE2}" = "28" ]?ISUP28,${EXTEN},1) > same => n,GotoIf($[ "${HANGUPCAUSE2}" = "1" | "${HANGUPCAUSE2}" = "3" | "${HANGUPCAUSE2}" = "27" | "${HANGUPCAUSE2}" = "31" | "${HANGUPCAUSE2}" = "88" | "${HANGUPCAUSE2}" = "95" | "${HANGUPCAUSE2}" = "111" ]?Not-Found,${EXTEN},1) > same => n,GotoIf($[ ${HANGUPCAUSE2} >= 90 ]?cannot-complete-temp-error,${EXTEN},1) > same => n,GotoIf($[ "${DIALSTATUS}" = "CANCEL" ]?cancelled,${EXTEN},1) > same => n,GotoIf($[ "${HANGUPCAUSE2}" = "34" | "${HANGUPCAUSE2}" = "38" | "${HANGUPCAUSE2}" = "41" | "${HANGUPCAUSE2}" = "42" | "${HANGUPCAUSE2}" = "47" ]?all-outgoing-lines-unavailable,${EXTEN},1) > same => n,GotoIf($[ "${DIALSTATUS}" = "CHANUNAVAIL" ]?an-error-has-occured,${EXTEN},1) > same => n,GotoIf($[ "${DIALSTATUS}" = "CONGESTION" ]?cannot-complete-otherend-error,${EXTEN},1) > same => n(Ter),Hangup(${HANGUPCAUSE2}) 179,181c177,179 < exten => _[*0-9]!,1,SET(error_message="incomplete-num") < exten => _[*0-9]!,n,Gosub(playerror,${EXTEN},1) < exten => _[*0-9]!,n,Hangup(${HANGUPCAUSE2}) --- > exten => _[*0-9]!,1,SET(error_message="incomplete-num") > same => n,Gosub(playerror,${EXTEN},1) > same => n,Hangup(${HANGUPCAUSE2}) 184,186c182,184 < exten => _[*0-9]!,1,SET(error_message="the-number-u-dialed&is-curntly-busy") < exten => _[*0-9]!,n,Gosub(playerror,${EXTEN},1) < exten => _[*0-9]!,n,Hangup(${HANGUPCAUSE2}) --- > exten => _[*0-9]!,1,SET(error_message="the-number-u-dialed&is-curntly-busy") > same => n,Gosub(playerror,${EXTEN},1) > same => n,Hangup(${HANGUPCAUSE2}) 189,191c187,189 < exten => _[*0-9]!,1,SET(error_message="user_denied") < exten => _[*0-9]!,n,Gosub(playerror,${EXTEN},1) < exten => _[*0-9]!,n,Hangup(${HANGUPCAUSE2}) --- > exten => _[*0-9]!,1,SET(error_message="user_denied") > same => n,Gosub(playerror,${EXTEN},1) > same => n,Hangup(${HANGUPCAUSE2}) 194,196c192,194 < exten => _[*0-9]!,1,SET(error_message="cannot-complete-otherend-error") < exten => _[*0-9]!,n,Gosub(playerror,${EXTEN},1) < exten => _[*0-9]!,n,Hangup(${HANGUPCAUSE2}) --- > exten => _[*0-9]!,1,SET(error_message="cannot-complete-otherend-error") > same => n,Gosub(playerror,${EXTEN},1) > same => n,Hangup(${HANGUPCAUSE2}) 199,201c197,199 < exten => _[*0-9]!,1,SET(error_message="cancelled") < exten => _[*0-9]!,n,Gosub(playerror,${EXTEN},1) < exten => _[*0-9]!,n,Hangup(${HANGUPCAUSE2}) --- > exten => _[*0-9]!,1,SET(error_message="cancelled") > same => n,Gosub(playerror,${EXTEN},1) > same => n,Hangup(${HANGUPCAUSE2}) 204,206c202,204 < exten => _[*0-9]!,1,SET(error_message="not_avail") < exten => _[*0-9]!,n,Gosub(playerror,${EXTEN},1) < exten => _[*0-9]!,n,Hangup(${HANGUPCAUSE2}) --- > exten => _[*0-9]!,1,SET(error_message="not_avail") > same => n,Gosub(playerror,${EXTEN},1) > same => n,Hangup(${HANGUPCAUSE2}) 209,211c207,209 < exten => _[*0-9]!,1,SET(error_message="invalid_account") < exten => _[*0-9]!,n,Gosub(playerror,${EXTEN},1) < exten => _[*0-9]!,n,Hangup(${HANGUPCAUSE2}) --- > exten => _[*0-9]!,1,SET(error_message="invalid_account") > same => n,Gosub(playerror,${EXTEN},1) > same => n,Hangup(${HANGUPCAUSE2}) 214,216c212,214 < exten => _[*0-9]!,1,SET(error_message="wrong_passwd") < exten => _[*0-9]!,n,Gosub(playerror,${EXTEN},1) < exten => _[*0-9]!,n,Hangup(${HANGUPCAUSE2}) --- > exten => _[*0-9]!,1,SET(error_message="wrong_passwd") > same => n,Gosub(playerror,${EXTEN},1) > same => n,Hangup(${HANGUPCAUSE2}) 219,221c217,219 < exten => _[*0-9]!,1,SET(error_message="account_expired") < exten => _[*0-9]!,n,Gosub(playerror,${EXTEN},1) < exten => _[*0-9]!,n,Hangup(${HANGUPCAUSE2}) --- > exten => _[*0-9]!,1,SET(error_message="account_expired") > same => n,Gosub(playerror,${EXTEN},1) > same => n,Hangup(${HANGUPCAUSE2}) 224,226c222,224 < exten => _[*0-9]!,1,SET(error_message="credit_limit") < exten => _[*0-9]!,n,Gosub(playerror,${EXTEN},1) < exten => _[*0-9]!,n,Hangup(${HANGUPCAUSE2}) --- > exten => _[*0-9]!,1,SET(error_message="credit_limit") > same => n,Gosub(playerror,${EXTEN},1) > same => n,Hangup(${HANGUPCAUSE2}) 229,231c227,229 < exten => _[*0-9]!,1,SET(error_message="zero_balance") < exten => _[*0-9]!,n,Gosub(playerror,${EXTEN},1) < exten => _[*0-9]!,n,Hangup(${HANGUPCAUSE2}) --- > exten => _[*0-9]!,1,SET(error_message="zero_balance") > same => n,Gosub(playerror,${EXTEN},1) > same => n,Hangup(${HANGUPCAUSE2}) 234,236c232,234 < exten => _[*0-9]!,1,SET(error_message="simul-call-limit-reached") < exten => _[*0-9]!,n,Gosub(playerror,${EXTEN},1) < exten => _[*0-9]!,n,Hangup(${HANGUPCAUSE2}) --- > exten => _[*0-9]!,1,SET(error_message="simul-call-limit-reached") > same => n,Gosub(playerror,${EXTEN},1) > same => n,Hangup(${HANGUPCAUSE2}) 239,241c237,239 < exten => _[*0-9]!,1,SET(error_message="insufficient_balance") < exten => _[*0-9]!,n,Gosub(playerror,${EXTEN},1) < exten => _[*0-9]!,n,Hangup(${HANGUPCAUSE2}) --- > exten => _[*0-9]!,1,SET(error_message="insufficient_balance") > same => n,Gosub(playerror,${EXTEN},1) > same => n,Hangup(${HANGUPCAUSE2}) 244,246c242,244 < exten => _[*0-9]!,1,SET(error_message="retries") < exten => _[*0-9]!,n,Gosub(playerror,${EXTEN},1) < exten => _[*0-9]!,n,Hangup(${HANGUPCAUSE2}) --- > exten => _[*0-9]!,1,SET(error_message="retries") > same => n,Gosub(playerror,${EXTEN},1) > same => n,Hangup(${HANGUPCAUSE2}) 249,251c247,249 < exten => _[*0-9]!,1,SET(error_message="cannot-complete-temp-error") < exten => _[*0-9]!,n,Gosub(playerror,${EXTEN},1) < exten => _[*0-9]!,n,Hangup(${HANGUPCAUSE2}) --- > exten => _[*0-9]!,1,SET(error_message="cannot-complete-temp-error") > same => n,Gosub(playerror,${EXTEN},1) > same => n,Hangup(${HANGUPCAUSE2}) 254,256c252,254 < exten => _[*0-9]!,1,SET(error_message="no-route-exists-to-dest") < exten => _[*0-9]!,n,Gosub(playerror,${EXTEN},1) < exten => _[*0-9]!,n,Hangup(${HANGUPCAUSE2}) --- > exten => _[*0-9]!,1,SET(error_message="no-route-exists-to-dest") > same => n,Gosub(playerror,${EXTEN},1) > same => n,Hangup(${HANGUPCAUSE2}) 259,261c257,259 < exten => _[*0-9]!,1,NoOp() < exten => _[*0-9]!,n,Set(NotFoundContext=Not-Found-${IF($[ ${CUT(TARGET_ROUTE,@,2)} = ${NAS_IP_Address}]?1:2)}) < exten => _[*0-9]!,n,Goto(${NotFoundContext},${EXTEN},1) --- > exten => _[*0-9]!,1,NoOp() > same => n,Set(NotFoundContext=Not-Found-${IF($[ ${CUT(TARGET_ROUTE,@,2)} = ${NAS_IP_Address}]?1:2)}) > same => n,Goto(${NotFoundContext},${EXTEN},1) 264,266c262,264 < exten => _[*0-9]!,1,SET(error_message="not-found") < exten => _[*0-9]!,n,Gosub(playerror,${EXTEN},1) < exten => _[*0-9]!,n,Hangup(${HANGUPCAUSE2}) --- > exten => _[*0-9]!,1,SET(error_message="not-found") > same => n,Gosub(playerror,${EXTEN},1) > same => n,Hangup(${HANGUPCAUSE2}) 269,271c267,269 < exten => _[*0-9]!,1,SET(error_message="you-dialed-wrong-number") < exten => _[*0-9]!,n,Gosub(playerror,${EXTEN},1) < exten => _[*0-9]!,n,Hangup(${HANGUPCAUSE2}) --- > exten => _[*0-9]!,1,SET(error_message="you-dialed-wrong-number") > same => n,Gosub(playerror,${EXTEN},1) > same => n,Hangup(${HANGUPCAUSE2}) 274,276c272,274 < exten => _[*0-9]!,1,SET(error_message="the-number-u-dialed&temp-disconnected") < exten => _[*0-9]!,n,Gosub(playerror,${EXTEN},1) < exten => _[*0-9]!,n,Hangup(${HANGUPCAUSE2}) --- > exten => _[*0-9]!,1,SET(error_message="the-number-u-dialed&temp-disconnected") > same => n,Gosub(playerror,${EXTEN},1) > same => n,Hangup(${HANGUPCAUSE2}) 279,281c277,279 < exten => _[*0-9]!,1,SET(error_message="all-outgoing-lines-unavailable") < exten => _[*0-9]!,n,Gosub(playerror,${EXTEN},1) < exten => _[*0-9]!,n,Hangup(${HANGUPCAUSE2}) --- > exten => _[*0-9]!,1,SET(error_message="all-outgoing-lines-unavailable") > same => n,Gosub(playerror,${EXTEN},1) > same => n,Hangup(${HANGUPCAUSE2}) 284,286c282,284 < exten => _[*0-9]!,1,SET(error_message="an-error-has-occured") < exten => _[*0-9]!,n,Gosub(playerror,${EXTEN},1) < exten => _[*0-9]!,n,Hangup(${HANGUPCAUSE2}) --- > exten => _[*0-9]!,1,SET(error_message="an-error-has-occured") > same => n,Gosub(playerror,${EXTEN},1) > same => n,Hangup(${HANGUPCAUSE2}) 289,297c287,295 < exten => _[*0-9]!,1,Set(COUNTER=0) < exten => _[*0-9]!,n,Progress() < exten => _[*0-9]!,n,Wait(0.5) < exten => _[*0-9]!,n(loop),Wait(1) < exten => _[*0-9]!,n,Playback(beeperr,noanswer) < exten => _[*0-9]!,n,Playback(${error_message},noanswer) < exten => _[*0-9]!,n,Set(COUNTER=$[${COUNTER} + 1]) < exten => _[*0-9]!,n,GotoIf($[${COUNTER}<=5]?loop) < exten => _[*0-9]!,n,Return --- > exten => _[*0-9]!,1,Set(COUNTER=0) > same => n,Progress() > same => n,Wait(0.5) > same => n(loop),Wait(1) > same => n,Playback(beeperr,noanswer) > same => n,Playback(${error_message},noanswer) > same => n,Set(COUNTER=$[${COUNTER} + 1]) > same => n,GotoIf($[${COUNTER}<=5]?loop) > same => n,Return