[InsurTech]ModernizationArchitecture

Decoupling a telephony module from a single VoIP vendor

Business logic moved behind a provider-agnostic layer, so new VoIP providers plug in without breaking existing clients.

backward compatibility kept
Full
VoIP providers on one abstraction
2+
with a team of 9
5 months

Context

An all-in-one communications platform for independent insurance agencies: VoIP phone, texting, chat, video, e-sign and faxing, integrated with agency management and CRM systems.

Challenge

The telephony business logic was tied directly to one VoIP vendor (Bicom). Adding another provider meant touching core flows that every existing client depended on.

Approach

  • Decoupled the business logic from Bicom into a provider-agnostic abstraction layer.
  • Moved Bicom behind the new abstraction as one provider among others.
  • Integrated additional providers, such as RingCentral, on the same abstraction.
  • Set coding standards, mentored the team on the target design, and reviewed pull requests.

Result

  • Full backward compatibility for all existing clients.
  • New VoIP providers are added as adapters, not as changes to core flows.

Role & stack

Team Lead / Technical Lead · team of 9

  • PHP
  • Laravel
  • MySQL
  • React
  • GCP
  • Docker
  • Jenkins
  • Bicom
  • RingCentral

Architecture

Architecture diagram: Decoupling a telephony module from a single VoIP vendor
Simplified and anonymized. Component names are generic.