SIP Module

Intro
Installation
SysAdmin
Network
Objects
Transfer
Access
RealTime 
SIP
Services
Directory
Clusters
WebApp
WebMail
Miscellaneous
HowTo
HelpMe
Licensing
The CommuniGate Pro SIP module implements the SIP Internet protocols via IP networks.

The module is used to receive Signal Requests from remote entities, and to send Signals to remote entities.

The SIP protocol does not include the protocols required for actual data transfer (media transfer protocols). Instead, it allows all participating parties to find each other on the network, to negotiate the media transfer protocol(s) and protocol parameters, establish the interactive real-time sessions, and to manage those sessions (add new parties, close sessions, update session parameters, etc.).

Session Initiation Protocol (SIP)

The CommuniGate Pro SIP Module implements the SIP protocol functionality. The module uses TCP and UDP listeners to receive SIP request and response packets via these network protocols. It also sends the response and request packets via the TCP and UDP network protocols.

The SIP module parses all received SIP packets, and uses the module subcomponents to process the parsed packets. Request packets are submitted to the SIP Server subcomponent, to a new SIP Server transaction or to an existing one.
The SIP Server component uses the Signal Module to process the request. The responses generated with the Signal module are submitted to the SIP Server transaction, and the SIP Server sends them back to the source of the SIP request.

The Signal module can send a Request to a different SIP device or a SIP server. The module uses the SIP Client subcomponent to create a SIP Client transaction. This transaction is used to send a SIP Request via an Internet protocol, and to process the Responses sent back.

SIP Request packets received with the SIP Module are submitted to the SIP Server subcomponent, while SIP Response packets are submitted to the SIP Client subcomponent, with two exceptions:

The CommuniGate Pro SIP module supports UDP and TCP communications, and it also supports secure (TLS) communications over the TCP protocol.

The CommuniGate Pro SIP module supports near-end and far-end NAT traversal, enabling SIP communications for both large corporations with many internal LANs, as well as for home users connecting to the Internet via "dumb" NAT devices.

The session initiation schema described above works correctly only if both parties can communicate directly. If there is a firewall or a NAT device between the parties, direct communication is not possible. In this case, the CommuniGate Pro SIP module builds and manages the necessary media proxies, relaying not only the SIP protocol requests and responses, but the actual media data, too.


SIP Transport Settings

To configure the SIP module, use a Web browser to connect to the CommuniGate Pro Server WebAdmin Interface, and open the SIP page in the Settings realm.
To configure the SIP module, you should have the Can Modify Settings access right.

The Transport panel allows you to configure the network-level options:

TransportLog:
UDPlistener Request Size LimitLAN:
WAN:

TCPlistener Input Channels:
Idle Timeout:

Log
Use this setting to specify the type of information about SIP packets and SP transport the module should put in the Server Log. Usually you should use the Failure (unrecoverable problems only), Major (session establishment reports), or Problems (failures, session establishment and non-fatal errors) levels. When you experience problems with the SIP module, you may want to set the Log Level setting to Low-Level or All Info: in this case the packet contents and other details will be recorded in the System Log. When the problem is solved, set the Log Level setting to its regular value, otherwise your System Log files will grow in size very quickly.
The SIP module transport records in the System Log are marked with the SIPDATA tag. Generic SIP information records have the SIP tag.

UDP
To configure the UDP transport, click the UDP listener link. The UDP Listener page will open. By default, the SIP UDP port is 5060.

Request Size Limit
Use this option to specify the size for the largest UDP packet that can be sent withing your LAN and outside your LAN. If the SIP module needs to deliver a packet and the protocol is not explictily specified, the SIP module uses the UDP protocol, unless the packet size is larger than the specified limit. In the latter case the TCP protocol is used.

TCP
To configure the TCP transport, click the TCP listener link. The TCP Listener page will open. There you can specify both secure and clear-text TCP ports. By default, the clear-text SIP TCP port is 5060, and the SIP TLS port is 5061.

Input Channels
Use this option to specify the maximum number of TCP communication channels the module can open. If the number is exceeded, the module will reject new incoming TCP connections.

Idle Timeout
Use this option to specify when the SIP module should close a TCP communication channel if there is no activity on that channel. This helps to reduce the resources used for TCP communication channels on large installations. On the other hand, some SIP clients may not function properly if the server closes its TCP connection on a time-out.

