05-31-2014 05:05 AM - edited 03-12-2019 10:09 AM
The implementation of SRV records in the SIP trunk communication between CUCM and IM&P is simple, but it is often confusing as the documentations does not explain it much. This document explains the integration with the help of screen shots, and I hope that this will help you in understanding the setup clearly.
================================================
Scenario
---------
FOr High Availability, it is advised to add multiple CUP servers in the destination address of SIP Trunk between CUCM and CUP. We can add upto 16 IP Addresses as SIP Trunk destination.
However many admins find SRV records to be a more convenient way. Also, we can use SRV to add CUCM Presence Gateway in IM&P server.
Servers Used:
CUCM 10.x
IM&P 10.x
Jabber for Windows 9.7.1
But the same configuration is applicable for previous the versions of above clients
CONFIGURATIONS IN DNS SERVER
a) The first step is to create 2 DNS sub-domains under the main DNS domain - one for CUCM and one for CUP SRV.
In my lab, I created the subdomains as follows:
b) Now, we need to add the below SRV entries:
1) _sip._tcp.subdomain1.domain
2)_sip._tcp.subdomain2.domain
In my lab, the domains are
_sip._tcp.cup.ccie.com
_sip._tcp.cucm.ccie.com
c) Verify from your network if the SRV's are resolvable. Also double check if DNS server details are added in the UC servers.
To resolve SRV from command prompt:
nslookup
set type=srv
_sip._tcp.cup.domain.com
CONFIGURATIONS IN CUCM
a) Create the CUCM SIP Trunk towards IM&P server. In the destination address field, add the details as follows.
As you would have noticed, only the subdomain.domain should be added here. The CCM service prefixes _sip._tcp in the SRV request.
b) Save the Trunk and Reset. Now you would see the below request from the CUCM server in DNS server.
C) Add the SIP Trunk as IM and Presence Publish Trunk in CCM Service Parameter
Now the configuration in CUCM is complete.
CONFIGURATIONS IN IM&P SERVER
a) Presence --> Presence Gateway
Create a CUCM PRESENCE gateway, and as follows.
This configuration specifies the servers from where Phone presence is accepted. Please note that we should give the complete name of CUCM SRV record here.
b) Now in System --> Service Parameter, specify the SRV cluster name as follows.
This parameter should be configured with the CUP sub-domain.
==================================================
HA when DNS Server is down
===========
The IM&P server caches the SRV information, and the Phone service was not affected while I brought down the DNS service. I have not done much tests though. The SRV information is updated when you reset the trunk.
====================================================================
Troubleshooting:
I'm adding a couple of snippets from traces hoping it may help you while analysing logs.
CCM Traces
---------------
My Phone goes Off-hook
00201826.000 |14:15:32.275 |SdlSig |SIPOffHookInd |null0 |SIPStationCdfc(1,100,74,88) |SIPStationD(1,100,73,10) |1,100,14,6359.258^10.106.89.196^SEPACA016FCED1D |[R:N-H:0,N:2,L:0,V:0,Z:0,D:0]
00201842.000 |14:15:32.276 |SdlSig |SIPPublishReq |wait |SIPHandler(1,100,79,1) |PublishEPA(1,100,113,8)
00201842.001 |14:15:32.276 |AppInfo |//SIP/SIPHandler/ccbId=0/scbId=1951/ccsip_publish_request: Got DeviceName By SipAddr, Device is IMP-trunk
00201842.010 |14:15:32.276 |AppInfo |//SIP/Stack/Transport/0x0/sipSPIUpdateTCBFromTargetInfo: Dialog Transaction Address 10.106.89.222,Port 5070, Port Present TRUE, Transpo
Now Publish Message is sent to IM&P Server
00201852.001 |14:15:32.278 |AppInfo |SIPTcp - wait_SdlSPISignal: Outgoing SIP TCP message to 10.106.89.222 on port 5070 index 30
[5441,NET]
PUBLISH sip:nirmal@10.106.89.222:5070 SIP/2.0
Via: SIP/2.0/TCP 10.106.89.221:5060;branch=z9hG4bK8230bd4cc4
From: <sip:nirmal@10.106.89.221>;tag=1167129672
To: <sip:nirmal@10.106.89.222>
Call-ID: eb7d6380-389196ac-80-dd596a0a@10.106.89.221
CSeq: 101 PUBLISH
Max-Forwards: 70
Date: Sat, 31 May 2014 08:45:32 GMT
User-Agent: Cisco-CUCM10.0
Event: presence
Expires: 3599
SIP-If-Match: 905e3b7e-27e6-4c5c-87a8-2b1939903f8f
Content-Type: application/pidf+xml
Content-Length: 928
I had set the TCP port to 5060 in DNS SRV. However the Publish message is sent over the port 5070. This is the listening TCP port for Presence Engine service.
And, in PE engine logs, I see it receiving the message and replying with 200 OK.
PUBLISH sip:nirmal@10.106.89.222:5070 SIP/2.0
Via: SIP/2.0/TCP 10.106.89.221:5060;branch=z9hG4bK8230bd4cc4
From: <sip:nirmal@10.106.89.221>;tag=1167129672
To: <sip:nirmal@10.106.89.222>
Call-ID: eb7d6380-389196ac-80-dd596a0a@10.106.89.221
CSeq: 101 PUBLISH
Max-Forwards: 70
Date: Sat, 31 May 2014 08:45:32 GMT
User-Agent: Cisco-CUCM10.0
Event: presence
Expires: 3599
SIP-If-Match: 905e3b7e-27e6-4c5c-87a8-2b1939903f8f
Content-Type: application/pidf+xml
Content-Length: 928
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<presence xmlns="urn:ietf:params:xml:ns:pidf" entity="nirmal@10.106.89.221" xmlns:r="urn:ietf:params:xml:ns:pidf:status:rpid" xmlns:ce="urn:cisco:params:xml:ns:pidf:rpid" xmlns:dm="urn:ietf:params:xml:ns:pidf:data-model" xmlns:so="urn:cisco:params:xml:ns:pidf:source" xmlns:sc="urn:ietf:params:xml:ns:pidf:servcaps">
<tuple id="2001f93d-61e6-40e2-9055-0b033b8b1a9d-eb4ee294-de56-4676-b282-aba06b3db8c3">
<status>
<basic>closed</basic>
</status>
<r:activities><r:busy/></r:activities>
<sc:servcaps>
<sc:audio>true</sc:audio>
</sc:servcaps>
<contact priority="0.8">sip:1002@10.106.89.221:5060;dpkid=eb4ee294-de56-4676-b282-aba06b3db8c3;npkid=2001f93d-61e6-40e2-9055-0b033b8b1a9d</contact>
<model>Cisco-CP9971/9.4.1</model>
<deviceID>ACA016FCED1D</deviceID>
<timestamp>2014-05-31T08:45:32Z</timestamp>
</tuple>
</presence>
If you check the Publish message content, you may notice the below part
<r:activities><r:busy/></r:activities>
<sc:servcaps>
<sc:audio>true</sc:audio>
This indicates that the user is busy over an Audio call, and Presence engine understands that the user is on a call.
Now IM&P sends the Presence update to Jabber client.
While in Jabber
Below message indicates that it received a message from the server regarding change in status
2014-05-31 14:04:10,793 INFO [0x00000efc] [\ExtensionProviderFunctionsImpl.cpp(582)] [cuc-extension-provider] [OnContactPresenceUpdated] - Received presence updated message for nirmal@ccie.comEntering
2014-05-31 14:04:10,793 DEBUG [0x00000efc] [mp\handlers\PresenceChangeHandler.cpp(0)] [imp.service] [PresenceChangeHandler::execute] - Exit
==============
IsSystemStatusChange=1 - This indicates that this is triggered from IM&P server, not from Jabber client.
2014-05-31 14:04:14,759 DEBUG [0x00000efc] [sets\adapters\imp\components\Log.cpp(32)] [JabberWerx] [IMPStackCap::Log::log] - [XmppSDK.dll]: Fire_OnPresenceChanged, jid: nirmal@ccie.com/composed,presence:3,msg:on the phone,priority:127, custom status:0, type:0timeStamp 1401545583
2014-05-31 14:04:14,759 INFO [0x00000efc] [sets\adapters\imp\components\Log.cpp(33)] [JabberWerx] [IMPStackCap::Log::log] - [XmppMgr.dll]: #0, CXmppPresenceDoc::OnPresenceChange jid=nirmal@ccie.com/composed oldstatefromsdk=2 newstatefromsdk=3 usertypefromsdk=0 statustextfromsdk=on the phone priorityfromsdk=127 IsSystemStatusChange=1 dwCustomStatus0
Hope this helps. Please let me know your questions or suggestions
Thank you
Nirmal Issac
1 - Can you show the output of NSLOOKUP to reveal the exact SRV records you put into your DNS?
2 - You say "I had set the TCP port to 5060 in DNS SRV. However the Publish message is sent over the port 5070". So did you have to change your SRV record to port 5070, or did CUCM work it out?
Hi Gordon,
1)Please find the below output of NSLOOKUP from my PC. I set the timeout to 120 because my DNS server is slow to respond.
2) You are correct. CUCM forwarded the information to the port 5070. I had set the port 5060 in both the SRV records.
Please let me know if you have any questions :)
Thank you
Nirmal Issac
Thanks Heaps,
Could you please tell me which traces you downloaded \ enabled for the debugs?
So CUCM sends to presences SRV (weighted or round robin) to one presence server then presence gets this message and uses the cluster wide SRV to further broadcast the message to other members in the cluster?
Hi Andrew,
From CUCM, I obtained CCM traces, and
from IM&P server -
Presence Engine (Receives Publish from CUCM and notifies XCP Router)
XCP Router (Sends XMPP update to Jabber client)
"So CUCM sends to presences SRV (weighted or round robin) to one presence server then presence gets this message and uses the cluster wide SRV to further broadcast the message to other members in the cluster?"
The CUCM uses the SRV to locate th IM&P server and then publishes Presence status (as per the weight/round Robin). When a IM&P node is not reachable, CUCM knows which node to contact next.
Hope this helps,
Nirmal
Thanks Nirmal,
Can you also elabourate on the clusterwide SRV?
Thanks for the trace information, I just set this up however having probelms.
Hi Nirmal,
Just wanted to say thanks for authoring this topic, really helpful and informative.
One question though with regards to the SRV records, whilst I was digging around for info on this topic I found your post and these links
http://www.cisco.com/c/en/us/td/docs/voice_ip_comm/jabber/Windows/9_7/CJAB_BK_C606D8A9_00_cisco-jabber-dns-configuration-guide/CJAB_BK_C606D8A9_00_cisco-jabber-dns-configuration-guide_chapter_010.html
http://www.cisco.com/c/en/us/td/docs/voice_ip_comm/jabber/Windows/9_7/CJAB_BK_C606D8A9_00_cisco-jabber-dns-configuration-guide/CJAB_BK_C606D8A9_00_cisco-jabber-dns-configuration-guide_chapter_010.html
Both of these recommend using _cuplogin._tcp for the DNS SRV record for Jabber, will your records still work for Jabber clients looking for Presence servers.
Thanks in advance.
Regards,
Liam
The _cupslogin entries are supposed to be only needed for 8.x Jabber clients. v9+ clients are supposed to use the new _cisco-uds entries.
GTG
Hi Nirmal,
Usefull document, thanks.
I have a question regarding high availability.
In document "Configuration and Administration of IM and Presence Service on Cisco Unified Communications Manager, Release 10.5(1)"
Part - "SIP Trunk Configuration on Cisco Unified Communications Manager" - "Configure SIP Trunk for IM and Presence Service" we can see following phrase:
---8<---
If high availability is configured for the IM and Presence cluster, multiple entries should be entered in the
Dotted IP Address or FQDN to identify the various nodes in the cluster. DNS SRV cannot be used for an IMand Presence cluster if high availability is configured.
---8<---
So as I understand we cant use DNS SRV if we would like to use high availability.
Does high availability functionality works in your case?
BR
Artem
Hi,
Also I see that new 10.5 version can use multiple dotted addresses in the sip trunk for HA
Please confirm that this method will let the CUCM to send sip publish messages to both im and presence servers that I'm finding HA issue and I'm using this method
Thanks
Hello Nirmal,
Very good documentation (+5)
Regards
Leonardo Santana
on my CUPS 10.5.2. Do I need use multiple CUCM server ip for Presence Gateway Configuration page.
We added only CUCM publisher node Presence Gateway Configuration page .
Do I need add both of the CUCM server.
Thanks,
Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: