Issue: Exchange 2010 UM crashing consistently with the following errors
Task Category: UMCore
The Unified Messaging server shut down process umservice (PID=10627) because a fatal error occurred.
Task Category: UMService
A fatal error occurred in the Microsoft Exchange Unified Messaging service. The Service Control Manager will restart the Unified Messaging service automatically to recover from this error.
Error details:
"Microsoft.Exchange.UM.UMService.UMServiceException: The Microsoft Exchange Unified Messaging service can't create a worker process because SIP ports ("5069″ or "5071″) are unavailable.
Task Category: UMWorkerProcess
An unhandled exception occurred in a UM worker process: "Microsoft.Exchange.Diagnostics.ExAssertException: ASSERT: couldn't generate unique name!
at Microsoft.Exchange.Diagnostics.ExAssert.AssertInternal(String formatString, Object[] parameters)
at Microsoft.Exchange.UM.UMCore.GalGrammar.GenerateActivePath(CultureInfo culture, String extension)
After reading Lee Desmond's blog on these errors and having no luck with his recommended resolutions, I kept looking. Searching based on things in the event log, I was able to determine the issue was in the grammar generator that basically builds the speech to say everyone's name when you get their voicemail.
The path for this, by default is in the C:\Program Files\Microsoft\Exchange Server\v14\UnifiedMessaging\grammars folder.
There are several files in this folder, the most being GRXML and CFG files. The default named files of:
- Calendar.grxml
- common.grxml
- contacts.grxml
- Distributionlist.grxml
- Email.grxml
- Mainmenu.grxml
Should be in there, and additionally there are cfg/grxml combinations for "gal" and "distributionlist"
However, this is what our folder had in it (all the way to 99)
Cut/Paste these all to a "backup" directory with the UM service stopped, then restarted it, and watched the application event log until I got EventID 1132:
After this, the grammar directory looked a lot more normal: