Assume that I receive an Invite from a SIP device that Asterisk has registered with. How do I get Asterisk to dial out using the Invite details as if the Invite had been received from a UA registered with Asterisk? i.e. UA -> SIP Proxy -> Asterisk -> PSTN gateway. For example INVITE sip:95556789@60.234.xxx.xxx SIP/2.0 Record-Route: <sip:147.202.nn.nnn;ftag=bf7eced18eb7271b;lr=on> Via: SIP/2.0/UDP 147.202.nn.nnn;branch=z9hG4bKe49c.21b320a3.0 Via: SIP/2.0/UDP 60.234.nnn.nnn;branch=z9hG4bK76bf3dec8d45b972 From: "User" <sip:1122334455@proxy.domain.com>;tag=bf7eced18eb7271b To: <sip:5556789@domain.com> etc If the Invite was received from a SIP device registered with Asterisk (in the [from-internal] context) then the call would be routed to [outrt-003-test] and dial out correctly. I want to do the same thing with the Invite received from the SIP proxy. Can anyone advise how I can achieve this (in Asterisk 1.2.9)? Cut-down versions of conf files are below. sip.conf register=1122334455:password@domain.com/66554433 [1122334455] type=peer host=proxy.domain.com fromuser=1122334455 context=from-internal extensions.conf [from-internal] include => from-internal-additional exten => s,1,Macro(hangupcall) exten => h,1,Macro(hangupcall) exten => 66554433, 1, ????????? [from-internal-additional] include => outbound-allroutes [outbound-allroutes] include => outrt-003-test exten => foo,1,Noop(bar) [outrt-003-test] exten => _90[2-79]XXXXXX.,1,Macro(dialout-trunk,1,${EXTEN:1},,) exten => _90[2-79]XXXXXX.,n,Macro(dialout-trunk,5,${EXTEN:1},,) exten => _90[2-79]XXXXXX.,n,Macro(dialout-trunk,3,${EXTEN:1},,) exten => _90[2-79]XXXXXX.,n,Macro(dialout-trunk,2,${EXTEN:1},,) exten => _90[2-79]XXXXXX.,n,Macro(outisbusy,) [macro-dialout-trunk] exten => s,1,GotoIf($["${ARG3}" = ""]?3:2) ; arg3 is pattern password exten => s,2,Authenticate(${ARG3}) exten => s,3,Macro(user-callerid) exten => s,4,Macro(record-enable,${CALLERID(number)},OUT) exten => s,5,Macro(outbound-callerid,${ARG1}) exten => s,6,Set(GROUP()=OUT_${ARG1}) exten => s,7,GotoIf($[ ${GROUP_COUNT()} > ${OUTMAXCHANS_${ARG1}} ]?108) ; if we've used up the max channels, continue at (n+101) exten => s,8,Set(DIAL_NUMBER=${ARG2}) exten => s,9,Set(DIAL_TRUNK=${ARG1}) exten => s,10,AGI(fixlocalprefix) ; this sets DIAL_NUMBER to the proper dial string for this trunk exten => s,11,Set(OUTNUM=${OUTPREFIX_${ARG1}}${DIAL_NUMBER}) ; OUTNUM is the final dial number exten => s,12,Set(custom=${CUT(OUT_${ARG1},:,1)}) ; Custom trunks are prefixed with "AMP:" exten => s,13,GotoIf($["${custom}" = "AMP"]?16) exten => s,14,Dial(${OUT_${ARG1}}/${OUTNUM},120,${TRUNK_OPTIONS}) ; Regular Trunk Dial exten => s,15,Goto(s-${DIALSTATUS},1) ; This is a custom trunk. Substitute $OUTNUM$ with the actual number and rebuild the dialstring ; example trunks: "AMP:CAPI/XXXXXXXX:b$OUTNUM$,30,r", "AMP:OH323/$OUTNUM$@XX.XX.XX.XX:XXXX" exten => s,16,Set(pre_num=${CUT(OUT_${ARG1},$,1)}) exten => s,17,Set(the_num=${CUT(OUT_${ARG1},$,2)}) ; this is where we expect to find string OUTNUM exten => s,18,Set(post_num=${CUT(OUT_${ARG1},$,3)}) exten => s,19,GotoIf($["${the_num}" = "OUTNUM"]?20:21) ; if we didn't find "OUTNUM", then skip to Dial exten => s,20,Set(the_num=${OUTNUM}) ; replace "OUTNUM" with the actual number to dial exten => s,21,Dial(${pre_num:4}${the_num}${post_num},120,${TRUNK_OPTIONS}) exten => s,22,Goto(s-${DIALSTATUS},1) exten => s,108,Noop(max channels used up) exten => s-BUSY,1,NoOp(Trunk is reporting BUSY) exten => s-BUSY,2,Busy() exten => s-BUSY,3,Wait(60) exten => s-BUSY,4,NoOp() exten => _s-.,1,NoOp(Dial failed due to ${DIALSTATUS}) Please note that Asterisk also receives Invites from the same proxy (same IP and port) that need to be treated differently i.e. as if they were external incoming calls. If this were not the case then the following sip.conf achieves the desired result (I've tested this successfully). The call gets into the from-internal context and the outbound call to the PSTN is made: sip.conf register=1122334455:password@domain.com [1122334455] type=peer context=from-internal However when I create another SIP peer, even though the Invite from the Proxy has different From details, and I specify fromuser and host in sip.conf under [1122334455], the call is treated as an external call. Any advice appreciated. Cameron