Hi,
The network topology is :
SipSoftphone(caller)----->kamailio/rtpproxy---->Softswitch---->sipGateway-->mobile phone(callee)
The rtpproxy is managed in kamailio script by :
if (is_request()) { if(has_totag()) { if(check_route_param("nat=yes")) { setbflag(FLB_NATB); } } } if (!(isflagset(FLT_NATS) || isbflagset(FLB_NATB))) return;
if (is_request()) { rtpproxy_offer("co"); } if (is_reply()) { rtpproxy_answer("coz80"); }
if (is_request()) { if (!has_totag()) { if(t_is_branch_route()) { add_rr_param(";nat=yes"); } } } if (is_reply()) { if(isbflagset(FLB_NATB)) { if(is_first_hop()) set_contact_alias(); } }
Now if in rtpproxy_answer(), i don't resize rtp packets, then everything works fine. If i put "z80" then only one way audio can be heard. In SipSoftphone(caller) side, nothing can be heard.
I have sniffed the SIP packets and it looked fine to me. The rtp packets from callee arrives fine in kamailio/rtpproxy box. But it does not leave that box.
I've sniffed the rtp packets. Before the call is picked up by the callee, there is an ivr played. The ivr arrives at the caller(softphone) end fine. But after picking up the phone, rtppackets are not delivered to the caller(softphone)'s side.
This is the rtpproxy's log:
May 11 23:54:29 65429 rtpproxy[24207]: INFO:rxmit_packets: callee's address latched in: 85.13.205.178:13716 (RTP) May 11 23:54:41 65429 rtpproxy[24207]: DBUG:get_command: received command "27802_12 Uc18,96 2b15632de8c94ff488e9cdc1cdbcb85d 182.16.156.25 4000 74d009e3a57246138e2e0124cbe6ee89;1" May 11 23:54:41 65429 rtpproxy[24207]: INFO:handle_command: adding strong flag to existing session, new=1/0/0 May 11 23:54:41 65429 rtpproxy[24207]: INFO:handle_command: lookup on ports 54920/64810, session timer restarted May 11 23:54:41 65429 rtpproxy[24207]: DBUG:doreply: sending reply "27802_12 54920 64.120.57.111#012" May 11 23:55:42 65429 rtpproxy[24207]: INFO:process_rtp: session timeout May 11 23:55:42 65429 rtpproxy[24207]: INFO:remove_session: RTP stats: 1523 in from callee, 300 in from caller, 396 relayed, 0 dropped May 11 23:55:42 65429 rtpproxy[24207]: INFO:remove_session: RTCP stats: 0 in from callee, 8 in from caller, 8 relayed, 0 dropped May 11 23:55:42 65429 rtpproxy[24207]: INFO:remove_session: session on ports 54920/64810 is cleaned up May 11 23:58:58 65429 rtpproxy[24207]: DBUG:get_command: received command "27802_13 Uc18,96 008e2697e52a4adda7be16358b318def 182.16.156.25 4002 907ba9691f6a47f3bfb0bb4143ef7dc7;1" May 11 23:58:58 65429 rtpproxy[24207]: INFO:handle_command: new session 008e2697e52a4adda7be16358b318def, tag 907ba9691f6a47f3bfb0bb4143ef7dc7;1 requested, type strong May 11 23:58:58 65429 rtpproxy[24207]: INFO:handle_command: new session on a port 53876 created, tag 907ba9691f6a47f3bfb0bb4143ef7dc7;1 May 11 23:58:58 65429 rtpproxy[24207]: INFO:handle_command: pre-filling caller's address with 182.16.156.25:4002 May 11 23:58:58 65429 rtpproxy[24207]: DBUG:doreply: sending reply "27802_13 53876 64.120.57.111#012" May 11 23:58:59 65429 rtpproxy[24207]: DBUG:get_command: received command "27803_10 LZ80c18 008e2697e52a4adda7be16358b318def 85.13.205.178 26728 907ba9691f6a47f3bfb0bb4143ef7dc7;1 6611E63499885;1" May 11 23:58:59 65429 rtpproxy[24207]: INFO:handle_command: lookup on ports 53876/42866, session timer restarted May 11 23:58:59 65429 rtpproxy[24207]: INFO:handle_command: pre-filling callee's address with 85.13.205.178:26728 May 11 23:58:59 65429 rtpproxy[24207]: INFO:handle_command: RTP packets from callee will be resized to 80 milliseconds May 11 23:58:59 65429 rtpproxy[24207]: DBUG:doreply: sending reply "27803_10 42866 64.120.57.111#012" May 11 23:58:59 65429 rtpproxy[24207]: INFO:rxmit_packets: callee's address filled in: 85.13.217.158:26728 (RTP) May 11 23:58:59 65429 rtpproxy[24207]: INFO:rxmit_packets: guessing RTCP port for callee to be 26729 May 11 23:58:59 65429 rtpproxy[24207]: INFO:rxmit_packets: caller's address latched in: 182.16.156.25:4003 (RTCP) May 11 23:58:59 65429 rtpproxy[24207]: INFO:rxmit_packets: caller's address filled in: 182.16.156.25:1036 (RTP) May 11 23:58:59 65429 rtpproxy[24207]: DBUG:get_command: received command "27801_10 LZ80c18 008e2697e52a4adda7be16358b318def 85.13.205.178 26728 907ba9691f6a47f3bfb0bb4143ef7dc7;1 6611E63499885;1" May 11 23:58:59 65429 rtpproxy[24207]: INFO:handle_command: lookup on ports 53876/42866, session timer restarted May 11 23:58:59 65429 rtpproxy[24207]: INFO:handle_command: RTP packets from callee will be resized to 80 milliseconds May 11 23:58:59 65429 rtpproxy[24207]: DBUG:doreply: sending reply "27801_10 42866 64.120.57.111#012" May 11 23:59:00 65429 rtpproxy[24207]: DBUG:get_command: received command "27802_14 LZ80c18 008e2697e52a4adda7be16358b318def 85.13.205.178 26728 907ba9691f6a47f3bfb0bb4143ef7dc7;1 6611E63499885;1" May 11 23:59:00 65429 rtpproxy[24207]: INFO:handle_command: lookup on ports 53876/42866, session timer restarted May 11 23:59:00 65429 rtpproxy[24207]: INFO:handle_command: RTP packets from callee will be resized to 80 milliseconds May 11 23:59:00 65429 rtpproxy[24207]: DBUG:doreply: sending reply "27802_14 42866 64.120.57.111#012" May 11 23:59:02 65429 rtpproxy[24207]: DBUG:get_command: received command "27800_13 LZ80c18 008e2697e52a4adda7be16358b318def 85.13.205.178 26728 907ba9691f6a47f3bfb0bb4143ef7dc7;1 6611E63499885;1" May 11 23:59:02 65429 rtpproxy[24207]: INFO:handle_command: lookup on ports 53876/42866, session timer restarted May 11 23:59:02 65429 rtpproxy[24207]: INFO:handle_command: RTP packets from callee will be resized to 80 milliseconds May 11 23:59:02 65429 rtpproxy[24207]: DBUG:doreply: sending reply "27800_13 42866 64.120.57.111#012" May 11 23:59:06 65429 rtpproxy[24207]: DBUG:get_command: received command "27801_11 LZ80c18 008e2697e52a4adda7be16358b318def 85.13.205.178 26728 907ba9691f6a47f3bfb0bb4143ef7dc7;1 6611E63499885;1" May 11 23:59:06 65429 rtpproxy[24207]: INFO:handle_command: lookup on ports 53876/42866, session timer restarted May 11 23:59:06 65429 rtpproxy[24207]: INFO:handle_command: RTP packets from callee will be resized to 80 milliseconds May 11 23:59:06 65429 rtpproxy[24207]: DBUG:doreply: sending reply "27801_11 42866 64.120.57.111#012" May 11 23:59:10 65429 rtpproxy[24207]: DBUG:get_command: received command "27802_15 LZ80c18 008e2697e52a4adda7be16358b318def 85.13.205.178 26728 907ba9691f6a47f3bfb0bb4143ef7dc7;1 6611E63499885;1" May 11 23:59:10 65429 rtpproxy[24207]: INFO:handle_command: lookup on ports 53876/42866, session timer restarted May 11 23:59:10 65429 rtpproxy[24207]: INFO:handle_command: RTP packets from callee will be resized to 80 milliseconds May 11 23:59:10 65429 rtpproxy[24207]: DBUG:doreply: sending reply "27802_15 42866 64.120.57.111#012" May 11 23:59:20 65429 rtpproxy[24207]: INFO:rxmit_packets: callee's address latched in: 85.13.217.158:26728 (RTP)
I don't what is going wrong here, but somehow rtpproxy is not relaying the packets from callee's end.
But the addresses seems fine and whenever i remove the "z80" inside rtpproxy_answer(), It works fine.
At first i thought its just that the resizer is broken. But when the ivr is played, the rtppackets of the ivr works just fine.