SIP calls from public IP vs internal private IPs

I have an Asterisk box setup that has two NICs. 1 is a NIC with a public IP and the other is a NIC with a private IP (192.168.14.1).

I am able to place calls with no problem from devices that are within the private network. However, when I take a soft phone (3CX) and connect from the internet there is no voice path. The call is established but no sound is heard. I am assuming it’s an issue with the RTP setup but I cannot figure out how to resolve it.

== Using SIP RTP TOS bits 184 == Using SIP RTP CoS mark 5 -- Executing [1014@from-internal:1] Set("SIP/1001-00000077", "__RINGTIMER=20") in new stack -- Executing [1014@from-internal:2] Macro("SIP/1001-00000077", "exten-vm,1014,1014,0,0,0") in new stack -- Executing [s@macro-exten-vm:1] Macro("SIP/1001-00000077", "user-callerid,") in new stack -- Executing [s@macro-user-callerid:1] Set("SIP/1001-00000077", "AMPUSER=1001") in new stack -- Executing [s@macro-user-callerid:2] GotoIf("SIP/1001-00000077", "0?report") in new stack -- Executing [s@macro-user-callerid:3] ExecIf("SIP/1001-00000077", "1?Set(REALCALLERIDNUM=1001)") in new stack -- Executing [s@macro-user-callerid:4] Set("SIP/1001-00000077", "AMPUSER=1001") in new stack -- Executing [s@macro-user-callerid:5] Set("SIP/1001-00000077", "AMPUSERCIDNAME=Andrew Cell") in new stack -- Executing [s@macro-user-callerid:6] GotoIf("SIP/1001-00000077", "0?report") in new stack -- Executing [s@macro-user-callerid:7] Set("SIP/1001-00000077", "AMPUSERCID=1001") in new stack -- Executing [s@macro-user-callerid:8] Set("SIP/1001-00000077", "CALLERID(all)="Andrew Cell" <1001>") in new stack -- Executing [s@macro-user-callerid:9] GotoIf("SIP/1001-00000077", "0?limit") in new stack -- Executing [s@macro-user-callerid:10] ExecIf("SIP/1001-00000077", "0?Set(GROUP(concurrency_limit)=1001)") in new stack -- Executing [s@macro-user-callerid:11] ExecIf("SIP/1001-00000077", "0?Set(CHANNEL(language)=)") in new stack -- Executing [s@macro-user-callerid:12] GosubIf("SIP/1001-00000077", "7?sub-ccss,s,1(macro-exten-vm,1014)") in new stack -- Executing [s@sub-ccss:1] ExecIf("SIP/1001-00000077", "0?Return()") in new stack -- Executing [s@sub-ccss:2] Set("SIP/1001-00000077", "CCSS_SETUP=TRUE") in new stack -- Executing [s@sub-ccss:3] GosubIf("SIP/1001-00000077", "7?monitor_config,1(macro-exten-vm,1014):monitor_default,1(macro-exten-vm,1014 ) in new stack -- Executing [monitor_config@sub-ccss:1] Set("SIP/1001-00000077", "CALLCOMPLETION(cc_monitor_policy)=generic") in new stack -- Executing [monitor_config@sub-ccss:2] GotoIf("SIP/1001-00000077", "1?set_monitor") in new stack -- Goto (sub-ccss,monitor_config,5) -- Executing [monitor_config@sub-ccss:5] Set("SIP/1001-00000077", "CALLCOMPLETION(cc_max_monitors)=") in new stack -- Executing [monitor_config@sub-ccss:6] Return("SIP/1001-00000077", "TRUE") in new stack -- Executing [s@sub-ccss:4] GosubIf("SIP/1001-00000077", "7?agent_config,1():agent_default,1()") in new stack -- Executing [agent_config@sub-ccss:1] Set("SIP/1001-00000077", "CALLCOMPLETION(cc_agent_policy)=generic") in new stack -- Executing [agent_config@sub-ccss:2] Set("SIP/1001-00000077", "CALLCOMPLETION(cc_offer_timer)=30") in new stack -- Executing [agent_config@sub-ccss:3] Set("SIP/1001-00000077", "CALLCOMPLETION(ccbs_available_timer)=4800") in new stack -- Executing [agent_config@sub-ccss:4] Set("SIP/1001-00000077", "CALLCOMPLETION(ccnr_available_timer)=7200") in new stack -- Executing [agent_config@sub-ccss:5] Set("SIP/1001-00000077", "CALLCOMPLETION(cc_callback_macro)=ccss-default") in new stack -- Executing [agent_config@sub-ccss:6] ExecIf("SIP/1001-00000077", "1?Set(CALLCOMPLETION(cc_recall_timer)=15)") in new stack -- Executing [agent_config@sub-ccss:7] ExecIf("SIP/1001-00000077", "1?Set(CALLCOMPLETION(cc_max_agents)=5)") in new stack -- Executing [agent_config@sub-ccss:8] ExecIf("SIP/1001-00000077", "1?Set(CALLCOMPLETION(cc_agent_dialstring)=Local/1001_1014@from-ccss extension)") in new stack -- Executing [agent_config@sub-ccss:9] Set("SIP/1001-00000077", "CALLCOMPLETION(cc_callback_macro)=ccss-default") in new stack -- Executing [agent_config@sub-ccss:10] Return("SIP/1001-00000077", "") in new stack -- Executing [s@sub-ccss:5] Set("SIP/1001-00000077", "DB(AMPUSER/1001/ccss/last_number)=1014") in new stack -- Executing [s@sub-ccss:6] Return("SIP/1001-00000077", "") in new stack -- Executing [s@macro-user-callerid:13] GotoIf("SIP/1001-00000077", "0?continue") in new stack -- Executing [s@macro-user-callerid:14] Set("SIP/1001-00000077", "__TTL=64") in new stack -- Executing [s@macro-user-callerid:15] GotoIf("SIP/1001-00000077", "1?continue") in new stack -- Goto (macro-user-callerid,s,26) -- Executing [s@macro-user-callerid:26] Set("SIP/1001-00000077", "CALLERID(number)=1001") in new stack -- Executing [s@macro-user-callerid:27] Set("SIP/1001-00000077", "CALLERID(name)=Andrew Cell") in new stack -- Executing [s@macro-user-callerid:28] Set("SIP/1001-00000077", "CHANNEL(language)=en") in new stack -- Executing [s@macro-exten-vm:2] Set("SIP/1001-00000077", "RingGroupMethod=none") in new stack -- Executing [s@macro-exten-vm:3] Set("SIP/1001-00000077", "__EXTTOCALL=1014") in new stack -- Executing [s@macro-exten-vm:4] Set("SIP/1001-00000077", "__PICKUPMARK=1014") in new stack -- Executing [s@macro-exten-vm:5] Set("SIP/1001-00000077", "RT=20") in new stack -- Executing [s@macro-exten-vm:6] Gosub("SIP/1001-00000077", "sub-record-check,s,1(exten,1014,)") in new stack -- Executing [s@sub-record-check:1] GotoIf("SIP/1001-00000077", "1?check") in new stack -- Goto (sub-record-check,s,6) -- Executing [s@sub-record-check:6] Set("SIP/1001-00000077", "__MON_FMT=wav") in new stack -- Executing [s@sub-record-check:7] GotoIf("SIP/1001-00000077", "1?next") in new stack -- Goto (sub-record-check,s,10) -- Executing [s@sub-record-check:10] ExecIf("SIP/1001-00000077", "0?Return()") in new stack -- Executing [s@sub-record-check:11] GotoIf("SIP/1001-00000077", "0?exten,1") in new stack -- Executing [s@sub-record-check:12] Set("SIP/1001-00000077", "__REC_STATUS=INITIALIZED") in new stack -- Executing [s@sub-record-check:13] ExecIf("SIP/1001-00000077", "0?Set(__REC_POLICY_MODE=)") in new stack -- Executing [s@sub-record-check:14] Set("SIP/1001-00000077", "NOW=1348238324") in new stack -- Executing [s@sub-record-check:15] Set("SIP/1001-00000077", "__DAY=21") in new stack -- Executing [s@sub-record-check:16] Set("SIP/1001-00000077", "__MONTH=09") in new stack -- Executing [s@sub-record-check:17] Set("SIP/1001-00000077", "__YEAR=2012") in new stack -- Executing [s@sub-record-check:18] Set("SIP/1001-00000077", "__TIMESTR=20120921-103844") in new stack -- Executing [s@sub-record-check:19] Set("SIP/1001-00000077", "__FROMEXTEN=1001") in new stack -- Executing [s@sub-record-check:20] Set("SIP/1001-00000077", "__CALLFILENAME=exten-1014-1001-20120921-103844-1348238324.158") in new s ack -- Executing [s@sub-record-check:21] Goto("SIP/1001-00000077", "exten,1") in new stack -- Goto (sub-record-check,exten,1) -- Executing [exten@sub-record-check:1] GotoIf("SIP/1001-00000077", "0?callee") in new stack -- Executing [exten@sub-record-check:2] Set("SIP/1001-00000077", "__REC_POLICY_MODE=") in new stack -- Executing [exten@sub-record-check:3] GotoIf("SIP/1001-00000077", "0?caller") in new stack -- Executing [exten@sub-record-check:4] GotoIf("SIP/1001-00000077", "0?callee") in new stack -- Executing [exten@sub-record-check:5] ExecIf("SIP/1001-00000077", "0?Set(CALLER_PRI=):Set(CALLER_PRI=0)") in new stack -- Executing [exten@sub-record-check:6] ExecIf("SIP/1001-00000077", "0?Set(CALLEE_PRI=):Set(CALLEE_PRI=0)") in new stack -- Executing [exten@sub-record-check:7] GotoIf("SIP/1001-00000077", "1?caller:callee") in new stack -- Goto (sub-record-check,exten,10) -- Executing [exten@sub-record-check:10] Set("SIP/1001-00000077", "REC_POLICY_MODE=") in new stack -- Executing [exten@sub-record-check:11] GosubIf("SIP/1001-00000077", "0?record,1(exten,1014,1001)") in new stack -- Executing [exten@sub-record-check:12] Return("SIP/1001-00000077", "") in new stack -- Executing [s@macro-exten-vm:7] Macro("SIP/1001-00000077", "dial-one,20,tr,1014") in new stack -- Executing [s@macro-dial-one:1] Set("SIP/1001-00000077", "DEXTEN=1014") in new stack -- Executing [s@macro-dial-one:2] Set("SIP/1001-00000077", "DIALSTATUS_CW=") in new stack -- Executing [s@macro-dial-one:3] GosubIf("SIP/1001-00000077", "0?screen,1()") in new stack -- Executing [s@macro-dial-one:4] GosubIf("SIP/1001-00000077", "0?cf,1()") in new stack -- Executing [s@macro-dial-one:5] GotoIf("SIP/1001-00000077", "1?skip1") in new stack -- Goto (macro-dial-one,s,8) -- Executing [s@macro-dial-one:8] GotoIf("SIP/1001-00000077", "0?nodial") in new stack -- Executing [s@macro-dial-one:9] GotoIf("SIP/1001-00000077", "0?continue") in new stack -- Executing [s@macro-dial-one:10] Set("SIP/1001-00000077", "EXTHASCW=ENABLED") in new stack -- Executing [s@macro-dial-one:11] GotoIf("SIP/1001-00000077", "0?next1:cwinusebusy") in new stack -- Goto (macro-dial-one,s,23) -- Executing [s@macro-dial-one:23] GotoIf("SIP/1001-00000077", "1?next3:continue") in new stack -- Goto (macro-dial-one,s,24) -- Executing [s@macro-dial-one:24] ExecIf("SIP/1001-00000077", "0?Set(DIALSTATUS_CW=BUSY)") in new stack -- Executing [s@macro-dial-one:25] GotoIf("SIP/1001-00000077", "0?nodial") in new stack -- Executing [s@macro-dial-one:26] GosubIf("SIP/1001-00000077", "1?dstring,1():dlocal,1()") in new stack -- Executing [dstring@macro-dial-one:1] Set("SIP/1001-00000077", "DSTRING=") in new stack -- Executing [dstring@macro-dial-one:2] Set("SIP/1001-00000077", "DEVICES=1014") in new stack -- Executing [dstring@macro-dial-one:3] ExecIf("SIP/1001-00000077", "0?Return()") in new stack -- Executing [dstring@macro-dial-one:4] ExecIf("SIP/1001-00000077", "0?Set(DEVICES=014)") in new stack -- Executing [dstring@macro-dial-one:5] Set("SIP/1001-00000077", "LOOPCNT=1") in new stack -- Executing [dstring@macro-dial-one:6] Set("SIP/1001-00000077", "ITER=1") in new stack -- Executing [dstring@macro-dial-one:7] Set("SIP/1001-00000077", "THISDIAL=SIP/1014") in new stack -- Executing [dstring@macro-dial-one:8] GosubIf("SIP/1001-00000077", "1?zap2dahdi,1()") in new stack -- Executing [zap2dahdi@macro-dial-one:1] ExecIf("SIP/1001-00000077", "0?Return()") in new stack -- Executing [zap2dahdi@macro-dial-one:2] Set("SIP/1001-00000077", "NEWDIAL=") in new stack -- Executing [zap2dahdi@macro-dial-one:3] Set("SIP/1001-00000077", "LOOPCNT2=1") in new stack -- Executing [zap2dahdi@macro-dial-one:4] Set("SIP/1001-00000077", "ITER2=1") in new stack -- Executing [zap2dahdi@macro-dial-one:5] Set("SIP/1001-00000077", "THISPART2=SIP/1014") in new stack -- Executing [zap2dahdi@macro-dial-one:6] ExecIf("SIP/1001-00000077", "0?Set(THISPART2=DAHDI/1014)") in new stack -- Executing [zap2dahdi@macro-dial-one:7] Set("SIP/1001-00000077", "NEWDIAL=SIP/1014&") in new stack -- Executing [zap2dahdi@macro-dial-one:8] Set("SIP/1001-00000077", "ITER2=2") in new stack -- Executing [zap2dahdi@macro-dial-one:9] GotoIf("SIP/1001-00000077", "0?begin2") in new stack -- Executing [zap2dahdi@macro-dial-one:10] Set("SIP/1001-00000077", "THISDIAL=SIP/1014") in new stack -- Executing [zap2dahdi@macro-dial-one:11] Return("SIP/1001-00000077", "") in new stack -- Executing [dstring@macro-dial-one:9] Set("SIP/1001-00000077", "DSTRING=SIP/1014&") in new stack -- Executing [dstring@macro-dial-one:10] Set("SIP/1001-00000077", "ITER=2") in new stack -- Executing [dstring@macro-dial-one:11] GotoIf("SIP/1001-00000077", "0?begin") in new stack -- Executing [dstring@macro-dial-one:12] Set("SIP/1001-00000077", "DSTRING=SIP/1014") in new stack -- Executing [dstring@macro-dial-one:13] Return("SIP/1001-00000077", "") in new stack -- Executing [s@macro-dial-one:27] GotoIf("SIP/1001-00000077", "0?nodial") in new stack -- Executing [s@macro-dial-one:28] GotoIf("SIP/1001-00000077", "0?skiptrace") in new stack -- Executing [s@macro-dial-one:29] GosubIf("SIP/1001-00000077", "1?ctset,1():ctclear,1()") in new stack -- Executing [ctset@macro-dial-one:1] Set("SIP/1001-00000077", "DB(CALLTRACE/1014)=1001") in new stack -- Executing [ctset@macro-dial-one:2] Return("SIP/1001-00000077", "") in new stack -- Executing [s@macro-dial-one:30] Set("SIP/1001-00000077", "D_OPTIONS=tr") in new stack -- Executing [s@macro-dial-one:31] ExecIf("SIP/1001-00000077", "0?SIPAddHeader(Alert-Info: )") in new stack -- Executing [s@macro-dial-one:32] ExecIf("SIP/1001-00000077", "0?SIPAddHeader()") in new stack -- Executing [s@macro-dial-one:33] ExecIf("SIP/1001-00000077", "0?Set(CHANNEL(musicclass)=)") in new stack -- Executing [s@macro-dial-one:34] GosubIf("SIP/1001-00000077", "0?qwait,1()") in new stack -- Executing [s@macro-dial-one:35] Set("SIP/1001-00000077", "__CWIGNORE=") in new stack -- Executing [s@macro-dial-one:36] Set("SIP/1001-00000077", "__KEEPCID=TRUE") in new stack -- Executing [s@macro-dial-one:37] GotoIf("SIP/1001-00000077", "0?usegoto,1") in new stack -- Executing [s@macro-dial-one:38] GotoIf("SIP/1001-00000077", "0?godial") in new stack -- Executing [s@macro-dial-one:39] Set("SIP/1001-00000077", "CONNECTEDLINE(name,i)=Pop's Room") in new stack -- Executing [s@macro-dial-one:40] Set("SIP/1001-00000077", "CONNECTEDLINE(num)=1014") in new stack -- Executing [s@macro-dial-one:41] Set("SIP/1001-00000077", "D_OPTIONS=trI") in new stack -- Executing [s@macro-dial-one:42] Dial("SIP/1001-00000077", "SIP/1014,20,trI") in new stack == Using SIP RTP TOS bits 184 == Using SIP RTP CoS mark 5 -- Called SIP/1014 -- Connected line update to SIP/1001-00000077 prevented. -- SIP/1014-00000078 is ringing -- Connected line update to SIP/1001-00000077 prevented. -- SIP/1014-00000078 answered SIP/1001-00000077 -- adaptive jitterbuffer created on channel SIP/1001-00000077 > doing dnsmgr_lookup for 'callcentric.com' -- Executing [h@macro-dial-one:1] Macro("SIP/1001-00000077", "hangupcall,") in new stack -- Executing [s@macro-hangupcall:1] GotoIf("SIP/1001-00000077", "1?theend") in new stack -- Goto (macro-hangupcall,s,3) -- Executing [s@macro-hangupcall:3] ExecIf("SIP/1001-00000077", "0?Set(CDR(recordingfile)=)") in new stack -- Executing [s@macro-hangupcall:4] Hangup("SIP/1001-00000077", "") in new stack == Spawn extension (macro-hangupcall, s, 4) exited non-zero on 'SIP/1001-00000077' in macro 'hangupcall' == Spawn extension (macro-dial-one, h, 1) exited non-zero on 'SIP/1001-00000077' == Spawn extension (macro-dial-one, s, 42) exited non-zero on 'SIP/1001-00000077' in macro 'dial-one' == Spawn extension (macro-exten-vm, s, 7) exited non-zero on 'SIP/1001-00000077' in macro 'exten-vm' == Spawn extension (from-internal, 1014, 2) exited non-zero on 'SIP/1001-00000077' -- adaptive jitterbuffer destroyed on channel SIP/1001-00000077 > doing dnsmgr_lookup for 'callcentric.com'

Is there any kind of firewall protecting the public IP address?

Also do a “sip set debug on” in the Asterisk console and copy/paste the output.