Please bear with me:
I have two SPA phones behind the same NATd router (i.e. the same public IP) - Phone A and Phone B. Phone A calls Phone B. I (my switch) am trying to detect this condition and, upon receipt of the ACK from Phone A to complete call setup, I (the switch) am attempting to issue 2 ReINVITEs (bumping the CSeq by 1), one to each Phone giving the others private LAN side IP / Port. [So this is almost like an Asterisk CTI call where it attempts to take itself out of the media path with a pair of ReINVITEs - the difference being that in CTI case, i'ts totally symmetrical - Asterisk sends the initial INVITEs to each phone, as well as the ReINVITEs] And it works - I get a good 200 OK from each end which I ACK, and media flows internally without going up and down the same ADSL line. The problem comes when one end issues a BYE. Say Phone A hangs up after a successful call. It is sending the same from and to header in its BYE - which means I must have upset it somehow with the ReINVITE. I have tried reversing the from and to headers (which are different and the same as those in the original INVITE) I send in the ReINVITE to Phone A, but it continues to produce the same tags in the BYE which I assume is causing the 500 Server Error I consistently see at Phone B. After exhausting all my options, I am left wondering if what I am doing is even legal. Does anyone have any thoughts on where I could look next? There's nothing in the syslog, but it's obviously something I've done in the ReINVITE that upset Phone A. Thanks for any help. Simon. P.S. It does not work if Phone B hangs up either. _______________________________________________ Sip-implementors mailing list [email protected] https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors
