Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

FastAMD Fast AMD is a new kind of digital Answering Machine Detection ( AMD ) for use in data centres where strict adherence to best practice is a necessitythat put quality before quantity. Conventional AMD has been with us for a long time and its benefits are well understood, as are the drawbacks. FastAMD understood…as to are its drawbacks. Fast-AMD from Magus approaches answer machine detection in with a new waycompletely different way approach and overcomes these longstanding problems with old AMD.
Conventional AMD (sometimes called cadence Cadence AMD) works by making a good guess at what is making the noise that is coming down the line. Two key The issues discount its use that discount it from being deployed in quality centric environments are principally two-fold. The first problem issue is that it can mistake live call recipients for answering answer machines and hang up on them (; this is a false positive). Conventional AMD vendors will quote their percentage of false positives positive values at around 3%, though possibly 15% is now more the norm; greetings for cell phones are . Hmmm - maybe 20 years ago but with the subsequent domination of mobile/cell people just don’t answer calls in the same way they used to. Answer greetings are now on average longer and noisier, and cadence detection does not cope well with this, pushing false positives to completely unacceptable levels. The second problem with traditional cadence AMD is that its detection process takes too long – even a 2-second pause after a just cannot cope. 15% false positives are now the norm, and this is unacceptable in any environment
Secondly Conventional AMD takes too long. It takes at least 2 seconds for cadence AMD to begin to make a guess at what its connected too. This may not seem long, but that pause after an “Hello” is enough to alert the recipient that this is likely to be a call from a data centre. Forewarned, the call already starts on the wrong foot - if it starts at all.FastAMD’s approach eradicates , even before your interviewer or agent has said a word.
Fast-AMD’s approach is to eradicate these two issues. Firstly, FastAMD the Fast-AMD relies on finding a digital match for the incoming voice. It does not hang up on a connected live recipient so As a result, there is a 0.0% rate of false positives. Also, a digital match (if found) takes 0.5 seconds so calls identified as live can be transferred rapidly and live recipients are unaware of any delay. There is a trade-off, FastAMD is implicitly more cautious than . Its does not hang up on a connected live recipient. Secondly, if a digital match is possible, it can be made in around 0.5 seconds. That means Fast-AMD need to wait any longer than that before its transfers the call to your staff. Live call recipients are left unaware that there has been any delay.
However, you don’t get these benefits for free, there is a trade-off. Fast-AMD is implicitly more cautious that cadence AMD so it does not detect all answering as many ‘real’ answer machines, but it still detects sufficient enough to provide significant performance gains; . After you factor out the false positives, conventional AMD typically detects about 75% of all the answer machines and voice mails called. With Fast-AMD this number is down to about 60%, not as great but more than enough to improve the productivity of your staff, without annoying your call list.

FastAMD

FastAMD magusAMD

The magusAMD (magus Answer Machine Detection) is an Asterisk Dialplan application designed to perform analysis of the in-band content of a call immediately after connection. It processes the media of the call and assesses returns a best-guess as to the origin of the content.

It incorporates Asterisk’s Asterisks own native AMD application features and . It provides two more features over and above that provided by the Asterisk’s native application.
1) Fax/modem tone detection
2) Fast Voice Mail message detection (

...

fast-AMD).
The component functions, basic AMD, Fax detect and FastAMD fast-AMD detect, can be run together or turned on/off independently.

The FastAMD Fast-AMD feature

To perform its detection, FastAMD fast-AMD uses a library of templates derived from the standard voicemail voice mail (VM) introductions. These are collected from the voice mail (VM) services of major national PSTN and cell service providers and common PBXs. The content of a call is matched with these templates in real time. This matching may be done several times during the first fractions of a second. The matching is extremely fast (micro-second) so there is no lag between media collection and detection. This allows FastAMD fast-AMD to determine an outcome on average within 0.4 seconds of the start of the call.

This extremely short detection time means that the “delay” experienced by live call parties is imperceptible. This is a huge benefit in countries where slow, traditional AMD is overused and the public are savvy to such practices. Many contact centres avoid using AMD simply because of the delay it places at the start of all connections. Fast-AMD removes this problem.

