1. Brekeke Product Name and Version:
Brekeke SIP Server 3.8.6.4/501
2. Java version:
Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 10.0.1
3. OS type and the version:
CentOS Linux release 7.5.1804 (Core) kernel 3.10.0-862.14.4.el7.x86_64
4. UA (phone), gateway or other hardware/software involved:
Avaya Communication Manager
5. Your problem:
Avaya CM responds with 403 Forbidden Unknown Far-End when Brekeke re-uses an existing TCP session for the SIP INVITE.
Additional background information: We have 2 Brekeke SIP servers set up in a cluster. This issue is only observed happening from the cluster IP address, and only when reusing an existing TCP session, started from the Avaya.
The sequence is always:
1) Avaya opens TCP session to Brekeke SIP servers cluster IP, TCP port 5060.
2) Avaya sends SIP OPTIONS request.
3) Brekeke sends back 603 DECLINE.
4) The TCP session is left active.
5) The Brekeke receives a call request for the Avaya and sends a SIP INVITE over this active TCP session.
6) The Avaya responds with 403 Forbidden (Unknown Far-End).
7) The TCP session is left active. If time passes, the Avaya will send a TCP ACK to keep the session active.
8) The Brekeke responds to the Avaya keep alive ACK and then 5 seconds later sends FIN to end the session.
The 403 forbidden Unknown Far-End rejection from the Avaya is only observed AFTER there is an INVITE from the primary peer's IP, and then an additional INVITE is sent from the cluster IP on said pre-existing TCP session to the Avaya. For example:
Primary IP INVITE to Avaya on TCP 5060
Cluster IP INVITE to Avaya on ephemeral port (source port 5060, because it was already an existing session TO the Brekeke cluster IP).
Additionally, we have set the destination rules for INVITEs to the Avaya_IP:5060, yet this existing TCP session is still used (in addition to the INVITE send from the primary IP, to port 5060 on the Avaya.)
Is there a way to force the Brekeke servers to not reuse that existing TCP session from the Avaya?
Related Avaya documentation is Doc ID SOLN284625. Avaya recommends disabling TCP connection reuse and TCP keepalive. (Which is really funny, considering the connection begins with the Avaya, and the Avaya is also sending the TCP keepalive ACKs!)
Brekeke SIP Server 3.8.6.4/501
2. Java version:
Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 10.0.1
3. OS type and the version:
CentOS Linux release 7.5.1804 (Core) kernel 3.10.0-862.14.4.el7.x86_64
4. UA (phone), gateway or other hardware/software involved:
Avaya Communication Manager
5. Your problem:
Avaya CM responds with 403 Forbidden Unknown Far-End when Brekeke re-uses an existing TCP session for the SIP INVITE.
Additional background information: We have 2 Brekeke SIP servers set up in a cluster. This issue is only observed happening from the cluster IP address, and only when reusing an existing TCP session, started from the Avaya.
The sequence is always:
1) Avaya opens TCP session to Brekeke SIP servers cluster IP, TCP port 5060.
2) Avaya sends SIP OPTIONS request.
3) Brekeke sends back 603 DECLINE.
4) The TCP session is left active.
5) The Brekeke receives a call request for the Avaya and sends a SIP INVITE over this active TCP session.
6) The Avaya responds with 403 Forbidden (Unknown Far-End).
7) The TCP session is left active. If time passes, the Avaya will send a TCP ACK to keep the session active.
8) The Brekeke responds to the Avaya keep alive ACK and then 5 seconds later sends FIN to end the session.
The 403 forbidden Unknown Far-End rejection from the Avaya is only observed AFTER there is an INVITE from the primary peer's IP, and then an additional INVITE is sent from the cluster IP on said pre-existing TCP session to the Avaya. For example:
Primary IP INVITE to Avaya on TCP 5060
Cluster IP INVITE to Avaya on ephemeral port (source port 5060, because it was already an existing session TO the Brekeke cluster IP).
Additionally, we have set the destination rules for INVITEs to the Avaya_IP:5060, yet this existing TCP session is still used (in addition to the INVITE send from the primary IP, to port 5060 on the Avaya.)
Is there a way to force the Brekeke servers to not reuse that existing TCP session from the Avaya?
Related Avaya documentation is Doc ID SOLN284625. Avaya recommends disabling TCP connection reuse and TCP keepalive. (Which is really funny, considering the connection begins with the Avaya, and the Avaya is also sending the TCP keepalive ACKs!)