[Serusers] record_route problems

Bert Berlin btberlin at quintum.com
Fri Jun 4 21:46:39 CEST 2004


I am trying to get record_route() working in a simple configuration file 
which I use for lab testing of our UA product.
After the INVITE  is sent by the UA (our gateway) the call just isn't 
routed.

Attached is the debug trace from ser (debug level 6.)  this shows just 
the first INVITE which is retried 4 times.  The config file is shown 
below that.

5(2018) SIP Request:
 5(2018)  method:  <INVITE>
 5(2018)  uri:     <sip:17325555555 at 192.168.20.12>
 5(2018)  version: <SIP/2.0>
 5(2018) parse_headers: flags=1
 5(2018) get_hdr_field: cseq <CSeq>: <1> <INVITE>
 5(2018) end of header reached, state=9
 5(2018) DEBUG: get_hdr_field: <To> [33]; 
uri=[sip:17325555555 at 192.168.20.12]
 5(2018) DEBUG: to body [<sip:17325555555 at 192.168.20.12> ]
 5(2018) Found param type 232, <branch> = 
<z9hG4bK-tenor-c0a8-14dc-0024>; state=16
 5(2018) end of header reached, state=5
 5(2018) parse_headers: Via found, flags=1
 5(2018) parse_headers: this is the first via
 5(2018) After parse_msg...
 5(2018) preparing to run routing scripts...
 5(2018) DEBUG : is_maxfwd_present: searching for max_forwards header
 5(2018) parse_headers: flags=128
 5(2018) DEBUG: get_hdr_body : content_length=164
 5(2018) DEBUG: is_maxfwd_present: value = 70
 5(2018) parse_headers: flags=256
 5(2018) found end of header
 5(2018) find_first_route(): No Route headers found
 5(2018) loose_route(): There is no Route HF
 5(2018) rwrite(): Rewriting Request-URI with 'sip:192.168.20.137'
 5(2018) receive_msg: cleaning up
 6(2021) SIP Request:
 6(2021)  method:  <INVITE>
 6(2021)  uri:     <sip:17325555555 at 192.168.20.12>
 6(2021)  version: <SIP/2.0>
 6(2021) parse_headers: flags=1
 6(2021) get_hdr_field: cseq <CSeq>: <1> <INVITE>
 6(2021) end of header reached, state=9
 6(2021) DEBUG: get_hdr_field: <To> [33]; 
uri=[sip:17325555555 at 192.168.20.12]
 6(2021) DEBUG: to body [<sip:17325555555 at 192.168.20.12> ]
 6(2021) Found param type 232, <branch> = 
<z9hG4bK-tenor-c0a8-14dc-0024>; state=16
 6(2021) end of header reached, state=5
 6(2021) parse_headers: Via found, flags=1
 6(2021) parse_headers: this is the first via
 6(2021) After parse_msg...
 6(2021) preparing to run routing scripts...
 6(2021) DEBUG : is_maxfwd_present: searching for max_forwards header
 6(2021) parse_headers: flags=128
 6(2021) DEBUG: get_hdr_body : content_length=164
 6(2021) DEBUG: is_maxfwd_present: value = 70
 6(2021) parse_headers: flags=256
 6(2021) found end of header
 6(2021) find_first_route(): No Route headers found
 6(2021) loose_route(): There is no Route HF
 6(2021) rwrite(): Rewriting Request-URI with 'sip:192.168.20.137'
 6(2021) receive_msg:

###########################################

#
# $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=6
fork=yes
log_stderror=yes



check_via=yes   # (cmd. line: -v)
dns=yes           # (cmd. line: -r)
rev_dns=yes      # (cmd. line: -R)
port=5060
"/usr/local/etc/ser/ser.cfg" [readonly] 140L, 
3791C                                                  1,1           Top
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 -------------------
alias=quintum.lab
alias=ken137.quintum.lab
# 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 (len_gt( max_len )) {
                sl_send_reply("513", "Message too big");
                break;

        };

# store user location if a REGISTER appears
if (method=="REGISTER") {
   save("location");
};

############################
/* grant Route routing if route headers present */
#       if (loose_route()) { t_relay(); break; };

        /* record-route INVITEs -- all subsequent requests must visit us */
#       if (method=="INVITE") {
#               record_route();
#       };

        # now check if it really is a PSTN destination which should be 
handled
        # by our gateway; if not, and the request is an invitation, drop 
it --
        # we cannot terminate it in PSTN; relay non-INVITE requests -- 
it may
        # be for example BYEs sent by gateway to call originator
        if (uri=="sip:17325555555 at 192.168.20.12") {
                sl_send_reply("678","matched uri for 20.137");
                if (method=="INVITE")
#               forward(192.168.20.137, 5060);
                record_route();
#               t_relay();
                break;
                };
        if (uri=~"sip:1732922[0-9]*@192.168.20.12") {
                sl_send_reply("678","matched uri for 20.220");
                if (method=="INVITE")
#               forward(192.168.20.220, 5060);
                 
record_route();                                               
#               t_relay();
                break;
                };
        if (uri=~"sip:173221000[0-9]*@192.168.20.12") {
                sl_send_reply("678","matched uri for 20.210");
                if (method=="INVITE")
                forward(192.168.20.210, 5060);
                #record_route();
                break;
                };
        if (uri=~"sip:173220000[0-9]*@192.168.20.12") {
                sl_send_reply("678","matched uri for 20.209");
                if (method=="INVITE")
                forward(192.168.20.209, 5060);
                #record_route();
                break;
                };
#################################
}




###########################################


-- 


            Bert Berlin

Bert Berlin

System Test

Quintum Technologies, Inc.

71 James Way

Eatontown, NJ 07724

PH 732-460-9000 ext 247

Email: bert_berlin at quintum.com <mailto:beert_berlin at quintum.com>

 

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20040604/ef4eb9dd/attachment.htm>


More information about the sr-users mailing list