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(a)neomedia.it
|ederico Giannici
http://www.neomedia.it
___________________________________________________