[OpenSER-Users] BAsic openSER configuration. INVITES to a UA not looped back.

Eloi Pecharroman epecharroman at aptx.com
Fri Apr 18 16:47:21 CEST 2008


Hello,

 

I have been unsuccessfully trying to setup OpenSER as a basic server in
my private network. The idea is that clients can register to the virtual
domain "sipserver.apt.local" and from then, INVITES will be sent to the
appropiate address. 

 

I use the following openser.cfg

 

 

# ----------- global configuration parameters ------------------------

 

debug=5            # debug level (cmd line: -dddddddddd)

fork=yes

log_stderror=no    # (cmd line: -E)

children=4

log_facility=LOG_LOCAL7

# Uncomment these lines to enter debugging mode 

#fork=no

#log_stderror=yes

#

 

port=5060

listen=udp:192.168.100.244:5060

listen=udp:sipserver.apt.local:5060

alias="sipserver.apt.local:5060"

sip_warning=yes

 

# uncomment the following lines for TLS support

#disable_tls = 0

#listen = tls:your_IP:5061

#tls_verify_server = 1

#tls_verify_client = 1

#tls_require_client_certificate = 0

#tls_method = TLSv1

#tls_certificate = "/etc/openser/tls/user/user-cert.pem"

#tls_private_key = "/etc/openser/tls/user/user-privkey.pem"

#tls_ca_list = "/etc/openser/tls/user/user-calist.pem"

 

# ------------------ module loading ----------------------------------

 

#set module path

mpath="/usr/lib/openser/modules/"

 

# Uncomment this if you want to use SQL database

#loadmodule "mysql.so"

 

loadmodule "sl.so"

loadmodule "tm.so"

loadmodule "rr.so"

loadmodule "maxfwd.so"

loadmodule "usrloc.so"

loadmodule "registrar.so"

loadmodule "textops.so"

loadmodule "mi_fifo.so"

loadmodule "xlog.so"

# Uncomment this if you want digest authentication

# mysql.so must be loaded !

#loadmodule "auth.so"

#loadmodule "auth_db.so"

 

# ----------------- setting module-specific parameters ---------------

 

# -- mi_fifo params --

 

modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo")

 

# -- 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");

                                exit;

                };

 

                if (msg:len >=  max_len ) {

                                sl_send_reply("513", "Message too big");

                                exit;

                };

 

                # 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

                if (!method=="REGISTER")

                                record_route();

 

                # subsequent messages withing a dialog should take the

                # path determined by record-routing

                if (loose_route()) {

                                # mark routing logic in request

                                append_hf("P-hint: rr-enforced\r\n"); 

                                route(1);

                };

 

                if (!uri==myself) {

                                # mark routing logic in request

                                append_hf("P-hint: outbound\r\n"); 

                                # if you have some interdomain
connections via TLS

                                #if(uri=~"@tls_domain1.net") {

                                #
t_relay("tls:domain1.net");

                                #             exit;

                                #} else if(uri=~"@tls_domain2.net") {

                                #
t_relay("tls:domain2.net");

                                #             exit;

                                #}

                                route(1);

                };

 

                # 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") {

 

                                                # Uncomment this if you
want to use digest authentication

                                                #if
(!www_authorize("openser.org", "subscriber")) {

                                                #
www_challenge("openser.org", "0");

                                                #             exit;

                                                #};

                                                xlog("L_INFO","[ACHTUNG]
saved $ru");

                                                save("location");

                                                exit;

                                };

                xlog("L_INFO","[ACHTUNG]request from $ru");

                                #lookup("aliases");

                                #if (!uri==myself) {

                                #             append_hf("P-hint:
outbound alias\r\n"); 

                                #             route(1);

                                #};

 

                                # native SIP destinations are handled
using our USRLOC DB

                                #if (!lookup("location")) {

                                #             sl_send_reply("404", "Not
Found");

                                #             exit;

                                #};

                                #append_hf("P-hint: usrloc
applied\r\n"); 

                };

 

                route(1);

}

 

 

route[1] {

                # send it out now; use stateful forwarding as it works
reliably

                # even for UDP2TCP

                if (!t_relay()) {

                                sl_reply_error();

                };

                exit;

}

 

I can register fine, however, on INVITE, openSER forwards it internally
instead of fw to the client registered until max_fw reaches 0 and an
error "too many hops" is the final response. Log below: 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5022]: [ACHTUNG] saved
sip:192.168.100.244

Apr 18 15:36:16 barcelona /usr/sbin/openser[5022]: parse_headers:
flags=ffffffffffffffff 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5022]: parse_headers:
flags=8000000 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5022]: parse_headers:
flags=ffffffffffffffff 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5022]: build_contact():
Created Contact HF: Contact:
<sip:oslo_2_Route_1 at sipserver.apt.local:5060>;expires=3600^M  

