Designer v4 EN



Introduction

 

 

 

The Integra Designer is the IDE (Integrated Development   Environment) to develop call flows.

With this tool is possible to build DialPlan flows, this flows tells the system how an incoming or outgoing call should behave.

This tool is developed in .NET Framework 3.5 (WPF), is a drag and drop application, each activity is a dialplan application and it's possible to change the application behavior via its properties. The application generates the code needed to be deployed on the server, and it also deploys and loads the call flows directly to and from the server.

Once a flow is deployed, it gets activated immediately.

It has a configuration file (located next to the exe, the folder selected to be installed), that is an xml file with data to connect to the server (Server

IP, Port, secure (if its https or http)). The Designer can be used as standalone application or connected to the server.

If connected to the server, every DSN, Audio, Queue, etc. created on the Administrator Portal, will be visible for the dialplan designer and those will be suggested by the system to be selected as options for the properties. You can also load and deploy dialplan flows, once a dialplan is loaded it will get the edition mode active, so every change made on edition mode, will be committed on the deploy and be active immediately.

If used as a standalone application, you won't have access to the suggested properties values, and you won't be able to load or deploy dialplan flows, anyways you can save the flow as an xml file to be loaded on a designer that has access to the server (most of the times a designer will be installed on the Database Server if the Operating System is Windows).

 

Basics

 

 

The basic toolbar is there for basic operations.


File Group

                    New creates a new flow (will lose all changes that were not saved)

                    Save saves as an xml file the flow

                    Open loads an xml saved file

                    Print prints the draw


Edit Group

                   Paste to paste any part or application copied or cutted (this includes connections and properties)

                   Copy to copy the selected portion of the draw

                   Delete to permanently delete them. You can also use the standard Ctrl V, C, X.


Alignment Group

These are basic tools to get the draw looks the way we want.

 

Arrange Group

There are useful when we have many items and they are overlapped, so we can manage their position, for editing or moving them.

 

Visualisation Path Helper

 

 

 

For a better understanding of the application path if you select a connection the color will turn to Light Green if is the default path, if is not, then the color would be red, this helps to check the flows easily.

Other important help tool is the tooltip, if you put the mouse over an activity the tooltip will show the description of the application, this is very useful for documentation porpoises.

 

 

 

These buttons are the basic actions of the designer, we have 2 for dialplan operations, Deploy and Load, and one for set the Configuration

(Communication with Integra Server), and we also have an option for debugging porpoises.

 

Configuration

 

 

 

The configuration is basic,

 

Server IP: IP of the Integra Portal Server, most of the times is the DataBase Server 

Port: default port of the Integra Portal Server is 8085, but could be changed if needed

Secure: is if the connection to the server is done via a secure channel or not, http or https

Online: if the Integra Server is accessible via the network

Licence: is the Licence provided by Integra, one licence for each PC

Code: is the code that needs Integra to generate the Licence for that Computer.


Extensions 

 

An extension can be one of two types: a literal or a pattern. 

A literal extension can be a number, like 123, and it can also contain the standard symbol and   #   that appear on ordinary telephones, a valid extension. 

Some telephone keypads have the special DTMF keys labeled   A,   B,   C   and   D, and extensions can be defined with these letters too. In fact, the name of an extension can contain any letter or number as well as some punctuation marks. 

Note that many VOIP telephones are able to "dial" extension "numbers" that may be any arbitrary text string, such as "Office". It is perfectly permissible to define an extension with the name   Office. 

 

Special extensions: 

 

i  : Invalid

s  : Start 

h  : Hangup 

t  : Timeout 

T  : AbsoluteTimeout 

 

These extensions are where the dialplan will jump if any of these cases are triggered. 

 

i: Used when dialling an unknown extension in a context or unknown input in an IVR menu 

s: Start. Used primarily for dialplans that enter a context with no other extension information. Think of a non DID phone line, call comes in, and we may only know that the line is ringing and nothing else. Even if you knewcallerid, you have to still have a place to start. You can also think about s as a place to place part of the dialplan that you don't want callers to get back to unless they have passed through other functions. (Example, analog lines won't tell us the DNIS (called number) so this is the only way to match an incoming call from a TDM analogical card) 

h: Hangup. Used to clean up a call. Could be used to play a goodbye message before hanging up. Also seemingly used by the calling card people to record end of call for billing purposes. h won't run if the call is parked. 

t: Timeout. Used for when calls have been inactive after a prompt was played. Also used to hang up a line that has been idle. 

T: AbsoluteTimeout. Used for calls that have been hung up due to an   AbsoluteTimeout   being reached. For example useful to play a notification with   Playback. 

Extension names are not limited to single specific extension "numbers". A single extension can also match   patterns. 

 

 

Patterns 

X matches any digit from 0-9 

Z matches any digit from 1-9 

N matches any digit from 2-9 

[1237-9] matches any digit or letter in the brackets(in this example, 1,2,3,7,8,9) 

. wildcard, matches one or more characters 

! wildcard, matches zero or more characters immediately 

 

Examples 

_NXXXXXX matches a NANP 7 digit telephone number such as 555-1212 

_1NXXNXXXXXX matches an area code and phone number preceeded by a one such as 1-860-555-1212 

_9011. matches any string of at least five characters that starts with 9011,but it does not match the 9011 its 

_9011! matches 9011 too 

_# matches a single # keypress 

_X! matches any numeric pattern of one or more digits (not * or #) 

_[*#0-9]! same as previous entry but also includes * and # characters 

_[*0-9]! same as the previous entry except excludes the # character 

s if there is no pattern at all, then using s will often match 

 

Do not use a pattern of _. as this will match everything including special extensions like i, t, h, etc. Instead use something like _X. or _X which will not match special extensions. 

Ok, so a "context" has a name, such as "john". And in each context, you can define one or more "extensions". For each extension, you define a set of commands that are the ones that are done via the designer. 

Where do I define the context and extension of my diagram (flow)? Check Applications (Start Activity), is the base application that should always be in our flow, is the step 0. 

Flow Managment

Load

 

 

This window is for loading diaplan flows, this flows are grouped into contexts, and inside the contexts in extensions.

A context is a group of extensions, is just a name that groups them. One important thing to know is that when any device originates a call it enters the dialplan via the context that is in. All the flows together are the DIALPLAN.

The dialplan is the master plan of control or execution flow for all of its operations. It controls how incoming and outgoing calls are handled and routed.

 This is where you configure the behavior of all connections through your PBX.

The content of the dialplan is organized in sections, which can be either for static settings and definitions or for executable dialplan components in which case they are referred to as contexts.

A special type of contexts are macros, label by a user defined name prefixed with   macro-XXX. These are reusable execution patterns, like procedures in a programming language.

 

For example if I have configured a SIP Agent on the Administrator Portal, the name of the context that gets in the configuration is the one that when that agent tries to place a call, tat number dialed will try to match an extension on that context if exists, if it doesn't exists the called will fail, if there is no matching for the extension on that context the call will also fail.

Deploy

 

 

 

This Window is for deploying the dialplan, these means, when the flow is ready for testing or production you can deploy it immediately and get it active.

This only needs a description of the flow to be saved.

There are two possibilities here; one is when you created a new flow, which will save a new record on the dialplan, the other option is that you opened (load) a flow from the server, and you get the flow in edition mode, you can make any change you like and then deploy the changes.

Save to Disk

 You can also save the flow to a file, this will save your work to be able to open it later to be deployed or for backup porpouses.

Applications


 

Calls

Answer

Application to answer a call.

Properties:

Delay ms: millisecs to delay the answer.

Useful when you hear audio that starts early that the answer, you can delay the answer to get the full playback for example.

 

 Busy

Busy tone.


 Dial

Application to dial, place a call. Attempt to connect to another device or endpoint and bridge the call.

This application will place calls to one or more specified channels. As soon as one of the requested channels answers, the originating channel will be answered, if it has not already been answered. These two channels will then be active in a bridged call. All other channels that were requested will then be hung up. Unless there is a timeout specified, the Dial application will wait indefinitely until one of the called channels answers, the

user hangs up, or if all of the called channels are busy or unavailable. Dialplan executing will continue if no requested channels can be called, or if the timeout expires. This application will report normal termination if the originating channel hangs up, or if the call is bridged and either of the parties in the bridge ends the call.

Properties:

type:type of channel "DAHDI", "SIP", "IAX2", "H323". (can contains the group ex. DAHDI/G1)

identifier: number to dial. w is 0.5 seconds of wait ex: 9002324w1001 timeout: wait for an answer.

Options: one or more of the following options.

 

Options:

A(X): x - The file to play to the called party, Play an announcement to the called party, where <x> is the prompt to be played

C: Reset the call detail record (CDR) for this call.

c: If the Dial() application cancels this call, always set the flag to tell the channel driver that the call is answered elsewhere.

d: Allow the calling user to dial a 1 digit extension while waiting for a call to be answered. Exit to that extension if it exists in the current context, or the context defined in the ${EXITCONTEXT} variable, if it exists.

D([called][:calling]): Send the specified DTMF strings after the called party has answered, but before the call gets bridged. The <called> DTMF

string is sent to the called party, and the <calling> DTMF string is sent to the calling party. Both arguments can be used alone. e: Execute the 'h' extension for peer after the call ends

f: Force the callerid of the calling channel to be set as the extension associated with the channel using a dialplan 'hint'. For example, some

PSTNs do not allow CallerID to be set to anything other than the number assigned to the caller.

F([[context^]exten^]priority): When the caller hangs up, transfer the called party to the specified destination and continue execution at that location. If no parameter provided, will continue in the next exten

g: Proceed with dialplan execution at the next priority in the current extension if the destination channel hangs up. 

G([[context^]exten^]priority): If the call is answered, transfer the calling party to the specified <priority> and the called party to the specified<priority> plus one.

NOTE: You cannot use any additional action post answer options in conjunction with this option. h: Allow the called party to hang up by sending the '*' DTMF digit.

H: Allow the calling party to hang up by hitting the '*' DTMF digit.

i: Asterisk will ignore any forwarding requests it may receive on this dial attempt.

k: Allow the called party to enable parking of the call by sending the DTMF sequence defined for call parking in "features.conf".

K: Allow the calling party to enable parking of the call by sending the DTMF sequence defined for call parking in "features". (see features generaly

*3 to park a call and *0 to disconnect) L(x[:y[:z]]):

x - Maximum call time, in milliseconds y - Warning time, in milliseconds

z - Repeat time, in milliseconds

Limit the call to <x> milliseconds. Play a warning when <y> milliseconds are left. Repeat the warning every <z> milliseconds until time expires. This option is affected by the following variables

${LIMIT_PLAYAUDIO_CALLER}:yes,no

 If set, this variable causes Asterisk to play the prompts to the caller.

 ${LIMIT_PLAYAUDIO_CALLEE}:    yes,no

 If set, this variable causes Asterisk to play the prompts to the callee.

 ${LIMIT_TIMEOUT_FILE}:    filename

 If specified, <filename> specifies the sound prompt to play when the timeout is reached. If not set, the time remaining will be announced.

 ${LIMIT_CONNECT_FILE}:    filename

 If specified, <filename> specifies the sound prompt to play when the call begins. If not set, the time remaining will be announced.

 ${LIMIT_WARNING_FILE}:    filename

 If specified, <filename> specifies the sound prompt to play as a warning when time <x> is reached. If not set, the time remaining will be announced.

 

m([class]): Provide hold music to the calling party until a requested channel answers. A specific music on hold <class>, specified on the

Administrator.

M(macro[arg[...]]):    macro - Name of the macro that should be executed.

arg - Macro arguments

Execute the specified <macro> for the *called* channel before connecting to the calling channel. Arguments can be specified to the Macro using

'^' as a delimiter. The macro can set the variable

${MACRO_RESULT} to specify the following actions after the macro is finished executing:

${MACRO_RESULT}: If set, this action will be taken after the macro finished executing. ABORT: Hangup both legs of the call

CONGESTION: Behave as if line congestion was encountered

BUSY: Behave as if a busy signal was encountered

CONTINUE: Hangup the called party and allow the calling party to continue dialplan execution at the next priority 

GOTO:<context><exten><priority>: Transfer the call to the specified destination.

 

You cannot use any additional action post answer options in conjunction with this option. Also, pbx services are not run on the peer (called)

channel, so you will not be able to set timeouts via the TIMEOUT function in this macro. n: This option is a modifier for the call screening/privacy mode.

(See the 'p' and 'P' options.) It specifies that no introductions are to be saved in the "priv-callerintros" directory.

 

N: This option is a modifier for the call screening/privacy mode. It specifies that if Caller*ID is present, do not screen the call. o: Specify that the Caller*ID that was present on the *calling* channel be set as the Caller*ID on the *called* channel.

p: This option enables screening mode. This is basically Privacy mode without memory.

r: Indicate ringing to the calling party, even if the called party isn't actually ringing. Pass no audio to the calling party until the called channel has answered.

S(x): Hang up the call <x> seconds *after* the called party has answered the call.

t: Allow the called party to transfer the calling party by sending the DTMF sequence defined in "features" (see features generaly ## to attended transfer, #* for blind transfer).

T: Allow the calling party to transfer the called party by sending the DTMF sequence defined in "features". (see features generaly ## to attended transfer, #* for blind transfer)

x: Allow the called party to enable recording of the call by sending the DTMF sequence defined for one-touch automixmonitor in "features” (generally **)

X: Allow the calling party to enable recording of the call by sending the DTMF sequence defined for one-touch automixmonitor in "features” (generally **)

URL: The optional URL will be sent to the called party if the channel driver supports it. Check variables for (DIALSTATUS, DIALEDTIME, ANSWEREDTIME)

D():. When progress DTMF is present, those values are sent immediately upon receiving a PROGRESS message regardless if the call has been answered or not. 

a: to answer the calling channel before any announcements or macros are executed.

 

 MeetMe (Conference) 

Application for Conferences. 

 

Properties: confno: number of the conference pin: password of the conference

options: one or more of the following options

 

Options: 

'1' — disable "you are currently the only person in this conference" message for first member

'a' — set admin mode

'A' — set marked mode

'b' — run AGI script specified in ${MEETME_AGI_BACKGROUND} Default: conf-background.agi

'c' — announce user(s) count on joining a conference

'd' — dynamically add conference

'D' — dynamically add conference, prompting for a PIN At the pin prompt, if the user does NOT want a pin assigned to the conference, they should hit the # key.

'e' — select an empty conference

'E' — select an empty pinless conference

'F' — Pass DTMF through the conference.

'i' — announce user join/leave with review

'I' --announce user join/leave without review

'M' — enable music on hold when the conference has a single caller

'm' — set monitor only mode (Listen only, no talking)

'p' — allow user to exit the conference by pressing '#'

'P' — always prompt for the pin even if it is specified

'q' — quiet mode (don't play enter/leave sounds)

'r' — Record conference (records as ${MEETME_RECORDINGFILE}   using format ${MEETME_RECORDINGFORMAT}). Default filename is meetme-conf-rec-${CONFNO}-${UNIQUEID}

and the default format is wav

's' — Present menu (user or admin) when '*' is received ('send' to menu)

't' — set talk only mode. (Talk only, no listening)

'T' — set talker detection (sent to manager interface and meetme list)

'v' — video mode (this option currently does nothing at all)

'w' — wait until the marked user enters the conference

 

All other connected users will hear MusicOnHold until the marked user enters.

'X' — allow user to exit the conference by entering a valid single digit extension of the context specified in ${MEETME_EXIT_CONTEXT} or the current context if that variable is not defined. Due to a bug (see 5773 and 5631) this option didn't work in Asterisk v1.2.0.

'x' — close the conference when last marked user exits

'G' - to play an announcement before joining a conference.


 Queue 

 

Queues, ACD. Properties:

queuename: name of the queue

URL: send url.

announceoverride: change announce sound timeout: timeout to be on the queue

AGI: execute agi script when the call is answered macro: execute macro when the call is answered gosub: go to subroutine

rule:

options: one or more of the following options.

Option:

 

d — data-quality (modem) call (minimum delay).

C — Mark all calls as "answered elsewhere" when cancelled. h — allow callee to hang up by pressing *.

H — allow caller to hang up by pressing *.

n — no retries on the timeout; will exit this application and go to the next step. 

r — ring instead of playing MOH.

R – stop MOH and ring when an agent is ringing 

t — allow the called user to transfer the calling user. T — allow the calling user to transfer the call.

w — allow the called user to write the conversation to disk via Monitor. W — allow the calling user to write the conversation to disk via Monitor. c — continue in the dialplan if the callee hangs up

i — ignore call forward requests from queue members and do nothing when they are requested

k — Allow the called party to enable parking of the call by sending the DTMF sequence defined for call parking in features.conf K — Allow the calling party to enable parking of the call by sending the DTMF sequence defined for call parking in features.conf x — allow the called user to write the conversation to disk via MixMonitor

X — allow the calling user to write the conversation to disk via MixMonitor


 QueueUpdate

 

Application used for update realtime and historic data for Outbound Queues, this application is used on h extension because is when the call has all the data needed to save to the database and update on the realtime monitoring. Note: don’t share queues for inbound and outbound to get exact data on campaigns.

 

Properties:

Queue: Name of the queue to update the data, usually a variable is set here.

Dialed Number: The dialed number, usually a variable that is set before with EXTEN.


 SetCallerPresentation

 

Sets the CallerPresentation parameter

 

allowed_not_screened : Presentation Allowed, Not Screened 

allowed_passed_screen : Presentation Allowed, Passed Screen 

allowed_failed_screen : Presentation Allowed, Failed Screen 

allowed : Presentation Allowed, Network Number 

prohib_not_screened : Presentation Prohibited, Not Screened

prohib_passed_screen : Presentation Prohibited, Passed Screen 

prohib_failed_screen : Presentation Prohibited, Failed Screen

prohib : Presentation Prohibited, Network Number

unavailable : Number Unavailable


 VoiceMail

 

Application to Leave a VoiceMail to a User.

 

Properties:

boxnumber: mailbox, typically phone number context: context of voicemail

flags: one or more of the following options


flags:

 

s: The letter s, if present, causes the instructions ("Please leave your message after the tone. When done, hang up, or press the pound key.") to be skipped.

u: The letter u, if present, causes the unavailable message to be played. By default, the message says, "The person at extension ... 1234 ... is unavailable," but the mailbox owner may record their own unavailable message with the VoicemailMain command.

b: The letter b, if present, causes the busy message to be played. By default, the message says, "The person at extension ... 1234 ... is busy."


 VoiceMailMain

 

Aplicacton for voicemail system, listen and configure voicemail. It has an interactive menu.

 

Properties:

mailbox: box, generaly phone number

context: context of voicemail, If a context is specified, logins are considered in that context only. options: one or   more of the following options.

 

Options:

 

p -   Consider   the   mailbox   parameter   as   a   prefix   to    the    mailbox   that is   entered   by   the   caller.

g(#) -   Use   the   specified   amount   of   gain   when    recording    a   voicemail message.   The   units   are whole-number   decibels   (dB).

S -   Skip   checking   the   passcode   for    the    mailbox.

 

Menu

 

 1    Read voicemail messages

 3    Advanced

 1    Reply

 2    Call back(1)

 3    Envelope

 4    Outgoing call(1)

 5    Send Message (only available if sendvoicemail=yes in voicemail.conf)

 4    Play previous message

 5    Repeat current message

 6    Play next message

 7    Delete current message

 8    Forward message to another mailbox

 1    Use Voicemailnumber (only available if usedirectory=yes in voicemail.conf)

 2    Use Voicemail Directory (only available if usedirectory=yes in voicemail.conf)

 9    Save message in a folder

 0    Save in new Messages

 1    Save in old Messages

 2    Save in Work Messages

 3    Save in Family Messages

 4    Save in Friends Messages

 ***    Help; during msg playback: Rewind

 #    Exit; during msg playback: Skip forward

 2    Change folders

 0    Switch to new Messages

 1    Switch to old Messages

 2    Switch to Work Messages

 3    Switch to Family Messages

 4    Switch to Friends Messages

 3    Advanced Options

 5    Send Message (only available if sendvoicemail=yes in voicemail.conf)

 1    Use Voicemailnumber (only available if usedirectory=yes in voicemail.conf)

 2    Use Voicemail Directory (only available if usedirectory=yes in voicemail.conf)

 0    Mailbox options

 1    Record your unavailable message

 2    Record your busy message

 3    Record your name

 4    Record your temporary message (new in Asterisk v1.2)

 1    Record your temporary message

 2    Erase your temporary message (going back to the standard message)

 5    Change your password

 ***    Return to the main menu

 ***    Help

 #    Exit

 After recording a message (incoming message, busy/unavail greeting, or name)

 1 - Accept

 2 - Review

 3 - Re-record

 0 - Reach operator(1) (not available when recording greetings/name)

 While listening to a recorded voicemail message: Press # to fastforward, or * to rewind.


 Read

 

To make menus, adds a #-terminated string of digits a certain number of times from the user in to the given variable.

Properties:

 

Variable: variable where the user's response will be stored. 

filename: file to play before reading digits.

maxdigits: maximum acceptable number of digits. Stops reading after maxdigits have been entered (without requiring the user press the '#' key). Defaults to 0 - no limit - wait for the user press the '#' key. Any value below 0 means the same. Max accepted value is 255. 

option: may be 'skip' to return immediately if the line is not up, or 'noanswer' to read digits even if the line is not up.

attempts: if greater than 1, that many attempts will be made in the event no data is entered. 

timeout: Timeout in seconds. If greater than 0, that value will override the default timeout.

Read should disconnect if the function fails or errors out.

 ReceiveFax

Fax Reception:

The tiff file is generated in the pbx at: /var/spool/asterisk/monitor/${guid}.tif

Requiere to generate a GUID before using this application.


 SendFax

Sends a Fax :

The tiff file is obtained in the pbx at: /var/spool/asterisk/monitor/${guid}.tif

Requiere to generate a GUID before using this application and convert the file provided to a tif format and with the guid name to the correct folder. Also involves to generate a call to the destination and the fax context that handles this interaction.


 SetCallerID 

Set CallerID properties:

Properties:

Property: num,name,all,ANI,DNID,RDNIS

Value: value for the selected property.


SMS

Send or Receive SMS.

Properties:

aanswer, i.e. send initial FSK packet.

sact as service centre talking to a phone.


AMD (Answering Machine Detect)

This application attempts to detect answering machines at the beginning of outbound calls. Simply call this application after the call has been answered (outbound only, of course).

 

Properties:

'initialSilence' is the maximum silence duration before the greeting. If exceeded then MACHINE.

'greeting' is the maximum length of a greeting. If exceeded then MACHINE.

'afterGreetingSilence' is the silence after detecting a greeting. If exceeded then HUMAN.

'totalAnalysisTime' is the maximum time allowed for the algorithm to decide on a HUMAN or MACHINE.

'minimumWordLength'is the minimum duration of Voice to considered as a word.

'betweenWordsSilence' is the minimum duration of silence after a word to considere the audio what follows as a new word. 

'maximumNumberOfWords'is the maximum number of words in the greeting. If exceeded then MACHINE.

'silenceThreshold' is the silence threshold.

This application sets the following channel variable upon completion: 

 

AMDSTATUS - This is the status of the answering machine detection. 

Possible values are: MACHINE | HUMAN | NOTSURE | HANGUP

AMDCAUSE - Indicates the cause that led to the conclusion. 

Possible values are:

TOOLONG-<%d total_time>

INITIALSILENCE-<%d silenceDuration>-<%d initialSilence> 

HUMAN-<%d silenceDuration>-<%d afterGreetingSilence> 

MAXWORDS-<%d wordsCount>-<%d maximumNumberOfWords> 

LONGGREETING-<%d voiceDuration>-<%d greeting>

Ringing

 This application will request that the channel indicate a ringing tone to the user.

Transfer

Transfer caller to remote extension.

Properties:

tech:    SIP, IAX, LOCAL, H323, DAHDI

dest:   destination number options:

The result of the application will be reported in the TRANSFERSTATUS channel variable: 

SUCCESS Transfer   succeeded 

FAILURE Transfer   failed 

UNSUPPORTED Transfer   unsup


Progress 

This application will request that in-band progress information be provided to the calling channel. This is also known as "early audio" and "early B3". Note that early audio also needs to supported by your carrier in order to work for the caller.   Typically used in conjunction with   Playback   a its 'noanswer' option (previously 'n' option). The idea is send a welcome message without pay, the billing won't start because the line is not answer. Use Progress before Answer, and use Background or PlayBack applications witn noanswer option so the line is not automatically answer.


Pickup

Pickup a channel.

 

Properties:

Channels: Channel to Pickup if ringing, for grouping use ampersand, example: SIP/1001&SIP/1002


RetryDial

Place a call, retrying on failure allowing optional exit extension.

Attempt to place a call. If no channel can be reached, play the file defined by 'announce' waiting 'sleep' seconds to retry the call.   If the specified number of attempts matches 'loops' the call will continue with the next priority. 

If 'loops' is set to -1, the call will retry endlessly. While waiting, a 1 digit extension may be dialed. If the 1 digit extension exists in the context defined in ${EXITCONTEXT}, the call will exit the RetryDial application to that extension immmediately.'sleep' defaults to 10 seconds if any value less than 1 is supplied.   All the arguements after the 'loops' parameter are passed directly to dial application.

 

Properties:

announce: Name of the audio to reproduce when no channel can be completed. 

sleep: seconds to wait after a failed try to test the next time.

retries: cauantity of trys (-1 for ever)

dialargs: args of the dial application


Hangup

This application will hang up the calling channel.


Flash

Send a flash, a switchook flash (or link) is an on-hook condition that lasts no less than 200ms, and no more than 1200ms.   

Performs a flash on a DAHDI trunk. This can be used to access features provided on an incoming analogue circuit such as conference and call waiting. Use with SendDTMF() to perform external transfers.


Volume

The VOLUME application can be used to increase or decrease the tx(transmit) or rx(receive) gain    of   any   channel.


SendDTMF

Send DTMF through the channel. DTMF digits sent to a channel with half second pause It will pass all digits or terminate if it encounters an error.

 

Properties:

digits: digits 0-9,*#,abcd (w pause of 0.5s) 

timeout_ms: time betwen each digit. (default .25s) 

duration_ms: duration of each digit.


BlackList

Returns 1 if the dialed number is on the blacklist, otherwise returns 0. This app saves historical data of number that are on the list, there is also a report to check them.

Properties:

Result varname: Name of the variable to save the query result (1/0)


Originate

This application originates an outbound call and connects it to a specified extension or application. This application will block until the outgoing call fails or gets answered. At that point, this application will exit with the status variable set and dialplan processing will continue.
This application sets the following channel variable before exiting: ${ORIGINATE_STATUS}: This indicates the result of the call origination.
Possible values: FAILED,SUCCESS,BUSY,CONGESTION,HANGUP,RINGING,UNKNOWN: In practice, you should never see this value. 

 

Properties

tech_data - Channel technology and data for creating the outbound channel. For example, SIP/1234.

type - This should be 'app' or 'exten', depending on whether the outbound channel should be connected to an application or extension.

arg1 - If the type is 'app', then this is the application name. If the type is 'exten', then this is the context that the channel will be sent to.

arg2 - If the type is 'app', then this is the data passed as arguments to the application. If the type is 'exten', then this is the extension that the channel will be sent to.

arg3 - If the type is 'exten', then this is the priority that the channel is sent to. If the type is 'app', then this parameter is ignored.


 DISA

 

The DISA, Direct Inward System Access, application allows someone from outside   the telephone switch (PBX) to obtain an *internal* system dialtone and to   place calls from it as if they were placing a call from within the switch.    DISA plays a dialtone. The user enters their numeric passcode, followed by   the pound sign '#'. If the passcode is correct, the user is then given system   dialtone within <context> on which a call may be placed. If the user enters    an invalid extension and extension 'i' exists in the specified <context>,   it will be used.

Be aware that using this may compromise the security of your PBX.

 

Properties:

password:

If you need to present a DISA dialtone without entering a password,   simply set <passcode> to 'no-password' You may specified a <filename> instead of a <passcode>, this filename   must contain individual passcodes

context:

Specifies the dialplan context in which the user-entered extension will be matched. If no context is specified, the DISA application defaults the 'disa' context. Presumably a normal system will have a special

context set up for DISA use with some or a lot of restrictions.

cid:

Specifies a new (different) callerid to be used for this call.

 

options:

n: The DISA application will not answer initially.

p: The extension entered will be considered complete when a '#' is entered.


VirtualHold

Virtual Hold is an application used for clients to secure a position in the queue and hangup, when an agent is available the client will be called back. This application could also be used for other porpoises due to the power given by the parameters. When the Agent is called, the callerid will be VirtualHold and the callerid of the client that asked for the callback, the second call leg will fire and this will match the Context, Entension and Priority given by the parameters to make the phone call to the client.

  

Properties:

Channel: The channel for the first call leg, this could be for example an incoming did for a Queue, there the Virtual Channel will be created and will wait in the Queue until been answerd. 

Context:  to be used when the Channel is Answered

Extension: to be used with the context

Priority: to be used with the extension

CidText: Text to see on the callerid, this is useful so that the agent knows the queue that the calls belongs to. Example: Queue1, you can see on the callerid: VH Queue1 <CallerID>

 

Schedule: (Optional) if we can make an schedule call in the future is possible to add the date time for this example: 201111011800, this will make the phone call at year 2011 month 11 day 1 at 18 hours 0 minutes. The procedure is the same at  that given date and time the call to the channel will be made and when an agent is available will fire the call to the client.


ChannelRedirect

 

Redirects given channel to a dialplan target ,

Sends the specified channel to the specified extension priority

This application sets the following channel variables upon completion

${CHANNELREDIRECT_STATUS}: 

NOCHANNEL

SUCCESS

Are set to the result of the redirection

 

Properties:

Channel: The channel to redirect ex: DAHDI/1-1

Context to send the channel

Extension: to be used with the context 

Priority: to be used with the extension



ConfBridge

 

Like meetme is a conference application, targeted for videoconferences, audio conferences, and high quality codecs.

 

Properties:

Confno: The conference number

bridge_profile: The Bridge Brofile name from confbridge.conf. When left blank, a dynamically built Bridge Profile created by the CONFBRIDGE   dialplan function is searched for on the channel and, if available, used. If no dynamic profile is found, the "default_bridge" profile found in confbridge.conf is used.

user_profile: The User Profile name from confbridge.conf. When left blank, a dynamically built User Profile created by the CONFBRIDGE dialplan function is searched for on the channel and, if available, used. If no dynamic profile is present, the "default_user" profile found in confbridge.conf is used.

Menu: The Conference Menu name from confbridge.conf. No menu is applied by default if this option is left blank.


Page

 

Places outbound calls to the given <technology>/<resource> and dumps them into a conference bridge as muted participants. The original caller is dumped into the conference as a speaker and the room is destroyed when the original callers leaves.

 

Properties:

 Endpoints:  Technology/Resource[&Technology2/Resource2[&...]][,options[,timeout]]

 Technology/Resource

    Specification of the device(s) to dial. These must be in the format of 'Technology/Resource', where <Technology> represents a particular channel driver, and <Resource> represents a resource available to that

    particular channel driver.

Technology2/Resource2  Optional extra devices to dial inparallel If you need more then one enter them as Technology2/Resource2& Technology3/Resourse3&.....

 

options

    d: Full duplex audio

    i: Ignore attempts to forward the call

    q: Quiet, do not play beep to caller

    r: Record the page into a file (meetme option 'r')

    s: Only dial a channel if its device state says that it is 'NOT_INUSE'

    A(x):

        x - The announcement to playback in all devices

    Play an announcement simultaneously to all paged participants

    n: Do not play simultaneous announcement to caller (implies 'A(x)')

 

timeout

    Specify the length of time that the system will attempt to connect a call. After this duration, any intercom calls that have not been answered will be hung up by the system.


SipAddHeader

 

Adds a header to a SIP call placed with DIAL.

Remember to use the X-header if you are adding non-standard SIP headers, like 'X-Asterisk-Accountcode:'. Use this with care. Adding the wrong headers may jeopardize the SIP dialog.

Always returns '0'.

Properties:

Header: the header, example: Call-Info: answer-after=0 or Alert-Info: Ring Answer


SipRemoveHeader

 

Removes a header to a SIP call

 Remember to use the X-header if you are adding o removing non-standard SIP headers, like 'X-Asterisk-Accountcode:'. Use this with care. Adding the wrong headers may jeopardize the SIP dialog.

Always returns '0'.

Properties:

Headerthe header, example: Call-Info: answer-after=0 or Alert-Info: Ring Answer


 KAdjustforFax

Adjust the Channel for Faxes in Khomp devices.

GENERAL


Authenticate

This application asks the caller to enter a given password in order to continue dialplan execution. If the password begins with the '/' character, it is interpreted as a file which contains a list of valid passwords, listed 1 password per line in the file.

Properties:

password: password or /passwordfile 

maxdigits: max digits, 0 waits for #

options: a, set accountcode with the password on the CDR

m: interpret as password file delimited by : account:password one line for each, fi some matches it sets the accountcode.


CURL

Retrieves    the   contents   of   a   URL, REST WebServices

Properties:

 url: URL   to   retrieve

 postdata Optional   data   to   send   as   a   POST   (GET   is   default)

 is Post?: check if the web service is a POST Webservice

resultvariable: variable to store result


NoOp

This application does nothing. However, it is useful for debugging purposes.

This method can be used to see the evaluations of variables or functions without having any effect.


ODBC Query

 Execute SQL querys or Store Procedures to a defined DSN.

Properties:

Function: This is the DSN that was previosly created with the administrator. variable: name of the variable to store the result (see HASH on Variables) query: Query or SP to execute for "," use \,


SendURL

 

Send a URL through the channel if supported.

Requests client go to <URL> (IAX2) or sends the URL to the client (other channels). Result is returned in the ${SENDURLSTATUS} channel variable:

 

SUCCESS: URL successfully sent to client. 

FAILURE: Failed to send URL.

NOLOAD: Client failed to load URL (wait enabled). 

UNSUPPORTED: Channel does not support URL transport.

 

SendURL continues normally if the URL was sent correctly or if the channel does not support HTML transport. Otherwise, the channel is hung up.

 

Properties:

 URL: url to send

 option: w (Execution will wait for an acknowledgement that the URL has been loaded before continuing).


System Exec

Execute an Operating System command, (is like ejecute from shell)

Executes a command by using system(). If the command fails, the console should report a fallthrough. Result of execution is returned in the ${SYSTEMSTATUS} channel variable:

FAILURE: Could not execute the specified command. 

SUCCESS: Specified command successfully executed. 

 

Properties:

command: comand to execute and parameters


VoiceMail Authenticate

 Authenticate the voicemail, use password from mailbox created.

 Properties:

mailbox: generaly the same number context: voicemail context

options: s don't use initial audio


Wait

 This application waits for a specified number of <seconds>.

Properties:

 seconds:    number of seconds to wait, before continue in the dialplan.


NoCDR

Don't write CDR for this call.


Mail

 Send Mail 

Properties:

From Name: Name to show on from

To: destination subject: subject

Body: Html or plain text body

Ensure you have correctly configured Integra Server IP and Port on Designer for this application.

 

UserEvent 

Sends a UserEvent via AMI (Asterisk Manager Interface)

Properties: 

EventName: name of the event, usually 

CTI URL: url to open (Deprecated)

APP: application with parameters to execute (Deprecated)

 

Log

Send arbitrary text to a selected log level

Properties:

LogLevel: (   ERROR,   WARNING,   NOTICE,   DEBUG,    VERBOSE,   DTMF) 

Message: any message

 

AGI

Executes an   AGI   compliant application,   executes an   Asterisk Gateway Interface   compliant program on a    channel. AGI allows the PBX to external programs written in any language to control a telephony channel, play audio, read DTMF digits, etc. by communicating with the AGI protocol on stdin and stdout.   This application sets the following channel variable upon completion: AGISTATUS The status of the attempt to the run the AGI script text string, one of SUCCESS | FAILURE | NOTFOUND | HANGUP

 Properties:

Command: the entire command then a "," and arguments

 

PauseQueueMember

 

Pauses (blocks calls for) a queue member. The given interface will be paused

in the given queue. This prevents any calls from being sent from the queue

to the interface until it is unpaused with UnpauseQueueMember .  If no queuename is given, the interface is paused in every queue

it is a member of. The application will fail if the interface is not found.

This application sets the following channel variable upon completion:

${PQMSTATUS}: The status of the attempt to pause a queue member as a text

string.

    PAUSED

    NOTFOUND

Properties:

Queuename:  name of the queue to pause, empty if all

Interface: interface to pause (ex. SIP/1001)

Options:

Reason: reason to pause

 

UnPauseQueueMember

Unpauses (resumes calls to) a queue member. This is the counterpart to 'PauseQueueMember()' and operates exactly the same way, except it unpauses

instead of pausing the given interface.

This application sets the following channel variable upon completion:

${UPQMSTATUS}: The status of the attempt to unpause a queue member as a text

string.

    UNPAUSED

    NOTFOUND

Properties:

Queuename:  name of the queue to pause, empty if all

Interface: interface to pause (ex. SIP/1001)

Options:

Reason: reason to unpause

 MessageSend

 

Send a text message. The body of the message that will be sent is what is currently set to 'MESSAGE(body)'.

This application sets the following channel variables:


${MESSAGE_SEND_STATUS}: This is the message delivery status returned by this application.

  • INVALID_PROTOCOL: No handler for the technology part of the URI wasfound.
  • INVALID_URI: The protocol handler reported that the URI was not valid.
  • SUCCESS: Successfully passed on to the protocol handler, but delivery has not necessarily been guaranteed.
  • FAILURE: The protocol handler reported that it was unabled to deliver the message for some reason.

Properties:

to: A To URI for the message.
from: A From URI for the message if needed for the message technology being used to send this message.


NOTE: For SIP the from parameter can be a configured peer name or in the form of "display-name" <URI>.

Socket

Sockets makes a TCP connection over the network , this uses a Specific but usual protocol with the format of:

Base64 encoded message plus “\r\n\r\n” at the end to mark the finsish of the message. Then it gets the Response that are in Base64 and they are decoded and parse in the form of:

Var=Val\r\n

Var2=Val2\r\n

….

VarN=ValN\r\n

This are parsed and the VarX variables are injected in the flow with the respective value.

 

Properties:

Server:  server IP address

Port: Port to connect on the remote address

Message: Message for the protocol

 

Results:

The variables injected in the dialplan with their values.

 

INTEGRA

 

Start Activity 

Initial Activity of any Flow.

 Properties:

 Context: context for the flow

Extension: generally DNIS (or DID) to match a request from a phone or from a carrier, this could be numbers or letters, is useful to divide IVRs to make goto jumps using Extension as a Label.

 

GUID

 Gets a GUID (UUID), this application set automatically the variable ${guid} that will be available for that channel.

 

CDRCauseCode

Sets the CDR Cause Code of a call, useful to use in the special extension h

 

CDR Set GUID

Set the CDR column guid with the guid obtained for that channel.

 

CDR Type

 Sets the CDR call type, record (call with an associated recording), voicemail (a campaign voicemail), fax (an incoming fax), empty a call without a record.

 

CDR UserField

To set any kind of information that is needed to save on the CDR

 

CDR Campaign

To set the name of the campaign on the CDR

 

CDR amaflags

For billing: default, omit,billing, documentation

 

CDR Direction

To know the direction of a call (incoming, outgoing, internal)

 

CDR Carrier

To know the name of the carrier of the call.

 

Recording Identifier

Sets the recording identifier, usually ${guid}

 

RECORDING

 

ChanSpy

This application is used to listen to the audio from an Call or Channel. This includes the audio coming in and "out of the channel being spied on. If the 'chanprefix' parameter is specified, only channels beginning with this string will be spied upon.

While spying, the following actions may be performed:

 Dialing '#' cycles the volume level.

 Dialing '*' will stop spying and look for another channel to spy on.

 Dialing a series of digits followed by '#' builds a channel name to append to 'chanprefix'. For example, executing ChanSpy(SIP) and then dialing the digits '1234#' while spying will begin spying on the channel 'SIP/1234'.

 

NOTE that this feature will be overridden if the 'd' option is used

NOTE: The <X> option supersedes the three features above in that if a valid single digit extension exists in the correct context ChanSpy will exit to it. This also disables choosing a channel based on 'chanprefix' and a digit sequence.

 

Properties:

ScanSpec: (chanprefix)

Options: one or more of the following options.

Options:

c: This option allows custom DTMF to be set to cycle through the next available channel. By default this is still '*'.

b: Only spy on channels involved in a bridged call.

B: Instead of whispering on a single channel barge in on both channels involved in the call.

d: Override the typical numeric DTMF functionality and instead use DTMF to switch between spy modes.

4 - spy mode

5 - whisper mode

6 - barge mode

g(grp): grp - Only spy on channels in which one or more of the groups listed in <grp> matches one or more groups from the

${SPYGROUP} variable set on the channel to be spied upon.

NOTE: both <grp> and ${SPYGROUP} can contain either a single group or a colon-delimited list of groups, such as

'sales:support:accounting'.

n([mailbox][@context]): Say the name of the person being spied on if that person has recorded his/her name. If a context is specified, then that voicemail context will be searched when retrieving the name, otherwise the 'default' context be used when searching for the name (i.e. if SIP/1000 is the channel being spied on and no mailbox is specified, then '1000' will be used when searching for the name). 

q: Don't play a beep when beginning to spy on a channel, or speak the selected channel name.

r([basename]): Record the session to the monitor spool directory.

An optional base for the filename may be specified. The default is 'chanspy'.

s: Skip the playback of the channel type (i.e. SIP, IAX, etc) when speaking the selected channel name. v([value]): Adjust the initial volume in the range from '-4' to '4'. A negative value refers to a quieter setting. w: Enable 'whisper' mode, so the spying channel can talk to the spied-on channel.

W: Enable 'private whisper' mode, so the spying channel can talk to the spied-on channel but cannot listen to that channel. o: Only listen to audio coming from this channel.

X: Allow the user to exit ChanSpy to a valid single digit numeric extension in the current context or the context specified by the

${SPY_EXIT_CONTEXT} channel variable. The name of the last channel that was spied on will be stored in the ${SPY_CHANNEL}

variable.

e(ext): Enable enforced mode, so the spying channel can only monitor extensions whose name is in the <ext> : delimited list.

x(): This option allows DTMF to be set to exit the application.

S: makes the application automatically exit once it hits a point where no more channels are available to spy on.

E: spies on a single channel and exits when that channel hangs up.


Exten Spy

Listen to a channel, and optionally whisper into it.

 Properties:

 Exten: Specify extension.

Context: Optionally specify a context, defaults to 'default'. Options: one or more of the following options.

Options:

b: Only spy on channels involved in a bridged call.

B: Instead of whispering on a single channel barge in on both channels involved in the call.

d: Override the typical numeric DTMF functionality and instead use DTMF to switch between spy modes.

4 - spy mode

5 - whisper mode

6 - barge mode

g(grp): Only spy on channels in which one or more of the groups listed in <grp> matches one or more groups from the ${SPYGROUP} variable set on the channel to be spied upon.

NOTE: both <grp> and ${SPYGROUP} can contain either a single group or a colon-delimited list of groups, such as 'sales:support:accounting'. n([mailbox][@context]): Say the name of the person being spied on if that person has recorded his/her name. If a context is specified, then that voicemail context will be searched when retrieving the name, otherwise the 'default' context be used when searching for the name (i.e. if SIP/1000 is the channel being spied on and no mailbox is specified, then '1000' will be used when searching for the name).

q: Don't play a beep when beginning to spy on a channel, or speak the selected channel name.

r([basename]): Record the session to the monitor spool directory. An optional base for the filename may be specified. The default is 'chanspy'. s: Skip the playback of the channel type (i.e. SIP, IAX, etc) when speaking the selected channel name.

v([value]): Adjust the initial volume in the range from '-4' to '4'. A negative value refers to a quieter setting. w: Enable 'whisper' mode, so the spying channel can talk to the spied-on channel.

W: Enable 'private whisper' mode, so the spying channel can talk to the spied-on channel but cannot listen to that channel. o: Only listen to audio coming from this channel.

X: Allow the user to exit ChanSpy to a valid single digit numeric extension in the current context or the context specified by the

${SPY_EXIT_CONTEXT} channel variable. The name of the last channel that was spied on will be stored in the ${SPY_CHANNEL} variable. e(ext): Enable enforced mode, so the spying channel can only monitor extensions whose name is in the <ext> : delimited list.


MixMonitor Start/Stop

Record a call and mix the audio during the recording. Records the audio on the current channel to the specified file.

${MIXMONITOR_FILENAME}: Will contain the filename used to record. 

Properties:

Filename: If <filename> is an absolute path, or if not uses the default. Options: one of the followings options

b: Only save audio to the file while the channel is bridged.

NOTE: Does not include conferences or sounds played to each bridged party

v(x): Adjust the heard volume by a factor of <x> (range '-4' to '4')

V(x) : Adjust the spoken volume by a factor of <x> (range '-4' to '4')

W(x) : Adjust both, heard and spoken volumes by a factor of <x> (range '-4' to '4') command Will be executed when the recording is over.

Any strings matching '^{X}' will be unescaped to ${X}.

All variables will be evaluated at the time MixMonitor is called

 


Monitor Start/Stop

Monitor a channel, Used to start monitoring a channel. The channel's input and output voice packets are logged to files until the channel hangs up or monitoring is stopped by the StopMonitor application.

Properties:

Fileextension: optional, if not set, defaults to "wav"

BaseFile: if set, changes the filename used to the one specified. Flags: one or more of the following 

Options:

m - when the recording ends mix the two leg files into one and delete the two leg files. If the variable MONITOR_EXEC is set, the application referenced in it will be executed instead of soxmix and the raw leg files will NOT be deleted automatically. soxmix or MONITOR_EXEC is handed

3 arguments, the two leg files and a target mixed file name which is the same as the leg file names only without the in/out designator. If MONITOR_EXEC_ARGS is set, the contents will be passed on as additional arguments to MONITOR_EXEC Both MONITOR_EXEC and the Mix flag can be set from the administrator interface

b - Don't begin recording unless a call is bridged to another channel i - Skip recording of input stream (disables m option)

o - Skip recording of output stream (disables m option)

By default, files are stored to /var/spool/asterisk/monitor/.

Returns -1 if monitor files can't be opened or if the channel is already monitored, otherwise 0.


 Record

 

Record to a file.

If filename contains '%d', these characters will be replaced with a number incremented by one each time the file is recorded. Use 'core show file formats' to see the available formats on your system User can press '#' to terminate the recording and continue to the next priority. If the user hangs up during a recording, all data will be lost and the application will terminate.

${RECORDED_FILE}: Will be set to the final filename of the recording.

${RECORD_STATUS}: This is the final status of the command

DTMF:A terminating DTMF was received ('#' or '*', depending upon option 't') SILENCE:The maximum silence occurred in the recording.

SKIP:The line was not yet answered and the 's' option was specified. TIMEOUT:The maximum length was reached.

HANGUP:The channel was hung up.

ERROR:An unrecoverable error occurred, which resulted in a WARNING to the logs.

 

Properties:

 Format: Is the format of the file type to be recorded (wav, gsm, etc). Silence: Is the number of seconds of silence to allow before returning.

Maxduration: Is the maximum recording duration in seconds. If missing or 0 there is no maximum. Options: one or more of the followins

 

Options:

a: Append to existing recording rather than replacing.

n: Do not answer, but record anyway if line not yet answered. 

q: quiet (do not play a beep tone).

s: skip recording if the line is not yet answered.

t: use alternate '*' terminator key (DTMF) instead of default '#'

x: Ignore all terminator keys (DTMF) and keep recording until hangup. 

k: Keep recording if channel hangs up.


SOUNDS


Background

 

Play an audio file while waiting for digits of an extension to go to.

This application sets the following channel variable upon completion: ${BACKGROUNDSTATUS}: The status of the background attempt as a text string. SUCCESS | FAILED

 

Properties:

Langoverride: Explicitly specifies which language to attempt to use for the requested sound files. Context: This is the dialplan context that this application will use when exiting to a dialed extension. Options: one or more of the following options.

Options:

s: Causes the playback of the message to be skipped if the channel is not in the 'up' state (i.e. it hasn't been answered yet). If this happens, the application will return immediately.

n: Don't answer the channel before playing the files.

 m: Only break if a digit hit matches a one digit extension in the destination context.

 Important: you can use folders giving the exact location or using as a start point language folder. Example: digits/Welcome

 PlayBack

Play a file.

 This application sets the following channel variable upon completion: ${PLAYBACKSTATUS}:   The status of the playback attempt as a text string. SUCCESS FAILED

Properties:

 Filename: name of the audio file

 Options: one or more of the following options

Options:

 Comma separated list of options skip: Do not play if not answered

noanswer: Playback without answering, otherwise the channel will be answered before the sound is played. 


NOTE: Not all channel types support playing messages while still on hook.

Important: you can use folders giving the exact location or using as a start point language folder. Example: digits/Welcome

 

 

SayAlpha

This application will play the sounds that correspond to the letters of the given <string>.

SayDigits

This application will play the sounds that correspond to the digits of the given number. This will use the language that is currently set for the channel.

SayNumber

This application will play the sounds that correspond to the given <digits>. Optionally, a <gender> may be specified. This will use the language that is currently set for the channel.

Properties:

 Number: number to say

 Gender: f (female), m (male), n (neutral) ex spanish: 1 (una, un, uno)

SayPhonetic

 This application will play the sounds from the phonetic alphabet that corresponds to the letters in the given <string>.


SayUnixTime

Uses some of the sound files stored in "/var/lib/asterisk/sounds" to construct a phrase saying the specified date and/or time in the specified format.

Properties:

 

UnixTime: DateTime in unix time (epoch), default is actual if empty

Timezone:timezone, default the server

Format: see format options

 

Formats:

 

A or a - Day of week (Saturday, Sunday, ...)

B or b or h - Month name (January, February, ...)

d or e - numeric day of month (first, second, ..., thirty-first) Y - Year

I or i - Hour, 12 hour clock

H - Hour, 24-hour clock (single digit hours preceded by "oh")

k - Hour, 24 hour clock (single digit hours NOT preceded by "oh") M - Minute

m - Month number Say number of month (first - twelfth) P or p - AM or PM

Q - "today", "yesterday" or ABdY

q - ""(for today), "yesterday", weekday, or ABdY R - 24 hour time, including minute

S seconds

 

Example 

tz: EST5EDT

format: ABdY \'digits/at\' IMp

Actual Time in US Eastern Standard Time or Eastern Daylight Time


PlayTones Start/Stop

Play tones asynchronically and Stop them. Plays a tone list. Execution will continue with the next step in the dialplan immediately while the tones continue to play.

 Properties:

 tone: name or tonelist Ex. congestion,ring,busy,dial or 425/50,0/50


PlayMusicOnHold Start/Stop

 Starts playing music on hold, uses default music class for channel. Starts playing music specified by class. If omitted, the default music source for the channel will be used. Always returns 0. Is asynchronically.

Properties:

 ClassName: name of the class added on the administrator.

 

 

 

MusicOnHold

 Plays hold music specified by class. If omitted, the default music source for the channel will be used. If duration is given, hold music will be played specified number of seconds. If duration is ommited, music plays indefinitely. Returns 0 when done, -1 on hangup.

Properties:

 ClassName: name of the class added on the administrator. 

 Duration: duration in seconds of the music to play

 

TTS AND ASR

 

VerbioFreeChannel

 

Free Verbio resources (memory and licences).

Please do not forget to run this application at the end of every call.

 

VerbioLoadVcb

Load vocabulary.

Properties:

gram_file : grammar file

gram_type : grammar type (ISOLATED, CONNECTED, ABNF or BUILTIN)

config : 

ASR config lang : 

ASR language options : 

v (verbosity on)

n (do not hangup on Verbio error)

This function will set a channel var (VVCB_HANDLE) containing the id (vcb_handle) of the loaded vocabulary (see VerbioUnloadVcb to see why we need this handle).

 

 VerbioPrompt

Synthetise a text using Verbio TTS engine.

Properties:

text_or_file: text or file (see options) to synth 

lang : tts language

speaker : tts speaker

 

Options:

v (verbosity on)

f (tread text_or_file parameter as a text file to read from)

p (enable pause/resume on dtmf default key '#'. Use: p0,p1,..,p#,p* to specify a key, p. will enable all keys)

s (enable stop prompt on dtmf default key '#'. Use: s0,s1,..,s#,s* to specify a key, s. will enable all keys)

n (do not hangup on Verbio error)

If stop prompt ('s' option) is enabled, the following channel vars will be set:

 VDTMF_DETECTED (TRUE if user has pressed stop key or FALSE)

 VDTMF_RESULT (if VDTMF_DETECTED = TRUE, will contain the pressed key 0,1,2,3,4,5,6,7,8,9,*,#)


VerbioPromptAndRec. 

 

Properties:

text_or_file: text or file (see options) to synth

initsil : Initial silence (max duration of initial silence 10ms units) 

maxsil : Max silence (max duration of final silence 10ms units)

tts_lang : TTS language

tts_spkr : TTS speaker 

asr_conf : ASR config 

asr_lang : ASR language

abs_timeout : Absolute timeout (seconds)

 

Options : 

v (verbosity on)

f (tread text_or_file parameter as a text file to read from)

b (beep before rec no sense when using bargein)

g (bargein activated, user can interrupt the system will disable beep)

i (immediately stop tts on voice detection will enable bargein)

d (enable dtmf detection)

n (do not hangup on Verbio error)

Please, when using bargein, be very carefull with initsil and maxsil parameters. If you do not properly set them you may run into problems like recognition stopping (prior to finish) our prompt (if user does not speak). initsil must be high enough to allow the user to listen our (full) prompt.

Also remember that you must execute VerbioLoadVcb app prior to launch recognition.

In order to check the recognition result, you need to check (once VerbioPromptAndRec has finished)

The following channel vars:

VASR_WORDS : Number of recognized words ( n ) 

VASR_INDEXn : Index (in grammar) of the n-word recognized. 

VASR_RESULTn : n-Result of recognition.

VASR_SCORE : n-score of recognition.

VASR_UTTERANCEn : n-utterance. 

VASR_WEIGHT : n-weight VASR_RULE : n-rule

 

If dtmf detection ('d' option) is enabled, the following channel vars will be set: 

VDTMF_DETECTED (TRUE or FALSE)

VDTMF_RESULT (if VDTMF_DETECTED = TRUE, will contain the pressed key 0,1,2,3,4,5,6,7,8,9,*,#)

 

 

You are also allowed to set DTMF max length and DTMF terminator via the following dialplan variables: 

VERBIO_DTMF_MAXLEN

VERBIO_DTMF_TERMINATOR

 

Note: If 'keep_recorded_files' is enabled in 'verbio.conf', you can check the recorded file name via

VASR_REC_FILE dialplan variable (once the recognition application has finished).



 VerbioRec

 Recognize application, Launch a recognition.

 Properties:

 config : ASR config

lang : ASR language

initsil : Initial silence (max duration of initial silence 10ms units) 

maxsil : Max silence (max duration of final silence 10ms units) abs_timeout : Absolute timeout (seconds)

options : v (verbosity on)

b (beep before recognition)

d (enable dtmf detection)

n (do not hangup on Verbio error)

You /must/ execute VerbioLoadVcb app prior to Launch any recognition.

 

In order to check the recognition result, you need to check (once VerbioRec has finished) the following channel vars:

 

VASR_WORDS : Number of recognized words ( n ) . 

VASR_INDEXn : Index (in grammar) of the n-word recognized. 

VASR_RESULTn : n-Result of recognition.

VASR_SCORE : n-score of recognition. 

VASR_UTTERANCEn : n-utterance. 

VASR_WEIGHT : n-weight 

VASR_RULE : n-rule

If dtmf detection ('d' option) is enabled, the following channel vars will be set: VDTMF_DETECTED (TRUE or FALSE)

VDTMF_RESULT (if VDTMF_DETECTED = TRUE, will contain the pressed key(0,1,2,3,4,5,6,7,8,9,*,#) You are also allowed to set DTMF max length and DTMF terminator via the following dialplan variables:

VERBIO_DTMF_MAXLEN

VERBIO_DTMF_TERMINATOR

 

Note: If 'keep_recorded_files' is enabled in 'verbio.conf', you can check the recorded file name via

 VASR_REC_FILE dialplan variable (once the recognition application has finished).

 

VerbioStreamAndRec

VerbioStreamAndRec.

 Properties:

 audio_file : Audio file to stream.

initsil : Initial silence (max duration of initial silence 10ms units) 

maxsil : Max silence (max duration of final silence 10ms units) 

asr_conf : ASR config

asr_lang : ASR language

abs_timeout : Absolute timeout (seconds)

 

Options : 

 

v (verbosity on)

b (beep before rec no sense when using bargein)

g (bargein activated, user can interrupt the system will disable beep)

i (immediately stop stream on voice detection will enable bargein)

d (enable dtmf detection)

n (do not hangup on Verbio error)

Please, when using bargein, be very carefull with initsil and maxsil parameters. If you do not properly set them you may run into problems like recognition stopping (prior to finish) our audio file (if user does not speak). initsil must be high enough to allow the user to listen our (full) audio file. Also remember that you /must/ execute VerbioLoadVcb app prior to launch a recognition.

In order to check the recognition result, you need to check (once VerbioPromptAndRec has finished)

the following channel vars:

VASR_WORDS : Number of recognized words n   . 

VASR_INDEXn : Index (in grammar) of the n-word recognized. 

VASR_RESULTn : n-Result of recognition.

VASR_SCORE : n-score of recognition. 

VASR_UTTERANCEn : n-utterance. 

VASR_WEIGHT : n-weight 

VASR_RULE : n-rule

If dtmf detection ('d' option) is enabled, the following channel vars will be set: VDTMF_DETECTED (TRUE or FALSE)

VDTMF_RESULT (if VDTMF_DETECTED = TRUE, will contain the pressed key( 0,1,2,3,4,5,6,7,8,9,*,#) You are also allowed to set DTMF max length and DTMF terminator via the following dialplan variables:

 VERBIO_DTMF_MAXLEN

 VERBIO_DTMF_TERMINATOR

 Note: If 'keep_recorded_files' is enabled in 'verbio.conf', you can check the recorded file name via

 VASR_REC_FILE dialplan variable (once the recognition application has finished).

 

VerbioUnloadVcb

Unload vocabulary.

Properties:

vcb_handle: vocabulary id to unload (-1 to unload all, and free licences)

config : ASR config lang : ASR language options : 

v (verbosity on)

n (do not hangup on Verbio error)

Please do not forget to execute this app on hangup...otherwise you may run out of licences.


 Google TTS

Use Google TTS engine to have Text to Speech.

 

Properties:

Text: any text or variable to convert to Speech.

Language: Language for the text, Example: es, en, jp, pt


Google ASR

Use Google Automatic Speech Recognition engine.

 

Properties:

 

Language: location of the Language to obtain, Example:  en-US, es-UY.

Timeout: Time in seconds of silence to timeout speech recognition. Default 3 sec.

 

Variables set:  

${status} any number different than 0 is an error

${confidence} number between 0 and 1.0 as a confidence of the recognition 0.95 is perfect

${utterance} String value of the recognized speech



UTILS


B64ENCODE/DECODE

Encode/Decode a Base 64 String Properties:

ResultVarname: name of the variable to store the result

String: string to encode or decode


CUT

Cut a variable, returs a varaiable with the result

Properties:

Varname: variable to cut

Delimiter: delimiter to cut, default -

Fieldspec: number of the field you want (1-based offset), may also be specified as a range (with -) or group of ranges and fields (with &).


FIELD COUNT

Count the fields, with an arbitrary delimiter

Properties:

resultvarname: var to store count varname: variable to count

delim: delimiter


LENGHT

Counts the lenght of a string.

Properties:

Resultvarname: variable name to store the result

Variable: variable to count length


MATH

Math operations Properties:

number1: first number

op: +,-,/,*,%,<,>,>=,<=,==

number2: second number

typeofresult: f (float), i(int), h(hex), c(char)


Random

Selects a randomic number in a range

Properties:

Resultvarname: var name to store the result min: min number

max: max number

this app include borders.


RegExp

Returns 1 if the string match the regular expresion

Properties:

regexp: Regular expresion data: string to validate

ex: regex: [abc0-9] data: b4 --> returns 1



Check FileSystem

Checks for a specific file, returns string with value

Properties:

filename: path and file name flag: d check if is directory

e check existence

f check if is a regular file

m returns file mode (in octal)

s returns size in bytes

A returns epoch of last access

C returns epoch of last change of inode

M returns epoch of last modification


Epoch2Date

Formats to DateTime Properties:

epoch: unix time

timezone: timezone

format: man page strftime of linux

%a The abbreviated weekday name according to the current locale. Sun

%A The full weekday name according to the current locale. Sunday

%b The abbreviated month name according to the current locale. Jul

%B The full month name according to the current locale. July

%c The preferred date and time representation for the current locale. Sun Jul 22 14:57:30 2007

%C The century number (year/100) as a 2-digit integer. 20

%d The day of the month as a decimal number (range 01 to 31). 22

%D Equivalent to %m/%d/%y. (Yecch — for Americans only. Americans should note that in other countries %d/%m/%y is rather common. This means that in international context this format is ambiguous and should not be used.) 07/22/07

%e Like %d, the day of the month as a decimal number, but a leading zero is replaced by a space. 22

%F Equivalent to %Y-%m-%d (the ISO 8601 date format). 2007-07-22

%G The ISO 8601 year with century as a decimal number. The 4-digit year corresponding to the ISO week number (see %V). This has the same format and value as %y, except that if the ISO week number belongs to the previous or next year, that year is used instead. 2007

%g Like %G, but without century, i.e., with a 2-digit year (00-99). 07

%h Equivalent to %b. Jul

%H The hour as a decimal number using a 24-hour clock (range 00 to 23). 14

%I The hour as a decimal number using a 12-hour clock (range 01 to 12). 02

%j The day of the year as a decimal number (range 001 to 366). 203

%k The hour (24-hour clock) as a decimal number (range 0 to 23); single digits are preceded by a blank. (See also %H.) 14

%l The hour (12-hour clock) as a decimal number (range 1 to 12); single digits are preceded by a blank. (See also %I.) 2

%m The month as a decimal number (range 01 to 12). 07

%M The minute as a decimal number (range 00 to 59). 57

%n A newline character.

%p Either 'AM' or 'PM' according to the given time value, or the corresponding strings for the current locale. Noon is treated as 'pm' and midnight as 'am'. PM

%P Like %p but in lowercase: 'am' or 'pm' or a corresponding string for the current locale. pm

%r The time in a.m. or p.m. notation. In the POSIX locale this is equivalent to '%I:%M:%S %p'. 02:57:30 PM

%R The time in 24-hour notation (%H:%M). For a version including the seconds, see %T below. 14:57

%s The number of seconds since the Epoch, i.e., since 1970-01-01 00:00:00 UTC. 1185130650

%S The second as a decimal number (range 00 to 60). (The range is up to 60 to allow for occasional leap seconds.) 30

%t A tab character.

%T The time in 24-hour notation (%H:%M:%S). 14:57:30

%u The day of the week as a decimal, range 1 to 7, Monday being 1. See also %w. 7

%U The week number of the current year as a decimal number, range 00 to 53, starting with the first Sunday as the first day of week 01. See also

%V and %W. 29

%V The ISO 8601:1988 week number of the current year as a decimal number, range 01 to 53, where week 1 is the first week that has at least 4 days in the current year, and with Monday as the first day of the week. See also %U and %W. 29

%w The day of the week as a decimal, range 0 to 6, Sunday being 0. See also %u. 0

%W The week number of the current year as a decimal number, range 00 to 53, starting with the first Monday as the first day of week 01. 29

%x The preferred date representation for the current locale without the time. 07/22/07

%X The preferred time representation for the current locale without the date. 14:57:30

%y The year as a decimal number without a century (range 00 to 99). 07

%Y The year as a decimal number including the century. 2007

%z The time-zone as hour offset from GMT. Required to emit RFC 822-conformant dates (using "%a, %d %b %Y %H:%M:%S %z"). -0400

%Z The time zone or name or abbreviation. EDT

%% A literal '%' character. %


URLENCODE/DECODE

Econde/Decode a URL to be send Properties:

ResultVarname: varname with the result of encoding/decoding. ToEncode: string to encode/decode


AES/Ecript-Dectipt

Encript/Decript a code to be send Properties:

ResultVarname: varname with the result of encript/decript. ToEncode: string to encript/decript


VARIABLES


Set

Set channel variable or function value.

This function can be used to set the value of channel variables or dialplan functions. When setting variables, if the variable name is prefixed with '

', the variable will be inherited into channels created from the current channel. If the variable name is prefixed with '_', the variable will be inherited into channels created from the current channel and all children channels.

Properties:

variablename:    name of the variable value:   value (can be other variable)


ARRAY

Set channel variables.

This function can be used to set the value of channel variables. When setting variables, if the variable name is prefixed with '', the variable will be inherited into channels created from the current channel. If the variable name is prefixed with '_', the variable will be inherited into channels created from the current channel and all children channels.

Properties:

variable names:   names of the variables in a list separated by a comma value:   values (can be other variable), list separated by comma.


EndWhile/While

 Start a While Loop. Execution will return to this point when EndWhile is called until condition is no longer true.

 Properties:

 condition:    condition to evaluate variables. Ex: $[${i} < 5]


Goto

Jump to a particular priority, extension, or context. This application will set the current context, extension, and priority in the channel structure. After it completes, the pbx engine will continue dialplan execution at the specified location. If no specific <extension>, or <extension> and

<context>, are specified, then this application will just set the specified <priority> of the current extension. At least a <priority> is required as an argument, or the goto will return a '-1', and the channel and call will be terminated. If the location that is put into the channel information is bogus, and the PBX cannot find that location in the dialplan, then the execution engine will try to find and execute the code in the 'i' (invalid) extension in the current context. If that does not exist, it will try to execute the 'h' extension. If either or neither the 'h' or 'i' extensions have been defined, the channel is hung up, and the execution of instructions on the channel is terminated. What this means is that, for example, you specify a context that does not exist, then it will not be possible to find the 'h' or 'i' extensions, and the call will terminate.

Properties:

context: name of Context

extension: name/number of Extension priority: Priority


GotoIf

Conditional goto, same as goto but with condition.

 Properties:

condition: condition to evaluate

label1:

label2:

 

labels: [[context,]extension,]priority

condition: Ex. $["${CALLERID(num)}" = "303"]

 This has 2 paths one true and one false


 GotoIfTime

Jump on the dialplan depending of date/time.

This application will set the context, extension, and priority in the channel structure based on the evaluation of the given time specification. After this application completes, the pbx engine will continue dialplan execution at the specified location in the dialplan. If the current time is within the given time specification, the channel will continue at <labeliftrue>. Otherwise the channel will continue at <labeliffalse>. If the label chosen by the condition is omitted, no jump is performed, and execution passes to the next instruction. 

 

 

Properties: 

 timerange: daysofwee: daysofmon: months: 

 

Example:

timerange:9:00-17:00 

daysofweek:mon-fri 

daysofmont:* months:*

 

Sends to context, extension and priority selected if is monday to friday between 9 and 17hs. if not follows to the next priority (flow activity).

Evaluating true goes to the Context, Extension, Priority selected, else goes to the next activity.

This has 2 paths one for true and one for false.


If

Conditional

Properties:

result: where to put the result of the condition condition: condition ex. $[ ${x}= 7]

res1: if is true this is set on the result res2: if is false this is set on the result

IsNull

returns 1 if is null 0 if not

Properties:

result: name of the variable to save the result variable: variable to test if isnull

 SetLanguage

 

Set the channel language: es,en

Important for the audios to play, an other configs.

SetMusicOnhold

Set music on hold for the call 

Properties:

musicclass: name, must be defined in the administrator


FILTER

 

Filter the string to include only the allowed characters

Permits all characters listed in <allowed-chars>, filtering all others outs. In addition to literally listing the characters, you may also use ranges

of characters (delimited by a '-'

Hexadecimal characters started with a '\x'(i.e. \x20) Octal characters started with a '\0' (i.e. \040)

Also '\t','\n' and '\r' are recognized.

 NOTE: If you want the '-' character it needs to be prefixed with a '\'

 

Properties:

Result Varname: name of the variable result of the filter. 

Allowed chars: chars to be allowed in the string

Variable: variable from to apply the filter

Include

One extension context can include the contents of another.

Use the word include in Extension on StartActivity and add all includes you want.

 

DBPut

Permits saving into the built-in database save a value.

Properties:

Family:  Aggrupation for a set of values (like a table)

Key: name of the identifier to store a value (like a column)

Value: value to store


DBGet

Permits getting a value from the built-in database.

Properties:

Family:  Aggrupation for a set of values (like a table)

Key: name of the identifier to store a value (like a column)

Var Name: name of the variable defined to store the value of that key.

 

DBExists

Permits knowing if a value exists or not.

 Properties:

 Family:  Aggrupation for a set of values (like a table)

Key: name of the identifier to store a value (like a column)

Var Name: name of the variable defined to store 0 if is not present 1 if the key exists.

 

 

DBDelete

 Permits deleting a family/key pair.

Properties:

 Family:  Aggrupation for a set of values (like a table)

Key: name of the identifier to store a value (like a column)

 

JSON

Converts a JSON String in variables with value, so is easier to work in the workflow.

Properties:

 JSON String:  json string ex. {"name" : "Sebastian"}

you will get ${name} = Sebastian

 

XML

Converts a XML String in variables with value, so is easier to work in the workflow.

Properties:

 XML String:  xml string ex. <doc><name>Sebastian</name></doc>

you will get ${name} = Sebastian


Variables and Data

The variables can be used as follows: ${VARIABLENAME} on any application.

There are 2 types of variables, the ones that are predefined by the system that we can use, read or modify, and the ones created at real-time for us (with application set, and others).

Manage variables

${variablename:offset:length}

 

variablename: name of the variable.

offset: excluded places

lenght: quantity of characters included after de offset.

 

Predefined variables are case sensitive, the realtime variables are not. Inherit channel variables: _FOO=5 (_ inherits indefinitely).

To concat variables just put them togheter: example ${var1}${var2}

 

Predefined Variables

${CDR(accountcode)}: code to set on CDR

${ANSWEREDTIME}: actual time of the call in seconds

${CALLERID(all)}: Number and name of callerid (CID)

${CALLERID(name)}: Name of callerid

${CALLERID(num)}: Number of callerid

${CALLINGPRES}: PRI callid presentation

${CHANNEL}: name of the actual channel

${CONTEXT}: name of the actual context

${STRFTIME(${EPOCH},,%d%mNaVH:NaVS)}): Actual DateTime

${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)})

${DIALEDTIME}: time since the number was dialed

${EPOCH}: unix time in seconds

${HANGUPCAUSE}: PRI cause code

${LANGUAGE}: channel language

${PRIORITY}: actual priprity

${DIALSTATUS}: status of dial application. 

CHANUNAVAIL

CONGESTION 

NOANSWER 

BUSY 

ANSWER 

CANCEL

DONTCALL: For the Privacy and Screening Modes. Will be set if the called party chooses to send the calling party to the 'Go Away' script. 

TORTURE: For the Privacy and Screening Modes. Will be set if the called party chooses to send the calling party to the 'torture' script. 

INVALIDARGS

${PRI_CAUSE}:

1 = Unallocated number

16 = Normal call clearing

17 = User busy

18 = No user responding (telephone device not connected)

21 = Call rejected

22 = Number changed

27 = Destignation out of order

38 = Network out of order

41 = Temporary failure

${QUEUESTATUS}: reason why the call leave the Queue (TIMEOUT | FULL | JOINEMPTY | LEAVEEMPTY | JOINUNAVAIL | LEAVEUNAVAIL)

${VMSTATUS}: state of voicemail execution: SUCCESS | USEREXIT | FAILED .

${UNIQUEID}: call id (not really unique)

${QUEUE_MEMBER_COUNT(<queuename>)}: quantity of agents for that queue

${QUEUE_MEMBER_LIST(<queuename>)}: list of memebers coma separeted.

${QUEUE_WAITING_COUNT(<queuename>)}: number of clients on the queue

${BRIDGEPEER}: peer of the bridge

${BLINDTRANSFER}: name of the cannel at the other side of a blind transfer

${EXTEN}: actual extension

${ENV(VAR)}: environmental variable VAR

${HINT}: hints of the channel for that extension

${HINTNAME}: callerid name suggested fot that extension

${SYSTEMNAME}: system name

${MEETME_RECORDINGFILE}: name of the recording of a conference with r option

${MEETME_RECORDINGFORMAT}: recording format of the conference

${MEETME_EXIT_CONTEXT}: context to leave a conference

${MEETME_AGI_BACKGROUND}: AGI script to execute during a conference

${QUEUE_PRIO}: priority of a queue

${QUEUE_MAX_PENALTY}: max penalty of a member of a queue to answer a call

${CURL} * result of curl()

${EXITCONTEXT} Contexto a salir en un menu IVR (app background())o en

${MONITOR_FILENAME} nombre de archivo para grabar en las colas

${QUEUE_PRIO} Queue priority

${QUEUE_MAX_PENALTY} penalty maximo permitido para atender una llamada

${QUEUESTATUS} estatus de la llamada: (TIMEOUT | FULL | JOINEMPTY | LEAVEEMPTY | JOINUNAVAIL | LEAVEUNAVAIL)

${TOUCH_MONITOR} name for the Touch Monitor file (auto record)

${TOUCH_MONITOR_FORMAT} format used with Touch Monitor (auto record) Split by '#' characters

${LIMIT_PLAYAUDIO_CALLER} sound for call limits

${LIMIT_PLAYAUDIO_CALLEE} sound for call limits

${LIMIT_WARNING_FILE} sound for call limits

${LIMIT_TIMEOUT_FILE} sound for call limits

${LIMIT_CONNECT_FILE} sound for call limits

${AVAILCHAN} name of the free channel found

${SPYGROUP} for chanspy list of groupnames, list Split by :

${CDR(clid)} Caller ID

${CDR(src)} Source

${CDR(dst)} Destination

${CDR(dcontext)} Destination context

${CDR(channel)} Channel name

${CDR(dstchannel)} Destination channel

${CDR(lastapp)} Last app executed

${CDR(lastdata)} Last app's arguments

${CDR(start)} Time the call started.

${CDR(answer)} Time the call was answered.

${CDR(end)} Time the call ended.

${CDR(duration)} Duration of the call.

${CDR(billsec)} Duration of the call once it was answered.

${CDR(disposition)} ANSWERED, NO ANSWER, BUSY

${CDR(amaflags)} DOCUMENTATION, BILL, IGNORE etc

${CDR(accountcode)} The channel's account code (read-write).

${CDR(uniqueid)} The channel's unique id.

${CDR(userfield)} The channels uses specified field (read-write).

${DYNAMIC_FEATURENAME}: which holds the last triggered dynamic feature.

MACRO

${ARG1} 2,3,4: arguments for the macro

${MACRO_CONTEXT}: context of the macro

${MACRO_EXTEN}: extension of the macro

${MACRO_PRIORITY}: priority

SMS

${DONGLENAME}: name of  SMS device name

${DONGLEPROVIDER}: same as 'Provider Name' column of 'dongle show devices' CLI command

${DONGLEIMEI}: same as 'IMEI' column of 'dongle show devices' CLI command

${DONGLEIMSI}: same as 'IMSI' column of 'dongle show devices' CLI command

${DONGLENUMBER}: same as 'Number' column of 'dongle show devices' CLI command

${USSD_TYPE}: numberic type of USSD Response from 0 till 5

${USSD_TYPE_STR}: textual type of USSD Response one from 'USSD Notify', 'USSD Request', 'USSD Terminated by network', 'Other local client has responded', 'Operation not supported', 'Network time out'

${USSD}: Content of USSD Response

${USSD_BASE64}: Content of USSD Response encoded to Base64, useful when USSD is multiline

${SMS}: Content of SMS

${SMS_BASE64}: Content of SMS encoded to Base64, useful when SMS is multiline

${CMGR}: Raw CMGR response from dongle

 

Expressions

$[expr1 operator expr2]

 expr1 | expr2 (OR) 

expr1 & expr2 (AND)

!expr (Negacion) 

expr1 = expr2

expr1 != expr2 

expr1 < expr2 

expr1 > expr2 

expr1 <= expr2 

expr1 >= expr2 

expr1 + expr2 

expr1 - expr2 

expr1 * expr2 

expr1 / expr2 

expr1 % expr2 

expr1 : regexp 

expr1 =~ expr2

 

regx="([0-9]+)"

cid2=$["${cid}" : ${regx}] --> return the start of the numeric string ex. 123foo returns 123

enum-protocol=$["${enum-record}" : "([a-zA-Z0-9]+)\:"] --> retorna el protocolo ej sip:18005558355@tf.voipmich.com returns sip expr1 ? expr2 :: expr3 (use IF)

 

HASH

 

used intensely in ODBC queries, you can get several values in one reference. example: HASH(foo)= ODBC query

to access: ${HASH(foo,afield)}

is possible to add more field to the hash after de query

example: with app Set varname = HASH(foo,noenlaconsulta) value = val .

if __ you can have inheritance.

 

Predefined Functions

 

This functions are for use on Set activity on value property surrounded by ${}, some of this functions are already encapsulated on activities. Example:

Activity: Set

Varname: foo

Value: ${FILTER(1-9,${test})}

this will use FILTER function on the test variable and set the result on the variable foo.

 

FUNCTION/USE/DESCRIPTION

 

AES_DECRYPT AES_DECRYPT(key,string) Decrypt a string encoded in base64 with AES given a 16 character key.

AES_ENCRYPT AES_ENCRYPT(key,string) Encrypt a string with AES given a 16 character key.

AGC AGC(channeldirection) Apply automatic gain control to audio on a channel.

ARRAY ARRAY(var1[,var2[,...][,varN]]) Allows setting multiple variables at once.

AST_CONFIG AST_CONFIG(config_file,category,var Retrieve a variable from a configuration file. AUDIOHOOK_INHERIT AUDIOHOOK_INHERIT(source) Set whether an audiohook may be inherited to another channel 

BASE64_DECODE BASE64_DECODE(string) Decode a base64 string.

BASE64_ENCODE BASE64_ENCODE(string) Encode a string in base64. 

CALLERID CALLERID(datatype[,CID]) Gets or sets Caller*ID data on the channel. 

CALLERPRES CALLERPRES() Gets or sets Caller*ID presentation on the channel. 

CDR CDR(name[,options]) Gets or sets a CDR variable.

CHANNEL CHANNEL(item) Gets/sets various pieces of information about the channel.

CHANNELS CHANNELS([regular_expression]) Gets the list of channels, optionally filtering by a regular expression.

CHECKSIPDOMAIN CHECKSIPDOMAIN(domain) Checks if domain is a local domain.

CSV_QUOTE CSV_QUOTE(string) Quotes a given string for use in a CSV file, escaping embedded quotes as necessary

CURL CURL(url[,post-data]) Retrieves the contents of a

URL

CURLOPT CURLOPT(<option>) Set options for use with the

CURL() function

CUT CUT(varname,char-delim,range-spec) Slices and dices strings, based upon a named delimiter.

DB DB(family/key) Read from or write to the Asterisk database.

DB_DELETE DB_DELETE(family/key) Return a value from the database and delete it. 

DB_EXISTS DB_EXISTS(family/key) Check to see if a key exists in the Asterisk database. 

DENOISE DENOISE(channeldirection) Apply noise reduction to audio on a channel. 

DEVICE_STATE DEVICE_STATE(device) Get or Set a device state.

DIALGROUP DIALGROUP(group[,op]) Manages a group of users for dialing.

DIALPLAN_EXISTS DIALPLAN_EXISTS(context[,extension[ Checks the existence of a dialplan target. 

DUNDILOOKUP DUNDILOOKUP(number[,context[,option Do a DUNDi lookup of a phone number. 

DUNDIQUERY DUNDIQUERY(number[,context[,options Initiate a DUNDi query.

DUNDIRESULT DUNDIRESULT(id[,resultnum]) Retrieve results from a   DUNDIQUERY.

ENUMLOOKUP ENUMLOOKUP(number[,method-type[,opt General or specific querying of NAPTR records for ENUM or ENUM-like DNS

pointers.

ENUMQUERY ENUMQUERY(number[,method-type[,zone Initiate an ENUM query. 

ENUMRESULT ENUMRESULT(id,resultnum) Retrieve results from a ENUMQUERY. 

ENV ENV(varname) Gets or sets the environment variable specified.

EVAL EVAL(variable) Evaluate stored variables

EXCEPTION EXCEPTION(field) Retrieve the details of the current dialplan exception.

EXISTS EXISTS(data) Test the existence of a value.

EXTENSION_STATE EXTENSION_STATE(extension[@context] Get an extension's state.

FIELDQTY FIELDQTY(varname,delim) Count the fields with an arbitrary delimiter

FILE FILE(filename,offset,length) Obtains the contents of a file.

FILTER FILTER(allowed-chars,string) Filter the string to include only the allowed characters

GLOBAL GLOBAL(varname) Gets or sets the global variable specified.

GROUP GROUP([category]) Gets or sets the channel group.

GROUP_COUNT GROUP_COUNT([groupname][@category]) Counts the number of channels in the specified group.

GROUP_LIST GROUP_LIST() Gets a list of the groups set on a channel.

GROUP_MATCH_COUNT GROUP_MATCH_COUNT(groupmatch[@categ Counts the number of channels in the groups matching the specified pattern.

HASH HASH(hashname[,hashkey]) Implementation of a dialplan associative array 

HASHKEYS HASHKEYS(hashname) Retrieve the keys of the HASH() function. 

HINT HINT(extension[@context][,options]) Get the devices set for a dialplan hint.

IAXPEER IAXPEER(peername[,item]) Gets IAX peer information.

IAXVAR IAXVAR(varname) Sets or retrieves a remote variable.

ICONV ICONV(in-charset,out-charset,string Converts charsets of strings.

IF IF(expresion?[true][:false]) Check for an expresion.

IFMODULE IFMODULE(modulename.so) Checks if an Asterisk module is loaded in memory.

IFTIME IFTIME(timespec?[true][:false]) Temporal Conditional.

IMPORT IMPORT(channel,variable) Retrieve the value of a variable from another channel.

ISNULL ISNULL(data) Check if a value is NULL.

JABBER_STATUS JABBER_STATUS(sender,buddy[,resourc Retrieve the status of a jabber list member

 

KEYPADHASH KEYPADHASH(string) Hash the letters in string into equivalent keypad numbers.

LEN LEN(string) Return the length of the string given.

LISTFILTER LISTFILTER(varname,delim,value) Remove an item from a list, by name.

LOCAL LOCAL(varname) Manage variables local to the gosub stack frame.

LOCAL_PEEK LOCAL_PEEK(n,varname) Retrieve variables hidden by the local gosub stack frame.

LOCK LOCK(lockname) Attempt to obtain a named mutex.

MAILBOX_EXISTS MAILBOX_EXISTS(mailbox[@context]) Tell if a mailbox is configured.

MATH MATH(expression[,type]) Performs Mathematical Functions.

MD5 MD5(data) Computes an MD5 digest.

MEETME_INFO MEETME_INFO(<keyword>,<confno>) Query a given conference of various properties. MINIVMACCOUNT MINIVMACCOUNT(<account>:item) Gets MiniVoicemail account information MINIVMCOUNTER MINIVMCOUNTER(<account>:name[:opera Reads or sets counters for MiniVoicemail message

PP_EACH_EXTENSION PP_EACH_EXTENSION(<mac>|<template>) Execute specified template for each extension 

PP_EACH_USER PP_EACH_USER(<string>|<exclude_mac> Generate a string for each phoneprov user QUEUE_MEMBER QUEUE_MEMBER(queuename,option) Count number of members answering a queue. 

QUEUE_MEMBER_COUNT QUEUE_MEMBER_COUNT(queuename) Count number of members answering a queue. 

QUEUE_MEMBER_LIST QUEUE_MEMBER_LIST(queuename) Returns a list of interfaces on a queue. QUEUE_MEMBER_PENALTY QUEUE_MEMBER_PENALTY(queuename,inte Gets or sets queue members penalty. 

QUEUE_VARIABLES QUEUE_VARIABLES(queuename) Return Queue information in variables. QUEUE_WAITING_COUNT QUEUE_WAITING_COUNT([queuename]) Count number of calls currently waiting in a queue. 

QUOTE QUOTE(string) Quotes a given string, escaping embedded quotes as necessary

RAND RAND([min][,max]) Choose a random number in a range.

REALTIME REALTIME(family,fieldmatch[,value[, RealTime Read/Write Functions. 

REALTIME_DESTROY REALTIME_DESTROY(family,fieldmatch[ RealTime Destroy Function. 

REALTIME_FIELD REALTIME_FIELD(family,fieldmatch,va RealTime query function. 

REALTIME_HASH REALTIME_HASH(family,fieldmatch,val RealTime query function. 

REALTIME_STORE REALTIME_STORE(family,field1,fieldN RealTime Store Function.

REGEX REGEX("regular expression" string) Check string against a regular expression.

SET SET(varname[=value]) SET assigns a value to a channel variable.

SHA1 SHA1(data) Computes a SHA1 digest.

SHARED SHARED(varname[,channel]) Gets or sets the shared variable specified. 

SHELL SHELL(command) Executes a command as if you were at a shell. 

SIP_HEADER SIP_HEADER(name[,number]) Gets the specified SIP header.

SIPCHANINFO SIPCHANINFO(item) Gets the specified SIP parameter from the current channel.

SIPPEER SIPPEER(peername[,item]) Gets SIP peer information.

SORT SORT(key1:val1[,key2:val2[,...]]) Sorts a list of key/vals into a list of keys, based upon the vals. 

SPRINTF SPRINTF(format,arg1[,arg2[,...][,ar Format a variable according to a format string. 

SQL_ESC SQL_ESC(string) Escapes single ticks for use in SQL statements.

STAT STAT(flag,filename) Does a check on the specified file.

STRFTIME STRFTIME([epoch][,timezone[,format] Returns the current date/time in the specified format.

STRPTIME STRPTIME(datetime,timezone,format) Returns the epoch of the arbitrary date/time string structured as described by the format.

SYSINFO SYSINFO(<parameter>) Returns system information specified by parameter.

TIMEOUT TIMEOUT(timeouttype) Gets or sets timeouts on the channel. Timeout values are in seconds.

TOLOWER TOLOWER(string) Convert string to all lowercase letters. 

TOUPPER TOUPPER(string) Convert string to all uppercase letters. 

TRYLOCK TRYLOCK(lockname) Attempt to obtain a named mutex.

TXTCIDNAME TXTCIDNAME(number[,zone-suffix]) TXTCIDNAME looks up a caller name via DNS.

UNLOCK UNLOCK(lockname) Unlocks a named mutex.

URIDECODE URIDECODE(data) Decodes a URI-encoded string according to RFC 2396. 

URIENCODE URIENCODE(data) Encodes a string to URI-safe encoding according to RFC 2396. 

VALID_EXTEN VALID_EXTEN([context],extension[,pr Determine whether an extension exists or not. 

VMCOUNT VMCOUNT(vmbox[@context][,folder]) Count the voicemails in a specified mailbox. 

VOLUME VOLUME(direction) Set the TX or RX volume of a channel.

MASTER_CHANNEL(): which permits retrieving and setting variables on the channel which created the current channel. Administrators should take care to avoid naming conflicts, when multiple channels are dialled at once, especially when used with the Local channel construct (which all could set variables on the master channel). Usage
of the HASH() dialplan function, with the key set to the name of the slave channel, is one approach that will avoid conflicts.

MUTEAUDIO(): for muting inbound and/or outbound audio in a channel.

ODBC_FETCH():func_odbc now allows multiple row results to be retrieved without using mode=multirow. If rowlimit is set, then additional rows  may be retrieved from the same query by using the name of the function which retrieved the first row as an argument. REPLACE: which searches a given variable name for a set of characters,then either replaces them with a single character or deletes them. 

QUEUE_EXISTS: to know if a queue exists or not

 

CHANNEL(echocan_mode)=off): disable echo cancel for that call.

on - normal mode (the echo canceller is actually reinitialized)
off - disabled
fax - FAX/data mode (NLP disabled if possible, otherwise completely disabled)
voice - voice mode (returns from FAX mode, reverting the changes that were made when FAX mode was    requested)

 

Local channels

Are pseudo-channels. Use of this channel simply loops calls back into the dialplan in a different context. 

Useful for recursive routing; it is able to return to the dialplan after call completion.


Syntax:

Local/extension@context[/nj]

 

Adding "/n" at the end of the string will make the Local channel not do a native transfer (the "n" stands for "n"o release) upon the remote end answering the line. This is an esoteric, but important feature if you expect the Local channel to handle calls exactly like a normal channel. If you do not have the "no release" feature set, then as soon as the destination (inside of the Local channel) answers the line, the variables and dial plan will revert back to that of the original call, and the Local channel will become a zombie and be removed from the active channels list. This is desirable in some circumstances, but can result in unexpected dialplan behavior if you are doing fancy things with variables in your call handling.

Adding "/nj" will apply the the generic jitterbuffer to the Local channel driver; this feature was introduced in Asterisk 1.6, with a backport being available for 1.4 (see link above on how to obtain it from svn). With this jitter buffer and a Local channel now also calls that aren't bridged but 'talk' to an Asterisk application can take advantage of de-jittering - provided the generic jitter buffer (not the older adaptive jitter buffer?) has been enabled in SIP (or MGCP or ...).

Purpose: The Local channel construct can be used to establish dialling into any part of the dialplan.


Example Flow

 


Tips

Always begin with StartActivity setting context and exten. Get a GUID. (New variable avaiable ${guid})

Set GUID on CDR. for recording.

Set Record Name with GUID. to match cdr. Set Campaign. if needed for reports

Set userfield if needed

Set CDR Type with: record if the call is record, voicemail if is a voicemail of a campaign, fax if is a fax. Set CauseCode for outgoing flows.

For queues must exists a CTI event, User SIPAddHeader:

 CTI: {"Guid": "${guid}" , "Screen": "FALSE" , "Form": "Codigos" , "Campaign" : "Entrada" , "Callerid" : "${CALLERID(num)}"  , "ParAndValues" : "par1=val1-par2=val2-par3=val3" , "Beep" : "TRUE"})

 Music on hold default class: default


Default sounds

Core Sounds in English (Spanish version are also included)

agent-alreadyon: That agent is already logged on. Please enter your agent number followed by the pound key. agent-incorrect: Login incorrect. Please enter your agent number followed by the pound key.

agent-loggedoff: Agent Logged off. 

agent-loginok: Agent logged in.

agent-newlocation: Please enter a new extension, followed by pound. 

agent-pass: Please enter your password followed by the pound key.

agent-user: Agent login. Please enter your agent number followed by the pound key.

auth-incorrect: Password incorrect. Please enter your password followed by the pound key. 

auth-thankyou: Thank you.

beep: [this is a simple beep tone]

beeperr: [this is an error beep tone]

conf-adminmenu: Please press 1 to mute or unmute yourself, 2 to lock or unlock the conference, 3 to eject the last user, 4 or 6 to decrease or increase the conference volume, 7 or 9 to decrease or increase your volume, or 8 to exit.

conf-adminmenu-162: Please press 1 to mute or unmute yourself, 2 to lock or unlock the conference, 3 to eject the last user, 4 or 6 to decrease or increase the conference volume, 5 to extend the conference, 7 or 9 to decrease or increase your volume, or 8 to exit.

conf-enteringno: You are entering conference number 

conf-errormenu: Invalid Choice

conf-extended: The conference has been extended.

conf-getchannel: Please enter the channel number followed by the pound key.

conf-getconfno: Please enter your conference number followed by the pound key. 

conf-getpin: Please enter the conference pin number.

conf-hasjoin: is now in the conference. 

conf-hasleft: has left the conference.

conf-invalid: That is not a valid conference number. Please try again. 

conf-invalidpin: That pin is invalid for this conference.

conf-kicked: You have been kicked from this conference 

conf-leaderhasleft: The leader has left the conference. 

conf-locked: This conference is locked!

conf-lockednow: The conference is now locked

 conf-muted: You are now muted

conf-noempty: No empty conferences currently exist. 

conf-nonextended: The conference cannot be extended.

conf-onlyone: There is currently one other participant in the conference. 

conf-onlyperson: You are currently the only person in this conference. 

conf-otherinparty: other participants in the conference

conf-placeintoconf: You will now be placed into the conference. 

conf-thereare: There are currently

conf-unlockednow: The conference is now unlocked 

conf-unmuted: You are now unmuted

conf-usermenu: Please press 1 to mute or unmute yourself, 4 or 6 to decrease or increase the conference volume, 7 or 9 to decrease or increase your volume, or 8 to exit.

conf-usermenu-162: Please press 1 to mute or unmute yourself, 4 or 6 to decrease or increase the conference volume, 5 to extend the conference, 7 or 9 to decrease or increase your volume, or 8 to exit.

conf-userswilljoin: users will join the conference. 

conf-userwilljoin: user will join the conference.

conf-waitforleader: The conference will begin when the leader arrives.

demo-abouttotry: I am about to attempt an Inter-Asterisk Exchange connection to a demonstration server located at Digium. In order for this to work you must already be connected to the Internet. Please wait a moment while I attempt to make the connection.

demo-congrats: Congratulations. You have successfully installed and executed the Asterisk open source PBX. You have also installed a set of sample sounds and configuration files that should help you to get started. Like a normal PBX you will navigate this demonstration by dialing digits. If you are using a console channel driver instead of a real phone you can use the dial, answer, and hang up commands to simulate the actions of

a standard telephone.

demo-echodone: The echo test has been completed.

demo-echotest: You are about to enter an echo test. In this mode everything you say will be repeated back to you just as soon as it is received. The purpose of this test is to give you an audible sense of the latency between you and the machine that is running the echo test application. You may end the test by hanging up or by pressing the pound key.

demo-enterkeywords: Please enter one or more keywords separated by * and then press the pound key.

demo-instruct: If you would like to learn more technical information about Asterisk dial 2 now. If you'd like to test out the voice over IP capabilities of Asterisk you can dial 500 to attempt an Inter-Asterisk Exchange or IAX connection to a demonstration server at Digium. In order for this test to work you will need to be connected to the Internet and have at least a 28.8 kilobit modem. To execute an echo test dial 600. This test is most useful when you have connected to this Asterisk server from a remote location. The sample configuration also has a single user with extension

1234 and password 4242. That user is configured to ring the console when their extension is dialed. If you dial 1234 you can try to ring the console. If the console is busy or unavailable you will be given the option to leave voicemail. To check voice mail for the user dial extension 8500 to enter the voicemail system. Finally, you can press the pound key to disconnect from the PBX.

demo-moreinfo: Asterisk is an Open Source full-featured PBX and IVR platform that runs on the linux operating system. For more information, visit www.asterisk.org.

demo-nogo: I am afraid I was unable to create a connection to the Digium demonstration Asterisk server. You may find some helpful debugging information on the Asterisk console.

demo-nomatch: I'm sorry there are no matches for those keywords

demo-thanks: Goodbye. Thank you for trying out the Asterisk Open Source PBX. 

dictate/both_help: press * to toggle pause, press # to enter a new dictation filename 

dictate/enter_filename: Enter a numeric dictation filename followed by # or just # to exit 

dictate/forhelp: press 0 for help

dictate/pause: pause 

dictate/paused: paused

dictate/play_help: press 1 to switch to record mode, press 2 to toggle fast playback, press 7 to jump backwards, press 8 to jump forwards 

dictate/playback: playback

dictate/playback_mode: playback mode 

dictate/record: record

dictate/record_help: press 1 to switch to playback mode, press 8 to truncate the file and start over dictate/record_mode: record mode

dictate/truncating_audio: truncating audio 

digits/0: zero

digits/10: ten 

digits/11: eleven 

digits/12: twelve 

digits/13: thirteen 

digits/14: fourteen 

digits/15: fifteen

 digits/16: sixteen 

digits/17: seventeen 

digits/18: eighteen 

digits/19: nineteen 

digits/1: one

digits/20: twenty 

digits/2: two 

digits/30: thirty 

digits/3: three

 digits/40: forty 

digits/4: four 

digits/50: fifty 

digits/5: five 

digits/60: sixty 

digits/6: six 

digits/70: seventy 

digits/7: seven 

digits/80: eighty 

digits/8: eight 

digits/90: ninety 

digits/9: nine 

digits/a-m: A.M. 

digits/at: at

digits/day-0: Sunday 

digits/day-1: Monday 

digits/day-2: Tuesday 

digits/day-3: Wednesday 

digits/day-4: Thursday 

digits/day-5: Friday 

digits/day-6: Saturday 

digits/dollars: dollars 

digits/h-10: tenth

digits/h-11: eleventh 

digits/h-12: twelfth 

digits/h-13: thirteenth 

digits/h-14: fourteenth 

digits/h-15: fifteenth 

digits/h-16: sixteenth 

digits/h-17: seventeenth 

digits/h-18: eighteenth 

digits/h-19: nineteenth 

digits/h-1: first

digits/h-20: twentieth 

digits/h-2: second 

digits/h-30: thirtieth 

digits/h-3: third 

digits/h-4: fourth 

digits/h-5: fifth 

digits/h-6: sixth 

digits/h-7: seventh 

digits/h-8: eighth 

digits/h-9: ninth

digits/hundred: hundred 

digits/million: million 

digits/minus: minus 

digits/mon-0: January 

digits/mon-10: November 

digits/mon-11: December 

digits/mon-1: February

digits/mon-2: March 

digits/mon-3: April 

digits/mon-4: May 

digits/mon-5: June 

digits/mon-6: July 

digits/mon-7: August 

digits/mon-8: September 

digits/mon-9: October 

digits/oclock: o'clock 

digits/oh: oh

digits/p-m: P.M. 

digits/pound: pound 

digits/star: star 

digits/thousand: thousand 

digits/today: today 

digits/tomorrow: tomorrow 

digits/yesterday: yesterday

dir-firstlast: ... letters of your party's first or last name.

dir-instr: If this is the person you are looking for press 1 now, otherwise please press star now.

dir-intro-fn: Welcome to the directory. Please enter the first three letters of your party's first name using your touch tone keypad. Use the 7 key for

Q and the 9 key for Z.

dir-intro: Welcome to the directory. Please enter the first three letters of your party's last name using your touch tone keypad. Use the 7 key for Q

and the 9 key for Z.

dir-last: ... letters of your party's last name. 

dir-multi1: Press ...

dir-multi2: ... for ...

dir-multi3: ... extension ...

dir-multi9: Press 9 for more entries.

dir-nomatch: No directory entries match your search.

dir-nomore: There are no more compatible entries in the directory. 

dir-pls-enter: Please enter the first ...

dir-usingkeypad: ... using your touchtone keypad. Use the 7 key for Q, and the 9 key for Z. 

dir-welcome: Welcome to the directory

dollars: dollars

followme/call-from.wav: incoming call from

followme/no-recording.wav: you have an incoming call 

followme/options.wav: press 1 to accept this call, or 2 to reject it

followme/pls-hold-while-try.wav: please hold while I try to locate the person you are calling 

followme/sorry.wav: I'm sorry, but I was unable to locate the person you are calling 

followme/status.wav: the person you are calling is not at their desk; I will try to locate them for you hello-world: Hello world.

hours: hours

invalid: I am sorry, that's not a valid extension. Please try again.

letters/ascii34: quote

letters/ascii36: dollar sign 

letters/ascii37: percent

letters/ascii38: ampersand 

letters/ascii39: tick 

letters/ascii40: open parenthesis

letters/ascii41: close parenthesis 

letters/ascii42: star 

letters/ascii44: comma 

letters/ascii58: colon 

letters/ascii59: semicolon 

letters/ascii60: less than 

letters/ascii62: greater than 

letters/ascii63: question mark 

letters/ascii91: left bracket

letters/ascii93: right bracket 

letters/ascii96: backtick 

letters/ascii92: backslash 

letters/ascii94: caret 

letters/ascii95: underscore 

letters/ascii123: left brace 

letters/ascii124: pipe 

letters/ascii125: right brace 

letters/ascii126: tilde

letters/asterisk: asterisk

letters/a: a 

letters/at: at [@] 

letters/b: b 

letters/c: c 

letters/d: d

letters/dash: dash [-] 

letters/dollar: dollar [$] 

letters/dot: dot [.] 

letters/e: e

letters/equals: equals [=]

letters/exclaimation-point: exclaimation-point [!]

letters/f: f 

letters/g: g

letters/h: h 

letters/i: i 

letters/j: j 

letters/k: k 

letters/l: l 

letters/m: m 

letters/n: n 

letters/o: o 

letters/p: p

letters/plus: plus [+]

letters/q: q letters/r: r

letters/s: s

letters/slash: slash [/]

letters/space: space [ ]

letters/t: t 

letters/u: u 

letters/v: v 

letters/w: w 

letters/x: x 

letters/y: y 

letters/z: z 

letters/zed: zed 

minutes: minutes

pbx-invalid: I am sorry, that's not a valid extension. Please try again.

pbx-invalidpark: I am sorry, there is no call parked on that extension. Please try again. 

pbx-transfer: Transfer.

phonetic/9_p: niner 

phonetic/a_p: alpha 

phonetic/b_p: bravo 

phonetic/c_p: charlie 

phonetic/d_p: delta

phonetic/e_p: echo 

phonetic/f_p: foxtrot

phonetic/g_p: golf 

phonetic/h_p: hotel 

phonetic/i_p: india 

phonetic/j_p: juliet 

phonetic/k_p: kilo 

phonetic/l_p: lima

phonetic/m_p: mike 

phonetic/n_p: november 

phonetic/niner: niner 

phonetic/o_p: oscar 

phonetic/p_p: papa 

phonetic/q_p: quebec 

phonetic/r_p: romeo 

phonetic/s_p: sierra 

phonetic/t_p: tango 

phonetic/u_p: uniform 

phonetic/v_p: victor 

phonetic/w_p: whiskey 

phonetic/x_p: xray 

phonetic/y_p: yankee 

phonetic/z_p: zulu

priv-callee-options: Dial 1 if you wish this caller to reach you directly now, and in the future. Dial 2 if you wish to send this caller to voicemail now and forevermore. Dial 3 to send this caller to the torture menus, now and forevermore. Dial 4 to send this caller to a polite "don't call" menu, now and forevermore. Dial 5 to allow this caller to come straight thru to you in the future, but just this once, send them to voicemail.

priv-callpending: I have a caller waiting, who introduces themselves as:

priv-introsaved: Thank you. Please hold, while I attempt to connect you with your party!

priv-recordintro: At the tone, please say your name. 

privacy-incorrect: I'm sorry, that number is not valid.

privacy-prompt: Please enter your phone number, starting with the area code. 

privacy-thankyou: Thank you.

privacy-unident: The party you are trying to reach does not accept unidentified calls. 

queue-callswaiting: Waiting to speak with a representative

queue-holdtime: The estimated hold time is currently queue-less-than: less than

queue-minutes: Minutes

queue-periodic-announce: All of our represenatives are currently busy. Please stay on the line and your call will be answered by the next available representative.

queue-quantity1: Currently, there are more than ...

queue-quantity2: ... callers waiting to speak with a representative. 

queue-reporthold: Hold time

queue-seconds: Seconds

queue-thankyou: Thank you for your patience 

queue-thereare: You are currently caller number

queue-youarenext: Your call is now first in line and will be answered by the next available representative.

screen-callee-options: You have these options: Dial 1 if you wish to immediately connect to the incoming call. Dial 2 if you wish to send this caller to voicemail. Dial 3 to send this caller to the torture menus. Dial 4 to send this caller to a polite "don't call" menu.

seconds: seconds

silence/1: (1 second of silence) 

silence/2: (2 seconds of silence) 

silence/3: (3 seconds of silence) 

silence/4: (4 seconds of silence) 

silence/5: (5 seconds of silence) 

silence/6: (6 seconds of silence) 

silence/7: (7 seconds of silence) 

silence/8: (8 seconds of silence) 

silence/9: (9 seconds of silence)

silence/10: (10 seconds of silence)

spy-agent: Agent

spy-console: Console spy-dahdi: DAHDI

spy-h323: H.323

spy-iax2: IAX (note: does not say "2")

spy-iax: IAX

spy-jingle: Jingle spy-local: Local spy-mgcp: MGCP

spy-misdn: M I S D N

spy-mobile: Bluetooth Mobile spy-nbs: N B S

spy-sip: SIP

spy-skinny: Skinny 

spy-unistim: Unistim

spy-usbradio: USB Radio spy-zap: Zap

ss-noservice: The number you have dialed is not in service. Please check the number and try again. 

transfer: Please hold while I try that extension.

tt-allbusy: All representatives of the household are currently assisting other telemarketers. Please hold and your call will be answered in the order it was received.

tt-monkeys: [sound of monkeys screaming]

tt-monkeysintro: They have been carried away by monkeys 

tt-somethingwrong: Something is terribly wrong

tt-weasels: Weasels have eaten our phone system 

vm-Cust1: folder 5

vm-Cust2: folder 6 

vm-Cust3: folder 7 

vm-Cust4: folder 8 

vm-Cust5: folder 9 

vm-Family: family 

vm-Friends: friends 

vm-INBOX: new

vm-Old: old

vm-Work: work

vm-advopts: press 3 for advanced options

 vm-and: and

vm-calldiffnum: press 2 to enter a different number 

vm-changeto: Change to which folder?

vm-delete: Press 7 to delete this message.

 vm-deleted: Message deleted.

vm-dialout: please wait while i connect your call 

vm-duration: This message lasts ...

vm-enter-num-to-call: please enter the number you wish to call 

vm-extension: extension

vm-first: first 

vm-for: for

vm-forward: Press 1 to enter an extension, press 2 to use the directory

vm-forward-multiple: press 1 to send this message, or 2 to add another recipient.

vm-forwardoptions: press 1 to prepend a message or 2 to forward the message without prepending 

vm-from-extension: message from extension

vm-from-phonenumber: message from phone number 

vm-from: from

vm-goodbye: Goodbye

vm-helpexit: Press star for help or pound to exit. 

vm-incorrect-mailbox: Login incorrect. Mailbox? 

vm-incorrect: Login incorrect.

vm-instructions: To look into your messages press 1 now. You may quit voicemail at any time by pressing the pound key.

vm-intro: Please leave your message after the tone. When done hang up or press the pound key. (simple tone sound plays)

vm-invalid-password: That password does not meet the minimum requirements for this mailbox. Please try again. vm-invalidpassword: That is not a valid password. Please try again.

vm-isonphone: is on the phone 

vm-isunavail: is unavailable

vm-last: last

vm-leavemsg: Press 5 to leave a message 

vm-login: Comedian Mail. Mailbox?

vm-mailboxfull: sorry but the user's mail box can't accept more messages 

vm-marked-nonurgent: Urgent status removed.

vm-marked-urgent: Message marked urgent. 

vm-message: message

vm-messages: messages 

vm-minutes: minutes

vm-mismatch: The passwords you entered and re-entered did not match. Please try again.

vm-msginstruct: To hear the next message press 6, to repeat this message press 5, to hear the previous message press 4, to delete or undelete this message press zero, to quit voicemail press pound. 

vm-msgsaved: Your message has been saved.

vm-newpassword: Please enter your new password followed by the pound key.

vm-newuser: Welcome to Comedian Mail. First, I will guide you through a short setup process. 

vm-next: Press 6 to play the next message.

vm-no: no

vm-nobodyavail: Nobody is available to take your call at the moment

vm-nobox: you cannot reply to this message because the sender does not have a mailbox 

vm-nomore: No more messages.

vm-nonumber: i'm afraid i don't know who sent this message 

vm-num-i-have: the number i have is

vm-onefor: Press 1 for

vm-onefor-full: Press one to listen to ...

vm-options: Press 1 to record your unavailable message, press 2 to record your busy message, press 3 to record your name, press 4 to record your temporary greeting, press 5 to change your password, press star to return to the main menu.

vm-opts: Press 2 to change folders, press 3 for advanced options, press zero for mailbox options.

vm-opts-full: press 2 to access messages saved in other folders. Press 3 to record a message for another mailbox. Press 0 for greetings and password management.

vm-passchanged: Your passwords have been changed. 

vm-password: password

vm-press: press

vm-prev: Press 4 for the previous message 

vm-reachoper: press 0 to reach an operator

vm-rec-busy: After the tone say your busy message and then press the pound key. 

vm-rec-name: After the tone say your name and then press the pound key.

vm-rec-temp: After the tone, say your temporary message, and then press the pound key. 

vm-rec-unv: After the tone say your unavailable message and then press the pound key. 

vm-received: received

vm-record-prepend: At the tone, please record an introduction to the forwarded message. When done, press the pound sign. 

vm-reenterpassword: Please re-enter your password followed by the pound key.

vm-repeat: Press 5 to repeat the current message.

vm-review: press 1 to accept this recording press 2 to listen to it press 3 to rerecord your message 

vm-review-nonurgent: Press 4 to remove the urgent status of this message.

vm-review-urgent: Press 4 to mark this message as urgent. 

vm-saved: saved

vm-savedto: saved to

vm-savefolder: Which folder should I save the message to?

vm-savemessage: or 9 to save this message

vm-saveoper: press 1 to accept this recording, otherwise, please continue to hold 

vm-sorry: I'm sorry I did not understand your response.

vm-star-cancel: press star to cancel

vm-starmain: press star to return to the main menu

vm-tempgreetactive: Your temporary greeting is currently active

vm-tempgreeting2: press 1 to record your temporary greeting, or press 2 to erase your temporary greeting

vm-tempgreeting: press 1 to record your temporary greeting

vm-tempremoved: Your temporary greeting has been removed 

vm-then-pound: then press pound

vm-theperson: The person at extension

vm-tmpexists: There is a temporary greeting, which overrides your standard greetings. 

vm-tocallback: press 2 to call the person who sent this message

vm-tocallnum: press 1 to call this number 

vm-tocancel: or pound to cancel.

vm-tocancelmsg: press star to cancel this message 

vm-toenternumber: press 1 to enter a number

vm-toforward: Press 8 to forward the message to another user 

vm-tohearenv: press 3 to hear the message envelope

vm-tomakecall: press 4 to place an outgoing call 

vm-tooshort: your message is too short

vm-toreply: press 1 to send a reply

vm-torerecord: press 3 to rerecord your message 

vm-Urgent: urgent

vm-undelete: Press 7 to undelete this message 

vm-undeleted: Message undeleted.

vm-unknown-caller: from an unknown caller

vm-whichbox: To leave a message, please enter a mailbox number. 

vm-youhave: you have

to

Mobile calls have been disabled

International calls have been disabled

local urban Calls have been disabled

Do Not Disturb is deactivated

Do Not Disturb is activated

This option will delete all messages in the voicemail if you are sure type seven otherwise hang up.

Call Forwarding has been deactivated

Call Forwarding has been activated

unconditionally

when busy

if unavailable

I'm sorry but this is not a valid extension please try again.

invalid option

I'm sorry but this is not a valid extension please try again.

this extension is not redirected.

This extension is redirected.

the voicemail service has been disabled.

the voicemail service has been enabled.

conf-hasjoin: is now in the conference. conf-hasleft: has left the conference.

conf-invalid: That is not a valid conference number. Please try again. conf-invalidpin: That pin is invalid for this conference.

conf-kicked: You have been kicked from this conference conf-leaderhasleft: The leader has left the conference. conf-locked: This conference is locked!

conf-lockednow: The conference is now locked conf-muted: You are now muted

conf-noempty: No empty conferences currently exist. conf-nonextended: The conference cannot be extended.

conf-onlyone: There is currently one other participant in the conference. conf-onlyperson: You are currently the only person in this conference. conf-otherinparty: other participants in the conference

conf-placeintoconf: You will now be placed into the conference. conf-thereare: There are currently

conf-unlockednow: The conference is now unlocked conf-unmuted: You are now unmuted

conf-usermenu: Please press 1 to mute or unmute yourself, 4 or 6 to decrease or increase the conference volume, 7 or 9 to decrease or increase your volume, or 8 to exit.

conf-usermenu-162: Please press 1 to mute or unmute yourself, 4 or 6 to decrease or increase the conference volume, 5 to extend the conference, 7 or 9 to decrease or increase your volume, or 8 to exit.

conf-userswilljoin: users will join the conference. conf-userwilljoin: user will join the conference.

conf-waitforleader: The conference will begin when the leader arrives.

demo-abouttotry: I am about to attempt an Inter-Asterisk Exchange connection to a demonstration server located at Digium. In order for this to work you must already be connected to the Internet. Please wait a moment while I attempt to make the connection.

demo-congrats: Congratulations. You have successfully installed and executed the Asterisk open source PBX. You have also installed a set of sample sounds and configuration files that should help you to get started. Like a normal PBX you will navigate this demonstration by dialing digits. If you are using a console channel driver instead of a real phone you can use the dial, answer, and hang up commands to simulate the actions of

a standard telephone.

demo-echodone: The echo test has been completed.

demo-echotest: You are about to enter an echo test. In this mode everything you say will be repeated back to you just as soon as it is received. The purpose of this test is to give you an audible sense of the latency between you and the machine that is running the echo test application. You may end the test by hanging up or by pressing the pound key.

demo-enterkeywords: Please enter one or more keywords separated by * and then press the pound key.

demo-instruct: If you would like to learn more technical information about Asterisk dial 2 now. If you'd like to test out the voice over IP capabilities of Asterisk you can dial 500 to attempt an Inter-Asterisk Exchange or IAX connection to a demonstration server at Digium. In order for this test to work you will need to be connected to the Internet and have at least a 28.8 kilobit modem. To execute an echo test dial 600. This test is most useful when you have connected to this Asterisk server from a remote location. The sample configuration also has a single user with extension

1234 and password 4242. That user is configured to ring the console when their extension is dialed. If you dial 1234 you can try to ring the console. If the console is busy or unavailable you will be given the option to leave voicemail. To check voice mail for the user dial extension 8500 to enter the voicemail system. Finally, you can press the pound key to disconnect from the PBX.

demo-moreinfo: Asterisk is an Open Source full-featured PBX and IVR platform that runs on the linux operating system. For more information, visit www.asterisk.org.

demo-nogo: I am afraid I was unable to create a connection to the Digium demonstration Asterisk server. You may find some helpful debugging information on the Asterisk console.

demo-nomatch: I'm sorry there are no matches for those keywords

demo-thanks: Goodbye. Thank you for trying out the Asterisk Open Source PBX. dictate/both_help: press * to toggle pause, press # to enter a new dictation filename dictate/enter_filename: Enter a numeric dictation filename followed by # or just # to exit dictate/forhelp: press 0 for help

dictate/pause: pause dictate/paused: paused

dictate/play_help: press 1 to switch to record mode, press 2 to toggle fast playback, press 7 to jump backwards, press 8 to jump forwards dictate/playback: playback

dictate/playback_mode: playback mode dictate/record: record

dictate/record_help: press 1 to switch to playback mode, press 8 to truncate the file and start over dictate/record_mode: record mode

dictate/truncating_audio: truncating audio digits/0: zero

digits/10: ten digits/11: eleven digits/12: twelve digits/13: thirteen digits/14: fourteen digits/15: fifteen digits/16: sixteen digits/17: seventeen digits/18: eighteen digits/19: nineteen digits/1: one

digits/20: twenty digits/2: two digits/30: thirty digits/3: three digits/40: forty digits/4: four digits/50: fifty digits/5: five digits/60: sixty digits/6: six digits/70: seventy digits/7: seven digits/80: eighty digits/8: eight digits/90: ninety digits/9: nine digits/a-m: A.M. digits/at: at

digits/day-0: Sunday digits/day-1: Monday digits/day-2: Tuesday digits/day-3: Wednesday digits/day-4: Thursday digits/day-5: Friday digits/day-6: Saturday digits/dollars: dollars digits/h-10: tenth

digits/h-11: eleventh digits/h-12: twelfth digits/h-13: thirteenth digits/h-14: fourteenth digits/h-15: fifteenth digits/h-16: sixteenth digits/h-17: seventeenth digits/h-18: eighteenth digits/h-19: nineteenth digits/h-1: first

digits/h-20: twentieth digits/h-2: second digits/h-30: thirtieth digits/h-3: third digits/h-4: fourth digits/h-5: fifth digits/h-6: sixth digits/h-7: seventh digits/h-8: eighth digits/h-9: ninth

digits/hundred: hundred digits/million: million digits/minus: minus digits/mon-0: January digits/mon-10: November digits/mon-11: December digits/mon-1: February digits/mon-2: March digits/mon-3: April digits/mon-4: May digits/mon-5: June digits/mon-6: July digits/mon-7: August digits/mon-8: September digits/mon-9: October digits/oclock: o'clock digits/oh: oh

digits/p-m: P.M. digits/pound: pound digits/star: star digits/thousand: thousand digits/today: today digits/tomorrow: tomorrow digits/yesterday: yesterday

dir-firstlast: ... letters of your party's first or last name.

dir-instr: If this is the person you are looking for press 1 now, otherwise please press star now.

dir-intro-fn: Welcome to the directory. Please enter the first three letters of your party's first name using your touch tone keypad. Use the 7 key for

Q and the 9 key for Z.

dir-intro: Welcome to the directory. Please enter the first three letters of your party's last name using your touch tone keypad. Use the 7 key for Q

and the 9 key for Z.

dir-last: ... letters of your party's last name. dir-multi1: Press ...

dir-multi2: ... for ...

dir-multi3: ... extension ...

dir-multi9: Press 9 for more entries.

dir-nomatch: No directory entries match your search.

dir-nomore: There are no more compatible entries in the directory. dir-pls-enter: Please enter the first ...

dir-usingkeypad: ... using your touchtone keypad. Use the 7 key for Q, and the 9 key for Z. dir-welcome: Welcome to the directory

dollars: dollars

followme/call-from.wav: incoming call from

followme/no-recording.wav: you have an incoming call followme/options.wav: press 1 to accept this call, or 2 to reject it

followme/pls-hold-while-try.wav: please hold while I try to locate the person you are calling followme/sorry.wav: I'm sorry, but I was unable to locate the person you are calling followme/status.wav: the person you are calling is not at their desk; I will try to locate them for you hello-world: Hello world.

hours: hours

invalid: I am sorry, that's not a valid extension. Please try again. letters/ascii34: quote

letters/ascii36: dollar sign letters/ascii37: percent letters/ascii38: ampersand letters/ascii39: tick letters/ascii40: open parenthesis

letters/ascii41: close parenthesis letters/ascii42: star letters/ascii44: comma letters/ascii58: colon letters/ascii59: semicolon letters/ascii60: less than letters/ascii62: greater than letters/ascii63: question mark letters/ascii91: left bracket letters/ascii93: right bracket letters/ascii96: backtick letters/ascii92: backslash letters/ascii94: caret letters/ascii95: underscore letters/ascii123: left brace letters/ascii124: pipe letters/ascii125: right brace letters/ascii126: tilde letters/asterisk: asterisk

letters/a: a letters/at: at [@] letters/b: b letters/c: c letters/d: d

letters/dash: dash [-] letters/dollar: dollar [$] letters/dot: dot [.] letters/e: e

letters/equals: equals [=]

letters/exclaimation-point: exclaimation-point [!]

letters/f: f letters/g: g letters/h: h letters/i: i letters/j: j letters/k: k letters/l: l letters/m: m letters/n: n letters/o: o letters/p: p

letters/plus: plus [+]

letters/q: q letters/r: r letters/s: s

letters/slash: slash [/]

letters/space: space [ ]

letters/t: t letters/u: u letters/v: v letters/w: w letters/x: x letters/y: y letters/z: z letters/zed: zed minutes: minutes

pbx-invalid: I am sorry, that's not a valid extension. Please try again.

pbx-invalidpark: I am sorry, there is no call parked on that extension. Please try again. pbx-transfer: Transfer.

phonetic/9_p: niner phonetic/a_p: alpha phonetic/b_p: bravo phonetic/c_p: charlie phonetic/d_p: delta phonetic/e_p: echo phonetic/f_p: foxtrot phonetic/g_p: golf phonetic/h_p: hotel phonetic/i_p: india phonetic/j_p: juliet phonetic/k_p: kilo phonetic/l_p: lima phonetic/m_p: mike phonetic/n_p: november phonetic/niner: niner phonetic/o_p: oscar phonetic/p_p: papa phonetic/q_p: quebec phonetic/r_p: romeo phonetic/s_p: sierra phonetic/t_p: tango phonetic/u_p: uniform phonetic/v_p: victor phonetic/w_p: whiskey phonetic/x_p: xray phonetic/y_p: yankee phonetic/z_p: zulu

priv-callee-options: Dial 1 if you wish this caller to reach you directly now, and in the future. Dial 2 if you wish to send this caller to voicemail now and forevermore. Dial 3 to send this caller to the torture menus, now and forevermore. Dial 4 to send this caller to a polite "don't call" menu, now and forevermore. Dial 5 to allow this caller to come straight thru to you in the future, but just this once, send them to voicemail.

priv-callpending: I have a caller waiting, who introduces themselves as:

priv-introsaved: Thank you. Please hold, while I attempt to connect you with your party!

priv-recordintro: At the tone, please say your name. privacy-incorrect: I'm sorry, that number is not valid.

privacy-prompt: Please enter your phone number, starting with the area code. privacy-thankyou: Thank you.

privacy-unident: The party you are trying to reach does not accept unidentified calls. queue-callswaiting: Waiting to speak with a representative

queue-holdtime: The estimated hold time is currently queue-less-than: less than

queue-minutes: Minutes

queue-periodic-announce: All of our represenatives are currently busy. Please stay on the line and your call will be answered by the next available representative.

queue-quantity1: Currently, there are more than ...

queue-quantity2: ... callers waiting to speak with a representative. queue-reporthold: Hold time

queue-seconds: Seconds

queue-thankyou: Thank you for your patience queue-thereare: You are currently caller number

queue-youarenext: Your call is now first in line and will be answered by the next available representative.

screen-callee-options: You have these options: Dial 1 if you wish to immediately connect to the incoming call. Dial 2 if you wish to send this caller to voicemail. Dial 3 to send this caller to the torture menus. Dial 4 to send this caller to a polite "don't call" menu.

seconds: seconds

silence/1: (1 second of silence) silence/2: (2 seconds of silence) silence/3: (3 seconds of silence) silence/4: (4 seconds of silence) silence/5: (5 seconds of silence) silence/6: (6 seconds of silence) silence/7: (7 seconds of silence) silence/8: (8 seconds of silence) silence/9: (9 seconds of silence)

silence/10: (10 seconds of silence)

spy-agent: Agent

spy-console: Console spy-dahdi: DAHDI

spy-h323: H.323

spy-iax2: IAX (note: does not say "2")

spy-iax: IAX

spy-jingle: Jingle spy-local: Local spy-mgcp: MGCP

spy-misdn: M I S D N

spy-mobile: Bluetooth Mobile spy-nbs: N B S

spy-sip: SIP

spy-skinny: Skinny spy-unistim: Unistim

spy-usbradio: USB Radio spy-zap: Zap

ss-noservice: The number you have dialed is not in service. Please check the number and try again. transfer: Please hold while I try that extension.

tt-allbusy: All representatives of the household are currently assisting other telemarketers. Please hold and your call will be answered in the order it was received.

tt-monkeys: [sound of monkeys screaming]

tt-monkeysintro: They have been carried away by monkeys tt-somethingwrong: Something is terribly wrong

tt-weasels: Weasels have eaten our phone system vm-Cust1: folder 5

vm-Cust2: folder 6 vm-Cust3: folder 7 vm-Cust4: folder 8 vm-Cust5: folder 9 vm-Family: family vm-Friends: friends vm-INBOX: new

vm-Old: old

vm-Work: work

vm-advopts: press 3 for advanced options vm-and: and

vm-calldiffnum: press 2 to enter a different number vm-changeto: Change to which folder?

vm-delete: Press 7 to delete this message. vm-deleted: Message deleted.

vm-dialout: please wait while i connect your call vm-duration: This message lasts ...

vm-enter-num-to-call: please enter the number you wish to call vm-extension: extension

vm-first: first vm-for: for

vm-forward: Press 1 to enter an extension, press 2 to use the directory

vm-forward-multiple: press 1 to send this message, or 2 to add another recipient.

vm-forwardoptions: press 1 to prepend a message or 2 to forward the message without prepending vm-from-extension: message from extension

vm-from-phonenumber: message from phone number vm-from: from

vm-goodbye: Goodbye

vm-helpexit: Press star for help or pound to exit. vm-incorrect-mailbox: Login incorrect. Mailbox? vm-incorrect: Login incorrect.

vm-instructions: To look into your messages press 1 now. You may quit voicemail at any time by pressing the pound key.

vm-intro: Please leave your message after the tone. When done hang up or press the pound key. (simple tone sound plays)

vm-invalid-password: That password does not meet the minimum requirements for this mailbox. Please try again. vm-invalidpassword: That is not a valid password. Please try again.

vm-isonphone: is on the phone vm-isunavail: is unavailable

vm-last: last

vm-leavemsg: Press 5 to leave a message vm-login: Comedian Mail. Mailbox?

vm-mailboxfull: sorry but the user's mail box can't accept more messages vm-marked-nonurgent: Urgent status removed.

vm-marked-urgent: Message marked urgent. vm-message: message

vm-messages: messages vm-minutes: minutes

vm-mismatch: The passwords you entered and re-entered did not match. Please try again.

vm-msginstruct: To hear the next message press 6, to repeat this message press 5, to hear the previous message press 4, to delete or undelete

this message press zero, to quit voicemail press pound. vm-msgsaved: Your message has been saved.

vm-newpassword: Please enter your new password followed by the pound key.

vm-newuser: Welcome to Comedian Mail. First, I will guide you through a short setup process. vm-next: Press 6 to play the next message.

vm-no: no

vm-nobodyavail: Nobody is available to take your call at the moment

vm-nobox: you cannot reply to this message because the sender does not have a mailbox vm-nomore: No more messages.

vm-nonumber: i'm afraid i don't know who sent this message vm-num-i-have: the number i have is

vm-onefor: Press 1 for

vm-onefor-full: Press one to listen to ...

vm-options: Press 1 to record your unavailable message, press 2 to record your busy message, press 3 to record your name, press 4 to record your temporary greeting, press 5 to change your password, press star to return to the main menu.

vm-opts: Press 2 to change folders, press 3 for advanced options, press zero for mailbox options.

vm-opts-full: press 2 to access messages saved in other folders. Press 3 to record a message for another mailbox. Press 0 for greetings and password management.

vm-passchanged: Your passwords have been changed. vm-password: password

vm-press: press

vm-prev: Press 4 for the previous message vm-reachoper: press 0 to reach an operator

vm-rec-busy: After the tone say your busy message and then press the pound key. vm-rec-name: After the tone say your name and then press the pound key.

vm-rec-temp: After the tone, say your temporary message, and then press the pound key. vm-rec-unv: After the tone say your unavailable message and then press the pound key. vm-received: received

vm-record-prepend: At the tone, please record an introduction to the forwarded message. When done, press the pound sign. vm-reenterpassword: Please re-enter your password followed by the pound key.

vm-repeat: Press 5 to repeat the current message.

vm-review: press 1 to accept this recording press 2 to listen to it press 3 to rerecord your message vm-review-nonurgent: Press 4 to remove the urgent status of this message.

vm-review-urgent: Press 4 to mark this message as urgent. vm-saved: saved

vm-savedto: saved to

vm-savefolder: Which folder should I save the message to?

vm-savemessage: or 9 to save this message

vm-saveoper: press 1 to accept this recording, otherwise, please continue to hold vm-sorry: I'm sorry I did not understand your response.

vm-star-cancel: press star to cancel

vm-starmain: press star to return to the main menu

vm-tempgreetactive: Your temporary greeting is currently active

vm-tempgreeting2: press 1 to record your temporary greeting, or press 2 to erase your temporary greeting vm-tempgreeting: press 1 to record your temporary greeting

vm-tempremoved: Your temporary greeting has been removed vm-then-pound: then press pound

vm-theperson: The person at extension

vm-tmpexists: There is a temporary greeting, which overrides your standard greetings. vm-tocallback: press 2 to call the person who sent this message

vm-tocallnum: press 1 to call this number vm-tocancel: or pound to cancel.

vm-tocancelmsg: press star to cancel this message vm-toenternumber: press 1 to enter a number

vm-toforward: Press 8 to forward the message to another user vm-tohearenv: press 3 to hear the message envelope

vm-tomakecall: press 4 to place an outgoing call vm-tooshort: your message is too short

vm-toreply: press 1 to send a reply

vm-torerecord: press 3 to rerecord your message vm-Urgent: urgent

vm-undelete: Press 7 to undelete this message vm-undeleted: Message undeleted.

vm-unknown-caller: from an unknown caller

vm-whichbox: To leave a message, please enter a mailbox number. vm-youhave: you have