Sunday, October 26, 2008

I have seen a lot of conversation on the forums surrounding how to monitor the status of calls placed into the Parking Orbits. I think that that it would be worthwhile to explore a deeper understanding of the Park Orbits within 3CX as well as how the 3CX Softphone manages to provide this information to us.

Let’s begin with a simple explanation of the SIP SUBSCRIBE and SIP NOTIFY messages. At the most basic level, a client sends a SUBSCRIBE message to the PBX for a given extension. When anything on that extension changes (e.g., it starts ringing, is active, is idle, etc) then a SIP NOTIFY message is sent from the PBX to the client who subscribed to the events pertaining to the designated extension. An example of this would be if a receptionist has a BLF light on her phone to tell her the status of the CEO’s phone. In this case the receptionist’s phone has sent a SIP SUBSCRIBE message to the PBX for the CEO’s extension. When the CEO’s extension starts ringing a SIP NOTIFY event is sent from the PBX to the receptionist’s phone to tell it of the event pertaining to the CEO’s extension.

How the 3CX Softphone does it
You have probably noticed that the 3CX Softphone seems to know the status of all the phones as well as of all the active Park Orbits, VoIP Lines, etc. Is this magic? Nope! It’s simply using SIP SUBSCRIBE and SIP NOTIFY events. This of course begs the question, “how does my softphone know what all these extensions are in order to send SIP SUBSCRIBE messages for each one, especially when Park Orbits are created dynamically?” The answer doesn’t. When the 3CX Softphone first launches it sends a SIP SUBSCRIBE message for the special account “any‐dn”. This is basically like saying “I want to SUBSCRIBE to everything.” So, now, anytime any extension, Park Orbit, VoIP Line….has an event, a SIP NOTIFY is sent to the softphone. This allows the softphone to show you Park Orbits dynamically when they are created and destroyed.

Implications to hardware phones
Most hardware IP phones I have seen that indicate they support Park Orbits require these to be some type of true SIP account that it can send a SUBSCRIBE message and receive NOTIFY messages for. Obviously, this won’t work with 3CX at the moment because the Park Orbits are not really true SIP accounts and are created dynamically. In the long run, this is the easier solution.

But, its important to understand what we might be able to do today.

What I do see as an interesting possibility is the creation of an XML application on the IP phone to handle this. What I am envisioning is that on the 3CX webserver side we could create a simple PHP application that sends a SUBSCRIBE message to the PBX for “any‐dn”. Of course, we will then initially receive back a series of SIP NOTIFY messages to give us the status of all the existing DNs. The Park Orbits could be extracted from this and sent back to the XML requester (the phone who made the request to the PHP page). The PHP script can complete by cleanly ending the open SUBSCRIBE conversation.

  1. Phone requests parks.php
  2. Parks.php send SIP request to any-dn
  3. Parks.php receives response (notifys)
  4. Parks.php extracts Park orbits from responses
  5. Parks.php formats XML structure properly for the phone
  6. Parks.php sends output as properly formatted XML structure back to phone
  7. Voila, we see the park orbits on our hardware phone

I believe this would be a very straightforward way to allow a user to monitor park orbits and would not only give us status but also any other information that is sent back in the XML Presence structure that 3CX returns (but that’s an article for another day). There is actually quite a bit we could here.

Happy 3Xing!!!!



Saturday, October 25, 2008

One thing I have found is that VoIP phone lines can make or break an install for 3CX. You can have the most well thought out 3CX deployment: great hardware, great phones, great software, great design.....but add in VoIP lines and if the end user hears jitter or garbage, the whole install is deemed a failure.

The issue with VoIP service is that there is so much happening between your 3CX box and the ITSP (Internet Telephony Service Provider) that you have chosen, that its practicaly on a whim and a prayer that you get good call quality. The provider can have a great might implement QoS on your edge router, but you can't control whats between you and them.

The kicker of course, is that there is such a cost savings for SMBs (Small / Midsized Businesses) to use VoIP lines that it is extremely tempting and frankly, much more flexible than POTs and PRI.

I have spent some time in my firms home area and have been able to identify at least one privately owned ISP (which is easier to deal with than some goliath like ATT) that is not only an ISP but also provides VoIP trunks. But, to go further than that, they maintain their own physical connections to the PSTN (Public Switched Telephone Network). So they are a true ITSP NOT a wholesaler shipping your traffic to another provider.

What does this mean? It means that if they are the customers ISP....and also the VoIP dial tone provider....that the customers Outbound/Inbound VoIP traffic jumps directly to their upstream ISP and is placed onto the PSTN. As well, you have 1 provider who controls the end to end for both internet and voice on a single pipe.


  1. Drastically improved call quality for a VoIP provider
  2. Single vendor for voice and internet service
  3. Cost advantage because the vendor is delivering 2 services bundled rather than buying these 2 services from seperate vendors
  4. Much improved engineering support from the ISP since they are not a goliath


Well, I am NOT AT ALL saying that the ITSP only companies out there are not good. That is not my point. What I am suggesting, is that there is too much happening between the customer and the ITSP to be able to ensure call quality and hence a happy end user. Furthermore, I am suggesting that localized ISPs, that can also act as an ITSP (and when I say this I mean they have physical PSTN connections in-house and are not shipping the VoIP traffic to some wholesaler) can offer some great benefits as well as more reliable call quality.

Just some thoughts to consider.

Happy 3Xing!!!



PS - Don't forget about our upcoming 3CXtreme training. Its going to be a lot of fun! We have a good venue and we're going to have a great small group of individuals who really want to dig in to the 3CX product.

So dont forget to sign up!

Wednesday, October 8, 2008

This December, Worksighted will be hosting 3CXtreme, an advanced 3CX training program for 3CX partners and end-users. The training comes just a few months after 3CX's Boot Camp in Florida and will provide a more indepth training that complements Boot Camp.

View 3CXtreme Training Website

3CXtreme training is intended to be a high-touch training experience focused on advanced solutions available with the 3CX solution. This session's topics include Unified Messaging, XML development, Hot Desking, multi-office deployments, and more.

3CXtreme training will take place in a classroom-sized setting so we are able to better understand usage profiles for each attendee and customize the training to maximize knowledge sharing. This structure will also allow a better "community building" experience, where attendees and experts will have more meaningful interactions through intensive training and nightly activities.

When: Wednesday, December 10th - Friday, December 12th
Where: City Flats Hotel - Holland, MI - USA

Registration and Pricing
Standard Registration: Opens October 1, 2008 - $1,695 USD
Early Bird Registration: October 1, 2008 - October 24th, 2008 - $1,495 USD


  • 2 Night Hotel Stay (at City Flats Hotel)
  • Airport transportation to/from Grand Rapids, MI (Gerald R. Ford) Airport and Hotel (both arrival and departure)
  • Welcome Reception on December 10th
  • Breakfast/Lunch/Dinner on December 11th
  • Breakfast/Lunch on December 12th
  • Prizes!