How to Set Up an Active Directory Integrated ShoreTel System to Work With Hosted E-mail Solutions

A commenter named Justin pointed this out to me in the ShoreTel Active Directory Integration post. When you set up Active Directory Integration, one of the ‘problems’ is that ShoreTel will pull the e-mail address from the “User Principal Name” of your Active Directory System. It grays out the email field in the GUI so you can’t edit it either. Which, if you host your own Exchange Server, isn’t really a problem. Most Windows networks with hosted e-mail will have two e-mail addresses for each user. One is the ‘real e-mail address’ which will look a little weird. Say your domain is “testcorp.local”, your usernames are firstname.lastname and your outside e-mails are

My internal e-mail would be: aaron.evans@testcorp.local (UserPrincipalName)
My outside e-mail would be: (Email Field in AD)

ShoreTel will take the first one, and if you host your own e-mail it’ll just show up in the proper Inbox. The problem today is that a lot of businesses are moving to the cloud for their e-mail. Google Apps, Office360, Zoho and a lot of cloud based e-mail services are replacing expensive self hosted solutions. ShoreTel has helpfully put in an easy, if not obvious fix for this.

This should really be a check box.

Set ShoreTel Director To Pull E-mail Addresses From Active Directory E-Mail Field Instead of Primary User

Step 1 – I’m assuming you’ve already Integrated your Shoretel System with Active Directory (Seriously this is the best thing in the world and my most popular article).

Step 2 – Remote into your ShoreTel Director through Remote Desktop. You should now be able to just type “shoretel” into the box if you followed my directions in the article.

Step 3 – Open “regedit”. If you’re still on Server 2003, click the start menu and type “regedit” and hit enter. On Server 2008 it’s the same process. I assume Server 2012 it’s the same idea.

Step 4 – If you’re running a 32 bit server navigate to the following key: HKEY_LOCAL_MACHINE\SOFTWARE\Shoreline Teleworks\

If you’re running a 64 bit server (and we all should be by now) navigate here: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Shoreline Teleworks

I’m unfortuately running a 32 bit server a version or four behind so this is the best screen shot I’ve got:

Shoretel - Email From AD


Step 3 – Add a DWORD value UseADSMTPFieldForEMail and set it to 1. You do this by right clicking the right hand part of the window, clicking New and selecting “DWORD” and naming it properly (it tends to be case sensitive so you might want to copy/paste). Set the value to 1.

ShoreTel - Email From AD 2


NOTE: You MIGHT already see this value here. I didn’t want to over complicate this step with details, see the notes at the bottom of the post for more information on this step, it can a little more complicated than this depending on your version. 

Step 4 – Reboot your ShoreTel Server. I tried several things to get this to work without rebooting. Looks like rebooting the server is the only way to get it to work.

Step 5 – The Director will now pull whatever is in this field in AD:

AD Email


You may need to go in and Sync everyone again. Though when testing it on my server, it mostly did it without any help. If you’ve changed e-mail addresses a few times, it might pull old information, however.

Notes on Step 3:

So step three has some details I left out due to the complexity of the ShoreTel system and version differences. You may have to make a few decisions based on your version and what you see.

If you see the value mentioned in Step 3 you just need to set it to 1. This probably means you have version 13 of ShoreTel or higher.

The forum post Justin provided me with indicated any value named UseADSMTPFieldForEMail would work. Doesn’t matter if it’s a DWORD or not. The actual value of the DWORD doesn’t matter either for version 12 or lower as far as I can tell, just so long as it exists. I suggest making it a DWORD and setting it to a Hex value of 1 because if you upgrade it will need to be that value type for the higher versions. Leaving it at 0 will disable it when you upgrade.

Dock Your iPhone to Your ShoreTel Phone? Coming Soon! Sort of…

ShoreTel Dock with iPad - This image copyright ShoreTel. Not used with PermissionI saw a press release for ShoreTel Dock this morning. Heard about it through the grapevine a few months ago but wasn’t sure what it was. Here’s the ShoreTel announcement page for it.

