Asterisk Detailed Variable List

Asterisk Detailed Variable List


Asterisk standard channel variables  

There are a number of variables that are defined or read  
by Asterisk. Here is a list of them. More information is  
available in each application's help text. All these variables  
are in UPPER CASE only.  

to diaplay all channel variable use this command  

DumpChan( <min_verbose_level>)  

Variables marked with a * are builtin functions and can't be set,  
only read in the dialplan. Writes to such variables are silently  
ignored.  

${ACCOUNTCODE} * Account code (if specified) (Deprecated; use ${CDR(accountcode)})  
${BLINDTRANSFER} The name of the channel on the other side of a blind transfer  
${BRIDGEPEER} Bridged peer  
${CALLERANI} * Caller ANI (PRI channels) (Deprecated; use ${CALLERID(ani)})  
${CALLERID} * Caller ID (Deprecated; use ${CALLERID(all)})  
${CALLERIDNAME} * Caller ID Name only (Deprecated; use ${CALLERID(name)})  
${CALLERIDNUM} * Caller ID Number only (Deprecated; use ${CALLERID(num)})  
${CALLINGANI2} * Caller ANI2 (PRI channels)  
${CALLINGPRES} * Caller ID presentation for incoming calls (PRI channels)  
${CALLINGTNS} * Transit Network Selector (PRI channels)  
${CALLINGTON} * Caller Type of Number (PRI channels)  
${CHANNEL} * Current channel name  
${CONTEXT} * Current context  
${DATETIME} * Current date time in the format: DDMMYYYY-HH:MM:SS (Deprecated; use ${STRFTIME(${EPOCH},,%d%m%Y-%H:%M:%S)})  
${DB_RESULT} Result value of DB_EXISTS() dial plan function  
${DNID} * Dialed Number Identifier (Deprecated; use ${CALLERID(dnid)})  
${EPOCH} * Current unix style epoch  
${EXTEN} * Current extension  
${ENV(VAR)} Environmental variable VAR  
${GOTO_ON_BLINDXFR} Transfer to the specified context/extension/priority  
after a blind transfer (use ^ characters in place of  
| to separate context/extension/priority when setting  
this variable from the dialplan)  
${HANGUPCAUSE} * Asterisk cause of hangup (inbound/outbound)  
${HINT} * Channel hints for this extension  
${HINTNAME} * Suggested Caller*ID name for this extension  
${INVALID_EXTEN} The invalid called extension (used in the "i" extension)  
${LANGUAGE} * Current language (Deprecated; use ${LANGUAGE()})  
${LEN(VAR)} * String length of VAR (integer)  
${PRIORITY} * Current priority in the dialplan  
${PRIREDIRECTREASON} Reason for redirect on PRI, if a call was directed  
${RDNIS} * Redirected Dial Number ID Service (Deprecated; use ${CALLERID(rdnis)})  
${TIMESTAMP} * Current date time in the format: YYYYMMDD-HHMMSS (Deprecated; use ${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)})  
${TRANSFER_CONTEXT} Context for transferred calls  
${FORWARD_CONTEXT} Context for forwarded calls  
${UNIQUEID} * Current call unique identifier  
${SYSTEMNAME} * value of the systemname option of asterisk.conf  

Application return values  

In Asterisk 1.2, many applications return the result in a variable  
instead of, as in Asterisk 1.0, changing the dial plan priority (+101).  
For the various status values, see each application's help text.  

${AGISTATUS} * agi()  
${AQMSTATUS} * addqueuemember()  
${AVAILSTATUS} * chanisavail()  
${CHECKGROUPSTATUS} * checkgroup()  
${CHECKMD5STATUS} * checkmd5()  
${CPLAYBACKSTATUS} * controlplayback()  
${DIALSTATUS} * dial() - see also ${HANGUPCAUSE}  
${DBGETSTATUS} * dbget()  
${ENUMSTATUS} * enumlookup()  
${HASVMSTATUS} * hasnewvoicemail()  
${LOOKUPBLSTATUS} * lookupblacklist()  
${OSPAUTHSTATUS} * ospauth()  
${OSPLOOKUPSTATUS} * osplookup()  
${OSPNEXTSTATUS} * ospnext()  
${OSPFINISHSTATUS} * ospfinish()  
${PARKEDAT} * parkandannounce()  
${PLAYBACKSTATUS} * playback()  
${PQMSTATUS} * pausequeuemember()  
${PRIVACYMGRSTATUS} * privacymanager()  
${QUEUESTATUS} * queue()  
${RQMSTATUS} * removequeuemember()  
${SENDIMAGESTATUS} * sendimage()  
${SENDTEXTSTATUS} * sendtext()  
${SENDURLSTATUS} * sendurl()  
${SYSTEMSTATUS} * system()  
${TRANSFERSTATUS} * transfer()  
${TXTCIDNAMESTATUS} * txtcidname()  
${UPQMSTATUS} * unpausequeuemember()  
${VMSTATUS} * voicmail()  
${VMBOXEXISTSSTATUS} * vmboxexists()  
${WAITSTATUS} * waitforsilence()  


Various application variables  

${CURL} * Resulting page content for curl()  
${ENUM} * Result of application EnumLookup  
${EXITCONTEXT} Context to exit to in IVR menu (app background())  
or in the RetryDial() application  
${MONITOR} * Set to "TRUE" if the channel is/has been monitored (app monitor())  
${MONITOR_EXEC} Application to execute after monitoring a call  
${MONITOR_EXEC_ARGS} Arguments to application  
${MONITOR_FILENAME} File for monitoring (recording) calls in queue  
${QUEUE_PRIO} Queue priority  
${QUEUE_MAX_PENALTY} Maximum member penalty allowed to answer caller  
${QUEUESTATUS} Status of the call, one of:  
(TIMEOUT | FULL | JOINEMPTY | LEAVEEMPTY | JOINUNAVAIL | LEAVEUNAVAIL)  
${RECORDED_FILE} * Recorded file in record()  
${TALK_DETECTED} * Result from talkdetect()  
${TOUCH_MONITOR} The filename base to use with Touch Monitor (auto record)  
${TOUCH_MONITOR_FORMAT} The audio format to use with Touch Monitor (auto record)  
${TOUCH_MONITOR_OUTPUT} * Recorded file from Touch Monitor (auto record)  
${TXTCIDNAME} * Result of application TXTCIDName  
${VPB_GETDTMF} chan_vpb  

The MeetMe Conference Bridge uses the following variables:  

${MEETME_RECORDINGFILE} Name of file for recording a conference with  
the "r" option  
${MEETME_RECORDINGFORMAT} Format of file to be recorded  
${MEETME_EXIT_CONTEXT} Context for exit out of meetme meeting  
${MEETME_AGI_BACKGROUND} AGI script for Meetme (zap only)  
${MEETMESECS} * Number of seconds a user participated in a MeetMe conference  

The VoiceMail() application uses the following variables:  

${VM_CATEGORY} Sets voicemail category  
${VM_NAME} * Full name in voicemail  
${VM_DUR} * Voicemail duration  
${VM_MSGNUM} * Number of voicemail message in mailbox  
${VM_CALLERID} * Voicemail Caller ID (Person leaving vm)  
${VM_CIDNAME} * Voicemail Caller ID Name  
${VM_CIDNUM} * Voicemail Caller ID Number  
${VM_DATE} * Voicemail Date  
${VM_MESSAGEFILE} * Path to message left by caller  

The VMAuthenticate() application uses the following variables:  

${AUTH_MAILBOX} * Authenticated mailbox  
${AUTH_CONTEXT} * Authenticated mailbox context  

DUNDiLookup() uses the following variables  

${DUNDTECH} * The Technology of the result from a call to DUNDiLookup()  
${DUNDDEST} * The Destination of the result from a call to DUNDiLookup()  

The Zaptel channel sets the following variables:  

${ANI2} * The ANI2 Code provided by the network on the incoming call. (ie, Code 29 identifies call as a Prison/Inmate Call) See also:   NANPA ANI II Digits Assignments  
${CALLTYPE} * Type of call (Speech, Digital, etc)  
${CALLEDTON} * Dialplan for called number on PRI/BRI calls (17=international, 33=national, 65=local, 73=private, 0=unknown). Note: this is a misnomer, TON != dialplan.  
${CALLINGSUBADDR} * Called PRI Subaddress  
${FAXEXTEN} * The extension called before being redirected to "fax"
${PRIREDIRECTREASON} * Reason for redirect, if a call was directed  
${SMDI_VM_TYPE} * When an call is received with an SMDI message, the 'type'  
of message 'b' or 'u'  

The SIP channel uses the following variables:  

