[sr-dev] rfc: things about RPC/MI child initialization
Daniel-Constantin Mierla
miconda at gmail.com
Tue Sep 6 11:05:54 CEST 2011
Hello,
currently there is a known issue with the processes initialized for
processing MI commands when using event_route[tm:local-request]. Since
the child init function for other modules is not executed for such
processes, functions from various modules (especially with database
interaction) cannot be executed, for example: calling acc_db_request()
for BYE generated through MI dlg_end_dlg.
On another hand, MI functions cannot be called properly via RPC (through
mi_rpc module) when using XMLRPC. The reason is that XMLRPC is handled
by SIP workers, which do not execute mi_child_init function.
These may render obsolete the mi_init_child function, since it should be
merged in the normal child_init function. Moreover, the rank PROC_RPC
applies to SIP worker processes when XMLRPC module is loaded. Thus I
think some RPC commands don't work properly over XMLRPC (cc-ed Jan and
Andrei for more comments here). It should be also like a RPC flag per
process than only type
One option to solve is to add a new parameter to child init function,
flags, where to tell whether the process is going to handle MI/RPC
requests. Based on that, call mi_child_init if still requires. PROC_RPC
needs to stay also as rank for specially forked processes.
This change will require to touch all modules, and they are a lot, so
maybe somebody here finds other solution.
Cheers,
Daniel
--
Daniel-Constantin Mierla -- http://www.asipto.com
Kamailio Advanced Training, Oct 10-13, Berlin: http://asipto.com/u/kat
http://linkedin.com/in/miconda -- http://twitter.com/miconda
More information about the sr-dev
mailing list