I looked over the specs for the Dock phone and I have to say, that as big a fanboy as I am of ShoreTel and their products, I’m completely unimpressed with this.

The biggest problem is compatibility. The system will work with iPhone 4/4S, the iPad 2/3rd Generation (The first New iPad), as well as the fourth generation iPod touch. This is a problem and a huge lack of foresight on ShoreTel’s part. Sure there are plenty of these Apple devices out there but they are being quickly replaced by the iPhone 5, iPad “4”, and the 5th Generation iPod touches. People are buying the iPad Mini, which the phone isn’t compatible with either.

Basically it will work with the last two generations of iOS devices with the larger 30 pin connector, but nothing with the lightning connector. So if you get this thing you are essentially limiting yourself to an old iOS device.

That being said, I hope ShoreTel has used a modular design with this phone so that in some point in the future you can swap out the dock connector for the lightning port without having to buy another $600 phone. There are adapters for Apple 30 pin to Lightning connections so that you don’t have to replace all your stuff. Maybe one of these would work but I somehow doubt it.

This is doubly aggravating because if this device works like all of ShoreTel’s other devices, the iPad doesn’t communicate with the phone through the connector anyway. I would guess it actually ‘talks to the phone’ over the network through the server. The dock is probably just a charging station that tells the phone to launch the app. It will magically work whether the device is plugged in or not. Maybe it reads digits, but everything else is probably ‘faked’ through the server. I could be wrong, but this seems to be how ShoreTel does things in general. If it does work like this, there is no reason at all that ShoreTel could not offer a kit with this phone to make it work with an iPhone 5. Hopefully we’ll see that soon.

I’d like to see an Android compatible device like this for those of us into Samsung devices. That one could made to work just as well with Blackberry and some Windows phones with the micro-USB connectors.

Fixing ShoreTel No Messages May Be Taken For This Mailbox Voicemail Error

Another quick fix today. Occasionally you’ll get a voicemail error message from a user’s voice mail box that says, “No Messages My Be Taken For This Mailbox”. It’s vague and gives no indication why this is happening. The user’s voice mail box might not even be full when this happens.

Unfortunately I’ve seen this happen seemingly at random without the user changing anything and it’s not always obvious what is causing the issue when you look at their settings.

So here’s the Fix.


Server Side Fix

Step 1 – Open the user up in Director under Users -> Individual Users

Step 2 – Click on Personal Options

Step 3 – Edit their Standard Call Handling Mode and Uncheck the box labeled “Enable Voice Mail ‘Greeting Only’ Mode” and click save. You will probably need to check all the other call handling modes and make sure this isn’t checked there.

Server Side Call Handling Mode
Click to Enlarge


At Their Desk Fix

Here’s how to fix the same problem through Communicator at the user’s desk.

Step 1 – Go into the Options menu and select their current call handling mode.

Step 2 – Uncheck the “Enable Voice Mail ‘Greeting Only’ Mode” box and click Apply and OK buttons.

ShoreTel Voicemail - No Messages May Be Taken
Click to enlarge

Adding ShoreTel Option 156 to Old Cisco Routers

Found this in my book of notes today. Thought I’d pass this along. There’s a lot of old Cisco Routers out there that configured as DHCP servers on small networks with ShoreTel phones on them. Here’s how to set them up to auto-configure your phones.

I’m assuming the router’s DHCP pool has already been set up. You can use SDM, SDM Express, or any number of other GUI’s to do this. For the options though you have to be in command line. I’m also assuming a basic knowledge of Cisco Routers.

Step 1- Telnet or console into the router. Get into configuration mode (type en, enter your password, then type config t and enter your password if it asks.)

Step 2 – Type: ip dhcp pool [pool name] (might check your running config to get this). If you set the pool up in SDM it should be something like sdm-pool1.

