Deploying Lync 2010 Contact Center Application

Summary:   This article describes how to deploy the Microsoft Lync 2010 Contact Center sample application, which demonstrates advanced conferencing scenarios. The server-side components are included with the Microsoft Unified Communications Managed API (UCMA) 3.0 Core SDK, whereas the client-side components are included with the Microsoft Lync 2010 SDK.

Applies to:   Microsoft Unified Communications Managed API (UCMA) 3.0 Core SDK | Microsoft Lync 2010 SDK | Microsoft Lync 2010 | Microsoft Lync Server 2010

Published:   July 2011 | Provided by:   Kai Strandskov, Microsoft | About the Author

Contents

  • Introduction

  • Features

  • Prerequisites

  • Deploying the Contact Center Server Components

  • Deploying the Contact Center Client Components

  • PowerShell Sample Script

  • Conclusion

  • Additional Resources

Introduction

The Contact Center application is an end-to-end client and server sample application that demonstrates advanced conferencing and call center scenarios.

Features

The Contact Center application demonstrates the following scenarios:

  • The customer visits a website, configures their account, and browses products for sale.

  • The customer has a question about a product and clicks a link to start a Microsoft Lync 2010 contextual web chat.

  • The customer can escalate the web chat into a voice call with the click of a button, directing the service to start a call between the agent and the customer’s phone.

  • The agent has a dashboard view of the customer’s contextual data associated with the product in question.

  • The agent can escalate the call to any available product expert, and put the customer on hold.

  • The call center supervisor can monitor all calls, and bargein as necessary.

The server components, which are included in the UCMA 3.0 Core SDK, run on the application server:

  • The Contact Center is a console application that handles all call routing and data flow between users and call center representatives. The Contact Center has two automatic call distributors (ACDs) that handle routing calls to available agents. One ACD is for the Sales portal, and the other ACD is for the Helpdesk portal. Calls get routed to agents based on their skill sets and availability.

  • The Microsoft Windows Communication Foundation (WCF) service runs the website, which sells mobile devices, and the web chat interface. Internet Information Services (IIS) is used for website deployment.

  • The Contact Center Provisioner is an application that is used one time to set up IIS and run the WCF service.

The client components, which are included in the Lync SDK, include the following Microsoft Lync 2010 Conversation Window Extension applications:

  • The agent dashboard, which is used to view customer data that is provided by the web portal.

  • The supervisor dashboard, which is used to monitor all conversations in progress.

    Contact Center application components

    Contact Center application components

Prerequisites

Application Server Prerequisites

  • Windows Server 2008 R2, or Microsoft Windows 7 if Microsoft Lync Server 2010 is deployed on a separate server.

  • Microsoft Lync Server 2010.

  • A web server that is set up with Internet Information Services (IIS) 6.x or IIS 7.x, and application server roles.

Development Prerequisites

  • Microsoft Visual Studio 2010 with Visual Web Developer 2010 Express.

  • Microsoft Silverlight 4 SDK.

  • Microsoft Expression Blend SDK for Silverlight 4.

  • Microsoft Silverlight 4 Tools for Visual Studio 2010.

  • Microsoft Silverlight Toolkit.

  • Microsoft Unified Communications Managed API (UCMA) 3.0 Core SDK.

  • Microsoft Lync 2010 SDK.

  • Certificates that are required to communicate with Microsoft Lync Server 2010.

Deploying the Contact Center Server Components

The application server must be configured to host the Contact Center services, which can be an application server that is separate from the Microsoft Lync 2010 front-end server.

Prepare the Application Server for the Contact Center Application

