Critical Packet -- goes to wrong IP

Hello,

Due to circumstances beyond my control, I’m stuck getting a SIP phone working outside the office network. The issue I’m experiencing at the moment is when I call out from the remote phone to say, my cellphone, my cellphone rings but on the remote phone there is no audio (not even a ringing… tone). When I answer, I get no audio in either direction. About 5 seconds later, the call terminates automatically on my cell. On the remote phone, call stays established until hung up normally.

The asterisk log (shown below, [pastebin link]) shows the NAT’ed Internal LAN ip of the phone – 10.2.10.113, not the WAN IP.

Is my diagnosis that this is a NAT problem correct? If yes, how can I resolve this?

== Using SIP RTP TOS bits 184
  == Using SIP RTP CoS mark 5
    -- Executing [<CELL NO>@from-internal:1] Macro("SIP/260-00000aa8", "user-callerid,LIMIT,EXTERNAL,") in new stack
    -- Executing [s@macro-user-callerid:1] Set("SIP/260-00000aa8", "TOUCH_MONITOR=1433715974.2730") in new stack
    -- Executing [s@macro-user-callerid:2] Set("SIP/260-00000aa8", "AMPUSER=260") in new stack
    -- Executing [s@macro-user-callerid:3] GotoIf("SIP/260-00000aa8", "0?report") in new stack
    -- Executing [s@macro-user-callerid:4] ExecIf("SIP/260-00000aa8", "1?Set(REALCALLERIDNUM=260)") in new stack
    -- Executing [s@macro-user-callerid:5] Set("SIP/260-00000aa8", "AMPUSER=260") in new stack
    -- Executing [s@macro-user-callerid:6] GotoIf("SIP/260-00000aa8", "0?limit") in new stack
    -- Executing [s@macro-user-callerid:7] Set("SIP/260-00000aa8", "AMPUSERCIDNAME=Testing") in new stack
    -- Executing [s@macro-user-callerid:8] GotoIf("SIP/260-00000aa8", "0?report") in new stack
    -- Executing [s@macro-user-callerid:9] Set("SIP/260-00000aa8", "AMPUSERCID=260") in new stack
    -- Executing [s@macro-user-callerid:10] Set("SIP/260-00000aa8", "__DIAL_OPTIONS=tr") in new stack
    -- Executing [s@macro-user-callerid:11] Set("SIP/260-00000aa8", "CALLERID(all)="Testing" <260>") in new stack
    -- Executing [s@macro-user-callerid:12] GotoIf("SIP/260-00000aa8", "0?limit") in new stack
    -- Executing [s@macro-user-callerid:13] ExecIf("SIP/260-00000aa8", "1?Set(GROUP(concurrency_limit)=260)") in new stack
    -- Executing [s@macro-user-callerid:14] GosubIf("SIP/260-00000aa8", "7?sub-ccss,s,1(from-internal,<CELL NO>)") in new stack
    -- Executing [s@sub-ccss:1] ExecIf("SIP/260-00000aa8", "0?Return()") in new stack
    -- Executing [s@sub-ccss:2] Set("SIP/260-00000aa8", "CCSS_SETUP=TRUE") in new stack
    -- Executing [s@sub-ccss:3] GosubIf("SIP/260-00000aa8", "0?monitor_config,1(from-internal,<CELL NO>):monitor_default,1(from-internal,<CELL NO>)") in new stack
    -- Executing [monitor_default@sub-ccss:1] GotoIf("SIP/260-00000aa8", "0?is_exten") in new stack
    -- Executing [monitor_default@sub-ccss:2] StackPop("SIP/260-00000aa8", "") in new stack
    -- Executing [monitor_default@sub-ccss:3] Return("SIP/260-00000aa8", "FALSE") in new stack
    -- Executing [s@macro-user-callerid:15] ExecIf("SIP/260-00000aa8", "0?Set(CHANNEL(language)=)") in new stack
    -- Executing [s@macro-user-callerid:16] GotoIf("SIP/260-00000aa8", "1?continue") in new stack
    -- Goto (macro-user-callerid,s,29)
    -- Executing [s@macro-user-callerid:29] Set("SIP/260-00000aa8", "CALLERID(number)=260") in new stack
    -- Executing [s@macro-user-callerid:30] Set("SIP/260-00000aa8", "CALLERID(name)=Testing") in new stack
    -- Executing [s@macro-user-callerid:31] Set("SIP/260-00000aa8", "CDR(cnum)=260") in new stack
    -- Executing [s@macro-user-callerid:32] Set("SIP/260-00000aa8", "CDR(cnam)=Testing") in new stack
    -- Executing [s@macro-user-callerid:33] Set("SIP/260-00000aa8", "CHANNEL(language)=en") in new stack
    -- Executing [<CELL NO>@from-internal:2] Set("SIP/260-00000aa8", "MOHCLASS=default") in new stack
    -- Executing [<CELL NO>@from-internal:3] ExecIf("SIP/260-00000aa8", "1?Set(TRUNKCIDOVERRIDE=92723443)") in new stack
    -- Executing [<CELL NO>@from-internal:4] Set("SIP/260-00000aa8", "_NODEST=") in new stack
    -- Executing [<CELL NO>@from-internal:5] Macro("SIP/260-00000aa8", "dialout-trunk,1,<CELL NO>,,off") in new stack
    -- Executing [s@macro-dialout-trunk:1] Set("SIP/260-00000aa8", "DIAL_TRUNK=1") in new stack
    -- Executing [s@macro-dialout-trunk:2] GosubIf("SIP/260-00000aa8", "0?sub-pincheck,s,1()") in new stack
    -- Executing [s@macro-dialout-trunk:3] GotoIf("SIP/260-00000aa8", "0?disabletrunk,1") in new stack
    -- Executing [s@macro-dialout-trunk:4] Set("SIP/260-00000aa8", "DIAL_NUMBER=<CELL NO>") in new stack
    -- Executing [s@macro-dialout-trunk:5] Set("SIP/260-00000aa8", "DIAL_TRUNK_OPTIONS=tr") in new stack
    -- Executing [s@macro-dialout-trunk:6] Set("SIP/260-00000aa8", "OUTBOUND_GROUP=OUT_1") in new stack
    -- Executing [s@macro-dialout-trunk:7] GotoIf("SIP/260-00000aa8", "0?nomax") in new stack
    -- Executing [s@macro-dialout-trunk:8] GotoIf("SIP/260-00000aa8", "0?chanfull") in new stack
    -- Executing [s@macro-dialout-trunk:9] GotoIf("SIP/260-00000aa8", "0?skipoutcid") in new stack
    -- Executing [s@macro-dialout-trunk:10] Set("SIP/260-00000aa8", "DIAL_TRUNK_OPTIONS=") in new stack
    -- Executing [s@macro-dialout-trunk:11] Macro("SIP/260-00000aa8", "outbound-callerid,1") in new stack
    -- Executing [s@macro-outbound-callerid:1] ExecIf("SIP/260-00000aa8", "0?Set(CALLERPRES()=)") in new stack
    -- Executing [s@macro-outbound-callerid:2] ExecIf("SIP/260-00000aa8", "0?Set(REALCALLERIDNUM=260)") in new stack
    -- Executing [s@macro-outbound-callerid:3] GotoIf("SIP/260-00000aa8", "1?normcid") in new stack
    -- Goto (macro-outbound-callerid,s,6)
    -- Executing [s@macro-outbound-callerid:6] Set("SIP/260-00000aa8", "USEROUTCID=") in new stack
    -- Executing [s@macro-outbound-callerid:7] Set("SIP/260-00000aa8", "EMERGENCYCID=") in new stack
    -- Executing [s@macro-outbound-callerid:8] Set("SIP/260-00000aa8", "TRUNKOUTCID=92723443") in new stack
    -- Executing [s@macro-outbound-callerid:9] GotoIf("SIP/260-00000aa8", "1?trunkcid") in new stack
    -- Goto (macro-outbound-callerid,s,14)
    -- Executing [s@macro-outbound-callerid:14] ExecIf("SIP/260-00000aa8", "1?Set(CALLERID(all)=92723443)") in new stack
    -- Executing [s@macro-outbound-callerid:15] ExecIf("SIP/260-00000aa8", "0?Set(CALLERID(all)=)") in new stack
    -- Executing [s@macro-outbound-callerid:16] ExecIf("SIP/260-00000aa8", "1?Set(CALLERID(all)=92723443)") in new stack
    -- Executing [s@macro-outbound-callerid:17] ExecIf("SIP/260-00000aa8", "0?Set(CALLERPRES()=prohib_passed_screen)") in new stack
    -- Executing [s@macro-outbound-callerid:18] Set("SIP/260-00000aa8", "CDR(outbound_cnum)=92723443") in new stack
    -- Executing [s@macro-outbound-callerid:19] Set("SIP/260-00000aa8", "CDR(outbound_cnam)=") in new stack
    -- Executing [s@macro-dialout-trunk:12] GosubIf("SIP/260-00000aa8", "0?sub-flp-1,s,1()") in new stack
    -- Executing [s@macro-dialout-trunk:13] Set("SIP/260-00000aa8", "OUTNUM=<CELL NO>") in new stack
    -- Executing [s@macro-dialout-trunk:14] Set("SIP/260-00000aa8", "custom=SIP/DVX") in new stack
    -- Executing [s@macro-dialout-trunk:15] ExecIf("SIP/260-00000aa8", "0?Set(DIAL_TRUNK_OPTIONS=M(setmusic^default))") in new stack
    -- Executing [s@macro-dialout-trunk:16] ExecIf("SIP/260-00000aa8", "0?Set(DIAL_TRUNK_OPTIONS=M(confirm))") in new stack
    -- Executing [s@macro-dialout-trunk:17] Macro("SIP/260-00000aa8", "dialout-trunk-predial-hook,") in new stack
    -- Executing [s@macro-dialout-trunk-predial-hook:1] MacroExit("SIP/260-00000aa8", "") in new stack
    -- Executing [s@macro-dialout-trunk:18] GotoIf("SIP/260-00000aa8", "0?bypass,1") in new stack
    -- Executing [s@macro-dialout-trunk:19] ExecIf("SIP/260-00000aa8", "1?Set(CONNECTEDLINE(num,i)=<CELL NO>)") in new stack
    -- Executing [s@macro-dialout-trunk:20] ExecIf("SIP/260-00000aa8", "1?Set(CONNECTEDLINE(name,i)=CID:92723443)") in new stack
    -- Executing [s@macro-dialout-trunk:21] GotoIf("SIP/260-00000aa8", "0?customtrunk") in new stack
    -- Executing [s@macro-dialout-trunk:22] Dial("SIP/260-00000aa8", "SIP/DVX/<CELL NO>,300,") in new stack
  == Using SIP RTP TOS bits 184
  == Using SIP RTP CoS mark 5
    -- Called SIP/DVX/<CELL NO>
    -- SIP/DVX-00000aa9 is making progress passing it to SIP/260-00000aa8
    -- SIP/DVX-00000aa9 answered SIP/260-00000aa8
