Skip to main content

Contacter

The Contacter CLI is a "Swiss Army knife" for managing CTT files. It allows you to efficiently read, inspect, and modify file contents. The utility supports the following core operations:

  • Reading fully updated interaction information.
  • Viewing the complete revision history of specific elements.
  • Modifying file content via a structured Cequation configuration file.
  • Modifying file content directly using command-line parameters.
  • Executing a new tagging operation while resetting existing tags.
  • Executing a new tagging operation while appending to existing tags.

Parameters​

The Contacter utility accepts the following execution parameters:

  • filein – The specific file to process or a folder directory to process (iterating through all files sequentially).
  • -v or --verbose – Sets the verbosity level, ranging from 0 (minimal) to 4 (maximum) (optional).
  • -e or --change – Provides a list of Cequation commands passed directly as a string parameter (optional).
  • -f or --filechange – Provides a path to a YAML file containing a list of Cequation commands (optional).
  • -p or --pathout – The target directory where the output CTT file will be saved.
  • -r or --revision – Displays the full revision history of a specific element (optional).
  • -t or --tagreset – Executes a tagging operation, completely overwriting any existing tags (optional).
  • -a or --tagadd – Executes a tagging operation, appending new tags to the existing metadata (optional).

Read Complete Updated Information​

To read the latest version of your CTT file data, simply run the utility without declaring any modification or tagging parameters (-c, -f, -r, -t, -a). You can control the depth of the returned information by adjusting the verbosity level. This is a fully instantaneous, read-only operation that allows you to safely verify the results of previous write processes.

The underlying schema is divided into the following key elements:

  • origin: Immutable metadata regarding the original source audio file.
  • process: A chronological log of write operations performed, including execution results and parameters used.
  • main: High-level metadata about the interaction, including Line In, Agent, Customer, and Date/Time.
  • call: Core analytics and language metadata associated with the overall call.
  • speaker: Profiling, volume, and language statistics broken down per speaker.
  • dialog: A sequential breakdown of every individual dialogue phrase and its associated confidence metrics.

View All Changes of a Specific Element​

Because CTT files are progressively enriched across multiple system pipelines, this option allows you to inspect the full audit trail of any element. For every distinct modification process, the output displays:

  • Comprehensive metadata regarding the execution process.
  • The precise delta and actual changes applied to the target element.

Change File Content by Cequation File​

Use this option to modify updatable elements within the CTT file. The target file passed to the argument must contain a valid list of sequential Cequation commands. Please check the core Cequation documentation for syntax and design guidelines.

Below is an example of a valid configuration file structure:

contacter.yaml
# Create a new dialogue entry with a dynamically generated UUID and an assigned speaker
- $dialog.[]: {"uuid": "genuuid4", "speaker": "SPEAKER_0000"}
# Append a text string to the latest dialogue entry
- $dialog.-1.text: "And the Call Ended"
# Define the duration value for the latest dialogue entry
- $dialog.-1.duration: 2.3
# Increment the overall trust/confidence score of the call by 10 points
- call.trust: "$call.trust 10 +}"
# Iterate through every speaker in the call and increment their total duration by 10
- ?speaker.[varspeaker]:
- $speaker.[varspeaker].duration: "{$speaker.[varspeaker].duration 10 +}"

Change File Content by Command Parameter​

This option performs the exact same dataset modifications as a configuration file, but allows you to pass Cequation strings directly into the terminal interface. This approach is highly recommended for single commands or short, comma-separated lists.

Below is an example of a direct terminal execution layout:

Command Line
contacter file_sample_0.ctt -c "\$project:Residential"

Perform a New Tag Operation (Reset)​

This option calculates and refreshes the metadata tags applied to your overall call, individual speakers, and underlying dialogue lines. This leverages the exact same engine found inside the main Transcriber module. Using this parameter allows you to rapidly recalculate your tagging layers using an updated rule file without having to run the heavy speech-to-text pipeline again.