The make-up of digital templates and the matching algorithm means mean that the probability of a false positive is are around 2-30 (0.000000001); effectively there are no false positives. While basic AMD is “best guess”, fast-AMD is not. Templates are so unique that even the chances of the same individual re-producing a live voice segment to match a previous one are extremely remote (infinitesimal)

The avoidance of false positives is a major benefit in many countries where silent calls are limited by regulations (false positives come from both AMD and abandoned calls from predictive dialling). Typical false positive rates from traditional cadence based AMD are 5% - that means 5% of calls detected as AMs were in fact live call parties. Such a rate may disqualify the complementary use of predictive dialling. (It should be noted that we believe current false positive rates for traditional AMD are greater than 5%. With the increased use of mobile/cell over domestic lines, more individuals are combining personal and business usage. Live called parties are more often announcing with “Hello, Acme plumbing and heating, Kevin speaking”. FastAMD Longer announcements mean more false positives)

Fast-AMD matches calls with a “known” message set. This means that it ignores domestic answer machines terminating on analogue lines. However in some countries (like the UK) “matchable” AM calls represent around 70% of all AM calls. Such limits limit are however outweighed by the effective removal of false positives and the speed with which detection is performed.        FastAMD

Library Management and Learning

The fast-AMD also has a dynamic and parallel learning feature. This feature runs in the background and compares templates captured from previous calls. If template matches are found they are deemed to be from an identical source – i.e. a digital recording. These matched templates can be automatically promoted as “graduate” templates. The graduates and the associated media content can be examined before including into the main library, or they can be “employed” dynamically and immediately. In the latter case there is no separation between the learning phase and the deployment phases, and the learning phase can run continuously. To support these learning options FastAMD layer of management allows templates from new, unmatched calls to be added to the library, however there is also “inactivity” algorithm that discards unused templates, and so prevents the build-up of unmatched templates. This is achieved by having 3 layers of library: undergraduate, graduate and postgraduate.

Postgraduates contains templates with a high frequency of matches, Graduates with a lower frequency, and Undergraduates are ‘new’ and have no matches yet. When a new call enters the system its generated templates are passed for comparison, first against the postgraduate set, then the graduate set and finally the undergraduate set.

When a call does not produce a match in the library, the templates from that call are added to the undergraduate layer. As it has already be passed against the undergraduate set, it must be unique. If, later, one of the undergraduate templates is matched with a new call, that template will get promoted to the graduate layer. If, after a configurable inactivity time (e.g. 3 days) an undergraduate is not matched, it will be removed.

Templates in the graduate layer are also subject to an inactivity time limit, but this is normally considerably higher (e.g. 21 days)

To support these learning options fast-AMD has 3 exclusive modes that can be run together or independently.
Detect mode. This uses a set of pre-built templates for comparison with the current call media. It may also be set to use graduate templates.
Template capture mode. This will capture a new set of templates based on the content of calls. These can be analysed in

...

background to build or add to the library of templates used in detection mode.
Media capture mode. This will save short media files (max 2 seconds) containing the initial part of call content. These may be used to qualify the captured templates as part of a manual graduation process

...

Templates and media files will be saved only when a fast-AMD detect match is not made. Saving of files may also be made conditional on a positive basic AMD detection (if that is running).

Installation

The installation is an rpm that places the binary and configuration files in various locations on the asterisk server. It also places a license control tool on the server. To install run “rpm –i magusamd-<version>” from the directory containing the rpm file

The following files are installed

/usr/src/magus/app_magusamd.cky
/usr/src/magus/MakeMagusAMD

/etc/asterisk/magusamd.conf
/usr/sbin/maguslic.
/usr/sbin/magus-compiler.

maguslic is an executable that manages the licensing. It must be run as an administrative user – root. On installation, it is automatically run and creates a /etc/magusamd.lic file. This contains a unique server key and license. On creation the license is empty.

Once the installation is done there are two further steps:

