[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
- backward compatibility kept
- Full
- VoIP providers on one abstraction
- 2+
- with a team of 9
- 5 months
Role & stack
Team Lead / Technical Lead · team of 9
- PHP
- Laravel
- MySQL
- React
- GCP
- Docker
- Jenkins
- Bicom
- RingCentral
