Hi all,
I'm trying to do a serial call forwarding
if callees don't answer.
I've added a field in a table which is the number
the users want to forward the call if they don't answer.
I've a shell script (myScript.sh) which works like that:
If the forward mode is activated for the user,
then the address is overwritten and the script returns 0,
else it returns 1.
My main route ends by "t_on_failure("1");" in my ser.cfg,
and I've write these lines after the main route:
/failure_route[1]
{
if (exec_dset("/path/to/myscript/myScript.sh \"$SIP_HF_TO\""));
{
route(2);
}
break;
}
route[2]
{
sl_send_reply("300","Redirect");
break;
}
/
I also use the tm module and I've set the fr_inv_timer and the fr_timer
to the values I wanted.
In my configuration :
User 1 wants to forward the call to User 2.
User 2 wants to forward the call to User 3.
User 3 wants to forward the call to User 1.
When User 4 calls User 1, who doesn't answer, the call is well forwarded
to User 2 after
5 ringings. User 2 doesn't answer and the call is well forwarded to User
3 . Etc.
So it works fine, if at least one of the callee answers.
But if the caller hangs up (sending a CANCEL to the callee), the phones
are always ringing and forwarding
the call in the same order.
Does anybody have an idea to solve this problem?
Thanks.
B.R.
Xavier.