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.
--
-Cheers
-Arif