LogoLogo
  • Go to Docs Center
  • Meet Plum Fuse
  • Tutorial
    • Basics
    • Deployment
    • Building A Complex Application
  • How to...
    • Send SMS messages using the REST module
    • Use the SMS Module
    • Upload an Audio Recording to Storage
    • Use Plum's Transcription API
  • Fuse Navigation
  • Application Manager
    • New Application
    • Managing Applications
    • Folders
  • Template Center
  • Deployments
    • Deployments Table
    • Creating Deployments
    • Updating Deployments
    • Deleting Deployments
    • Outbound Deployments
  • Logs
  • Reports
  • My Account
    • Global Options
    • Admin Options
  • Users & Sharing
    • Single Sign On
  • Application Editor
    • Application Editor Overview
    • Settings
      • Language Settings
        • Text-To-Speech (TTS) Options
      • User Input Settings
      • Connection Settings
      • Post-Call Webservice
      • JavaScript Libraries
    • Audio Manager
      • Languages
      • Prompt Table
      • Audio Formats
      • Bulk Uploading Audio Prompts
    • Modules
  • Modules
  • Call-Flow
    • Prompt
    • Transfer
    • Go To App
    • Go To Page
    • Compare Variable
    • Counter
    • Exit
    • Call Log
    • Label
    • Subdialog
  • Input
    • Address
    • Yes/No
    • Custom Field
    • Date/Time
    • Number
    • Digits
    • Language
    • Menu
    • Dynamic Menu
    • Name
    • Record
  • Data
    • Email
    • SMS
    • Set Variable
    • Call Recording
    • Evaluate JS
    • REST
    • SOAP
  • Integration
    • Setting up authentication
    • Dialogflow
    • DynamoDB
    • AWS S3
  • Variables
    • Shadow Variables
  • Module Settings
  • Key Fuse Info
  • 📞Outbound
    • Queuing Calls with CSV
    • View Pending Calls
    • Viewing Completed Calls
    • Detecting Voicemail
    • Outbound Parameters
    • Outbound FAQs
  • 🔒Data Security
    • 'Private' Mode
    • Managing Secure Phone Numbers
    • Sensitive Data Types
  • 🔑APIs
    • Authentication
    • Outbound Calls
      • Queue Call
      • Queue Multiple Calls
      • Get Outbound Call Status
      • Cancel Outbound Calls
    • Logs
      • Get Call Logs
      • Get Call Logs With Details
      • Get A Detailed Call Log
  • 🗒️Release Notes
Powered by GitBook
On this page
  • Callee Type Detection
  • Detecting Voicemail Call Flow Example
  1. Outbound

Detecting Voicemail

PreviousViewing Completed CallsNextOutbound Parameters

Last updated 4 years ago

Callee Type Detection

When placing outbound calls, it is often necessary to alter the call flow based on the type of callee you have reached. For example you may wish to play a specific message in the case of an answering machine or proceed with the interactive call flow when you reach a person.

Fuse includes support for callee type detection through the global variable session.connection.callee_type.

The platform automatically updates this variable over the course of the first 4 seconds of the call. Initially the variable will contain the value “processing”, and after 4 seconds it will be updated to be one of the following values:

  1. voice

  2. answeringmachine

  3. fax

  4. unknown

The recommended approach for using this variable is to play an initial prompt that is at least 4 seconds long and then use the () module to branch on the different values that session.connection.callee_type.

Here is an example of a module branching on the session.connection.callee_type value:

Detecting Voicemail Call Flow Example

While it is highly accurate, session.connection.callee_type is attempting to analyze potentially non-standard voicemail and answering machine behaviors, therefore, its performance is not guaranteed. It can and will have issues with certain types of voicemail or ring back behaviors that will lead to false positives/false negatives.

The best practice is for the initial prompt request the callee to press a button to accept the call, which guarantees that the call was connected to a person rather than a machine.

Consider the following example:

Person answers with DTMF

Person answers by voice

Answering Machine

Call scenario

Callee presses any key

Callee answers by voice (such as hi, hello) but not by touch tone key

The call is directed to the answering machine

welcome

check_response

The welcome$.termchar value in the module will indicate that the recording is indeed terminated by a touch tone

Since the recording ended by silence, welcome$.termchar is false and the application will branch to the right

Since the recording ended by silence, welcome$.termchar is false and the application will branch to the right

check_callee_type

Because there was a response from the caller within the first 4 seconds of the call, the platform will evaluate session.connection.callee_type as “voice” and therefore direct the application back to the left

If the answering message is continuous throughout the first 4 seconds, the platform will evaluate session.connection.callee_type as “answeringmachine”

Resulting Module

welcome_call_flow

welcome_call_flow

leave_voicemail

The module is used to see if the callee respond to the welcome prompt, Any touch tone input on the will then end the record module and continue onto the next module

The record module is terminated by the setting in the record module

The record module is terminated by the setting in the record module

📞
record
Compare Variable
final silence
final silence