SIP Module

Intro
Installation
SysAdmin
Network
Objects
Transfer
Access
Services 
LDAP 
SIP
PWD 
RADIUS 
SNMP 
Directory
Data Files
Clusters
WebApp
WebMail
Miscellaneous
HowTo
HelpMe
Licensing
The CommuniGate Pro SIP module provides the infrastructure for real-time communications, such as instant messaging, audio (IP telephony) and video communications and conferencing, shared whiteboards, and others. The module implements the SIP Internet protocols via IP networks.

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 may process the request itself and send a response back. This happens with protocol-only requests or requests that cannot be processed. In other cases, 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 relay a request to a different SIP device or 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 some Internet protocol, and to process the responses sent back.

SIP requests packet 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.

Registrar Services

The SIP module implements Registrar services. Users configure their SIP devices (IP phones, AV conferencing tools, Instant Messaging tools) to connect to the CommuniGate Pro SIP module when they go on-line. The SIP module registers the users by remembering the network (IP) addresses they use. Each user may have several registrations active if that user has several communication devices in the on-line mode (the office IP Phone, the desktop computer, the instant messaging program on a laptop). Registrations allow SIP users to communicate with each other without the knowledge of the network addresses being used, using just the "SIP identificators".

SIP identificators have the same form as E-mail addresses: username@domainName. In the CommuniGate Pro system, the user SIP identificator is the name of the user Account, so the user SIP identificator name is the same as the user E-mail address.

The SIP Module uses the CommuniGate Pro Router mechanism to process all SIP identificators. As a result, all CommuniGate Pro Aliases, Forwarders, and Router records are available for SIP communications, too.

The SIP Module allows users to initiate sessions (phone calls, chats, etc.) with other SIP users within the same CommuniGate Pro Domain, with users of other Domains on the same server, or with SIP users served by other, remote SIP servers.

When a SIP session is being initiated, a caller SIP client program (or UA - user agent program) sends a request to the SIP server with the SIP identificator of the callee. The SIP server checks the identificator, and if it is served by a remote SIP server, relays (proxies) the request to that remote server. If the SIP identificator belongs to a local user, the SIP server retrieves the active registration for that user and relays the request to the callee UA.
If the callee accepts the request, the callee UA sends the response back to the server, and the server relays it back to the caller UA. As a result, both caller and callee learn their actual network addresses, and they now establish the negotiates communication link (audio, video, etc.) directly, bypassing the SIP server.

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.

Certain SIP operations (such as registration) require user authentication. All CommuniGate Pro Account passwords can be used for authenitcation. The BASIC, DIGEST, and NTLM authentication methods are supported.


Configuring the SIP module

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.

Log:

Use the Log setting to specify what kind of information the SIP 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. But 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 protocol-level or link-level 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 records in the System Log are marked with the following tags:

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

Transport
UDPlistener
Request Size LimitLAN:
WAN:

TCPlistener
Input Channels:
Idle Timeout:

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.
Authentication
Advertise Digest AUTH Minimal Registration:
Advertise NTLM AUTH 

Advertise Digest AUTH
Select this option to inform SIP clients that the standard DIGEST authentication method is supported.

Advertise Digest NTLM
Select this option to inform SIP clients that the non-standard NTLM authentication method is supported.

Minimal Registration
Select this option to specify the minimal allowed Registration time. SIP clients trying to register themselves with a shorter expiration period will get an error message specifying the correct minimal time, so the clients can automatically extend their registration expiration periods.
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

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.


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 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.


External Gateway

You may want to use your CommuniGate Pro Server with an external SIP Gateway. Those gateways require authentication. Then they can be used to relay calls to the public telephony network (PSTN) and to relay PSTN calls to your Server.

Use the External Gateway panel to specify the gateway settings:

External PSTN Gateway
Gateway Domain:
Registration Username:Registration Password:
Contact:Register every:

Gateway Domain
Use this setting to specify the address of the external gateway. This name is used as the domain name for the REGISTER requests.

Registration Username and Password
Use these settings to specify authentication name and password to use with the External Gateway.

Contact
Use this setting to specify the address of to be registered with the External Gateway. When a PSTN call comes in, the Gateway sends it to this address.

Register every
Use this setting to specify how often the SIP Module should send REGISTER commands to the External Gateway.

In order to send SIP requests to the External Gateway, you need to specify Router records. For example, if you want to send all SIP requests to 011some_number (and 011some_number@main_domain to the external gateway, use the following Router record:

Live:<011*> = 011*@sip.provider.dom

You may want to use 9 as a prefix for gateway calls. Use the following Router record:

Live:<9*> = 011*@sip.provider.dom


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