Keywords: asterisk

# 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.

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

    ${CDR(accountcode)}    * Account code (if specified)
    ${BLINDTRANSFER}         The name of the channel on the other side of a blind transfer
    ${BRIDGEPEER}            Bridged peer
    ${BRIDGEPVTCALLID}       Bridged peer PVT call ID (SIP Call ID if a SIP call)
    ${CALLERID(ani)}       * Caller ANI (PRI channels)
    ${CALLERID(ani2)}      * ANI2 (Info digits) also called Originating line information or OLI
    ${CALLERID(all)}       * Caller ID
    ${CALLERID(dnid)}      * Dialed Number Identifier
    ${CALLERID(name)}      * Caller ID Name only
    ${CALLERID(num)}       * Caller ID Number only
    ${CALLERID(rdnis)}     * Redirected Dial Number ID Service
    ${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
    ${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
    ${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
    ${ENTITYID}            * Global Entity ID set automatically, or from asterisk.conf

Subsections

- Application return values
- Various application variables
- The MeetMe Conference Bridge
- The VoiceMail() application
- The VMAuthenticate() application
- DUNDiLookup()
- chan_dahdi
- chan_sip
- chan_agent
- The Dial() application
- The chanisavail() application
- Dialplan Macros
- The ChanSpy() application
- OSP