Open PhoneServices is coming

The architecture and concept is complete, and some proof of concept code has been written. So basically this product will provide the following:

  • SIP phone provisioning for Cisco and Yealink phones – possibly other models, but I’m starting with those.
  • XML Phone services such as Directory Integration/updates
  • Background image uploading and browsing
  • pushing commands to phone via XML – the neatest one of these is Click to Dial
  • Phone Authentication code for XML or configuration pushes
  • Click to dial is the proof of concept code I wrote. I wrote the PHP code to build the XML that a Cisco phone expects to receive, the authentication mechanism the phone uses to authorize the push of XML commands to the phone and then I can do an HTTP GET request, passing variables into the URI such as phone number, and it’ll trigger that code and push XML to the phone, the phone will authenticate to make sure that push is authorized and then Execute the CiscoIPPhoneExecute code. That basically is comprised of a URL/URI. There are a bunch of internal URI’s to the phone reference in the Cisco developer docs to make the phones do different things. The one I like most is the Dial URI.

    So here’s what I did, I wrote a Microsoft Outlook Contextual Addin that triggers on recognition of a phone number pattern in an email and highlights it. When you click that highlighted number the plugin activates and it pulls an HTML interface from my webserver, which has a button to dial. When you click dial, the process described above gets triggered and your desk phone dials.

    So, you’re in outlook, you see your customer’s phone number, you click it with your mouse, and your desk phone dials the number. Kinda freakin cool. This is all just proof of concept code at this point, not full featured stuff. I’ll setup a Github and release some code when I have something worth releasing. The POC code isn’t secure at all from an implementation standpoint, so not really gonna release that.

    The cool part is it works with Any VOIP SIP provider. You don’t need callmanager, you just need my server installed.

    I also built a portable WAMP stack to suppor this that can be unzipped in any directory, you run a configure script and it changes all the config file paths and installs the daemons as services, initializes the mySQL system databases, Creates windows firewall rules for the needed ports, makes you set a password for mySQL and starts stuff up with a default install of appserver that needs to be configured for your environment. There is a little tweaking left to do on that, I found a couple of errors in one of my scripts, but it’s close.

    My challenge is that I work too freaking much right now, so the free time I do have, I really need to spend with my wife. When work slows down I’ll revisit this and spend more time on it. I really think this could be a cool open source project.

    I also registered http://www.openphoneservices.com

    The phone provisioning piece will definitely make provisioning Cisco phones for FreePBX/Asterisk MUCH MUCH easier. I just got a Cisco CP-8851 I need to provision. I just haven’t had time. Right now I use a Cisco 7945G – oldschool color phone for testing, but the API hasn’t changed much, even with the new phones, they just support a few more features.

    The Yealink phones – the API on those is very Similar to Cisco’s published API, but their documentation is a LOT better and there are options documented that make it even more configurable than Cisco phones. Those options may exist for Cisco phones, but they aren’t exposed in a published API, so who knows.

    None of this btw uses any Cisco SDK code to perform any of it’s functions – it’s all raw, written from scratch stuff.