I just ran into an interesting aspect of an Office Communications Server 2007 integration with Cisco CallManager & Cisco Unified Presence Server. I posted the following anecdote in on the technet forums in bits and pieces, so I thought I’d put it here as well.
I have an OCS Ent pool integrated with Cisco CUPS 6.01 and Cisco CallManager 5.1. I have RCC enabled for most users and it it was working really well. There was one hitch, though: if a user had 3 phones with his/her extension on it, I could never get the OC client to log in and make the connection to CUPS. I got the "Phone system integration error – cannot connect to the phone system". I’ve tried this with multiple users and multiple different phones. It’s always when the 3rd phone is added to the mix that the error happens.
As soon as I remove the extension from one of the user’s phones, I can log in to the OC client and have RCC working great.
The strangest part of all is that the SIP logs showed a bunch of 401/unauthorized error. It’s kinda misleading because obviously the OCS server’s authorization was just fine for the user when i had only 2 phones associated with the extension. It was crazy, too, because you get 401 errors when you don’t have your SIP IDs matching the CallManager user ID, as I’ve blogged about before. But this could not have been the issue because the user was fine when I was using only 2 devices.
I was thinking that it was a problem with CUPS and CallManager not liking the 3 phone setup, but I wasn’t positive.
Troubleshooting
I was able to use a CUPS Client (not OCS, but the actual Cisco CUPC client) and it worked just fine with the user who has his ext. on 3 different phones. So it’s wasn’t CUPS or CCM itself that was broken.
I associated the MOC user with a different phone (via CallManager) and he could log on just fine.
I removed and added the user in CallManager to no avail.
I disabled and re-enabled the user in OCS to no avail.
I re-installed the client to no avail.
I swapped out phones to no avail.
It had to be the nature of the integration itself.
I was reading the integration doc (not really super helpful in general) and it has this to say:
"Shared Lines: There are potential unwanted interactions that may occur in shared line scenarios. The CUP procedure for selecting the device to be controlled by MOC is to login the MOC session. Upon sign-in, both devices associated with shared line will ring and the MOC user must answer the phone the user wishes to control. The unwanted feature interaction in this case include conflict in deviceand call control and indefinite ringing in cases where the user is away from both devices. This issue is also applicable for devices subscribed to extension mobility where selection of device to control procedures is similar to shared lines."
And this was the issue: with the OCS CallManager rings both of the phones that you have associated with your user so it knows which one you want to remotely control: You pick up the one that you want MOC to control. It’s not smart enough to know what to do when you have 3 or more phones, though.
Sweet Relief
I had to open a TAC case with Cisco to get the answer. To the guys credit, he nailed it within about 2 minutes. It was a huge relief.
In the user config in OCS, the Line URI field has to be filled out like this:
tel:1234;phone-context=dialstring;device=SEP001DFFFFFF
(or whatever the MAC of your PRIMARY phone is)
This way, when you log into communicator, it will always know to control that phone for you. It’s not very elegant, but it works.