Voice over IP
| A Wikibookian believes this page should be split into smaller pages with a narrower subtopic.
You can help by splitting this big page into smaller ones. Please make sure to follow the naming policy. Dividing books into smaller sections can provide more focus and allow each one to do one thing well, which benefits everyone.
This book is a work in progress. Please feel free to add, correct or provide comments/criticism via the Discussion page.
Contents[edit | edit source]
- Moving Away from Traditional Telephony
- Standard Architectures for Next Generation Networks
- VoIP Protocals, Hardware, and Software
- VoIP Gateways and PABX Integration
- Advanced VoIP Configuration
- ENUM and E146 Technology
Voice over IP Technology[edit | edit source]
VoIP Gateway Systems[edit | edit source]
This chapter deals with the complex world of VoIP gateway systems. These systems are responsible for providing some amount of call control and routing from VoIP phone devices.
Each of these systems is responsible for receiving calls from a VoIP handset, ATA or softphone device via a supported VoIP protocol, consulting a dial-plan or other call routing table, and correctly routing the call. Other features made available by some or all of these gateways include:
Authentication - Ensuring that clients have permission to use VoIP resources.
Call Accounting - Providing tracking of calls via the gateway, including reports and cost controls.
Complex Dialplans - Most dialplans configured on simple devices such as ATAs and softphones only allow for a very straightforward dialplan configuration. Using a VoIP gateway such as Asterisk, factors such as time of day, or even values obtained from external sources can be used to determine which path a call should take.
Hardware Integration - Most gateways provide the ability to interface with physical hardware such as FXS (internal line) and FXO (PSTN line) cards to create a PBX system. They additionally provide the dialplan configuration to determine which calls should route via IP, and which should utilize a card. It is important when selecting gateway software to evaluate which devices they support, and ensure yours is listed. Some devices (for example, Cisco line cards) may require the vendor's specific implementation of VoIP gateway for any support at all.
Internal Numbering - Some gateways offer the ability to provide internal extension numbering for clients, allowing one VoIP device to dial another device registered on your local gateway using a short internal extension number.
When would you use a VoIP gateway?[edit | edit source]
In which situations would you use a VoIP gateway product?
Generally, if you require an advanced configuration such as advanced call accounting for billing, cost controls, complex dialplans, or the ability to call between extensions, you should implement a gateway solution.
If you are interested in integrating extra hardware such as FXO cards (interfaces to the PSTN) you MUST use a gateway product.
If you are designing VoIP solutions for mid-large size business, or will be requiring IVR (Interactive Voice Response) functionality, you should implement a VoIP gateway.
|Open-Source Gateways||Commercial Gateways|
|SIP Express Router|
Asterisk: The open-source PBX[edit | edit source]
Asterisk is an extremely popular open-source PBX system which runs on BSD, Linux, Mac OS X, and Windows. The project is sponsored by Digium, a PBX hardware manufacturer.
Asterisk has support for ENUM, e911, Caller ID, all call controls such as Forwarding, Conferencing, Hold, Transfer and Call Waiting. Additional features such as Call Monitoring, Call Recording and Privacy Controls also exist.
In addition to the above, Asterisk is able to provide IVR functions, allowing interactive voice prompts, call queuing, and many many advanced call routing features.
In all, Asterisk is a remarkably full featured commercial-grade PBX system available free of charge.
Bayonne[edit | edit source]
OpenSER[edit | edit source]
Web page: http://openser.org
OpenSER is a robust and powerful SIP server. Released under GPL, OpenSER is the first free server with integrated TLS, offering secure VoIP communications. It has an architecture designed for scalability and flexibility and high performances.
- SIP proxy/registrar/redirect server (RFC3261)
- transaction stateful
- UDP/TCP/TLS support
- modular architecture
- scripting configuration file with pseudo-variables
- authentication, authorization and accounting via database, radius or text files
- enum support
- NAT traversal system
- formatted logging
- least cost routing
- Call Processing Language (CPL)
- MySQL/Postgres/Flat files database backend
- sever monitoring
SIP Express Router[edit | edit source]
Web page: http://www.iptel.org/ser
SIP Express Router (SERi) is a high-performance, configurable, free SIP server licensed under the open-source GNU license . It can act as SIP (RFC 3261) registrar, proxy or redirect server. SER can be configured to serve specialized purposes such as load balancing or SIP front-end to application servers, SEMS for example.
- complete support of RFC 3261 functionality,
- a variety of database backends (mysql, oracle, postgres, radius, text-db),
- management features (remote management via XML-RPC, load-balancing),
- NATi traversal, telephony features (LCR, speeddial),
- multidomain hosting, ENUM, presence, and even more.
SER is additionally enhanced by a variety of additional SIP tools, which provide functionality for management, media processing, CDRi processing, etc.
SER is today default part of numerous operating systems and their distributions: Debian, FreeBSD, Gentoo, NetBSD, OpenBSD, OpenSUSE, Solaris.
SER history spans back to the previous century. SER has been used since 2002 for various different purposes, frequently in the industry by major ISPs/ASPs and by universities to enable VoIPi services. SER's particular strength is its performance (SER runs well even under heavy load caused by large subscriber populations or abnormal operational conditions), flexibility (SER's genuine configuration language and module interface allow high degree of customization) and interoperability (tested and operated against tens of SIP products over the years, including but not limited to (Microsoft, Cisco, Mitel, snom, Pingtel, Siemens, xten, and many others).
Yate - Yet Another Telephony Engine[edit | edit source]
Yate is a next-generation telephony engine; while currently focused on Voice over Internet Protocol (VoIP), its power lies in its ability to be easily extended. Voice, video, data and instant messaging can all be unified under Yate's flexible routing engine, maximizing communications efficiency and minimizing infrastructure costs for businesses.
Yate can be used as a:
- VoIP server ****
- VoIP client
- VoIP to PSTN gateway
- PC2Phone and Phone2PC gateway
- H.323 gatekeeper
- H.323 multiple endpoint server
- SIP session border controller
- SIP router
- SIP registration server
- IAX server and client
- IP Telephony server and client
- Call center server
- IVR engine
- Prepaid and post-paid cards system
YXA[edit | edit source]
YXA is a SIP server written in the programming language Erlang  at Kungliga Tekniska Högskolan and Stockholms universitet. Erlang was developed by Ericsson to program ordinary telephone switches, with the goal of making a programming system fault-tolerant and robust.
This helps YXA to be a robust SIP server/stack capable of serving tens of thousands of users. The projects goal is to make YXA complient to all RFC standards relevant to SIP.
- It is RFC3261 compliant SIP-server, capable of everything a generic domain needs :
- Registrar that keeps track of your users
- Handles incoming SIP requests to your domain
- Handles routing of requests from your users to remote domains
- TCP, UDP and TLS (including SIPS) support
- Automatically maps e-mail addresses of your users to their SIP addresses, if you have the e-mail addresses in LDAP
- Handles multiple domains using a single server instance
- ENUM support for PSTN-bypass whenever possible
- IPv6 support
- Forking, both parallel and sequential
- CPL (RFC3880) support for advanced user-control of events (currently incoming calls only)
- Modular user database, currently with LDAP, Mnesia, MySQL and text-file backends
- PSTN destination access control (per user or for anonymous users)
VoIP PABX Integration[edit | edit source]
Advanced VoIP Configuration[edit | edit source]
Traffic shaping and bandwidth control[edit | edit source]
Correctly terminating emergency calls[edit | edit source]
Particular attention should be given to ensuring that emergency calls on VoIP lines are handled correctly. In some cases, it may not be possible to provide useful or reliable emergency service via VoIP services. In this case, it may be possible to offload emergency calls to a landline service.
If reliable emergency service is not available, the handset or VoIP device should clearly be marked with a warning.
Some VoIP providers allow emergency calls to be routed via their service; however this is only of use if you are within an area covered by the receiving emergency call centre. Additionally, a lack of bandwidth or Internet service or a power loss can lead to loss of emergency service via telephone.
Suggestions for dealing with emergency calls[edit | edit source]
If a functioning landline handset is nearby, it is advisable to attach a notice to the VoIP device directing emergency calls to the landline. It is much easier for emergency services to assist if they have information on your location which is generally not available via VoIP calls.
Where calls are handled by a gateway administered by yourself or your organisation, and the ability to route certain calls via landline exists, the dialplan for your VoIP gateway should immediately route emergency calls via the landline, and where possible, any active conversations should be dropped if there are not sufficient lines to handle the call.
It is important to find out whether your VoIP provider(s) offer emergency numbers, what areas they are able to cover and whether they are able to provide enhanced emergency services such as e911 initiatives which allow providers to transmit information on subscribers to 911 call centres.
Ensure that emergency calls are routed via the most appropriate gateways in your dial plan.
Incoming telecommunications services[edit | edit source]
IVR (Interactive Voice Response) application[edit | edit source]
IVR applications are automated response units which receive input from the user (traditionally in the form of DTMF) and allow the user to progress along a pre-set interactive path. For example, a menuing system where the IVR may announce Press 1 for Sales, 2 for Marketting and then await user input. Once the user input arrives the IVR unit may patch through the call to another line and/or may provide a pre-recorded message.
ENUM/E164 Technology[edit | edit source]
The following section is quite technical, as it deals with complicated infrastructure and the integration of VoIP into core internet technologies.
The ENUM protocol (described in RFC document RFC 3761) translates standard telephone number routing (known as E.164, as the ITU defines the standard by which telephone numbers are assigned in the E.164 standard) into an addressing scheme able to route to VoIP (eg. SIP/H323) gateways using DNS technology.
ENUM technology allows VoIP servers to use the DNS infrastructure to query routing paths for terminating voice calls given a phone number.
When a call is initiated to a given phone number, a VoIP gateway capable of ENUM service will query the provided number in DNS to determine whether there is a path other than the PSTN line available to the destination service.
This allows providers to advertise paths via VoIP to services otherwise only available via a VoIP to PSTN gateway.
ENUM records may contain other information in addition to a VoIP gateway address, such as a web URL or e-mail address.
Private vs Public ENUM databases[edit | edit source]
The public ENUM database is a collection of ENUM records, known as NAPTR RRs in DNS speak, which map telephone numbers to VoIP service gateways. These records are stored in a hierarchical tree beneath the e164.arpa domain.
Records within the e164.arpa domain are delegated to their responsible owner via the E.164 addressing convention. Much like the in-addr.arpa domain, which is used to provide mapping of IP addresses to names, these records are delegated in blocks to the agency responsible for this number assignment.
The agency is then responsible for further smaller delegations where necessary. As a result, it is unlikely that individuals or small businesses will have access to provide ENUM records for their telephone numbers.
It also stands to reason that telephone companies would be hesitant to allow telephone calls destined to their customers to instead terminate over the Internet, as much of a phone company's revenue would be derived from call termination fees, charged to carriers for calls terminating on a company's network.
This is unfortunate for end users. Via the ENUM database, you would have the opportunity to direct VoIP-based calls to terminate over the Internet via your VoIP gateway, rather than via a phone line.
For this reason, several free ENUM databases have been created to allow users to share alternate IP-based paths to their phone numbers. Most ENUM aware gateways will allow additional 'search domains' to be configured, providing access to these unofficial databases.
Whilst configuring a gateway to query these extra domains can dramatically reduce costs by terminating calls over IP, therefore freeing copper lines/voice channels for both the caller and recipient, there is an important factor to consider. If a malicious or unauthenticated entry is added, an attacker can direct calls for a phone number to an arbitrary VoIP gateway.
Consider the example of rival businesses. If Business A were tech-savvy and entered their competitor's number into a public directory, directing calls to their own VoIP gateway, any calls placed via a VoIP gateway configured to query that directory would be directed to Business A's phone, rather than the intended recipient, Business B.
Some of these directories require voice verification of ownership when you register phone numbers. Others do not require verification or have dispute resolution policies which deal with disputes on a case-by-case basis.
Another less serious but still important consideration is the possibility that your information will be harvested from the database, or sold by the database owner. ENUM information may be valuable to advertisers or phone spammers, as it would provide them with a list of valid phone numbers, and allow them to call for free via IP.
Public ENUM registries[edit | edit source]
VoIP Providers Worldwide[edit | edit source]
VoIP technology has completely changed how companies interact with their customers. VoIP has scaled so much that now it is being used for residential as well as business purposes. VoIP providers are mainly of two types, Retail VoIP provider and wholesale VoIP provider. There are bunch of VoIP providers online but these are some of the best VoIP providers online.
ENUM Trial Registries[edit | edit source]
Many ENUM trial registries are becoming available. Most of these registries are regional, and often are limited by telephony provider, limited number of trial participants, or a trial fee.
Australian ENUM Trial - Fee applies for registration
Austrian ENUM Trial - Open to Austrian residents, a fee applies for registration.
Japanese ENUM Trial - Open to ETJP contributors since 2003. Currently has 46 members.
Appendices[edit | edit source]
Appendix A: Glossary of Terms[edit | edit source]
|ATA||Analog Telephone Adaptor|
|Broadband||Using multiple transmissions simultaneously over a single medium.|
|Baseband||Using a single transmission over a single medium.||CAS||Channel Associated Signaling|
|CCS||Common Channel Signaling|
|DSL||Digital Subscriber Line|
|E1||32 DS0 Channels|
|FXO||Foreign eXchange Office|
|FXS||Foreign eXchange Subscriber|
|IP||Internet Protocol - IP is the common protocol, or language, used by all devices on the Internet to communicate regardless of vendor.|
|MGCP||Media Gateway Control Protocol|
|NAT||Network Address Translation - The translation of a Network (IP) Address to another address by a gateway or router device|
|PAT||Port Address Translation - The translation of multiple inside IP addresses to a single IP address on the outside, used in typical home applications.|
|PBX||Private Branch Exchange|
|PoE||Power over Ethernet|
|POTS||Plain Old Telephone System. See PSTN below.|
|PSTN||Public Switched Telephone Network|
|Q.931||Layer 3 ISDN Signaling|
|Q.921||Layer 2 ISDN Signaling|
|RFC||Request For Comments|
|RTCP||Real-Time Control Protocol|
|RTP||Real-Time Transport Protocol|
|SIP||Session Initiation Protocol|
|T1||24 DS0 Channels|