ISP Telecom: Improving Logic & Architecture for TPP

ISP Telecom is a national provider of advanced telecommunication solutions designed to meet the demanding requirements in the wholesale, VOIP, and ISDN PRI sectors. The company delivers solutions that are tailored to the specific needs of customers.
www.isptelecom.net/

Client Background

ISP Telecom has been operating as a registered CLEC in Canada since 1998. Some of their products include SIP Trunking, aggregated PRIs, DIDs and LNP for VOIP, and flexible billing systems. ISP Telecom has established a reputation for being the carrier of choice for quality raw materials in the VOIP world.

Project Description 

It's a TPP platform, intended to perform the following tasks: 

  • providing trunk lines and DIDs to customers;
  • collecting, searching, and exporting call records;
  • handling long-distance call records;

Rate Engine prepares data and then generates reports on long-distance and toll-free numbers.  

Our client asked to design and develop this platform from scratch. 

Business Challenge 

Our team was tasked with integrating a third-party service to download files and obtain processing results. The third-party service didn't have an API, only a web interface. Therefore, at the beginning of development, we had two options:

1. write a parser that will load files through the web interface using Nokogir + Mechanize bundles;

2. analyze requests that the web interface sends to the server when downloading and processing files and use these API requests.

The second option was selected. 
While working on the project, we encountered several issues. The web interface sent many different requests, and it was challenging to understand for what each request was responsible. We decided to analyze the js-code in order to understand how these requests are processed. 

As a result, we used special libraries for reverse engineering to simplify the js-code. Finally, we were able to figure out how this service works and successfully implemented the API for downloading files and receiving processing results.

isp telecom interface

Value Delivered

Despite the difficulties that our team faced dealing with the tasks, we implemented multithreading for files, structured the platform’s logic, improved the design, made the interface user-friendly, and developed the micro-service architecture.

Technology

Gentoo Linux, Ruby, Ruby on Rails, IMAP