[Users] purposely dropping reply message

Klaus Darilion klaus.mailinglists at pernau.at
Wed May 16 11:00:02 CEST 2007



Bogdan-Andrei Iancu wrote:
> Hi,
> 
> actually you can "drop" negative final replies - it is not drop but 
> rather replacement - it might be useful. Do in failure route:
> 
>    if (t_check_status("400")) {
>       t_reply("xxx","my new reply");
>       exit;
>    }

this wont help Tim as any reply stops retransmissions.
btw: If the clients uses TCP there wont be retransmissions at all.

regards
klaus


> 
> regards,
> bogdan
> 
> Klaus Darilion wrote:
>>
>>
>> Tim wrote:
>>> Hello,
>>>
>>> How/Where would be the best place to purposely drop a particular reply
>>> message ( > 400 )
>>>
>>> I have armed both the reply route and failure route and attempted to 
>>> drop
>>> the message by calling the drop() function but this doesn't seem to 
>>> work.
>>> Is there a simple method for conditionally dropping a reply message?
>>
>> Dropping for final response messages is not supported.
>>>
>>> My goal is to force the UAC that created the original request to 
>>> retransmit
>>> (UDP) the request in certain scenarios, such as when ACK to an initial
>>> invite has not been fully processed by the downstream UAS but a 
>>> re-invite
>>> has been received by the UAS causing the UAS to return a 400 for the
>>> re-invite.  I do not want the UAC to see the 400 reply, instead I simply
>>> want the UAC to resend the re-invite because no final response has been
>>> received, presumably by this time  the ACK processing will be 
>>> finished and
>>> the retransmitted re-invite would be handled smoothly.
>>
>> Are you sure that the retransmitted reINVITE is accepted by the client 
>> after the ACK was received? I would rather suggest to fix the client. 
>> A reINVITE before the ACK is an implicit ACK and thus the client 
>> should handle it as a ACK was received. I think this is also stated 
>> somewhere in RFC 3261.
>>
>> regards
>> klaus
>>> I realize replies are routed based on via headers.  Is there some way to
>>> short circuit this routing other than drop()?
>>>
>>> Thanks
>>>
>>> Tim
>>>
>>>
>>> Tried this from failure route
>>>
>>> if(t_check_status("400"))
>>>        {
>>>                xlog( "L_ERR", "400 message in failure route 2 **********
>>> \n" );
>>>                drop();
>>>                return;
>>>        }
>>>
>>> Tried this from reply route
>>>
>>> if(status == "400")
>>>        {
>>>                xlog( "L_ERR", "400 in reply route 2 .... dropping\n" );
>>>                drop();
>>>                return;
>>>        }
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at openser.org
>>> http://openser.org/cgi-bin/mailman/listinfo/users
>>
>> _______________________________________________
>> Users mailing list
>> Users at openser.org
>> http://openser.org/cgi-bin/mailman/listinfo/users
>>
> 




More information about the Users mailing list