SpeakerTrack 60 Overview

I think SpeakerTrack 60 has surprised a lot of people, especially me. I was a little cautious of this type of technology at first, mainly because of previous experience with it competitors. They had a lot of zooming in and out going on which makes you feel a little nauseated. SpeakerTrack 60 has changed at least my perception of what this type of technology can do and it takes what once was a average video conference room and adds a more immersive experience.

If you haven't seen SpeakerTrack 60 before take a look at the video below.

SpeakerTrack 60

If you noticed in the video SpeakerTrack 60 uses direct switching between active speakers versus the Polycom Eagle Eye Director demo below which between speakers there is an establishing shot of the entire room as the camera changes presenters. You will also notice that the camera moves between speakers when closely seated next to one another to center the speaker with Polycom. SpeakerTrack 60 on the other hand doesn’t move when both speakers are already in frame, there is not much point really. These seem like subtle differences but after experiencing both in meetings and demo’s the differences can add up to two very different experiences.

Polycom Eagle Eye Director

I am sure there are those that will comment on Cisco being a little late to the game with this type of technology and that is a true statement. The benefit of coming in a little later is the technology to drive this experience is much better now.Things like 4k camera sensors, magnetic motors etc. all come together to drive a much cleaner experience.  In my opinion at least it’s a much cleaner experience with direct switching versus the others in the market.

How does SpeakerTrack 60 work?


There are four parts to how SpeakerTrack 60 does what it does.

  • Audio triangulation - The microphone array behind the fabric panel that is position behind the camera pictured above is able to accurately locate voices within the room. The microphones are only used for audio triangulation .
  • Facial detection - Identification of a full or partial face at the same location as the voice is required to form a positive match.The camera quickly locates a close- up of the active speaker while the other gets ready to seek and display the next active speaker.
  • Camera control - With a positive match, the processor in the camera base instructs the cameras directly where to move.
  • Camera switching - The processor in the camera base instructs the codec which camera to use. The codec does the actual camera switching.

To get more of a feel for how this works SpeakerTrack 60 has a diagnostic mode that shows how this works. Below is a screenshot of diagnostic mode turned on and a face is detected but no audio match.


Now the engineer is speaking below, and the green square indicates a positive match for facial detection and voice. Therefore the system will zoom in to this person.

The indicators down the bottom of the screen match up with the following:

F = 10.1% detected voice
T = 91.6% non-noise
E = 0% voice from far end
C = 28.1% camera movement
U = 0% ultrasound detected
N = 89.9% silence
S = 178 samples from sound algorithm


The SpeakerTrack functions are turned on and off at the touch panel and when not in use both cameras can be used as normal cameras.

Hopefully this helps explain the technology a little and some of the differences from its competitors.


So You Want to Deploy UC?

Over the years (about 14 give or take) I have been involved in a number of UC deployments as either an engineer, consultant, trainer (hard to believe) or just an advisor. I have seen and learnt a lot of stuff but believe it or not there are a lot of common elements that occur in nearly every project.

Making a Product Selection

Lets start from the beginning, making a product selection. Some companies just go straight for their strategic suppliers and call it a day and use the Request For Purchase (RFP) to select a deployment partner. Others choose the Request for Information (RFI) and RFP route for the entire selection process. If you go down the path of RFI and RFP below are some tips on using the process. This process is a lot of work and if you don’t use it effectively it can be just a waste of time all together.

RFP versus an RFI

A request for purchase (RFP) is just that, not a request for information (RFI) with a shopping list of prices. If you write an RFP best to just stick with business or system requirements that you plan to purchase other wise your partners/supplier have no idea what to quote or they quote stuff you don’t need. When I see an RFP with lots of general technical questions it does raise some red flags.You should not be asking random base level technical questions in an RFP, that’s what an RFI is for or alternatively supplier briefings.

RFI’s  and RFP’s are a lot of work to both create and respond to these.  A RFP/RFI response may take a team of 5-10 people to gather the response and manage depending on the size and complexity of the request. Releasing the same RFP 3 times one year after another to the same suppliers raises a lot of red flags for your supplier and when you really want to do something you may not be taken seriously. If you have no budget, no executive sponsor and no real plan hold off on releasing these items until you have the right political support so to speak. I have been on both side of the table and being thoughtful with this process will save you a lot of work and be greatly appreciated by your suppliers.


