Hello,
Is there a module that can control number of simultaneous calls in ser.
Fro example we want to allow max of 10 simultaneous calls for user A and 20
simultaneous calls for user B.
How can I do that.
Thank you,
-Jai
With debug=99 I get ...
0(31783) DEBUG:t_check_status: checked status is <302>
0(31783) +15183024234 has a forward 0(31783)
DEBUG:uac_redirect:get_redirect: resume branch=0
0(31783) DEBUG:uac_redirect:get_redirect: checking branch=0 (added=0)
0(31783) DEBUG:uac_redirect:get_redirect: branch=0 is a redirect
(added=0)
0(31783) parse_headers: flags=7
0(31783) Found param type 232, <branch> = <z9hG4bK68c33491>; state=16
0(31783) end of header reached, state=5
0(31783) parse_headers: Via found, flags=7
0(31783) parse_headers: this is the second via
0(31783) DEBUG: get_hdr_body : content_length=0
0(31783) found end of header
0(31783) DEBUG:uac_redirect:sort_contacts: <sip:
13143212222(a)eastern.testdomain.net> q=10
0(31783) DEBUG:uac_redirect:shmcontact2dset: adding contact <sip:
13143212222(a)eastern.testdomain.net>
0(31783) ******* setting for branch 0 flags 0
0(31783) parse_headers: flags=78
Segmentation fault (core dumped) // Where is this core dump being
written?
related openser.cfg snippet:
if(t_check_status("302")){
xlog("$tU has a forward");
get_redirects("*", "redirected");
xlog("forwarding to $tU");
t_relay("5.6.7.8");
exit;
};
Any help is as always, greatly appreciated.
hello !!
i installed openser with mysql module
but any one can register and make calls to another users
openser.cfg content
cat openser.cfg
#
# $Id: openser.cfg 1827 2007-03-12 15:22:53Z bogdan_iancu $
#
# simple quick-start config script
# Please refer to the Core CookBook at
http://www.openser.org/dokuwiki/doku.php
<http://www.voipuser.org/ship_to.php?url=http://www.openser.org/dokuwiki/dok…>
# for a explanation of possible statements, functions and parameters.
#
# ----------- global configuration parameters ------------------------
debug=8 # debug level (cmd line: -dddddddddd)
fork=yes
log_stderror=yes # (cmd line: -E)
children=4
log_facility=LOG_LOCAL0
sip_warning=yes
check_via=no # (cmd. line: -v)
dns=no # (cmd. line: -r)
rev_dns=no # (cmd. line: -R)
# Uncomment these lines to enter debugging mode
#fork=no
#log_stderror=yes
#
port=5060
# 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 = "/usr/local/etc/openser/tls/user/user-cert.pem"
#tls_private_key = "/usr/local/etc/openser/tls/user/user-privkey.pem"
#tls_ca_list = "/usr/local/etc/openser/tls/user/user-calist.pem"
# ------------------ module loading ----------------------------------
#set module path
mpath="/usr/local/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 "/usr/local/lib/openser/modules/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)
modparam("usrloc", "db_url", "mysql://openser:openserrw@localhost/openser")
#fifo_db_url="mysql://openser:openserrw@localhost/openser"
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("usrloc", "db_url", "mysql://openser:openserrw@localhost/openser")
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 >= 2048 ) {
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;
#};
save("location");
exit;
};
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;
}
Regards ,
--
Amr Elgbaly
Gnu/Linux sytem engineer
OptiServers support team
http://optiservers.com
Telephone : +2 02 678 679
Cell Phone : +2 012 803 2002
I'm having trouble finding the cpl-c module. I have the binaries for Openser
1.1.1 installed on arch x86_64 with FC6 downloaded from the opensuse
repository. Where can I get a compiled version of this module?
Rich
Hi,
I am trying to use the xcap authorization for PA during the SUBSCRITPION message servicing.
I have the following code which work fine when auth parameter is set to 'none':
if(lookup_user("$tu.uid", "@ruri"))
{
if (!t_newtran())
sl_reply_error();
drop;
}
(handle_subscription("registrar"))
...
}
but when I switch to auth 'xcap' I cant see any query send to XCAP server simulated on apache according to the presence handbook.
Please point me what do I miss.
Thanks
Cheers
Tomasz
Hello everybody,
since this is my first post and I am kinda new to OpenSER, bare with
me ;)
I have been trying to manipulate invites for the last 2 days and cant
find the proper way to reach what is expected.
my goal:
send invites to specific PBX (Asterisk for example) with only the
desired extension and not the full username, this is based on a
avp_check if that UAC needs only extensions, some do, some don't ;)
Here is what I do:
First off all I extract the real username (in subscribers) and
extension from the R-URI and place it in "$avp(callee_user)" and
"$avp(callee_exten)"
#############
my solution No1 is "working"
avp_pushto("$ru/username", "$avp(callee_user)");
avp_copy("$avp(callee_exten)","$avp(callee_tmp)/gd");
if( subst('/^To:(.*)sip:[^@]*(@[a-zA-Z0-9.]+.*)$/To:\1sip:$avp(callee_tmp)\2/ig') ){};
-> callee_user is 012345678
-> callee_exten is 200
-> $ru is sip:012345678@xxx.xxx.xxx.xxx;user=phone
-> subst [ To: <sip:012345678200@xxx.xxx.xxx.xxx;user=phone> ]
with [To: <sip:200@xxx.xxx.xxx.xxx;user=phone> ]
Those 3 lines work "fine", the testing Asterisk PBX gets the call
correctly. The problem is that I should not change the "To:" part, it
will make problems with call forwards etc...
#############
my solution No.2 NOT working.
if (subst_uri('/^sip:([0-9]+)@(.*)$/sip:$avp(callee_tmp)@\2;/i')){$};
doesn't work because OpenSER of course cant find 200 in the userloc....
#############
Generally I would think that changing the INVITE uri itself like in
solution No.2 is the best way, couldn't find any proper way to make that
work though.
Does anyone have an idea how to realize this properly, or even if this
makes sense ;) ?
thx in advance,
Patrick.
Hi,
I am using the RLS module for RLS service and resource list subscriptions. Ive done everything according to the presence handbook.
When SER sends NOTIFY messages to the subscribing UAs every instances of the subscribed resources is in the pending state.
How are those subscriptions handled by ser?? Do I have to include presence_b2b molude so that those subscriptions in the pending state would be handled??
Thanks in advance
Cheers
Tomasz
hi all,
I have installed openser.
when i gave ./openser.init start
i got this
Command Monit to start OpenSER...
./openser.init: line 64: /usr/local/bin/monit: No such file or directory
when i tried to run ./openser
i got this
ERROR: bad config file (16 errors)
can anyone help? thanks in advance
regards,
Vishwadeepak
______________________________________________________________________
Hi,
To terminate a call to the PSTN, my SER box has to route between
multiple PSTN gateways depending on the destination phone number/prefix.
For instance,
-Use gateway1 if the destination begins with any of these prefixes:
07550[0-4] 075509 07551[0-2] 075514 075515[7-8] 0755187
0755337 07553[7-9] 075551[0-1] 07555[2-8] 07556[0-4] etc..
-Use gateway2 if the destination begins with any of these prefixes:
0730[0-2] 07303[0-6] 0731[0-2] 073131 07313[5-9] 073140
07314[4-6] 0731[6-7] 0732[1-7] 07329[1-2] 07329[5-6] etc..
-Use gateway3 if etc...
-Use gatewayX if etc...
Obviously, one or a small number of regular expressions can't efficiently
cover all of these prefixes. However, doing it like this isn't ideal
because ser.cfg would be huge and cumbersome. Also, the prefixes for each
gateway may change over time:
if ( (uri =~ "^sip:07550[0-4]") || (uri =~ "^sip:075509") || ... )
{ route to gateway1 }
if ( (uri =~ "^sip:0730[0-2]") || (uri =~ "^sip:07303[0-6]") || ... )
{ route to gateway2 }
if ( ... )
{ route to gatewayX }
What's the most efficient way of doing this with SER?
Thanks in advanced
-Shaun
Greetings:
I really need some fresh eyes on my ser.cfg and help with this difficult
NAT issue: our internal UAs are on private IPs, registered with ser running
on the border router (it has aliases for the private IP internal LANs and
the public IP on which it listens).
Calls between UAs on public IPs and our internal UAs (on their
private IPs) work well.
Calls between UAs behind NAT (from the Internet) and our internal
UAs (on their private IPs) have no audio from us to them.
Only private IP addresses in routes from the Internet must be
rewritten for NAT; our internal UAs on their private IPs must be
routed without change (which works if the foreign UA isn't behind
NAT).
We are running '0.8.99-dev19 openbsd/sparc' and 'rtpproxy
1.21 2004/08/13'
Our 'ser.cfg', a packet dump of a call from an Internet UA behind NAT ('adams.dmp')
and a segment of the logfile ('serlog') are at:
http://www.cybertheque.org/sw/ser/configs
All help is truly appreciated.
Michael Grigoni
Cybertheque Museum