Cisco SAF ( Service Advertisement Framework) - works on IOS routers and switches.
Cisco CCD (Call Control Discovery) - publishes/receives DNs, routes and how to get there and routing rules etc. CCD runs on top of SAF
SAF-FP is the forwarder protocol and is used on SAF forwarders and advertises the info about services over IP. SAF can be ran on any IP routing protocol, EIGRP, OSPF, BGP etc
- It uses EIGRP transport layer for service advertisement (does not rely on EIGRP for routing)
- Uses IP protocol 88, link local multicast, uses split horizon and DUAL to prevent service advertisement loops
SAF Clients can publish their services and when the SAF forwarder detects the SAF client has been removed/disconnected - it will stop sending out its services
SAF configuration for voice gateway router to be SAF Forwarder
router eigrp SAF
service-family ipv4 autonomous-system 8 //AS number needs to match throughout
sf-interface loopback 0 //if not defined, by default it will be across all interfaces
no split-horizon
topology base
service-routing xmcp listen //Default XMCP listening port is 4788 (CM setting needs to point to 4788 too)
client username hqcucm password 0 cisco123
domain 8 default
client username sbcucm password 0 cisco123
domain 8 default
client unauthenticated //this is for clients that do not authenticate/ not possible to authenticate -eg CME router//
domain 8 default
Show command: show service-routing xmcp server
Configuration to enable CCD over SAF
voice service saf
channel 1 vrouter SAF asystem 8
subscriber callcontrol wildcarded
show voice saf dnDb all - shows the DN pattern that have been learned.
Learned DNs can also be pulled by going to Call Manager
For cluster running on CM and will be a SAF Client, just CM needs to be configured as SAF client, no config needed for voice gateway
SAF configuration for SAF Client on CME.
router eigrp SAF
service-family ipv4 autonomous-system 8
sf-interface loopback 0
no split-horizon
exit-sf-interface
topology base
exit-sf-topology
exit-service-family
CCD Configuration for CME
voice service saf
profile trunk-route 1
session protocol sip interface vlan 31 transport tcp port 5060
profile dn-block 1
pattern 1 type extension 3xxx //sets the patterns that should be published to the forwarder
profile callcontrol 1
dn-service
trunk-route 1
dn-block 1 //call control profile - combines the trunk route and dn block to send out CCD advertisement
channel 1 vrouter SAF asystem 8 //this allows learning/listening of patterns from the SAF forwarder
subscriber callcontrol wildcarded
publish callcontrol 1
show eigrp service-family ipv4 8 neighbors - shows neighbor relations that are running SAF
SAF Client Configuration on Call Manager
Go to Advanced Features>SAF>SAF Security Profile >
Enter descriptive name and username - set to username and password specified earlier on the IOS SAF config
Then go to Advanced Features>SAF>SAF Forwarder - set client label to match the "external-client" configuration in EIGRP and select the SAF Security Profile that was just created earlier and enter the IP address of the SAF Forwarder
For the SAF Forwarder Port - enter in the port 4788 which is the default for XMCP
Expand the "show advanced settings" and select the Call Manager that should be participating in. This will connect the CM to the SAF forwarder.
Call Control Discovery Set up on Call Manager
Set up SIP trunk: Type SIP Trunk/ SIP/Call Control Discovery
Make sure for inbound CSS - it is able to reach internal DNs
Set SIP trunk security profile and SIP profile to standard
Set up Hosted DN Group Info > Call Routing> Call Control Discovery> Hosted DN Group
Then create hosted pattern
Call Routing>CCD>Hosted Pattern - add new enter in pattern you wish to publish e.g. 1xxx and map to Hosted Dn Group
Then set up Advertising Service
Call Routing>Call Control Discovery> Advertising Service and select the CCD trunk created earlier and also select the the Hosted DN Group as well - set feature to activated
Then set up CCD partition
Call routing>CCD>Partition - Create a named CCD partition
Then set up requesting service
Call routing>Call control discovery - Requesting service Info
Enter name and route partition that you created earlier - the route partition is where the learned DNs will be placed into