Crmgo Blog

Proměnné Asterisk

Proměnné Asterisk

Předdefinované kanálově specifické proměnné Níže je uveden seznam kanálově specifických proměnných, které jsou nastaveny přímo Asteriskem a jejichž hodnoty můžete použít v dialplanu. Na rozdíl od uživatelem definovaných proměnných jsou proměnné definované Asteriskem citlivé na velikost písmen. ${ACCOUNTCODE} : Kód účtu, pokud…

Proměnné Asterisk

Předdefinované kanálově specifické proměnné

Níže uvedený seznam obsahuje kanálově specifické proměnné, které jsou nastaveny přímo Asteriskem a jejichž hodnoty můžete použít v plánu volání. Na rozdíl od uživatelem definovaných proměnných jsou proměnné definované Asteriskem citlivé na velikost písmen.

  • ${ACCOUNTCODE}: Kód účtu, pokud je přiřazen - viz Billing v Asterisku. (Zastaralé od verze 1.2.0 a odstraněné ve verzi 1.4.0. Použijte ${CDR(accountcode)}.)
  • ${ANSWEREDTIME}: Čas, kdy byla hovor přijata.
  • ${BLINDTRANSFER}: Aktivní SIP kanál, který uskutečňuje hovor. Zde bude definován název SIP kanálu, který uskutečňuje hovor při přenosu typu blind - viz BLINDTRANSFER?
  • ${CALLERID(all)} : Aktuální hodnota jména a čísla z CallerID - Viz sekce Nastavení CallerID?, věnovaná práci s CallerID v Asterisku verze 1.4
  • ${CALLERID(name)} : Aktuální hodnota jména z CallerID - Proměnná ${CALLERIDNAME} byla používána v Asterisku do verze 1.2.0, je označena jako ZASTARALÁ od verze 1.2.0 a odstraněná ve verzi 1.4.
  • ${CALLERID(num)} : Aktuální hodnota čísla z CallerID - Proměnná ${CALLERIDNUM} byla používána v Asterisku do verze 1.2.0, je označena jako ZASTARALÁ od verze 1.2.0 a odstraněná ve verzi 1.4. (Poznámka: Hodnota této proměnné nemusí být nutně číselná, jak by mohlo naznačovat její jméno, a její hodnotou může být i znak mezery. Pro příkazy, které pracují s hodnotou této proměnné (např. 'GotoIf'), je třeba tento fakt zohlednit).
  • ${CALLINGPRES}: Proměnná obsahující PRI Call ID Presentation, pro příchozí hovory (Viz callingpres )
  • ${CHANNEL}: Aktuální název kanálu
  • ${CONTEXT}: Aktuální název kontextu
  • ${DATETIME}: Aktuální čas a datum ve formátu: DDMMYYYY-HH:MM:SS Tato proměnná je zastaralá v Asterisku verze 1.2, místo ní použijte konstrukci: ${STRFTIME(${EPOCH},,%d%mNaVH:NaVS)})
  • ${DIALEDPEERNAME}: Jméno volaného účastníka. V současné době nefunguje, viz DIALEDPEERNAME?
  • ${DIALEDPEERNUMBER}: Číslo volaného účastníka. V současné době nefunguje, viz DIALEDPEERNUMBER?
  • ${DIALEDTIME}: Čas, kdy bylo číslo vytočeno. (Funguje pouze, pokud volaný účastník přijal hovor?!)
  • ${DIALSTATUS}: Stav hovoru. Viz DIALSTATUS
  • ${DNID}: Dialed Number Identifier. Pro podporu omezení odchozích hovorů, viz DNID?
  • ${EPOCH}: Aktuální čas ve formátu UNIX (počet sekund uplynulých od 1. ledna 1970)
  • ${EXTEN}: Aktuální extenze
  • ${HANGUPCAUSE}: Poslední kód návratu vrácený po ukončení spojení pro Zap kanál připojený k rozhraní PRI
  • ${INVALID_EXTEN}: Požadovaná extenze, pro případy, kdy je přesměrována na zpracování i (neplatné) extenze
  • ${LANGUAGE}: Aktuální jazyk zpráv. Viz Asterisk multi-language?
  • ${MEETMESECS}: Počet sekund, po které uživatel účastnil konference MeetMe?.
  • ${PRIORITY}: Aktuální hodnota priority.
  • ${RDNIS}: Caller ID, pro účastníka provádějícího přesměrování DNIS. Pro podporu omezení odchozích hovorů, viz RDNIS?
  • ${SIPDOMAIN}: Cílová doména pro odchozí SIP hovor (pokud je přítomna)
  • ${SIP_CODEC}: Používá se k nastavení kodeku pro hovor přes SIP kanál (předpokládá se, že nefunguje ve verzi 1.0.1, funguje ve 1.0.3 & 1.0.4, nejistota ohledně 1.0.2)
  • ${SIPCALLID}: Hodnota hlavičkového pole Call-ID: v zprávách SIP dialogu.
  • ${SIPUSERAGENT}: Hodnota hlavičkového pole "user agent" v zprávách SIP dialogu.
  • ${TIMESTAMP}: Aktuální datum a čas ve formátu: YYYYMMDD-HHMMSS Tato proměnná je zastaralá v Asterisku verze 1.2, místo ní použijte konstrukci: ${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)})
  • ${TRANSFERCAPABILITY}: Typ kanálu.
  • ${TXTCIDNAME}: Výsledek aplikace TXTCIDName (viz níže)
  • ${UNIQUEID}: Aktuální unikátní identifikátor hovoru
  • ${TOUCH_MONITOR}: Používá se pro "záznam jedním stiskem" (viz features.conf a příznaky wW pro příkaz dial). Pokud je nastavena na obou koncích spojení, pak tato proměnná obsahuje app_args (argumenty) pro aplikaci app_monitor, jinak pro ni budou použity výchozí argumenty: WAV||m
  • ${CONTEXT}: Název aktuálního kontextu
  • ${DATETIME}: Aktuální datum a čas ve formátu: !YYYY-MM-DD_HH:MM:SS
  • ${TIMESTAMP}: Aktuální datum a čas ve formátu: YYYYMMDD-HHMMSS
  • ${EPOCH}: Aktuální čas UNIX epochy (počet sekund od 1. ledna 1970)
  • ${EXTEN}: Aktuální telefonní číslo (extension)
  • ${INVALID_EXTEN}: Zvolené telefonní číslo při přesměrování na neplatnou extension (i)
  • ${LANGUAGE}: Aktuální nastavení jazyka. Viz podpora národních jazyků v Asterisku
  • ${PRIORITY}: Aktuální priorita
  • ${CALLINGPRES}: Proměnná prezentace ID hovoru PRI pro příchozí hovory (viz callingpres)
  • ${CALLERID}: Identifikátor volajícího (jméno a číslo)
  • ${CALLERIDNAME}: Identifikátor volajícího: jméno
  • ${CALLERIDNUM}: Identifikátor volajícího: číslo
  • ${CHANNEL}: Název aktuálního kanálu
  • ${RDNIS}: Aktuální přesměrovávající DNIS, identifikátor volajícího, který přesměroval hovor. Viz RDNIS
  • ${SIPDOMAIN}: Doména cíle SIP příchozího hovoru (pokud je to vhodné)
  • ${SIP_CODEC}: Používá se k nastavení kodeku SIP pro hovor
  • ${SIPCALLID}: Hlavička Call-ID: dialogu SIP
  • ${SIPUSERAGENT}: Hlavička uživatelského agenta SIP
  • ${UNIQUEID}: Unikátní ID aktuálního hovoru SIP
  • ${HANGUPCAUSE}: Poslední návratový kód ukončení hovoru na kanálu Zap připojeném k rozhraní PRI
  • ${DNID}: Identifikátor volaného čísla
  • ${ACCOUNTCODE}: Kód účtu, pokud je zadán - viz fakturace Asterisku

 

