Advanced Call Recording Rules

Overview

In certain situations selective recording rules defined through the Verba web interface might not be powerful enough to define the filter rules you are planning to implement. For these cases you can use an alternative method, that provides more powerful recording conditions.

Supported integrations

The XML based recording rule configuration is supported with Cisco Network Based and Avaya recording.

Extensions need to be configured with Full Recording mode.

The solution is based on an XML file that defines these advanced recording rules:

<VERBA_APP_PATH>\settings\rules.xml

The rules.xml file contains an ordered list of rules, where each rule has:

  • conditions - a list of conditions, where all should succeed for the rule to match
  • action - an action that should be taken when a rule matches

See the rules.xml example below for syntax and usage details.

The default action for calls not matching any rule is not recording!

Configuring advanced call recording rules

If you want to use the advanced call recording rules, you need to take the following steps:

Step 1 - In case of Cisco recording, configure the line on recorded phones with Recording Option = 'Application Invoked'. See Adding a new extension for recording in Cisco UCM.

Step 2 - Create the rules.xml file and copy it to the <VERBA_APP_PATH>\settings\ folder

Step 3a - In case of Cisco recording - set Cisco JTAPI Configuration / Advanced Settings / Advanced Recording Rules Enabled to 'Yes'.
Step 3b - In case of Avaya recording - set Avaya Recorder / Avaya DMCC / Advanced Recording Rules Enabled to 'Yes'.

Step 4 - Start (or restart) the Verba Cisco JTAPI Service\Verba Avaya DMCC/JTAPI Service

Repeat step 2 and 3 on all Verba recording servers that run the central recording service.

Changing the rules XML file

When you make changes to the rules.xml file, you have to restart the Verba Cisco JTAPI Service\Verba Avaya DMCC/JTAPI Service. Make a backup copy of your old xml file to be able to restore operations in case of an XML syntax problem.

Example rules.xml file

The following example shows the available rules, conditions and actions in a rules.xml file. You can download this example rules.xml file here.

rules.xml
<?xml version = '1.0' encoding = 'UTF-8'?>

<!-- This Rules XML file defines advanced
     call recording rules used by the Verba Recording System.
     ROOT tag of the file is 'rules' -->
<rules>
 
   <!-- Every rule is defined as a 'rule' tag,
        rules are processed from top to bottom,
        if a rule condition matches the rest is ignored. -->
   <rule>
 
      <!-- 'rule' tags can have two children:
              non-mandatory 'conditions' tag
              mandatory 'action' tag -->
      <conditions>

          <!-- 'conditions' tag have children called 'condition' tags with attributes:
                  'type' - AnyConfigured | CallerParty | CalledParty (mandatory)
                  'patternType' - regex | dos | simple (optional, default is regex)
               If multiple condition are listed, AND operator is applied between them.
               If any of the 'condition' tets fail, the next 'rule' will be evaluated,
               without processing the 'action'.

               See 'condition' examples below: -->

          <condition type="CallerParty" patternType="regex">^\d{4}$</condition>
          <!-- caller party is 4 characters long, contains numbers only -->

          <condition type="CalledParty" patternType="regex">^\d{5}$</condition>
          <!-- called party is 5 characters long, contains numbers only -->

          <condition type="CallerParty" patternType="dos">????</condition>
          <!-- caller party is 4 characters long DOS style -->

          <condition type="CalledParty" patternType="dos">?????</condition>
          <!-- called party is 5 characters long DOS style -->

          <condition type="CallerParty" patternType="simple">1234</condition>
          <!-- caller party is 1234 -->

          <condition type="CalledParty" patternType="simple">12345</condition>
          <!-- called party is 12345 -->

          <condition type="CallerParty" patternType="dos">123?</condition>
          <!-- caller party is 4 characters long and starts with 123 -->

          <condition type="CalledParty" patternType="dos">123?5</condition>
          <!-- called party is 12345 -->

       </conditions>

       <!-- The 'action' tags specifies the action to be taken when all 'condition' tags match.
            Action values can be: record | dont_record -->
       <action>record</action>

    </rule>
 
   <!-- The following rule matches for all calls where at least one of
        the parties are configured for recording in the extension list of the system. -->
   <rule>
      <conditions>
         <condition type="AnyConfigured" />
      </conditions>
      <action>record</action>
   </rule>

   <!-- The following 'rule' tag shows that the 'conditions' tag is not mandatory.
        This will match every call which did not match any of the above 'rule'. -->
   <rule>
      <action>dont_record</action>
   </rule>
 
</rules>