[Serusers] How to handle retrasmissions?
Federico Giannici
giannici at neomedia.it
Wed Dec 7 15:58:16 CET 2005
Klaus Darilion wrote:
> Hi Federico!
>
> I have not followed the whole thread, sorry. Maybe we should go back on
> step. What problems do you have with retransmission? Do you mean
> retransmissions from the client to ser, or from ser to the next hop?
Retrasmissions are from client to SER (client is on a slow line).
(BTW, to make the event "reproducible" in my tests, I put a delay of 3
seconds for every message received.)
> If you forward requests stateful (t_relay), incoming retransmission will
> be routed like the first message and will be absorbed by t_relay.
By "absorbed" do you mean that retrasmissions are simply discarded?
So, it's fine if, before t_relay(), I test if a given message is a
retrasmission and simply discard it?
> What is different in your setup that will cause problems?
The problem is that I cannot know "a priori" if a given module
(OpenSER's UAC, in my case) has already created a transaction, so I
cannot know if I can safely call t_relay().
Thanks.
> Federico Giannici wrote:
>
>> Klaus Darilion wrote:
>>
>>> Take a look at the documentation of openser. The functions of the tm
>>> module are well documented and I think the meaning in ser is still
>>> the same. I guess your are looking for t_forward_nonack()
>>> http://openser.org/docs/modules/1.0.x/tm.html#AEN351
>>
>>
>>
>> I already tryed to use t_forward_nonack(), but I got errors like this:
>>
>> Dec 5 18:47:29 eowyn OpenSER[26647]: ERROR:tm:t_forward_nonack: no
>> branch for forwarding
>>
>> What am I missing?
>>
>> Thanks.
>>
>>
>> P.S.
>> What about question number 2?
>>
>>
>>
>>> Federico Giannici wrote:
>>>
>>>> What is the correct way to handle message retrasmissions?
>>>>
>>>> Usually t_relay() seems to hadle them correctly. But if a
>>>> transactions was previously created by some module function, I found
>>>> that t_relay() (and subsequent sl_reply_error()) generates the
>>>> following errors:
>>>>
>>>> Dec 5 18:49:25 eowyn OpenSER[5654]: ERROR: t_newtran: transaction
>>>> already in process 0x502a56f8
>>>> Dec 5 18:49:25 eowyn OpenSER[5654]: ERROR: sl_reply_error used: I'm
>>>> terribly sorry, server error occurred (1/SL)
>>>>
>>>> So, I have the following questions:
>>>>
>>>> 1) What is the correct script code to relay a message, even with
>>>> retrasmissions and transaction already created?
>>>>
>>>> 2) Is it OK to simply discard retrasmissions (not forwarding or
>>>> replying them)?
>>>>
>>>> 3) How can I recognize retrasmissions? Is t_lookup_request() the
>>>> correct function for a test?
>>>>
>>>>
>>>> Thanks.
--
___________________________________________________
__
|- giannici at neomedia.it
|ederico Giannici http://www.neomedia.it
___________________________________________________
More information about the sr-users
mailing list