Thank Klaus,
I've try with t_suspend() and t_continue() as your guide,
*#Failure route to react with negative messages failure_route[1] { if (t_check_status("5[0-9][2-9]")) { if(t_suspend()) { xlog("proceesing suspended in trasaction [$T(id_index):$T(id_label)]\n"); xlog("before sleep \n"); }
if(async_sleep("20")) xlog("After sleep 20s \n");
if(t_continue('1','1','MYROUTE')) xlog("Continuation successfully \n"); exit; };*
And i found that t_suspend() and async_sleep() runnung ok but t_continue() seems not running.
I read about TMX module and TMX module Pseudo-Variables but still can not figure out it :(
Secondly, in case of t_continue() runs successfully , please tell me how to let Kamailio resend the INVITE message
to client B (before the t_continue(), i think so ) - while client B is waking up ?
Which functions and modules that i need to do this?
Thanks.
-----------------------------------------------------------------
Hi!
You have to use a failure route (http://kamailio.org/docs/modules/3.3.x/modules/tm.html#t_on_failure).
In the failure route check if the reply code is 404 and if yes, trigger the APNS logic and then put the call e.g. on a stack and resume e.g. every second and ofrward to the "SIP server" again to see if the client is registered meanwhile.
For the asynchronous processing take a look at these functions: t_suspend(),t_resume()[1]. For example you can call t_resume in a timer route every second. For the timer route, to know which transactions are currently suspended and are waiting for further processing, you could put the transaction identifiers in a message-queue [2] and read the queue from the timer route.
regards Klaus
[1] http://kamailio.org/docs/modules/3.3.x/modules_k/tmx.html#id2535968 [2] http://kamailio.org/docs/modules/3.3.x/modules/mqueue.html
On 24.07.2012 06:02, Duong Manh Truong wrote:
- Hi list,*>**>* My team are developing a SIP client for mobile running iOS ,*>**>* then having to deal with the "back ground mode" problem while this soft*>* is installed on mobiles*>**>* One of the solutions is using APNS. (Apple Push Notification Service)*>**>* I wanna to use Kamailio as SIP Redirect / Proxy for my current SIP server*>**>* The model is like that:*>**>* User A <---------> Kamailio <---------> SIP server <--------> User B*>**>* IF UserA call UserB, UserB is not available now (not registered yet),*>* normally, SIP server will reply Kamailio with "404 Not found"*>**>* In that case, i want to set up Kamailio do the communication with APNS*>* and waiting for UserB "Wake up" then RESEND the Invite message ......*>* (instead of forwarding this 404 message to UserA)*>**>* I am getting stuck at how Kamailio can control "404 Not found" message*>* which it receives from SIP server .*>**>* I do searching around several days but still can not get any clearer*>* points.*>**>* Please help me with some instruction/ configuration of Kamailio for this*>* case !*>**>* Thank you very much.*>**>**>* _______________________________________________*>* SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list*>* sr-users at lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users*>* http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users*%3E**