> I guess you are forwarding the INVITE to the
gateway using t_relay.
> Thus, you forward statefully by creating a transaction inside openser's
> tm module. Thus, for the transaction to complete, the tm module also has
> to see the ACK. Thus, you have to t_relay the ACK too.
Thanks Klaus, that's what I've been doing. The thing that prompted me
to email was a Grandstream phone that about 80% of the time will cause
openser1.1.0 to go in a loop, blasting the ACK around internally,
coming in the top of route[0] and subsequently being t_relayed() until
I get too many hops.
This is all internal, no packets are generated on the ethernet
interface.
I've looked at the ACK the Grandstream sends back and compared it
to the ACK I get from a Linksys and they are almost identical.
The only difference is the Linksys puts the port number on the
ACK and To: like this:
ACK sip:18005551212@openser.example.com:5060 SIP/2.0
To: <sip:18005551212@openser.example.com:5060>;tag=foo-9235
while the Grandstream doesn't mention the port:
ACK sip:18005551212@openser.example.com SIP/2.0
To: <sip:18005551212@openser.example.com>;tag=foo-055c
Even if the solution is to upgrade to 1.2.0 (which I'm going to do),
if this was a known problem then I'ld appreciate hearing that.
Thanks,
-mark