[sr-dev] problem with locally generated ACKs
Andrei Pelinescu-Onciul
andrei at iptel.org
Sat Dec 19 11:20:08 CET 2009
On Dec 18, 2009 at 15:01, Juha Heinanen <jh at tutpro.com> wrote:
> Andrei Pelinescu-Onciul writes:
>
> > Right now the only way to solve this without code changes is to add
> > another hop (e.g. route the message once through localhost or another
> > proxy and fix the contact there).
>
> andrei,
>
> this used to work fine in k, so i would don't like the idea about
> changing the script, especially when the change would not be trivial.
After looking at the code, I doubt it used to work in k. k still sends
an ACK based on the reply contact and the final replies are processed
before the reply route is executed (same as in sr).
>
> > With coding changes I see 2 possible workarounds:
> > 1. add a param. for using the local INVITE dst. when generating the ACK
> > (instead of obeying the rfc) (easy)
>
> where would that param be added?
tm global param, e.g. modparam("tm", "local_200_ack_send_mode", 1).
> can't the param be set automatically
> when invite is issued by tm.t_uac_wait?
That would complicate things. We would need another flags and we would
need to chande t_uac_wait to take another param.
>
> > 2. add a t_reply_fake_contact() command for changing the contact seen by
> > tm and maybe modifiying fix_nated_contact() to use it.
>
> if t_reply_fake_contact() is implemented, why can't i just call that
> function in onreply_route instead of fix_nated_contact()?
In this case we would need to copy fix_nated_contact() into
t_reply_fake_contact().
Andrei
More information about the sr-dev
mailing list