Wednesday, September 30, 2009

Logitech Quickcam Pro 9000 hangs Live Meeting

Just a quick post today. I've noticed lately that I've been having issues with Live Meeting. When I try to change the audio device used for the meeting it simply hangs the application. What's changed recently is that I've been plugging in my Logitech Quickcam Pro 9000 lately. I have all the latest drivers and the camera works great in Live Meeting or Communicator. It's when you go to change the settings where things go south.

Anyway, to resolve it I simply unplugged the camera (since I have an embedded one in the monitor).

Friday, September 25, 2009

HANDS ON: Tandberg Precision HD USB webcam -updated

Well I picked up a Tandberg Precision HD webcam yesterday and thought I'd share my experiences with it. The device is "optimized" to work with Microsoft's Office Communications Server platform and offers HD quality video (720p/24f).



Specifications for the webcam are as follows:
  • 16:9 wide format HD video
  • 1270x720 resolution at 30fps (MS only supports 24fps as per R2 TAP docs [this may have changed recently])
  • All glass optics
  • Auto focus and auto light adjustment
  • Ultra wideband mic
  • Privacy shutter
  • F-stop of 1.7
The camera's requirements are:
  • Windows XP or Windows Vista (also works ootb with Windows 7)
  • USB 2.0 interface
Overall first impressions are that the camera is well built. The hardware has that "Tandberg" quality feel to it. The glass optics make the device much heavier than a traditional webcam but if you're looking for a "1700 MXP experience" with native OCS/MOC and Windows, this is as close as you can get for a fraction of the cost. The USB cable is quite short and I would have liked to see at least a six foot cable attached. If your PC case is far from your monitor you'll need a USB extension cable guaranteed.



Image Quality, etc.
Since my laptop at work isn't a quad core CPU, OCS won't flip on the HD capabilities of the MOC client. With VGA quality video being my only option I have to say that the overall picture quality is quite good. The lighting and color representation is better than your typical home user's webcam. My comparison webcam is a Logitech Quickcam Pro 9000 which also supports HD (2MP). I have found that the Logitech is washed out and doesn't provide the same color depth.

In terms of field of view, I prefer a camera which shows more background. The Tandberg Precision HD webcam is quite tight and needs to be positioned in such a way that you're not cutting off your head in the image. The Logitech is completely opposite and shows everything from top to bottom.

Conclusion
If you have the cash to spend on an executive-style webcam this is an amazing unit. As for the HD quality in OCS, I was finally able to test it. The difficult part though was capturing the image on the other side since my tester was in another city. He was kind enough to snap a digital photo of his TV (also used as a PC monitor). Check it out and see for yourself...


(Click on the image for a larger version)

As you can see there is a great amount of detail in the image. The focal length of the camera is noticable here as well with the foreground image in focus but the background blurred. Very very nice!

Thursday, September 24, 2009

Get your Cisco 7941 to work with OCS with SmartSIP

