Hi
 
Relevent section of the config similiar to below.
 
Incoming invite is sent to a redirect server, 300 reply is sent back.
failure_route catches the '300' applies t_drop_replies(); and creates a new invite
to host NEW_ADDRESS.
 
The issue I am facing - at this point when a CANCEL is received a '200' is sent back to the requester however it does get notified to the current 
invite which remains processing
 
...
 
if (is_method("CANCEL")) {
    if (t_check_trans()) {
            t_relay();
    }
    exit;
 
...
 
failure_route[FAIL]
{
    if (t_check_status("300")) {
        t_drop_replies();
        rewritehost(NEW_ADDRESS);
        t_relay();
     }
 }