# sipcon.h File Reference

`#include <opal/buildopts.h>`
`#include <rtp/rtpconn.h>`
`#include <sip/sippdu.h>`
`#include <sip/handlers.h>`

Include dependency graph for sipcon.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Data Structures

class | SIPConnection
struct | SIPConnection::Init

## Defines

#define | OPAL_OPT_FORWARD_REFER "Forward-Refer"
#define | OPAL_OPT_REFER_SUB "Refer-Sub"
#define | OPAL_OPT_PRACK_MODE "PRACK-Mode"
#define | OPAL_OPT_INITIAL_OFFER "Initial-Offer"
#define | OPAL_OPT_SYMMETRIC_HOLD_PRODUCT "Symmetric-Hold-Product"
#define | OPAL_OPT_ALLOW_EARLY_REPLACE "Allow-Early-Replace"
#define | OPAL_OPT_EXTERNAL_SDP "External-SDP"
#define | SIP_HEADER_PREFIX "SIP-Header:"
#define | SIP_HEADER_REPLACES SIP_HEADER_PREFIX"Replaces"
#define | SIP_HEADER_REFERRED_BY SIP_HEADER_PREFIX"Referred-By"
#define | SIP_HEADER_CONTACT SIP_HEADER_PREFIX"Contact"
#define | OPAL_SIP_REFERRED_CONNECTION "Referred-Connection"

## Define Documentation

#define OPAL_OPT_ALLOW_EARLY_REPLACE "Allow-Early-Replace"

Allow INVITE with Replaces to operate on "early" dialog. While RFC 3891 explicitly forbids and incoming INVITE with Replaces to replace a call which was incoming to the UA. It is allowed for a dialog originated by the UA receiving the INVITE with Replace, but not for ones where it is "ringing". Unfortunately, some systems (*cough Cisco) do it anyway. This option allows the replacement and dows not send the 481 response as required by the specification.

Defaults to false.

#define OPAL_OPT_EXTERNAL_SDP "External-SDP"

OpalConnection::StringOption key to a string representing the precise SDP to be included in the INVITE offer. No media streams are opened or any checks whstsoever made on the string. It is simply included as the body of the INVITE.

Note this options presence also prevents handling of the response SDP

Defaults to empty string which generates SDP from available media formats and media streams.

#define OPAL_OPT_FORWARD_REFER "Forward-Refer"

OpalConnection::StringOption key to a boolean indicating that call deflection/forwarding should use REFER rather tha 302 response. Default false.

#define OPAL_OPT_INITIAL_OFFER "Initial-Offer"

OpalConnection::StringOption key to a boolean indicating that we should make initial SDP offer. Default true.

#define OPAL_OPT_PRACK_MODE "PRACK-Mode"

OpalConnection::StringOption key to an integer indicating the the mode for the reliable provisional response system. See PRACKMode for more information. Default is from SIPEndPoint::GetDefaultPRACKMode() which in turn defaults to e_prackSupported.

#define OPAL_OPT_REFER_SUB "Refer-Sub"

OpalConnection::StringOption key to a boolean indicating the the state of the "Refer-Sub" header in the REFER request. Default true.

#define OPAL_OPT_SYMMETRIC_HOLD_PRODUCT "Symmetric-Hold-Product"

OpalConnection::StringOption key to a string for a regular expression to match the product information, which if matching the remote system, will indicate the remote does not support asymmetric hold as required by the standard.

This fault is when SDP sendonly is sent (us putting them on hold), and they reply inactive, which implies them putting us on hold. When we subsequently send recvonly to release our hold to them, they continue to send inactive, and hold is never released.

Note the OpalProductInfo vendor, name & version strings are concatenated before comparison with the regular expression.

Defaults to empty string.

#define OPAL_SIP_REFERRED_CONNECTION "Referred-Connection"

#define SIP_HEADER_CONTACT SIP_HEADER_PREFIX"Contact"

#define SIP_HEADER_PREFIX "SIP-Header:"

#define SIP_HEADER_REFERRED_BY SIP_HEADER_PREFIX"Referred-By"

#define SIP_HEADER_REPLACES SIP_HEADER_PREFIX"Replaces"