Telecommunication industry
How a Next-Gen Voice Platform Transformed Customer Conversations And Enhanced Customer Experience (CX)

Challenges:
The client initially provided business connectivity through PSTN and GSM lines leased from telecom operators, ensuring reliability but incurring significant costs for the telecom companies. Seeking to enhance profitability and attract more customers by reducing per-channel expenses, the client opted to offer end-user connectivity via VoIP through mobile apps, web apps, and desktop clients. This VoIP platform aimed to achieve network convergence and support diverse communication scenarios while complementing existing telephony infrastructure.
As market expectations evolved and businesses grappled with balancing revenue growth, cost efficiencies, and superior customer experiences (CX), the client recognized the need to innovate. They embarked on developing a Digital Voice Platform integrating AI-powered communication solutions and services to meet emerging market demands swiftly.
There was also a need to develop a sample mobile application to demonstrate the business use cases highlighting the value add the features such as Click-to- Dial and In-App engagement would bring to customers.
The Solution:
With our deep expertise in VoIP solutions, we came up with a high-level architecture that was a strong foundation for implementing all the requirements to support variant use cases. There was also a need to develop a sample mobile application to demonstrate the business use cases highlighting the value-add features such as Click-to- Dial and In-App engagement would bring to customers.
- Mobile Client SIP Registration
- Call from a user at the App to another user at the App
- Call from user at App to another user at PSTN line
- Call from a user from the PSTN line to another user at the App
- Incoming Call to Desktop Client from PSTN (Customer Care)
- Outgoing Call from Desktop Client to PSTN (Customer Care)
1. App2App platform:
The App2App architecture consisted mainly of three major components – SBC, B2BUA and IPP Core.
SBC: An SBC (Session Border Controller) is a network device that regulates and manages communication sessions to ensure secure and efficient connections in VoIP (Voice over IP) networks.
The functionality of SBC:
- Acts as a firewall to VoIP networks. It's a must for production.
- Encryption/decryption of signalling (SIP) and media (RTP)
- Checks valid SIP user
- Checks valid Call token
- Load balancer for RTP Engine
- SIP Over WebSocket (for WebRTC clients)
B2BUA: Handles call control, media processing, protocol support, scalability, security, and application development for creating voice and messaging applications.
The functionality of B2BUA (Core & App):
- Call leg forwarding
- Call status to TS
- Interfaces with IPP Core
- Handling custom headers
IPP core: This is core component taking care of business logic such as user validation, routing, call set up, call termination by bridging between http services and B2BUA.
Interfaces with Business Logic Microservices such as:
- User Management Service
- User and Call Session Management Services
- CDR Service
- Call Routing Engine Service
Android and iOS SDKs/frameworks: The mobile client’s stack for initiating calls with the server was built as an SDK for Android and a Framework for iOS. These SDKs included functionalities like user management, SIP/SDP stack, notification management, as well as CPU and battery optimizations. They were designed to integrate with customer mobile applications seamlessly.
Android and iOS sample apps: To showcase the business use case and emphasize the improved user experience, we developed sample apps that illustrate user registration, call set up from app to another app and/or PSTN line, callbacks, missed calls, etc.
Technology:
Backend:
- Go Lang, JAVA, C/C++, Python
- MySQL, Aerospike (NoSQL)
Mobile client:
- Native Android
- SWIFT, Objective C
Protocols used:
- SIP/SDP
- RTP/RTCP
- Https
Platform:
- AWS
- On-premises with Ubuntu Linux
- Android / iOS
2. WebRTC platform:
This requirement was to enable the client to allow specific users to connect via browsers from their PC machines. This is made possible by using WebRTC technology that enables making media transport through browsers using the newly recommended W3C protocol. The signaling was achieved using JSEP, which uses SIP/SDP through Web-Sockets.
This needed specific backend configurations that include:
- Refactor and enhance the Kamailio Configs to support WebRTC endpoints and new routing logic
- Ensure ICE connectivity establishments through NAT by making appropriate modifications to firewalls
- Modify RTPEngine to allow WebRTC signaling
And for the client side we built a JavaScript based application SDK using SIPJS stack.
This SDK was in turn used to build a react based UI to provide:
- Basic telephony services, including call handling – start, stop, pause, call-forward, call hold services
- Multi-tab (Allowing user to navigate to a different tab while on call)
- Multi-window (Allowing user to navigate to a browser window while on call)
- System and Signaling logs collection and upload.
- Statistics for accounting of CDRs
- UI to troubleshoot client-side issues
Protocols used:
- WebRtc: https://w3c.github.io/webrtc-pc/
- RFC 8829: RFC 8829: JavaScript Session Establishment Protocol (JSEP) (rfc-editor.org)
- WebSocket
- SIP/SDP
- Proprietary Configuration of Kamailio Server
- ICE procedures with STUN servers
Process followed:
- Strict layering to ensure JavaScript application SDK can be used to build multiple UI frameworks dialer and troubleshooter
- The agile development model with a sprint duration of two weeks
- Code review, UT with 100% code coverage for each commit
- Regression of system tests at the end of each sprint