Hola,
No consigo configurar OpenSER
correctamente. Mi intención es hacer que los clientes se registren con Openser
usando un dominio virtual privado que es “sipserver.apt.local”
# ----------- 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;
}
Los clientes se registran correctamente,
sin embargo, al enviar un invite, OpenSER lo reenvia internamente
constantemente hasta que el max_fw llega a 0 y contesta con un “too many
hops”.
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@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@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@sipserver.apt.local}
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG:
get_hdr_field: <t> [32]; uri=[sip:oslo@sipserver.apt.local]
Apr 18 15:36:16 barcelona /usr/sbin/openser[5024]: DEBUG: to
body [<sip:oslo@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@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@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
Que es necesario hacer para que el invite
se envie al cliente al que esta destinado en vez de renviarlo??