As most of you know when Microsoft moved to Exchange 2013 their architecture changed quite a bit. They introduced the Client Access Server as a new role for Unified Messaging and disbanded the UM role altogether putting the processes that ran on the UM server to the Mailbox Server role.
This isn’t a big deal but what happens during an initial call setup is Exchange uses a number of refer and moved temp messages to get the user to the right Mailbox Server running the UM process when a user tries to dial into voicemail via the voicemail pilot number. Now if you’re a larger Exchange customer this may present some issues integrating with CUCM or CUBE or maybe you just haven’t noticed this issue or you just decided its not that important any more. Either way I have a fix for you.
CUCM Issue, workaround and fix
Previous to version 11 of CUCM there is an issue where CUCM can not process the refers correctly and calls into the voicemail pilot number will not connect correctly. The fix is upgrade to version 11. I also discovered the same bug in 2010 when Exchange 2010 would refer back to Exchange 2007.
This does not affect any other functionality if that is a concern. The ability to leave a voicemail, MWI etc. all still work. It is only the ability to retrieve a voicemail via the Vmail pilot number that is affected by this bug. The other functions are using different methods to find and access the correct voicemail box.
If for some reason you would prefer not to upgrade to CUCM 11 there is a work around using CUBE. CUBE has the ability to consume these refer messages coming from Exchange 2013 CAS and UM processes. There is very little information available online for the right configuration of CUBE for use with Exchange 2013 Unified Messaging. I have highlighted below some of the key commands required for at least the ability to have the voicemail pilot connect and be referred to the right Exchange Mailbox server.
You may notice under dialpeer 100 I have highlighted max-redirects 3 specifically in red. This is a very important command that if not implemented will not allow the CUBE to correctly consumer the refer and moved-temp messages and basically cause a never ending loop of invites and moved-temp messages. Thanks to the Cisco TAC for discovering that command.
Does this configuration work for Exchange Online you may ask? I have no idea to be quite honest but it may be worth testing if you are curious. I found basically a void of information in regards to CUBE interop with Exchange Online so this may or may not work with the service.
voice service voip
no ip address trusted authenticate
mode border-element
media flow-around
allow-connections sip to sip
no supplementary-service sip moved-temporarily
no supplementary-service sip refer
supplementary-service media-renegotiate
fax protocol t38 version 0 ls-redundancy 0 hs-redundancy 0 fallback none
sip
referto-passing
!
dial-peer voice 100 voip
preference 1
max-redirects 3
destination-pattern <voicemailPilot>
no notify redirect ip2ip
session protocol sipv2
session target ipv4:<ExchangeCASIP>:5060
session transport tcp
dtmf-relay rtp-nte
codec g711ulaw
no vad
no supplementary-service sip moved-temporarily
!
dial-peer voice 300 voip
preference 1
destination-pattern [2-9].........
session protocol sipv2
session target ipv4:<CUCMIP>
session transport tcp
incoming called-number .
dtmf-relay rtp-nte
codec g711ulaw
no vad
no supplementary-service sip moved-temporarily
!
As always, I hope this helps some hapless sole looking for an answer.
VoIPNorm