IT tutorials
 
Technology
 

Microsoft Lync Server 2010 : UCMA (part 1) - Server APIs ,Client APIs , PowerShell

10/5/2013 7:39:03 PM
- Free product key for windows 10
- Free Product Key for Microsoft office 365
- Malwarebytes Premium 3.7.1 Serial Keys (LifeTime) 2019

1. Overview

When it comes to extensibility, there is so much that Lync can do that at first it can be overwhelming to consider all the possibilities. Imagine being able to enable your whole enterprise for VoIP. Think of the savings you can get by replacing all the telephony hardware with a software solution. The capability to have instant communications with employees, vendors, and customers worldwide using a single Lync client is powerful. Think of the travel expenses you can save by using the same client instead of having to gather your far-flung team together in one city for meetings.

Think about your company help desk and your customer support individuals being able to share desktops to resolve problems. What could be done to decrease the time it takes to deal with support issues? What would it do for employee morale or for customer satisfaction? All this functionality is available right out of the box.

But there comes a time when the “wow” starts to wear off and you begin asking the what-if questions. What if Lync could do this? Or what if it could do that? How can Lync help me conduct my business better? After using Lync for a while, you begin to see not limitations in Lync but rather possibilities. You start seeing areas of your business that could benefit from the features of Lync. You begin to see how it can integrate and become an integral part of your business processes.

At this point, you might ask how Lync can do the things you need. Microsoft has thought of you and provided application programming interfaces (APIs) that enable you to tap into the power and functionality of Lync.

2. Server APIs

The server-side API is UCMA 3.0, which is a managed code API for building communications solutions that run against Lync Server—though in some cases the applications run under the UCMA Runtime without Communications Server. This API is highly scalable, very extensible, and is made up of multiple modalities (for example, Core, UCMA Runtime, and so on).

It allows for application provisioning and management as well as handling publishing of endpoints and subscribing to events. It enables you to create endpoints for audio, video, and messaging and can even serve as a back-to-back user agent. So, what kind of applications can you create with UCMA 3.0?

It can be used in a help desk or contact center/call center environment for enabling supervisors to monitor IM chats or voice calls, whisper instructions to an agent, or enable the supervisor to take over the conversation if needed.

One popular use is for Interactive Voice Response (IVR) or personal virtual assistants. Think what it would be like if your customers started a voice call or an IM chat with an application that prompted the user for information and provided the caller with needed information or directed the call/chat to the correct agent to handle the customer’s request. You can even enable your customers to do all this from your website without requiring the Lync client to be installed on its local PC.

Have you ever received automated phone calls around election time or had an automated call from your doctor’s office or the kid’s school? UCMA 3.0 can do these tasks, too. Imagine what it would do for your business if you called your customers telling them about a new product in your line.

There are two basic modalities that you can use to achieve all this functionality. The Core API enables you full access to Lync Server and lets you get down and dirty by wiring up your event handlers to respond and add functionality to audio, video, and IM streams.

My favorite modality, and the one that most people start out with, is the UCMA 3.0 Workflow API. The Workflow API abstracts a subset of the functionality found in the UCMA 3.0 SDK. You can call the UCMA 3.0 SDK code directly from your Workflow activities. It is also built on top of Microsoft Speech, which means it gives you text-to-speech (TTS), speech recognition, and speech synthesis capabilities. It leverages the communications features of the UCMA SDK, but does so using an easy-to-read visual development model.

3. Client APIs

On the client side, the Lync Server API enables you to add Lync client functionality and features to your own line-of-business applications. Imagine being able to view and display presence in your custom inventory control software. What if, while running your custom inventory application, you could open an IM chat window and chat with the supply room clerk to verify that you have enough inventories or start a chat with your counterpart at another store to ask a question about a product? And pass your current context to the remote party so that they will know exactly what you want to chat about?

The Communicator API enables you to do all these things. You can use it to automate the Lync client or build custom Lync clients (imagine what a round version of the Lync client would look like). You get to define what the UI of your application looks like. The API does this by reusing the Lync client connection, which means that you need the Lync client running on your client PC. Sometimes, as in the case of a lobby kiosk, you might not want the user to know that the Lync client is running. You can hide it so that your application is all the user sees.

API Objects and Methods

Let’s look at some of these features starting with an overview of some of the objects and methods that make up the API.

The UIAutomation object starts conversations (IM and voice) as well as enabling you to join a conference or add contacts. The UIAutomation class enables you to start instant messaging or audio conversations, share the desktop, or transfer a file. In other words, it enables you to automate the Lync client and is used for common UI scenarios.

The UCClient object represents the instance of the Lync client belonging to the currently logged-in Lync user. This object gives you full access to the object model and lets you create your own UI in your applications. You have access to Lync contacts lists, contact presence, and contact card info.

4. PowerShell

