[Kamailio-Devel] [Kamailio-Users] 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 Devel mailing list