The ICH service is a Lync / SfB application that is responsible for answering service related conversations. It is an active – active component and should be installed on all TM machines.

Assign Conferencing Policy to Connector Script

(tick) Precondition: CIC service must be running before executing the following script.

Since TeamManager 3.2 every connector establishes its own conference (instead of only 1 trusted application performing this task). The following script creates new conferencing policies and must be run prior to starting the ICH Service (see chapter below).

(tick) Note: If you (re)used our "Register Trusted Applications script" during installation or upgrade, all configured endpoints conferencing will have their policies automatically refreshed and you can skip the steps below. If you need to just reapply policies on a certain endpoints, read on below.


Perform the following steps before restarting (your updated) ICH Service:

  1. Replace "sip:lucs_agent_connector_00@SIPDomain.com" with your connector SIP address in the script below.
  2. Add new lines according the amount of connectors used in your instance.
  3. Run the Script via Powershell on your instance

Assign Conferencing Policy to Connector Script

Get-CsTrustedApplicationEndpoint sip:lucs_agent_connector_00@SIPDomain.com | select *
 
Get-CsTrustedApplicationEndpoint sip:lucs_agent_connector_00@SIPDomain.com | Grant-CsConferencingPolicy -PolicyName "Tag:LucsService"
Get-CsTrustedApplicationEndpoint sip:lucs_agent_connector_01@SIPDomain.com | Grant-CsConferencingPolicy -PolicyName "Tag:LucsService"
Get-CsTrustedApplicationEndpoint sip:lucs_agent_connector_02@SIPDomain.com | Grant-CsConferencingPolicy -PolicyName "Tag:LucsService"
Get-CsTrustedApplicationEndpoint sip:lucs_agent_connector_03@SIPDomain.com | Grant-CsConferencingPolicy -PolicyName "Tag:LucsService"
Get-CsTrustedApplicationEndpoint sip:lucs_agent_connector_04@SIPDomain.com | Grant-CsConferencingPolicy -PolicyName "Tag:LucsService"
POWERSHELL

Installation

    1. Run the ICH.Setup.msi
    2. On the Luware-TM-ICH Configuration Settings screen of the setup make sure you fill the
      1. Instance Name
      2. Port number
      3. SfB Server Version
      4. Configure Certificate Security
    3. For security reason TM provides possibility to use certificate-based encryption and verification during the components communication. To configure certificate based authentication, select ‘Configure Certificate Security’ check box and press ‘Next’ button to open a page with server certificate settings

      The example of filled ICH Configuration Settings screen
    4. If ‘Configure Certificate Security’ check box was set to true, configure the server and client certificate settings as the next steps. The client settings specify which settings ICH will use while connecting to PS. The server settings are used to validate another services when they try to connect to ICH. 
      (info) See Prepare Certificate Thumbprint

      The example of filled ICH Client Certificate Settings screen
    SettingsDescriptionValue
    ModeTransfer security modes offered by WCF to ensure a secured communication between a client and a server.
    • None : This mode ensures that no security is applied while communication between server and client.
    • Transport: As the name suggests, it is concerned with security of communication between a client and a service over a network protocol. It guarantees the confidentiality and integrity of messages at transport level since transport security secures the entire communication channel.
    Validation ModeThe mode that specifies how incoming certificate is validated and how trust is determined .
    • None: In this mode no validation is perfomed.
    • ChainTrust: : In this mode WCF simply validates the certificate against the issuer of a certificate known as a root authority (the expiration time is checked too).
    • PeerTrust: In this mode WCF simply checks if the incoming certificate is installed in the Trusted People folder in the certificate store (the expiration time is checked too).
    • PeerOrChainTrust: Mixed mode.


    Is DedicatedThe flag that defins which certificate is used for encryption.False: Encryption is done with default certificate. It means that certificate with the hostname of the machinefrom the Personal Store is used on server side.

    True: Encryption is done with a dedicated certificate. It means there is  possibility to configure identifier (thumbprint) of the certificate.


    ThumbprintThe thumbprint is a hash value computed over the complete certificate, which includes all its fields, including the signature.



    See Prepare Certificate Thumbprint

    Note: The system reports all errors related to  connection or certificate issues to a log file ‘C:\Program Files\Luware AG\TM-ICH\log \connectionIssues.log’.

    • Open Services and start the installed service.
    • Check that service is successfully started without any errors in Event Viewer or in the log file
      c:\Program Files\Luware AG\TM-ICH\log\regularLog.txt

Configuration

In the Luware-TM-Configurator application:

  1. Open TM Configurator -> Topology -> Components (Server)
  2. Add ICH component as it is shown in the example (select the ICH Server Type, System Instance, Activity Order and fill the service’s Settings according to the table below):

Key Description
AnnouncementPathAll WMA files in the specified path will be loaded into ICH and can be used in Workflows.


Example: C:\Program Files\Luware AG\TM-ICH\Resources\Announcements

Conference.CheckWarmupIntervalTime interval to check available conferences. ICH will try to keep configured amount of conferences per service. (‘Warmup Conferences Count’ parameter is responsible for this in each service).


