When you setup your first Cisco Unified Communications Manager (CUCM) server, you’ve got a lot of programming to do. You have to program phones and partitions and calling search spaces. You have to worry about gateways and route patterns and voice mail. Many times, the default settings in the setup will be more than sufficient to get you up and running quickly. However, there is one default that you must avoid no matter what. The dreaded <none>.
You see, when you configure a directory number (DN) on a phone, the default partition for this number is a special partition labeled <none>. None exists on the system mostly as a placeholder, a catch-all for devices without a home, much in the same way Uncategorized is the default category for posts on my blog. Normally, <none> isn’t much of a bother. I ignore it almost entirely. However, in situations where I’m forced to deal with it, I start wanting to pull my hair out.
<none> interacts with the system in some pretty strange ways. By rule, when you configure a DN, it can call other DNs in the same partition (provided the calling search spaces match). As long as all your devices exist in the same partition everything is great. However, much like creating a large network with only one VLAN, creating a phone system with only one partition can lead to problems down the road. What if you want your voice mail system segregated from certain phones? One of my other favorites is the executive that only wants his phone to be dialable from certain extensions on the system. In order to accomplish these things (and more), you are going to need to create additional partitions. And the second you do, the <none> problem becomes a real hassle.
<none> is actually a null partition. It doesn’t really exist in the system, so it can’t be assigned or removed from any calling search spaces (CSS). This means that <none> exists in EVERY CSS. If a phone or gateway is located in <none>, any partition on the system will be able to dial it. However, the phones located in <none> won’t be able to dial any other partitions. You could create a special CSS to allow it to dial other partitions, but you’ll never be able to make the phone non-dialable. No matter what, every search space created will be able to dial that phone because every CSS has the <none> partition listed as an unlisted member, kind of like the understood “deny” statement at the end of an access list.
The best thing to do is create two different partitions for your internal devices. One, which I call “InternalDN”, is where all your phone’s directory numbers go. If you are creating partitions for multiple groups for a multi-tenant cluster, you could give them more specific names like “InternalDN-CoA” and so on. Then, you create CSS groups that only allow phones in those partitions to call each other, but no one else. Then, you put your devices that need general access to only the cluster, such as voice mail and gateways, in a partition name “ClusterOnly”. That way, you can remember to keep your DNs different from your VM ports, and you can restrict access to each as needed.
Don’t use <none>! I’ll come and slap you. Seriously, while it may be quick and easy to set up, if you keep using <none> for everything, it’s like building a house on quicksand. Sooner or later, you’re going to get sucked into a huge time sink to fix a strange problem that is going to require you to unravel your entire configuration to fix it. Better to split your phones and cluster resources into separate partitions and build it right the first time. Just pretend you’ve never even heard of <none> and all will be well.