Tuesday, June 9, 2009


Sorry for my terrible absence from posting on the blog. Our firm has been extremely busy with a lot of exciting projects including the acquisition of a healthcare IT provider. So this, combined with the fact that I am a slacker, is my excuse for my terrible absence:)


It's the partner bootcamp in Chicago today. Just started a little while ago and Brian Conway is presenting some great info about the upcoming features in v8 of 3CX.


He indicated that we can expect the v8 beta coming out in July this year. So that's pretty exciting. I am also very excited becasue the coffee machines at the Microsoft Training Center have progress bars on them. Now, my life of watching progress bars is complete.
Other cool items we are excited about, call boomerang, enhanced CRM integration, SecureRTP, Skype Gateway, LDAP integration to Active Directory, remote phone reboots, and many more!


I will be starting the technical training shortly....for those of you that are forced to listen to my mindless garble, I apologize scincerely, later on there will be beer adn life will be better:)


Best,


Mike

Sunday, March 22, 2009

Sorry I have been absent for the last month from my postings. I have been absolutely swamped with installs and support. Which, in this economy, is a good thing.

Over the last month I have done work for several 3CX customers who are using 3CX as a softswitch to provide VoIP services to business and residential customers. Let's assume the customer is feeding 3CX with a SIP Trunk. In this scenario, the customer typically wants each extension to outpulse a different CallerID to the world. The issue is, by default, 3CX will send the authentication ID you have configured on the Trunk (typically the main number assigned to the trunk by the SIP provider). So, how do we do this?

The first thing I will caution, is that you must check with your SIP Trunk carrier to verify they will accept caller ID from your 3CX system. Some providers override anything you send. Now, assuming they will accept this data form you on each call, you need to find out which SIP header fields they need this data to be in. The most common are for it to be in the From: and the Contact: fields of the outgoing INVITE from 3CX to the SIP carrier. So, we need to do some advanced customization of our SIP headers on our main outbound SIP Trunk.

  1. On your VoIP Provider account go to 'Outbound Paramaters'
  2. Set the 'From: Display Name', 'From: User Part', "Contact: User Part' fields to "CallerNum".
  3. Set the Outbound Caller ID field on each extension in Extension->Other->Outbound Caller ID to be the value you want to outpulse for each extension.

You will now be sending your customized Caller ID in your SIP INVITE.

Happy 3CXing!!!!

Best,

Mike

Tuesday, January 27, 2009

Background:

Acme Corp is a small manufacturer of baby toys in the US. They are headquartered in San Antonio, Texas with a second small office in India. The San Antonio office employs 40 staff and provides its customers with a critical support line (CSL) to call to report important problems with their toys or to get information on potential toy recalls. Over the last year, Acme has been expanding sales in the US and Europe. Because of this, Acme corp is experiencing an increase in calls to their CSL that are coming outside of their standard US operating hours of 8AM-5PM Central Time. The CEO of Acme Corp has decided to rent a small office in India and hire 2 call agents to work in that office and provide extended hours phone support for the CSL. The IT department has already completed integration of the WAN between the new India office and the San Antonio headquarters. Primary Internet is fed into the San Antonio office and provided to the India office via the existing WAN connection. No phone lines or voip services have been purchased.


Problem Scenario/Requirements:

  1. From the hours of 5AM-8PM CST, all calls to the CSL are to be answered in the US by a 4 agent team. Outside of these hours, calls to the critical support line are to be answered by the India office's 2 agent team.

  2. The CEO has requested that this be done in the most cost effective way posible while still meeting the other requirements.

  3. The solution must be tolerant of a WAN link failure between sites.

  4. The solution must be tolerant of a loss of Internet connectivity or a primary Telco failure in San Antonio (not both).

  5. Any callers waiting to speak with an agent during the answering shift from US to India (morning or evening) must be seemlessly shifted to the other answering team.

  6. All calls inbound to the CSL (and only the CSL) must be recorded. When agents make outbound calls, these should not be recorded. This functionality must be automatic and require no special intervention by the agent.

  7. No voicemail is to be used for the CSL. Calls must be answered or held until an agent is available. Individual agents are permitted to have voicemail boxes.

  8. The solution must support at least 12 concurrent calls to the CSL and be easily scalable.

Have fun!

Submit your solution as a comment. I have to release comments for posting so I will hold them until the 2 weeks is up. You can post questions if you want and I will answer and post for all to read during the 2 weeks, but I would like to keep questons to a minimum and base the solution off the info you see. Don't ask me "what I am looking for" for a particular item. That's up to you!

