Just recently, I’ve integrated Office Communications Server 2007 and the IP-PBX PBXNSIP (http://www.pbxnsip.com). The integration went really well: I pointed the mediation server to the PBXNSIP’s IP address, configured all the OCS dial plan and voice components (normalization rules, usages, policies, routes) and very quickly was able to route calls from OCS to PBXNSIP extensions.
I wasn’t able to make outside calls initially – I could only call the internal PBXNSIP extensions. When I tried to call an outside number I got a 404 – not found message back from the PBXNSIP server. I then realized that I was sending the 10-digit number (123-123-1234) to the PBXNSIP PBX but without the proper access code ("dial 9 for an outside line"). So I changed my normalization rules to automatically prepend the 9. This got me a little further, but PBXNSIP was now sending an "unauthorized" message back. Then, I looked at the dialplan routing in PBXNSIP. There is a field that says "assume all calls come from this extension: ".
This appeared to be the answer. It is was an effective way to assign a class of service (or Calling Search Space, in Cisco parlance) to all calls coming in from OCS. I assigned a valid user extension who had permissions to dial outside numbers. Calls started flowing out right away.
I have to give a lot of credit to my customer, who had already set up PBXNSIP 99% of the way. He had also had his audiocodes gateway set up and integrated to the PBXNSIP before I started, so that helped a lot.
At the end of the day, he’s got a good IP PBX, a gateway, some good SIP-compliant IP phones and OCS all working together.
Oh yeah, and we have Exchange 2007 Unified Messaging working well with PBXNSIP.
It’s a nice, functional, low-cost environment that works with the Microsoft Unified Communications suite.