Transaction Settings

You can specify how the SIP Module handles SIP server and client transactions.
Server Transactions
Log:
Limit:
Processors:

Log
Use the Log setting to specify what kind of information the SIP Server subcomponent should put in the Server Log. Usually you should use the Failure (unrecoverable problems only), Major (session establishment reports), or Problems (failures, session establishment and non-fatal errors) levels.
The SIP Server subcomponent records in the System Log are marked with the SIPS tag.

Limits
Use these settings to specify the maximum number of concurrent server transactions the SIP Module is allowed to handle.
Processors
Use this setting to specify the number of threads used to process SIP Server transactions.
Client Transactions
Log:
Limit:
Processors:
Dialogs: Force Relaying
Relay: via:

Log
Use the Log setting to specify what kind of information the SIP Client subcomponent should put in the Server Log. Usually you should use the Failure (unrecoverable problems only), Major (session establishment reports), or Problems (failures, session establishment and non-fatal errors) levels.
The SIP Client subcomponent records in the System Log are marked with the SIPC tag.

Limits
Use these settings to specify the maximum number of concurrent client transactions the SIP Module is allowed to handle.

Processors
Use this setting to specify the number of threads used to process SIP Client transactions.

Force Relaying
If this option is disabled, the SIP Module introduces itself only into the SIP dialogs that require its participation (such as those traversing your NAT/Firewall). If this option is enabled, the SIP module introduces itself into all SIP dialogs opened. This feature can be used for troubleshooting, as all details of dialog transactions are recorded in the Server Log.

Relay
Enable this option if you want to relay all outgoing packets via some external SIP server. Note that this setting is not used for addresses explictly routed to external hosts using the .via suffix or other routing methods.


Media Stream Proxy

CommuniGate Pro supports automatic "NAT traversal" for the standard-based real-time communications.

The CommuniGate Pro SIP Module detects the session initiation requests that are sent from one side of NAT to the other side (a request from a LAN client to a party on the Internet/WAN and vice versa). In this case, the Server assigns a local server port (or a pair of ports, depending on the protocol) to a media stream proxy. The Server then modifies the session initiation request to direct the traffic from both sides to that proxy, which relays the data between the "LAN leg" and the "WAN leg" of the media connection.

The CommuniGate Pro SIP Module detects "media loops", when a call placed from within LAN is proxied to WAN, and then proxied back to the same LAN. In this case the Media Proxies are removed, eliminating unnecessary overhead, and allowing SIP clients to communicate directly within one LAN, while proving registrar services outside that LAN.

The CommuniGate Pro SIP Module detects session re-INVITE requests as well as BYE requests and update and removes the session proxies accordingly. The time-out mechanism is used to remove "abandoned" media proxies.

The CommuniGate Pro provides NAT proxy services for:

If you need the Media Stream Proxy functionality, make sure that the LAN and NAT data is specified correctly on the LAN IPs settings page.


Microsoft® Windows Messenger Support

The Windows Messenger client uses the standard SIP protocol for audio and video sessions. It uses the proprietary SIP protocol extensions for its Instant Messaging, Whiteboard, Remote Assistance and other services. CommuniGate Pro implements the extensions required to support these applications.

The Windows Messenger versions prior to 5.0 are not supported.

The CommuniGate Pro SIP module should have the Advertise NTLM option enabled.

The Windows Messenger audio and video sessions use standard RTP media protocols and these sessions can be used over a NAT/Firewall.
The Windows Messenger Instant Messaging uses the SIP protocol for media transfer and Instant Messaging sessions can be used over a NAT/Firewall.
The Windows Messenger Whiteboard, Application Sharing, and Remote Assistance sessions use T.120 and non-standard protocols and these sessions can be used over a NAT/Firewall.
The Windows Messenger File Transfer sessions use a non-standard protocol and these sessions currently cannot be used over a NAT/Firewall.


SIP Clients Support

Many SIP clients available on the market incorrectly implement various aspects of the SIP protcool. The CommuniGate Pro SIP Module tries to compensate for certain client problems and bugs. The Stalker Web Site contains a periodically updated document that lists the tested SIP Clients, the discovered problems and the possible workarounds.


CommuniGate® Pro Guide. Copyright © 1998-2005, Stalker Software, Inc.