Configuring a UCC

One of the most important steps in setting up an AnywhereNow installation is the configuration of a .

Warning

Please make sure the value in "Name" uses lowercases and no spaces.

To Configure a UCC

  1. Go to UCC Server

  2. Edit Config.xml of AnywhereNow.

    The default path of this file is:

    C:\ProgramData\Anywhere365\Core\Service\UnifiedContactCenterService\Config.xml

  3. In order to connect your UCC to the SharePoint environment, use the following settings in your config.xml file on the application server.

    1. SharePoint Server/Foundation

      XML
      <UnifiedContactCenter Name="ucc_">
         <SettingsUrl>ucc_site_url<SettingsUrl/>
         <SettingsProvider>sharepoint</SettingsProvider>
      </UnifiedContactCenter>
    2. SharePoint Online

      Note

      Used when there is no AD synchronization, for example 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

      XML
      <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:

      XML
      <SettingsPassword>password</SettingsPassword>
    3. SharePoint Online with app id and app secret

      Note

      Used to avoid getting throttled or blocked in SharePoint Online

      XML
      <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 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

    4. 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/)

      XML
      <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:

      XML
      <SettingsPassword>password</SettingsPassword>
    5. 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)

      XML
      <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.

      XML
      <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:

      XML
      <SettingsPassword>password</SettingsPassword>
    6. SharePoint OtherDomain

      Note

      Used when its an on-premises SharePoint in another domain.

      XML
      <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:

      XML
      <SettingsPassword>password</SettingsPassword>
    7. 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)

      1. Generate a self-signed certificate as described on Microsoft site. Granting access via Azure AD App-Only | Microsoft Learn.

        1. (In short) Create an Azure App Registration

          1. Upload the self-signed certificate (.cer file) to your Azure App registration
          2. Add the SharePoint API application permission (i.e. SharePoint -> Application permissions -> Sites -> Sites.FullControl.All)
          3. Grant admin consent
          4. Collect the Application ID (AppID) of this Azure App registration
      2. Install certificate (.pfx file) on local server

      3. Retrieve thumbprint for the certificate (in local certificate Details tab)

      XML
      <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.

  4. Save Config.xml

  5. 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\

XML
<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 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\

XML
<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\

XML
<appSettings>
   <add key="cache" value="C:\Program Files\Anywhere365\Core\" />
</appSettings>

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\

XML
<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

XML
<UnifiedContactCenter Name ="ucc_name" StartOrder="1"> 

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

XML
<UnifiedContactCenters maxConcurrent="5">

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

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.

XML
<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
<?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
<?xml version="1.0" encoding="utf-8"?>
<config version="1.5">
<UseAudioRouteLogging>true</UseAudioRouteLogging>
....

You should now observe in the log lines such as:

Log
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