RFC 5626 describes a feature that lets a SIP client initiate a persistent SIP connection to a SIP proxy server on the other side of a firewall/NAT
Using Keep-Alives and Detecting Flow Failure, the connection is kept open and the proxy is able to route incoming SIP messages over the connection created by the client.
The SIP RA has been enhanced to support this RFC (reg-id, instance-id. and CRLF keep-alive). This page describes how to use and configure this behaviour.
Procedures at the client (outgoing connections)
At the client, this feature performs these procedures:
-
On receipt of REGISTER response, check for
Flow-Timerheader andRequire: outboundheader. -
If
Flow-Timeris set, send PINGs every 0.8-1.0*Flow-Timer seconds. -
If
Flow-Timeris not set, send PINGs at the client’s discretion. -
If
Require: outboundis set, expect to receive a PONG within 10s of each PING. If this PONG is not received, close the connection. -
If
Require: outboundis not set, do not expect to receive a PONG within 10s of each PING; and do not close connections if the PONG is not received.
Procedure at the server (incoming connections)
At the server, this feature performs these procedures:
|
|
The SBB processing the REGISTER request is responsible for setting the
For example:
|
-
In the RA, if a
Flow-Timerheader is set, start a timer forFlow-Timer + 1snetwork delay allowance; and close the connection if a PING is not received before the timer expires. -
If the
Flow-Timerheader is not set, don’t start a timer to receive PING; and don’t close the connection. -
Receive PING from the client.
-
Send PONG back to the client.
-
If
Flow-Timeris set, start a new timer forFlow-Timer + network delay allowanceon receipt of each PING from the client; and close the connection if another PING is not received before the timer expires.
SIP properties
The following SIP properties (sip.properties) must be set to
alter the default persistent outbound connection behaviour.
| Property | What it specifies | Valuesdefault |
|---|---|---|
|
The wait time between client expected PING attempts. If there is no
response (PING) within the specified time (in seconds), then the
connection will be closed. A value of |
time in seconds |
System Properties
The following JVM system properties must be set to alter the behaviour between RFC 5626 and draft-ietf-sip-outbound-03.
| Property | What it specifies | Valuesdefault |
|---|---|---|
|
Switch connection behaviour between RFC 5626 and draft-ietf-sip-outbound-03. |
draft03 |
