Configuring a UCC
One of the most important steps in setting up an AnywhereNow installation is the configuration of a UCC A Unified Contact Center, or UCC, is a queue of interactions (voice, email, IM, etc.) that are handled by Agents. Each UCC has its own settings, IVR menus and Agents. Agents can belong to one or several UCCs and can have multiple skills (competencies). A UCC can be visualized as a contact center “micro service”. Customers can utilize one UCC (e.g. a global helpdesk), a few UCC’s (e.g. for each department or regional office) or hundreds of UCC’s (e.g. for each bed at a hospital). They are interconnected and can all be managed from one central location..
Warning
Please make sure the value in "Name" uses lowercases and no spaces.
To Configure a UCC
-
Go to UCC Server
-
Edit Config.xml of AnywhereNow.
The default path of this file is:
C:\ProgramData\Anywhere365\Core\Service\UnifiedContactCenterService\Config.xml
-
In order to connect your UCC to the SharePoint environment, use the following settings in your config.xml file on the application server.
-
SharePoint Server/Foundation
CopyXML<UnifiedContactCenter Name="ucc_">
<SettingsUrl>ucc_site_url<SettingsUrl/>
<SettingsProvider>sharepoint</SettingsProvider>
</UnifiedContactCenter> -
SharePoint Online
Note
Used when there is no AD synchronization, for example ME-ID Formerly known as Azure Active Directory (or Azure AD, or AAD) or ADFS.
Note
If MFA is enabled on the Service Account for AnywhereNow, an APP Password needs to be generated. Log into the browser with the username and password, to generate the app password and put this in the config.xml
CopyXML<UnifiedContactCenter Name="ucc_name">
<SettingsUrl>ucc_site_url<SettingsUrl/>
<SettingsProvider>sharepointonline</SettingsProvider>
<SettingsUsername>username@domain.com</SettingsUsername>
<SettingsPassword encrypted="true">encrypted_password<SettingsPassword/>
</UnifiedContactCenter>Tip
Password tool is located in the install package.
Tip
You can use an un-encrypted password by using:
-
SharePoint Online with app id and app secret
Note
Used to avoid getting throttled or blocked in SharePoint Online
CopyXML<UnifiedContactCenter Name="ucc_name">
<SettingsUrl>ucc_site_url<SettingsUrl/>
<SettingsProvider>SharepointOnlineAppId</SettingsProvider>
<ClientRealm>TenantID</ClientRealm>
<ClientId>AppID</ClientId>
<ClientSecret>AppSecret</ClientSecret>
</UnifiedContactCenter>ClientRealm is the tenant id.
Tip
To find the ClientRealm (= your Microsoft 365 tenant ID) in a SharePoint page, open the site collection site and go to Site Settings (https://sitecollectionurl/_layouts/15/settings.aspx), then go to Site App Permissions. There the App identifier shows the clientid@tenantid. So the guid GUID stands for Globally Unique Identifier (format is always like 2ed153b4-f632-4766-b846-5b2a769b36d1) and is a pseudo random number used in software applications that is assumed to be unique. The total number of unique keys (2<sup>128</sup> of 3.4028×10<sup>38</sup>) is very large and the probability of the creating the same GUID twice is very small, though not 100% guaranteed. The term GUID is generally used by developers working with Microsoft technologies, while UUID is used everywhere else. after the @ sign is the tenantid (ClientRealm)
ClientId is the id (also called AppId) created during the installation of the UCC Creator, Learn More
ClientSecret is the client secret (also called AppSecret) created during the installation of the UCC Creator, Learn More
-
SharePoint on-premises with ADFS (service account credentials will be used)
Note
Used when there is an AD synchronization and when Windows Authentication is enabled in the Global Authentication Policy on the ADFS server. (See reference: https://blogs.msdn.microsoft.com/josrod/2014/10/15/enabled-forms-based-authentication-in-adfs-3-0/)
CopyXML<UnifiedContactCenter Name="ucc_name">
<SettingsUrl>ucc_site_url<SettingsUrl/>
<SettingsProvider>sharepointadfs</SettingsProvider>
<SettingsUsername>username@domain.com</SettingsUsername>
<SettingsPassword encrypted="true">encrypted_password</SettingsPassword>
</UnifiedContactCenter>Tip
Password tool is located in the install package.
Tip
You can use an un-encrypted password by using:
-
SharePoint Online with ADFS (service account credentials will be used)
Note
Uses when there is an AD synchronization and when Windows Authentication is enabled in the Global Authentication Policy on the ADFS server.(See reference: Enabled Forms Based Authentication in ADFS 3.0 | Microsoft Learn)
CopyXML<UnifiedContactCenter Name="ucc_name">
<SettingsUrl>ucc_site_url<SettingsUrl/>
<SettingsProvider>sharepointonlineadfs</SettingsProvider>
</UnifiedContactCenter>When only Forms is enabled for the intranet zone a username and password has to be provided for this option.
CopyXML<UnifiedContactCenter Name="ucc_name">
<SettingsUrl>ucc_site_url<SettingsUrl/>
<SettingsProvider>sharepointonlineadfs</SettingsProvider>
<SettingsUsername>username@domain.com</SettingsUsername>
<SettingsPassword encrypted="true">encrypted_password</SettingsPassword>
</UnifiedContactCenter>Tip
Password tool is located in the install package.
Tip
You can use an un-encrypted password by using:
-
SharePoint OtherDomain
Note
Used when its an on-premises SharePoint in another domain.
CopyXML<UnifiedContactCenter Name="ucc_name">
<SettingsUrl>ucc_site_url<SettingsUrl/>
<SettingsProvider>sharepointotherdomain</SettingsProvider>
<SettingsUsername>username@domain.com</SettingsUsername>
<SettingsPassword encrypted="true">encrypted_password</SettingsPassword>
</UnifiedContactCenter>Tip
Password tool is located in the install package.
Tip
You can use an un-encrypted password by using:
-
SharePoint Online App-Only, Certificate and Thumbprint
Note
When using a certificate and a thumbprint of the certificate stored on the server below settings can be used. (Thumbprintkey with no spaces)
-
Generate a self-signed certificate as described on Microsoft site. Granting access via Azure AD App-Only | Microsoft Learn.
-
(In short) Create an Azure App Registration
- Upload the self-signed certificate (.cer file) to your Azure App registration
- Add the SharePoint API application permission (i.e. SharePoint -> Application permissions -> Sites -> Sites.FullControl.All)
- Grant admin consent
- Collect the Application ID (AppID) of this Azure App registration
-
-
Install certificate (.pfx file) on local server
-
Retrieve thumbprint for the certificate (in local certificate Details tab)
CopyXML<UnifiedContactCenter Name="ucc_name">
<SettingsUrl>ucc_site_url<SettingsUrl/>
<SettingsProvider>SharepointOnlineCertificate</SettingsProvider>
<ClientRealm>TenantId</ClientRealm>
<ClientId>AppId</ClientId>
<CertificateThumbprint>Thumbprintkey</CertificateThumbprint>
</UnifiedContactCenter>Tip
A renewed certificate (.cer file) can be uploaded to the Azure App and the corresponding Thumbprintkey can be changed in the config.xml without needing a UCC service restart.
-
-
-
Save Config.xml
-
The new UCC will now start.
Tip
Use Snaketail to watch the logs real-time.
Optional Configuration
Tip
Useful when running multiple services on one machine (Enterprise Plus)
Set Display name
In order to set a display name for a UCC, the Config.xml of the UCC Service should be changed. More specifically, a new attribute called “DisplayName” must be added to the UnifiedContactCenter-node.
C:\Program Files\Anywhere365\Core\UCC\
<UnifiedContactCenter Name="ucc_" DisplayName="Display Name">
<SettingsProvider>sharepoint</SettingsProvider>
<SettingsUrl />
</UnifiedContactCenter>
If no display name is configured for a UCC, it defaults to the UCC ID (the attribute “Name” of the UnifiedContactCenter-node). The display name can be modified on the fly, and as soon as this happens, all client applications will be informed about this name change.
Both the UCC ID and UCC DisplayName, will be send via the Dashboard- and Attendant service to supply Snapper and (Web)Wallboard. The IPluginUccSettings of the ListsPlugin also contain the UCC ID and UCC DisplayName. Furthermore, an Event with the display name is raised when a UCC is started and when the display name is modified. Finally, the table “UCC_Name” of the CDR Call Detail Records (CDR) are the meta data of a converstation: who talked to whom, at which time, for how long and with which identity among other things (skill, optional classification, etc) which gets stored in your SQL (analytical) database. database is extended with an additional column called “DisplayName” containing the current display name of the UCC.
Change config location
You can move the location of the config file by adding a key to the appsettings of the Wsp.Anywhere365.Ucc.Service.exe.config.
C:\Program Files\Anywhere365\Core\UCC\
<appSettings>
<add key="config" value="C:\Program Files\Anywhere365\Core\config.xml" />
</appSettings>
Change cache location
You can move the location of the cache files by adding a key to the appsettings of the Wsp.Anywhere365.Ucc.Service.exe.config.
C:\Program Files\Anywhere365\Core\UCC\
Change log location
You can move the location of the log files by changing a key in the log.xml.
C:\Program Files\Anywhere365\Core\UCC\
<file value="D:\UCClogging\ucc_log.txt"/>
Set start order
You can change the order in which the UCC start in the config.xml
The default path of this file is:
C:\ProgramData\Anywhere365\Core\Service\UnifiedContactCenterService\Config.xml
Set Max concurrent starting
You can change the amount of UCCs that start at the same time (default 5)
The default path of this file is:
C:\ProgramData\Anywhere365\Core\Service\UnifiedContactCenterService\Config.xml
Skip SharePoint Connection on Startup
You can change the startup delay of SharePoint
The default path of this file is:
C:\ProgramData\Anywhere365\Core\Service\UnifiedContactCenterService\Config.xml
<UnifiedContactCenters SkipSharepointConnectionOnStartupDelay="10" SkipSharepointConnectionOnStartupDelayInterval="3">
SkipSharepointConnectionOnStartupDelay = A delay (in seconds) between the complete startup of the first UCC (heartbeat is started) and initiating the SP connection for this UCC.
SkipSharepointConnectionOnStartupDelayInterval = A delay (in seconds) before the SP connection of the subsequent UCCs will be initiated; this delay will be multiplied by the number of UCCs that is already started.
E.g. if the value for SkipSharepointConnectionOnStartupDelay is 10 seconds and the value for SkipSharepointConnectionOnStartupDelayInterval is 3 seconds, the SP connection for the first UCC will be initiated 13 (10 + 1*3) seconds after the heartbeat of this first UCC is started. The SP connection of the second UCC will be initiated 16 (10 + 2*3) seconds after the heartbeat of this second UCC is started. The SP connection of the third UCC will be initiated 19 (10 + 3*3) seconds after the heartbeat of this third UCC is started. Etc.
<UnifiedContactCenters SkipSharepointConnectionOnStartupDelay="10" SkipSharepointConnectionOnStartupDelayInterval="3">
Configure conference cancel delay
It is now possible to specify a delay in config.xml to delay the start of canceling conferences.
The default path of this file is:
C:\ProgramData\Anywhere365\Core\Service\UnifiedContactCenterService\Config.xml
<?xml version="1.0" encoding="utf-8"?>
<config version="1.5">
<ConferenceCancelDelayInSeconds>1800</ConferenceCancelDelayInSeconds>
....
Enable audio route logging
It is possible to log the audio routes
The default path of this file is:
C:\ProgramData\Anywhere365\Core\Service\UnifiedContactCenterService\Config.xml
<?xml version="1.0" encoding="utf-8"?>
<config version="1.5">
<UseAudioRouteLogging>true</UseAudioRouteLogging>
....
You should now observe in the log lines such as:
2020-02-17 15:51:07,729 [13] Microsoft.Rtc.Collaboration.AudioVideo.AudioVideoMcuRoutingExtensionMethods INFO - ADD out route from sip:Welcome@domain.com to sip:user@domain.com
2020-02-17 15:51:07,733 [13] Microsoft.Rtc.Collaboration.AudioVideo.AudioVideoMcuRoutingExtensionMethods INFO - ADD in route from sip:Welcome@domain.com to sip:user@domain.com