Dialogic Dialogic Global Call IP IP Phone User Manual


 
If the MIME memory pool is empty, or if the configured MIME buffer size is smaller than the
MIME body of an incoming SIP-T message, a GCEV_TASKFAIL event is sent to the application
with the reason set to IPEC_MIME_POOL_EMPTY or IPEC_MIME_BUFF_TOO_SMALL,
respectively. In addition, these error conditions also cause a response message with response code
486(Busy Here) to be sent to the remote UA. The current transaction will be terminated without
causing the state of the current call to change.
4.11 Specifying Transport for SIP Messages
When a virtual board is configured with default values in the IP_VIRTBOARD data structure, the
supported transport protocol for all SIP messages is UDP. Applications do not have the ability to
send messages using TCP, and incoming TCP messages are refused.
By setting non-default parameter values in the IP_VIRTBOARD before calling ,
applications can enable support of TCP as well as UDP. In addition to enabling overall TCP
support, the application can configure the board to use TCP as the default transport protocol, and
can set the persistence of TCP connections. See Section 4.1.2, “Configuring SIP Transport
Protocol”, on page 110, for details about the configuration process.
When TCP is enabled, incoming TCP messages are accepted, and if the application needs to
determine the transport protocol it can access the Request-URI in the Global Call event as
described in Section 4.9.6, “Retrieving SIP Message Header Fields”, on page 185. When
responding to a SIP request, the application does not need to specify TCP because the transport
parameter is already be present in the Request-URI.
SIP requests that are sent by the application outside of a SIP dialog (for example, INVITE,
SUBSCRIBE, or NOTIFY) normally use the default transport protocol, but the application can
override the default to send a specific request using the non-default protocol by setting a
“transport=” parameter in the Request-URI header field before the message is sent. If the default
transport is UDP, the relevant parameter string to override the default is “;transport=tcp”; if the
default transport is TCP, the relevant parameter string to override the default is “;transport=udp”.
Setting the transport for a specific SIP request requires that the SIP message information access
feature be enabled and uses the process described in Section 4.9.5, “Setting SIP Header Fields for
Outbound Messages”, on page 183. The following code lines illustrate how a Request-URI with
transport parameter would be inserted into the parameter block for the message to be sent.
sprintf(strReqURI, "sip:%s:%d;transport=tcp", strIPaddr, intPort);
gc_util_insert_parm_ref(&parmblkp,
IPSET_SIP_MSGINFO,
IPPARM_REQUEST_URI,
strlen(strReqURI),
strReqURI);
For SIP requests within a dialog (for example, INFO, NOTIFY, or REFER), there is no need to set
the transport protocol if the persistence configuration item in IP_VIRTBOARD is set to
ENUM_PERSISTENCE_TRANSACT_USER (the default value), because the existing TCP
connection will be used.
BYE requests are exceptions to the general TCP behavior in several respects. First, BYE requests
always make a new connection; an existing TCP connection is not used even if TCP is configured