Hello,

just to close this thread. A new module named async has been introduced in GIT master, showing how to use the tm functions for asynchronous sip request processing.

It should answer the questions posted in this message.

Cheers,
Daniel

On 6/24/11 1:00 PM, Matthew Williams wrote:
Hi,

I'm working on a jsonrpc (client) module that we would like to make async, using t_suspend and t_continue from the tm module. I have a couple questions related to this.

The way I understand these functions, t_suspend will freeze the transaction in shared memory and immediately return and t_continue will unfreeze the transaction. What I'm not clear on here is whether t_continue will continue processing of the transaction within the process that calls t_continue, or will it delegate to a worker process?

I assume I should spawn an io process in child_init which will be responsible for sending/receiving on the socket(s), but what is the best way to communicate between processes? Is there a way to get a fd from fork_process (that can be written to by any child and read from using select() in the io thread)?

This is my first attempt at a real module, so any pointers are greatly appreciated.

Regards,
Matthew WIlliams


_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

-- 
Daniel-Constantin Mierla -- http://www.asipto.com
http://linkedin.com/in/miconda -- http://twitter.com/miconda