Happy 3CXing!!!!

Best,

Mike

Saturday, January 24, 2009

So, as I'm sure everyone can tell, one of my favorite things to do is come up with creative ways to solve 3CX challenges. Sometimes, these are just creatively leveraging existing features in a unique way and sometimes it's completely hacking the heck out of the thing to make it bend and submit to my will!

So, I have decided to begin creating bi-weekly challenges. Every other week I will post a new 3CX related problem that I will be challenging readers to solve. Everyone who would like to submit a response will simply need to post a comment in response to the original post. Since I moderate the comments, I will review everything at the end of the challenge period before posting the winner (and other good solutions). This way nobody should be able to leverage anyone else's ideas. Just make sure to include your name on your post so I don't have to credit "anonymous" winners.

What do you win? Just my undivided admiration and praise until the next winner is crowned.

Quartlerly, I plan to decide which solution submitted during that quarter is judged to be the best one and that lucky poster will win an Amazon gift card. I have debated having a giant, gold-plated, heavyweight wrestling belt made that the winner could wear proudly around town. But I decided to go with the gift card.


Happy 3CXing!!!!


Best,

Mike

Wednesday, January 14, 2009

The new patch was released yesterday for general download. Many bug fixes and some nice little enhancements as well.

Good job guys. Keep up the good work!

Best,

Mike

Tuesday, January 13, 2009

I always have clients who want to be able to more easily record their DR messages. Or, at least the main one at the top level. So, I set out on a quest to figure out how to do this. Obviously, long term, it will make more sense for 3CX to make this a real extension we can record from the IVR for...but at the moment it is not...so here we go.....

I will preface this with my usual...I like to do things that are completely unsupported to my PBX:) If you break your PBX doing this, 3CX is not going to support you nor will I. You use these instructions at your own risk.

Alrighty then!.....

  1. Create a voicemail enabled extension in 3cx. Let's call mine 9997.
  2. Call in and record your greeting annoucement for this extension. In the directory "C:\Program Files\3CX PhoneSystem\Data\Ivr\Voicemail\Data\extnum" you will find the file SaveVMGreeting.wav. This is the recording you just made.
  3. Now, create your digital receptionist. When you upload the wav file select the recording from the previous step. in my case this is located here "C:\Program Files\3CX PhoneSystem\Data\Ivr\Voicemail\Extensions\9997"
  4. Now, delete the SaveVMGreeting.wav file from the "C:\Program Files\3CX PhoneSystem\Data\Ivr\Voicemail\Data\extnum" directory.
  5. After creation of the digital receptionist in step 3, you will notice this file has been uploaded here..."C:\Program Files\3CX PhoneSystem\Data\Ivr\Prompts". Make a backup copy of this directory just in case you mung it up ;)
  6. Download junction from http://technet.microsoft.com/en-us/sysinternals/bb896768.aspx
  7. Extract junction.exe and put it somewhere on your PC
  8. Go to a command prompt and CD to the location you put Junction.exe
  9. Run the command.. junction.exe "C:\Program Files\3CX PhoneSystem\Data\Ivr\Voicemail\Data\extnum" "C:\Program Files\3CX PhoneSystem\Data\Ivr\Prompts" making sure to replace extnum with your extension number from step 1.

OK, now the voicemail greeting directory for the extension you created (for me 9997) is symbolically linked to your prompts directory and the wav file in use for the digital recptionist is SaveVMGreeting.wav and is located inside the prompts directory. This basically tricks the file system so that whenever you record your VM greeting for the extension your created you are really overwriting your Digital Receptionist message.

**DO NOT DELETE THE EXTENSION VOICEMAIL DIRECTORY WITHOUT FIRST UNLINKING THEM OR YOU WILL DELETE THE PROMPTS DIRECTORY.**

Whats the result of this? Whenever the voicemail prompt in direct extnum is re-recorded it is actually replacing the SaveVMGreeting.wav file in the prompts directory and hence allowing you to record your digital receptionist message very easily.

This will only work for 1 level of your digital receptionist since all VM recordings have the same file name.

Is this a total hack? Yes! But it's beautiful isn't it? :)

Happy 3CXing!!!!

Best,

Mike

Sunday, January 11, 2009