Step 3 – Type: option 156 [ASCII] “”. You may or may not be required to type in the ASCII option, newer routers need it, older routers don’t. Entirely dependent on your IOS version. Also if you have VLANS, set up your string accordingly, the router can pass this information on as well.

If you have older versions of ShoreTel I think the option is 66 for the ftp server. That option will work for newer versions too, but 156 is the more flexible.

Step 4 – Exit out of config mode, save your work and reboot your phones. They should now be getting FTP server information.


How to Use Schedules In Auto-Attendants in ShoreTel

This article won’t tell you how to set up an auto-attendant in general, I may do that later. This article focuses on how to use schedules with Auto-Attendants. I’m also going to talk ‘auto-attendant theory’ a bit which should actually apply to other phone systems. Refer to my article on setting up schedules for links to the different schedule types before continuing.

This article also assumes you’ve got your recordings for your menus done, and know how you want all the Operation functions on your auto-attendant to work. I’ve got an article on how to record menus in Audacity. I prefer this method over the ShoreTel provided methods. You could also use the voicemail system to make your recordings. I like this method to as it give you a backup without needing third party software.

How to Use Schedules in Auto-Attendants in ShoreTel

This article assumes you’ve already set up an on-hours schedule, a holiday schedule and a custom schedule. Look at those links for how to do this before you go to this step.

What Schedules Do for Auto-Attendants

A schedule changes which message is played and how the menu programming works when it is active in an Auto-Attendant. Each Auto-Attendant can have four separate schedules each with a different recording and a different set of functions assigned to each of the numbers.

On-Hours/Off-Hours Schedule

Note: This got a bit confusing to write to start with. I am assuming for simplicity sake that you are setting up your main auto-attendant for your main number. I suggest building separate schedules of each type for each site you have and assigning the proper ones to your auto-attendants. The holiday schedule might be the only exception to this, unless you have sites in different countries where the holidays are different.

The main functionality of the auto-attendant is the On-Hours/Off-Hours scheduling. This is the menu recording you want people to hear when they call whatever number is assigned to that Auto-Attendant. Set the “Schedule” to your main on-hours schedule.

Once you save the change, your main on-hours recording will play during the days and hours you selected when you set up the schedule. The off-hours recording will play during the times not designated as on-hours. You do not need to make a separate off-hours recording. In fact you cannot assign an ‘off-hours’ schedule.

You need to remember to make any menu programming changes to your off-hours menu, not just put a recording up. You can have an entirely different menu off hours than you do on hours if you want. A big thing people forget to do is set up the ability to dial an extension on the off hours menu.

On Hours Auto Attendant
On hours auto-attendant. This one hasn’t been set up yet.


Off Hours Auto Attendant
Off Hours, blank example. You can’t assign a specific off hours schedule here, but you can make an entirely different menu system here if you want.


Holiday Schedule

This is where I get into a little theory on how to deal with schedules and auto-attendants. I am a fan of generic “We are closed for the holiday” greetings. This way you don’t give yourself the chance to forget to change it. All you have to do is remember to keep the holiday schedule up to date.

Set the Schedule drop down to the holiday schedule. Remember you can have an entirely different menu system here if you want.

Holiday Auto Attendant Schedule
Holiday Schedule. Note you can have a different menu system here entirely if you want.


Custom Schedule

I suggest having separate custom schedule for each of your sites. One site might be closed to weather, and the rest might be open still so you don’t want it affecting that site. Remember this overrides the other three menus.

The idea here is to set each auto-attendant in each site to the proper custom schedule (preferably blank ones to start with) and as things come up add to the schedule.

Custom Schedule Auto Attendant
Custom schedule, blank.


So if you’ve set up everything correctly you should have an auto-attendant menu that plays during your work hours, a recording that plays when you close for the day, a recording that plays during the holidays, and one that plays during an emergency.

Make sure you put schedules on all your auto-attendant menus that have a number directly tied to them. This isn’t as important on sub-menus but still not a bad idea.