[Devel] non-invite server transactions are terminated too fast

Bogdan-Andrei Iancu bogdan at voice-system.ro
Tue Apr 11 15:28:04 CEST 2006


Klaus Darilion wrote:

> Bogdan-Andrei Iancu wrote:
>
>> Hi,
>>
>> REGISTER retransmission is a little bit tricky.
>>
>> If you have a stateless configuration, you will not be able to detect 
>> retransmissions, so each request will be fully processed as a new 
>> one. Since we added the cseq checking in register module (according 
>> to rfc), the retransmissions will be reported as errors due invalid 
>> cseq no.
>> Solution: relax the register checking to accept equal cseq. 
>> Disadvantage: you still process each register even if it;s 
>> retransmission - partial solution: try sending an 100 trying once you 
>> received a REGISTER.
>
>
> This means that the client will wait for the response, which may never 
> arrive e.g. when it was dropped.

even if a provisional reply is received, any UAC must generate an 
internal timeout if no final response was received.

> How long will the client wait?

I guess depends of the client

> will it use a new cseq when it tries again?

not sure, but I would say it should increase the cseq as it's a new 
request - first was completed with timeout.

>
>> Also you my go for a statefull approach: you will catch all 
>> retransmissions, but it might have a negative impact on your memory 
>> usage. Use t_newtran() before save in order to create transactions 
>> and absorb retransmissions.
>
>
> Does this really work?

try placing:
    t_newtran();
    t_release();
 
before save("location") in your script. It will consume all retransmissions.

> As far as I remember I tried this a year ago and there where some 
> problems. This is why Maxim made the patch.
>
I do not remember Maxim's patch.

regards,
bogdan



More information about the Devel mailing list