So, after spending time analyzing the SIP interactions it appears that the Aastra's reboot when they receive a "200 OK" message back from 3CX after registration/re-registration. Occasionally, 3CX is sending back a "200 OK" without a contact field in it. The aastra seems to not handle this well and cause a reboot after crashing the SIP engine on the phone.

I suspect this occuring with all phones but only getting noticed on the aastra 5xi family because of poor error handling by aastra.

Best,

Mike

Saturday, January 10, 2009

Just a reminder to everyone about our March 3CXExtreme training session. Yours truly will be running it so (I don't know if that's an enticement or a repelent) so don't miss out.

It's 2 full days of training in a classroom environment. Were keeping these sessions smaller and really trying to have synergy amongst those in attendance. The price is all inclusive except your airfare.

Im going to be changing 1 session (session 4) and adding another one (troubleshooting and SIP analysis) this week so you can check back in on that agenda. But it will be a good time. End users and partners are welcome.

3CX by day....beers in the evening.....I mean come on, you can't possibly be busy enough to miss this!

Details are at http://www.worksighted.com

Best,

Mike

Not sure if any of you have noticed this but with the advent of v7 you can now monitor Park Orbit status via BLF (sort of).

As I'm sure you all know the Park Orbits work like a combination of a virtual extension and a dial code and a queue. Blind transfering a call to *01 parks it to position 1. Calling *11 picks the call in position 1.

In v7 I have been able to add a BLF status key for *0. This goes off hook if there is a call parked anywhere in the queue. It goes on hook if there are no calls parked. Now, this doesnt show us who is parked and where. Nor can you pickup bu pushing the blf key since pick is a different dial code....but one could argue those are limitation of a blf key on a phone.

So, nothing earth shattering, but interesting as I know many where interested in this.

Happy 3CXing!!!!

Best,

Mike

Thursday, January 8, 2009

I've seen talk on the forums about wanting to bring in a fax directly to 3CX via a VoIP provider. Currently, 3CX only supports faxing via a PSTN gateway device. I'm not saying I disagree with them, but I couldnt help myself from trying to make it work:)

I decided to utilize our BroadVox SIP trunk for this since they support T38 faxing.

Today I was able to have some measure of success in receiving inbound faxes. The key thing to note is that your SIP trunk needs to have "PBX Delviers Audio" disabled and "Support Re-invites" enabled. With this combination I was able to successfully negotiate a T38 session with broadvox and receive a fax.

Best,

Mike

Tuesday, December 23, 2008

This requires you to modify the 3CX databases. While I have done this several times without issue, please be aware that you take full responsibility for your own PBX and you use this info at your own risk. You should make sure to have a good backup on hand. As well, it is likely 3CX would not support these changes and either will I.

OK, here we go....



  1. Download pgadmin III to use for modifying the database. http://www.pgadmin.org/download/
  2. Install pgadmin on your 3CX box, the defaults should be fine
  3. Launch pgadmin and go to 'File->Add Server'
  4. For 'Name' and 'Host' enter '127.0.0.1'
  5. For 'Port' enter '5480'
  6. For 'username' enter 'phonesystem'
  7. For 'password' we need to perform the following....open your ini file located at c:\program files\3cx phonesystem\bin\3cxphonesystem.ini. Do a Find and look for the string 'dbPassword'. You should find a long alphanumeric string with hyphens. Copy the alphanumeric string and paste into 'password' in pgadmin
  8. Make sure the 'connect now' option is ticked
  9. Hit OK.

You are now connected to your 3CX database with full admin rights. At this point, you can completely mung it up.

Now, in pgAdmin....

  1. Navigate to 'databases->phonesystem->schemas->public->tables'
  2. Expand tables
  3. Right click the 'parameter' table and select 'view data->view ALL rows'
  4. Scroll to the bottom of the table
  5. We are going to create a new row by typing values in the row marked with '*'
  6. In column 1 enter 'ALLOWUSEBUSYOPTFORGROUP'
  7. In column 2 enter 'allow group busy'
  8. In column 3 enter '0' (thats a zero not an O)
  9. In column 4 enter '1'
  10. At this point, the last column has nothing in it
  11. Click in another field elsewhere in the table (in other words, click off this new row). this commits the row
  12. Now, click the refresh button at the top of the window. This will autopopulate the last column with the proper next seq num.
  13. Exit pgadmin

Now, go back to 3CX and restart all services. Once everything comes back up your old 'allowUseBusyOptForGroup' should be working again.

Happy 3CXing!!!!

Best,

Mike

I wrote a post for the 3CX corporate blog about this here....