Firstly the encrypted code needs to be compiled. Copy the app_magusamd.cky and MakeMagusAMD to the “<asterisk source>/apps” directory. From within the apps directory open a terminal window and run the shell as root (super user). Then run “make --file=MakeMagusAMD install”. This will compile the source file and copy the binaries to the correct modules directory. Please report any compilation errors back to the vendor.  

Secondly run “maguslic /etc/magusamd.lic” from the Linux command prompt. This will display the key. This must be provided to your software supplier. They will provide you with a license (5 hex quartets) of a specific duration that will contain the number of permitted channels

When you receive your license enter it using “maguslic -l /etc/magusamd.lic  2 <licence value>”. It will also verify that the license matches the server. (don’t forget the “2” in the command line).

Once these two steps are completed, restart/reload Asterisk.

Use

To employ FastAMD a call must first be set-up using from a device nominated in the dial plan. This can be done either using an originate() from either the dial plan or the Asterisk Manager API.

[outbound-originate-extn]

exten => s,1,magusAMD([profile]) //
; process “MAGUSAMDSTATUS” here

Like the AMD application the FastAMD application blocks until it has enough information to determine the call content type. On return the FastAMD application sets a channel variable MAGUSAMDSTATUS and MAGUSAMDCAUSE (optionally). It may also be configured to return other variables of user nominated names. The maximum time spent analysing the in-band media can be configured.

FastAMD takes one optional parameter; this is the “profile”. Profiles are defined in the /etc/asterisk/magusamd.conf file. Each profile can define a set of operating parameters and nominate a set of templates. Supporting multiple profiles allows for use of basic and FastAMD separately, and for use of independent template sets, for instance language/national sets.

Possible values for MAGUSAMDSTATUS are

MACHINE (for basic AMD and fast AMD mode)
HUMAN (for basic AMD mode only)
NOTSURE
HANGUP
FAX (for Fax/Modem mode)
MODEM (for Fax/Modem mode)

There are also user definable return associates with template sets and basic AMD silence timeouts.  

FastAMD also has a dynamically parallel learning module. If set to capture templates and apply the learning cycle magusAMD will dynamically compare any newly captured templates to the set of previously captured templates. If matches are found then the templates “graduate” to the templates used in matching against live calls. There need be no “training” phase separate from a “live” phase. The learning process is parallel with live usage.

The template library for each profile as a defined “top level” directory. Any match to templates held in this directory will return MACHINE in the MAGUSAMDSTATUS channel variable. The learning cycle my place graduated templates into the “graduate” directory under the top level. Any match to templates held in this directory will return MACHINE in the MAGUSAMDSTATUS channel variable. There may be other template sets held in subdirectories of the top level.  Any match to templates held in any of these directories will return the relative directory name in the MAGUSAMDSTATUS channel variable.

Arguments and Configuration values

FastAMD takes one optional parameter; this is the “profile”. Profiles are defined in the /etc/asterisk/magusamd.conf file.

The .conf file is broken into a [general] region and any number of user defines [profile] regions. Operational parameters may be defined in the [general] sections. The values there will be used as default values for other profiles (note “general” should not be used as a profile name). There is a [default] profile. This will be used where the FastAMD() application is run without a parameter. If the [default] profile is not explicitly defined in the .conf file it will take its values from the [general] section.

FastAMD’s basic AMD function retains the same conf file configuration values as the operation of asterisks native AMD.  Below are amendments to those values and additional values. The parameters specified below can be present in the general section and in any profiles.

total_analysis_time
This integer value is already available as a basic AMD parameter; in that respect its usage is unchanged. However the duration the Fax/modem and FastAMD detection cycles will also be limited by this value.

initial_silence_response
This is the string value that is returned in MAGUSAMDSTATUS by the basic AMD operation when the initial_silence_timeout is exceeded. In the functionality offered by asterisks native AMD operation the value returned is fixed as “MACHINE”. In FastAMD this event’s MAGUSAMDSTATUS value is configurable (default = “MACHINE”)

