[Serusers] corrupted address in sip message

thibault jouannic teeboo at gmail.com
Mon Mar 7 09:33:17 CET 2005


hello ser users;

first, please don't pay attention to my english, because i'm french :-)...


I'm using the pbx asterisk and ser as a sip proxy, to pass over nat 
problems. Here's my configuration :

ipphone (192.168.0.108) --->
asterisk     (192.168.0.4:5061)
SER         (192.168.0.4:5060) --->
nat router...

During the call, a sip message comes from asterisk to SER, but when it 
arrives at the router, it seems to be corrupted.

Here's the sip/sdp message before SER :

Session Initiation Protocol
    Request line: INVITE sip:0467751647 at 212.94.190.153;user=phone SIP/2.0
    Message Header
        Via: SIP/2.0/UDP 192.168.0.4:5061;branch=z9hG4bK653c2038
        Route: <sip:22222 at 212.94.190.153;user=phone>
        From: "11111" <sip:11111 at 192.168.0.4:5061>;tag=as5ea95a2d
        To: <sip:22222 at 192.168.0.4>;tag=1c11534
        Contact: <sip:11111 at 192.168.0.4:5061>
        Call-ID: 5de9a6a3391006b40343cfc8370a4aa0 at 192.168.0.4
        CSeq: 103 INVITE
        User-Agent: Asterisk PBX
        Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER
        Content-Type: application/sdp
        Content-Length: 264
Session Description Protocol
    Session Description Protocol Version (v): 0
    Owner/Creator, Session Id (o): root 23042 23043 IN IP4 192.168.0.108
        Owner Username: root
        Session ID: 23042
        Session Version: 23043
        Owner Network Type: IN
        Owner Address Type: IP4
        Owner Address: 192.168.0.108
    Session Name (s): session
    Connection Information (c): IN IP4 192.168.0.108 ...

the same after being routed by SER :

Session Initiation Protocol
    Request line: INVITE sip:22222 at 212.94.190.153;user=phone SIP/2.0
    Message Header
        Max-Forwards: 10
        Via: SIP/2.0/UDP 192.168.0.4;branch=z9hG4bK5fe.bf341295.0
        Via: SIP/2.0/UDP 192.168.0.4:5061;rport=5061;branch=z9hG4bK653c2038
        From: "11111" <sip:11111 at 192.168.0.4:5061>;tag=as5ea95a2d
        To: <sip:22222 at 192.168.0.4>;tag=1c11534
        Contact: <sip:11111 at 192.168.0.4:5061>
        Call-ID: 5de9a6a3391006b40343cfc8370a4aa0 at 192.168.0.4
        CSeq: 103 INVITE
        User-Agent: Asterisk PBX
        Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER
        Content-Type: application/sdp
        Content-Length: 353
        Route: <sip:22222 at 212.94.190.153;user=phone>
Session Description Protocol
    Session Description Protocol Version (v): 0
    Owner/Creator, Session Id (o): root 23042 23043 IN IP4 192.168.0.108
        Owner Username: root
        Session ID: 23042
        Session Version: 23043
        Owner Network Type: IN
        Owner Address Type: IP4
        Owner Address: 192.168.0.108
    Session Name (s): session
    Connection Information (c): IN IP4 
192.168.0.482.231.33.XXX192.168.0.4 ...

...as tou can see, the connection information in the sdp message is a 
bit strange...

My ser.cfg :

-------------------------
check_via=yes    # (cmd. line: -v)
dns=no           # (cmd. line: -r)
rev_dns=no      # (cmd. line: -R)

port=5060
fifo="/tmp/ser_fifo"

# ------------------ module loading ----------------------------------

# Uncomment this if you want to use SQL database
#loadmodule "/usr/local/lib/ser/modules/mysql.so"
loadmodule "/usr/local/lib/ser/modules/mangler.so"
loadmodule "/usr/local/lib/ser/modules/nathelper.so"
loadmodule "/usr/local/lib/ser/modules/textops.so"
loadmodule "/usr/local/lib/ser/modules/sl.so"
loadmodule "/usr/local/lib/ser/modules/tm.so"
loadmodule "/usr/local/lib/ser/modules/rr.so"
loadmodule "/usr/local/lib/ser/modules/maxfwd.so"
loadmodule "/usr/local/lib/ser/modules/usrloc.so"
loadmodule "/usr/local/lib/ser/modules/registrar.so"

# Uncomment this if you want digest authentication
# mysql.so must be loaded !
#loadmodule "/usr/local/lib/ser/modules/auth.so"
#loadmodule "/usr/local/lib/ser/modules/auth_db.so"

# ----------------- setting module-specific parameters ---------------

# -- usrloc params --

modparam("usrloc", "db_mode",   0)

# Uncomment this if you want to use SQL database
# for persistent storage and comment the previous line
#modparam("usrloc", "db_mode", 2)

# -- auth params --
# Uncomment if you are using auth module
#
#modparam("auth_db", "calculate_ha1", yes)
#
# If you set "calculate_ha1" parameter to yes (which true in this config),
# uncomment also the following parameter)
#
#modparam("auth_db", "password_column", "password")

# -- rr params --
# add value to ;lr param to make some broken UAs happy
modparam("rr", "enable_full_lr", 1)

modparam("nathelper", "rtpproxy_sock", "/var/run/rtpproxy.sock")
# -------------------------  request routing logic -------------------

# main routing logic

route{

    # initial sanity checks -- messages with
    # max_forwards==0, or excessively long requests
    if (!mf_process_maxfwd_header("10")) {
        sl_send_reply("483","Too Many Hops");
        break;
    };
    if (msg:len > max_len ) {
        sl_send_reply("513", "Message too big");
        break;
    };
    
    log(1, "nouvelle trame reçue\n");   
    
    if(method=="INVITE"){
        log(1, "invite route\n");
        add_rport();
        fix_nated_sdp("3");
        fix_nated_contact();           
        sdp_mangle_ip("192.0.0.0/255.0.0.0", "82.231.33.XXX");
        force_rtp_proxy();
        t_on_reply("1");
    }
       
    if (loose_route()) {
        log(1, "loose_route\n");
        t_relay();
        break;
    }
    
    if(method=="INVITE"){
        #log(1, "trame INVITE\n");
        record_route();   
        rewritehostport("212.94.190.153:5060");
    }   
    
    log(1, "relai de la trame\n\n");
    if (!t_relay()) {
        log(1, "erreur de relai\n\n");
        sl_reply_error();
    }
}

onreply_route[1]{
    log(1, "on reply\n");
    if(status=~"[12][0-9][0-9]")
        force_rtp_proxy();
}


----------------------------
I have the same problem with ser 0.8.14 and 0.9.0. So my question is : 
is this a bug in ser, or something strange in my ser.cfg ?
Did anybody ever see something like this ???


thanks.
thibault.




More information about the sr-users mailing list