[Serusers] help on mediaproxy with ser no sound

peiyin peiyin at eb.com.my
Mon Jun 20 04:28:34 CEST 2005


Hi all,

I'm having trouble configuring mediaproxy to work on my SER server. One
phone is behind NAT and the other is using a public ip. Both are
registered in SER.

Calls from phone A (nat) to phone B(public) are successful whereby phone
B will rings.However, no sound comes out from both side, also, when i
hang up phone B, phone A doesn't produce any engaged tone. Calls from
phone B to phone A also successful but i don't get any audio on either
end. 

I'm storing all information in database.

My config is as below (taken from example and modified):

route{
    if (!mf_process_maxfwd_header("10")) {
        if (method!="ACK") {
            sl_send_reply("483", "Too many hops");
        };
        break;
    };
  
    if (msg:len >= max_len) {
        if (method!="ACK") {
            sl_send_reply("513", "Message too big");
        };
        break;
    };
 
 
    if(method=="INVITE" || method=="BYE") {
        setflag(1); #accounting
    }
  
    if (method=="REGISTER") {
        if (is_from_local()) {
            # Mark as NAT'ed
            if (client_nat_test("3")) {
                setflag(6);
                force_rport();
                fix_contact();
            };
  
            if (!www_authorize("my_ser_ip", "subscriber")) {
                www_challenge("my_ser_ip", "0");
                break;
            } else if (!check_to()) {
                sl_send_reply("403", "Username!=To not allowed");
                break;
            };
  
            if (!save("location")) {
                sl_reply_error();
            };
        } else {
            sl_send_reply("403", "This domain is not served here");
        };
  
        break;
    };
  
    if (method=="INVITE") {
        if (!(is_from_local() || is_uri_host_local())) {
            sl_send_reply("403", "Relaying is forbidden");
            break;
        };
        t_on_failure("1");
    } else if (method == "BYE" || method == "CANCEL") {
        end_media_session();
    };
  
    if (loose_route()) {
        if (method=="INVITE" || method=="ACK") {
            use_media_proxy();
        };
        # end media session for BYE and CANCEL is done above
        # before entering the loose route. no need to call it here
        t_relay();
        break;
    };
  
    # Force subsequent messages to pass trough this proxy
    if (method == "INVITE") {
        record_route();
    };
  
        if (client_nat_test("3") && !search("^Record-Route:")) {
        # Mark as NAT'ed
        force_rport();
        fix_contact();
    };
  
    if (method=="INVITE") {
        t_on_reply("1");
    };
  
    if (is_uri_host_local()) {
        if (!lookup("location")) {
            sl_send_reply("404", "User not found");
            break;
        };
    };
  
    if (method=="INVITE" || method=="ACK") {
        use_media_proxy();
    };
  
    if (!t_relay()) {
        if (method=="INVITE" || method=="ACK") {
            end_media_session();
        };
        sl_reply_error();
    };
}
  
failure_route[1] {
    end_media_session();
}
  
onreply_route[1] {
    if (status=~"(183)|(2[0-9][0-9])") {
        if (client_nat_test("1")) {
            fix_contact();
        };
        use_media_proxy();
    };
}






More information about the sr-users mailing list