SIP bridging over multiple interfaces

There are scenarios where you need OpenSIPS to route SIP traffic across more than one IP interface. Such a typical scenario is where OpenSIPS is required to perform bridging. The bridging may be between different IP networks (like public versus private, IPv4 versus IPv6) or between different transport protocols for SIP (like UDP versus TCP … Continue reading SIP bridging over multiple interfaces

Handling SIP Redirect Requests in realtime

The SIP redirect mechanism is a simple and straight forward one  - the originally contacted destination indicates, via a 3xx reply, that a different set of destinations should be contacted. The SIP redirect is mainly used for calls (for INVITE requests), even if the RFC3261 does not limit it to that. Usage cases The primary … Continue reading Handling SIP Redirect Requests in realtime

Troubleshooting missing ACK in SIP

We all experienced calls getting self disconnected after 5-10 seconds - usually disconnected by the callee side via a BYE request - but a BYE which was not triggered by the party behind the phone, but by the SIP stack/layer itself. This is one of the most common issues we get in SIP and one … Continue reading Troubleshooting missing ACK in SIP

SIP-I and SIP with OpenSIPS 2.3

SIP-I considerations The SS7 interconnections are always painful. Both as cost and technical difficulty/complexity. So, as a more accessible alternative, the carriers started to offer SIP interconnection via SIP-I (SIP Infrastructure). SIP-I  or SIP Infrastructure (define by ITU) is very similar to SIP-T or SIP for Telephones (defined by IEFT). SIP-I is very powerful when … Continue reading SIP-I and SIP with OpenSIPS 2.3

Migrating registrations to OpenSIPS 2.2

Starting with OpenSIPS 2.2 the registered SIP contacts (stored the location table) have a new unique ID named contact ID. This new ID is contact specific (computed based on various contact elements) and it replaces the old opaque ID which was a simple DB auto-increment key. But why ? to increase the efficiency of the DB operations, by using a single value … Continue reading Migrating registrations to OpenSIPS 2.2

Mid-registrar: scalable registration and call forking

The new mid-registrar functionality is now available with OpenSIPS 2.3 (current development branch) ! What is a mid-registrar ? The mid-registrar is a mid-component of a SIP platform, designed to work between end users and the platform's main registration component. It opens up new possibilities for leveraging existing infrastructure in order to continue to grow (as … Continue reading Mid-registrar: scalable registration and call forking

How To Proxy SIP Registrations

SIP registration is the process through which SIP user devices (desk phones, soft phones, etc.) periodically announce or refresh their network location to a SIP registrar, for an upcoming period of time. Once registered with the VoIP platform, the device is able to receive calls or messages from other devices. Proxying SIP registrations In some cases, we may want … Continue reading How To Proxy SIP Registrations

CANCEL request and Reason header

Call canceling may look like a trivial mechanism, but it plays an important role in complex scenarios like simultaneous ringing (parallel forking), call pickup, call redirect and many others. So, aside proper routing of CANCEL requests, reporting the right cancelling reason is equally important. How to properly handle CANCEL requests in OpenSIPS? According to RFC 3261, … Continue reading CANCEL request and Reason header

How to avoid plaintext passwords ?

Offering protection and privacy to your SIP subscriber is something you must not overlook. The user passwords for SIP authentication are shared secrets that must be secured on the SIP platforms, in order to protect your subscriber against any data leaking. Usually, when you start building a platform, the subscriber passwords are kept in plain-text format … Continue reading How to avoid plaintext passwords ?