The term VoIP represents Voice communication over/via IP-network. There are many advantages of having voice communication over IP network, termed as PS ( packet switching), over traditionally voice communication, over CS( Circuit switching), like fast, easy and efficient resource utilization with enhanced features. People who wish to communicate with each other with VoIP must support TCP/IP packing, called IP-nodes/Host. VoIP is also used to establish sessions/calls to different networks like circuit switches PSTN or GSM/UMTS users.
It is a technique of sending voice/media packets over IP-network. This solution of establishing session between two parties is adopted by next generation mobile communication like 4G. VoIP is incorporated with underline protocol stack like SIP, H.323, SDP, TCP/IP suit, etc. VoIP solutions are mainly driven with the help of supporting APPLICATION layer protocol, namely SIP (Session Initiation protocol) or H.323.
Predominantly SIP is a versatile text based protocol mostly used in enhance technology. SIP defines request and response mechanism like INVITE, Register, Option, Publish etc and 1xx, 2xx, 3xx, 4xx, 5xx, 6xx responses respectively. It also defines routing mechanisms with the help of SIP-proxy server to discover called user details. A session is established between two nodes (IP-based) who wish to communicate by routing request to proxy server and querying database termed location server. Once two nodes (calling party and called party) learn each other IP-addresses, voice RTP packets are sent between them. SIP stacks maintains and control the established the voip session until it is closed. Session is released or cleared by sending BYE request to other party. SIP protocol standard is defined by IETF standards of 3261rfc and is being adopted by many new upcoming technologies. H.323 protocol on other hand is a protocol suit used earlier for VoIP solution. It is still used within certain old technology and enterprise solutions.
This section describes VoIP architecture and solution in details based on SIP protocol. VoIP architecture is defined based on three tier model.
• User-plan or Application layer mainly consists of IP-nodes who are either Calling User/Nodes or Called User/Nodes. SIP based IP-nodes are termed as UA (User Agent). SIP based IP-Node that initiates session request is termed as UAC (User Agent Client) and SIP based IP-nodes who respond to the request is termed as UAS (User Agent Server).
• Middle tier is a Server-plan or a Routing plane which help in routing SIP based request to the destination and fetching relevant data. SIP based server like SIP-proxy server, Promedia Server, Gatekeeper (for H.323 protocol) is grouped in this tier. Promedia servers are used for establishing session between SIP and H.323 based UAs.
• Database tier of the VoIP architecture consists of servers who maintains data regarding User agents, session billing and session authentication and other. Location server, Registrar server, Authentication server, Billing Server, IVR server are such example servers of this layer. The protocol which is used between the SIP proxy server and the database layer server is RADIUS, which is mainly transaction based protocol.
SIP session/signalling are done using either TCP or UDP as a transport layer, with TCP as a recommendation to achieve fast session establishment.
• SIP based IP-node which is either a calling party or called party, is configured with IP-address and can be located anywhere physically and connected through internet.
• Called Party must be registered to the VoIP network via preconfigured REGISTRAR Server IP-address and Proxy server
• Calling Party has to be VoIP registered in order to initiate a call to the called user, it must also be configured with a Proxy server
• Called Party registers itself by sending REGISTER request to the Proxy Server. The Proxy server in turn updates the REGISTRAR server with Called Party IP-address, and/or domain and/or MSIDN/sip-URI. SIP-URI is nothing but a Unique Resource Identifier in sip format like ‘sip:[email protected]’. This association created in REGISTRAR server is uploaded into Location Server which is called as AOR – Address of Record. In most cases both REGISTRAR server and LOCATION server can be colocated into one box.
• Calling Party that wish to establish a communication with called user, sends INVITE request to the Proxy or Out-bound Proxy server with called party MSISDN or SIP-URI. Outbound Proxy server is nothing but a proxy server, configured separately for handling calls/session, which is again a deployment specific. Here Calling User will act as a UAC- User agent client and Proxy server acts as UAS – User agent server.
• Out-bound Proxy server receives INVITE request, response with 100 Trying response to the Calling user/UAC acknowledging Calling user that INVITE request is received and is being processed so it does not send multiple INIVITE request. The proxy server fetches called user AOR from the location server and receives the called user IP-address.
• Proxy server routes the INVITE request to the called user IP-address received in AOR from the location server.
• Called Party upon receiving INVITE request, will to start ring with tone, notifying the user about the incoming call, acknowledging back with 180 ringing response. In the 180 Ringing, called party adds its own IP-address which is traversed backed to the calling party.
• When called party picks the calls, it response with 200 OK.
• Calling party upon receiving 200 OK response send another SIP request ACK, which indicates the flow of voice RTP packet.
• Session can be broken by either party, by sending a BYE request.
Voice packets are being transmitted between calling party and called party directly end to end in particular codec format. SDP – session description protocol suit is also deployed along with SIP stack which maintains all voice packets stream and their measurement reports. Both RTP and RTCP packets are sent over UDP as a transport protocol to achieve real time streaming. RTCP provides feedback about RTP packets sends in reverse direction.
SIP based protocol leverage to add call features like call hold, Call Park, call conference, both audio and video call, multi user support and many other call functionality. It is easy to deploy and flexible enough to twist to achieve desired result of Voice over IP.
VoIP solution is key to fourth generation mobile communication supporting multimedia services like audio, video, chat, conference, announcement services. This technology is commonly known as IMS – IP Multimedia Subsystem, a standards of 3GPP project. SIP session createс high voice quality via dedicated bearer reserved for each SIP session. If the access type is LTE, then the voip session is termed as VoLTE( Voice over LTE) and if access type is Wifi, the voip session is termed as VoWIFI.
The technical term ‘Softphone’ is used for software applications which run on any device (mobile, laptop or desktop), and has telephone like functionality. Soft Phones are used to place VOIP calls which are generally cheaper when making international calls. Most of those applications actually run on hard phones(phones made specially for VOIP purposes) but there are planty also made for mobile and pc. The softphones work similar to any actual phone, with functionalities like outgoing & incoming voice calls and outgoing/incoming Video calls. They are basically IP based phones, providing VoIP ( voice over IP) functionality, governing protocols such as SIP( session initiation protocol) , or H.323 or SCCP or any other similar proprietary protocol.
Examples of softphones for desktop and mobile: X-lite, zoiper, Pindo, vChat, Whatsapp , Skype.
There is quite a big diversity in soft phones . Some are made to serve the masses, and they are mostly free, while others are business and enterprise oriented with license versions. Softphones can be classified as a type of IP-phone with no hardware. The software supplication of the softphone available based on the OS platform basis Linux, WINDOWs, MAC like X-lite, etc. Following are the procedure steps for setting up the softphone:
In Public network for mobile user: softphone is generally available as a mobile application. The software applications are uploaded to public server like PlayStore or AppStore, from where the user can download it on his mobile. Most such apps require the user to have stable internet connection to operate (with the exception of Pindo and Rebtel). In the mobile market softphones are dominated by free apps and there is almost no paid versions.. Following are the procedure steps for setting up the softphone on mobile:
If I have to make a bet I would bet on softphones with html based user interface. They are mostly used for commercial purpose like Video-Conferencing, license based conferencing for entrepreneurs, meeting, three-way calling etc. They come with Pay-and-Use functionality, and most of them are based on SIP protocol for session creation and media streaming.
Adopting an existing VOIP service from the top PBX providers will get the job done for most businesses. But no one said it is easy to find the right one. Providers do their best to fit the needs of every business on a case-by-case basis. Nevertheless, with gaps in usage cases, business team sizes, required features or safety, it may be about impossible satisfy everyone. For all those cases where a service won’t fill in the gaps, businesses can turn to open source solutions or platforms. And yes there are open source PBX software solutions out there. With them any business can develop and tailor their own in house PBX applications. Since these platforms are open source, all the source is available for free online, and can be tailored for every specific scenario.
Asterisk is the godfather of all open source PBX and VOIP solutions. And it continues to function as gold standard. It is the leading open source telephony platform, with an enormous feature lists which only continues to grow each year. The Asterisk tool kit is used by a mass quantity of developers around the world. Many of the suppliers on our list have either begun with, or are based completely on the Asterisk project. It is packed with the standard PBX VOIP features. Consisting of automatic telephone, an interactive voice response menu, conference calling, and voicemail. Asterisk makes it easy workable to turn any computer. The program is free and open source. To help get you started, Asterisk provides live web classes, as well as an Asterisk Definitive guide. Asterisk can be considered The Platform when it comes to creating your own VoIP or PBX.
SIP Foundry provides much of the solutions that the Asterisk engine can power. With SIPFoundry you can construct your own voice and video communications. In addition it support conference calls, messaging and chat. Like with Asterisk, the platform includes everything you might need to build your own PBX solution. Nevertheless, whilst Asterisk is 100% free and open source depending on guides. SIPFoundry has a somewhat different spin. It offers professional paid assistance to developers based upon customer needs. While an excess cost to think about, adopting a support team might be a essential step for some businesses looking to build their own system. With a focus on the marketplace, the tool is free for commercial or private use. The project has also brought in features from other open source projects. HylaFAX, FreePBX, Openfire and Postfix.
Elastix intends to bring in Asterisk’s features and other such projects, all under 1 easy-to-use interface. Elastix boasts support for a wide range of hardware consisting of Yeastar, Dinstar, Digium, Yealink and Snom. It was actually 1 of the first distributions that included a call center module. And it proceeds to supply the solutionfree under the GNU General Public License. It’s come to our attention that Elastix appears to provide up to 8 SIM calls for approximately 25 users, since writing this post. FreeSWITCH was also based off the Asterisk platform, and was created and developed by 3 of the original programmers of the Asterisk platform. Anthony Minessale II, Brian West and Michael Jerris.
FreeSWITCH is with a focus on modulator, cross-platform service, availability and stability. It provides 1 of the most flexible platforms to construct your own UC package. FreeSWITCH supports SIP, H.323 as well as WebRTC to leverage the latest advancements in the technology. It can integrate and interface with other some of the other open source PBX platforms. For less complexity FreeSWITCH utilizes open software libraries that preform the essential functions. FreeSWITCH delivers the calling features and some extras such as speech recognition. It even offers PSTN ports for digital and analogue circuits.
Voicetronix is equipment supplier and a solutions that offers an open source platform, but also an assortment of hardware. The do-it-yourself OpenPBX of Voicetronix is a web enabled PBX program. It comes with a web based user management portal, in addition to a management GUI for easy and rapid configuration. It is feature rich with car attendant, automatic call distribution call routing search groups and even voicemail. Unique features like call hunt groups, music on hold and call records are good solution for businesses in need of a basic call center software. With CRM baked and enabled into the platform, users may not require to adopt a separate CRM solution, saving time and money.
PBXInAFlash main feature is the ability set up your own PBX server in no time. The project has everything needed to set up a PBX system in under one hour. It uses CentOS, with integrated Apache web server, SendMail server, and MySQL database. In addition to firewalls and all essential protocols. Users have the option to pick from dozens of add-ons to tailor the system. Backups, Caller ID look up services, SSL keys, Google Voice integration, and fax support to name a few. With the number 1 goal of no bloat and no bugs, PBXInAFlash seems to be easiest and the quickest solution to adopt.
FreePBX combines the best of both worlds, and leverages the work. While the project uses the Asterisk system, users may download either just the GUI to add on to their current system, or the whole package. It consists of a per-configured program OS, Asterisk, and the FreePBX GUI. So while by adopting Asterisk, some knowledge may be required to take advantage of, or to create your own GUI, FreePBX brings it all together. FreePBX makes it feasible to establish your SIP Trunks that are part of the platform thanks to the integration. FreePBX also contains a long list of commercial modules and add-ons to enhance your system with even more features.
With a focus on open source implementation of a SIP server, with OpenSIPs its easy to set up your own PBX. The platform supports video, voice, IM and presence services. It is using modular design, it is scalable, and very much customizable. OpenSIPs enterprise class SIP server solution and a very fast one at that . OpenSIP has made a list of benchmarks and performance tests to back their claim up. Similar to Asterisk, OpenSIPs often records webinars, and makes in depth manuals for configuration. A web interface makes it easy to collect data and shows on the fly configurations.
Kamailio is an open source project with 15 years of constructive development. And while the original company left the project, it continues to expand, both the SIP server and Kamailio project continue to build on. With features like UDP asynchronous TCP and SCTP, TLS to ensure secure communications. VoIP data consisting of voice video and text, and even WebRTC support the hard work can clearly be seen. Kamailio also supports instant messaging, least cost routing, load balancing, routing fail-over. Realizing that security features are important they are offering the strongest level of security on this list. Authentication and authorization for enhanced security as well as the level of encryption that the platform gives makes it a good recommendation for any staff or business that needs to keep everything as locked down and protected as possible. As a result of all that, Kamailio may be a bit more challenging to adopt.
The 3CX Phone System is the last open source PBX based upon the SIP standard on the list. This solution allows extensions to make calls on the PSTN or standard services. The platform also offers an easy to understand web based GUI, and the process to is actually simple – an executable file. 3CX supports iOS and Android for mobile customers, of coarse Windows and Mac softphones are supported too. It appears to take out the hassle of development required to establish your own PBX server. WebRTC adoption makes web conferencing possible. Click2Call and CRM are also part of the features. As most others, internet training academy is readily available for users to understand how to manage the platform.
TeamTalk is VOIP conferencing system that people use to communicate using VoIP and/or video streaming. The part with video streaming puzzles me as the program has community made of mostly blind people. They can log in with a simple tt document and converse easily with their contacts. The project is open source and using open source solutions for most of its functionality.
The TeamTalk 5 conferencing system is composed of a client and hosted server. Most users will just need to install the client application, unless of coarse they want to have their own TeamTalk 5 server.
When installing the application on Windows, the visually impaired users, should install “TeamTalk 5 Classic. It is the client with better accessibility, since the Classic version works smoother with screen readers. There is also a regular TeamTalk 5 client developed for the masses.
TeamTalk is a freeware. The program can be found on a lot of popular software websites. Its license permits, to be run on numerous clients or servers, it can be also redistributed free of charge. A permit must be nevertheless bought by developers that want to implement or use the code in third party programs.
TeamTalk client software have been build around the GitHub project TeamTalk5. The TeamTalk server is not part of the project and is therefore not publicly available.
The TeamTalk 5 can be downloaded for Windows, Mac OS X, and the most used Linux distributions – Debian, CentOS, and Raspbian. The server and client applications run on the same platforms. The only difference being that the client additionally supports the mobile platforms of iOS and Android.