ISP Telecom работает как зарегистрированный CLEC в Канаде с 1998 года. Некоторые из их продуктов включают SIP Trunking, агрегированные PRI, DID и LNP для VOIP, а также гибкие системы выставления счетов. ISP Telecom зарекомендовала себя как поставщик качественного сырья в мире VOIP.
Перед нашей командой была поставлена задача интегрировать сторонний сервис для скачивания файлов и получения результатов обработки. У стороннего сервиса не было API, только веб-интерфейс. Поэтому в начале разработки у нас было два варианта:
1. написать парсер, который будет загружать файлы через веб-интерфейс с помощью связок Nokogir + Mechanize;
2. анализировать запросы, которые веб-интерфейс отправляет на сервер при загрузке и обработке файлов, и использовать эти API-запросы.
Был выбран второй вариант.
Работая над проектом, мы столкнулись с несколькими проблемами. Веб-интерфейс отправлял много разных запросов, и было сложно понять, за что отвечает каждый запрос. Мы решили проанализировать js-код, чтобы понять, как обрабатываются эти запросы.
В итоге мы использовали специальные библиотеки для реверс-инжиниринга, чтобы упростить js-код. Наконец-то мы смогли разобраться, как работает этот сервис, и успешно реализовали API для скачивания файлов и получения результатов обработки.
Несмотря на трудности, с которыми столкнулась наша команда при решении поставленных задач, мы реализовали многопоточность для файлов, структурировали логику платформы, улучшили дизайн, сделали интерфейс удобным, разработали микросервисную архитектуру.Мы подключили несколько плагинов и оптимизировали их под нужды клиента. Мы также оптимизировали плагины RedmineUP и обновили Redmine до последней версии.
Gentoo Linux, Ruby, Ruby on Rails, IMAP