cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
25923
Views
10
Helpful
28
Replies

Exchange 2013 UM and CUCM 8.6

Daniel Appleby
Level 1
Level 1

Hi All,

I am having some difficulty setting up a direct sip connection from Callmanager 8.6 to Exchange 2013 UM and want to know if anyone has encountered this or has a solutions. See below:

I am following the exchange 2010 guide as a starter: http://go.microsoft.com/fwlink/p/?linkId=213007

I have the trunk pointing at the CAS 2013 server (which does the SIP 302 redirection to the mailbox server). The behaviour I am seeing is CUCM sends the INVITE to exchange 2013 CAS and it responds with a 302 and the XXXXX@mailbox-server.fqdn (and port) in the contact info in the header. At this point CUCM doesn't even attempt to contact the mailbox server.

From my troubleshooting it seems to want to handle it as a URI so after creating another trunk to the mailbox server and setting up a remote destination the call makes it to the mailbox server but stripps the caller extension in the INVITE.

Is there anyway in the trunk config to get it to follow the URI redirect (i.e. connect to the FQDN and port given in the header)? Having to make seperate trunks to each mailbox server would result in a lot of trunks.

It seems that if the response was XXXXX@ipaddress in the header from the 302 the redirect would work correctly, but exchange returns XXXXX@fqdn

Thanks in advance

Regards,

Daniel

28 Replies 28

Chad Benson
Level 1
Level 1

We are having the same issue with CUCM 8.5.1.  CUCM responds to the 302 with an ACK and then goes back to port 5060 and starts over.

Thanks,

Chad

Ok we have managed to get it working. Here's how:

1. We setup a single trunk to which contains all of our servers (with the CAS role) pointing at port 5060.

2. You then need to setup addtitional a trunks per server. In our case we had a another trunk to the mailbox server with all ports from 5062 through to 5068 in the list (on the cisco side trunk config)

3. You need to create a sip route and select domain routing. Enter the mailbox server FQDN and select the dedicated mailbox server trunk (that was created in step two).

The important bit is the sip route. As the response doesn't contain an IP in the redirect CUCM tries to process as a URI so you need to tell it which trunk to use when it sees the mailbox server fqdn. The only down side is each time you add a new server you got to create a new sip route and a another trunk.

After all that the setup works well.

Regards,

Daniel

Daniel,

We had UM working with Exchange 2010 but are having the same dificulty you experienced getting our UM in 2013 to work! I think your solution will work for us but I an not as well versed as you are with CUCM. Could you post screenshots of what your configuration looks like so we can try and emulate it in our environment?

How do you route the subscriber access number across both SIP trunks? I thought a number pattern could only be assigned to one trunk.

Additionally, I would suggest that you write a blog on how to do this because there are a LOT of Exchange admins and CUCM admins trying to figure out how to get this all working!

Thanks in advance!

Sincerely,

Will Smothers

Hi Will,

Here is the details on how we did our setup. In the example we have 4 exchange servers and all have collocated mailbox and cas roles. If you split your roles then you need to only put the cas servers in the CAS trunk which you will see below.

You cannot use the Microsoft whitepaper doco for CUCM as it simply just won't work on 2013 (it will on 2010).

This setup is for tcp (not tls) and assumes you have configured Unified Messaging 2013

i.e.

server1.example.org
server2.example.org
server3.example.org
server4.example.org


1. Create the SIP profile for Exchange:

Goto Device-> Device Settings -> SIP Profile
Click Add new

Name: Exchange 2013 SIP Profile
Check: Early Offer support for voice and video calls (insert MTP if needed)

Save.
-------------------

2. Create SIP Trunk Security Profile:

Goto System -> Security -> SIP Trunk Security Profile

Name: Exchange 2013 SIP Security Profile

Check: Accept out-of-dialog refer**
Check: Accept unsolicited notification
Check: Accept replaces header

Save.


------------------

3. We now create the main sip trunk pointing to your cas servers. You point your voicemail pilot number to this trunk in CUCM

Goto  Device-> Trunk
Click Add new

Trunk type: SIP Trunk
Device Protocol: SIP
Trunk Service Type: None


Next.

Device Name: Exchange 2013 CAS Trunk
Device Pool: (I use default but it may be different based on you setup)

Check: Media Termination Point Required
UnCheck: PSTN Access

Check: Redirecting Diversion Header Delivery - Inbound
Check: Redirecting Diversion Header Delivery - Outbound

Destinations (example fqdns but the ports will be 5060 if your doing tcp):

server1.example.org 5060
server2.example.org 5060
server3.example.org 5060
server4.example.org 5060

SIP Trunk Security Profile: Exchange 2013 SIP Security Profile

SIP Profile: Exchange 2013 SIP Profile

Save and Reset the trunk.

------------------

4. For each exchange mailbox server create a specific trunk so when the redirect occurs there is somewhere to go:

Repeat this step for each mailbox server you have updating the name and fqdns each time. Make sure you use FQDN as well.

Goto Device-> Trunk
Click Add new

Trunk type: SIP Trunk
Device Protocol: SIP
Trunk Service Type: None
Next.

Device Name: server1.example.org
Device Pool: (I use default but it may be different based on you setup)

Enable: Media Termination Point Required
Untick: PSTN Access

Destinations (example fqdns):

