[Kamailio-Users] Accounting: How to avoid a fraudulent BYE with lower CSeq?

Daniel-Constantin Mierla miconda at gmail.com
Thu Dec 18 20:34:22 CET 2008


Hello,

On 12/18/08 17:09, Andreas Granig wrote:
> Iñaki Baz Castillo wrote:
>   
>> Well, failure_route will not be called when receiving a 200 OK in this
>> BYE transaction.
>> failure_route is  only invoked for [3456]XX responses. 200 can only be
>> handled in on_reply_route, but I don't know if acc flag can be set in
>> on_reply_route.
>>     
>
> Ah, yeah, you're right :)
> I think I was discussing this with Daniel some time ago, and as far as I 
> remember,
AFAIK, we discussed about what happens if BYE comes in, proxy is 
restarted and then 200OK. BYE transaction was not accounted. So I 
suggested the usage of the acc_db_request(). A failed transaction (e.g., 
BYE with a negative reply) can be accounted.

But this one is a case that cannot be solved by using different flags 
from acc module. For INVITE, using the t_check_trans() for reply in 
onreply_route with latest kamailio version gives the possibility to drop 
the reply if there is no ongoing transaction, therefore you can force 
the call to fail.

For BYE is different, as you can lost the STOP event, while the call was 
established.

> he thought it was save to do so (although it's not enabled for 
> reply route, so you could call a route block from within your reply 
> route to get around this instead of using failure route, but no 
> guarantees for that)...
>   
The problem with this approach is that acc_*_request() is looking at 
first line to get the method type. However, this can be extended to take 
it from CSeq if it is reply not request.

Cheers,
Daniel

-- 
Daniel-Constantin Mierla
http://www.asipto.com





More information about the Users mailing list