Kamailio 4.3.3
Ubuntu 14.04.1 x86_64
I'm using t_suspend()
and t_continue()
for mobile push notification scenario. Before calling t_suspend()
I set the fr_timer
to 12 seconds and t_on_failure()
to my custom failure route (e.g. failure_route[MY_FAILURE_ROUTE]
). The scenario is fairly similar to [SR-Users] Timeout after t_suspend and failure route, the only difference is I try to use jsonrpc_notificaion()
to notify the user asynchronously in my custom failure route.
There are 2 different results depending on how it goes to the failure route:
fr_timer
expires
jsonrpc_notification
can successfully be called in failure routefr_timer
did timeout after 12 seconds
jsonrpc_notification
:jsonrpc_notification(): failed to write to io pipe: Bad file descriptor
For the first case that perform normally, the IDs of Kamailio processes being used are the same for both calling t_suspend() and entering failure route, while in the second case the processes are different.
Following added some debug messages in Kamailio's main.c
it showed that the process being used in the failure route of case 2 is slow timer process
, and from jsonrpc_mod.c
's child_init()
function, the rank of slow timer process
is -1 therefore it doesn't assign the fd
to this process.
My workaround was just assigning the fd
to each child during child_init()
in jsonrpc_mod.c
but that's definitely not a good way to go. I am appreciated if you can give me some advice to solve this problem correctly.
Cheers,
Ian
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.