http://www.3cx.com/blog/voip-howto/connecting-your-home-phone-to-3cx/

Some of you may find it interesting.

Mike

Wednesday, December 3, 2008

One of things I love most about 3CX is the simplicity of the management interface. 3CX has done a great job making it very easy and intuitive for administrators to command and control our IP PBXs.


But what about managing our IP Phones?


As many of you know I am a big fan of the Aastra family of XML enabled IP phones. I really love the balance of usability, function and cost that Aastra has managed to achieve (especially with the 5xi family). As well, I am also a big proponent of leveraging the use of XML control that is available in today's IP phones.


While there are a whole host of things we can do with XML scripting on our IP phones, I have become specifically interested in the topic of config management.
If any of you manage a network with more than about 25 IP phones, then you know that managing config files can sometimes become a little bit on the painstaking side. Sure, the use of centralized, tftp based, config distribution definitely makes it easier to "centrally" manage our IP phone config files. It helps us avoid having to make changes on individual IP phones via web interfaces.


There are a few drawbacks to this approach. First, we are still managing a lot of separate files (both global and mac specific files). Second, if we do need to institute changes to subgroups of phones then we may not be able to do this via global.cfg files and will need to edit several files manually. Third, changes made to cfg files are not applied to the IP phone until it reboots and requests it config via tftp.


So, while serving up our config files via tftp is far superior to managing a large amount of phones via web interfaces, it still is not the perfect solution. So, I decided to go in search of some other possibilities and, of course, I love anything than can be done via XML :)

Introducing the AastraIPPhoneConfiguration element...

After some review of the Aastra XML specifications, I came across this little shining gem. The AastraIPPhoneConfiguration XML element allows us to do exactly what we would want, send config parameters/values to an IP Phone as an XML data structure.

What could this mean for config management?


This capability opens the door for users to begin storing phone configuration in a database and serving configs back to the phones via XML push. As well, changes could be made centrally and pushed to phones in real-time rather than requiring reboot (now, the caveat is that certain changes on IP phones always require reboot).

What would this solution look like?


An Aastra IP phone can be configured to request a web application at boot time. A simple front end web application could be created to send back the proper XML data structure based on the MAC address of the phone through a simple database query. Furthermore, the web application could offer a simple admin front-end via which an administrator could make configuration changes to a phone and push those changes in real-time. Effectively, we would be creating a centralized phone configuration management application.


You have to love the power and flexibility that XML controls give us over our IP Phones, I sure do. Wouldn't it be great to have a phone management utility that has us spoiled as the 3CX admin interface? I think it's possible!


Happy 3CXing!!!!


Best,


Mike

Some of you may be familiar with some work I did in the past to simplify the deployment of remote extensions using a combination of openvpn on a 3cx server and a SNOM 370 IP phone. In this case, we used the built in vpn client on the SNOM 370 to connect back to the 3cx server running OpenVPN and provide simple and secure remote extension setup. If you want to read more on this you can find it here... http://3cxblog.worksighted.com/2008/09/first-post-test.html


This work still left us faced with the problem that, while this is great for 1 model of phone on the market today, what about everyeone else? And what if a company already has a VPN infrastructure in place (like many companies do) and perhaps does not want to (or is not permitted to) leverage a secondary OpenVPN infrastructure? How are these users to deal with remote extensions?


The inherent design of SIP w/ RTP makes it reasonably complicated to "easily" traverse firewalls since we are dealing with a lot of 2-way connectionless traffic. It becomes somewhat "hit-and-miss" to get remote extensions working properly (for the lay user anyway). Throw into this mix the fact that many ISP are now offering their own voice services and in some cases bocking service or degrading quality for users not on their voice solutions and we have a nice recipe for a solution that's more complicated than it's worth.


If a true VPN exists from Site A to Site B, the implementation of the remote extension become quite simple since we have full internal visibility between the phone and the 3cx server. While this is typical for branch offices where they can justify VPN endpoint devices at each site, what about the typical home tele-worker who needs an extension? We certainly cannot justify expensive equipment at user's homes and, as well, certainly do not want to deal with attempting to modify users home equipment to create patch work VPNs or battle against dynamic IPs and port-forwards. Yikes!


What we need is a simple, easy to deploy, easy to manage, inexpensive vpn solution for remote workers.


Enter the "pocket" vpn appliance....


