Remote SIP extension can't make outbound calls

I am currently building/configuring our system. One important feature is having remote SIP extensions. To text this, I downloaded Voiper on my Android and set up a SIP extension. I got it to call internal extensions but it won’t call out. The log when trying to call out is below

[2013-09-09 22:45:24] VERBOSE[19663][C-0000007d] netsock2.c: == Using SIP RTP CoS mark 5 [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:1] Macro("SIP/351-000000a6", "user-callerid,LIMIT,") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:1] Set("SIP/351-000000a6", "TOUCH_MONITOR=1378784724.182") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:2] Set("SIP/351-000000a6", "AMPUSER=351") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:3] GotoIf("SIP/351-000000a6", "0?report") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:4] ExecIf("SIP/351-000000a6", "1?Set(REALCALLERIDNUM=351)") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:5] Set("SIP/351-000000a6", "AMPUSER=351") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:6] Set("SIP/351-000000a6", "AMPUSERCIDNAME=Remote SIP Test") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:7] GotoIf("SIP/351-000000a6", "0?report") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:8] Set("SIP/351-000000a6", "AMPUSERCID=351") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:9] Set("SIP/351-000000a6", "__DIAL_OPTIONS=Ttr") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:10] Set("SIP/351-000000a6", "CALLERID(all)="Remote SIP Test" <351>") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:11] GotoIf("SIP/351-000000a6", "0?limit") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:12] ExecIf("SIP/351-000000a6", "1?Set(GROUP(concurrency_limit)=351)") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:13] GosubIf("SIP/351-000000a6", "7?sub-ccss,s,1(from-internal,5159789010)") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:1] ExecIf("SIP/351-000000a6", "0?Return()") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:2] Set("SIP/351-000000a6", "CCSS_SETUP=TRUE") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:3] GosubIf("SIP/351-000000a6", "0?monitor_config,1(from-internal,5159789010):monitor_default,1(from-internal,5159789010)") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:1] GotoIf("SIP/351-000000a6", "0?is_exten") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:2] StackPop("SIP/351-000000a6", "") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:3] Return("SIP/351-000000a6", "FALSE") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:14] GotoIf("SIP/351-000000a6", "1?continue") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Goto (macro-user-callerid,s,27) [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:27] Set("SIP/351-000000a6", "CALLERID(number)=351") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:28] Set("SIP/351-000000a6", "CALLERID(name)=Remote SIP Test") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:29] Set("SIP/351-000000a6", "CDR(cnum)=351") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:30] Set("SIP/351-000000a6", "CDR(cnam)=Remote SIP Test") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:31] Set("SIP/351-000000a6", "CHANNEL(language)=en") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:2] Set("SIP/351-000000a6", "MOHCLASS=default") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]om-internal:3] ExecIf("SIP/351-000000a6", "1?Set(TRUNKCIDOVERRIDE=5159789010)") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:4] Set("SIP/351-000000a6", "_NODEST=") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:5] Gosub("SIP/351-000000a6", "sub-record-check,s,1(out,5159789010,)") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:1] Set("SIP/351-000000a6", "REC_POLICY_MODE_SAVE=") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:2] GotoIf("SIP/351-000000a6", "1?check") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Goto (sub-record-check,s,7) [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:7] Set("SIP/351-000000a6", "__MON_FMT=wav") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:8] GotoIf("SIP/351-000000a6", "1?next") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Goto (sub-record-check,s,11) [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:11] ExecIf("SIP/351-000000a6", "0?Return()") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:12] ExecIf("SIP/351-000000a6", "0?Set(__REC_POLICY_MODE=)") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:13] GotoIf("SIP/351-000000a6", "0?out,1") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:14] Set("SIP/351-000000a6", "__REC_STATUS=INITIALIZED") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:15] Set("SIP/351-000000a6", "NOW=1378784724") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:16] Set("SIP/351-000000a6", "__DAY=09") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:17] Set("SIP/351-000000a6", "__MONTH=09") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:18] Set("SIP/351-000000a6", "__YEAR=2013") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:19] Set("SIP/351-000000a6", "__TIMESTR=20130909-224524") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:20] Set("SIP/351-000000a6", "__FROMEXTEN=351") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:21] Set("SIP/351-000000a6", "__CALLFILENAME=out-5159789010-351-20130909-224524-1378784724.182") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:22] Goto("SIP/351-000000a6", "out,1") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Goto (sub-record-check,out,1) [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:1] ExecIf("SIP/351-000000a6", "1?Set(__REC_POLICY_MODE=always)") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:2] GosubIf("SIP/351-000000a6", "1?record,1(exten,5159789010,351)") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:1] Set("SIP/351-000000a6", "AUDIOHOOK_INHERIT(MixMonitor)=yes") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:2] MixMonitor("SIP/351-000000a6", "2013/09/09/out-5159789010-351-20130909-224524-1378784724.182.wav,,") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:3] Set("SIP/351-000000a6", "__REC_STATUS=RECORDING") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:4] Set("SIP/351-000000a6", "CDR(recordingfile)=out-5159789010-351-20130909-224524-1378784724.182.wav") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:5] Return("SIP/351-000000a6", "") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:3] Return("SIP/351-000000a6", "") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:6] Macro("SIP/351-000000a6", "dialout-trunk,3,15159789010,,off") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:1] Set("SIP/351-000000a6", "DIAL_TRUNK=3") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:2] GosubIf("SIP/351-000000a6", "0?sub-pincheck,s,1()") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:3] GotoIf("SIP/351-000000a6", "0?disabletrunk,1") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:4] Set("SIP/351-000000a6", "DIAL_NUMBER=15159789010") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:5] Set("SIP/351-000000a6", "DIAL_TRUNK_OPTIONS=Ttr") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:6] Set("SIP/351-000000a6", "OUTBOUND_GROUP=OUT_3") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:7] GotoIf("SIP/351-000000a6", "1?nomax") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Goto (macro-dialout-trunk,s,9) [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:9] GotoIf("SIP/351-000000a6", "0?skipoutcid") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:10] Set("SIP/351-000000a6", "DIAL_TRUNK_OPTIONS=Tt") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:11] Macro("SIP/351-000000a6", "outbound-callerid,3") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:1] ExecIf("SIP/351-000000a6", "0?Set(CALLERPRES()=)") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:2] ExecIf("SIP/351-000000a6", "0?Set(REALCALLERIDNUM=351)") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:3] GotoIf("SIP/351-000000a6", "1?normcid") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Goto (macro-outbound-callerid,s,6) [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:6] Set("SIP/351-000000a6", "USEROUTCID=5158682015") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:7] Set("SIP/351-000000a6", "EMERGENCYCID=") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:8] Set("SIP/351-000000a6", "TRUNKOUTCID=5159789010") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:9] GotoIf("SIP/351-000000a6", "1?trunkcid") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Goto (macro-outbound-callerid,s,14) [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:14] ExecIf("SIP/351-000000a6", "1?Set(CALLERID(all)=5159789010)") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:15] ExecIf("SIP/351-000000a6", "1?Set(CALLERID(all)=5158682015)") in new stack [2013-09-09 22:45:24] VERBOSE[26514][C-0000007d] app_mixmonitor.c: == Begin MixMonitor Recording SIP/351-000000a6 [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:16] ExecIf("SIP/351-000000a6", "1?Set(CALLERID(all)=5159789010)") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:17] ExecIf("SIP/351-000000a6", "0?Set(CALLERPRES()=prohib_passed_screen)") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:18] Set("SIP/351-000000a6", "CDR(outbound_cnum)=5159789010") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:19] Set("SIP/351-000000a6", "CDR(outbound_cnam)=") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:12] GosubIf("SIP/351-000000a6", "0?sub-flp-3,s,1()") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:13] Set("SIP/351-000000a6", "OUTNUM=15159789010") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:14] Set("SIP/351-000000a6", "custom=SIP/BPW-Incoming9009") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:15] ExecIf("SIP/351-000000a6", "0?Set(DIAL_TRUNK_OPTIONS=M(setmusic^default)Tt)") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:16] ExecIf("SIP/351-000000a6", "0?Set(DIAL_TRUNK_OPTIONS=TtM(confirm))") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:17] Macro("SIP/351-000000a6", "dialout-trunk-predial-hook,") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:1] MacroExit("SIP/351-000000a6", "") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:18] GotoIf("SIP/351-000000a6", "0?bypass,1") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:19] ExecIf("SIP/351-000000a6", "1?Set(CONNECTEDLINE(num,i)=15159789010)") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:20] ExecIf("SIP/351-000000a6", "1?Set(CONNECTEDLINE(name,i)=CID:5159789010)") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:21] GotoIf("SIP/351-000000a6", "0?customtrunk") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:22] Dial("SIP/351-000000a6", "SIP/BPW-Incoming9009/15159789010,300,Tt") in new stack [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] netsock2.c: == Using SIP RTP TOS bits 184 [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] netsock2.c: == Using SIP RTP CoS mark 5 [2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] app_dial.c: -- Called SIP/BPW-Incoming9009/15159789010 [2013-09-09 22:45:26] VERBOSE[26513][C-0000007d] app_dial.c: -- SIP/BPW-Incoming9009-000000a7 answered SIP/351-000000a6 [2013-09-09 22:45:47] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:1] Macro("SIP/351-000000a6", "hangupcall,") in new stack [2013-09-09 22:45:47] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:1] GotoIf("SIP/351-000000a6", "1?theend") in new stack [2013-09-09 22:45:47] VERBOSE[26513][C-0000007d] pbx.c: -- Goto (macro-hangupcall,s,3) [2013-09-09 22:45:47] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:3] ExecIf("SIP/351-000000a6", "0?Set(CDR(recordingfile)=)") in new stack [2013-09-09 22:45:47] VERBOSE[26513][C-0000007d] pbx.c: -- Executing [[email protected]:4] Hangup("SIP/351-000000a6", "") in new stack [2013-09-09 22:45:47] VERBOSE[26513][C-0000007d] app_macro.c: == Spawn extension (macro-hangupcall, s, 4) exited non-zero on 'SIP/351-000000a6' in macro 'hangupcall' [2013-09-09 22:45:47] VERBOSE[26513][C-0000007d] pbx.c: == Spawn extension (macro-dialout-trunk, h, 1) exited non-zero on 'SIP/351-000000a6' [2013-09-09 22:45:47] VERBOSE[26513][C-0000007d] app_macro.c: == Spawn extension (macro-dialout-trunk, s, 22) exited non-zero on 'SIP/351-000000a6' in macro 'dialout-trunk' [2013-09-09 22:45:47] VERBOSE[26513][C-0000007d] pbx.c: == Spawn extension (from-internal, 5159789010, 6) exited non-zero on 'SIP/351-000000a6' [2013-09-09 22:45:47] VERBOSE[26514][C-0000007d] app_mixmonitor.c: == MixMonitor close filestream (mixed) [2013-09-09 22:45:47] VERBOSE[26514][C-0000007d] app_mixmonitor.c: == End MixMonitor Recording SIP/351-000000a6

Any idea where I should start looking to fix this?

Thanks,
Brad

Let’s start with your:-

2013-09-09 22:45:24] VERBOSE[26513][C-0000007d] pbx.c: – Executing [[email protected]:22] Dial(“SIP/351-000000a6”, “SIP/BPW-Incoming9009/15159789010,300,Tt”) in new stack

Which means:-

ext “351” is dialing “15159789010,300” on a trunk called “SIP/BPW-Incoming9009”

my guess is as use an outbound route over a trunk called “Incoming. . .” , you need to check your work and that your trunks do what you want them to.

(annoying non-editable forum software. Presentation on the android interface sucks also :wink: )

Thanks for the reply. I’ll look into my trunks and see if I made a mistake. I AM able to make outbound calls on a local SIP phone though, and it gives me that same log file entry. Would it make a difference if the phone is off my LAN?

[2013-09-10 10:07:46] VERBOSE[31013][C-00000114] pbx.c: -- Executing [[email protected]:22] Dial("SIP/300-0000013a", "SIP/BPW-Incoming9009/15158682015,300,Tt") in new stack </

Possibly, also from your original post

[2013-09-09 22:45:26] VERBOSE[26513][C-0000007d] app_dial.c: – SIP/BPW-Incoming9009-000000a7 answered SIP/351-000000a6
[2013-09-09 22:45:47] VERBOSE[26513][C-0000007d] pbx.c: – Executing [[email protected]:1] Macro(“SIP/351-000000a6”, “hangupcall,”) in new stack

which shows the call lasted 21 seconds, so do we assume no audio? this is nortmally a nat/router problem where the rtp stream is not routed correctly…

I just tested the phone and it seemed to work now (It’s off wi-fi and on 4g). When I tried it last night I was at home and on my home wi-fi. Would I need to forward the ports on my home router as well?

That would depend on your home router setup, cheap and cheerful, probably not, anything that wants to be “clever” about SIP or NAT, maybe so.