[SR-Users] rtpproxy doesn't record after start_recording

Marko Tirs marko.tirs at yahoo.com
Sun Mar 12 00:02:38 CET 2017


Hello experts,

I'm newbie in Kamailio and have a problem with my 1st installation.
I just want to control the calls between SIP clients registered by Kamailio
and record the conversations.

I installed rtpproxy and started with
rtpproxy -F -s udp:127.0.0.1:7722 -l 192.168.0.13 -r /home/user1/rtpproxy
-d DBUG:LOG_LOCAL0

After start_recording() in the function onreply_route[MANAGE_REPLY]
rtpproxy creates the files <call-id>.rtp and <call-id>.rtcp but they
remain at zero length.

2nd problem is that the media stream is broken in one direction
after start_recording() has been executed, the callee doesn't hear
the caller.

How is the right Kamailio configuration for recording conversations?

Thank you
Regards
Marko


Modified kamailio-basic.cfg partly:

#!KAMAILIO

#!define WITH_NAT

#!ifdef WITH_NAT
loadmodule "nathelper.so"
loadmodule "rtpproxy.so"
#!endif

#!ifdef WITH_NAT
# ----- rtpproxy params -----
modparam("rtpproxy", "rtpproxy_sock", "udp:127.0.0.1:7722")

# ----- nathelper params -----
modparam("nathelper", "natping_interval", 30)
modparam("nathelper", "ping_nated_only", 1)
modparam("nathelper", "sipping_bflag", FLB_NATSIPPING)
modparam("nathelper", "sipping_from", "sip:pinger at kamailio.org")

# params needed for NAT traversal in other modules
modparam("nathelper|registrar", "received_avp", "$avp(RECEIVED)")
modparam("usrloc", "nat_bflag", FLB_NATB)
#!endif

####### Routing Logic ########

route[RELAY] {
# enable additional event routes for forwarded requests
# - serial forking, RTP relaying handling, a.s.o.
if (is_method("INVITE|BYE|SUBSCRIBE|UPDATE")) {
if(!t_is_set("branch_route")) t_on_branch("MANAGE_BRANCH");
}
if (is_method("INVITE|SUBSCRIBE|UPDATE")) {
if(!t_is_set("onreply_route")) t_on_reply("MANAGE_REPLY");
}
if (is_method("INVITE")) {
if(!t_is_set("failure_route")) t_on_failure("MANAGE_FAILURE");
}

if (!t_relay()) {
sl_reply_error();
}
exit;
}

# RTPProxy control
route[NATMANAGE] {
#!ifdef WITH_NAT
if (is_request()) {
if(has_totag()) {
if(check_route_param("nat=yes")) {
setbflag(FLB_NATB);
}
}
}
if (!(isflagset(FLT_NATS) || isbflagset(FLB_NATB)))
return;

rtpproxy_manage("co");

if (is_request()) {
if (!has_totag()) {
if(t_is_branch_route()) {
add_rr_param(";nat=yes");
}
}
}
if (is_reply()) {
if(isbflagset(FLB_NATB)) {
set_contact_alias();
}
}
#!endif
return;
}

# Manage incoming replies
onreply_route[MANAGE_REPLY] {
xdbg("incoming reply\n");
if (is_method("INVITE") and (status=="200")) {
    xlog("START_RECORDING #1\n");
    start_recording();
    xlog("START_RECORDING #2\n");
}
else if(status=~"[12][0-9][0-9]")
route(NATMANAGE);
}



More information about the sr-users mailing list