Jump to: navigation, search

Web Distributed Authoring and Versioning (WebDAV) is an extension of the Hypertext Transfer Protocol (HTTP) that facilitates collaboration between users in editing and managing documents and files stored onWorld Wide Web servers. A working group of the Internet Engineering Task Force (IETF) defined WebDAV in RFC 4918.

Deploying Web Services and Applications for GIR

Warning
  • The content on this page only applies to version 8.5.210.02 or earlier of Genesys Interaction Recording. If you're using a later version, you'll need to install the Interaction Recording Web Services component instead. See Deploying Interaction Recording Web Services for details.
  • If you upgrade to Interaction Recording Web Services, it does not provide API support for non-GIR related Web Services, such as Workspace Web Edition.

Genesys Interaction Recording (GIR) needs Web Services to store and manage the recording files.

Web Services uses the following major components:

Important
  • Screen Recording for voice interactions requires that Agent Info specify the default agent place in the Default Place field. The default place must be assigned at least one DN. If a DN is not assigned to the default place, the agent will not be associated with a device and Screen Recording will not produce interactions for the agent.
  • The 8.5.201.29 release of Genesys Web Services and Applications is not supported with the Genesys Interaction Recording Solution.
  • The URI in recording_settings is case sensitive and must match the URI in the IVR Profile. For example:
"uri": "http://GENESYSREC1/recordings"

is not the same as:

"uri": "http://genesysrec1/recordings"

The following steps describe how to deploy the Web Services components for GIR.

Deploy the WebDAV Storage Server

  1. Install WebDAV, by running the following command:
    yum install httpd
  2. Edit the /etc/httpd/conf/httpd.conf file, and append the following to the end of the file:
    Alias /recordings /mnt/recordings
    <Directory /mnt/recordings>
       Options Indexes MultiViews FollowSymLinks
       EnableSendfile off
       AllowOverride None
       Order allow,deny
       allow from all
    </Directory>
    <Location "/recordings">
       DAV On
       AuthType Basic
       AuthName "user"
       AuthUserFile /var/www/htpasswd
       Require valid-user
    </Location>
  3. Open the firewall. Because WebDAV is an HTTP server, the incoming default HTTP and/or HTTPS ports (80 and/or 443) must be open to the server.
    Important
    It is possible to use custom ports by changing the permitted incoming ports in the firewall, the virtual host configuration file, and the URL used to reach the WebDAV server.
  4. Create the directory to keep the recording files, and set the permission to Apache, using the following command:
    mkdir /mnt/recordings
    chown apache:apache /mnt/recordings
  5. Important
    Due to performance concerns, Genesys does not recommend using a remote directory for WebDAV.
  6. Create a WebDAV user for httpd, and configure the password. The following example creates a user called "user":
    htpasswd -c /var/www/htpasswd user
    Warning
    If the Recording Muxer is deployed for screen recording, make sure all WebDAV storages of the same contact center region are using the same username and password.
  7. Configure the httpd to start on boot up (and start it now) using the following command:
    chkconfig --levels 235 httpd on
    service httpd start
  8. Test the WebDAV installation.
    1. Upload a hello.world file to the WebDAV server using the following command:
      curl -T hello.world -u user:password http://myserver/recordings/hello.world
    2. Using a browser, open the the http://myserver/recordings/hello.world URL. The browser will request for user credentials.
  9. The WebDAV server is installed.

Deploy the Cassandra Database

Web Services stores the information about call recordings in a Cassandra database. For each contact center, the distinct column families with unique names exist for storing call recording information. These column families are created when the contact center is created, and deleted when contact center is deleted.

To deploy the Cassandra database for GIR, see the Installing and Configuring Cassandra section of the Web Services and Applications Guide.

Important
Web Services deletes column families only if they do not contain any call recordings; otherwise they should be deleted manually from Cassandra using the cassandra-cli tool.

Deploy Web Services and Applications

To install and configure Web Services and Applications, see the Web Services and Applications Guide.

For Voice Recordings

Web Services requires a specific configuration in addition to the configuration that is described in the Web Services and Applications Deployment Guide for GIR call recordings to work correctly. The following sections describe how to configure Web Services for call recordings.

Configuring the Web Services Parameters

To configure Web Services for Genesys Interaction Recording, add parameters to the application.yaml file (if you are using Web Services and Application version 8.5.201.09 or earlier modify the server-settings.yaml instead).

[+] Show the Parameters

Configuring the Elasticsearch Engine

The Web Services Call Recording API uses the elastic search as the query engine. A configuration file is required if call recording is enabled (for example, JETTY_HOME/resources/elasticsearch.yml).

