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@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@212.94.190.153;user=phone>
From: "11111" <sip:11111@192.168.0.4:5061>;tag=as5ea95a2d
To: <sip:22222@192.168.0.4>;tag=1c11534
Contact: <sip:11111@192.168.0.4:5061>
Call-ID: 5de9a6a3391006b40343cfc8370a4aa0(a)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@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@192.168.0.4:5061>;tag=as5ea95a2d
To: <sip:22222@192.168.0.4>;tag=1c11534
Contact: <sip:11111@192.168.0.4:5061>
Call-ID: 5de9a6a3391006b40343cfc8370a4aa0(a)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@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.
Show replies by date