Hi All,
I have a serious problem with SIP
call flow over SER.
My SER don't retransmit ACK first and after that
don't retransmit BYE message, too.
Can any one advice me? what can be a
reason?
Here are call flow and ser.cfg.
SIPPHONE------------------------SER--------------------------CISCO
SIP
GW
|-------------INVITE------------>|
|
|<----------TRying---------------|
|
|
|-----------INVITE-------------->|
|
|<----------TRying---------------|
|
|<------------183----------------|
|<------------183----------------|
|
|
|<-------------OK----------------|
|---------------ther is two way RTP channel
----------------------|
|<-------------OK----------------|
|
|--------------ACK-------------->|
|
|
|<-------------OK----------------|
|<-------------OK----------------|
|
|--------------ACK-------------->|
|
|
|<-------------OK----------------|
|<-------------OK----------------|
|
|--------------ACK-------------->|
|
|
|<-------------OK----------------|
|<-------------OK----------------|
|
|--------------ACK-------------->| SER don't retransmit
ACK
|
|
| and Cisco timedout after 19sec
|
|
|<-------------BYE---------------|
|
|<-------------BYE---------------|
|
|<-------------BYE---------------|
| SER don't
retransmit BYE
|<-------------BYE---------------|
|
|<-------------BYE---------------|
#
# $Id: ser.cfg,v 1.21.4.1 2003/11/10
15:35:15 andrei Exp $
# ----------- global configuration parameters
------------------------
debug=8
fork=yes
log_stderror=yes
check_via=no #
(cmd. line:
-v)
dns=no #
(cmd. line: -r)
rev_dns=no # (cmd. line:
-R)
port=5060
#children=4
fifo="/tmp/ser_fifo"
# ------------------ module loading
----------------------------------
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"
loadmodule
"/usr/local/lib/ser/modules/auth.so"
loadmodule
"/usr/local/lib/ser/modules/auth_radius.so"
# ----------------- setting module-specific
parameters ---------------
modparam("usrloc", "db_mode",
0)
modparam("rr", "enable_full_lr", 1)
# -------------------------
request routing logic -------------------
route{
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;
};
# authenticate register
message using radius
if (method=="REGISTER")
{
# Uncomment
this if you want to use digest
authentication
if (!radius_www_authorize(""))
{
www_challenge("",
"0");
break;
};
save("location");
break;
};
# route (proxy) invite
message to gateway
if (method=="INVITE") ||
(method=="CANCEL")
{
# Uncomment
this if you want to use digest
authentication
if (!radius_www_authorize(""))
{
www_challenge("",
"0");
break;
};
record_route();
rewritehostport("cisco_sip_gw_ip:5060");
if (!t_relay())
{
sl_reply_error();
};
break;
};
}