Hello,
When using failure_route[] with db accounting enabled, the o_uri stored
in accounting report in SER "acc" table contains o_uri of original request.
Is there any way to store the real o_uri, which was after branching?
Is there any other way to store in DB the IP request was forwarded to,
without using AVPs?
Consider example:
modparam("acc", "db_flag", 3)
route{
# if we do not get a positive reply, continue at route1
setflag(3);
t_on_failure("1");
rewritehost( "A");
t_relay_to_udp("A", "5060");
break;
}
failure_route[1] {
# forwarding failed -- try again at another destination
t_on_failure("2");
rewritehost( "B");
append_branch();
t_relay_to_udp("B", "5060");
}
failure_route[2] {
# try out the last resort destination
rewritehost( "C");
append_branch();
t_relay_to_udp("C", "5060");
# we no more call t_on_negative here; if this destination
# fails too, transaction will complete
}
When INVITE will be answered in failure_route[1] or 2, it will contain
o_uri=A. I would like this to contain B or C, according to real situation.
--
Regards,
Arek Bekiersz
Hello,
has anyone a working config to send SMS via SIP MESSAGES ?
I´ve already installed a SMS Modem, that works with smstools, but i´m
not able to send a MESSAGE via SMS through openser, in my debug log
there are always a lot of failures regarding the tm module, so i think i
missconfigured something.
Also the param "domain_str" is not acceptet in my config.
In the docs there are some examples, but where to place in existing
configs (old ser configs i guess)?
If anyone could leave me a sample, it would be very helpfull.
best regards,
Andreas Matzel
Hello to all
I have 2 OpenSERs working with TLS.
They both have registered clients (X-Lite).
How can I be sure that they are exchanging the certificates when one
call goes from serverA to serverB ?
Is there any debug where we can see it happening?
Thanks
Joao
Hi to all, i'm totally new in openser and i'd like to enjoy it...
I've installed 1.0.1 version on my debian and seems it work fine with
mysql database.
Just a stupid question: I miss to export SIP_DOMAIN cause I can't
understand what name I have to give...the default is openser.org...and
I've seen on install file that I have to change it...could someone
explain me what I have to do, please?
Thanks in advance
Davide
Hi Folks,
I'm glad to announce WIST for SIP debug/trace dialogs.
This software born as a prof concept of the idea to capture SIP traffic from a remote
host (SIP Proxy, Gateway, etc) and show up alive SIP messages about an specific
dialog (filtered by From SIP user) to help our tech support team to debug SIP
transactions in a friendly way.
http://www.devel-it.org/index.php?modulo=projetos&lang=en_US
We hope you enjoy our work.
Telles
Hello to all
Im using openser with TLS (1.0.1-tls) but when I try to register a
client (X-Lite), the answer is always:
"Too Many Hops"
because of this:
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483","Too Many Hops");
exit;
};
Whats the problem?
Without TLS, this error doesnt happen.
Thanks
Joao Pereira
Hello All,
I am having a problem with the t_on_failure failure route using SER.
I have been using SER for 2+ years now and am servicing 5000+ voip
customers but now we are moving to a PSTN termination partner who does
not have redundant gateways. So I would like to setup SER so that I
have call route advance to a 2nd PSTN carrier if the 1st fails.
However, I am running into some snags...
With my configuration the call is processed correctly if the 1st PSTN
carrier takes the call. However, when the failover happens then I get
some odd behavior. The call is initially setup correctly with the
failover carrier, but then it hangs up after about 5-7 seconds and a new
call comes in to the called number, and a loop begins where this same
call keeps coming in one after another until SER is restarted.
I do get the following errors on the SER console.
0(17304) forward_req: ERROR: cannot forward to af 2, proto 2 no
corresponding listening socket
0(17304) Warning: sl_send_reply: I won't send a reply for ACK!!
0(17304) ERROR: sl_reply_error used: I'm terribly sorry, server error
occurred (7/SL)
It almost seems as if the the 1st route PSTN carrier is not accepting my
ACK when I send it in response to the 403 Forbidden that they send to
me. Then they just keep sending the 403 Forbidden over and over again.
Each time that they do that then SER processes it as a failed call and
starts a new call to the secondary PSTN carrier. Does this sound
possible? Or am I way off base here?
I have attached my basic lab test SER cfg that I have been using to test
with. Perhaps someone can tell me what I might be doing incorrectly?
Or - Is there a better way to do this? ie. With AVP-Pops? If so, does
anyone have a sample configuration that I can look at?
Thanks so much for any help provided!!
Darren Nay
Ionosphere, Inc.
dnay(a)ionosphere.net
+1 864-678-3158
# ----------- global configuration parameters ------------------------
debug=3 # debug level (cmd line: -dddddddddd)
fork=yes
log_stderror=no # (cmd line: -E)
memlog=0
#uncomment for debug mode
debug=3
fork=no
log_stderror=yes
#Bind IP
listen=XX.XX.XX.XX
check_via=no # (cmd. line: -v)
dns=yes # (cmd. line: -r)
rev_dns=no # (cmd. line: -R)
port=5060
children=5
mhomed=no # multi-homed?
fifo="/tmp/ser_fifo"
# ------------------ module loading ----------------------------------
loadmodule "/usr/local/lib/ser/modules/nathelper.so"
loadmodule "/usr/local/lib/ser/modules/textops.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/xlog.so"
# ----------------- setting module-specific parameters ---------------
# -- timers --
modparam("tm", "wt_timer", 10)
modparam("tm", "retr_timer1p1", 2)
# -- usrloc params --
modparam("usrloc", "db_mode", 0)
# -- rr params --
modparam("rr", "enable_full_lr", 1)
# -- Nathelper --
modparam("registrar", "nat_flag", 6)
modparam("nathelper", "natping_interval", 10)
modparam("nathelper", "ping_nated_only", 1)
modparam("nathelper", "rtpproxy_disable", 1)
alias=proxy.ionosphere.net
# ------------------------- 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");
break;
};
if (msg:len > max_len) {
sl_send_reply("513", "Message too big");
break;
};
# Nathelper
if (method == "REGISTER" || !search("^Record-Route:.*XX.XX.XX.XX")) {
fix_nated_contact(); # Rewrite contact with source IP of signaling
force_rport();
setflag(6);
};
# 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();
# loose-route processing
if (loose_route()) {
route(1);
break;
};
lookup("aliases");
if (!uri==myself) {
route(1);
break;
};
# 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") {
fix_nated_register();
save("location");
break;
};
};
### Process URI routing
# Now we determine if called number is on
# or off net and route accordingly
if (!lookup("location")) {
route(2); # Nothing found - Route Off-Net
} else {
route(1); # Direct match - Route On-Net
};
}
#
# No direct route via location or location_novm (Off-Net Route)
#
route[2]
{
t_on_failure("2");
#Send the call to Level3
rewritehostport("XX.XX.XX.XX:5060");
if (!t_relay()) {
sl_reply_error();
};
break;
}
#
# Direct route found via location or location_novm (On-Net Route)
#
route[1]
{
# !! Nathelper
if (uri=~"[@:](192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.)" && !search("^Route:")) {
sl_send_reply("479", "We don't forward to private IP addresses");
break;
};
# if client or server know to be behind a NAT, enable relay
if (isflagset(6)) {
# NAT processing of replies; apply to all transactions (for example,
# re-INVITEs from public to private UA are hard to identify as
# NATed at the moment of request processing); look at replies
t_on_reply("1");
append_hf("P-Behind-NAT: Yes\r\n");
};
# send it out now; use stateful forwarding as it works reliably
# even for UDP2TCP
if (!t_relay()) {
sl_reply_error();
};
}
onreply_route[1] {
if (status =~ "(183)|(180)|2[0-9][0-9]") {
fix_nated_contact();
};
if (nat_uac_test("1")) {
fix_nated_contact();
};
break;
}
failure_route[2] {
# forwarding failed try again at another destination
rewritehostport("XX.XX.XX.XX:5060");
append_branch();
t_relay();
break;
}
I am trying to drop a 302 redirect response from a invite and branch a
new invite off somewhere else. In my onreply_route[1] I have a
if (condition) {
xlog(various stuff);
drop();
}
Using ngrep I see that the response is not drop. Can I have some
confirmation that drop only drops 1XX provisional responses. The
documentations is a bit fuzzy about this.
--
Dr. Rodney G. McDuff |Ex ignorantia ad sapientiam
Manager, Strategic Technologies Group| Ex luce ad tenebras
Information Technology Services |
The University of Queensland |
EMAIL: mcduff(a)its.uq.edu.au |
TELEPHONE: +61 7 3365 8220 |
Hi,
I understand this is a fairly typical setup for Voicemail and media but
we're running OpenSER and Asterisk on the same box. (OpenSER on 5060 and
Asterisk on 5061.) We also use rtpproxy.
Here are the scenarios:
UA -> OpenSER -> UA (no problems)
UA -> OpenSER -> External Asterisk PSTN Gateway (no problems)
UA -> OpenSER -> External Asterisk Voicemail (no problems)
UA -> OpenSER -> Same box Asterisk Voicemail - NO AUDIO
I need to get this running on the same box and am not sure what to do
next. This is probably something silly / obvious, so if anyone can point
me in the right direction it would be greatly appreciated!
Thanks in advance,
-Corey
*********************************************
This message has been scanned for viruses and
dangerous content, and is believed to be clean.
Hello to all
Im trying to put OpenSER to work with TLS.
I created the certificates, and configured openser.cfg. ("openser -c"
shows no errors)
But when I start OpenSER, there are no errors, but the server doesn't start:
It says this (with debug level 4) :
Listening on
Aliases:
*: mex.fccn.pt:*
*: XXX.XXX.XXX.XXX:*
0(22549) fm_malloc_init: F_OPTIMIZE=16384, /ROUNDTO=2048
0(22549) fm_malloc_init: F_HASH_SIZE=2067, fm_block size=16548
0(22549) fm_malloc_init(0xf4eb1000, 33554432), start=0xf4eb1000
0(22549) shm_mem_init: success
0(0) core dump limits set to 4294967295
0(0) DEBUG: init_mod: postgres
postgres - initializing
0(0) DEBUG: init_mod: sl_module
stateless - initializing
0(0) DEBUG: register_fifo_cmd: new command (sl_stats) registered
0(0) unixsock_register_cmd: New command (sl_stats) registered
0(0) DEBUG: MD5 calculated: 1d0376a2244771bba12e9da5f03652d9
0(0) DEBUG: init_mod: tm
0(0) TM - (size of cell=2832, sip_msg=768) initializing...
0(0) Call-ID initialization: '6efffbed'
0(0) DEBUG: register_fifo_cmd: new command (t_uac_dlg) registered
0(0) DEBUG: register_fifo_cmd: new command (t_uac_cancel) registered
0(0) DEBUG: register_fifo_cmd: new command (t_hash) registered
0(0) DEBUG: register_fifo_cmd: new command (t_reply) registered
0(0) unixsock_register_cmd: New command (t_uac_dlg) registered
0(0) unixsock_register_cmd: New command (t_uac_cancel) registered
0(0) unixsock_register_cmd: New command (t_hash) registered
0(0) unixsock_register_cmd: New command (t_reply) registered
[root@mex openser-1.0.1-tls]# 0(0) DEBUG: lock_initialize: lock
initialization started
0(0) DEBUG: register_fifo_cmd: new command (t_stats) registered
0(0) unixsock_register_cmd: New command (t_stats) registered
and nothing happens... OpenSER isnt runnig :(
--------------------------------------------------------------------------------------------------------------
this is a part of my openser.cfg:
listen = tls:XXX.XXX.XXX.XXX
tls_port_no = 5062
tls_method=SSLv23
tls_certificate="/services/openser/openser-1.0.1-tls/tls/tools/rootCA/cacert.pem"
tls_private_key="/services/openser/openser-1.0.1-tls/tls/tools/rootCA/private/cakey.pem"
tls_ca_list="/services/openser/openser-1.0.1-tls/tls/tools/rootCA/certs/01.pem"
tls_ciphers_list="NULL-SHA:NULL-MD5:AES256-SHA:AES128-SHA"
tls_verify = 1
tls_require_certificate = 1
tls_handshake_timeout=119 # number of seconds
tls_send_timeout=121 # number of seconds
If you know whats the problem, please tell me :)
Thanks
Joao Pereira