OpenSER

OpenSER is a mature and flexible open source Session Initiation Protocol (SIP) server (RFC3261).
It can be used on systems with limitted resources as well as on carrier
grade servers, scaling to up to thousands call setups per second. It is
written in pure C for Unix/Linux-like systems with architecture
specific optimizations to offer high performances. It is customizable,
being able to feature as fast load balancer; SIP server flavours:
registrar, location server, proxy server, redirect server; gateway to
SMS/XMPP; or advanced VoIP application server.

OpenSER aims
to be a collaborative project of its users to develop secure and
extensible SIP server to provide modern VoIP services.

Anyone can
contribute to one of next items:

  • – code development – OpenSER core, modules and adjacent applications
  • – documentation – writing or enriching documentation
  • – miscellaneous – different management tasks (e.g., web site maintenance)
  • – ideas – new ideas bring brilliant solutions

Features:

  • robust and performant SIP (RFC3261) Registrar server, Location server, Proxy server and Redirect server
  • small footprint – the binary file is small size, functionality can be stripped/added via modules
  • plug&play module interface – ability to add new extensions, without touching the core, therefore assuring a great stability of core components
  • stateless and transactional statefull SIP Proxy processing
  • support for UDP/TCP/TLS transport layers
  • IPv4 and IPv6
  • support for SRV and NAPTR DNS
  • SRV DNS failover
  • IP Blacklists
  • multi-homed (mhomed) and multi-domain support
  • scripting language for configurations file. With a syntax similar to sripting languages, the configuration offers a powerful and flexible way to deploy custom SIP services.
  • management interface via FIFO file and unix sockets
  • pseudo-variables to access and manage parts of the SIP messages and attributes specific to users and server
  • authentication, authorization and accounting (AAA) via database (MySQL, Postgress, text files), RADIUS and DIAMETER
  • digest and IP authentication
  • CPL – Call Processing Language (RFC3880)
  • SNMP – interface to Simple Network Management Protocol
  • XMLRPC -management interface via XMLRPC
  • NAT traversal support for SIP and RTP traffic
  • ENUM support
  • PERL Programming Interface – embed your extensions written in Perl
  • Java SIP Servlet Application Interface – write Java SIP Servlets to extent your VoIP services and integrate with web services
  • load balancing with failover
  • least cost routing
  • support for replication – REGISTER offer new functions for replicating client information (real source and received socket).
  • logging capabilities – can log custom messages including any header or pseudo-variable and parts of SIP message structure.
  • modular architecture – plug-and-play module interface to extend the server’s functionality
  • gateway to sms or xmpp
  • multiple database backends – MySQL, PostgreSQL, flat files and other database types which have unixodbc drivers
  • straightforward interconnection with PSTN gateways
  • impressive extension repository – over 70 modules are included in OpenSER repository


Scalability:

  • OpenSER can run on embedded systems, with limitted resources – the performances can be up to hundreds of call setups per second
  • used a load balancer in stateless mode, OpenSER can handle over 5000 call setups per second
  • on systems with 4GB memory, OpenSER can serve a population over 300 000 online subscribers
  • system can easily scale by adding more OpenSER servers
  • OpenSER can be used in geographic distributed VoIP platforms
  • straightforward failover and redundancy