Bug ID 585639: SIP rport value not set in the BIG-IP system response to client RFC 3581

Last Modified: Sep 13, 2023

Affected Product(s):
BIG-IP CGN(all modules)

Known Affected Versions:
11.6.0, 11.6.1, 11.6.2, 11.6.3, 11.6.3.1, 11.6.3.2, 11.6.3.3, 11.6.3.4, 11.6.4, 11.6.5, 11.6.5.1, 11.6.5.2, 11.6.5.3, 12.0.0, 12.0.0 HF1, 12.1.0 HF1, 12.0.0 HF2, 12.1.0 HF2, 12.0.0 HF3, 12.0.0 HF4, 12.1.1 HF1, 12.1.1 HF2, 12.1.2 HF1, 12.1.2 HF2, 12.1.0, 12.1.1, 12.1.2, 12.1.3, 12.1.3.1, 12.1.3.2, 12.1.3.3, 12.1.3.4, 12.1.3.5, 12.1.3.6, 12.1.3.7, 12.1.4, 12.1.4.1, 12.1.5, 12.1.5.1, 12.1.5.2, 12.1.5.3, 12.1.6

Fixed In:
13.0.0

Opened: Apr 06, 2016

Severity: 3-Major

Symptoms

Session Initiation Protocol (SIP) rport value not set in the BIG-IP system response to client.

Impact

No rport value in the client response. SIP client/server or peer/peer communications do not work as expected. Connections might fail.

Conditions

Enabling SIP Via header insertion on the BIG-IP system on SIP MBLB profile or SIP MRF profile and client requests has Via header with rport set. RFC 3581 defines functionality of the rport parameter to request that the server send the response back to the source IP address and port from which the request originated.

Workaround

Use an iRule similar to the following to insert the rport value into the header when client requests it: when SIP_REQUEST { set topvia [SIP::via 0] set replaceval ";rport=[UDP::remote_port];" if { $topvia contains ";rport;" } { set newtop [string map ";rport; $replaceval" $topvia] SIP::header insert Via $newtop 0 SIP::header remove Via 1 } }

Fix Information

Session Initiation Protocol (SIP) rport value is now set as expected in the BIG-IP system response to client, as defined in RFC 3581.

Behavior Change

Guides & references

K10134038: F5 Bug Tracker Filter Names and Tips