[2015-06-08 10:26:27] WARNING[2270]: chan_sip.c:4169 retrans_pkt: Retransmission timeout reached on transmission [email protected] for seqno 2 (Critical Response) -- See https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions
Packet timed out after 6399ms with no response
[2015-06-08 10:26:27] WARNING[2270]: chan_sip.c:4198 retrans_pkt: Hanging up call [email protected] - no reply to our critical packet (see https://wiki.asterisk.org/wiki/display/AST/SIP+Retransmissions).
    -- Executing [h@macro-dialout-trunk:1] Macro("SIP/260-00000aa8", "hangupcall,") in new stack
    -- Executing [s@macro-hangupcall:1] GotoIf("SIP/260-00000aa8", "1?theend") in new stack
    -- Goto (macro-hangupcall,s,3)
    -- Executing [s@macro-hangupcall:3] ExecIf("SIP/260-00000aa8", "0?Set(CDR(recordingfile)=)") in new stack
    -- Executing [s@macro-hangupcall:4] Hangup("SIP/260-00000aa8", "") in new stack
  == Spawn extension (macro-hangupcall, s, 4) exited non-zero on 'SIP/260-00000aa8' in macro 'hangupcall'
  == Spawn extension (macro-dialout-trunk, h, 1) exited non-zero on 'SIP/260-00000aa8'
  == Spawn extension (macro-dialout-trunk, s, 22) exited non-zero on 'SIP/260-00000aa8' in macro 'dialout-trunk'
  == Spawn extension (from-internal, <CELL NO>, 5) exited non-zero on 'SIP/260-00000aa8'