[+] Show the Steps to Configure Elasticsearch

Restarting Web Services

For more information on starting and stopping Web Services, see the Web Services Deployment Guide.

Configuring the Storage Credentials for Web Services

To enable voice recording:

  1. Determine the contact center ID on Web Services using the following command with the ops username and password (ops:ops):
    curl -u ops:ops http://<Web Services Server>:8080/api/v2/ops/contact-centers; echo

    The following output is returned:

    {"statusCode":0,"uris":["http://<Web Services Server>:8080/api/v2/ops/contact-centers/<contact center ID (in hex format)>"]}
    Important
    Use the <contact center ID (in hex format)> in all subsequent commands.
  2. In a text editor, create the create_table file using the following command:
    {
    "operationName":"createCRCF"
    }
    curl -u ops:ops -X POST -d @create_table http://htcc:8080/api/v2/ops/
    contact-centers/<contact center ID (in hex format)>/recordings 
    --header "Content-Type: application/json"; echo

To enable storage:

  1. Using a text editor, create a new file called recording_settings with the following content:
    {
      "store": [
        {
          "webDAV": {
            "userName": "user1",
            "password": "password1",
            "uri": "http://apache1/recordings"
          }
        },
        {
          "webDAV": {
            "userName": "user2",
            "password": "password2",
            "uri": "http://apache2/recordings"
                    }
          }
      ]
    }
    
    Important
    The URI in recording_settings is case sensitive and must match the URI in the IVR Profile. For example:
    "uri": "http://GENESYSREC1/recordings"

    is not the same as:

    "uri": "http://genesysrec1/recordings"
  2. Execute the following command:
    {
    curl -u ops:ops -X PUT -d @recording_settings
     http://<Web Services Server>:8080/api/v2/ops/contact-centers/<contact center ID (in hex format)>/settings/recordings
     --header "Content-Type: application/json"; echo
    }
    

Configuring the Call Recording Audit Log

Web Services provides an audit log for the following call recording operations:

  • Playback of the recording media file
  • Deletion of the call recording file

To configure the audit log:

  1. Stop the Web Service Jetty using the following command:
    sudo service jetty stop
  2. Update the Jetty LogBack Configuration:
    • Edit the /opt/jetty/resources/logback.xml file to include INFO level messaging [+] Show example
    • For MLM:
      • Create a RECORDING appender if it does not exist. [+] Show example
      • Add the following loggers:
          <logger name="com.genesyslab.cloud.v2.api.controllers.callrecording">
            <appender-ref ref="RECORDING" />
          </logger>
          <logger name="com.genesyslab.cloud.v2.api.controllers.screenrecording">
            <appender-ref ref="RECORDING" />
          </logger>
          <logger name="com.genesyslab.cloud.v2.api.tasks.callrecording">
            <appender-ref ref="RECORDING" />
          </logger>
          <logger name="com.genesyslab.cloud.v2.api.tasks.interactionrecording">
            <appender-ref ref="RECORDING" />
          </logger>
          <logger name="com.genesyslab.cloud.v2.api.tasks.screenrecording">
            <appender-ref ref="RECORDING" />
          </logger>
          <logger name="com.genesyslab.cloud.v2.api.tasks.settings">
            <appender-ref ref="RECORDING" />
          </logger>
          <logger name="com.genesyslab.cloud.v2.media.scheduler">
            <appender-ref ref="RECORDING" />
          </logger>
          <logger name="com.genesyslab.cloud.v2.media.task">
            <appender-ref ref="RECORDING" />
          </logger>
        
      For more information about Jetty Logback, see Logback configuration.
  3. Start Jetty using the following command:
    sudo service jetty start
  4. Review the audit log.[+] Show example

Setting the Advanced Options for Web Services

API Thread Pool

Web Services provides properties for the Call Recording API thread pool via archaius.[+] Show the properties

For more information about the Web Services Call Recording API, see the Web Services API Reference.

For more information about how to use Workspace Web Edition for Voice Recording, see the Workspace Web Edition Help.

For Screen Recordings

As with call recordings, Web Services requires a specific configuration for GIR screen recordings to work correctly. The following sections describe how to configure Web Services for screen recordings.

