SIP servers accept SIP requests and respond to them. A SIP server is an application that may act on the behalf of a SIP client or user agent (UA) or may provide information or direction to a UA. There are several types of SIP servers including proxy, redirect, and registration.
A proxy server acts on behalf of a UA or even another proxy. The proxy’s purpose is to facilitate a connection between UAs to establish a session for VoIP or other activity. A proxy does not originate SIP requests. It forwards requests and responses received from one UA or another proxy on to another proxy or UA. A proxy does not interpret a SIP message, only pass it on to the next link in the chain. It will access other servers, e.g. DNS or other MIB, to get routing information for the next proxy server or the endpoint UA. In so doing, the proxy will modify message header information to update source and destination as the message is propagated from the originating UA through one or more proxy servers and ultimately to the endpoint UA.
A proxy may be either a stateless or stateful server. Stateless proxies process a SIP request and respond accordingly. No information is retained regarding the source, destination, or anything pertaining to the message contents. By definition, a stateless proxy cannot retransmit messages since it has no information of previous dialogs. Stateful proxies, on the other hand, monitor message transactions and use timers to initiate a message retransmit or other action indicate by the current state. Normally, a stateful proxy responds to a SIP request with 100 Trying back to the sender.
Unlike a proxy server, the redirect server responds to SIP requests but does not forward these requests to another server or UA. Like a proxy, the redirect server can use DNS or other MIB to get user information to provide to the requestor.
A registration or registrar server accepts requests from a UA to register an address of record with the server. The server records the address of record along with the device URI so that requests form another UA can be routed to the URI. Typically the server will require UA authentication using TLS to prevent unauthorized or malicious users from redirecting another user’s contact information to theirs.
A Presence Server accepts SUBSCRIBE (RFC 6665) requests from a SIP UA for subscribing to an event specific to SIP (in this case, presence) and send notifications in an asynchronous fashion. It is an entity that can either act as a Presence Agent (PA) or as a proxy server to PA. When acting as a PA, it is aware of the presence information of the presentity through some protocol means, such as, PUBLISH (RFC 3903). Otherwise, when acting as a proxy server, it forwards SUBSCRIBE requests to another entity that may act as a PA.
VOCAL’s embedded libraries include a complete range of ETSI / ITU / IEEE compliant algorithms, in addition to many other standard and proprietary algorithms. Our SIP source code is optimized for execution on ANSI C and leading DSP architectures from TI, ADI, AMD, Intel, ARM, MIPS, and other vendors. The SIP software libraries are modular and can be executed as a single task under a variety of operating systems or standalone with its own microkernel.