Default value: 00:01:00

Recommended values:  should be defined based on particular system load and Lync configuration.

Conference.CreationMaxTimeFor each service on the TM Configurator -> Services -> Services tab, admin sets the ‘Warmup Conferences Count’ and for new conversations the ICH uses one of the available warmed up conferences. If warmed up conferences are not available, the ICH tries to make a new conference. ICH tries it during the specified in this setting time.


If ICH was not able to create a new conference during the specified in this setting period, the conversation ends after the period exceeds and the system is not loaded any more with this conversation.

The information about such conversations is present in log file.

Default value: 00:00:10

If the value of the setting is 00:00:00, this means that the setting is off and ICH tries to make a new conference until the conference creation succeeds.

Recommended values: should be defined based on particular system load and Lync configuration.

Conference.HealthManagerResetIntervalThe ‘Health Manager Reset Interval’ is an interval when ICH resets all errors that happened during conference management process (such errors as conferences per timeframe were reached, conference creation time were more than expected, any Lync error occurred during conference creation).


During this interval, ICH will decline all incoming calls, in order to give Lync some time to recover. After it, ICH will start again to create additional conferences.

Default value: 00:00:00

If the value of the setting is 00:00:00, this means that the setting is off and ICH starts new conference creation as soon as it is needed.

Recommended values:  should be defined based on particular system load and Lync configuration.

Conference.TrackTimeFrameThe ‘Track Time Frame’ setting is used together with ‘Max Within Tracking Time Frame’.


Allowable interval to create conferences, specified in ‘Conference.MaxWithingTrackingTimeFrame’

Default value: 00:00:00

If the value of the setting is 00:00:00, this means that ICH will not prevent creation of new conferences and parameter Conference.MaxWithingTrackingTimeFrame will be ignored.

Example: 100 conferences may be created within 1 minute with the following settings:

Conference.MaxWithinTrackingTimeFrame = 100

Conference.TrackTimeFrame = 00:01:00

Recommended values: should be defined based on particular system load and Lync configuration.

Conference.MaxWithinTrackingTimeFrameThe ‘Conference Max Within Tracking Time Frame’ setting is used together with ‘Track Conferences Time Frame’.


The setting determines the number of conferences, which can be created within ‘Conference TrackTimeFrame’. More conferences will not be created within the specified period.

After the ‘Track Time Frame’ and ‘Conference Max Within Tracking Time Frame’ limits are reached, the system executes the ‘Conference Health Manager Reset Interval’.

Default value: 25

Example: 100 conferences may be created within 1 minute with the following settings:

Conference.MaxWithinTrackingTimeFrame = 100

Conference.TrackTimeFrame = 00:01:00

Recommended values: should be defined based on particular system load and Lync configuration.

Conference.WarmupCountPerConnectormuss noch ergänzt werden!
ConnectionLivenessIntervalEnter the interval time in seconds between the keep alive pings.
ConnectionLivenessTimeoutEnter the amount of seconds how long the component will wait for a keep alive response.
ConnectionReconnectIntervalEnter the amount of seconds between the retries to reestablish the connection to the service.
ConnectoApplicationURNIdentifies the registered SfB connector application. To get the required value


1. run Get-CsTrustedApplication command in SfB Server Management Shell

2. search for right component by application port number or name

3. copy ApplicationId

Example: urn:application:TM-connector0

ConnectorApplicationURN1Identifies the registered SfB connector application. To get the required value


1. run Get-CsTrustedApplication command in SfB Server Management Shell

2. search for the right component by application port number or name

3. copy ApplicationId

Example: urn:application:TM-connector1

ConnectorApplicationURN2Identifies the registered SfB connector application. To get the required value


1. run Get-CsTrustedApplication command in SfB Server Management Shell

2. search for the right component by application port number or name

3. copy ApplicationId

Example: urn:application:TM-connector2

ConnectorApplicationURN3Identifies the registered SfB connector application. To get the required value


1. run Get-CsTrustedApplication command in SfB Server Management Shell

2. search for the right component by application port number or name

3. copy ApplicationId

Example: urn:application:TM-connector3

ConnectorApplicationURN4Identifies the registered SfB connector application. To get the required value


1. run Get-CsTrustedApplication command in SfB Server Management Shell

2. search for the right component by application port number or name

3. copy ApplicationId

Example: urn:application:TM-connector4

ConnectorEndThe system starts searching for additional connectors starting from this number. Default value: 0
ConnectorPrefixThe system starts searching for additional connectors up to this number. Default value: “”
ConnectorStartThe system starts searching for additional connectors using the prefix as a template.Default value: 0
DefaultEndpointSipAddressUnique  sip adress that was created for each TrustedApplicationPool. It is used during pool failover.


TrustedApplicationEndpoint for DefaultEndpointSipAddress must be created by before:

New-CsTrustedApplicationEndpoint -ApplicationId TM_defaultendpoint -TrustedApplicationPoolFqdn TM.dev.local -SipAddress sip:TM_defaultendpoint@dev.local

