Hi,
Have any of you folks seen an abnormal CPU usage issue with rtpprpxy?
At times, "top" shows rtpproxy uses 100% CPU (sometimes 99%, sometimes
even 101%!), and it stops responding to openser. I have to restart
everything now.
A small thread in Serdev list recommends upgrading rtpproxy to latest
in CVS:
http://lists.iptel.org/pipermail/serdev/2006-June/007459.html
Mine was fairly old, so I upgraded, but without much progress. What
really bugs is I don't know what triggers it.
Backtraces suggest that this occurs in different places in rtpproxy,
before and after upgrading.
Before upgrade:
(gdb) where
#0 0xb7f49410 in ?? ()
#1 0xbffd6d88 in ?? ()
#2 0x00000076 in ?? ()
#3 0xbffd2410 in ?? ()
#4 0x4a8d9fd1 in sendto () from /lib/tls/libc.so.6
#5 0x0804ac0c in main (argc=7, argv=0xbffd6e14) at main.c:1467
After upgrade:
(gdb) where
#0 0xb7f0a410 in ?? ()
#1 0xbfcb0258 in ?? ()
#2 0xbfcadfc0 in ?? ()
#3 0xbfcab8e0 in ?? ()
#4 0x00bb8dd1 in recvfrom () from /lib/tls/libc.so.6
#5 0x0804a568 in main (argc=7, argv=0xbfcb02e4) at main.c:1364
Any clues? Is this a known problem and is there a patch or some sort
ofworkaround? Is there anything I need to upgrade? (This is CentOS
4.4, FWIW) Anything that should be done in openser configuration?
Thanks much in advance.
- Sajith.
this discussion on abyss xmlrpc server reminds me about a problem on its
handling of CRLF, which needs to be included in a string when
applications use t_uac_dlg or send_publish mi commands to send sip
requests to openser.
if abyss receives CRLF in a string, it drops CR and only LF is left. if
abyss server receives CRCRLF, it results in LFLF. abyss does retain CR
in a string if it receives if coded as . however, none of xmlrpc
clients that i have tried (python or php) allows me to send out on the
wire because they (according to xmlrpc spec) convert & to &
and i get on the wire 
, which abyss does not convert to CR.
the problem results from abyss author's own interpretation of xmlrpc
specification:
http://xmlrpc-c.sourceforge.net/doc/libxmlrpc.html#xmlrpc_value
XML-RPC strings deserve a little more detailed explanation because of
some nonsense in the definition of them in the XML-RPC
specification. The spec says a string's value is arbitrary 8 bit bytes,
but also says that it is part of an XML document. An XML document is
composed of XML characters, and the spec doesn't mention any way of
encoding those arbitrary bytes into XML characters. It appears that the
author was confused about how XML works.
as result, i have found no way (without hacking xmlrpc client libraries)
to get CRLF via abyss server to openser.
does anybody have a suggestion?
-- juha
FYI: A new ser module which could probably easily ported to openser too
(if someone needs this feature)
regards
klaus
-------- Original Message --------
Subject: [Serdev] Contributing new module "prefix_route" to SER
Date: Wed, 25 Apr 2007 16:52:39 +0200
From: Alfred E. Heggestad <aeh(a)db.org>
To: serdev(a)iptel.org
Hi
Here is a contribution to the SER community; a new module called
"prefix_route" that does prefix-based routing from rules stored in
the database.
The work was sponsored by my employer, Telio Telecom.
The source code is attached, and can also be downloaded from here:
http://aeh.db.org/patch/prefix_route-20070425.tar.gz
The module has been tested with ser-0.9.6 and ser-0.9.7-pre8
from CVS. It could also be ported to SER 2.0 if there is any
interest.
The idea with this module is to move the logic of selecting
PSTN gateway from ser.cfg to the database. In the database
you will have a table called e.g. "prefix_route" which has
one entry per rule, matching a prefix to a route number:
prefix route
------ -----
0045 -> route 3
0046 -> route 4
0047 -> route 5
for incoming requests, you can call the prefix_route() function
in your ser.cfg - it will then try to match the username part of
the request-uri to the "best" prefix, i.e. closest match. if there
is a match, it will jump to that routing block in ser.cfg. all
referenced route numbers must be declared in ser.cfg, otherwise
it will not load. The prefix_route table is populated from the DB
at boot or with the "prefix_reload" FIFO command, into a RAM-based
tree that is used in execution time.
For more documentation, please see the README file ;)
I hope that this module will be useful for you, any feedback will
be appreciated!
/alfred
_______________________________________________
Serdev mailing list
Serdev(a)lists.iptel.org
http://lists.iptel.org/mailman/listinfo/serdev
Attempting to make OpenSER 1.2.0 and getting the following errors:
In file included from destination.c:39:
usage.h:34:21: error: osp/osp.h: No such file or directory
In file included from destination.c:39:
usage.h:52: error: syntax error before âOSPTTRANHANDLEâ
usage.h:53: error: syntax error before âOSPTTRANHANDLEâ
destination.c: In function âospConvertAddressâ:
destination.c:470: warning: implicit declaration of function âsnprintfâ
destination.c:470: warning: incompatible implicit declaration of built-in
function âsnprintfâ
destination.c:472: warning: incompatible implicit declaration of built-in
function âsnprintfâ
make[1]: *** [destination.o] Error 1
make[1]: Leaving directory `/usr/src/openser-1.2.0-notls/modules/osp'
make: *** [modules] Error 2
FC4
rpm -q libxml2-devel
libxml2-devel-2.6.20-1.FC4
rpm -q curl-devel
curl-devel-7.13.1-5.fc4
Any advice appreciated.
Regards
Cameron
thanks daniel,it looks like i can only append to the 'base' fields of the log. i was looking to reformat the whole syslog, including those those first few starting with timestamp, method, etc..thanks,-will> Date: Thu, 3 May 2007 21:04:21 +0300> From: daniel(a)voice-system.ro> To: sip(a)voiplabs.net> CC: users(a)openser.org> Subject: Re: [Users] ACC : log_fmt equivalent in 1.2 ?> > Hello,> > you can get it via the log_extra parameter:> http://www.openser.org/docs/modules/1.2.x/acc.html#AEN276> http://openser.org/dokuwiki/doku.php/install:1.1.x-to-1.2.x#acc> > Cheers,> Daniel> > On 05/03/07 18:03, Will Quan wrote:> > In version 1.1.0 it was possible to specify the log_fmt for the ACC > > records that go into the syslog.> > modparam("acc", "log_fmt", "miocfsur");> >> > It appears this has been removed in 1.2, so I was wondering if there > > is a new way to achieve the same result.> > That is, produce ACC records with the same syslog format as my 1.3 > > version.> >> > Thanks,> > Will> > ------------------------------------------------------------------------> >> > _______________________________________________> > Users mailing list> > Users(a)openser.org> > http://openser.org/cgi-bin/mailman/listinfo/users> >
In OpenSER 1.1 I use uac_replace_from to rewrite the from details. I want
the rewritten from to be based on an avp value but I don't think that is
possible. Am I right? If so, is it possible in 1.2?
On a related point, is anyone working on fixing the CSEQ issue with the uac
module or is there a plan for this? I know it's been on the todo list for a
while.
Regards
Cameron
Hi Heinanen
When I was using the version 1.1.0, I needed to set a preferred route to my voip 123. This way, it was necessary to insert this underscores after 0. They match any single character (like dot in regular expressions). I used it because the prefix needs to match
the longest user part.
prefix-------------------from_uri-------grp_id--------priority
0123456------------------------%------------ 1 ---------------1
0________-------------sip:123@.*----------- 2 ---------------0
If I call to number 01234560000 with voip 777, the GW 1 will be selected. Instead, when I use voip 123, the GW 2 is returned. This way, all the calls originated by voip 123 having a size of user part equal 7 or greater, will match with the second line. It does not happens with I have these lines (without the underscores):
prefix-------------------from_uri-------grp_id--------priority
0123456------------------------%------------ 1 ---------------1
0-----------------------sip:123@.*----------- 2 ---------------0
In this case, GW 1 will be always selected to any voip. It works in version 1.1.0, but I need to set this behavior in 1.2.0.
I know that from_uri in this version is a regular expression. So, I added a '^' in the beginning.
prefix-------------------from_uri-------grp_id--------priority
0123456-------------------------------------- 1 ---------------1
0________------------^sip:123@.*--------- 2 ---------------0
The version 1.2.0 always use the LCR in memory. I looked for the query used by 1.1.0 in lcr_mod.h but I didn't find it. So, I don't know if the underscores is necessary because it is used by the MySQL. In my test, just the GW 1 was selected when I called using voip 123.
Using other words: I want to route all the calls originated by voip 123 through GW 2 (when beginning with a 0) and the others to GW 1.
Thanks for your help, Heinanen.
Bruno
----- Mensagem original ----
De: Juha Heinanen <jh(a)tutpro.com>
Para: Bruno Machado <bsmufu(a)yahoo.com.br>
Cc: users(a)openser.org
Enviadas: Quinta-feira, 3 de Maio de 2007 12:36:33
Assunto: [Users] LCR module (1.2.0)
Bruno Machado writes:
> prefix----------from_uri-------grp_id--------priority
> 0123456------------------------------ 1 ---------------1
> 0________------^sip:123.*--------- 2 ---------------0
>
> Ok. The LCR documentation tells that the column 'from_uri' must be a
> regular expression in this version. The route selected is the first
> line. I'd like to route the voip number 123 through GW 2, but it
> doesn't happens.
i don't understand based on the above, how your lcr table looks like
and which uri you are trying to call. what are the underscores after 0?
prefix is just a prefix, nothing else.
-- juha
__________________________________________________
Fale com seus amigos de graça com o novo Yahoo! Messenger
http://br.messenger.yahoo.com/
In version 1.1.0 it was possible to specify the log_fmt for the ACC records that go into the syslog. modparam("acc", "log_fmt", "miocfsur");It appears this has been removed in 1.2, so I was wondering if there is a new way to achieve the same result. That is, produce ACC records with the same syslog format as my 1.3 version.Thanks,Will
Hi,
I've been googling for a while and I haven't been
able to find out how to do the following:
I would like to reject all SUBSCRIBE and NOTIFY
messages received by my OpenSER server. How do I
do properly?
if (method=="SUBSCRIBE")
{
};
if (method=="NOTIFY")
{
};
I couldn't find any examples and Google also didn't
find anything that pointed me in the right direction.
Thanks!
--
Andreas Sikkema
Other thing: the 1.2.0 is using the priority in contrary?
prefix----------from_uri-------grp_id--------priority
0123456------------------------------ 1 ---------------1
0123456----------------------------- 2 ---------------0
When I called to 01234560000, GW 1 was selected. In version 1.1.0, the GW 2 will be selected because it has the minor number.
Bruno
----- Mensagem original ----
De: Juha Heinanen <jh(a)tutpro.com>
Para: Bruno Machado <bsmufu(a)yahoo.com.br>
Cc: users(a)openser.org
Enviadas: Quinta-feira, 3 de Maio de 2007 12:36:33
Assunto: [Users] LCR module (1.2.0)
Bruno Machado writes:
> prefix----------from_uri-------grp_id--------priority
> 0123456------------------------------ 1 ---------------1
> 0________------^sip:123.*--------- 2 ---------------0
>
> Ok. The LCR documentation tells that the column 'from_uri' must be a
> regular expression in this version. The route selected is the first
> line. I'd like to route the voip number 123 through GW 2, but it
> doesn't happens.
i don't understand based on the above, how your lcr table looks like
and which uri you are trying to call. what are the underscores after 0?
prefix is just a prefix, nothing else.
-- juha
__________________________________________________
Fale com seus amigos de graça com o novo Yahoo! Messenger
http://br.messenger.yahoo.com/