Turn your Twilio account into a full PBX



  • So I have been working on something pretty hard over the past week, just implemented for a business last night. They have been up and running for a couple hours today without a hitch.

    In short, using Twilio API's, Bins, and a stateless service I setup on App Engine, I have turned Twilio into a full blown PBX.

    You should know that Twilio offers SIP Registration and IVR, but no phone system features.

    What my project does is add the following features (so far).

    1.) Extensions and extension routing. The ability to transfer from a call back to an IVR/Menu

    2.) Direct Parking Lots

    3.) Busy Lamp Field Support

    4.) Provisioning of phones against SIP registration or a small border element like Kamalio.

    I am thinking of turning into a service that you can connect to your twilio account. Right now I am interested in "Can it do this or that" type questions because I can't think of anything that a FreePBX setup can do that I can't.



  • How is voicemail handled?



  • @dafyre said in Turn your Twilio account itself into a PBX:

    How is voicemail handled?

    Using Kamailio at the moment, have thought of ways though to use Twiml Bins and the Twilio message API to allow message notification on VOIP phones and the traditional experience of checking voicemail by pressing the button.

    Actually makes it easy to add email notifications with transcription and a link to voicemail rather than having to attach it to the message.



  • interesting. Where does your app run? One per customer, or shared?



  • @reid-cooper said in Turn your Twilio account into a full PBX:

    interesting. Where does your app run? One per customer, or shared?

    It's within your Twilio account as twiml bins and an app engine instance on google in its current iteration.



  • @bigbear said in Turn your Twilio account into a full PBX:

    @reid-cooper said in Turn your Twilio account into a full PBX:

    interesting. Where does your app run? One per customer, or shared?

    It's within your Twilio account as twiml bins and an app engine instance on google in its current iteration.

    that's pretty neat.



  • @reid-cooper said in Turn your Twilio account into a full PBX:

    @bigbear said in Turn your Twilio account into a full PBX:

    @reid-cooper said in Turn your Twilio account into a full PBX:

    interesting. Where does your app run? One per customer, or shared?

    It's within your Twilio account as twiml bins and an app engine instance on google in its current iteration.

    that's pretty neat.

    It survived a whole day of production use today. 4 offices. 80+ phones. I expected I would have issues. Knock on wood for tomorrow though.

    Using Twilio for IVR, Inbound, Day/Night is actually easier than using some of the PBX platforms once you get a hang of Twiml.

    Twilio actually has an abandoned project called OpenVBX but it only supports softphones. It also reguired a virtual machine which I am trying avoid.



  • Also, I was able to use ngrok to connect my app engine to Twilio so there is zero security to manage.

    Though @scottalanmiller would appreciate. Ngrok is essentially a vpn in a link.



  • And unexpected bonus in all this, extension dialing that is forwarded to a cell phone allows you to dial commands during call. From cell phone forwarded call you can xfer, park or start recording mid-call.



  • @bigbear said in Turn your Twilio account into a full PBX:

    And unexpected bonus in all this, extension dialing that is forwarded to a cell phone allows you to dial commands during call. From cell phone forwarded call you can xfer, park or start recording mid-call.

    That's pretty cool.



  • Have reached a SIP registration limit regarding Address of Record, which Twilio limits to 10 registrations. But otherwise you get 10,000 sip endpoints to a domain, so I am likely misunderstanding the purpose of the limitation. Hopefully.

    It does seem you could rely on the stability of Twilio for your media and signaling, then use the backend engine to offer additional PBX features. Thought Twilio's IVR kicks everyone elses ass, so its still just for park, extensions, transfers.

    Even seeing where voicemail could rest on Twilio. So perhaps it can be scaled back to an even simpler App Engine.



  • bigbear... i am interested in this. i would love to use just twilio and not have to fiddle with another pbx. open to beta testing or releasing your set up to someone else?

    so can my people connect via webrtc? or is this a sip phone only thing?



  • @trustserve said in Turn your Twilio account into a full PBX:

    bigbear... i am interested in this. i would love to use just twilio and not have to fiddle with another pbx. open to beta testing or releasing your set up to someone else?

    so can my people connect via webrtc? or is this a sip phone only thing?

    I have been getting messages about this over the past month out of the blue for some reason.

    So out of the box you can register endpoints to Twilio now and use WebRTC

    https://www.twilio.com/voice/sip-registration

    https://www.twilio.com/webrtc

    My idea was to use the serverless code model to create the missing features of a PBX, but I had to slim down a light weight softswitch from other projects to handle presence and to translate DSS/Phone commands to something that could call a Twiml Bin or Twilio API.

    The quality and SIP registration leans on Twilio while some things that Twilio doesnt offer leans on a 3rd party app engine instance.

    I have thought about developing this further, but it seems trivial for Twilio to add these features themselves. I havent check in on Twilio updates since last year but I thought Studio would obviate the need for some of the things I was doing. I feel like as soon as I made something distributed everyone would find a way to break it or Twilio would release those features.

    If you dont need presence or extension transfers from a hard phone Twilio does everything you want out of the box. Complex IVR and transfers down to your SIP phone.