Hello list,
I have a proxy that manage fix calls and a proxy that manage mobile calls.
I want to implement call forking so when I call to a fix phone the call
goes to the fix proxy and it forks to the mobile proxy who manage the call
and viceversa. I want the fix to ring 2 or 3 times before the mobile.
In order to do so in my fix proxy I added a diversion field with the reason
"forking" and in my mobile proxy I check if the reason is "forking" to
wait
with the fonction "async_route" from the ASYNC module. When I call the fix
I can fork to the mobile with delay without any problem because in that
case my fix proxy manage one call and my mobile proxy the other one.
But when I call the mobile the call doesn't even get to my fix proxy
because my mobile proxy has to make the original call to wait while he is
forking the fix call to my other proxy. And i think that calling the
async_route fonction makes both calls to wait.
My code is:
Fix proxy:
if($tU==123456789){
add_diversion("forking");
append_branch("sip:987654321@proxy_mobile");
}
Mobile proxy:
if($tU==987654321){
$var(z) = "1";
append_branch("sip:123456789@proxy_fix");
}
route[INVITE]{
if($dir == "forking"){
async_route("RELAY", "7");
}else if($var(z) == "1"){
async_route("RELAY", "7");
}else{
route(RELAY);
exit;
}
}
How can I differentiate in the second scenario when I call the mobile phone
to fork to the fix phone?
Thank you for your help.
Igor.