Hi all,
I'm having a problem when the user places the call on hold. When the user removes the call on hold, only one side hears the call. Does anyone know what is wrong? The dialog of the call is attached.
Thanks. Diego.
Sorry, I forgot to send the kamailio.cfg.
route{ # # -- 1 -- Request Validation # if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); exit; };
if (msg:len >= 2048 ) { sl_send_reply("513", "Message too big"); exit; };
if(!is_method("REGISTER")){ if(nat_uac_test("19")){ record_route(";nat=yes"); } else { record_route(); }; };
if (has_totag()) { #sequential request withing a dialog should # take the path determined by record-routing if (loose_route()) { if(method=="BYE") { #Account BYE transactions setflag(2); }; if(method=="BYE" || method=="CANCEL") { end_media_session(); }; ##Detect requests in the dialog behind NAT and flag with 6 if(nat_uac_test("19") || search("^Route:.*;nat=yes")){ append_hf("P-hint: LR|fixcontact,setflag6\r\n"); fix_contact(); setbflag(6); }; route(1); } else { sl_send_reply("404","Not here"); } exit; }
if (loose_route()) { if(!has_totag()){ sl_send_reply("403", "Initial Loose-Routing Rejected"); exit; }; route(1); };
if (is_method("CANCEL")) { if (t_check_trans()) { end_media_session(); t_relay(); }; exit; }
t_check_trans(); if (method=="REGISTER") { route(2); } else { route(3); }; }
route[1] { t_on_reply("1"); t_on_failure("1"); if (!t_relay()) { sl_reply_error(); }; exit; }
route[2] { ## Register request handler if (is_uri_host_local()) { if (!radius_www_authorize("")) { www_challenge("", "0"); exit; };
if (!check_to()) { sl_send_reply("401", "Unauthorized"); exit; };
if(!search("^Contact:[ ]**") && client_nat_test("7")) { setbflag(6); fix_nated_register(); force_rport(); };
save("location"); exit; } else if { sl_send_reply("401", "Unauthorized"); }; }
route[3] { if (method=="INVITE") { # Account INVITE packets setflag(2); # Account Missed calls setflag(3); # Radius Extra $avp(s:sip_proxy_ip)="127.0.0.1"; };
if (is_from_local()){ # From an internal domain -> check the credentials and the FROM if(!allow_trusted()){ if (!radius_proxy_authorize("", "$ci")) { proxy_challenge("","0"); exit; } else if (!check_from()) { sl_send_reply("403", "Forbidden, use From=ID"); exit; }; };
if (client_nat_test("3")) { setbflag(7); force_rport(); fix_contact(); }; consume_credentials();
#Verify aliases, if found replace R-URI. lookup("aliases");
if (is_uri_host_local()) { # -- Inbound to Inbound route(10); } }; }
route[6] { # # -- NAT handling -- # if (isbflagset(6) || isbflagset(7)) { append_hf("P-hint: Route[6]: mediaproxy \r\n"); use_media_proxy(); }; }
route[10] { if (!lookup("location")) { sl_send_reply("404", "Not Found"); exit; }; route(6); route(1); }
failure_route[1] { if (t_was_cancelled()) { exit; }
if (isbflagset(6) || isbflagset(7)) { end_media_session(); }; }
onreply_route[1] { # #-- On-replay block routing -- # if (client_nat_test("1")) { append_hf("P-hint: Onreply-route - fixcontact \r\n"); fix_contact(); };
if ((isbflagset(6) || isbflagset(7)) && (status=~"(180)|(183)|2[0-9][0-9]")) { if (search("^Content-Type:[ ]*application/sdp")) { xlog("L_INFO", "Onreply-route: M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n"); append_hf("P-hint: Onreply-route - usemediaproxy \r\n"); use_media_proxy(); }; }; exit; }
Thanks. Diego.
----- Original Message ----- From: "Diego Zuaneti Arruda" diego@fasternet.com.br To: users@lists.kamailio.org Sent: Thursday, October 09, 2008 11:29 AM Subject: [Kamailio-Users] Problem with call on hold
Hi all,
I'm having a problem when the user places the call on hold. When the user removes the call on hold, only one side hears the call. Does anyone know what is wrong? The dialog of the call is attached.
Thanks. Diego.
Are you use some media proxy, like mediaproxy or rtpproxy ?
-Thiago Rondon
On Thu, Oct 9, 2008 at 11:57 AM, Diego Zuaneti Arruda diego@fasternet.com.br wrote:
Sorry, I forgot to send the kamailio.cfg.
route{ # # -- 1 -- Request Validation # if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); exit; };
if (msg:len >= 2048 ) { sl_send_reply("513", "Message too big"); exit; }; if(!is_method("REGISTER")){ if(nat_uac_test("19")){ record_route(";nat=yes"); } else { record_route(); }; }; if (has_totag()) { #sequential request withing a dialog should # take the path determined by record-routing if (loose_route()) { if(method=="BYE") { #Account BYE transactions setflag(2); }; if(method=="BYE" || method=="CANCEL") { end_media_session(); }; ##Detect requests in the dialog behind NAT and flag
with 6 if(nat_uac_test("19") || search("^Route:.*;nat=yes")){ append_hf("P-hint: LR|fixcontact,setflag6\r\n"); fix_contact(); setbflag(6); }; route(1); } else { sl_send_reply("404","Not here"); } exit; }
if (loose_route()) { if(!has_totag()){ sl_send_reply("403", "Initial Loose-Routing
Rejected"); exit; }; route(1); };
if (is_method("CANCEL")) { if (t_check_trans()) { end_media_session(); t_relay(); }; exit; } t_check_trans(); if (method=="REGISTER") { route(2); } else { route(3); };
}
route[1] { t_on_reply("1"); t_on_failure("1"); if (!t_relay()) { sl_reply_error(); }; exit; }
route[2] { ## Register request handler if (is_uri_host_local()) { if (!radius_www_authorize("")) { www_challenge("", "0"); exit; };
if (!check_to()) { sl_send_reply("401", "Unauthorized"); exit; }; if(!search("^Contact:[ ]*\*") && client_nat_test("7")) { setbflag(6); fix_nated_register(); force_rport(); }; save("location"); exit; } else if { sl_send_reply("401", "Unauthorized"); };
}
route[3] { if (method=="INVITE") { # Account INVITE packets setflag(2); # Account Missed calls setflag(3); # Radius Extra $avp(s:sip_proxy_ip)="127.0.0.1"; };
if (is_from_local()){ # From an internal domain -> check the credentials and the
FROM if(!allow_trusted()){ if (!radius_proxy_authorize("", "$ci")) { proxy_challenge("","0"); exit; } else if (!check_from()) { sl_send_reply("403", "Forbidden, use From=ID"); exit; }; };
if (client_nat_test("3")) { setbflag(7); force_rport(); fix_contact(); }; consume_credentials(); #Verify aliases, if found replace R-URI. lookup("aliases"); if (is_uri_host_local()) { # -- Inbound to Inbound route(10); } };
}
route[6] { # # -- NAT handling -- # if (isbflagset(6) || isbflagset(7)) { append_hf("P-hint: Route[6]: mediaproxy \r\n"); use_media_proxy(); }; }
route[10] { if (!lookup("location")) { sl_send_reply("404", "Not Found"); exit; }; route(6); route(1); }
failure_route[1] { if (t_was_cancelled()) { exit; }
if (isbflagset(6) || isbflagset(7)) { end_media_session(); };
}
onreply_route[1] { # #-- On-replay block routing -- # if (client_nat_test("1")) { append_hf("P-hint: Onreply-route - fixcontact \r\n"); fix_contact(); };
if ((isbflagset(6) || isbflagset(7)) &&
(status=~"(180)|(183)|2[0-9][0-9]")) { if (search("^Content-Type:[ ]*application/sdp")) { xlog("L_INFO", "Onreply-route: M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n"); append_hf("P-hint: Onreply-route - usemediaproxy \r\n"); use_media_proxy(); }; }; exit; }
Thanks. Diego.
----- Original Message ----- From: "Diego Zuaneti Arruda" diego@fasternet.com.br To: users@lists.kamailio.org Sent: Thursday, October 09, 2008 11:29 AM Subject: [Kamailio-Users] Problem with call on hold
Hi all,
I'm having a problem when the user places the call on hold. When the user removes the call on hold, only one side hears the call. Does anyone know what is wrong? The dialog of the call is attached.
Thanks. Diego.
Users mailing list Users@lists.kamailio.org http://lists.kamailio.org/cgi-bin/mailman/listinfo/users