[Kamailio-Users] Problem with call on hold

Thiago Rondon thiago.rondon at gmail.com
Thu Oct 9 18:54:37 CEST 2008


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 at 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 at fasternet.com.br>
> To: <users at 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 at lists.kamailio.org
> http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
>




More information about the sr-users mailing list