Re the SIP trace snippet below:
In the Via header of the BYE, port 5060 is specified for responses. However, Express Talk sent the OK to port 1372, which is where the BYE was sent from.
This is wrong per RFC 3261. Section 8.1.1.7 Via says:
"The Via header field indicates the transport used for the transaction
and identifies the location where the response is to be sent."
Furthermore, my SIP stack is not getting the OK, because it probably isn't receiving at that port. The result is that the call doesn't get terminated on the end that sent the BYE until after all the retransmissions and it gives up. Express Talk hangs up right away, however, as expected.
Has anyone else seen this?
Update: the same thing is happening with call setup attempts incoming to ET. It replies to the originating port not to the Via port!
----------------------------------------------------------------
10:35:52 UDP Packet Received from 192.168.1.146:1372 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
BYE sip:etruss@192.168.1.146:5070 SIP/2.0
From: <sip:sgruss@192.168.1.146:5060>;tag=ds-29-87409023
To: "Russ Express Talk" <sip:etruss@somewhere.com>;tag=8435
Contact: <sip:sgruss@192.168.1.146;transport=udp>
Call-ID: 1151947860-2088-aname@192.168.1.146
CSeq: 767 BYE
Content-Length: 0
Via: SIP/2.0/UDP 192.168.1.146:5060;branch=z9hG4bK8e0e6dfa-10ea-11db-8d26-dae6ca061596
Max-Forwards: 70
----------------------------------------------------------------
10:35:52 UDP Packet Sent to 192.168.1.146:1372 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.1.146:5060;branch=z9hG4bK8e0e6dfa-10ea-11db-8d26-dae6ca061596
To: "Russ Express Talk" <sip:etruss@somewhere.com>;tag=8435
From: <sip:sgruss@192.168.1.146:5060>;tag=ds-29-87409023
Call-ID: 1151947860-2088-aname@192.168.1.146
CSeq: 767 BYE
User-Agent: Express Talk 2.02
Content-Length: 0