Proměnné používané různými aplikacemi

Některé aplikace používají hodnoty „kanálových“ proměnných nebo do nich vracejí výsledky své činnosti.

  • Příkaz AgentCallbackLogin? vrací v ${AGENTBYCALLERID_${CALLERID}}: ID úspěšně autorizovaného agenta.
  • Příkaz ChanIsAvail vrací v ${AVAILCHAN}: první dostupný kanál
  • Příkaz Dial používá hodnotu proměnné ${VXML_URL}: pro odeslání XML URL do telefonu Cisco 7960.
  • Příkaz Dial používá hodnotu proměnné ${ALERT_INFO}: pro předání informací o typu hovoru telefonům Cisco.
  • Příkaz Dial vrací v ${CAUSECODE}: Kód chyby, pokud se hovor nezdařil.
  • Příkaz Dial vrací v ${DIALSTATUS}: textový kód výsledku poslední pokusu o spojení s volaným.
  • Příkaz Dial používá hodnotu proměnné ${TRANSFER_CONTEXT}: Pokud je tato proměnná nastavena, při provádění operace předání hovoru (#transfer), bude použita pro provádění příkazů extenze z uvedeného kontextu.
  • Příkaz EnumLookup vrací do proměnné ${ENUM}: výsledek vyhledávání.
  • Příkaz Hangup používá hodnotu proměnné ${PRI_CAUSE} pro nastavení návratových kódů rozhraní PRI.
  • Příkaz MeetMe používá hodnotu proměnné {MEETME_AGI_BACKGROUND}: pro určení AGI skriptu, který má být spuštěn.
  • Příkaz MeetMe vrací do proměnné ${MEETMESECS}: počet sekund, které uživatel strávil v konferenci.
  • Příkaz Playback vrací do proměnné ${PLAYBACKSTATUS}: Výsledek provedení příkazu (FAILED|SUCCESS).
  • Příkaz Queue vrací do proměnné ${QUEUESTATUS}: Důvod, proč hovor umístěný ve frontě ji opustil.
  • Příkaz TXTLookup vrací do proměnné ${TXTCIDNAME}: výsledek vyhledávání v DNS.
  • Příkaz VoiceMail vrací do proměnné ${VMSTATUS}: výsledek provedení aplikace VoiceMail?. Možné hodnoty: SUCCESS | USEREXIT | FAILED .

 

Promenné specifické pro makra

Při použití kontextů jako maker jsou k dispozici další „kanálové“ proměnné specifické pro makra.

  • ${ARG1}: první argument předaný makru
  • ${ARG2}: druhý argument předaný makru (a tak dále ...)
  • ${MACRO_CONTEXT}: Název kontextu extenze, která toto makro vyvolala
  • ${MACRO_EXTEN}: Extence, která toto makro vyvolala
  • ${MACRO_OFFSET}: Nastavuje makro pro určení priority, od které bude pokračovat provádění příkazů po dokončení práce makra
  • ${MACRO_PRIORITY}: Priorita extence v okamžiku vyvolání tohoto makra

 

Proměnné prostředí

Přístup k unixovým proměnným prostředí můžete získat pomocí následující syntaxe:

${ENV(''foo'')}

  • ${ENV(ASTERISK_PROMPT)} : aktuální CLI prompt? pro Asterisk.
  • ${ENV(RECORDED_FILE)} : název souboru, pod kterým byla uložena poslední nahrávka provedená příkazem Record (dostupné v CVS > 2004-03-21)

Poznámka: příspěvek mohl vzniknout s pomocí AI a lidskou redakcí. Odpovědný: Dmytro Lomaka, Kaltenkirchen.