Configuring the Parameters

  1. On all Web Services instances, modify the application.yaml file (if you are using Web Services and Application version 8.5.201.09 or earlier modify the server-settings.yaml instead), and add the following parameters:
    crossOriginSettings:
        corsFilterCacheTimeToLive: 120
        allowedOrigins: <Web Services Servers>,<SpeechMiner Web Servers>
        allowedMethods: GET,POST,PUT,DELETE,OPTIONS
        allowedHeaders: "X-Requested-With,Content-Type,Accept,Origin,Cookie,authorization,ssid,surl,ContactCenterId,Range"
        allowCredentials: true
    screenRecordingSettings:
        screenRecordingEServicesEnabled: true
        screenRecordingVoiceEnabled: true
    screenRecordingConnectionReportingSettings:
      reportingEnabled: true
      createReportingCF: true
    multiPartResolverMaxUploadSize: 536870912
    multiPartResolverMaxInMemorySize: 536870912
    Important
    • Change <Web Services Servers> and <SpeechMiner Web Servers> to the HTTP/HTTPS addresses of the Web Services instances and SpeechMiner Web Servers.
    • multiPartResolverMaxUploadSize controls the maximum allowed size for the Screen Recording video file that can be uploaded to Web Services and Applications (in bytes). Setting the value too high (10MB+) for this parameter may cause performance and/or security issues for Web Services and Applications.
  2. Add screen recording features to the Contact Center:
    POST http://<htcc-host-prefix>/api/v2/ops/contact-centers/bea09df2-82c5-441a-9072-5f2fc15fadc4/features
    {
         "uris":[  
          "/api/api-voice-screenrecording",
          "/api/api-multimedia-screenrecording",
          "/api/api-screenrecording-connection-reporting"
       ]
    }
    Important
    • Use the api-voice-screenrecording parameter for voice interactions, and use the api-multimedia-screenrecording parameter for non-voice interactions.
    • If you wish to direct the SpeechMiner UI to Web Services instead of Recording Crypto Server for decryption of screen recordings, add the api-recordings-decryption-proxying parameter to the list of features enabled for the contact center above. Note that this requires additional configuration and applies to the Web Services version 8.5.200.85 and later only.
  3. Restarting Web Services

    For more information on starting and stopping Web Services, see the Web Services Deployment Guide.

    Configuring the Storage Credentials for Web Services

    1. Determine the contact center ID on Web Services using the following command with the ops username and password (ops:ops):
      curl -u -ops:ops http://<Web Services Server>:<Web Services port>/api/v2/ops/contact-centers; echo

      The following output is returned:

      {"statusCode":0,"uris":["http://<Web Services Server>:<Web Services port>/api/v2/ops/
      contact-centers/<contact center ID (in hex format)>"]}
    2. Important
      Use the <contact center ID (in hex format)> in all subsequent commands.
    3. In a text editor, create a new file called create_table, with the following content:
      {
      "operationName":"createCRCF"
      }

      And then execute the following command:

      curl -u ops:ops -X POST -d @create_table http:// <Web Services Server>:<Web Services Port>/api/v2/ops/
      contact-centers/<contact center ID (in hex format)>/screen-recordings
       --header "Content-Type: application/json"; echo
      
    4. Enable storage for a single or multiple locations:
      • For a single location:
        1. In a text editor, create the create_single_location file. [+] Show how
        2. Execute the following command:
          curl -u ops:ops -X POST -d @create_single_location http:// <Web Services Server>:8080/api/v2/ops
          /contact-centers/<contact center ID (in hex format)>/settings/screen-recording 
          --header "Content-Type: application/json"; echo
      • For multiple locations:
        1. In a text editor, create the create_first_location file.[+] Show how
        2. Execute the following command:
          curl -u ops:ops -X POST -d @create_first_location http://<Web Services Server>:8080/api/v2/ops
          /contact-centers/<contact center ID (in hex format)>/settings/screen-recording
           --header "Content-Type: application/json"; echo
          Important
          Replace <node_location>, <webdav user>, <webdav password>, <webdav uri> with the appropriate values. The values for the <node_location> are similar to the nodePath settings in the Web Services application.yaml file (if you are using Web Services and Application version 8.5.201.09 or earlier modify the server-settings.yaml instead), but allow a hierarchical representation. For example, a Web Services node uses a storage setting with a location of "/US" in the nodePath set to "/US/AK" or "/US/HI".

          For more information on hierarchical location setting, see https://docs.genesys.com/Documentation/CR/8.5.2/Solution/GWSSettings#Hierarchical_Location_Matching .
        3. Repeat steps a and b for each location required.

    For more information on the properties of this settings group, see Interaction Recording Web Services Settings Groups.

    Setting the Advanced Options for Web Services

    API Thread Pool

    Web Services provides properties for the Screen Recording API thread pool via archaius.[+] Show the properties


    For more information about the Web Services Call Recording API, see the Genesys Interaction Recording API Reference.

This page was last edited on February 27, 2020, at 20:44.
Comments or questions about this documentation? Contact us for support!