[Serusers] SER does not forward ACK

jero jero at uplocutorios.com
Fri Jun 17 13:39:01 CEST 2005


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




More information about the sr-users mailing list