I decided to take a stab at Cisco’s Call Control Discovery (CCD) which is the first application to utilize their Service Advertisement Framework (SAF).
I was fairly unhappy with the lack of information available on the web to this end. So I’m spending some time writing up what I learned.
I suggest reading the Cisco whitepapers on SAF and CCD deployment. I’m going to assume you have a basic knowledge of what the technology does.
I was looking for a way to use CCD to simplify a CUCM deployment with Tail-End Hop Off (TEHO).
What I found out was that, in the end, there was no real configuration savings. I just ended up defining the patterns on the router instead of the CUCM.
Hopefully Cisco will, in future versions, provide additional options that will increase the flexibility of this technology.
So, to get started we need to build our SAF network. A couple of things to keep in mind:
- SAF requires IOS 15.0
- If your interconnecting network does not support SAF, you will need loopback interfaces on your SAF routers.
- SAF is an extension of EIGRP, but you do not need to run EIGRP as your routing protocol, it will work even if you use static routing since it operates in a separate instance.
Enabling SAF on routers
router eigrp saf
service-family ipv4 autonomous-system 10
topology base
neighbor 10.0.0.10 Loopback 10 remote 10
Take not that the eigrp instance does not have to be named saf and the AS does not have to be 10. But keep track of these values, whatever you make them.
To connect to a CUCM system, you will also need to configure an external client login on the system. This is fairly straightforward.
service-family external-client listen ipv4 5050
external-client CUCM
username safuser
password safpassword123
keepalive 360000
Again, CUCM was chosen at random, you can make it whatever you want, just keep track of the value. You should note that the external client password must be at least 14 characters long.
You will also need to attach it to the eigrp instance.
router eigrp saf
service-family ipv4 autonomous-system 10
topology base
external-client CUCM
So with that our SAF networking is complete. There are some other considerations if your network has point-to-multipoint connections in it. Please reference the Cisco whitepapers for this as I am not going into detail on it.
Now for the CCD portion. Remember,if you’re running 15.1 or higher to either disable the toll-fraud feature, or configure it properly, otherwise calls will fail.
voice service voip
no ip address trusted authenticate
Now for the CCD portion… Really this time.
First we need to enable the CCD service on the router.
voice service saf
Then we create a trunk profile. This tells other devices what protocol to contact us with.
profile trunk-route 1
session protocol sip interface Loopback 10 transport udp port 5060
Next we need to define the “routes” to advertise.
profile dn-block 1
pattern 1 type global 1206XXXXXXX
Still pretty straightforward right?
Next step is to build a callcontrol profile to tie them all together. Note that the numbers next to dn-block and trunk-route match the ones defined above.
profile callcontrol 1
dn-service
trunk-route 1
dn-block 1
Finally we need to associate the callcontrol profile(s) to our SAF instance as a channel. Here’swhere we need to remember what we called our EIGRP instance and what AS we used. I know this may seem pretty obvious, but it’s not entirely clear in Cisco’s whitepapers.
channel 1 vrouter saf asystem 10
subscribe callcontrol wildcarded
publish callcontrol 1
The subscribe line tells the router to listen to all (wildcarded) advertisements. You can set this to only listen to specific ones.
The publish line advertisesour callcontrol profile to the SAF network.
With all that done, we can go to the CUCM.
First setup the SAF Security Profile
Advanced Features → SAF → SAF Security Profile
Create a new profile, give it a name. Enter the username and password we used in the IOS external-client config above.
Save it.
Advanced Features → SAF → SAF Forwarder
Create a new Forwarder. Give it a name. Again use the external client config parameters for Client Label, SAF Forwarder Address, SAF Forwarder Port. In the above example, this would be: CUCM, 10.0.0.5 (Loopback Addr), 5050.
Select the security profile you just created. Save it.
Now go to : Call Routing → Call Control Discovery → Hosted DN Group
Create a group, give it a name, save it.
Next : Call Routing → Call Control Discovery → Hosted DN Pattern
This is our internal extension “route”. Add your pattern as you expect it from the PSTN. (i.e. 1XXX). Assign it to your Hosted DN Group. Save it.
Do this for all your internal DID blocks.
Whew! Almost Done!
Go to Device → Trunk.
Create a new trunk.
Trunk Type: SIP
Service Type : Call Control Discovery
Configure this trunk as you would any other gateway. Save it.
Now go to : Call Routing → Call Control Discovery → Advertising Service
Give it a name, select your SIP trunk (or H323) and the Hosted DN group you configured.
Save it.
Now we’ve advertised our routes into the SAF network, we just need to receive routes now.
Call Routing → Call Control Discovery →Requesting Service
Set the name and move the trunk from the Available box to the Selected box.
Save it.
All done!
You won’t see any of the learned routes in the CUCM. But you can verify that it’s working by using RTMT.
There’s a lot more that can be done, but this is the basic configuration to get you going. On most dial-plans you will want to make sure the patterns are placed into a certain partition, or take advantage of the AAR/PSTN failover features.
Good luck in your endeavors.