server1.example.org 5062
server1.example.org 5063
server1.example.org 5064
server1.example.org 5065
server1.example.org 5066
server1.example.org 5067
server1.example.org 5068

SIP Trunk Security Profile: Exchange 2013 SIP Security Profile

SIP Profile: Exchange 2013 SIP Profile

Save and Reset the trunk.

----------------

5. Setup the domain routing so when the CAS server redirects the INVITE it knows which trunk to send it too.

Repeat this step for each mailbox server and update the pattern and sip trunk to match each time (i.e.):

IPv4 Pattern: server1.example.org
SIP Trunk: server1.example.org

IPv4 Pattern: server2.example.org
SIP Trunk: server3.example.org
....
etc etc

To create:

Goto Call Routing -> SIP Route Pattern
Add New:
Select Domain Routing from the drop down list

IPv4 Pattern: server1.example.org
SIP Trunk: server1.example.org

The reason you need all this is the CAS servers now put the server FQDN in the redirect which causes CUCM to look for a URI route (hence setting the domain routing). The FQDN must be the one Exchange is using.

Hope this helps

If anyone from Microsoft is reading this please update your documentation as it's not "just the same as 2010".

Regards,

Daniel

Hi Daniel, I work with Will Smothers. Thanks for the information.

I have a  couple of question.

On the SIP profile, are you using CLEARMODE for "Early offer for G.Clear Calls", and also on the SIP profile are you using "

Regards,

Ken

In our case we were hitting Cisco CSCuc74600 Bug.

Basically we were initiating the call on the 1st trunk to the CAS server and the CAS was responding with the "302 Temporarily Moved" message (as it's desinged to do). Then CM used my configured SIP route for moving the call to a 2nd trunk that points to the UM server. (The SIP route uses the FQDN provided in the 302 message from the CAS server).

.

In our call trace I would see a "DNS Query Fail" message shortly after the "302 Temporarily Moved" message. It appears that the CM was unable to resolve the FQDN in my SIP route to an IP address, even though I could ping the FQDN from the CM server.

Reading the Bug, it appears that CM wanted an IP address in the SIP URI vs an FQDN. In Exchange 2010  you connected direcelty to the UM server so this wasn't necessary. In Exhange 2013 you can't configure Exchange to provide an IP address in the SIP URI, by default Exchange provides the FQDN of the UM server.

To resolve this we upgrade to CM version 9.1.2 which did not contain the bug.

Hi Haltervk,

I am stuck in an exact same scenario. My cucm is trying to resolve MX fqdn and getting DNS query fail. My CUCM is not configured with DNS. I know it can be configured but i am not to sure it would make any change. So could you please tell me if your cucm environment was configured with dns or not when you face this issue??

 

Hi Haltervk,

Our CUCM install was not with DNS. I can also confirm the setup works fine on 10.5.

As far as i know CUCM trunks can only resolve A or SRV records, not MX ones.

Regards,

Daniel

Hi Daniel

I have cucm 8.6 without DNS setup. Is there any way to make cucm resolve the fqdn received from exchange 2013 with DNS ??

Any suggestion would be much appreciated 

Thanks

ok i just finished resolving this issue.

my topology consists of 2 exchange 2016 servers

i did just 1 trunk pointing to both servers on port 5060

did not have to do any other trunk or anything that uses other ports. (same way you do exchange 2010)

the issue though is you NEED to use DNS. without dns it wont work.

alother option if you don't want to use dns is to use a normalization script to replace the header but i could not get that to work.

initially i hit the dns bug and then installed 11.0.1a(SU2) and it resolved the issue.

one of my cucm was hanging there after receiving the 302 moved temporarily with the fqdn.

my other cucm was working fine

i did check utils network host fqndofserver and was resolving. it was just not processing it in the sip trunk.

to my experiense DNS is needed with exchange UM but not sure why everybody is mentioning you have to do the 2 sip trunks.

Hi there,

According to my understandings there are some parameters, e.g., Early Offer support for voice and video calls for sip profile, not appearing in older CUCM(like in 8.0 of my case), there is a work around using CUBE. as http://voipnorm.blogspot.tw/2015/07/cube-to-exchange-2013-unified-messaging.html said, CUBE has the ability to consume these refer messages coming from Exchange 2013 CAS and UM processes. 

HTH, Matthew

Daniel,

You are the man! You need to submit this to Microsoft! I agree on them needing to update their documentation. We have an open support case with M$ and they referenced us to a document for CUCM 7 and Exchange 2010!!!

I think one of our other CUCM engineers is going to post a question he has about this...

Thanks again!

Hi Ken,

I had "Early offer for G.Clear Calls" set to disabled and "

Regards,

Daniel

Hi

I followed instructions but I am getting following messagein CUCM 9.1 

(when I am trying to save second trunk)

Unmapped Exception The Destination Address "ex1.test.eu" conflicts with the Destination Address in "ex1.test.eu". Both have the same Incoming Port "5060" specified in their SIP Trunk Security Profiles. Update so that the Destination Addresses and Incoming Ports are unique.

we also have combined roles Mailbox and CAS on 2 servers (justlike this example)

i can not create trunks to  the same server (mailbox and CAS servers on the same machine) using same SIP security profile (i.e. same incoming port 5060) and same server names (like described in the example)

Maybe I am missing something in this instruction