Implement Dynamic Provider Selection for Telephony Services in Twilio and Vonage Integrations
Implement Dynamic Provider Selection for Telephony Services in Twilio and Vonage Integrations
-
Summary
The objective is to implement dynamic provider selection for telephony services in Twilio and Vonage integrations. This will allow the system to switch between different telephony services based on the requirements, enhancing flexibility and efficiency.
-
Blockers
-
[x] None
-
Outcome
Improve the flexibility and adaptability of the Vocode open source library by implementing dynamic provider selection for telephony services, thereby enhancing developer engagement and the overall quality of the product.
-
Technical Details
The task involves modifying several methods in the vocode/streaming/models/synthesizer.py, vocode/streaming/models/transcriber.py, vocode/streaming/telephony/constants.py, vocode/streaming/telephony/client/vonage_client.py, and vocode/streaming/telephony/conversation/vonage_call.py files. The goal is to switch from static to dynamic telephony service providers (Twilio and Vonage).
-
Subtasks
- [ ] Modify the from_telephone_output_device and from_telephone_input_device methods in
synthesizer.pyandtranscriber.pyrespectively to support both Twilio and Vonage. - [ ] Update the constants in
constants.pyto support both Twilio and Vonage. - [ ] Implement the validate_outbound_call method in
vonage_client.pyto validate outbound calls. - [ ] Make the send_dtmf function in
vonage_call.pyasynchronous and use aiohttp with the Vonage client.
Related to #459