${SIPCALLID} * SIP Call-ID: header verbatim (for logging or CDR matching)  
${SIPDOMAIN} * SIP destination domain of an inbound call (if appropriate)  
${SIPUSERAGENT} * SIP user agent  
${SIPURI} * SIP uri  
${SIP_CODEC} Set the SIP codec for a call
${SIP_URI_OPTIONS} * additional options to add to the URI for an outgoing call  
${RTPAUDIOQOS} RTCP QoS report for the audio of this call  
${RTPVIDEOQOS} RTCP QoS report for the video of this call  

The Agent channel uses the following variables:  

${AGENTMAXLOGINTRIES} Set the maximum number of failed logins  
${AGENTUPDATECDR} Whether to update the CDR record with Agent channel data  
${AGENTGOODBYE} Sound file to use for "Good Bye" when agent logs out  
${AGENTACKCALL} Whether the agent should acknowledge the incoming call  
${AGENTAUTOLOGOFF} Auto logging off for an agent  
${AGENTWRAPUPTIME} Setting the time for wrapup between incoming calls  
${AGENTNUMBER} * Agent number (username) set at login  
${AGENTSTATUS} * Status of login ( fail | on | off )  
${AGENTEXTEN} * Extension for logged in agent  

The Dial() application uses the following variables:  

${DIALEDPEERNAME} * Dialed peer name  
${DIALEDPEERNUMBER} * Dialed peer number  
${DIALEDTIME} * Time for the call (seconds)  
${ANSWEREDTIME} * Time from dial to answer (seconds)  
${DIALSTATUS} * Status of the call, one of:  
                (CHANUNAVAIL | CONGESTION | BUSY | NOANSWER  
| ANSWER | CANCEL | DONTCALL | TORTURE)  
${DYNAMIC_FEATURES} * The list of features (from the   applicationmap  section of  
features.conf) to activate during the call, with feature  
names separated by '#' characters  
${LIMIT_PLAYAUDIO_CALLER} Soundfile for call limits  
${LIMIT_PLAYAUDIO_CALLEE} Soundfile for call limits  
${LIMIT_WARNING_FILE} Soundfile for call limits  
${LIMIT_TIMEOUT_FILE} Soundfile for call limits  
${LIMIT_CONNECT_FILE} Soundfile for call limits  
${OUTBOUND_GROUP} Default groups for peer channels (as in SetGroup)  
  • See "show application dial" for more information

The chanisavail() application sets the following variables:  

${AVAILCHAN} * the name of the available channel if one was found
${AVAILORIGCHAN} * the canonical channel name that was used to create the channel  
${AVAILSTATUS} * Status of requested channel  

When using macros in the dialplan, these variables are available  

${MACRO_EXTEN} * The calling extensions  
${MACRO_CONTEXT} * The calling context  
${MACRO_PRIORITY} * The calling priority  
${MACRO_OFFSET} Offset to add to priority at return from macro  

The ChanSpy() application uses the following variables:  

${SPYGROUP} * A ':' (colon) separated list of group names.  
(To be set on spied on channel and matched against the g(grp) option)  

If you compile with OSP support, these variables are used:  

${OSPINHANDLE} OSP handle of in_bound call  
${OSPINTIMELIMIT} Duration limit for in_bound call  
${OSPOUTHANDLE} OSP handle of out_bound call  
${OSPTECH} OSP technology  
${OSPDEST} OSP destination  
${OSPCALLING} OSP calling number  
${OSPOUTTOKEN} OSP token to use for out_bound call  
${OSPOUTTIMELIMIT} Duration limit for out_bound call  
${OSPRESULTS} Number of remained destinations  

Call File extension variables:  

${REASON} The reason why an auto-dialout call failed  




CDR Variables  


If the channel has a cdr, that cdr record has it's own set of variables which  
can be accessed just like channel variables. The following builtin variables  
are available and, unless specified, read-only.  

${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).  


In addition, you can set your own extra variables with a traditional  
Set(CDR(var)=val) to anything you want.  

NOTE  Some CDR values (eg: duration & billsec) can't be accessed until the call has terminated. As of   91617, those values will be calculated on-demand if requested. Until that makes it into a stable release, you can set endbeforehexten=yes in cdr.conf, and then use the "hangup" context to wrap up your call.  

Certain functional variables may be accessed with ${foo(<args>)}. A list  
of these functional variables may be found by typing "show functions"  
at the Asterisk CLI.

你可能感兴趣的:(unix,IE,UP)