do_AMD_basic
Boolean value turning basic AMD on/off . Values “yes”/”no”. Default = yes. Note: if performing media and template capture at the same time as basic AMD, these capture operations will be delineated to the point of AMD detection.  Default = no

do_fax_detect
Boolean value turning fax detect on/off. Values “yes”/”no”. Default = no  

do_fast_AMD_detect
Boolean value turning fast-AMD detect mode on/off. Values “yes”/”no”. Default = yes

do_fast_AMD_template_capture
Boolean value turning template capture mode on/off. Values “yes”/”no”. Template files have a .tmpl extension. A single call may generate several template files. Default = no

do_fast_AMD_media_capture
Boolean value turning media capture mode on/off. Values “yes”/”no”. Media files are .sln format (16bit 8khz sample). A call will generate just one media file. The duration of the file will delimited to the point the detection terminated. This will be determined by the timeout parameters. Template and Media capture can be run with no detection modes in operation. This allows for an independent learning phase. In such a case total_analysis_time will determine the media file duration. Default = no

fast_AMD_capture_on_AMD_machine_only.
Boolean value forcing template and media capture to save files only when basic AMD is running and has detect a machine. Values “yes”/”no”. Default = no

fast_AMD_read_dir
Text value for the directory location of the templates used in detection mode. Default = /etc/ magusamd.

fast_AMD_write_dir
Text value for the directory location of the templates and media capture. Default = /var/lib/magusamd (do not make fast_AMD_read_dir and fast_AMD_write_dir the same)

fast_AMD_silence_threshold
Integer value corresponding to the energy threshold beneath which Fast-AMD considers the media to be silence. If the media content remains below the threshold for from the start to fast_AMD_maximum_silence then the application returns sets the MAGUSAMDSTATUS to MACHINE. Once crossed the fast_AMD_maximum_silence timer ends and the fast_AMD_maximum_after_silence timer starts. This “after silence” timer continues to run regardless of whether the media energy later drops below the threshold. The units of the threshold are the PCM value of the media. Asterisk averages the energy over 20ms. Default = 12

fast_AMD_maximum_silence
Integer value in milliseconds. This is the maximum silence period that fast-AMD detection will tolerate. If no other detection is running, magusAMD will terminate setting MAGUSAMDSTATUS to MACHINE. (default 800)

fast_AMD_maximum_after_silence
Integer value in milliseconds. This is the maximum period fast-AMD detection will tolerate once the fast_AMD_silence_threshold is breached. If no other detection is running, and no match is made, magusAMD will terminate after fast_AMD_maximum_after_silence milliseconds, setting MAGUSAMDSTATUS to NOTSURE. fast_AMD_maximum_silence and fast_AMD_maximum_silence run independently of total_analysis_time. Fast-AMD detection will end if any of these expire. (default 400)

do_fast_AMD_learn
Boolean (yes/no). If do_fast_AMD_learn is set on and do_fast_AMD_template_capture is set on, then magusAMD will check to see if newly captured templates match any other captured templates (this occurs in a separate worker thread and so does not affect the performance of an individual magusAMD app instance). If matches are found then these templates are moved to the graduate directory under fast_AMD_read_dir (just one instance for each match is moved).. (default = no)

fast_AMD_employ_graduates
Boolean (yes/no). fast_AMD_employ_graduates determines whether the “graduate” templates are used in the standard templates match set for the fast-AMD operation. (default = yes)

fast_AMD_captured_template_max
Integer value. This is the number of captured templates that magusAMD retains. This prevents the storage media being consumed. Any associated media files are also removed. If this limit is reached then as new files are captured, the oldest ones are destroyed. This housekeeping operation is independent of do_fast_AMD_learn. (default = 5000)

fast_AMD_template_threshold
Integer value. This is the energy threshold that any template must exceed if it is to be captured. (default 1200)

status_variable_name
Text value for the name of an additional channel variable in which to report the outcome status. default = “”

cause_variable_name
Text value for the name of an additional channel variable in which to report the outcome cause. default = “”

Further information available from EMERTEC, call Linda Office: 01273 270270 Cell: 0776186180