= Application Notes = Application notes are supplementary materials that provide further instructions and procedures for various subjects related to the configuration of or integration with Bright Pattern Contact Center software. The following application notes are available for use with Contact Center Administrator: == Agent Desktop == *[[#topic_contact-center-administrator-guide/applicationnotes/adhaaudiooptions| Agent Desktop Helper Application Audio-Handling Options]] *[[#topic_contact-center-administrator-guide/applicationnotes/webrtc| WebRTC Browser Audio Limitations]] == Microsoft Teams == *[[#topic_contact-center-administrator-guide/applicationnotes/microsoftteamsintegrationconfiguration/overview| Microsoft Teams Integration Configuration Overview]] *[[#topic_contact-center-administrator-guide/applicationnotes/microsoftteamsintegrationconfiguration/quickstart| Microsoft Teams Integration Configuration Quick Start]] *[[#topic_contact-center-administrator-guide/applicationnotes/microsoftteamsintegrationconfiguration/azureapplicationconfiguration| Configuring the Microsoft Graph API as an Authentication Mechanism for Secure Microsoft Teams Content]] *[[#topic_contact-center-administrator-guide/applicationnotes/microsoftteamsintegrationconfiguration/addmicrosoftteamsintegrationaccount| How to Add a Microsoft Teams Integration Account]] == Phones == *[[#topic_contact-center-administrator-guide/applicationnotes/briamobilesoftphoneconfiguration| Bria Mobile Softphone Configuration]] *[[#topic_contact-center-administrator-guide/applicationnotes/ciscospahardphoneconfiguration| Cisco SPA Hardphone Configuration]] *[[#topic_contact-center-administrator-guide/applicationnotes/polycomhardphoneconfiguration| Polycom Hardphone Configuration]] *[[#topic_contact-center-administrator-guide/applicationnotes/softphonesoloconfiguration| Softphone Solo Configuration]] == Storage == *[[#topic_contact-center-administrator-guide/applicationnotes/settingupprivates3storage| Setting Up Private S3 Storage]] = Agent Desktop Helper Application Audio-Handling Options = If your contact center requires the use of the [[#topic_contact-center-administrator-guide/appendices/agentdesktophelperapplication|Agent Desktop Helper Application]], note that you have the capability to control the audio-handling options via the '''librtc.ini''' file. After installing and first launching the Agent Desktop Helper Application, this file is automatically created when making the first phone call from the Agent Desktop application; the file is accessible from the following locations: * For Linux: '''/home/<>/.librtc''' * For macOS: '''/Users/<>/.librtc''' * For Windows: '''/Users/<>''' The following table contains the configurable options from this file. {|border="1" style="border-collapse:collapse" cellpadding="5" ! '''Option Name''' ! '''Default Value''' ! '''Description''' |- |automatic_gain_control |0 |If set to 1, this option helps the microphone maintain a suitable signal amplitude. Turning this on might amplify echo, so if echo cancellation is not sufficient, keep this off. |- |echo_control |1 |If set to 1, this option removes echo (i.e., sounds from speakers that are reflected back into the microphone). Note that turning this setting off does not necessarily introduce echo, as most USB headsets have echo-cancelling hardware. Additionally, turning this setting off might be beneficial for voice quality. |- |highpass_filter |0 |If set to 1, this option removes low-frequency noises (e.g., the rumble of an air conditioner, wind noise, etc.). |- |noise_suppression |0 |If set to 1, this option removes background noises. |} = WebRTC Considerations = WebRTC is an open-source project that allows secure (i.e., encrypted) real-time communications in web browsers. Starting from version 5.5.0, Bright Pattern Contact Center software includes the [[Contact-center-administrator-guide/CallCenterConfiguration/PhoneDevices#Secure_phone_via_browser_audio_.28Web_RTC.29|Secure phone via browser audio (Web RTC)]] phone device option. If you will be using this option in your contact center, please note the following. == All Browsers == * Your computer's speaker device may not be reliably reported by your web browser. Because of this, Bright Pattern Contact Center software uses your computer's microphone to indicate which audio device is being used. * If WebRTC is the only phone device option allowed in your contact center, the following functionalities are not supported '''unless''' the [[#topic_agent-guide/setup/agentdesktophelperapplication|BPClient plugin]] is installed: ** Screen monitoring (i.e., a user can monitor others, but they cannot be monitored) ** Screen recording ** The GUI popup for inbound interactions (i.e., outside of the web browser window) ** Client-side diagnostic logging (i.e., BPClient.log) ** Audio notifications through all audio devices (e.g., ringing on all devices) ** The [[#topic_simplified-desktop-net-api-specification/purpose|Simplified Desktop .NET API]] ** Business user presence detection (i.e., system input activity tracking) ** The G.729 codec ** For Salesforce.com integrations, the CTI phone in Salesforce Classic * '''Note''': In order to use screen monitoring, both users (i.e., the host of the monitoring and monitored user) should have the [[#topic_agent-guide/setup/agentdesktophelperapplication|BPClient plugin]] installed. * Starting from Bright Pattern Contact Center version 5.5.0, the following codecs are supported: ** For browsers that support WebRTC: *** G.711 mu-law, a-law, G.722 ** If the Agent Desktop Helper Application plugin is used (i.e., both secure and regular mode): *** Above + G.729 == Firefox == * The Firefox web browser cannot use a microphone if it was plugged in '''after''' the browser was started; however, it works if there is another microphone registered in the system. In other words, adding a second or third microphone is supported, but adding the first one is not. The only workaround is to restart the entire browser. * Events about audio device changes may be delayed if a frame with Agent Desktop is out of focus. Bringing it into focus enables the events. == Safari == * The ''Allow All Auto-Play'' option must be enabled for your contact center's website; this setting is required to play ring tones as well as WebRTC audio. To enable this setting, take the following steps: ** When you are at your contact center's website, from the ''Safari'' menu, select ''Settings for This Website''. ** In the pop-up window, locate the ''Auto-Play'' option. ** From the pop-up window, select the '''Allow All Auto-Play''' option. * Note that audio may not start if a frame with Agent Desktop is out of focus. Bringing it into focus starts the audio. == Internet Explorer == * The Internet Explorer (IE) web browser does not support WebRTC. = Microsoft Teams Integration Configuration Overview = Microsoft Teams integration enables contact center users to access Teams communication channels information for internal calls and chats with Teams users (i.e., experts) while working in Bright Pattern Contact Center’s Agent Desktop application. This integration allows the following types of users to interact via Teams and Bright Pattern Contact Center: * '''Agents''' - The contact center agents logged in to Bright Pattern * '''Experts''' - The knowledge workers logged in to Teams * '''Administrators''' - The users who configure the integration (i.e., you) == Tutorials == The Microsoft Teams Integration Configuration Guide provides the following tutorials to help you to configure Teams integration: *[[#topic_contact-center-administrator-guide/applicationnotes/microsoftteamsintegrationconfiguration/quickstart| Microsoft Teams Integration Configuration Quick Start]] *[[#topic_contact-center-administrator-guide/applicationnotes/microsoftteamsintegrationconfiguration/azureapplicationconfiguration| Azure Application Configuration for EMI Server]] *[[#topic_contact-center-administrator-guide/applicationnotes/microsoftteamsintegrationconfiguration/addmicrosoftteamsintegrationaccount| How to Add a Microsoft Teams Integration Account]] For information about how to use Teams integration in the Agent Desktop application, after configuration is complete, see the ''Agent Guide'', section ''[[#topic_agent-guide/tutorials/microsoftteams/overview| Tutorials > Microsoft Teams]]''. == Features and Limitations == Teams integration provides Bright Pattern Contact Center users with access to some, but not all, features and functions of the Microsoft Teams application from within the Bright Pattern Agent Desktop application. This section describes the features and functionalities that are currently supported and not supported for agents using Teams integration in Agent Desktop. === What Is Supported === The following features or functionalities are supported by Teams integration: * Agents who have enabled Microsoft Teams in their User Profile may view and open the Teams Chats folder and Teams Channels folder in the Agent Desktop Directory. * Agents can have one conversation per Teams channel at any time. * Agents must close and reopen the Directory’s Teams Chats folder in order to receive notifications of chat replies from Teams users or to have incoming messages from Teams users popped to the agent’s screen. * Agents can mark chats and Teams channels as a Favorite. * In chat conversations, agents can view only the file names of attachments sent by Teams users. * Agents and web chat customers can see the content type of Teams-rich content elements—including streams, extensions (e.g., Zoom meetings, stocks, and weather), files, and code snippets. They will not see the actual content. === What Is Not Supported === The following features or functionalities are not supported by Teams integration: * Group chats with multiple Teams users are not supported. This means that agents can only chat with one Teams user at a time, and the Agent Desktop Directory’s Teams Chats folder will not display group chats. * The ability to invite Teams users to join internal group chat conversations is not supported. * Chat message reactions (e.g., Like, Heart, Laugh, etc.) are not supported, so reactions by Teams users will not be shown in Agent Desktop. * The ability for agents and customers to download attachments sent by Teams users during external chats is not supported. Agents and customers can only view the file names of attachments * Agents cannot mark individual Teams chat messages as a Favorite. They can only mark Teams Channels as a Favorite. * The display of Teams-rich content elements—including streams, extensions (e.g., Zoom meetings, stocks, and weather), files, and code snippets—during Teams conversations is not supported. * Hold time by Teams users is not reflected in the [[#topic_reporting-reference-guide/calldetailreport| Call Detail report]], in the same way that hold time by non-agent parties is not reflected in the Call Detail report. * Rich content (e.g., chat transcripts) in [[#topic_reporting-reference-guide/understandinginteractionrecordssearchresults| Interaction Records]] is not supported. = Microsoft Teams Integration Configuration Quick Start = Bright Pattern Contact Center’s Microsoft Teams integration enables contact center agents to access Teams communication channels information for internal calls and chats with logged-in Teams users (i.e., experts), while handling customer interactions in the Agent Desktop application. The integration supports internal chat and call capabilities with Teams experts, directory access to Teams users and channels, and user-presence visibility in the directory. Integration configuration involves several key steps: enabling the integration on the service provider level, creating an application in the Microsoft Azure Active Directory with Microsoft Graph delegated permissions and application permissions, creating a Microsoft Teams integration account on the contact center level, and enabling the agent’s Microsoft Teams account to be used on the agent level. This quick start tutorial will guide you through the integration configuration process. == Procedure == === Step 1: Check that Integration with Microsoft Teams is enabled=== Microsoft Teams integration is enabled by service providers. To check that integration is enabled, log in to the Contact Center Administrator application and try adding a Microsoft Teams integration account. If the integration is enabled, you will see Microsoft Teams as an available integration account type. If the integration is disabled, you will not see Microsoft Teams at all. For assistance with enabling the integration, please contact your service provider. === Step 2: Register a new application in the Azure Active Directory === The integration uses an Azure Active Directory registered application to represent the Enterprise Messenger Integration (EMI) Server. The EMI Server uses Microsoft Graph API subscriptions to receive events from Teams, such as chat creation, chat changes, new chat messages, and so forth. The EMI Server exposes the webhook to the Internet so that Microsoft servers may call it to send event notifications. # In the Azure Active Directory, register a new application to represent the Enterprise Messenger Integration (EMI) Server. Please see [[#topic_application-notes/microsoftteamsintegrationconfiguration/azureapplicationconfiguration| Azure Application Configuration for EMI Server]] for detailed instructions.

# To check that the application is configured correctly, log in to the Contact Center Administrator application, add a [[#topic_contact-center-administrator-guide/callcenterconfiguration/integrationaccounts/microsoftteams| Microsoft Teams integration account]], set the properties for the account, and click the '''Test connection''' button. Testing the connection will provide you with either a success message or an error message.

=== Step 3: Add a Microsoft Teams integration account === # In the Contact Center Administrator application, section ''Call Center Configuration > Integration Accounts'', click '''+''' to add a new integration account, and select '''Microsoft Teams'''.

[[File:CCA-CCC-IA-Add-Teams-5399teams.PNG|650px|thumb|center|Select the Microsoft Teams integration account type]]

Please note that your contact center is allowed only one instance of a Microsoft Teams integration account. If you wish to create a different Microsoft Teams integration account, you must delete the existing instance. Deleting an existing Microsoft Teams integration account will disable access for all users in the account. Upon creating a new Microsoft Teams integration account, all users in the account will need to re-enable Teams integration in their Agent Desktop user profiles.

[[File:CCA-CCC-IA-Teams-Delete-5399teams.PNG|650px|thumb|center|System message reminding you what happens when you disable Teams integration]]

# Fill in all the properties for the integration account and click '''Apply''' to save your changes.

# To test the connection between Bright Pattern and Teams, log in to the Agent Desktop application as an agent, go to ''Settings > User Profile'', click the '''Enterprise Messaging Accounts''' tab, and click '''Enable'''. Follow the prompts to sign in to your Microsoft account.

Signing in to Microsoft allows you to access Teams Channels and Teams Chats in the Agent Desktop directory. If the integration account is configured correctly, you should see Microsoft Teams Channels and Microsoft Teams Chats folders in the directory.

The Microsoft Teams Chats folder will display chats if one or more Teams users have already established a 1:1 chat with the logged-in agent. The Microsoft Teams Channels folder will display a list of channels from all the teams with which the logged-in agent has participated.

[[File:AD-Teams-Directory4a-5399.PNG|center|thumb|350px|Microsoft Teams Channels and Microsoft Teams Chats folders in the directory]]


The Microsoft Teams integration configuration process is now complete. = Configuring the Microsoft Graph API as an Authentication Mechanism for Secure Microsoft Teams Content = Microsoft Teams integration uses an Azure Active Directory registered application to represent the Enterprise Messenger Integration (EMI) Server. The EMI Server uses Microsoft Graph API subscriptions to receive events from Microsoft Teams, such as chat creation, chat changes, new chat messages, and so forth. Additionally, some content from the Microsoft Teams application, such as photos and GPS locations, requires authentication, which is processed by Microsoft Graph API requests via the EMI Server. The EMI Server exposes the webhook to the Internet so that Microsoft servers may call it to send event notifications. The Graph API limits the specific client application to have only one subscription on each resource, which means that only one instance of the EMI Server may subscribe to notifications from specific Azure Active Directory tenants, and only one EMI Server/Azure application may be used per Azure Active Directory tenant. Please note that all users of the same Azure Active Directory tenant will be served by a single instance of the EMI Server. This article describes how to do the following: * Register a new application in the Azure Active Directory to represent the Enterprise Messenger Integration (EMI) Server. * Set a webhook (i.e., redirect URI). * Set permissions for the application to use the Microsoft Graph API. * Set a client secret (i.e., token). == Prerequisites == * Be the Microsoft Teams administrator for your contact center. * Have administrator privileges and permissions in the Microsoft Azure portal. == Procedure == === 1. Register an application in the Azure Active Directory === # Log in to the Azure portal. From the Azure Dashboard, navigate to ''Azure Active Directory > App registrations''.

# Click '''+ New registration''' to register a new application. This application will represent the EMI Server and provide API credentials (tokens) so that the EMI Server may authenticate with the Microsoft Graph API.

[[File:Azure-App-Registrations-5399.PNG|center|thumb|450px|Azure Active Directory > App registrations > + New registration]]

# In ''Register an application'', set the following properties:

## '''Name''' - Type a name for the registered application.

## '''Supported account types''' - Select “Accounts in this organizational directory only ( - Single tenant”).

## '''Redirect URI''' - Select “Web” and set “https:///agentdesktop/msteamscallback.html” (e.g., “https://yourcompany.brightpattern.com/agentdesktop/msteamscallback.html”).

[[File:Azure-Register-App2-5399.PNG|center|thumb|650px|”Register an application” properties]]

# Click '''Register'''. After registration, your new app’s dashboard will display.

=== 2. Add a new client secret for the application === # From the app’s dashboard, go to ''Manage > Certificates & secrets''.

[[File:Azure-App-Dashboard-5399.PNG|center|thumb|800px|From the app dashboard, “Certificates & secrets” in the side menu]]

# On ''Certificates & secrets'', scroll down to the ''Client secrets'' section and click '''+ New client secret'''. (Note that adding a certificate is optional.)

[[File:Azure-Certificates-Keys-5399.PNG|center|thumb|800px|In Certificates & secrets, go to the Client secrets section to generate a new client secret]]

# In ''Add a client secret'', set the description of what the secret is for, set the expiration to “Never,” and click '''Add'''.

[[File:Azure-Add-Client-Secret-5399.PNG|center|thumb|450px|In “Add a client secret,” name it and set the expiration]]

# Copy the '''client secret value''' and save it somewhere safe now because it is only shown once. Make sure you copy the '''value''' (not the ID).

[[File:Azure-Client-Secret-Value-5399.PNG|center|thumb|650px|Copy the client secret value]]

=== 3. Set required API permissions === # Microsoft Teams integration requires certain delegated permissions and application permissions for the Graph API. Set permissions by going to the app’s ''API permissions'' section and clicking '''+ Add a permission'''.

[[File:Azure-Add-Permissions-5399.PNG|center|thumb|650px|In API permissions, click “+ Add a permission”]]

# From ''Request API permissions'', click the “Microsoft APIs” tab and select '''Microsoft Graph'''.

[[File:Azure-API-Permissions-Graph-5399.PNG|center|thumb|650px|Select Microsoft Graph]]

# Select '''Delegated permissions'''.

[[File:Azure-Delegated-Permissions1-5399.PNG|center|thumb|650px|For Microsoft Graph, select “Delegated permissions”]]

# Copy and paste each of the following permission names into the Search field, expand the permission’s options, select the checkbox for it, and click '''Add permission'''. Note that most of these permissions require admin consent, and you should add each of them separately.

Add the following delegated permissions:

## Chat.ReadWrite

## ChatMessage.Send

## ChannelMessage.Send

## Directory.Read.All

## Group.Read.All

## Presence.Read.All

## Subscription.Read.All

## User.Read.All

# Go back to ''Request API permissions > Microsoft Graph API'', and this time, select '''Application permissions'''.

[[File:Azure-Application-Permissions2-5399.PNG|center|thumb|650px|For Microsoft Graph, select “Application permissions”]]

# Copy and paste each of the following permission names into the ''Search'' field, expand the permission’s options, select the checkbox for it, and click '''Add permission'''. Note that most of these permissions require admin consent, and you should add each of them separately.

Add the following application permissions:

## Chat.ReadWrite.All

## ChannelMessage.Read.All

## User.Read.All

# After all the permissions are added, click the '''Grant admin consent for ''' button to authorize the Graph API to be used.

[[File:Azure-Grant-Admin-Consent-5399.PNG|center|thumb|650px|Remember to click “Grant admin consent for ”]]

If you are successful, the status for each permission should be “Granted.”

[[File:Azure-Admin-Consent-Granted2-5399.PNG|center|thumb|800px|Example list of Microsoft Graph permissions granted]]

=== 4. Copy your credentials === In order to configure a Microsoft Teams integration account in Bright Pattern Contact Center (see section [[draft:Contact-center-administrator-guide/CallCenterConfiguration/IntegrationAccounts/MicrosoftTeams | Microsoft Teams Integration Account]]) you will need to copy the following items from your Azure Active Directory account and registered app: * '''Tenant ID''', which is found in ''Azure Active Directory > Dashboard > Your registered app > Overview''.

[[File:Azure-App-Dashboard2a-5399.PNG|center|thumb|800px|Azure Active Directory > Dashboard > Your registered app > Overview page]]

* '''Application (client) ID''', which is found in ''Azure Active Directory > Dashboard > Your registered app > Overview''.

[[File:Azure-App-Dashboard2a-5399.PNG|center|thumb|800px|Azure Active Directory > Dashboard > Your registered app > Overview page]]

* '''Client Secret''', which you added to your registered app in Step 2 of this procedure. If you forgot to copy the client secret, you must add a new client secret and copy it now.

[[File:Azure-Certificates-Keys-5399.PNG|center|thumb|800px|The app’s Certificates & secrets section]]

Azure app configuration is now complete.
== Next Step == In Bright Pattern Contact Center’s Contact Center Administrator application, [[draft:Contact-center-administrator-guide/CallCenterConfiguration/IntegrationAccounts/MicrosoftTeams | add a Microsoft Teams Integration Account]].
= How to Add a Microsoft Teams Integration Account = Configuring a [[#topic_contact-center-administrator-guide/callcenterconfiguration/integrationaccounts/microsoftteams| Microsoft Teams integration account]] allows your contact center to use an enterprise-level communications channel that comes with chat and call capabilities, user-presence visibility, and directory access during service interactions with customers. Please note that your contact center is allowed only one instance of a Microsoft Teams integration account. If you wish to create a different Microsoft Teams integration account, you must delete the existing instance. Deleting an existing Microsoft Teams integration account will disable access for all users in the account. Upon creating a new Microsoft Teams integration account, all users in the account will need to re-enable Teams integration in their Agent Desktop user profiles. == Procedure == # In the Contact Center Administrator application, go to section ''Configuration > Call Center Configuration > Integration Accounts'' and click '''+''' to add a new integration account of type '''Microsoft Teams'''.

[[File:CCA-CCC-IA-Add-Teams-5399teams.PNG|650px|thumb|center|Select the Microsoft Teams integration account type]]

# Set the following properties for the account:

## '''Name''' - The name of the integration account (any name)

## '''Directory (Tenant) ID''' - Your Microsoft Azure registered app’s Directory (tenant) ID

## '''Client ID''' - Your registered app’s Account (client) ID

## '''Client Secret''' - Your registered app’s client secret

## '''Test connection''' - Tests the credentials and confirms whether the connection is valid. If the connection is not OK, you may get one of the following validation connection error messages:

### '''Error: Failed to request refresh token''' - This means that the provided Client Secret, Directory (Tenant) ID, or Client ID is invalid and the refresh token could not be requested. Try copying each of those items from the Azure registered app and pasting them into the property fields again.

### '''Error: Account credentials are incomplete''' - Make sure that all fields are filled, and click '''Apply''' at the bottom of the screen to save changes to the integration account properties.

#In Properties section ''System Messages for Conferencing Microsoft Teams Users to a Customer Chat'', you may choose to redefine the automatic system response options and various commands agents will use for chat interactions.

The default values for these messages are as follows:

## '''Party joined''' - joined the session

## '''Party left''' - left the session

## '''Invitation to join''' - You are invited to customer chat session, would you like to accept (YES/NO)?

## '''Positive response''' - YES

## '''Negative response''' - NO

## '''Session ended''' - Customer chat session ended

## '''Leave any time command''' - BYE

[[File:CCA-CCC-IA-Teams-Properties-ALL-5399teams.png|450px|thumbnail|center|Microsoft Teams integration account properties]]

= Bria Mobile Softphone Configuration = The Bria Mobile softphone app works well for phone calls with Bright Pattern Contact Center software; it minimizes battery drain in standby by using Bria Push Service. == Configuration == === In the Contact Center Administrator Application === To configure Bria Mobile with Bright Pattern Contact Center, take the following steps: # Add a [[#topic_contact-center-administrator-guide/hardphones|hardphone]] account in the Contact Center Administrator application, and edit Properties.

[[File:Hardphone-3001-53.PNG|thumb|450px|center|Hardphone Properties]]

# In the Authentication tab, make sure the authentication [[Contact-center-administrator-guide/Hardphones#Authentication_tab|username]] is the same as the phone's extension.

[[File:Hardphone-Auth-53.PNG|thumb|450px|center|Hardphone Authentication tab]]

# Note your domain (e.g., from the Properties tab, see “Phone registers as @”), extension, and password. === In the Bria Mobile Softphone === In the Bria Mobile app, add a new account. This is done by going to '''Settings > Accounts > “+” > Select Provider > User-Defined Generic Accounts > SIP'''. Note that the steps that follow are for User-Defined Generic Accounts. You do not have to select a VoIP provider. Also note that you can only edit account options when the account is disabled. ==== Section SIP Account ==== To configure the SIP account, take the following steps: # Give your account an ''Account Name.''

# Set the desired ''Display as'' name.

# Set the ''Username'' and ''Password'' to the same username (e.g., "3001") and password from your configured hardphone account.

# Set the domain to the hardphone account’s domain and add ''':5080''' (Bright Pattern CCaaS service uses the non-standard SIP port 5080). For example: "example.brightpattern.com:5080"

# Enable the option ''Use Push Notifications'' and set the option ''Registration Mode'' to '''Single Device Emulation'''.

# Disable the option ''NAT Emulation''.

# Leave the option ''Push Advanced Settings'' disabled.

==== Section Account Advanced ==== To configure section ''Account Advanced'', take the following steps: # In section ''Network Traversal'', option ''Custom configuration'', turn all options off.

# In section ''IP Version'', set option ''Wi-Fi IP Version'' to '''IPv4'''

# Also in section ''IP Version'', set option ''Mobile IP Version'' to '''IPv4'''.

# In section ''DTMF Type'', make sure option ''Send DTMF using'' is set to '''RFC2833'''.

# In section ''Transport and Security'', set option ''SIP transport'' to '''UDP'''.

# In section ''SIP Registration'', set options ''Wi-Fi Refresh Interval'' and ''Mobile Refresh Interval'' to '''30''' seconds.

# In section ''TLS Cert Management'', disable option ''Verify TLS cert''.

# In section ''SIP Miscellaneous'', leave option ''Show Miscellaneous'' disabled.
= Cisco SPA Hardphone Configuration = These instructions will show you how to configure and register a Cisco hardphone manually on the Cisco Configuration Utility web interface. We are using a Cisco SPA508G as an example. Note that this example can be used for any Cisco hardphone in the “SPA” model family. == Prerequisites == You should have Bright Pattern Contact Center version 5.2.x or later. In order to configure your Cisco phones with Bright Pattern Contact Center software, you will require a special '''outbound proxy'''; Bright Pattern Operations will create this for you upon request. (See Step 5.1.b. in the following procedure.) == Procedure == === 1. Locate the IP address of the phone === On your phone, press the '''Menu''' button, and then select the '''Network''' option; the IP address should be listed here. === 2. Check for software updates on the Cisco phone (important) === Make sure you are running the latest firmware version for your phone. We recommend updating your phone at least once per year. For updates, visit the [https://software.cisco.com/download/home/282733326 Cisco Software Download page]. === 3. Perform a factory reset (important) === On your phone, press the '''Menu''' button, and then select '''Factory Reset'''. The phone will restart. === 4. Open the phone’s configuration utility web interface === # Enter the IP address of the Cisco phone in the address bar of your web browser. # In the top right corner of the page, click '''Admin Login''' and then click '''advanced'''.

[[File:Cisco-SPA-1.PNG|250px|center]]

Alternatively, you may navigate directly to the following to get to the same place: '''http:///admin/advanced'''

# Click '''Voice''' and then select the extension tab you wish to configure. In this example, we are configuring '''Ext 2'''.

[[File:Cisco-SPA-2.PNG|800px|center]]

=== 5. Edit the extension settings === '''Note''': Configuration requires the following settings to be changed. Any settings not specifically mentioned in this step are set by user. # In the extension settings, under ''Proxy and Registration'', set: #* '''Proxy''': The [[Service-provider-guide/Tenants/PropertiesTab#Access_domain|access domain]] of your Bright Pattern tenant, which is found in the Bright Pattern Service Provider application, section ''Tenants > Properties'' #* '''Outbound Proxy''': The setting created for you upon request to Bright Pattern Operations (e.g., “yourcorporation-sip.brightpattern.com”) #* '''Use Outbound Proxy''': Select “yes” (default is “no”) #* '''Register''': Select “yes” #* '''Use DNS SRV''': Select “yes” #* '''DNS SRV Auto Prefix''': Select “yes”

[[File:Cisco-SPA-3.PNG|800px|center]]

# Under ''Subscriber Information'', set: #* '''User ID''': The phone extension number (e.g., “1000”) #* '''Password''': The password of the phone extension, set by user === 6. Edit System configuration settings === # Click the '''System''' tab to edit system configuration settings.

[[File:Cisco-SPA-4.PNG|800px|center]]

# Under ''Optional Network Configuration'', set: #* '''NTP Enable''': Select “yes” #* '''Secondary NTP Server''': Set “'''0.pool.ntp.org'''”

[[File:Cisco-SPA-5.PNG|350px|center]]

= Polycom Hardphone Configuration = These instructions will show you how to configure and register a Polycom hardphone manually on the Polycom Configuration Utility web interface. We are using a Polycom SoundStation IP 6000 as an example. There are several ways to configure a Polycom phone on the web interface: Simple Setup, Lines settings, and SIP. The following instructions will guide you through Lines settings configuration. '''We recommend that you do not use Simple Setup or SIP.''' == Prerequisites == In order to configure your Polycom phones with Bright Pattern Contact Center software, you will require a [[5.4:Contact-center-administrator-guide/ApplicationNotes/PolycomHardphoneConfiguration#Step_3:_Edit_Lines_settings | special SIP address]]; Bright Pattern Operations will create this for you upon request. Note that the address has built-in redundancy (i.e., it contains two servers), so you will only need one SIP address. == Procedure == === Step 1: Locate the IP address, SIP extension number, and password of the Polycom phone === # On the Polycom phone, hit ''Menu > Status > Network > TCP/IP Parameters'', and note the listed IP address.

# Note the SIP extension number on the display of the Polycom phone.

# You can locate or set the phone password by logging into ''/Admin > Setup > Manage > Modify (pencil button) > the SIP extension you wish to register > Phone Settings tab > Common Settings > Phone Password.''

=== Step 2: Open the phone’s configuration utility web interface on a web browser === # Enter the IP address of the Polycom phone in the address bar of your web browser. # When prompted for credentials, select Admin and enter your password. If you don’t know the password or you have never changed it, it is likely “456”.

[[File:Polycom-Login-54.PNG|thumb|450px|center|Polycom web interface login screen]]

# The phone cannot be in use during configuration. Before proceeding to Step 3, check that the phone is not being used. Note that if the phone is in use, you will not be able to access the configuration utility.

# We recommend doing a phone backup before proceeding, in case you need to undo what you did. Go to ''Utilities > Phone Backup & Restore'' and click '''Phone Backup'''.

[[File:Polycom-Phone-Backup-54.PNG|thumb|650px|center|Utilities > Phone Backup & Restore]]

=== Step 3: Edit Lines settings === Note that if your phone freezes during any part of configuration, you can unplug/restart it and try again. # Go to ''Settings > Lines''.

[[File:Polycom-Settings-Lines-54.PNG|thumb|650px|center|Settings > Lines]]

# Under ''Line 1 > Identification'', set:

[[File:Polycom-Line1-54.PNG|thumb|800px|center|Settings > Line 1 > Identification settings]]

## '''Display name:''' Any name

## '''Address:''' The path to your Polycom phone in the following format: extension number@.brightpattern.com.

This corresponds to the field “Phone registers dynamically as” in Bright Pattern’s Contact Center Administrator application, section ''Directory > Hardphones > > Properties''. For example:

[[File:Polycom-Directory-Hardphones.PNG|thumb|650px|center|Contact Center Administrator > Hardphones > Properties]]

## '''Authentication User ID:''' The authentication username of your Polycom phone (e.g., “9999”).

The Authentication User ID and Authentication password correspond to the “Username” and password as set in Bright Pattern’s Contact Center Administrator application, section ''Directory > Hardphones > Authentication''. For example:

[[File:Polycom-Auth.PNG|thumb|800px|center|Contact Center Administrator > Directory > Hardphones > Authentication]]

## '''Authentication password:''' The password of your Polycom phone

## '''Label:''' Any; this will be shown on the phone’s screen

## '''Type:''' Select “Private” or “Shared”

## '''Third Party Name:''' Any; OK to leave blank

## '''Number of Line Keys:''' Any (e.g., “1”)

## '''Calls Per Line:''' Any (e.g., “8”)

## '''Ring Type:''' Select

# Under ''Line 1 > Outbound Proxy'', set:

[[File:Polycom-Outbound-Proxy-54.PNG|thumb|650px|center|Line 1 > Outbound Proxy settings]]

## '''Address:''' Must be empty (if any value is here, you must remove it)

## '''Port:''' Must be “0”

## '''Transport:''' Leave as “UDPOnly”

# Under ''Line 1 > Server 1'':

[[File:Polycom-Server1-54.PNG|thumb|800px|center|Line 1 > Server 1 settings]]

## '''Address:''' The address in the following format: -sip.brightpattern.com (e.g., “example-sip.brightpattern.com). Note that this address is created by Bright Pattern Operations upon request.

## '''Port:''' Set “0” (The default is 0. Do not type any other port number here because it comes from the DNS server automatically.)

## '''Transport:''' Select “DNSnaptr”. (default).

## '''Expires (s):''' The expiration period in seconds - “60” (default is “3600”)

## '''Register:''' Select “Yes” (if you select “No,” the phone will not be registered)

## '''Retry Timeout (ms):''' The timeout period in milliseconds (e.g., “0”). The default is 100 ms. If you set “0”, the timeout will be set to default.

## '''Retry Maximum Count:''' The max number of times to retry (e.g., “3”)

## '''Line Seize Timeout (s):''' The line seize timeout in seconds (e.g., “30”)

=== Step 4: Check for software updates on the Polycom phone === # We recommend updating to the latest software on the Polycom phone at least once per year.

# Still in Polycom’s web interface, go to ''Utilities > Software Upgrade''.

[[File:Polycom-Utilities-54.PNG|thumb|650px|center|Utilities > Software Upgrade]]

# In ''Phone Details'', you will see your current software version. Leave this as-is.

# Click '''Check for Updates'''.

[[File:Polycom-Install-54.PNG|thumb|800px|center|Phone Details]]

# Now you will see the Software available at Polycom server drop-down list. Select and run the latest version (e.g., “4.0.14.1388D”).

# Click '''Install'''. The phone will restart. The software update takes about 2–5 minutes.

Polycom phone configuration is now complete.
= How to Configure Softphone Solo for Remote Desktop = This article describes how to configure Softphone Solo for remote desktop use. Softphone Solo is an application (Windows) that installs the softphone functions of Bright Pattern’s Agent Desktop Helper Application component (i.e., ''bpclient.exe'') outside of a user’s main client machine. When Softphone Solo is set up, contact center users are able to have softphone functionality on Agent Desktop through a remote session—without having to download and install the Agent Desktop Helper Application component. == Procedure == In this procedure, we treat Softphone Solo as a default hardphone, and we assign it to each Agent Desktop user with a specific number. === Step 1: Configure a hardphone for your contact center === # Log in to the Contact Center Administrator application and go to section ''Configuration > Directory > Hardphones''.

# Click '''Add hardphone''' (“'''+'''”) to add a new hardphone.

# In the ''Properties'' tab, set the following:

## '''Number''' - The number (e.g., “5001”) that will be used for users who log in to Agent Desktop with a remote session; choose a number that is different than the number range of users’ extensions

## '''Caller ID''' - Optional; OK to leave empty

## '''MAC address''' - Leave empty

[[File:Solo-Hardphone-5312.png|center|thumb|450px|Hardphone Properties]]

# In the ''Authentication'' tab, set:

## '''Username''' - Set the hardphone number (e.g., “5001”)

## '''Password''' - Set any, but follow the rules of your contact center’s password policy

[[File:Solo-Hardphone-Auth-5312.png|center|thumb|450px|Hardphone Authentication]]

# Click '''Apply''' at the bottom of the screen to save your changes. === Step 2: Set the agent’s default hardphone number === As a best practice, set the agent’s default hardphone number. This is the number that the agent will use for placing calls in Agent Desktop. Note that this step is not required for using Softphone Solo, but it is recommended. The agent can choose a number manually at a later time. # Go to section ''Configuration > Users & Teams > Users''.

# From the ''Users'' list, select the agent who will be using Softphone Solo.

# In the agent’s ''Contacts'' tab, set the '''Default hardphone number''' to the same number you configured for the hardphone in Step 1 of this procedure.

[[File:Solo-User-Contacts-5312.png|center|thumb|450px|The Users > Contacts properties for the agent]]

# Click Apply at the bottom of the screen to save your changes.

=== Step 3: Configure Softphone Solo === # Download and install the Softphone Solo for Windows application (''SoftphoneSolo_5.x.x.xxxxx.msi''). Please contact Customer Success Management for the file.

# Launch the application after installation is complete, or right-click the '''Softphone Solo tray icon''' (phone icon) and select '''Configure''' to launch it.

[[File:Solo-Icon-Configure-5312.png|center|thumb|450px|Softphone Solo tray icon, right-clicked]]

# The Softphone Solo configuration dialog will open.

[[File:Softphone-Solo2.PNG|thumb|center|450px|Softphone Solo configuration settings]]

# Set the following:

## '''HTTP(s) URL to access the system''' - The URL of the contact center (e.g., “http://company.brightpattern.com”)

## '''Tenant name''' - The contact center domain (e.g., “company.brightpattern.com”)

## '''Login''' - The agent’s username (e.g., “christy.borden”)

## '''Password''' - The user’s password

# Click '''Apply'''.

# If you see an error message, go back and check your configuration, as you may have set the wrong username/password or the wrong URL. The [[Contact-center-administrator-guide/ApplicationNotes/SoftphoneSoloConfiguration#Troubleshooting | Troubleshooting]] section describes some common errors you may encounter.

=== Step 4: Check that the agent can use the phone in Agent Desktop === # Go to the Agent Desktop application, and log in as the agent, using the same Authentication user name and password as set in the Softphone Solo configuration dialog.

# Go to ''Settings > Phone Device'' and set '''Internal hardphone, my default number'''. You will have to log out and log in again for the change to take effect.

[[File:Phone-Device-53NewAD.PNG|center|thumb|450px|Selecting the phone device in Agent Desktop]]

Note that if the agent (or an administrator) has configured Softphone Solo manually, the agent has the option to use the '''Internal hardphone, number''' setting, with the number of their choice, as shown.

[[File:AD-Phone-Device-5319.PNG|center|thumb|450px|Selecting the "Internal hardphone, number" setting]]

#After logging in again, if you hover your cursor over the agent’s '''Settings''', you will see that the agent’s phone number is the default hardphone number (e.g., “5001”).

[[File:Solo-AD-User-Ext-5312.png|center|thumb|450px|Hover text over agent's profile/Settings shows the agent's phone number]]

# Configuration is now complete. Try placing a call. == Troubleshooting == This section describes error messages and what they mean. === Unable to access the system === [[File:Softphone-Solo-Error2.PNG|thumb|center|450px|Unable to access the system error message]] This error could mean that you may have set the wrong URL in configuration. Make sure that in the field HTTP(s) URL to access the system, that you have set the correct URL of your contact center, including the leading “http://” (e.g., “http://company.brightpattern.com”). You can quickly check the status of both configuration options (automatic and manual) by looking at Softphone Solo's Windows tray icon (phone icon) color at the bottom of your desktop screen: green = OK, gray = fail. === Unable to obtain phone configuration. Error: HTTP error: 401 Unauthorized === [[File:Softphone-Solo-Error1.PNG|thumb|center|450px|HTTP error:401 message]] This likely means that you did not set the user’s default hardphone number to the correct number, and because of that, the configuration could not be completed. Or, it means that some other values have not been configured. If this is the case: # Right-click the Softphone Solo tray icon and select '''Configure'''.

[[File:Solo-Icon-Configure-5312.png|thumb|center|450px|Configure Softphone Solo]]

# Select the checkbox for '''Use manual configuration''' and click '''Configure'''.

# In the ''Advanced SIP configuration'' dialog that opens, if you see that the Advanced SIP configuration is empty, fill in the blank fields. These settings are normally filled in by the system automatically during manual configuration. However, these settings could be affected if the default number was not set correctly, or some other setting was wrong.

[[File:Solo-Advanced-SIP-5312.png|thumb|center|450px|Advanced SIP configuration, empty]]

## '''Phone number''' - The hardphone number you configured in Step 1 of this procedure (e.g., “5001”); this will be filled in for you once you enter the Authentication user name and password (see below)

## '''SIP domain''' - Your SIP domain; this will be filled in for you once you enter the Authentication user name and password (see below)

## '''SIP Server address''' - Your SIP Server address (e.g., “.brightpattern.com”); this will be filled in for you once you enter the Authentication user name and password (see below)

## '''Port''' - 5060 (default)

## '''Authentication user name''' - The username of the agent (e.g., “christy.borden”) who was assigned the hardphone in Step 2 of this procedure

## '''Password''' - The agent’s password

## '''Registration interval''' - 90 seconds (default)

# When done, the settings should look like this:

[[File:Solo-Advanced-SIP-2-5312.png|thumb|center|450px|Advanced SIP configuration settings completed]]

# Click '''OK'''.

# Back in the ''Softphone Solo configuration'' dialog, click '''Apply'''.
= Setting up Private S3 Storage = Bright Pattern Contact Center allows you to export audio recordings and screen recordings to external storage servers, such as Amazon Web Services (AWS) S3 or Minio for storage or playback. This article explains how to 1) set up Minio as S3-compatible local storage, 2) get the access credentials to integrate Bright Pattern Contact Center with Minio, and 3) use those credentials to configure an Amazon AWS integration account. You can learn more about integration accounts in section [[Contact-center-administrator-guide/IntegrationAccounts#Amazon_AWS_Integration | Amazon AWS Integration]] of this guide. == Procedure == === Step 1: Install Minio === You can install Minio on either a Linux- or Windows-based system. After installing the app, you will have the Minio credentials needed for integrating Minio with your contact center as a private S3 storage option. ==== If Using a Linux-Based System ==== Docker container: docker run -p 9000:9000 -v /mnt/data:/data -v /mnt/config:/root/.minio minio/minio server /data Linux x86 (CentOS 6 or CentOS 7): wget https://dl.minio.io/server/minio/release/linux-amd64/minio chmod +x minio ./minio server /mnt/data ===== Get credentials ===== After the app is installed, the console will show these credentials: * '''Endpoint:''' http://:9000 (e.g., http://127.0.0.1:9000) * '''AccessKey:''' * '''SecretKey:''' Copy the Endpoint, AccessKey, and SecretKey. You will be using these credentials next to set up your Amazon AWS integration account in Contact Center Administrator. ==== If Using a Windows-Based System ==== # Download the Minio application.

# Run:

minio.exe server F:\Data ===== Get credentials ===== After the app is installed, the console will show these credentials: * '''Endpoint:''' http://:9000 (e.g., http://127.0.0.1:9000) * '''AccessKey:''' * '''SecretKey:''' Copy the Endpoint, AccessKey, and SecretKey. You will be using these credentials later to set up your Amazon AWS integration account in Contact Center Administrator. === Step 2: Create a bucket === A bucket is a container for stored objects. Before you can export recordings to your private S3 storage, you first have to create a bucket to store them. # Go to the Minio web interface. Note that by default, Minio uses port 9000 for access.

# Log in to Minio using your AccessKey and SecretKey.

# Create a new bucket and name it (e.g., "test"). === Step 3: Integrate with Minio === After Minio is installed and you have a bucket, you can configure your contact center to work in an integrated manner with Minio. This is done in the Contact Center Administrator application. ==== Add integration account ==== # In the Contact Center Administrator application, go to ''Call Center Configuration > Integration Accounts''.

# Click the '''Add''' button ('''+''') to add a new integration account of type '''Amazon AWS'''. (Note that in order to add this account type, the AWS feature must first be enabled for your contact center by your system administrator.) [[File:Add-Amazon-52.PNG|450px|center]] ==== Edit integration account properties ==== # Name the integration account (any name).

# Select the '''Use private S3 storage''' checkbox.

# In field '''Url''', paste the Minio endpoint that you copied earlier.

# In field '''Access Key ID''', paste the Minio AccessKey.

# In field '''Secret Key''', paste the Minio SecretKey.

# In field '''S3 bucket''', add the name of the bucket you created.

# Click '''Apply''' to save your changes.

[[File:Minio-Prop-52.PNG|450px|center]] Your S3-compatible private storage option is now set up and ready to be used for storing screen recordings, call recordings, and so forth. For more information about integration account properties, see the ''Contact Center Administrator Guide'', section [[Contact-center-administrator-guide/IntegrationAccounts#Amazon_AWS_Integration | Amazon AWS Integration]].