[general] static=yes writeprotect=yes [globals] TRUNKHOST=192.100.10.30 ANCHORNR=67207 [sip] exten => 20210,1,Macro(rtcdial,${EXTEN},0761271142) exten => 20208,1,Macro(rtcdial,${EXTEN},0761271143) exten => 20209,1,Macro(rtcdial,${EXTEN},0761271141) exten => 20202,1,Macro(rtcdial,${EXTEN},0761441052) exten => 20207,1,Macro(rtcdial,${EXTEN},0705425503) exten => 20206,1,Macro(rtcdial,${EXTEN},0761441056) exten => 20201,1,Macro(rtcdial,x${EXTEN},0761441051) exten => ${ANCHORNR},1,SIPDtmfmode(inband) exten => ${ANCHORNR},2,Ringing exten => ${ANCHORNR},3,Wait(0.5) exten => ${ANCHORNR},4,Answer(0.5) exten => ${ANCHORNR},5,Read(DESTNUM) exten => ${ANCHORNR},6,SIPDtmfmode(info) exten => ${ANCHORNR},7,Goto(mappings1,s-${CALLERID(num)},1) exten => ${ANCHORNR},8,Hangup exten => _${ANCHORNR}.,1,Set(DESTNUM=${EXTEN:${LEN(${ANCHORNR})}}) ; copy the postfix to DESTNUM exten => _${ANCHORNR}.,2,Goto(mappings2,s-${CALLERID(num)},1) exten => _${ANCHORNR}.,3,Hangup [mappings1] exten => _.,1,NoOp(${CALLERID(num)},${EXTEN}) exten => _.,2,NoOp(${CALLERID(num)},${EXTEN}) exten => _.,3,Dial(SIP/${DESTNUM}@gw_exten,,R) ;exten => _.,1,NoOp(${CALLERID(num)},${EXTEN}) ;exten => _.,2,Set(CALLERID(num)=x${EXTEN:2}) ;exten => _.,3,NoOp(${CALLERID(num)}) ;exten => _.,4,Dial(SIP/${DESTNUM}@gw_exten,,R) [mappings2] exten => _.,1,Dial(SIP/${DESTNUM}@gw_exten) [macro-rtcdial] exten => s,1,Dial(SIP/${ARG1}) exten => s,2,Set(GSM=${ARG2}) exten => s,3,Goto(cidhandler,${CALLERID(num)},1) exten => s,4,Hangup [cidhandler] exten => _X.,1,Goto(rtc,s-${DIALSTATUS},1) [rtc] exten => s-CHANUNAVAIL,1,Dial(SIP/${GSM}@${TRUNKHOST}) exten => s-CHANUNAVAIL,2,Hangup exten => _s-.,1,Hangup ; for dialplan security [outgoing-sip] exten => _.,1,Set(SIPTO=${EXTEN}) exten => _.,2,GotoIf($[${SIPTO} = h]?5,2:5,1) ; Filter out hangups exten => 5,1,Dial(SIP/${SIPTO}@gw_exten) exten => 5,2,Hangup [incoming-sip] include => outgoing-sip