Hi there my config file is
http://pastebin.com/d33669ee8
I have set
modparam("nathelper", "ping_nated_only", 1)
modparam("registrar", "nat_flag", 6)
This gives me the following error:
Jan 31 16:47:26 [16380] ERROR:core:set_mod_param_regex: parameter
<nat_flag> not found in module <registrar>
Jan 31 16:47:26 [16380] CRITICAL:core:yyerror: parse error in config
file, line 173, column 19-20: Can't set module parameter
If I set
modparam("nathelper", "ping_nated_only", 0)
and ### modparam("registrar", "nat_flag", 6)
This allows me to run openser but when I make a call to PSTN the
following warning is sent out
Jan 31 16:55:45 [16484] ERROR:nathelper:send_rtpp_command: can't connect
to RTP proxy
Jan 31 16:55:45 [16484] ERROR:nathelper:send_rtpp_command: proxy
</var/run/rtpproxy.sock> does not respond, disable it
Jan 31 16:55:45 [16484] WARNING:nathelper:rtpp_test: can't get version
of the RTP proxy
Jan 31 16:55:45 [16484] WARNING:nathelper:rtpp_test: support for RTP
proxy </var/run/rtpproxy.sock> has been disabled temporarily
Calls between softphones work but a call to the PSTN ends up with the
following
Jan 31 16:57:26 [16509] DBG:core:grep_sock_info: checking if port 5060
matches port 5060
International PSTN
Jan 31 16:57:26 [16509] DBG:core:parse_headers: flags=80
Jan 31 16:57:26 [16509] DBG:core:parse_headers: flags=ffffffffffffffff
Jan 31 16:57:26 [16509] DBG:nathelper:check_content_type: type
<application/sdp> found valid
Jan 31 16:57:26 [16509] DBG:core:parse_headers: flags=40
===>Jan 31 16:57:26 [16509] ERROR:nathelper:force_rtp_proxy2_f: no
available proxies
Routed to PSTN gateway
Jan 31 16:57:26 [16509] DBG:tm:t_unref: UNREF_UNSAFE: after is 0
Jan 31 16:57:26 [16509] DBG:core:destroy_avp_list: destroying list (nil)
Jan 31 16:57:26 [16509] DBG:core:receive_msg: cleaning up
Jan 31 16:57:27 [16514] DBG:tm:utimer_routine: timer
routine:4,tl=0x406ddf7c next=(nil), timeout=25100000
Jan 31 16:57:27 [16514] DBG:tm:retransmission_handler:
retransmission_handler : request resending (t=0x406dde30, INVITE si ...
)
Jan 31 16:57:27 [16514] DBG:tm:set_timer: relative timeout is 1000000
Jan 31 16:57:27 [16514] DBG:tm:insert_timer_unsafe: [5]: 0x406ddf7c
(26100000)
Jan 31 16:57:27 [16514] DBG:tm:retransmission_handler:
retransmission_handler : done
Jan 31 16:57:28 [16514] DBG:tm:utimer_routine: timer
routine:5,tl=0x406ddf7c next=(nil), timeout=26100000
Jan 31 16:57:28 [16514] DBG:tm:retransmission_handler:
retransmission_handler : request resending (t=0x406dde30, INVITE si ...
)
If I use tcpdump I don't see any traffic leaving for my PSTN GW.
With Regards
Ali Jawad
System Administrator
Splendor Telecom (www.splendor.net)
Beirut, Lebanon
Phone: +961 1 373725
Fax: + 961 1 375554
Hi gentlemen!
I use openser-1.2.2 and I want to access to dp & dP variables but
sometimes they are empty. I try to access it before and after t_relay()
and result is the same -- variable is empty.
When this variables are set? Is it possible that they are not set at all?
Thanks!
--
CU,
Victor Gamov
Hi all,
Please see the situation below:
UA1 ----------------------> Proxy 1(not openser)---------------------- Proxy 2(openser)<----------------------UA2
UA1 is registered to proxy 1 and UA 2 to openser. I wish to make a call from UA 1 to UA 2. Proxy 1 and proxy 2 are in the LAN but do not know of each other. Is there a way we can configure the openser to send/receive the invites to proxy 1? I think the calls will be handled on domain basis, so openser will treat all the UAs registered to it as local and allow them to call each other. But how to make it allow inter domain calls?
Please let me know.
Thanks,
Padmaja
I am new to SER. I have installed SER 0.9.6-2 on a fresh Kubuntu server using apt. I have been able
to get SER to run using the sample ser.cfg files (only changing module paths from /usr/local/lib...
to /usr/lib/...).
I am trying to setup the mysql support. In a nutshell, when I run serctl I get an error:
# serctl add sbelt(a)ser.mytestsite.com sbelt sbelt(a)mytestsite.com
MySql password: (here I enter 42serro11)
error: SER/FIFO not accessible: 2
#
Am I using the correct password? I am not sure which Mysql Password is being requested here. I have
also tried the mysql root password with the same result.
I have seen other posts similar that seem to indicate it is permissions on the /tmp directory. I
tried adding to ser.cfg fifo_mode=0777. I have verified the current user can write to the /tmp
directory. Frankly, I do not know if this /tmp/ser_fifo is all a red herring.
Thanks for any help on how I can figure out what I am doing wrong.
Steve B.
Here is my ser.cfg
# $Id: ser.cfg,v 1.25.2.1 2005/02/18 14:30:44 andrei Exp $
#
# simple quick-start config script
#
# ----------- global configuration parameters ------------------------
debug=3
fork=no
log_stderror=yes
listen=192.168.32.103 # put your server IP address here
port=5060
children=4
dns=no
rev_dns=no
fifo="/tmp/ser_fifo"
fifo_mode=0777
fifo_db_url="mysql://serro:47serro11@localhost/ser"
loadmodule "/usr/lib/ser/modules/mysql.so"
loadmodule "/usr/lib/ser/modules/sl.so"
loadmodule "/usr/lib/ser/modules/tm.so"
loadmodule "/usr/lib/ser/modules/rr.so"
loadmodule "/usr/lib/ser/modules/maxfwd.so"
loadmodule "/usr/lib/ser/modules/usrloc.so"
loadmodule "/usr/lib/ser/modules/registrar.so"
loadmodule "/usr/lib/ser/modules/uri_db.so"
loadmodule "/usr/lib/ser/modules/auth.so"
loadmodule "/usr/lib/ser/modules/auth_db.so"
modparam("auth_db|uri_db|usrloc", "db_url", "mysql://serro:47serro11@localhost/ser")
modparam("auth_db", "calculate_ha1", 1)
modparam("auth_db", "password_column", "password")
modparam("usrloc", "db_mode", 2)
modparam("rr", "enable_full_lr", 1)
route {
# -----------------------------------------------------------------
# Sanity Check Section
# -----------------------------------------------------------------
if (!mf_process_maxfwd_header("10")) {
sl_send_reply("483", "Too Many Hops");
break;
};
if (msg:len > max_len) {
sl_send_reply("513", "Message Overflow");
break;
};
# -----------------------------------------------------------------
# Record Route Section
# -----------------------------------------------------------------
if (method!="REGISTER") {
record_route();
};
# -----------------------------------------------------------------
# Loose Route Section
# -----------------------------------------------------------------
if (loose_route()) {
route(1);
break;
};
# -----------------------------------------------------------------
# Call Type Processing Section
# -----------------------------------------------------------------
if (uri!=myself) {
route(1);
break;
};
if (method=="ACK") {
route(1);
break;
} else if (method=="INVITE") {
route(3);
break;
} else if (method=="REGISTER") {
route(2);
break;
};
lookup("aliases");
if (uri!=myself) {
route(1);
break;
};
if (!lookup("location")) {
sl_send_reply("404", "User Not Found");
break;
};
route(1);
}
route[1] {
# -----------------------------------------------------------------
# Default Message Handler
# -----------------------------------------------------------------
if (!t_relay()) {
sl_reply_error();
};
}
route[2] {
# -----------------------------------------------------------------
# REGISTER Message Handler
# ----------------------------------------------------------------
sl_send_reply("100", "Trying");
if (!www_authorize("","subscriber")) {
www_challenge("","0");
break;
};
if (!check_to()) {
sl_send_reply("401", "Unauthorized");
break;
};
consume_credentials();
if (!save("location")) {
sl_reply_error();
};
}
route[3] {
# -----------------------------------------------------------------
# INVITE Message Handler
# -----------------------------------------------------------------
if (!proxy_authorize("","subscriber")) {
proxy_challenge("","0");
break;
} else if (!check_from()) {
sl_send_reply("403", "Use From=ID");
break;
};
consume_credentials();
lookup("aliases");
if (uri!=myself) {
route(1);
break;
};
if (!lookup("location")) {
sl_send_reply("404", "User Not Found");
break;
};
route(1);
}
Hi all,
i have some issue with my SER server and somes IP phones.
I'm using a SER 2.0
Somes phones doesn't what login in the server because its send their
username <sip:login@domain.tld:5060;user=phone>
The SER server try to search the domain named :
"domain.tld:5060;user=phone" and doesn't find it.
How can I configure my SER server to make the difference between domain
and parameter ?
Thanks,
Simon
Dear All
I need a way to detect if a user is logged in and disconnect him if
possible. A better solution would be to detect if he is in a call and
disconnect him.
My questions would be
1. How to detect if a user is connected ?
2. How to detect if a user is currently in a call ?
3. How to disconnect a user
4. How to stop the call for a user (If possible)
5. If dialog is needed is my install below sufficient ?
I was told in the IRC channel with regard to Q 3 that I can use the
dialog module to achieve that through sending bye using dlg_end_dlg mi
command.
I checked the documentation at
http://www.openser.org/docs/modules/1.3.x/dialog.html#AEN578
but I do not have
modparam("dialog" // and so on lines in my openser.cfg file
I have installed 1.3 with MySQL, Jabber and Presence support using the
following
First I edited the MakeFile and deleted the modules I want from the
exclude_modules entry, it showed up as follows
exclude_modules?= cpl-c postgres osp unixodbc \
avp_radius auth_radius group_radius uri_radius xmpp \
pua pua_bla pua_mi \
pua_usrloc pua_xmpp rls mi_xmlrpc perl perlvdb \
ldap carrierroute h350 xcap_client db_berkeley seas
NICER=1 make all
make prefix=/usr/local install
Does that mean that the dialog module is installed? I could not find a
loadmodule "dialog" line!!
With Regards
Ali Jawad
System Administrator
Splendor Telecom (www.splendor.net)
Beirut, Lebanon
Phone: +961 1 373725
Fax: + 961 1 375554
Hi,
ok, I found and solved one issue. The acc radius_extra entries seem to have a maximum lenght that openser can parse
so when I break the configuration into two "lines" like this:
modparam("acc", "radius_extra", "User-Name=$Au; \
Calling-Station-Id=$from; \
Called-Station-Id=$to; \
Sip-Translated-Request-URI=$ruri; \
Sip-RPid=$avp(s:rpid); \
Source-IP=$si; \
Source-Port=$sp; \
Canonical-URI=$avp(s:can_uri); \
Divert-Reason=$avp(s:divert_reason); \
X-RTP-Stat=$hdr(X-RTP-Stat)")
modparam("acc", "radius_extra", "User-Agent=$hdr(user-agent); \
Event=$hdr(event); \
Contact=$hdr(contact); \
SIP-Proxy-IP=$avp(s:sip_proxy_ip); \
ENUM-TLD=$avp(s:enum_tld)")
#Billing-Party=$avp(billing_party); \
It all works, I hope OpenSER isnt ignoring the first entry in the cfg file!!!! :S. But its only working if I remove the entry
"Billing-Party=$avp(billing_party)", if I change this to "Billing-Party=$avp(s:billing_party)", then all starts fine. Just hope
thats how its meant to be! :P
Andy.
If I was guessing (without fully understanding the syntax!) Id say the problem was
Billing-Party=$avp(billing_party);
should be
Billing-Party=$avp(s:billing_party);
Although in theory both of the above config entries seem to be valid, though different, openser.cfg entries. According to this:
http://www.openser.org/docs/modules/1.2.x/avpops.html
:S
Also, I tried with the second format (with s:) and that then gives me another error when I start openser:
0(0) INFO:xl_parse_name: using hdr type (27) instead of <user-agent>
0(0) ERROR:acc:parse_acc_extra: parse failed in <User-Name=$Au; Calling-Station-Id=$from; Called-Station-Id=$to; Sip-Translated-Request-URI=$ruri; Sip-RPid=$avp(s:rpid); Source-IP=$si; Source-Port=$sp; Canonical-URI=$avp(s:can_uri); Billing-Party=$avp(s:billing_party); Divert-Reason=$avp(s:divert_reason); X-RTP-Stat=$hdr(X-RTP-Stat); User-Agent=$hdr(user-agent); \
Contact=$hdr(contact); Event=$hdr(event); SIP-Proxy-IP=$avp(s:sip_proxy_ip); ENUM-TLD=$avp(s:enum_tld)> around position 319
0(0) acc:parse_acc_extra: error
0(0) ERROR:acc:mod_init: failed to parse rad_extra param
0(0) init_mod(): Error while initializing module acc
ERROR: error while initializing modules
Hi Iñaki,
ah yeah, I hadnt noticed this before, and diameter. However have you tested this to see if it writes data in exactly the same format to a DB as Freeradius would? For sure CDRTool has been written to work with freeradius and will therefore need the data in a freeradius format/schema...
Andy.
----- Original Message -----
@Andy:
> but Radius will do all other updates to DB accounting data.
But the point here is that accounting is done by OpenSer ACC module, which can
use radius or mysql to fill "radacct" table.
Hi,
I'm recently added voip on our services using ser.
i bill my users using the time of INVITE and BYE. but got a complain
from one of my users, why even if the call was not answered they still
get billed,
what can i use on ser to check whether a call has been answered or not,
then i will bill only base on the answered call.
Thanks in advanced.
Regards,
Ron