Apr 18 15:36:16 barcelona /usr/sbin/openser[5022]: parse_headers:
flags=ffffffffffffffff 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5022]:
check_via_address(192.168.100.238, sipserver.apt.local, 0) 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5022]:
DEBUG:destroy_avp_list: destroying list (nil) 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5022]: receive_msg: cleaning
up 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: SIP Request: 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]:  method:  <INVITE> 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]:  uri:
<sip:oslo at sipserver.apt.local> 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]:  version: <SIP/2.0> 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: parse_headers:
flags=2 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: Found param type 232,
<branch> = <z9hG4bK4211644481>; state=16 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: end of header
reached, state=5 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: parse_headers: Via
found, flags=2 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: parse_headers: this
is the first via 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: After parse_msg... 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: preparing to run
routing scripts... 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: parse_headers:
flags=100 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG:parse_to:end of
header reached, state=10 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DBUG:parse_to:
display={}, ruri={sip:oslo at sipserver.apt.local} 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG: get_hdr_field:
<t> [32]; uri=[sip:oslo at sipserver.apt.local]  

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG: to body
[<sip:oslo at sipserver.apt.local>^M ] 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: get_hdr_field: cseq
<CSeq>: <985859914> <INVITE> 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]:
DEBUG:maxfwd:is_maxfwd_present: value = 70  

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG: add_param:
tag=3326383385 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG:parse_to:end of
header reached, state=29 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DBUG:parse_to:
display={}, ruri={sip:oslo_2_Route_1 at sipserver.apt.local} 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: parse_headers:
flags=200 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG: get_hdr_body :
content_length=202 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: found end of header 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: find_first_route: No
Route headers found 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: loose_route: There is
no Route HF 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: grep_sock_info -
checking if host==us: 19==15 &&  [sipserver.apt.local] ==
[192.168.100.244] 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: grep_sock_info -
checking if port 5060 matches port 5060 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: grep_sock_info -
checking if host==us: 19==19 &&  [sipserver.apt.local] ==
[sipserver.apt.local] 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: grep_sock_info -
checking if port 5060 matches port 5060 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: grep_sock_info -
checking if host==us: 19==15 &&  [sipserver.apt.local] ==
[192.168.100.244] 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: grep_sock_info -
checking if port 5060 matches port 5060 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: grep_sock_info -
checking if host==us: 19==19 &&  [sipserver.apt.local] ==
[sipserver.apt.local] 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: grep_sock_info -
checking if port 5060 matches port 5060 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: [ACHTUNG]request from
sip:oslo at sipserver.apt.local

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG: t_newtran:  T
on entrance=0xffffffff 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: parse_headers:
flags=ffffffffffffffff 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: parse_headers:
flags=78 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: t_lookup_request:
start searching: hash=45820, isACK=0 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG: RFC3261
transaction matching failed 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG:
t_lookup_request: no transaction found 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: parse_headers:
flags=ffffffffffffffff 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]:
check_via_address(192.168.100.238, sipserver.apt.local, 0) 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: WARNING:vqm_resize:
resize(0) called 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]:
DEBUG:tm:_reply_light: reply sent out. buf=0x813efd8: SIP/2.0 1...,
shmem=0xb3e5d980: SIP/2.0 1 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]:
DEBUG:tm:_reply_light: finished 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG: mk_proxy:
doing DNS lookup... 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]:
DEBUG:sip_resolvehost2: no port, no proto -> do NAPTR lookup! 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: get_record:
lookup(sipserver.apt.local, 35) failed 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]:
DEBUG:sip_resolvehost2: no valid NAPTR record found for
sipserver.apt.local, trying direct SRV lookup... 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: get_record:
lookup(_sip._udp.sipserver.apt.local, 33) failed 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]:
DEBUG:sip_resolvehost2: no valid SRV record found for
_sip._udp.sipserver.apt.local, trying A record lookup... 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]:
check_via_address(192.168.100.238, sipserver.apt.local, 0) 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]:
DBG:check_against_rule_list: using list dns  

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG:tm:set_timer:
relative timeout is 500000 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG:
add_to_tail_of_timer[4]: 0xb4091bac (104400000) 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG:tm:set_timer:
relative timeout is 30 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG:
add_to_tail_of_timer[0]: 0xb4091bc8 (133) 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG:tm:t_relay_to:
new transaction fwd'ed 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]:
DEBUG:tm:UNREF_UNSAFE: after is 0 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]:
DEBUG:destroy_avp_list: destroying list (nil) 

Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: receive_msg: cleaning
up

 

What is necessary so the INVITES are sent to the client and not to the
server?

 

Regards,

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


More information about the sr-users mailing list