[Kamailio-Users] [Kamailio-Devel] SIREMIS v0.9.1 Released
Stefan Sayer
stefan.sayer at iptego.com
Wed Feb 11 23:04:54 CET 2009
Hi Ramona,
o Elena-Ramona Modroiu [02/11/09 18:20]:
>> Maybe, if we would add a way to monitor SEMS servers from within
>> SIREMIS, it would give a good opportunity to monitor e.g. conference
>> bridge, voicemail server, prepaid app, or b2bua (like sbc).
>>
>> What do you think?
>>
> I think it would be very useful. It looks to me more like an extension
> to communicate via XMLRPC with SEMS - send command and display the result.
>
> What is the XMLRPC you are using in SEMS? The C library used in Kamailio
> proved quite unstable, therefore SIREMIS uses MI UDP - simpler protocol
> and easy to troubleshoot. There should be XMLRPC PHP lib, therefore easy
SEMS uses xmlrpc++, with the addition of multi threaded server (and
client with failover fallback). We have it deployed for quite some time,
and it works pretty reliably. Of course XML is always bloat, but I think
that TCP as reliable transport is not bad for this purpose - no need to
reimplement on application level. There is also a UDP server, but it is
little used, also due to that encoding/decoding of data structures is
much more straight forward with xmlrpc. Things on my list to try out are
also json-rpc (for easier integration with web apps) to DI, and protocol
buffers+libevent, for more performance. But I think for most
applications, xmlrpc2di works reasonably well.
To explain this a little further, in SEMS modules can export an internal
interface called DI ('dynamic invocation' - runtime function evaluation
and variably typed arguments) to export cross module APIs (SIP registrar
client, UAC authentication, DIAMETER client, message file storage,
accounting, conference room control etc). With xmlrpc2di, these APIs are
instantly accessible through XMLRPC from the outside. XMLRPC fits well,
because it contains data type description in the function call XML
document, and function names are dynamic - just like DI.
Similarly, monitoring data that the SEMS application can add to the call
info is variable - applications can add string/int attributes, or
arbitrary data structures, referenced by an attribute name. If accessed
via XMLRPC, they should be available just as the application added it;
int as int, strings as strings, arrays as arrays (struct support for
xmlrpc coming soon). If we can come up with a generic way to represent
that on the web page, it can be used for many diverse monitoring purposes.
> to extend SIREMIS.
>
> Is it possible to get statistic information out of SEMS? Like number of
> active calls? Such data can be used to build charts, which is nice to
> monitor the service health and evolution.
the xmlrpc2di module has the calls() method. Also, the listActive()
function from 'monitoring' does just that. By calling get() on the call
id, further information can be queried - e.g. it can be grouped by
application, domain etc.
Stefan
>
> Regards,
> Ramona
>
>
> _______________________________________________
> Kamailio (OpenSER) - Users mailing list
> Users at lists.kamailio.org
> http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
> http://lists.openser-project.org/cgi-bin/mailman/listinfo/users
--
Stefan Sayer
VoIP Services
stefan.sayer at iptego.com
www.iptego.com
IPTEGO GmbH
Wittenbergplatz 1
10789 Berlin
Germany
Amtsgericht Charlottenburg, HRB 101010
Geschaeftsfuehrer: Alexander Hoffmann
More information about the sr-users
mailing list