Have you tested with async mi commands? The function
build_async_handler() is cloning the information in shared memory,
expecting that the response to the mi command to be done from
another process. In that case, the socket is no longer valid,
because it was created only in the mi process.
I haven't analyzed deeply, but it is very likely to be what I said
above.
Options coming in my mind:
- for async case keep the old way of creating a new socket. This can
be propagated by setting field tx_sock=0
- try to bind to same socket in async handler, provided the initial
socket is created with resuse addr/port
Cheers,
Daniel
On 28/03/14 21:49, Muhammad Shahzad
wrote:
Please find attached updated patch as requested.
--
Daniel-Constantin Mierla - http://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Kamailio World Conference - April 2-4, 2014, Berlin, Germany
http://www.kamailioworld.com