Session Initiation Protocol (SIP)


DC-SIP is a robust, high function, flexible, portable Session Initiation Protocol (SIP) toolkit, which addresses the requirements of carrier-grade equipment manufacturers for a SIP toolkit with high reliability, performance and scalability. The DC-SIP product provides OEMs with a quick and easy way to build SIP devices for

  • scalable SIP servers managing SIP traffic within a network, providing location, proxy, authentication and authorization services
  • call control functions in an IMS environment including P/S/I-CSCF, IBCF, and BGCF
  • intelligent end-point applications, such as IP phones and universal messaging systems
  • gateways between heterogeneous networks, such as IADs and Trunking Gateways
  • Softswitches and Call Agents, both for backbone signaling and residential gateway signaling
  • SIP enabled Application Servers.

IMS Enabled

DC-SIP is an essential part of Metaswitch's family of IMS Enabled solutions which include DC-SBC (P-CSCF, IBCF, BGF/I-BGF), and DC-Megaco/H.248, which all support the required IETF, ITU, 3GPP and ETSI TISPAN standards. DC-SIP IMS related features/support include

  • IPv6
  • ENUM
  • SigComp
  • P-Headers
  • Session timer
  • MD5-AKA
  • IPSec

The DC-SIP Features section below lists the most important features of the DC-SIP toolkit and supported SIP RFCs and drafts. For an introduction to the SIP protocol and its uses, follow the link to the SIP Protocol page. For more information about the DC-SIP architecture and interfaces, see the DC-SIP Architecture page.

DC-SIP is a full featured and rich toolkit. It supports both IPv4 and IPv6, and consists of a core protocol implementation, a set of quick start reference applications, test applications and detailed documentation. An OEM can use the product to

  • SIP-enable applications using the provided interfaces to the DC-SIP software
  • configure DC-SIP to run as a self-contained SIP proxy server.

The DC-SIP stack runs within Metaswitch's portable, non-blocking, message passing execution environment, the N-BASE, which facilitates flexible distribution of product components across a wide range of hardware configurations from DSPs to line cards to specialized signaling processors. Combined with Metaswitch's High Availability Framework, this provides the performance, scalability and reliability required for the most demanding applications.

Field Proven Technology

DC-SIP has been shipping since 2001 and is widely deployed and field-hardened in a broad variety of VoIP devices – from end-points to high-end application servers. Public customers include Juniper, Lucent, Mitel, Siemens, and Tellme – where at Tellme DC-SIP is handling more than 1 billion calls/year.

In addition, DC-SIP has been extensively tested against a wide range of other SIP equipment at SIPit interoperability events since 2001.


Metaswitch offers a reduced footprint version of DC-SIP called DC-SIP Lite. DC-SIP Lite has been optimized for smaller devices with footprint limitations including mobile devices, IP phones and soft phones.

DC-SIP Architecture

The DC-SIP architecture has been designed to provide optimum performance, scalability and redundancy. The modular architecture (in combination with the N-BASE environment) provides

  • fast data transfer between processes, in the original memory buffers to avoid data copying on the mainline path
  • distribution: the ability to run multiple DC-SIP instances distributed to multiple threads in an SMP environment (to provide workload balancing), or to multiple hardware locations such as centralized processor cards and line-cards
  • multiple threading models: the ability to run DC-SIP components in a single thread, as multiple threads within one process, as multiple threads in multiple processors, or as multiple threads across multiple processors (for example in a multicore environment).
  • high-availability/redundancy: the ability to replicate key state information (in conjunction with the High Availability Framework), allowing non-disruptive fail-over of DC-SIP components (maintaining existing calls) on hardware or software error
  • non-blocking design: independent flow control of individual transport connections and transactions prevents blocked transactions and connections from affecting unrelated transactions
  • workload prioritization: flexible and dynamically configurable prioritization of work within the system.

DC-SIP provides a sophisticated hybrid multi-level API model whereby applications can defer the bulk of protocol handling and parsing to the DC-SIP Call Control and Message Helper libraries, or can progressively take responsibility for protocol state and message management. This means that OEMS can get applications up and running with minimum development, while can also add value in those areas where they need to.

The DC-SIP software has been designed so that it can easily be extended to accommodate the continuing evolution of the SIP protocol. The design provides extensive facilities to enable protocol extensions to be incorporated both by the customer and by Metaswitch. These extensions may include new message headers, transport protocols, encryption or authentication algorithms, methods or body types.

DC-SIP Features

The following list summarizes the features supported in the DC-SIP stack.

  • SIP User Agent and Back-to-back User Agent (B2BUA)
  • Stateful and stateless Proxy Server
  • Redirect Server
  • Registrar
  • High Availability (HA)
  • High and low level C and C++ APIs, and asynchronous message-based APIs
  • IPv4 and IPv6 support
  • Support for the following RFCs and drafts
    • SIP (RFC 3261 and RFC 3263)
    • Reliable provisional responses (RFC 3262)
    • SIP-Specific Event Notification - SUBSCRIBE / NOTIFY (RFC 3265)
    • SIP Extension for Instant Messaging - MESSAGE (RFC 3428)
    • SDP (RFC 2327)
    • INFO (RFC 2976)
    • MIME
    • REFER (RFC 3515) and Replaces header
    • AKA (RFC 3310)
    • Sigcomp (RFC 3320)
    • UPDATE (RFC 3311)
    • Symmetric response routing (RFC 3581)
    • tel, URI (RFC 3966)
    • Session timer (RFC 4028)
    • Persistent connections
    • Connection reuse
    • ENUM (RFC 3761 and RFC 3764)
    • Session timer (RFC 4028)
    • Non-INVITE Transaction Issues (RFC 4320)
    • Connected Identity (RFC 4916)
    • Overlap Signalling (RFC 3578)
    • Multiple Dialog Usages (RFC 5057)
    • Client Initiated Connections (RFC 5626)
  • Extensible, modular architecture allowing both standard and customer-specific protocol extensions
  • Open transport interface to reliable and unreliable transports, with intelligent connection reuse and pre-integrated support for UDP, TCP, TLS, and SCTP
  • Open authentication interface to allow easy implementation of different security algorithms, including AKA
  • Open name resolution interface with pre-integrated support for DNS
  • Fully portable code, with pre-integrated examples for Windows, Solaris, Linux, OSE, and VxWorks, allows easy implementation on all operating systems
  • Flexible configuration allows the behavior to be controlled dynamically - this includes deciding whether to proxy a request, or to pass it to a local application
  • User and system configuration information accessible through a generic subscriber database interface with local caching to optimize performance
  • MIBs for management integration with SNMP, GUI, or CLI interfaces
  • Non-blocking design to ensure that a single blocked connection or transaction does not disable other transactions or connections in the system
  • Extremely scalable design supporting symmetric multiprocessing and allowing components to be distributed onto separate physical devices
  • Full call-state replication to enable failover to a backup instance of the DC-SIP stack with no loss of active calls
  • Extensive reference applications, including a script or command line driven UA and a bulk call generator for load testing.