Hi!
i wonder if there is a timer which controls the timeout for provisional
replies.
E.g. I want to cancel an INVITE and retry another gateway if the gateway
does not respond with 100 (or 180) in a certain time.
regards
klaus
--
Klaus Darilion
nic.at
Hello everyone! Please help...
I've started testing openser 1.2.1 few weeks ago (on freebsd 6.2, I've got it from freebsd port collection) and I simple can not make LCR work at all. I spent last few hours reading almost all the posts on this mailing list and I can see it is working but I can not figure it out why mine configuration is not...
For simple start - I want all calls where destination number starts with 9 to be routed to PSTN GW.
So I made these entries in LCR tables:
[root@santos /var/log]# openserctl lcr show
lcr routes
+----+--------+----------+--------+----------+
| id | prefix | from_uri | grp_id | priority |
+----+--------+----------+--------+----------+
| 10 | 9 | % | 1 | 1 |
+----+--------+----------+--------+----------+
lcr gateway groups
+--------+----------+
| grp_id | grp_name |
+--------+----------+
| 1 | comutel |
+--------+----------+
lcr gateways
+---------+---------------+------+------------+-----------+--------+-------+--------+
| gw_name | ip_addr | port | uri_scheme | transport | grp_id | strip | prefix |
+---------+---------------+------+------------+-----------+--------+-------+--------+
| c2811 | 192.168.253.1 | 5060 | 1 | 1 | 1 | 0 | |
+---------+---------------+------+------------+-----------+--------+-------+--------+
For openser.cfg itself I've started with sip:wizard configuration template (SIP Proxy/Registrar with Offnet-Termination and Accounting) then I made some necessary changes (I do not have Mediaproxy or RTPproxy and added domain and populated trusted table).
But when I dial 93016576 I always have this error message in xlog output:
Jul 19 18:50:24 santos /usr/local/sbin/openser[1412]: No PSTN gateways available - M=INVITE RURI=sip:93016576@192.168.253.205:5060 F=sip:lvs1@192.168.253.205:5060 T=sip:93016576@192.168.253.205:5060 IP=192.168.253.202 ID=676c7a05-4bcd2745(a)192.168.253.202
Here is part of openser.cfg where next_gw() fails:
route[10]
{
if(isflagset(20))
{
xlog("L_INFO", "Call to foreign domain - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");
route(6);
exit;
}
route(12);
if(!isflagset(23))
{
# don't allow calls relaying from PSTN to PSTN, if not explicitely forwarded
if(uri =~ "^sip:[0-9]+@")
{
# only route numeric users to PSTN
if(!load_gws())
{
xlog("L_ERR", "Error loading PSTN gateways - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");
sl_send_reply("503", "PSTN Termination Currently Unavailable");
exit;
}
if(!next_gw())
{
xlog("L_ERR", "No PSTN gateways available - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");
sl_send_reply("503", "PSTN Termination Currently Unavailable");
exit;
}
setflag(21);
t_on_failure("1");
route(6);
}
}
xlog("L_INFO", "Call to unknown user - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");
route(3);
sl_send_reply("404", "User Not Found");
exit;
}
I believe that I've made some errors in LCR routes entries, but documentation is really sparse on this issue...
Please note - I've tried replacing "%" with empty string in from_uri column in routes table but then openser was not able to startup:
[root@santos /var/log]# openserctl lcr rmroute 9 % 1 1
MySql password for user 'openser@localhost':
200 OK
[root@santos /var/log]# openserctl lcr addroute 9 '' 1 1
MySql password for user 'openser@localhost':
200 OK
[root@santos /var/log]# openserctl lcr show
lcr routes
+----+--------+----------+--------+----------+
| id | prefix | from_uri | grp_id | priority |
+----+--------+----------+--------+----------+
| 11 | 9 | | 1 | 1 |
+----+--------+----------+--------+----------+
lcr gateway groups
+--------+----------+
| grp_id | grp_name |
+--------+----------+
| 1 | comutel |
+--------+----------+
lcr gateways
+---------+---------------+------+------------+-----------+--------+-------+--------+
| gw_name | ip_addr | port | uri_scheme | transport | grp_id | strip | prefix |
+---------+---------------+------+------------+-----------+--------+-------+--------+
| c2811 | 192.168.253.1 | 5060 | 1 | 1 | 1 | 0 | |
+---------+---------------+------+------------+-----------+--------+-------+--------+
[root@santos /var/log]# openserctl restart
Stopping OpenSER : \E[37;33mINFO: stopped
Starting OpenSER :
\E[37;31mERROR: PID file /var/run/openser.pid does not exist -- OpenSER start failed
And here is relevant part from openser log output:
Jul 21 21:30:26 santos /usr/local/sbin/openser[10216]: ERROR:lcr:load_regex: bad from_uri re
Jul 21 21:30:26 santos /usr/local/sbin/openser[10216]: ERROR: lcr:mod_init(): failed to reload gateways and routes
Jul 21 21:30:26 santos /usr/local/sbin/openser[10216]: init_mod(): Error while initializing module lcr
Please can someone help and point me in the right direction?
BR,
Miodrag
One of our clients, using a Nokia E90, is having problems connecting to
anything.
His INVITE looks like this:
U 123.236.98.24:55031 -> 11.22.33.44:5060
INVITE sip:1747XXXXXXX@our.proxy.com;user=phone SIP/2.0.
Route: <sip:our.proxy.com;lr;transport=UDP>.
Via: SIP/2.0/UDP
192.168.1.229:5060;branch=z9hG4bK3e89pocn1m7mkuiefdjljsj;rport.
From: <sip:1101XXXXXXX@our.proxy.com>;tag=ls57mprkkdhc7kku07de.
To: <sip:1747XXXXXXX@our.proxy.com;user=phone>.
Contact: <sip:1101XXXXXXX@123.236.98.24:55045;transport=UDP>.
Supported: 100rel,sec-agree.
CSeq: 980 INVITE.
Call-ID: pyBXpNNeoIcFBM7qVqVKrBneC2kxeM.
Allow: INVITE,ACK,BYE,CANCEL,REFER,NOTIFY,OPTIONS,PRACK.
Expires: 120.
Privacy: none.
User-Agent: Nokia RA-6 V 07.24.0.3.
P-Preferred-Identity: sip:1101XXXXXXX@our.proxy.com.
Max-Forwards: 70.
Proxy-Authorization: Digest
qop=auth,realm="our.proxy.com",nonce="46a713c0c887788778a731de0355c04db1896d23",algorithm=MD5,username="1101XXXXXXX",cnonce="0dad64affaabb2fa9c93611ec864e363",nc=00000001,uri="sip:1747XXXXXXX@our.proxy.com;user=phone",response="197f8a8b4b3d39281a147c2d9d2b6a28".
Content-Type: application/sdp.
Accept: application/sdp.
Content-Length: 447.
.
v=0.
o=Nokia-SIPUA 63353630343979125 63353630343979125 IN IP4 123.236.98.24.
s=-.
c=IN IP4 123.236.98.24.
t=0 0.
m=audio 49152 RTP/AVP 96 0 8 97 18 98 13.
a=sendrecv.
a=ptime:20.
a=maxptime:200.
a=fmtp:96 mode-change-neighbor=1.
a=fmtp:18 annexb=no.
a=fmtp:98 0-15.
a=rtpmap:96 AMR/8000/1.
a=rtpmap:0 PCMU/8000/1.
a=rtpmap:8 PCMA/8000/1.
a=rtpmap:97 iLBC/8000/1.
a=rtpmap:18 G729/8000/1.
a=rtpmap:98 telephone-event/8000/1.
a=rtpmap:13
The server received this packet, but never responds to it. It simply
never sends a reply. It's as though it doesn't recognise this as a
proper INVITE.
The ONLY thing I noticed about this that's completely non-standard, is
that every other packet seems to have this period after it (indicating,
perhaps, the end of a line... I don't know enough about the display of
ngrep to tell). This INVITE does not. It goes almost immediately into
the next packet, and it's almost as though this one never ends.
Has anyone seen this before? Is there anything weird about this INVITE
that would cause SER to ignore it?
N.
Hello Friends ...
Jai, Thanks for showing a pointer towards teh acc module...
but i really cudn't grasp even a bit out of it... all it says is about
logs being dumped, with specific data like \:
The fixed minimal accouting information is:
Request Method name
>From header TAG parameter
To header TAG parameter
Call-Id
3-digit Status code from final reply
Reason phrase from final reply
Time stamp when transaction was completed
There is no session/dialog accounting (yet)-- OpenSER maintains no
sessions. If one needs to correlate INVITEs with BYEs for generating
proper CDRs for example for purpose of billing, then it is better done in
the entity which collects accounting information.
If a UA fails in middle of conversation, a proxy will never learn it. In
general, a better practice is to account from an end-device (such as PSTN
gateway), which best knows about call status (including media status and
PSTN status in case of the gateway).
Now, my requirement is to generate a CDR for billing purpose... In syslog
there are not any logs present, and even if i get the logs there.. using
changes in config file, how do i use this raw information to generated
CDRz for billing purposes???
I have searched for quite a few tools online which work on the output of
SER to generate CDR or for CDR collection... but I need a free software,
they are all paid services... Can someone help me where should i go
further..? I'm lost ... :(
Thanks a lot!
Parminder Nayyar
"Jai Rangi" <jprangi(a)gmail.com>
07/23/2007 10:52 PM
To
"Parminder.Nayyar(a)relianceada.com" <Parminder.Nayyar(a)relianceada.com>
cc
Subject
Re: [Serusers] CDRz?
acc module can be used to all CDRs. But I found that useless for billing
purpose.
Jai
www.bingotelecom.com
On 7/22/07, Parminder.Nayyar(a)relianceada.com <
Parminder.Nayyar(a)relianceada.com> wrote:
Hi
Can anyone tell me which module to explore , if i want to check about CDRz
and billing??
Please help.....
Parminder Nayyar
_______________________________________________
Serusers mailing list
Serusers(a)lists.iptel.org
http://lists.iptel.org/mailman/listinfo/serusers
I was looking at the openser config generated using the online
sipwise wizard. They implement conditional call forwarding using:
if($avp(s:cfc) != NULL)
{
avp_pushto("$ru", "$avp(s:cfc)");
setflag(29);
append_branch();
t_on_branch("1");
xlog("L_INFO", "CFC detected - M=$rm RURI=$ru F=$fu
T=$tu IP=$si ID=$ci\n");
route(13);
}
branch_route[1]
{
if(is_domain_local("$rd"))
{
xlog("L_INFO", "Dropping local branch - M=$rm RURI=
$ru F=$fu T=$tu IP=$si ID=$ci\n");
drop();
}
}
Suppose an invite gets to this point and ruri is changed to another
local user. does this drop() in branch_route prevents that invite to
be relayed? does it still go through route(13) ?
I'm still a newbie trying to better understand the working of openser
functions. I'll greatly appreciate if someone can briefly describe
when it makes sense to use "append_branch()"
Thanks in advance for your help.
--
Zahid
Hello,
while playing around with the pseudo variables whithin openser 1.2.1 I got a strange behavior.
I tried to check if the from-header-name of an invite message is set to
(A|a)nonymous with an simple if-clause.
if($fn =~"(A|a)nonymous") {
...do something ;
}
It works fine while the from-name variable is not empty.
If the from-header-name in the INVITE message is not given openser crashes exactly on that comparison.
After that I started playing around using other comparisons, for example 'if($fn=~"foo")' or ' if($fn == "foo")' , with the same set-up.
Openser crashed each time processing that if-clause.
I tested this with openser-1.2.1-notls on i386 openSUSE 10.2 with MySQL 5.0.26 and gcc 4.1.2
Can anybody confirm this problem ?
Debuggin informations are available and can be send additional if necessary.
Regards.
Rainer Strobel
---------------------------------------------------------------------
HFO Telecom AG
Network Management
Bahnhofstraße 18
95028 Hof
Tel.: + 49 (0) 92 81 / 14 48 132
Fax: + 49 (0) 92 81 / 14 48 52 132
E-Mail: strobel(a)hfo-telecom.de
Internet: www.hfo-telecom.de
I'm using OpenSER to connect to a Nortel CS1000M, and I'm having some
problems.
The way the Nortel works is that it has what they call a Network Routing
Service (redirect server, really), that issues either a 302 (if a single
SIP gateway exists on the CS1000) or a 300 (if multiple).
Here's a sample 300 from my system (IPs and domains changed to protect
the guilty):
U 10.1.1.3:5060 -> 10.0.1.1:5060
SIP/2.0 300 Multiple Choices.
Via: SIP/2.0/UDP
10.0.1.1;branch=z9hG4bKa66e.99fc1a25.1;received=10.0.1.1.
Via: SIP/2.0/UDP 10.1.3.114;branch=z9hG4bK7d42804867A25509.
From: "0004f2145263"
<sip:0004f2145263@dtw-openser01.sub.domain.com>;tag=5F7CDD45-DDCE1F92.
To: <sip:12345@dtw-openser01.sub.domain.com;user=phone>;tag=34887.
Call-ID: 58dd5646-e86d140f-c2ead634(a)10.1.3.114.
CSeq: 1 INVITE.
Contact:
<sip:12345;phone-context=udp@domain.com:5060;maddr=10.1.1.1;transport=ud
p;x-nt-redirect=redirect-server;x-nt-redirect=redirect-server>.
Contact:
<sip:12345;phone-context=udp@domain.com:5060;maddr=10.1.1.2;transport=tc
p;x-nt-redirect=redirect-server;x-nt-redirect=redirect-server>.
Content-Length: 0.
The problem I have is that the Contacts have an maddr, and I need relay
to it. However, I can't seem to be able to use transformations to get
the maddr for relaying. Here are some log messages with comments
inline:
Jul 16 19:50:49 dtw-openser01 /usr/local/sbin/openser[4306]: Branches
are:
<sip:12345;phone-context=udp@domain.com:5060;maddr=10.1.1.1;transport=ud
p;x-nt-redirect=redirect-server>;q=0.01
This is just an xlog of $bR, but I'm not sure where the q= value is
coming from (get_redirects?).
Jul 16 19:50:49 dtw-openser01 /usr/local/sbin/openser[4306]: ERROR:
parse_uri: bad uri, state 0 parsed: <<sip> (4) /
<<sip:12345;phone-context=udp@domain.com:5060;maddr=10.1.1.1;transport=u
dp;x-nt-redirect=redirect-server>;q=0.01> (120)
Jul 16 19:50:49 dtw-openser01 /usr/local/sbin/openser[4306]:
tr_eval_uri: invalid uri
[<sip:12345;phone-context=udp@domain.com:5060;maddr=10.1.1.1;transport=u
dp;x-nt-redirect=redirect-server>;q=0.01]
These are what I get as a result of trying to xlog $(bR{uri.maddr})
Anyway, I would be greatly appreciative of any help someone might offer
on the matter.
Regards,
- Brad
The contents of this e-mail are intended for the named addressee only. It contains information that may be confidential. Unless you are the named addressee or an authorized designee, you may not copy or use it, or disclose it to anyone else. If you received it in error please notify us immediately and then destroy it.
Hi, I've configured a OpenSer in multidomain with a RtpProxy. Now I'd like to
use a RtpProxy for each domain, so it could be based in $rd.
But at first point I don't know how to configure OpenSer to use varios
RtpProxies in different machines. I've tried with:
modparam("nathelper", "rtpproxy_sock", "udp:localhost:22222,udp:192.168.1.58:22222")
and:
modparam("nathelper", "rtpproxy_sock", "udp:localhost:22222udp:192.168.1.58:22222")
but it fails when starting giving an error of parsing.
If I use:
modparam("nathelper", "rtpproxy_sock", "udp:localhost:22222,udp")
modparam("nathelper", "rtpproxy_sock", "udp:192.168.1.58:22222")
just the last line is used.
Any idea of how to use various RtpProxies?
My idea is to have some of them availables and use them based in $rd using:
force_rtp_proxy("","192.168.1.58")
and so.
Any help please? Thanks a lot.
--
Iñaki Baz Castillo
ibc(a)in.ilimit.es