O'Reilly logo

VoIP Hacks by Theodore Wallingford

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Hack #100. Get Started with sipX

Asterisk, like Cisco CallManager and other softPBX platforms, implements SIP as a method of supporting SIP phones and trunks, but does not employ the SIP design philosophy. Yet SIP and SIP alone can replace your entire PBX system. Enter sipX.

Like Asterisk, the sipX project implements a call-management server for Linux, implements a voicemail server with message-waiting indicators, and allows you to build a voice network of SIP phones. Unlike Asterisk, sipX does it exclusively using SIP. This means that external interface gateways must be used to communicate between sipX and non-SIP networks (the PSTN, H.323, etc.). In a minute, at least if you follow this little outline, you'll be installing sipXpbx, a comprehensive SIP PBX server.

SipXpbx brings some cool functionality to the table, including a built-in web-based administration tool, two SIP softphones (sipXPhone and sipXez-Phone), and a suite of interoperability testing tools. Awesome stuff! Perhaps most important, sipX implements the following components of a SIP network according to the official IETF SIP specifications (unlike Asterisk, which only implements certain parts of a SIP network):

Registrar

A SIP server that keeps track of SIP clients by tracking the IP addresses where they're located and the usernames associated with each registration; a directory of active SIP clients, if you will

Proxy

A server that relays SIP messages and media streams between disparate networks

Client

A user agent that ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required