When do I use an RFI :

  • There are quite a few suppliers that you believe have what you need but your not sure how it all fits together or which one works best
  • Building a base level understanding of a supplier offerings based on features and functions possibly on what you have today or if it’s a new service

What types of things do I ask for:

  • Ask how the product is licensed but not priced. List pricing generally provides very little value. Discounting varies widely on a number of variables which is usually negotiated during the RFP or even after the RFP process is closed and winner selected. You can baseline pricing with the RFP but negotiating usually happens even after the winner is chosen.
  • Ask  for how the product is supported
  • What training classes are available
  • Ask for recommended partners that would respond with services
  • Supported architectures and scaling
  • Integration interfaces such as protocols, API’s etc

What is the outcome:

    • Mark and grade technical responses against business requirements. Some features will be more important than other to the business so grade appropriately.
    • Down select product offerings based on technical/licensing/support responses


    When do I use an RFP:

    • You want to buy a product and have executive buy off. This shouldn’t be a budgeting exercise, suppliers can give you rough number over the phone or email with much less pain.
    • You have down selected to two or three products/suppliers/partners based on the RFI, 4 at most. If you are sending your RFP to 5+ suppliers it may be way to many and you either need to do an RFI or just more home work. I once heard of a company sending an RFP to 7 different manufactures. This makes it very difficult to consume and make a decision based on all that information. If you use the RFI process it may in fact make the process easier although I am sure most view it as more work

    What do I put in an RFP:

    • Clearly spell out what features you want to utilize without specifying a product name
    • Ask for the architecture the partner/supplier would deploy based on desired scale and HA requirements. 
    • Clearly spell out your support requirements – 24/7 – hardware replacement etc. etc.
    • Ask about what it will cost to build and support over a period of time like 3-5 years.

    What is the outcome:

    • Compare costs/support and architecture between suppliers/partner and make your final selection.

    What other UC traps can I avoid?

    Below are some general tips around things I have run into. These tips may also help with product selection, architecture and requirements collecting.

    The standalone handset is still king in high volume call areas. PC availability and reliability gets special scrutiny in areas where people have high call volumes or reliability is critical (Contact centers, social services, emergency services etc. etc.). This is a potential pit fall for any UC deployment if there are not alternate options available. Also keep in mind what high call volume areas usually do: answer calls, transfer calls and park calls. If these things are not at least very similar in the new world then stick with a hard phone in high traffic areas. Having to click 4 times, search for a contact just to a do a transfer that someone might have done with a multiline set for the last 20 years is probably not going to fly. What ever you do just don’t tell them, “you’ll get used to it”.

    Software bugs can and do happen.  The ugly side of deployments but they are real and unfortunate. The best approach is to ensure you have a well worked out deployment and patching process when they arise. Supplier support and escalation process also need to be well understood because when things break you need to understand how you make your voice heard with your supplier or support partner.

    Customer satisfaction and not the user experience is the most important. . As technologist we are caught up in the end user experience trend, if someone just wants a phone to be satisfied then that’s what we should aim to do. Give them a phone and not force a softphone down on them. We assume a great deal of the time a technology shift will make someone's life easier but that’s not always the case. Make sure to follow up after a deployment with a customer satisfaction survey to ensure your project has done what it set out to achieve, a happy user population that’s benefiting from a technology shift.

    Don’t assume substituting features from a hard phone to a UC client will be adequate. In other words don’t try to fit a square peg into a round hole and expect people to be happy. IM isn’t always a substitute for an intercom, not sure how many times I have heard that but it’s a lot. But wait, “you’ll get used to it”.Lol..

    Deploying network QoS is essential no matter how good your codec is and control what you can. If its real time and its on your network QoS matters, this has consequences on customer satisfaction and the user experience. It’s a VoIP 101 but its worth highlighting over and over and over again. VoIP will find issues on your network no matter who the supplier. Despite earlier marketing messages even Microsoft have come to realize this. Of course the Internet is the wild west so control what you can and be aware of the rest. Let users know your recommendations on working remotely on what they should use and when. Codecs like Opus have the potential to improve communications over the Internet but its still the Internet which is a shared uncontrolled medium with no QoS. I have seen to many people say with codec X you don’t need QoS only to have a disappointed customer down the road when its not the case.

    Don’t forget real time monitoring and the cost that comes with a third party.   Cisco has invested significantly in its RTMT tools and Prime solutions over the years for the Cisco UC solution although this is an area that usually comes as an after thought. Voice and video network requirements are very specific as are the ability to monitor and troubleshoot down to a network port if need be. Just bundling a voice report or two into a server support product is probably not going to cut it and neither is a system that can’t do real time reporting. When a voice gateway goes down you need to know real time, so don’t forget this important area or the cost that goes with it.

    Create the training and users will come. No they wont. It’s a lovely ideology that people like to learn the way they like to learn and they will do it in their own time when they are ready. This is somewhat of a myth. If your going to drastically change the user interface for something that has been in peoples hands for possibly decades, training has to be compulsory or you have to give them exactly what they had before. A phone and voice mail. Slight deviations in phone type are probably acceptable but moving from a phone to a PC software based UC client as the only phone requires loads of mandatory training.

    It really wont matter what format the training content comes in, unless you force  people to attend, watch and engage it will most likely be for nothing. Users learnt how to use a phone years ago and your new system can’t be that different. Right? I know this lesson doesn’t sound pleasant but I have seen to many deployments with unsatisfied end users to know that training is the be all and end all. Force your end users to take training and grade them on it like you would with HR compliance training, if they fail make them do it again. Seems drastic but I bet this would reduce calls to the help desk dramatically.

    I have worked with large organizations that allow all training to be voluntary but their number one calls to the help desk were related to end user issues. Simple stuff that had end users done training they would have been fine. Of course the answer is to just do more training, that no one shows up to. Don’t be surprised when this happens. I wont harp on any more but I think you get my point now, mandatory not voluntary.

    Presence and Instant Messaging are generally well used and received. Kind of a no brainer this day and age with texting and everything else.I think we are at a stage where no matter your age people in the work force in general are comfortable with text based communications. That being said I have talked with companies that still think Instant Messaging is a time waster. I will let you in on a little secret, that smartphone everyone carry's with them everywhere wastes way more time than anything else in your organization. Instant Messaging saves more time than it wastes I can guarantee it.

    A strategic supplier customer relationship is critical. Every customer at some stage has heard a supplier say we want to partner with you, or we look at this as a partnership or however you want to put it. I personally think these terms are way over used and we have all had a supplier sell you a product than walk out the door until the next renewal is due.This may not be the sales person or engineers fault because when your given 300 accounts to work with there is only so much you can do. This is why strong channel partner networks are critical as well. So when you write your RFP for your next UC platform decision make sure your analyzing the partner response just as much as the features of the product your buying. A partner response is especially critical when the system contains pieces from multiple suppliers. Their ability to troubleshoot a complex multivendor environment may not become apparent until trouble strikes. So be diligent more so when the deployment partner is the collection source of integration information.

    Be prepared to let your supplier and IT team learn about your business, really learn it.  Its one thing to gather requirements quite another to understand how people get work done. Both the supplier and IT have to come together with the business to understand the needs not just your RFP requirements.On the customer side you have to let people in to learn about your business to build a real relationship so they know how you operate. Don’t expect a supplier just to know your needs by looking at your website or an RFP. Offer them tours of  your facilities, give them access to your internal business partners to help learn and understand what your companies mission objectives are.

    If your truly interested in forming a relationship with a supplier then offer before they ask. I for one never turn down tours or time spent talking with people in the field. Its fun and interesting and way more valuable than any meeting just talking about it. You would be surprised how many of the customers own IT people have never done this as well. This isn't just a site survey either, this is watching people working and even having a go at it (if they let you). I can hear some of you saying what a waste of time, but it is far from it.

    Softphones do not always equate to cost savings. Assuming $200 per endpoint (probably a high estimate) to replace the hardware of a phone with either a softphone or another hard phone (USB headset/ handset or standalone IP Phone)  depending on the headset you may be looking at a faster refresh cycle than your typical desk set (which can be 10+ years). As an example the battery life of a Bluetooth headset matches more closely to a typical PC meaning faster refresh rates. Even though super cheap headset for less than $40 are available they may not have the quality, fit or performance of a more pricier headset. This is especially true for people that need to wear them for long periods.

    I can hear people saying that most people who have handset today most likely will have a headset as well. This is true but if you replace a handset with a handset it is highly likely you can reuse the headset already in place. The point here is just don’t think you are going to save a bunch of money because you are going with softphones over a hard phone there is more to it than that especially with larger projects. Look longer term at the cost savings and you may find that headsets end up costing more over ten years than your typical desk set life expectancy.

    Make the most of Screen backgrounds for User Training. This more relevant if your deploying video room systems but that room system background can be much more than just a pretty picture. Create your own background with system use information for the touch panel or remote. Seems kind of obvious to do but  commonly overlooked. This is a simple thing to do that adds a bunch of value. Much better than the laminated instructions attached to a touch panel.


    Quite a few people asked me to put my thoughts into a single post so this is what I tried to do. I am sure there are other tips and tricks out there I haven't mentioned but feel free to add your own in the comments section or if you disagree with anything I mentioned. This all comes from the school of hard knocks so hopefully this helps a few people avoid some of the pit falls.


    Updated: CUCM SIP URI Dialing to Lync 2013–Adding Cisco Expressway for Video

    I created the original post for this configuration back in July 2012 and its seen quite a bit of traffic and had some great comments. I just thought with the release of Lync 2013 and some new interesting developments it would be worth adding new info and refreshing some of the content to better speak to Lync 2013.

    I have recently added community fixes to issues that have arisen so this post is certainly worth a revisit when I make updates. Please continue to comment and make suggestions. I know quite a few companies are now using this configuration based on this blog post so keep the info and questions coming and I will keep updating.

    What's this post all about?

    I have seen quite a bit of using Cisco’s mobility feature to dual ring a Cisco phone and Lync. There is an interesting feature in CUCM that could make your life easier. Its called SIP URI dialing. This isn't a new feature as its been around since 7.x days or possibly earlier. It sparked my interest back in 2008 but I never really investigated it further until 2012.

    SIP URI dialing is really a pretty basic concept. Instead of using a normal DID route pattern to designate a destination you use a SIP URI such as lyncuser1@contoso.com. By specifying @contoso.com as your SIP route you assign a SIP trunk that points to Lync. Its actually pretty simple and works with Cisco’s mobility feature used in Remote Destination Profiles.

    There are some caveats with this feature though and its not terribly flexible. It does require some special configuration but could possibly make dial plans and  interoperability a little easier. Also you can remove the issue of requiring unique DID’s on both systems because now that your ringing between systems with a unique SIP URI using the same DID on both systems is much less problematic. So users don’t have to change numbers or use a new number for Lync, it can be the same as their Cisco IP phone.

    To make things a little easier to understand, in this post I am referencing the To field in a SIP message when I am talking about Tel URI or SIP URI. I am using Tel or SIP to define trunk routing behavior even though both are configured as SIP trunks when configured in CUCM. Its just the routing behavior based on the address format I am trying to better define. Hope that’s not to confusing.

    Why use it?

    While working in the field I get a lot of questions from engineers around how do I make my Cisco phone and Lync ring at the same time. As I have covered here on my blog there are a couple of ways to do this from either CUCM, Lync or even potentially from a gateway. But there is a level complexity in regards to how to configure DID’s and how to make DID’s unique enough so that you can route between the two platforms. Well using SIP URI dialing instead of DID’s this simplifies this portion of the configuration and leaves Lync’s Sim Ring feature open for users to configure it for their cell phones. Using Sim Ring as the tool to ring a Cisco desk phone in my opinion is a waste of an easy to configure end user setting. I strongly believe this feature is better used to ring a cell phone or other devices self administered by the user.

    The interface for configuring Cisco Remote Destination Profiles is potentially very intimidating for normal users. There are settings and timers that if set incorrectly can cause issues. That’s why in my opinion RDP’s should be configured by an administrator and Sim Ring on Lync is a better choice for self service by the average user. There is only one timer and phone number fields can be prepopulated making the users phone number selection easy. Also Sim Ring has the ability to use the business hours set in Outlook where as Cisco’s RDP requires this to be recreated under the RDP profile. If your using RDP’s for more than just ringing Lync this might be handy.


    From a self service point of view Lync allows the user to set Sim Ring and Business hours which are inherent in Outlook straight from within Lync. Timers for voicemail forwarding are available but other timers are system controlled and not exposed to users removing the potential to create issues. Sim Ring can also be changed by the user from all the mobile apps.



    RDP’s although not overly end user friendly can be used in different ways to help integrate Lync into your preexisting environment. It can ring up to 5 endpoints. RDP could also be used as way to keep voicemail in a different voicemail messaging platform other than Exchange UM for Lync users but still allow a user to have Lync as a softphone. This might be important for companies that do want voicemail in email for compliance reasons etc. So RDP has some great uses for working around common issues.

    Caveats for SIP URI dialing?

    The single biggest caveat for SIP URI dialing is that when you create a SIP Route pattern in CUCM it does not allow assigning a route group to it. You have to directly assign a trunk to the route pattern. The main issue is that once assigned to the SIP route pattern you can no longer assign the same trunk to a route group which limits your options. The best way to deal with this is to have a SIP trunk just for SIP URI routing. In CUCM 8.6 you can have multiple endpoints (in our case mediation servers) assigned within a SIP trunk which means that this isn't a redundancy problem. Its more a configuration issue on the CUCM side but since this configuration is for a specific purpose I don’t consider this a show stopper.

    With Lync 2013 this trunk can now have its own port within the Lync trunk configuration. This means we can create a trunk with its own rules on either system. It really doesn’t mean that its simpler but certainly more configurable from a call control point of view.

    How to set it up?

    The easiest way to do the setup is to follow this guide with a few alteration which I will call out below. This is the Microsoft produced guide. In the Microsoft guide they make use of Calling Search Spaces (CSS) which gives a more complete picture of the settings required. In the Cisco guide there is no call authorization setup so unless you know which CSS to configure you could easily miss a setting as there are multiple places to set CSS on various pages. The one that caught me out was the rerouting CSS on the Remote Destination Profile.


    What's needed for Lync?

    The SIP URI trunk is for inbound use only. This means that setup on the Lync Server is pretty simple if you already have a SIP trunk setup for your CUCM deployment. As long as your CUCM servers are already added to the topology as gateways you are already done. Just make sure that the inbound SIP URI trunk to Lync is using already established ports.

    In Lync Server 2013 we can take the configuration a little further than 2010. We can define individual trunks for each dialing type. Like I said earlier this doesn’t make it simpler to configure but it can make the configuration clearer to understand. Now we have two well define trunks to the same gateway and we can name it accordingly so we have a clear understanding of the configuration.


    If creating two trunks in Lync 2013 the individual trunks are identified by the inbound port on the gateway side of the configuration (in our case CUCM).


    The trunk configuration is then completed in the Lync Control Panel or PowerShell. Below are a couple of screen shots for the configuration I completed in my lab but for more complete details on setting up a SIP trunk to CUCM refer to this document http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=26800. Although this document refers to Lync 2010 a lot of the same rules apply to 2013. Also keep in mind there are variances in the exact setup according to the version of CUCM you are using. In my example lab REFER is support by CUCM 8.6 so I left it as enabled but other versions this will differ. Use this link to match your CUCM version setting requirements http://technet.microsoft.com/en-us/lync/gg131938.aspx.


    Trunk settings for encryption, enable media bypass and REFER for CUCM 8.6.


    The last time I posted this info Alex Lewis asked the question about “You say the DID can be the same in Cisco and in Lync but if I'm in Lync and dial another user then only their Lync endpoint will ring.” Well thanks to an Anonymous tipster I believe that we have somewhat of a solution to this. There is an attribute that can be added to the users Tel URI that will stop Lync from doing the usual RNL behavior. This means that any call to the users extension can be routed to CUCM regardless of whether its configured in Lync as the user line URI while allowing the RDP in CUCM to ring the Lync client. Now this is by no means a perfect solution. There is potential hair pinning of calls through Lync to CUCM and back to Lync. While this has the potential to consume some extra resources its not going to be life threatening in most cases. Its just a matter of planning for it and understanding call flows in your environment.

    What you potentially end up with is a Line URI that looks like this:


    The ms-skip-rnl is what will cause Lync to pass the call directly out to CUCM rather than follow normal reverse number look up behavior for calls to be routed to users. This attribute is actually used else where in the product for certain functions such as CAC and RCC so its not a total mystery of its existence but this is not its normal use.

    Lastly I just want to mention, use this configuration at your own risk. This is not the usual configuration that one would follow in setting up Lync. When calling in a support ticket this attribute may be required to be removed if you are having issues. As my friend and college Doug wrote to me in an email exchange “The mechanism that it leverages will probably remain in the product forever but, if they called support, the engineer would probably go, “huh?”. I think you get the idea now.


    How do I configure CUCM?

    In my testing I was using CUCM 8.6 so your settings may vary depending on the version you have.

    SIP Trunk

    The thing with this configuration is that you are creating a SIP trunk for one purpose and that is to ship messages with headers that have the “to” field with a SIP URI format to Lync. So LyncUser1@contoso.com as an example.

    Your Tel URI and SIP URI SIP trunks can share the same SIP Security Profile and outbound ports to Lync but you will need to use different DNS/SRV names or IP address DNS name combinations. So as an example:

    SIP URI Trunk – FQDN – 2013-lync-fe.contoso.com

    Tel URI SIP Trunk – IP Address

    Below is my trunk configuration for my SIP URI routing with a FQDN for my Lync 2013 Mediation Server.


    SIP Profile for calling out a specific listening port:


    In my case I used a IP address on one trunk for Tel URI calling and the FQDN on the SIP URI trunk. Now if you are not that fixed on configuring route groups and route lists for the SIP trunk connecting to Lync you can configure the trunk directly on both DID and SIP URI route patterns and just have one trunk. I tried both in my lab and it worked either way.

    In this 2013 update I changed around my configuration somewhat to route to separate trunks that have separate port numbers as well. Like I said earlier this give the ability to create more control at either end of the trunk on either Lync or CUCM.

    Update: SIP Normalization Rules

    I received quite a few emails and comments from people that ran across an issue. If your Lync deployment was larger than a single pool the port specified in the SIP invite from CUCM would cause calls to fail. If you user wasn’t part of the pool associated with the mediation server receiving the invite from CUCM redirecting the invite to the correct pool would fail. The error message generated indicated a port issue.

    LogType: diagnostic
    Severity: warning
    Text: Message was discarded by the application
    SIP-Start-Line: INVITE sip:firstname.lastname@contoso.com:5060 SIP/2.0
    SIP-Call-ID: a5c03a60-e790-4490-9e02-75baf13b8250
    SIP-CSeq: 51567 INVITE
    Data: application="http://www.microsoft.com/LCS/UserServices"

    Seems Lync didn’t like the header with port 5060 being part of it when passed to another pool. The exact reason why it doesn’t like it I am not sure why but this was the issue identified.

    This really stumped me. I wasn’t quite sure how to work around it but luckily a reader supplied the answer. CUCM has the ability to create normalization scripts to fix header issues like this. This is somewhat similar to MSPL scripts in Lync which many of you are probably familiar with but uses an open source scripting language called Lua http://www.lua.org/docs.html. Here is a similar example I also found that replaces IP address with a domain name.

    Creating the Script: Device>Devices Settings>SIP Normalization Script


    Add new-


    Paste in the follow contents, name the script and save::

    M = {}
    function M.outbound_INVITE(msg)
    local method, ruri, ver = msg:getRequestLine()
    local uri = string.gsub(ruri, "5060", "5061")
    return M


    Finally apply the script to your CUCM SIP trunk for SIP URI dialing.


    SIP Route

    Probably the new piece of configuration to most people will be the SIP route itself. Its pretty easy to configure. See below. I created a domain route to contoso.com to route my SIP URI traffic that I setup for my users on their Remote Destinations.


    User Setup

    As far as the user setup goes the only variation between the standard setup mentioned in the guide I referenced earlier is to configure the user with a SIP address to route calls in the Destination Number under Remote Destination configuration. In my case I used garthf@contoso.com as my destination number rather than a DID or other number.


    This configuration is probably one of the most important interoperability pieces I have written in a while. I can see this alleviating quite a few issue I have come across in the field and hopefully this article will get good circulation so more people know about it. If I look over all the possible ways to do interoperability between Lync and CUCM (RCC, Plugins etc, etc) this really does give the best of both worlds without sacrificing one for the other unlike other methods like plugins which ruin the Lync UI experience. There are some complexities for the initial setup but at the end of the day your using the features available of both products without the use of third parties or additional servers. Call it the biggest bang for your buck if you will.

    Video with Expressway

    So you have done your audio interworking following  this post and from all the feedback I have received this has been hugely popular way to do it, now its time for video. So lets assume you’re a standards based room video user and you want to add video interworking with Lync from CUCM. On the Cisco side this requires the use of Expressway which allows internetworking from standards based endpoint using H.264 AVC to H.264 UC SVC. Microsoft like many vendors has its own variant only implementing part of the standard which isn't unusual and can be found here :Unified Communications Specification for H.264 AVC and SVC UCConfig Modes. I personally don’t know if any other vendors besides Polycom and Microsoft have implemented this variant but it does provide some backward capability to H.264 AVC in mode 0 which is good.

    Even though Microsoft has some video codec backward compatibility with H.264AVC with Lync 2013 signaling is still a challenge and that's where Cisco Expressway comes in to the picture. Expressway works on both interworking the signaling coming from Lync as well as adjust for video code differences.


    Now I am not going to go step by step through how to configure this setup but I will just hit on one area where you may fall into issues if you have already followed the earlier info on using the ability to dual ring the Lync client using a SIP URI. Seeing as the Mediation Server is audio only but we are still sending URI’s to it our video endpoints wont be able to use the same path for dialing Lync clients. Dialing back the opposite direction from Lync to CUCM/Expressway is a little easier as Lync has no way to dial pure audio devices without a DN to be able to route to them. Video on the other hand Lync can use a Static route to forward to the video domain. CUCM how ever we have hit a point where different devices are trying to route over different paths via the same URI potentially. One SIP trunk for audio and one SIP trunk via Expressway for video.

    Although this is a very generic depiction below using CUCM Call Search Spaces and Partitions we can ensure our devices are using the correct path. This should be pretty straight forward for most CUCM admins but if your focus is Lync this might be a little less obvious. This is the same sort of concept as routing via geographical location but this time we are doing so based on the feature/service required versus a location.



    This configuration ensures that peer to peer video will be processed between the two environments regardless of the calling direction. Calls from Lync to video MCU resources residing on CUCM work pretty much the same way but unfortunately calls from CUCM video devices to the Lync AVMCU from video endpoints other than audio calls using a DN will fail. This is because of Microsoft’s use of CCCP protocol which is basically buried in SIP SDP signaling. Expressway does not support CCCP.

    Eventually RDP and content sharing support beyond what's available today will also be a part of the picture as announced recently on the Cisco blog.  Keep an eye out for more updates to this post.

    If folks need more explanation please feel free to post your questions. I have used the comments to keep expanding on this post multiple times now so if you have done something that adds to this please let me know, no matter how minor it is.


    Cisco UC Application Virtualization Explained

    I spend quite a bit of time discussing Cisco’s Unified Communications Applications in a virtualized environment. There is a ton of information available for deploying and also support guidelines at the Wiki site below:


    So much information that it is hard to work out where to start. I thought I would break down what the options look like and help give a base level knowledge to folks in need. It took me quite a while to get around the site especially with trickier questions around CPU speed and changing CPU’s etc.but as you learn the different areas and requirements it makes a great reference to support guidelines. It is the definitive guide for virtualized Cisco UC applications. Actually for anyone doing a UC project the guidelines presented for Cisco can also be helpful to apply some of the same guidelines for any real-time application.

    Hardware Categories

    There are three main categories when it comes to the hardware that is supported when deploying Cisco UC applications in a virtual environment.

    UC on Unified Computing System (UCS) Tested Reference Configurations (TRC) – This is probably the easiest way to buy, deploy and support Cisco UC applications on supported and tested models of UCS hardware. These are specific models of hardware that cover everything from CPU speed, RAM and hard drive size. Some models such as the Business edition 6000 and 7000 only require a single part number to purchase everything including the VMware licenses. Both servers are based on UCS TRC  models. Currently there are nine different UCS models that fit into this category from rack mount to blade servers.

    UC on UCS Spec-based So what if you have UCS and it meets the minimum spec of your UC applications but doesn’t match the a TRC server build. CPU speed and or architecture is an example, this falls under UCS Spec-based guidelines. One thing to focus on when investigating whether your UCS box will support Cisco UC applications is the CPU architecture guidelines. If it doesn’t match the supported architectures than you may have to look at changing out your CPU or other hardware to meet the minimum specs.

    UC on 3rd Party Spec-based The guidelines for support are  similar in certain aspect to UCS spec-based but of course Cisco does not validate, support or test the third party hardware. Also be aware that the customer must be responsible providing a licensed, supported version of VMware vCenter and vSphere ESXi.

    So there are three major areas to watch for this category:

    • VMware version support. UC application version support for VMWare ESXi can vary but the version of ESXi also needs to be support by VMware for your hardware : http://www.vmware.com/resources/compatibility/search.php
    • CPU Architectures are specified and some CPU architectures my never be supported so this is a very important  to ensure you have correct architecture per your UC applications.
    • CPU speeds and total cores must match the minimum spec of your UC application.

    This is really for customers that are comfortable self supporting their own hardware environment. As you can tell there are a few variables that affect the supportability of a platform so it will always be best to check with Cisco before you purchase or deploy on a third party spec box.

    Third Party and UC VM Co-residency

    Once you have picked your platform and decided what UC applications you want to deploy now you need to understand what can and can’t be deployed on the same VMware host.

    There is a great document that goes into detail on what is and is not supported here. The basics are if a third party application is installed on your host and is deemed to be interfering with your UC applications it may need to be either removed, shut down or ported to another VM host so you can continue to troubleshoot with the TAC.

    For some general guidelines here are some simple rules to follow:

    • Don’t over subscribe your applications, it’s a one to one mapping between your VM and your hardware.
    • Use OVA’s for your Cisco UC applications
    • CPU guidelines must be followed (speed, core mapping and architecture)
    • Don’t overload your network and ensure your looking at QoS design considerations for virtualization

    VMware Feature Support

    This has a few moving pieces but VMware features are well documented as to what is and isn't supported. Probably the most common features are vMotion, cloning or copying virtual machines and Snapshots. Depending on your applications it may or may not be supported but there is a good table located here to help you decide what feature support is available.

    Replacing a CPU in a VMware host

    I recently had a case where a company needed to change CPU speeds. So if for some reason you need to upgrade your CPU’s in your VMware host server here are a few things to consider:

      • According to VMware support guidelines ensure that the CPU remains the same manufacturing technology. If you are going to replace an Intel Xeon 5100 series CPU with a Xeon 5300 series CPU, even though the number of cores are different, but they are still under Intel Xeon 5000 series, there are no issues with replacing them. However, swapping CPUs between Intel Xeon 7000 series with 5000 series may cause ESX to function in an unexpected manner.
      • Ensure the same CPU architecture per the UC application guidelines
      • Ensure the minimum speed and core amounts are meet for your UC application for the amount of users you wish to support.

    UC Placement Tool -http://tools.cisco.com/ucs

    The virtual machine placement tools is very helpful in understanding how to map your virtual machines to the hardware.

    The Cisco Collaboration Virtual Machine Placement tool (VMPT) is to be used AFTER design guides and sizing tools, and BEFORE creating a bill of materials, quote or configuration in Cisco Commerce Workspace.

    It helps you visualize a deployment of virtualized Cisco Collaboration to simplify specifying the required physical servers and virtualization software. It is not intended to be used as a "design tool", "sizing tool" or "quote tool" that substitutes existing processes.