We are looking for a telecom expert for consultation. You must have expertise of freeswitch and other PBXs built on top of it including kazoo, fusion PBX and their competitors.
Before you bid on this project, read this very carefully and answer the questions at the end or we will not consider go your proposal.
We are a business that provides services to other businesses. Currently, we are using signalwire sip but we want to expand our features and services and therefore we need to develop our own telecom infrastructure. Most of the solutions we have found have a dashboard or config files. Kazoo has some basic APIs too. But we want a system that we can configure through APIs and 100% of all tasks can be done dynamically.
Let me explain some workflows:
1- A new user signs up to our service.
2- we create the user on our current webserver and save the information in our database server.
3- The user purchases phone numbers from us, which we in turn purchase from signalwire or from other companies like twilio.
4- Now the user logs in to our web softphone (using their account credentials, not the SIP credentials)
5- We want to:
a. Create a new user on the pbx
b. Assign the caller id to the user
c. Create sip credentials that they can use directly on hardware or we don’t share these credentials with them and only use them behind the scenes in our own web based softphone.
6- When someone calls the phone number, we want to have full control over the call, for example:
a. If our user has enabled voicemail, we should be able to play the user’s choice of voicemail message
b. All call information is sent to our webserver through APIs
c. If the user admin wants to listen(tap) an active call of his employees, he should be able to. Again this will all happen on our website so in turn it’s our webserver that’s doing this.
d. If the user admin wants to disconnect the call of his employee and instead transfer it to his own desk, he should be able to.
e. Adding a new user to a current call programmatically
All of this is possible with any of the PBX we choose but we want it in a way that we can do anything programmatically.
Once working, our webserver should be able to know what’s going on with each and every call, should be able to decide what to do with a call, should be able to change passwords, create new users, terminate/transfer/add a new caller to an existing call, make a call and connect it to a sip user only if the call is attended by a real person (answering machine detection).
Once it’s all setup, it should work without any human intervention for years. We first went with kazoo but there were a lot of things we couldn’t figure out how to do on the webserver without human intervention so we abandoned it.
Maybe we should hire someone who will use mod_xml_curl on freeswitch to fetch all configuration through our webserver and our webserver should return the right XML on those webhooks which the freeswitch is listening for. That includes the user directories, dialplans and everything. And on each event, our custom mod on freeswitch should send them to our webserser using API calls.
But that’s a lot of work. Maybe we should use fussionpbx and create our own APIs that directly update the pgsql database but we don’t know what’s the limitation.
If you read all of this then please mention these three things in your proposal:
what is the biggest challenge we are facing?
What possible solutions we have tried?
Why we had to stop using it?
We will only select an expert who has bothered to read this long proposal and will prove that by answering these questions.