The steps that are required to set up a server to host trusted applications appear in a Microsoft Unified Communications Managed API (UCMA) 3.0 Core SDK Help documentation topic called General Application Activation. As you continue through the General Application Activation topic, follow these specific steps and save the values that you choose for later use:

  1. In General Application Activation, follow the instructions for creating a pool of trusted application computers, load balancing, and creating a certificate.

  2. In General Application Activation, follow the instructions for adding a trusted service port for the application. This step creates entries for the trusted applications. In this step, you should create the following trusted applications:

    Trusted application

    Recommended application ID

    Contact Center application

    contactcenter

    Web service application

    webstore

  3. In General Application Activation, follow the instructions for creating Active Directory Domain Services contact objects. This step creates the trusted endpoints that will be used to run the Contact Center application. These endpoints are associated with their application. Therefore, you should use the same application ID that you previously created for the Contact Center, for example, contactcenter. You should create the following trusted endpoints:

    Endpoint

    Recommended SIP address

    Recommended display name

    Application ID

    Contact Center application

    sip:contactcenter@yourdomain.com

    ContactCenter

    contactcenter

    Help desk portal

    sip:Helpdesk@yourdomain.com

    Helpdesk

    contactcenter

    Sales portal

    sip:Sales@yourdomain.com

    Sales

    contactcenter

    Web chat

    sip:webuser@yourdomain.com

    WebUser

    webstore

  4. In General Application Activation, follow the instructions for creating Active Directory Domain Services user objects. In this step, you should create three user accounts that will be used to fulfill the following roles:

    • Call center agent

    • Product expert

    • Call center supervisor

    You can choose any kind of identity information, but save your choices for future use.

Customize and Deploy the Contact Center

You must customize the Contact Center solution for your set of endpoints and for your domain. The solution is included with the Microsoft Unified Communications Managed API (UCMA) 3.0 Core SDK.

Configuring the Contact Center Application and Website Settings

The following procedure shows how to configure the Contact Center application and website by modifying two text files. Before you start, ensure that you have the application IDs, endpoint SIP addresses, and user SIP addresses that you created in the previous procedure. There are multiple shared components. Therefore, you must complete all customizations before you build the solution.

To configure the Contact Center application and website settings

  1. Save the contents of the %ProgramFiles%\Microsoft UCMA 3.0\SDK\Core\Sample Applications\Reference\ContactCenter folder to a new location. The Contact Center application should not be customized directly in the location where it was installed during SDK installation.

  2. In the new folder, open ContactCenter.sln with administrator permissions.

  3. In Solution Explorer, navigate to the Common folder and then open Config.xml.

  4. Modify Config.xml so that it references the appropriate endpoints:

    1. Modify the <applicationUrn> element value to match the trusted application that was provisioned for the Contact Center application in a previous step.

    2. Under the <matchmaker> element, configure the <uri> element to match the SIP address for the trusted endpoint that was provisioned for the Contact Center application in a previous step.

    3. For each <agent>, modify the <signInAddress>, <publicName>, and <supervisorUri> to match the users who were configured to be agents and supervisors.

    4. For the <supervisor> element, modify the values for <signInAddress> and <publicName> to match the supervisor user.

    5. Under <portals>, configure the <uri> element values to match the SIP addresses for the groups of helpdesk and sales endpoints that were created earlier. These are the endpoints that manage the call routing rules for the two pools of agents. For example, when a customer starts a web chat through the website, the Sales portal routes the call to the next available agent that matches the skill for the product of interest.

    6. Save the file.

  5. In Solution Explorer, navigate to the ContactCenterServer folder, expand the ContactCenterWcfService project, and then open the web.config file.

  6. Modify web.config so that it references the appropriate endpoints:

    1. Modify the ApplicationId key value to match the value for the endpoint that is configured for the website.

    2. Modify the ContactCenterApplicationId key value to match the value for the endpoint that is configured for the Contact Center application.

    3. Save the file.

Installing the Contact Center Server Components

The server components for the Contact Center application can now be built and installed.

Note

Verify that all required endpoints are provisioned before you install the Contact Center server components.

