Tona Communications provides low cost international calling services to its subscribers by providing them local numbers and forwarding calls to international numbers. Through TONA, customers can get phone numbers in 35 countries so that their friends in these countries can reach them by dialing the local numbers in their countries.
Project Requirements
Avangard was contracted to develop custom VoIP Solution for TONA Networks Inc. The solution will enable TONA to Provide Voice Services to its subscribers; to interconnect with other service providers and to provide online subscription process and account management. while meeting industry standard high availability and scalability requirements.
Online CRM Portal and Voice Application
Users will interact with the System via the Online CRM Portal and via the Voice Application. An User will be able to test the service before subscribing. To do so he must perform the “Test Call Online” steps described in the requirements sheet.
On successful test the User can subscribe for services online. In order to use the services the end-user must top up online his/her account; must enter phone numbers he/she will be calling from and must enter the telephone numbers of his/her friends abroad. The system will automatically assign local numbers for the User and his/her friends abroad for calling. At that stage both User and his/her friends will be able to call each other using TONA Networks Services.
In addition TONA Networks will provide a Prepaid Calling Card application for the User to be able to make calls from unregistered phones. That is User can make calls from Unregistered Phones by entering his/her Registered Phone Number and Passcode at the local access number to make international calls. User can also dial local access number from Registered Phone and enter international phone number to make CALLout.
Main User functionalities:
Online Test Call – allows User to test the service without being subscribed for it;
Online Subscription – allows the User to register for the service;
Online Payments – allows the User to login to the Online CRM Portal and to recharge their account;
Online Configuration of Personal Settings – allows the User to login to the Online CRM Portal and to manage their profile and settings as per the requirements document;
My Numbers – List of Your Phones
My Contacts – Your friend’s Local Numbers
Regional Preferences – Primary Country & Language
Manage Pass Code – PassCode (No 4-digit PIN number but between 6 to 12 digit numbers only)
Account Balance – Check Balance
Account Top Up – recharge account balance via online Payment Interface
Automatic Top Up – automatic account recharge once balance reaches specific threshold.
Call History – Check Call History
My Rates – Check Rates
Personal Profile – Edit Personal Information
My Virtual Numbers – Basic Referral Statistics
Cancel Service
Number Management – the system will reuse DID inventory for different users. DID will be unique within the context of a registered user;
User Calling User/Non-User – see requirements document;
User Calling Non-User from Unregistered Phone – see requirements document;
User Calling Anonymous Number (CallOUT) – see requirements document;
Non-User Calling User – see requirements document;
Non-User/Anonymous User Calling User from Unregistered Phone – see requirements document;
Online Administrative Portal
The system will also provide Online Administrative Portal for system configuration and maintenance and account provisioning. Users interacting with the Online Administrative Portal will be called System Users.
System Users will be able to perform the following functions:
Create System User Accounts – System users will be able to create other system user accounts;
Changing Info Pages and Content – System users will be able to change the content of major info pages such as: About; Contact Us; How it Works; Terms and Services; Front page content;
Search User Accounts – A filter form will allow System Users to search accounts by different criteria;
User Account Administration – System Users will be able to see and update all User Personal Information and Preferences; As well as to Deactivate User Accounts;
User Account Balance Management – allows system users to credit/debit User Accounts and to adjust Account Balance;
CRM Portal Statistics – System users will view a number of daily CRM Portal statistics such as:
Number of subscriptions today
Number of referrals today;
Number of cancellations today;
Service Usage Statistics – System Users will be able to see basic daily usage statistics
Total calls, minutes, call charges today;
The system will also provide basic Referral Functionality called “Virtual Numbers” which will provide incentives for User subscription.
Solution
Major design goals of TONA ’s network architecture have been:
Performance
Availability
Scalability
A high availability clustered network architecture is required in order to meet the above objectives.
Network Structure
TONA ’s network is designed around distributed architecture. Voice services and interconnect are built on top of SIP protocol.
Redundant SER Load Balancer (SER)
The SER proxy accepts all inbound call requests from the origination gateways. The purpose of SER is to dispatch requests among all nodes in the redundant Asterisk cluster in a balanced round-robin fashion. Perfect balance can not be guaranteed, however for practical purposes round-robin is sufficient distribution algorithm.
To optimize performance and call quality SER will only process call signaling messages. All media will be routed directly between the origination and termination gateways.
Two redundant SER servers are configured in an Active/Standby setup via active Linux High Availability heartbeats for fail over purposes. In case the primary SER fails the standby SER will be activated and will assume the job of the primary server. The setup will require two separate machines.
TONA ’s application requires calls to be bridged together in two stages. In order to bridge incoming calls with staged (parked) calls the SER load balancer must know at each moment on which Asterisk server a staged call is parked. This is why an optimized local MySQL database (SERDB) is maintained on each SER server with current state and pointers to each parked call. SERDB is optimized to cache and perform most queries in memory to avoid I/O.
Asterisk Redundant Cluster
Voice Applications and User interaction is served by a cluster of redundant Asterisk Servers.
Asterisk is highly flexible and versatile open source PBX system providing multiple CLASS features. The Asterisk cluster consists of an array of Asterisk servers with identical configuration parameters. It is recommended that the hardware and performance characteristics of the individual servers are similar as well in order for the load to be equally balanced.
All Asterisk servers are provisioned via Asterisk Real Time Module from the Online Administrative Portal. Voice application functionalities will be performed using AGI scripts.
On incoming call the AGI scripts query the centralized Database Server for user authentication, call routing, and user specific data. Authorization requests are validated by the Billing Server (described later). AGI application maintains in real time stationed calls records in the SER database SERDB. Upon call tear down all billing events will be captured by the Billing Server for rating and generation of call detail records. It is the Billing Server responsibility to rate and record the CDRs in the CDRDB.
The described architecture provides for dynamic provisioning of accounts and system parameters. Should the system require scaling up, additional Asterisk nodes can be added to the Asterisk Cluster.
Database Servers
All Asterisk Servers have access to several centralized distributed MySQL Cluster databases on the Database Server. The Database Server is the central repository for three logically separated databases:
Asterisk Real Time Database (ASTDB) – a database used for asterisk servers – provisioning of peer endpoints, base dial plan, channel settings etc. This is the standard Asterisk database required by the Real Time Module.
Application Database (APPDB) – stores all application related data such as user data, rates etc. Both the Asterisk Cluster and the Web Portals are using this database.
Call Detail Record Database (CDRDB) – stores CDR details. Initially this database is hosted on the main Database Server. In case CDRDB grows to a point where operations on it interfere with the performance of the database server the CDRDB will be moved on a separate database server machine.
SER Database (SERDB) – a database to store real time call routing information of staged (parked) calls. The database will be maintained by the asterisk cluster, where each asterisk node will maintain a record of all calls it processes at the moment. SER will use this database for read only purposes to route incoming requests to the proper asterisk node. The database will only be queried for callback calls which must connect to a staged call.
MySQL Cluster solution is selected to provide for high availability, dynamic scalability, and high performance. The solution is advertised to deliver "5 nines" availability using parallel server architecture with no single point of failure. In addition it is advertised to incrementally scale-out applications, using more hardware.
Billing Server
The billing server will consist of 2 base services:
Billing Manager Service – Connects to asterisk nodes and traps call completion events via Asterisk Manager API. Captured CDR data is queued in an active message queue; then formatted and delivered to the Rating engine for charge calculation. Once rated data is received from the Rating Engine the Billing Manager Service inserts the CDR in the centralized CDR database – CDRDB.
Rating Engine Service – Developed by AVangard Solutions Inc. as a stand-alone rating engine product the service provides high performance rating of CDR or authorization calculations. The service must be provisioned in advance with Rate Tables from the Online Administrative Portal. Special provisioning mechanism de-normalizes and formats rate tables from the Central DB Server for load into the Rating Engine.
The Rating Engine can perform both charge calculations and reverse – authorization calculations.
For Call Authorization requests the Asterisk Cluster AGI functionality queries the Rating engine in real time and receives authorized duration based on best prefix match, account balance and other input parameters.
Rating Engine Service accepts Accounting requests from the Billing Service and returns back rated CDR.
For best performance it is recommended that Rating Engine Service and Billing Manager Service are hosted on a machine separate from other applications. In addition high availability can be achieved by redundant active/standby setup based on Linux-HA, identical to the SER active/standby pair setup.
Web Server
The Web Server hosts the online applications as well as provisioning interfaces and mechanism for the Asterisk Cluster and the Billing Service.
Apache web server with PHP5 framework and a flexible templates system are used as base of Online User Portal and the Online Administrative Portal. From the Online Administrative Portal system users will be able to lookup and manage individual User accounts; to provision termination routes and endpoints; to upload and provision rate tables etc. The Online User Portal will provide service subscribers access to manage and view their own accounts.
In case both test calls and actual usage reach full capacity of channels for a particular area, web site should display a following message; “Due to the excess popularity of the service in this particular area, we are currently full of capacity at this moment. Please, try again in 5 minutes.” The trigger for this page would be when a potential tries for test call and the channels are full.
Results
Tona Communications was able to provide international calling services to its subscribers by providing them local numbers and forwarding calls to international numbers.
With experience in the latest standards, our development team includes a wide variety of subject matter experts in the areas of e-commerce, CRM, ERP and...
Avangard Solutions is a leading provider of a wide range of solutions, which include rating, billing and customer care applications, order and infrastructure management, UI...
For many companies the biggest obstacles to success is the enormous energy and expense required to keep up with changes in information technology. Whether you...