Hi Iñaki,
because it is against RFC3261 - 6xx reply means global failure and no
further forking is allowed.
Regards,
Bogdan
Iñaki Baz Castillo wrote:
Hi, when I receive a 480 or 603 from a local user I
run "on_failure_route" and
create new branch to forward the INVITE to a media server in which I reply an
early-media "The number you are calling is not available now...".
It works perfectly if the error is 4XX but it doesn't work if it's a 6XX. I
get this error:
---------------------
## onreply_route[ON_REPLY_TO_USER]:
603: Decline
## failure_route[ON_FAILURE_TO_USER]
--- TO_MEDIA_SERVER: Destino user_not_available
May 21 12:25:25 [8502] ERROR:tm:t_forward_nonack: discarding fwd for a
cancelled/6xx transaction
May 21 12:25:25 [8502] ERROR:tm:w_t_relay: t_forward_nonack failed
----------------------
My code is very simple:
----------------------
failure_route[ON_FAILURE_TO_USER] {
if (t_check_status("480|603")) {
$rU = "user_not_available";
route(ROUTE_TO_MEDIA_SERVER);
exit;
}
}
route[ROUTE_TO_MEDIA_SERVER] {
rewritehostport("MEDIA_SERVER_IP:MEDIA_SERVER_PORT");
append_branch();
t_relay();
}
---------------------
It seems that if the reply is a 6XX then OpenSer can't generate a new_branch
in failure_route.
May 21 12:25:25 [8502] ERROR:tm:t_forward_nonack: discarding fwd for a
cancelled/6xx transaction
Why? doesn't it make sense to forward to some destination even if the negative
reply is a 4XX or 6XX?
Thanks a lot for any help.