Folks,
Ignore the email below -- problem was fixed when I upgraded to 0.9.0.
Regards,
Colin
On Tue 31 May 05, 14:50:24 +0100, Colin Dalton wrote:
Hello,
Apologies if this has come up before, but I'm having some problems
with SER not forwarding an ACK back to a Cisco AS5300 media gateway. This
means that incoming calls break down because the 5300 hasn't received
an ACK from the SIP phone. Outgoing calls are fine, because SER is
forwarding the 5300's ACK back to the SIP phone correctly. Would anyone
know why this is only working in one direction?
With incoming calls, the sequence of events is:
1. I dial the PSTN number on my SIP phone.
2. The SIP phone sends the INVITE to SER.
3. SER rewrites the host and forwards it to the Media Gateway (MGW)
4. The MGW brings up an ISDN channel and connects the call
5. When the call is answered, the MGW sends back the 200/OK to SER
6. SER forwards the 200/OK on to the SIP phone and I can converse on the call
7. The SIP phone sends the ACK back to SER, but SER doesn't send it on to
the MGW.
8. The MGW waits 19 secs before disconnecting the call because it hasn't
received an ACK.
In the reverse direction everything works fine, because SER sends on the
ACK it receives from the AS5300.
My configuration is appended below. Running IOS 12.3(9) on the 5300, the
SIP phone is a Siemens Optipoint 400. SER version is 0.8.10 on Fedora
Core 3.
Thanks,
Colin
--- config ---
#
# $Id: ser.cfg,v 1.21.4.1 2003/11/10 15:35:15 andrei Exp $
#
# simple quick-start config script
#
# ----------- global configuration parameters ------------------------
#debug=3 # debug level (cmd line: -dddddddddd)
#fork=yes
#log_stderror=no # (cmd line: -E)
/* Uncomment these lines to enter debugging mode
debug=7
fork=no
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 ----------------------------------
# Uncomment this if you want to use SQL database
#loadmodule "/usr/local/lib/ser/modules/mysql.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)
# ------------------------- 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;
};
# we record-route all messages -- to make sure that
# subsequent messages will go through our proxy; that's
# particularly good if upstream and downstream entities
# use different transport protocol
record_route();
# loose-route processing
if (loose_route()) {
t_relay();
break;
};
# if the request is for other domain use UsrLoc
# (in case, it does not work, use the following command
# with proper names and addresses in it)
if (uri==myself) {
if (method=="REGISTER") {
save("location");
break;
};
if (uri=~"^sip:9[0-9]*@*") { # pstn escape = 9
# strip(9);
rewritehostport("159.134.250.247:5060");
log(1,"Forwarding to PSTN/n");
forward(159.134.250.247, 5060);
} else {
# native SIP destinations are handled using our USRLOC DB
if (!lookup("location")) {
sl_send_reply("404", "Not Found");
break;
};
forward(uri:host,uri:port);
};
# forward to current uri now; use stateful forwarding; that
# works reliably even if we forward from TCP to UDP
if (!t_relay()) {
sl_reply_error();
};
};
}
_______________________________________________
Serusers mailing list
serusers(a)lists.iptel.org
http://lists.iptel.org/mailman/listinfo/serusers