tag.yaml
TAG_CALL:
dotag: True
$mainspeaker: "$speaker.duration:-1.$key"
$mainlanguage: "$call.language.duration:-1.$key"

TAG_SPEAKER:
dotag: True
$mainlanguage: "$speaker.[my].language.duration:-1.$key"
$mainlanguagevalue: "$speaker.[my].language.duration:-1.duration $speaker.[my].duration / 100 * round.0"
$RECORDED_VOICE: "$speaker.[my].logprob -0.28 > $speaker.[my].language.langprob:wavg 0.98 > $speaker.[my].nospeechprob 0.05 < and and"
$MUSIC: "$speaker.[my].nospeechprob 0.6 > $speaker.[my].volumecorr 0.02 > $speaker.[my].comratio 2.4 > and and"
"ivr_val": "$dialogspk.text:join text.in.marq.mark.apoio.avari.fatur.aces.intern.velocid"
$IVR: ".ivr_val $speaker.[my].turns 2 / >"
"announce_val": "$dialogspk.text:join text.in.gpdr.comercia.grava.lega.prov.contrat.contact.informa"
$ANNOUNCE: ".announce_val $speaker.[my].turns 2 / >"

TAG_DIALOG:
dotag: True
$UNCERTAIN_AUDIO: "$dialog.[my].logprob -0.7 < $dialog.[my].nospeechprob 0.4 < and"
$BACKGROUND_NOISE: "$dialog.[my].nospeechprob 0.6 > $dialog.[my].volumecorr 0.02 > $dialog.[my].comratio 2.4 < $dialog.[my].logprob -1.0 < and and and"
$WEAK_SIGNAL: "$dialog.[my].volumecorr 0.01 < $dialog.[my].nospeechprob 0.5 < and"
$AUDIO_CUTS: "$dialog.[my].duration 0.8 < $dialog.[my].logprob -1.2 < and"
$DISTORTION: "$dialog.[my].distortion $dialog.[my].distortion 1 >"
$UNRECOGNIZED: "$dialog.[my].logprob -1.8 < $dialog.[my].nospeechprob 0.9 > and"
dtmf_val1: "$dialog.[my].nospeechprob 0.8 > $dialog.[my].duration 0.1 > $dialog.[my].duration 0.5 < and and"
dtmf_val2: "$dialog.[my].text text.digit $dialog.[my].duration 0.7 < and"
$DTMF: ".dtmf_val1 .dtmf_val2 or"
long_silence_val: "$dialog.[my].start $dialog.[my]-1:0:num.end - round.1"
$LONG_SILENCE: ".long_silence_val postfix.s .long_silence_val 4 >"
high_tone_val: "$dialog.[my].volumecorr $speaker.[my].volumecorr / 100 * round.0 100 -"
$HIGH_TONE: ".high_tone_val prefix.+ postfix.% .high_tone_val 40 > $dialog.[my].nospeechprob 0.2 < and"
fast_speak_val: "$dialog.[my].wordnumber $dialog.[my].duration / round.1"
$FAST_SPEAK: ".fast_speak_val postfix.wps .fast_speak_val 4.5 >"
whisper_val: "100 $dialog.[my].volumecorr $speaker.[my].volumecorr / 100 * round.0 -"
$WHISPER: ".whisper_val prefix.- postfix.% .whisper_val 30 > $dialog.[my].nospeechprob 0.2 < and"
overlay_val: "$dialog.[my].overlay.duration:sum:0:num $dialog.[my].duration / 100 * round.1"
$OVERLAY: ".overlay_val postfix.% .overlay_val 25 >"

Perform a New Tag Operation (Add)​

This parameter allows you to isolate and execute tagging calculations across your call fields. Unlike the reset operation, any prior tags present in the file metadata are safely preserved. Instead, the engine will cleanly append newly triggered entries to the existing tags list. This is particularly useful when deploying, testing, or isolatedly calculating a new rule constraint without mutating the old audit states.

tag.yaml
TAG_CALL:
dotag: True
$secondmainlanguage: "$call.language.duration:-2:None.key"