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(a)lists.iptel.org
j>
http://lists.iptel.org/mailman/listinfo/serusers
--
Mike Tkachuk