TM ConferencingPolicy must be assigned manually to the DefaultEndpointSipAddress after the endpoint was created:

Get-CsTrustedApplicationEndpoint -Identity sip:TM_defaultendpoint@dev.local | Grant-CsConferencingPolicy -PolicyName “Tag:TMService”

DialogMaster.AssignAgentTaskTimeoutTimeout until the task will be in a queue, waiting for an agent.
DialogMaster.IsAutoTerminationEnabledDetermine if agent’s session should be terminated automatically after audio call termination.
Default Value : true
DialogMaster.PollingintervalEnter the amount of time between the retries to assign tasks to the agent in DialogMaster.
Default Value : 00:01:00
DialogMaster.ServiceURIUri for integration service with DialogMaster service.
Example:
http://dialogmaster.dev.local/AgentDesktop/TM/TMOutboundWS.asmx
ExternalWebRequestBasicAccountAccount that will be used in authorization header of a request
ExternalWebRequestBasicAccountPwPassword that will be used in authorization header of a request.
ExternalWebRequestTimeoutInSecDefine if the system has to wait in case of connection problems. If the value is set to 0, Workflow has to wait. If the value is more than 0, the system waits the defined time in second and continue in the Workflow.
GruuPrefixThis value is used to identify service related conversations on SMD. This value depends on the machine where the component is installed. To get the required value


1. run Get-CsTrustedApplication command in SfB Server Management Shell

2. search for application port number

3. in the ComputerGruus string copy the sip address of the machine

Example: sip:TM01.dev.local@dev.local

MaxReconnectDeprecated: Will be removed in future releases.
MusicInQueueFilePathEnter the file path to the music that will be played while the call will be in queue or


leave the default value and put the files to the folder.

Example: C:\Program Files\Luware AG\TM-ICH\Resources\MusikInQueue

MusicOnHoldFilePathEnter the file path to the music that will be played while the call will be on hold or


leave the default value and put the files to the folder.

Example: C:\Program Files\Luware AG\TM-ICH\Resources\MusicOnHold

PresencePublicationDelayInMsIt’s used in a formula to calculate PresencePublicitation of a service (Endpoint) in ICH and adds the following delay: ([Component ActivityOrder – 1) * PresencePublicitationDelayInMs]


Default Value: 0 msec (disabled)
Allowed range: 0 – 2000 msec

Example: PresencePublicitationDelay = 200ms:
ICH with ActivityOrder 1 –> No delay
ICH with ActivityOrder 2 –> 1 * 200ms = 200ms delay
ICH with ActivityOrder 3 –> 2 * 200ms = 400ms delay

ReconnectTimeoutEnter the amount of seconds after which the component will try to reconnect a service after connection loss.
RessourcesPathEnter the file path to the resources folder or leave the default value and use the folder. ICH will store there a local copy of the WMA files from the db.


Example: C:\Program Files\Luware AG\TM-ICH\Resources\

SiebelTimeoutInSIf 0, just wait
If >0, just wait the defined time in second and continue in the WF
SnowAccountthe username (of appropriate https://dev*service-now.com/)
SnowAccountPwthe password for the user
SnowApiTableUrlthe url is in the form: https://{snowinstance url}/api/now/table/
SnowRequestTimeoutInSechow long we wait in the workflow until we move on without completing the requests
UseDefaultConversationContextDeprecated: Will be removed in future releases.
ZendeskAccountExisting Zendesk account that is required to login to Zendesk site.
ZendeskAccountPwPassword to verify Zendesk account.
ZendeskApiTokenAPI tokens that is generated in Zendesk and used to as part of 2-factor authentication for integrations.
ZendeskApiUrlUrl to your Zendesk site.
ZendeskLocaleLocale that is used for your Zendesk site.
ZendeskOAuthTokenOAuth Token that is generated by Zendesk during registing your application. OAuth Token  authenticates all your application’s API requests to Zendesk.
ZendeskTimeoutInSecIf 0, just wait
If >0, just wait the defined time in second and continue in the WF

Config Tweaks

(info) The following parameters are part of the AppSettings.config file and do not apear in the UI. 

Key TypeDescription
SendCallerInformationWithAdditionalChatBoolean

Default = False

If this flag is set to true, when establishing a audio/video session to an agent:

    • Send right after the initial AV invite a additional IM invitation to an agent
      • Add toast message with the caller information.
        • Ex: sip:johndoe@luware.com or +41123456789
        • Terminate this channel once its accepted or timed out

(lightbulb) Answering this Conversation doesn't have ANY impact on the normal call distribution

    • In case we would like to establish a IM session to an agent
      • Send as first entry in the chat (toast message) the caller information
        • Ex: sip:johndoe@luware.com or +41123456789
        • Afterwards show the customer has written e.g. "Hello Support Team"

(tick) How to use:

  1. Add the flag SendCallerInformationWithAdditionalChat to ICH AppSettings.config and set to TRUE
  2. Start ICH
  3. Call from SIP address to service →  Call gets distributed to the Agent
  4. Agent sees two toasts, one with AV call, one with IM
  5. In the IM toast, the agent sees the source SIP address