Monthly Archives: June 2015

Unified Messaging TUI Issue “Not a Valid Mailbox Extension”

Symptom: You’re trying to change your Exchange UM prompts via the phone, hitting #* and your extension, yet despite having all the right privledges, you hear the message “<ext> is not a valid mailbox extension.  Please enter your extension.”.

I recently ran into this again, and I’ve blogged about it a bit before, but didn’t realize at the time it also affected Lync and Skype for Business as well so I’m going to explain a bit more clearly how to mitigate.

The first items you’ll want to check are the obvious prerequisites.  Your Exchange UM dial plan must have TUIPromptEditingEnabled set to true.  Of course, if you hear the message described, it must be.


The second is to confirm you’re actually allowed to edit the prompts.  You should be a member of the “UM Management” role.  Even if you’re a member of the Organization Management RBAC group, you’ll want to be in UM Management as well.


But, even if that’s all set, you may still be hearing the “<ext> is not a valid mailbox extension. Please enter your extension.”. error.  If you read my previous blog, you’ll understand the issue a bit better, but for the workaround you’ll want a mailbox in the same database as the system database.  You can either move the users who need to edit to this database, or as some of my clients prefer, you can create dummy “editing” mailboxes for this purpose.

To find the correct mailbox database to move the editing accounts into, from the Exchange Management Shell run “get-mailbox -arbitration | fl identity, database”.  Look for the system mailbox with the id “bb558c35-97f1-4cb9-8ff7-d53741dc928c”.  In our example, we can see that it exists in the DB4 database.


Now, simply move the mailboxes you’d like to edit the prompts with to the same database and quickly you should be able to edit the prompts via TUI again.

Known Issue with Skype for Business

Update: About as soon as the KB was released, a patch came to resolve the issue.  Find it here

For those of you getting ready to upgrade from Lync 2013 to go to Skype for Business, if you have Enterprise Voice you need to be aware of a known issue with Skype that could be potentially serious (but a workaround is available).


The issue can occur when you move your Exchange UM objects to a Skype for Business server, there may be transferring issues.  There’s a discussion related to it here on the TechNet forums:

And a KB article was just released by Microsoft:

There is currently no fix, but the workaround is to leave these objects on a 2013 Front End pool.  You can move pretty much everything else, but this might slow the decommission of old servers down.  The fix is expected soon, and will be one of the first released if not in HF1.  In the meantime, there’s no reason not to upgrade, there’s just a reason not to decommission 2013.

So far I’m not seeing many other issues worth chatting about as long as you’re following the upgrade procedures properly.  Thanks and happy upgrades!


New Tool: Lync 2013 Call Forwarding Information Tool

So, I was getting tired of sefautil not existing in PowerShell… this isn’t that entirely, but stay tuned.

The purpose of this tool is to give you an easy front end GUI to review your user’s call forwarding settings. Information such as who’s a delegate of who, who’s got simultaneous ring set, who’s forwarding where, etc. can be difficult to retrieve without a utility such as sefautil.  Sefautil in itself can be difficult. This tool allows you to review this information for all users in a pool in a GUI format that’s easily searchable, sortable, and filterable (Out-Gridview). It also allows you to save the information to a CSV file. The information is gathered by parsing data pulled using Export-CSUserData. No SQL calls are made and no data is written back into Lync.

Because this tool uses Export-CSUserData, please be patient during the loading process. If you have difficulty using this utility, first ensure you can run Export-CSUserData successfully. If there is any corrupted user information in a pool, this can cause issues and that corruption will need to be resolved first.

If you would like to see the information in a different format, say a PowerShell command such as Get-CSUserForwardingInfo that can run for a single user or pool for speed, let me know as well. If there’s interest I can write it.  Though it runs fine on Skype for Business, a separate Skype for Business utility will be released as well with additional information related to Call Via Work.

Finally, the question that I imagine will be asked is: If you can pull this data as read-only, why not give the ability to modify and write it back and avoid sefautil all together? The quick answer is: I have another utility for this that I have not yet released, and reading the data is much simpler than writing it. I am still putting it through it’s paces for quality and will decide if it should be released later.



A quick description of the columns is below:

  • SIP Address:  The Lync account’s sip address.
  • Action: The action to be performed when a call comes in.
  • Applied During Work Hours: True or False based upon  if “During work hours set in Outlook” is set.
  • Forwarding To: Set if call forwarding is enabled.
  • Simultaneous Ring To: Set is simultaneous ring is enabled.
  • No Answer To: If there’s no answer, should voicemail be attempted or a custom number?
  • No Answer In Seconds: How many seconds until voicemail (or “No Answer To” setting) is attempted?
  • Seconds Until Delegate or Group Rings: This is the delay set until other delegates or a team group hear a ring.  This is to allow the recipient to answer the phone first.
  • All Delegates: This is a basic list of all of your delegates.
  • Delegates that Receive Calls: This is a list of the delegates for which the user has set the ability to receive their calls.
  • Team Group: A listing of users in the team-call group

The Action column will show some somewhat cryptic output.  There are a few fields you commonly see in there.  Changing your own forwarding settings and reviewing the output can help you learn what these mean (and help me find any bugs).  In the mean time here are a few to get you started:

  • Column is empty: Call forwarding is not set.
  • enablecf forward_immediate: Call forwarding is set.  Review the Forwarding To column.
  • forward_immediate (without enablecf): Typically forward directly into voicemail.
  • enablecf (no forward_immediate): Typically means a custom forward on no answer exists.  Review the No Answer To column.
  • simultaneous_ring: Simultaneous ring is set up, review the Simultaneous Ring To column.
  • work_hours: “During work hours set in Outlook” is set.
  • delegate_ring forward_audio_app_invites: Simultaneously ring the delegates.
  • delegate_ring forward_audio_app_invites skip_primary: Forward to the delegates.
  • team_ring: Simultaneously ring the team group

If you’re not familiar with Out-GridView, the GUI portion that allows you to sort and filter, it’s simple to use.  Click on a column heading to sort, and to filter, click the Add criteria button and list your settings.  For example, if you wanted to find out every user that had Abraham Lincoln listed as a delegate, you could Add the criteria “All Delegates”, set it to contains, and add a portion of Honest Abe’s SIP address.


To run the tool, just download it from the link below, run it from a Lync Management Shell.  If you have any questions, find any bugs, or anything else, the best place to ask is in the TechNet gallery.  Thank you and I hope you find it useful!

Quick Tip: Call Via Work Call Controls are Unavailable

Just a quick tip that I haven’t seen referenced too much for those of you who are deploying Call Via Work for Skype for Business. If you’re attempting to make a call and you received the following error: “Call controls are unavailable due to network issues. You can still use the call controls on your desk phone.”, you should be aware that the client is making a UCWA request to the front end server through the external web services FQDN.

Call controls are unavailable due to network issues

This FQDN will need to be published internally and should redirect requests received on port 443 to port 4443 on your front end server. This is typically done through the use of a reverse proxy. To determine your external web services FQDN, it’s as simple as checking your topology builder.

Call controls are unavailable due to network issues_ext