Table of Contents

Cisco Finesse Redbox Call Suppression Gadget

Download the Gadget Here

RedboxCallSuppressionA_V1.1.zip

High Level - How the Gadget Works

Key Support Info

Extract of Gadget RedboxCallSuppression.js

Set the username, password and hostname in the RedboxCallSuppression.js file - as per example below.

    var _user;
    var _apiusername = 'redboxapi';
    var _apipassword = 'DVgTLKRc9VAt4h2T';
    var _host1 = 'redbox1.mydomain.com';
    var _baseURL = 'http://' + _host1 + ':1480';
    var _loginPath = '/api/v1/sessions/login';
    var _logoutPath = '/api/v1/sessions/logout';
    var _deviceListPath = '/api/v1/config/devices';
    var _suppressStartPath = '/api/v1/suppression/start/device';
    var _suppressStopPath = '/api/v1/suppression/stop/device';
    var _keepalivePath = '/api/v1/sessions/keepAlive';
    var _authToken;
    var _myExtension;
    var _myDeviceId = []; //Array for the Device IDs - as the recorder could have more than one.
    var _myDeviceIdCounter;
    var _connected = false;
    var _connectionStatus = 'not connected';
    var _keepaliveMsg = "";
    var _keepaliveCounter = 0;
    var _keepaliveMaxCounter = 3;
    var _keepaliveInterval = 150000; // defaults to 150000, i.e. 2.5 mins. The Redbox Session timer is 5 mins - so keepalives need to be set before this 5 min timer expires.
    var _userState = "";
    var _version = '1.1';

Detailed Work Flow details

Setup

API User

Setup the api user account rights as per below screen shot

Configuring of Redbox API Web Service

Configuration of the Web Service API is done via the

C:\LTR\utils\RedBoxInterfaceWebAPI\RedBoxInterfaceWebAPI.exe.config

To create the file take a copy of the sample configuration file from

C:\LTR\Config\SampleConfigFiles\RedBoxInterfaceWebAPI.exe.config

and place in

C:\LTR\utils\RedBoxInterfaceWebAPI\

Sample Config file

The below Redbox Web Service API config file only has HTTP enabled. HTTPS has been disabled.

RedBoxInterfaceWebAPI.exe.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
      <section name="RedBoxInterfaceWebAPI.RecorderConfig" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    </sectionGroup>
  </configSections>
 
  <log4net>
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value=".\Logs\RedBoxInterfaceWebAPI.log" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="2" />
      <maximumFileSize value="15MB" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level - %message%newline" />
      </layout>
    </appender>
 
    <root>
      <level value="WARN" />
      <appender-ref ref="RollingFileAppender" />
    </root>
 
  </log4net>
 
  <!--Web server configuration-->
  <system.serviceModel>
 
    <bindings>
      <webHttpBinding>
        <binding name="webHttpTransportSecurity">
          <security mode="Transport" />
        </binding>
      </webHttpBinding>
    </bindings>
 
    <services>
      <service name="RedBoxInterfaceWebAPI.services.WebRestAPI">
        <host>
          <baseAddresses>
            <!--
			<add baseAddress="https://hostname:14443/api"/>
			-->
            <add baseAddress="http://hostname:1480/api"/>
          </baseAddresses>
        </host>
 
        <!-- http -->
        <endpoint address="v1" binding="webHttpBinding" behaviorConfiguration="webHttpBehavior" bindingNamespace="rbr.interface.uri" contract="RedBoxInterfaceWebAPI.services.IWebRestAPI" />
        <!-- https -->
        <!--
		<endpoint address="v1" binding="webHttpBinding" bindingConfiguration="webHttpTransportSecurity" behaviorConfiguration="webHttpBehavior" bindingNamespace="rbr.interface.uri" contract="RedBoxInterfaceWebAPI.services.IWebRestAPI" />
		-->
 
      </service>
    </services>
 
    <behaviors>
      <serviceBehaviors>
        <behavior name="">
          <serviceMetadata httpGetEnabled="false" httpsGetEnabled="true"/>
          <serviceDebug includeExceptionDetailInFaults="true"/>
        </behavior>
      </serviceBehaviors>
 
      <!--Required default endpoint behavior when using webHttpBinding-->
      <endpointBehaviors>
        <behavior name="webHttpBehavior">
          <webHttp/>
        </behavior>
      </endpointBehaviors>
    </behaviors>
 
  </system.serviceModel>
 
  <applicationSettings>
    <RedBoxInterfaceWebAPI.RecorderConfig>
      <setting name="IPAddress" serializeAs="String"> <value>127.0.0.1</value> </setting>
    </RedBoxInterfaceWebAPI.RecorderConfig>
  </applicationSettings>  
 
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  </startup>  
 
</configuration>

Installing / Uninstalling the Web Service API

To install the Web Service API as a Windows service open a command prompt and navigate to the C:\LTR\utils\RedBoxInterfaceWebAPI and run the command

RedBoxInterfaceWebAPI.exe –i

After installing a new service should be added called “Red box Recorders Web API Service”
Make sure to start the service!

To Uninstall run the command:

RedBoxInterfaceWebAPI.exe –u

Example Finesse Gadget XML Config

Below is the config you add to the Finesse Admin to add the Gadget for the Agent. You need to upload to the Finesse Servers into the relevant folder - see Cisco 3rd Party Gadget configuration documentation for more information.

This example has the B side commented out - so only the A side appears for the Agent.

        <tab>
            <id>RedboxA</id>
            <icon>manage-call</icon>
            <label>PCI-A-Side</label>
   			<gadgets>
			    <gadget>/3rdpartygadget/files/RedboxCallSuppressionA_V1.1/RedboxCallSuppression.xml</gadget>
	                </gadgets>
        </tab>
        <!--
        <tab>
            <id>RedboxB</id>
            <icon>manage-call</icon>
            <label>PCI-B-Side</label>
		<gadgets>
			<gadget>/3rdpartygadget/files/RedboxCallSuppressionB_V1.1/RedboxCallSuppression.xml</gadget>
		</gadgets>
         </tab>
         -->