Message Limits
6.3 Internal Settings
Limit Unit Default Description
maximumContentSize integer
count 5242880
The maximum number of bytes allowed in the message body.
maximumHeaderCount integer
count 256
The maximum number of SIP header fields on a message.
maximumHeaderNameSize byte count 1024 The maximum number of bytes allowed for a header name.
maximumHeaderValueSize byte count 65537 The maximum number of bytes allowed for a header value.
maximumParameterCount integer
count 32
The maximum number of parameters allowed on a header field.
maximumWhitespaceSize byte count 1024 The maximum number of bytes allowed for white- space in a header field.
integer number. If the section is missing, the default specifies above is used.
Timers
The transaction layer uses timers to control their behaviour. These timers can be configured. This primary reason is to optomise the library to conditions experienced by your environment. The timers and the configuration names are shown in the following table:
<konneticSettings> <sip>
<messageLimits maximumHeaderCount="100" maximumHeaderNameSize="512" maximumHeaderValueSize="4000" maximumParameterCount="20" maximumWhiteSpaceSize="100"/>
</sip>
</konneticSettings>
Timer ConfigName Default
Value Description
T1 TimerT1 500ms
default RTT Estimate
T2 TimerT2 4s The maximum retransmit interval for non-INVITE requests and INVITE responses
T4 TimerT4 5s Maximum duration a message will remain in the network Timer A TimerA initially T1 INVITE transaction retransmit interval, for UDP only Timer B TimerB 64*T1 INVITE transaction timeout timer
Timer C TimerC > 3min Proxy INVITE transaction timeout Timer
D
TimerDUdp/ TimerDTcp
> 32s for
UDP Wait time for response 0s for TCP/SCTP retransmits Timer E TimerE initially T1 Generic INVITE transaction retransmit interval, UDP only Timer F Timer F 64*T1 Generic INVITE transaction timeout timer
Timer
The element name is timers. There are no attributes. The element contains child elements. Use the add element with an attribute named key to specify the timer name, and attribute value to add the default value in milliseconds. If the section is missing, the default value shown in the above table is used.
H TimerH 64*T1 Wait time for ACK receipt
Timer I TimerIUdp/
TimerITcp T4 for UDP Wait time for 0s for TCP/SCTP ACK retransmits
Timer J TimerJUdp/ TimerTcp
64*T1 for
UDP Wait time for 0s for TCP/SCTP non-INVITE request retransmits Timer
K
TimerKUdp/
TimerKTcp T4 for UDP Wait time for 0s for TCP/SCTP response retransmits
<konneticSettings> <sip>
<timers>
<add key="TimerT2" value="600"/> </timers>
</sip>
Introduction
SipCore is an aggregate component which acts as a facade providing simplified views over the more complex but more powerful factored types, such as the HttpDigestAuthenticationManager,
SipTransportLayer, SipTransactionStateManager and incoming and outgoing message processors which deal with parsing, Via header handling, address resolution, updating of state,
and transmission management.
This section deals with the basics necessary to write an application using the SIP library and the SipCore object, including:
Creation Destruction Event Processing Sending Messages Listening for Messages Configuration
7.1.1 Creation
Before performing any SIP-related activity, you must create and initialise a SipCore object. The SipCore performs the following:
Initialises a new SipTransportLayer object
Initialises a new SipTransactionStateManager object.
Initialises a new HttpDigestClientAuthenticationManager object. Parses any application configuration.
Validates the license.
Deserializes the SipConfiguration object.
7
Working with the SipCore
7.1.2 Disposal
The SipCore object exposes a finalizer method. The Finaliser thread will initiate a disposal of all messages, transactions and listeners created using the SipCore object.
7.1.3 Properties
LocalAddressPort
Used by the MessageTransmitter to specify on the 'Via' header field which end point the application wants the returned messages to be sent to (the 'sentby' property). An application may wish to provide a fully qualified domain name or an internet addressable IP address. If empty the default local IP address is used.
ProxyServerCollection
Specifies a pre-existing route set for any outbound messages. The ProxyServerCollection property can be set by applications to force a particular route set for the message.
SecureProxyServerCollection
Specifies a pre-existing route set for any outbound secure messages using TLS. The
SecureProxyServerCollection property can be set by applications to force a particular route set for the message. Only SIPS addresses are allowed on the route-set for a secure message transmission.
TransportLayer
The SipTransportLayer which is managing the transmission of messages to and from the network on behalf of this SipCore.
SipTransactionState
The SipTransactionStateManager which is managing the transactional and dialog state on behalf of this SipCore.
ClientCertificates
TLS message transmission requires clients to provide a certificate to the server for mutual
C#: Initialise the SIP Library
using Konnetic.Signalling.Sip; ...
authentication. The ClientCertificates are copied directly to the SipTransportLayer.
MultiHeaderFormat
A value indicating whether the SIP library should seperate multiple-valued headers onto seperate lines where possible.
HeaderNameFormat
A value indicating whether the SIP library should use compact header field names by default.
SIP behavioural flag exposed as the Behaviour property of the SipCore object controls specific behaviour of the library and allow fine tuning of its functionality. The library can be directed to support RFC2543 style syntax, or use the Additional Headers stucture when querying DNS servers. The library can be made to frame messages off the network using a single NewLine as opposed to a CRLF combination. There are currently 10 behaviours specified.
Certain behaviours, such as framing on a single new line, are not recommend in production systems.