To install the Contact Center server components

  1. Build the customized Contact Center solution in Visual Studio 2010 development system. This process builds the console application and the provisioner for the website.

  2. Run the Contact Center console application:

    1. Navigate to %ProgramFiles%\Microsoft UCMA 3.0\SDK\Core\Sample Applications\Reference\ContactCenter\ContactCenterExe\bin\Debug.

    2. Copy ContactCenter.exe to the application server and then run the program with administrator permissions.

    3. When you start the Contact Center console, ensure that there are zero errors and that the endpoints appear.

      Note

      To collect Lync 2010 logs, you can use the Lync Logger tool that is included in the UCMA 3.0 Core SDK.

  3. Start a Lync conversation with the Sales or Helpdesk user and then verify that the call is routed to an agent.

  4. Provision the Contact Center website:

    1. Copy the c:\inetpub\wwwroot\contactcenter folder to a computer where you plan to host this Microsoft Windows Communication Foundation (WCF) service. The path that is used on the web server must match the path on the WCF host computer.

    2. Navigate to %ProgramFiles%\Microsoft UCMA 3.0\SDK\Core\Sample Applications\Reference\ContactCenter\ContactCenterWcfServiceProvisioner\bin\Debug.

    3. Copy the ContactCenterWcfServiceProvisioner.exe application to the computer where you copied the Contact Center files, and then run the application that has administrator permissions to configure IIS for running the website. You are prompted to enter the user name and password, which will be used to configure IIS. The credentials will be used to access the SQL database for the website.

    4. Configure the SqlExpress database to use the credentials that are used in the previous step, and then assign permission to access the database for the administrator group that is set up in the previous step.

      Important

      ContactCenterWcfServiceProvisioner.exe is designed to run one time to set up the website for the first time. It should not be run again if the website was previously provisioned.

    5. Ensure that all firewall settings are configured for the new website.

  5. Verify that the services are successfully configured and running:

    1. Open the website in a browser by going to the URL, for example, http://www. mydomain.com/contactcenter.

    2. Create an account for the user.

    3. Sign in to the webpage.

    4. Select the mobile phone that you want to purchase.

    5. Start a web chat and then ensure that the call is routed to an available agent.

      Tip

      For additional troubleshooting on the server, you can use the Lync Logger tool that is included in the UCMA 3.0 Core SDK.

      For additional troubleshooting on the client, check the Windows Event Viewer logs, and the Lync 2010 logs that are saved in the %userprofile%\tracing directory.

Deploying the Contact Center Client Components

The client components must be deployed on all workstations that are used by the customer, agent, and supervisor roles. These components are included with the Contact Center extension application, which is a Microsoft Lync 2010 Conversation Window Extension (CWE) application that is installed with the Microsoft Lync 2010 SDK.

For more information about the Contact Center CWE application, see Lync 2010 Sample Applications.

The application should be installed in a contextual conversation package. For more information, see Register Contextual Conversation Packages.

PowerShell Sample Script

You can use the following PowerShell sample script as a guide for creating trusted applications and endpoints for the Contact Center application.

$trustedApplicationPoolFQDN = "ts.fabrikam.com"
$registrarFQDN = "Lync-SE.fabrikam.com"
$site = "fabrikam.com"
$trustedApplicationsAndEndpoints =
@{
"ContactCenter" = "ContactCenter","HelpDesk","Sales";
"WebStore" = "WebStore","WebUser";
}
$firstPort = 6000
$portIncrement = 10

Import-Module Lync

Write-Output "Creating Trusted Application Pool(s)..." 
New-CsTrustedApplicationPool -Identity $trustedApplicationPoolFQDN -Registrar $registrarFQDN -Site $site
Write-Output "Created Trusted Application Pool(s)."

Write-Output "Creating Trusted Application(s)..."
$i=0
foreach ( $trustedApplicationID in $trustedApplicationsAndEndpoints.Keys )
{
    $id = $trustedApplicationPoolFQDN + "/" + $trustedApplicationID
    New-CSTrustedApplication -Identity $id -Port ($firstPort + $i * $portIncrement).ToString()
    $i++
    foreach ( $trustedApplicationEndpoint in $trustedApplicationsAndEndpoints[$trustedApplicationID] )
    {
$sipAddress = "sip:" + $trustedApplicationEndpoint + "@" + $site
       New-CsTrustedApplicationEndpoint -SipAddress $sipAddress -TrustedApplicationPoolFqdn $trustedApplicationPoolFQDN -ApplicationId $trustedApplicationID -DisplayName $trustedApplicationEndpoint
    }
}
Write-Output "Created Trusted Application(s)."

Conclusion

The Contact Center application is not only an advanced end-to-end application that demonstrates various communications scenarios. It also shows how to provision and deploy UCMA 3.0 and Lync 2010 applications.

Additional Resources

For more information, see the following resources:

About the Author

Kai Strandskov is a Marketing Specialist. Previously, he spent 6 years as a software test engineer, working on unified communications software.