Linux/Mac-based PJSIP IVR Application

Job ID: 38397111

Budget: $250 – $750 USD

I am seeking an experienced developer to create an IVR application designed to work within a Linux/Mac environment.


Preferred Stack:
-PJSIP - Ideally with pjsipua (C code) or python3 code using the python module of PJSIP. Any other mature library can also be considered in C or Python (not C++)
-Ubuntu Linux OS

Key Requirements:
- The flow required is as follows
- Register self SIP UA using stored Authentication Credentials.
- Provide an API Interface to dial a SIP endpoint/URI and accept a Websocket URL as a parameter
- Basic Call Handling for Possible Calling Outcomes like Failed, Connected etc and invoke callback functions.
- Stream the media received (both directions) over to the external websocket (websocket uri as received in the API above) in bse64 encoded (mono, 8-bit 8kHz mulaw (Bi-Directional).
- Stop the playing media to the dialed endpoint when there is some voice received from that end- the media received needs to be transferred over the websocket. Don't play and clear the audio-out if there is any media received from the websocket during this time (barge-in)
- Provide an API to play a voice file, voice file shall be locally available. The media of this file has to be played only to remote end-point.
- Detect DTMF and invoke callback.
- Should be possible to run multiple sessions simultaneously via the API.

Qualified freelancers should have:

- Proficiency in PJSIP development and C on Linux or any other mature SIP library in C / Python.
- Comprehensive knowledge of SIP Trunk.
- Should be able to demo some similar work of theirs.
Related categories: C Programming Python Linux Ubuntu