I made SER forward that ACK by removing the "setflag(1)" command from ser.cfg, now calls aren't dropped down, i know that it sounds strange but it's true and i can't understand why that command was the problem. Now i need to account calls but i can't use the setflag command. Any thoughts?
-Jero.
Hello jero,
Try to allow a record route for all requests, not only INVITES (except REGISTER).
Thursday, June 16, 2005 3:03:35 PM, you wrote:
j> Thanks, but that's not the problem, i'm sure that ACK hits a t_relay, it j> has to be another thing.
Hi!
Make sure the ACK hits a t_relay.
regards, klaus
jero wrote:
I've a problem with SER forwarding ACK's when a call has stablished. I only need to make outbound call from sip-phone, every call has to be redirected to AS5300. These are the packets sended:
SIP-PHONE -----------> SER -------------> AS5300 ------>PSTN _________________________________________________
|-----invite------->| | |<----trying--------| | | |-----invite------->| | |<----trying--------| | |<----ringing-------| |<----ringing-------| | | |<------ok----------| |<------ok----------| | |-------*ack*------>| | <--here is the problem | | | | |<------ok----------| |<------ok----------| | | |<------ok----------| |<------ok----------| | | | timeout
As seen, the ack looses in SER and is not sended to AS5300, the call is stablished, but after 20 seconds is dropped by as5300 because of the timeout. I've read the messages on this forum about this, and it seems to be a misconfiguration problem, but i didn't find the solution.
Here is mi ser.cfg and a more detailed trace of the packets.
SIP-PHONE - 81.37.111.201 SER - 196.220.57.58 AS5300 - 196.220.57.51
# # $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/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" loadmodule "/usr/local/lib/ser/modules/acc.so"
# Uncomment this if you want digest authentication # mysql.so must be loaded ! #loadmodule "/usr/lib/ser/modules/auth.so" #loadmodule "/usr/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)
# -- rr params -- # add value to ;lr param to make some broken UAs happy modparam("rr", "enable_full_lr", 1)
# -- acc params -- # set the reporting log level modparam("acc", "log_level", 1) # number of flag, which will be used for accounting; if a message is # labeled with this flag, its completion status will be reported modparam("acc", "log_flag", 1 ) modparam("acc", "radius_config", "/usr/local/etc/radiusclient/radiusclient.conf") modparam("acc", "radius_flag", 1) modparam("acc", "radius_missed_flag", 2) # ------------------------- request routing logic -------------------
# main routing logic alias="196.220.57.58"
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; }; # Lots deleted, such as processing registrations # we record-route all messages -- to make sure that # subsequent messages will go through our proxy. if(method=="INVITE"){ record_route(); } # loose-route processing if (loose_route()) { t_relay(); break; }; if(uri==myself){ if(method=="REGISTER"){ save("location"); break; } } # IF HOST IS JUST NUMBERS SEND TO route(1) if (uri =~ "^sip:[0-9]*@"){ log(1, "SER: matched ^sip:[0-9]*@ - just numbers - process in
route(3)\n"); route(1); break; };
}
route[1] {
rewritehostport("196.220.57.51:5060"); setflag(1); t_relay(); break;
}
j> _______________________________________________ j> Serusers mailing list j> serusers@lists.iptel.org j> http://lists.iptel.org/mailman/listinfo/serusers
-- Mike Tkachuk