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.
It's a TPP platform, intended to perform the following tasks:
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.
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.
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.
Gentoo Linux, Ruby, Ruby on Rails, IMAP