It seemed to me that what we needed was a tiny hardware VPN appliance that could sit in front of a remote phone and provide true, IPSEC VPN capabilities, irrelevant of the phone being used.
After spending some time hunting around I came across this interesting product from ZyXEL. The ZyWALL Personal Firewall P1. It is a tiny, wallet sized, IPSEC VPN appliance designed for mobile workers. Now, they are intending it to function for a PC, but I see no reason why it couldn't work for an IP phone. Take a look here....
http://www.zyxel.com/web/product_family_detail.php?PC1indexflag=20040908175941&display=6244&CategoryGroupNo=0E8EA8FA-AF7D-434F-A527-F337AB9A3A51


I realize there would likely be some complexities getting this to work with different brands of VPN concentrators at the head-end, but in concept, I believe this to be fairly do-able. It would provide drastically simplified deployment of remote phones as well as security and encryption.
I'm interested to hear what others have to say about this possibility. Obviously it does not need to be this particular product, but something similar anyway.


Happy 3CXing!!!!


Best,

Mike

Saturday, November 1, 2008

Finally got a window free from customer demos. So, I took advantage of this time to upgrade our testing/demo system fromm v6 to v7 Beta. Our test box runs Win XP Pro SP3

I must say the upgrade process went smooth.

  1. Backup v6 using 3CX backup utility
  2. Uninstall v6 (do not select tick boxes...this leaves your config in place)
  3. Install v7
  4. Activate v7License key
  5. Restore v6 backup

Only major thing you need to be aware of is that your DIDs will need to be created. I'm not aure why this is but it was stated on the 3CX blog as a known item.

So, all in all, upgrade from 6 to 7 beta went smooth as silk.

Mike

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.

SIP SUBSCRIBE and NOTIFY
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 is...it 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!!!!

Best,

Mike

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 system....you 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.

Benefits?

  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

Conclusions?

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!!!

Best,

Mike

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

Includes:

  • 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!

Monday, September 29, 2008

I am wrapping-up initial development of a hostdesk software for Aastra phones and 3CX. (but I plan to extend to other XML capable phones, SNOM is next on my list). But anyway, the app is pretty slick. I based the beginnings on the aastra xml scripts that do a limited hotdesk function in conjunction with asterisk. But then I added quite a bit of capability as well as added a web management interface and obviously integrated with 3CX for authentication purposes and other features.

Essentially, the app works as follows...

  1. Phone boots and requests aastra.cfg from tftp server
  2. aastra.cfg specifies a startup XML app
  3. Phone launches XML hotdesk program and performs authentication ,etc
  4. XML app imports extension specific parameters from ini file
  5. Extension is marked as active in the active extensions file
  6. XML app then dynamically writes the .cfg file including special parameters
  7. Phone is told to reboot and then fetches .cfg as usual
  8. Voila! You have a working extension with your special attributes (blfs, etc)
  9. User can now "log out" and extension is "released"

I've also included a basic web management interface that allows administrators to see which extensions are in use as well as forcibly reliease extensions after abnormal phone reboots etc.

There is definitely much more I will add in future updates, but hey, it works and it's free!

I will be posting the installation instructions in the next few days.

Mike

Tuesday, September 23, 2008

Im working on some various XML Applications for the Aastra 5xi Series of IP phones. Im starting by porting over some of the pre-made Aastra/Asterisk scripts.

These assume your 3CX installation is in the default c:\program files\3cx phonesystem\ directory. The aastra XML apps will live inside of C:\Program Files\3CX PhoneSystem\Data\Http\aastra

http://www.worksighted.com/blog/3cxfiles/aastra.zip

At the moment this has the weather feed ported over. This creates a 'cache' directory for storing cahced RSS feeds etc inside of /aastra/cache. The weather for specific Zips is cached for an hour per phone to prevent hammering the RSS server.

You also need to edit httpd.conf to allow access to the new aastra subdirectory via http. You need to edit C:\Program Files\3CX PhoneSystem\Bin\Apache\conf\httpd.conf and add the following ...

<Location /aastra>
Allow from all
</Location>

and save the file. You will need to restart the 3CX Apache service for that change to take effect.

To use this on your Aastra 5xi, just assign one of your buttons an XML value of http://xx.xx.xx.xx:5481/weather.php (obviously editing IP and server port as appropriate). If you dont want to prompt for zip and use a default use this format....http://xx.xx.xx.xx:5481/weather.php?zip=xxxxx and it wont prompt for zip code.I'll post the additional scripts to this thread as I go through them.

I'm also working on a hot-desking script which should be cool.

Mike