I posted recently about a product from Evangelyze Communications (http://www.evangelyze.net/) called SmartSIP. In this post I'll talk about how to get your Cisco IP phone to work with OCS and SmartSIP.



Contrary to popular belief I prefer the Cisco phone to many others out there. The overall look and feel of the handset, base, buttons, and display are well thought out and provide some interesting and easy to use features.

For my lab setup I have my OCS Mediation server and SmartSIP collocated on the same virtual machine. By the way, don't  use VM's for production; they're not supported and performance can be terrible. I have a Cisco 7941 IP phone and have downloaded the latest SIP firmware from the Cisco web site (you need to have a valid SmartNET contract to get the code).

NOTE: Be sure to get the Cisco SIP firmware as the SCCP (skinny) won't suffice here.

After installing SmartSIP you will need to activate it and configure it as follows:
  • Change the gateway listening IP address on your Mediation server to 5070. You need to change the port here because SmartSIP needs to use 5061 for SIP Trunk service providers connecting inbound.
  • Change the port for the next hop PSTN gateway to 5055. Again, this port is changed because 5061 is used for SIP trunking.
  • Open the SmartSIP diagnostics application from the START menu
  • Click on the Config (Web UI) tab and select the Microsoft tab
  • Enter the IP address for your OCS server in the OCS SIP Listening Profile
Example:
data="ocs_rtp_ip=10.10.10.127"
data="ocs_sip_ip=10.10.10.127"
  • Click the Save button
Now you need to create a specific location profile for SmartSIP to use when routing calls. What I like about this process is that it leverages the UI in OCS to complete the digit manipulation (with normalization rules). You then route numbers based on the normalized (or de-normalized) numbers. If you're using a SIP Trunk to a carrier such as Thinktel they will accept E.164 formatted numbers so you shouldn't need to change much. If you're sending the call to a voice gateway via IP,  you can route numbers that have been pre-configured within OCS. Here's how:
  • Create a new Location Profile in OCS and call it something like "ss_test_1"
  • Create a new normalization rule for a number you want SmartSIP to route. For example if I wanted to de-normalize a number before routing to my carrier, I would actually use:
Pattern match: ^\+?1780(\d{7})$
Translation: 780$1
  • After you save this rule, go back into your SmartSIP WebUI and click on the Trunks tab.
  • Locate the smartsip_dialoptions_trunks and smartsip_locations_trunks tags and change the value to match your OCS location profile. For example:
data="smartsip_dialoptions_trunks=ss_test_1:sip_cid_type=pid"
data="smartsip_locations_trunks=ss_test_1:ss_test_1"
  • Now click on the General section below and expand it.
  • Change the gateway name to reflect your location profile such as:
gateway name="ss_test_1"
  • In the same section, be sure to enter the IP address of your next hop gateway or SIP provider in the "realm" and "proxy" tags.
Configure the Cisco phone...
Now that you have SmartSIP, OCS, and your voice normalization configured, we can move onto the phones. SmartSIP includes a TFTP server built in which permits your IP phones to download firmware and configuration data for automatic provisioning.

For the phones to find the SmartSIP server you will need to add "option 66" to your DHCP server. I found that on my Cisco 871 router I needed the following syntax in the DHCP pool settings:

option 150 IP 10.10.10.127
  • Log into your Mediation/SmartSIP server and locate the TFTP directory.
  • Populate the directory with your firmware data for the "Cisco 79xx" phone.


You should have something like this (minus the Desktops dir and dialplan.xml)

The Cisco phones need 2 files to operate properly. They are equally important so be sure to pay close attention to the next few steps.

SEP[MAC].cnf.xml
This file is your base configuration file for the phone. It contains information about where the phone needs to connect, what dialplan to use, etc. SmartSIP uses variables in the form of tags to replace the XML values in the file. For example, [USER] and [SERVER_IP] correspond to the extension and SmartSIP server IP. Consult the SmartSIP documentation for more information about what tags are available to you.

Over at Greenwire IT they have a great outline of a basic SEP[MAC].cnf.xml file: http://www.greenwireit.com/blog/2009/09/cisco-7961-and-7941-sip-configuration-sepmac-cnf-xml/

If you're stuck and need a copy of the XML, just let me know. I spent hours and hours trying to get the phone to sign in and provision itself only to find there were invalid values in the sample XML given by default.

Dialplan.xml
This file contains your dial plan for the Cisco phones. You can visit: http://sipx-wiki.calivia.com/index.php/HowTo_configure_Cisco_SIP_phone_with_sipX for a great sample. Be sure to place this in the "Cisco_79xx" directory.

Putting it all together...
Please please please be sure to install Wireshark on your Mediation/SmartSIP server if you haven't done so already. This will provide to be the most critical tool you will ever use. You're probably asking by now, "how do I assign a phone to a user?". The easiest way is as follows:
  • Open Active Directory Users & Computers.
  • Locate your OCS user and click on the Telephones tab of their account.
  • Type in sip:[MAC]@smartsip.local (where [MAC] is the MAC address of the Cisco phone)

  • Click Ok and close out the changes.
  • SmartSIP has a default 5 minute refresh on AD data so you can either wait or simply open the WebUI, click on the Users tab, then click the Update Directory button.
  • Now, open Wireshark and start a trace.
  • Plug in the Cisco phone to a PoE port.
  • Watch for TFTP requests in Wireshark to make sure the phone is at least talking to the server.
Now if you've done everything correctly, SmartSIP will see the request for TFTP data from a MAC address matching a user in AD. It will swap out the [MAC] tag in the SEP[MAC].cnf.xml file along with all the tags within it so they contain the user's name and extension (or DID). You can actually watch the Wireshark trace data to see the file being sent to the phone along with the correct data within it.

The dreaded "UNPROVISIONED" error...
The phone will show a message of "unprovisioned" if your CNF.XML isn't configured correctly. You can typically browse to your phone via http (i.e. http://10.10.10.12/) to view the phone logs. Pay special attention to the phone's log data as it will show you what's wrong. Edit your XML file appropriately to resolve the error.

BONUS: Configure wallpaper on the phone
  • Create a "Desktops\320x196x4\" directory below the "Cisco_79xx" directory included with SmartSIP.


  •  Get a copy of the image you want to edit, open Microsoft Paint (Windows 7 works best) and format the image to a size of 320x196.
  • Save the image as a PNG file (again Windows 7 has MS Paint that does this well now).
  • Create a "list.xml" file as follows:


  • The list.xml file contains a list believe it or not, of images available to the phone.
  • To choose an image hit the Settings button on the phone, select "User Preferences" then select "Background Images". The phone should contact the TFTP server for the data (again Wireshark is the best tool to watch for this).
That's all for now. Cheers!

Tuesday, September 22, 2009

Polycom CX300 (codename "Oak")

Polycom is getting ready to release the Polycom CX300 USB phone which works with Office Communications Server 2007 R2 (QFE2). The handset comes with a more comfortable handset, a 2 line OLED display, and an upgraded speakerphone.



General availability will be at the end of October 2009 and MSRP is suggested to be around $199.00 USD.

I've had the opportunity to work with the beta version of the phone (called the "Oak) for the past six months and I'm happy with the overall quality and feature set. Similar to teathering a Tanjay (Polycom cx700) to your PC, your actions on the phone apply to the MOC client and vice versa. For example, if you place a call with the CX300 phone your MOC client will show the call being placed. Basic phone features such as mute are available from the handset as well.

I'm particularly happy with the overall button feel and handset. This is a big step in the right direction for Microsoft and the end users. I forced myself to use the handset for a 2 hour call the other day and didn't have an issue with fatigue.

Considering the price point and feature set, I can't imagine anyone purchasing the CX200 anymore.

If you get your hands on one of these units make sure you upgrade to QFE2 (July 28th patches). I haven't seen these available on Windows Update yet so you can get them manually from here:


Cheers!

Tuesday, September 15, 2009

SmartSIP fills the gap and more

I spent some time in Redmond recently and had the pleasure of finally meeting Mike Stacy from Evangelyze Communications (http://www.evangelyze.net/). Like many other relationships formed with the power of Microsoft's Unified Communications platform, it was great chatting and talking over Communicator but being there in person has it's benefits as well.


Mike introduced me to a software application called SmartSIP which is the focus of my post today. I'll be posting a lot more in the coming months about this product's capabilities so be sure to check back frequently.

I want to start off by talking about some of the limitations within OCS today. Some of these are truely "deployment blockers" for some of our clients. I'll then talk about how SmartSIP can solve some of these.
  1. The Mediation Server role in OCS can only have one "next hop relationship". This means that if you have a voice gateway connected to a PRI and a SIP Trunk from a provider like Thinktel (http://www.thinktel.ca/), you need two Mediation Servers.
  2. An OCS user can have only one LINE URI (phone number).
  3. Mirosoft's solution to "branch office survivability" is to install an OCS/Mediation server locally.
  4. There is only one IP phone solution available from Microsoft's list of "optimized devices".
  5. You can't connect other IP phone solutions to OCS and there are no OIP certified solutions that support RCC/DF.
  6. The solutions available for shared phone situations often involve the use of a Polycom cx700 IP phone which is not only expensive, it's impracticle for many situations. You wouldn't want to install a cx700 in an elevator or have one in a lunch room. The phone is an "executive style" touch screen IP phone that has great purpose on the desk of a UC enabled user. 
SmartSIP isn't a gateway, it isn't an IP PBX, and it isn't easily classified. You install SmartSIP on your Mediation server (or a stand-alone server) and now you're open to all kinds of new solutions:
  1. You can send calls to one Mediation server and have multiple routes (primary or failover) to various IP endpoints. For example, a call made past the Mediation server can end up with SmartSIP deciding where to send the call based on the number dialed or if the next hop(s) are up.
  2. If you want to assign alternate numbers to an OCS user, you simply define them in the AD user account properties (click the "other" button in the telephone field). SmartSIP has tight integration with Active Directory so it knows that a call to an alternate extension or DID should be sent to an endpoint.
  3. In the case of an outage to OCS, your local IP phones (except the cx700) can talk/register directly to SmartSIP and use it as the routing engine for outbound calls. This means you have a branch office survivability solution without the need for an OCS server.
  4. If you can load a SIP stack on an IP phone you can probably use it with OCS. I'm particularly happy about this feature since many customers may want to leverage the benefits of OCS but don't want to lose the investment in their existing IP phones.
  5. If you want presence on your IP phone you can have it. Actually you can get presence on your TDM phone too with the use of a Portico TVA gateway.
I've posted in the past about how SNOM (http://www.snom.com/) has come up with a brilliant solution for OCS deployments with their firmware that signs into AD/OCS. It isn't without it's challenges as well. For example, you end up with a user's id/password in the phone....so what happens when they change their password? The phone won't work.

The better way to use the SNOM phones is to have them register with SmartSIP using the regular, non-OCS firmware. Also, SmartSIP has a TFTP server built in and will support automatic provisioning of the phones!!

Okay, that's enough for today. Stay tuned for more soon...