For Lync, Microsoft has changed the way that Lync is administered. There is a new browser-based management interface called the Lync Server Control Panel (LCSP) that you can use for all your administration tasks. If you are an administrator type that prefers a command line–type interface, there is something for you, too. Microsoft has also included the Lync Server Management Shell. Both these administration tools have one big thing in common: They both run on PowerShell. This means that anything you can do from the browser-based LSCP, you can do from the command prompt.

There are more than 500 new Lync PowerShell cmdlets to enable users for Lync, set up SIP domains, set up routing, and a host of other tasks.


Let’s start with the basics. To get started, go to the Windows Start menu, expand the Microsoft Lync Server 2010 menu item, and then click Lync Server management Shell. This starts a PowerShell session and loads the Lync Server module.

Now that you have the management shell running, let’s make the assumption that you want to do something with a user such as enable a user for Lync. Well, how do you go about finding which cmdlet to use? You can use the Get-Command to get a list of Lync-related commands by typing the following command:

Get-Command *CS* | More

This command gives some extraneous information, but it includes all the Lync cmdlets and you will see that they follow the normal PowerShell methodology of verb-noun. Quickly skimming through the list, notice some cmdlets with CsUser in the name columns so that you can modify your command to look for just the user-related cmdlets. Figure 1 shows the results of running the command looking for CsUser-related cmdlets.

Figure 1. Results of Running Get-Command *CS*

Notice that we now have a list of the Lync cmdlets that deal with Lync users, and you can quickly determine that Enable-CsUser is probably the one that you need. But, to be sure, you can use the Get-Help to check that assumption. Figure 2 shows the results of that command.

Figure 2. Using the Get-Help Command

We now have all the information we need to enable a user for Lync. The following command enables the user for Lync:

Enable-CsUser –Identity "[email protected]" –RegistrarPool
"Lyncfe2.companyabc.com" –SipAddress "sip:[email protected]"

As you can see, you need to tell the cmdlet what user to enable, which pool to register the user with, and what the SIP address of the user will be. That is all there is to it. If you were to look at the users in the Lync Server Control Panel, you would see that the user is now enabled for Lync.

Tip

There are more steps, such as enabling the user for enterprise voice (Set-CsUser) and setting up the user for voicemail (Set-CsUser again), but you get the idea. As mentioned previously, the Lync PowerShell blog on Microsoft TechNet is an excellent start for learning more about administering Lync using the PowerShell command-line interface.

 
Others
 
- Sharepoint 2010 : Querying SharePoint Data (part 2) - Querying Using LINQ
- Sharepoint 2010 : Querying SharePoint Data (part 1) - Querying Using CAML
- Windows Small Business Server 2011 : Creating a Data Collector Set (part 3) - Scheduling Data Collection
- Windows Small Business Server 2011 : Creating a Data Collector Set (part 2) - Constructing a Data Collector Set Manually
- Windows Small Business Server 2011 : Creating a Data Collector Set (part 1) - Building a Data Collector Set from a Template
- Windows Small Business Server 2011 : Using Reliability Monitor, Managing Collected Data
- Windows 8 : BitLocker Drive Encryption: The Essentials (part 3) - Deploying BitLocker Drive Encryption
- Windows 8 : BitLocker Drive Encryption: The Essentials (part 2) - Hardware Encryption, Secure Boot, and Network Unlock
- Windows 8 : BitLocker Drive Encryption: The Essentials (part 1) - Understanding BitLocker Drive Encryption
- System Center Configuration Manager 2007 : Patch Management - Troubleshooting Software Updates
 
 
Top 10
 
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Finding containers and lists in Visio (part 2) - Wireframes,Legends
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Finding containers and lists in Visio (part 1) - Swimlanes
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Formatting and sizing lists
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Adding shapes to lists
- Microsoft Visio 2013 : Adding Structure to Your Diagrams - Sizing containers
- Microsoft Access 2010 : Control Properties and Why to Use Them (part 3) - The Other Properties of a Control
- Microsoft Access 2010 : Control Properties and Why to Use Them (part 2) - The Data Properties of a Control
- Microsoft Access 2010 : Control Properties and Why to Use Them (part 1) - The Format Properties of a Control
- Microsoft Access 2010 : Form Properties and Why Should You Use Them - Working with the Properties Window
- Microsoft Visio 2013 : Using the Organization Chart Wizard with new data
Technology FAQ
- Is possible to just to use a wireless router to extend wireless access to wireless access points?
- Ruby - Insert Struct to MySql
- how to find my Symantec pcAnywhere serial number
- About direct X / Open GL issue
- How to determine eclipse version?
- What SAN cert Exchange 2010 for UM, OA?
- How do I populate a SQL Express table from Excel file?
- code for express check out with Paypal.
- Problem with Templated User Control
- ShellExecute SW_HIDE
programming4us programming4us