Zmienne kanałowe predefiniowane
Poniżej znajduje się lista zmiennych kanałowych ustawianych przez Asterisk, których wartości możesz wykorzystać w planie numeracji. W przeciwieństwie do zmiennych zdefiniowanych przez użytkownika, zmienne definiowane przez Asteriska są czułe na wielkość liter.
- ${ACCOUNTCODE}: Kod konta, jeśli został przypisany – zob. Rozliczenie Asterisk. (zdeklarowana jako przestarzała, począwszy od wersji 1.2.0 i usunięta w wersji 1.4.0. Użyj ${CDR(accountcode)}).
- ${ANSWEREDTIME}: Czas, w którym odebrano połączenie.
- ${BLINDTRANSFER}: Aktywny kanał SIP, który inicjuje połączenie. Tutaj zostanie zdefiniowana nazwa kanału SIP inicjującego połączenie w przypadku transferu typu blind – zob. BLINDTRANSFER?
- ${CALLERID(all)} : Bieżąca wartość nazwy i numeru z CallerID – zob. rozdział Konfiguracja CallerID?, poświęcony obsłudze CallerID w Asterisk w wersji 1.4.
- ${CALLERID(name)} : Bieżąca wartość nazwy z CallerID – Zmienna ${CALLERIDNAME} była używana w Asterisk do wersji 1.2.0; została zadeklarowana jako przestarzała począwszy od wersji 1.2.0 i usunięta w wersji 1.4.
- ${CALLERID(num)} : Bieżąca wartość numeru z CallerID – Zmienna ${CALLERIDNUM} była używana w Asterisk do wersji 1.2.0; została zadeklarowana jako przestarzała począwszy od wersji 1.2.0 i usunięta w wersji 1.4. (Uwaga: wartość tej zmiennej nie musi być liczbową, jak mogłoby się wydawać na podstawie jej nazwy, a jej poprawną wartością może być znak spacji. Dla komend operujących wartością tej zmiennej (np. 'GotoIf') należy uwzględnić ten fakt).
- ${CALLINGPRES}: Zmienna zawierająca prezentację ID wywołania PRI dla połączeń przychodzących (zob. callingpres).
- ${CHANNEL}: Bieżąca nazwa kanału.
- ${CONTEXT}: Bieżąca nazwa kontekstu.
- ${DATETIME}: Bieżący czas i data w formacie: DDMMYYYY-HH:MM:SS Zmienna ta została zadeklarowana jako przestarzała w Asterisk w wersji 1.2; zamiast niej użyj konstrukcji: ${STRFTIME(${EPOCH},,%d%mNaVH:NaVS)}).
- ${DIALEDPEERNAME}: Nazwa wywoływanego abonenta. Obecnie nie działa, zob. DIALEDPEERNAME?.
- ${DIALEDPEERNUMBER}: Numer wywoływanego abonenta. Obecnie nie działa, zob. DIALEDPEERNUMBER?.
- ${DIALEDTIME}: Czas, w którym wybrano numer. (Działa tylko wtedy, gdy wywoływany abonent odebrał połączenie?!).
- ${DIALSTATUS}: Status połączenia. Zob. DIALSTATUS.
- ${DNID}: Identyfikator wybranej liczby (Dialed Number Identifier). W celu obsługi ograniczeń dla połączeń wychodzących, zob. DNID?.
- ${EPOCH}: Bieżący czas w formacie UNIX (liczba sekund minęła od 1 stycznia 1970 roku).
- ${EXTEN}: Bieżący numer wewnętrzny (ekstenzja).
- ${HANGUPCAUSE}: Ostatni kod zwrotny zwrócony po zakończeniu połączenia dla kanału Zap połączonego z interfejsem PRI.
- ${INVALID_EXTEN}: Żądany numer wewnętrzny, w przypadkach gdy jest on przekierowywany do obsługi i (nieprawidłowego) numeru wewnętrznego.
- ${LANGUAGE}: Bieżący język komunikatów. Zob. wielojęzyczność Asterisk?.
- ${MEETMESECS}: Liczba sekund, przez które użytkownik uczestniczył w konferencji MeetMe?.
- ${PRIORITY}: Bieżąca wartość priorytetu.
- ${RDNIS}: Caller ID dla abonenta wykonującego przekierowanie DNIS. W celu obsługi ograniczeń dla połączeń wychodzących, zob. RDNIS?.
- ${SIPDOMAIN}: Domena docelowa dla wychodzącego połączenia SIP (jeśli występuje).
- ${SIP_CODEC}: Służy do ustawienia kodeka dla połączenia przez kanał SIP (prawdopodobnie nie działa w wersji 1.0.1, działa w 1.0.3 i 1.0.4, brak pewności co do wersji 1.0.2).
- ${SIPCALLID}: Wartość pola nagłówka Call-ID: w wiadomościach dialogu SIP.
- ${SIPUSERAGENT}: Wartość pola nagłówka „user agent” w wiadomościach dialogu SIP.
- ${TIMESTAMP}: Bieżąca data i czas w formacie: YYYYMMDD-HHMMSS Zmienna ta została zadeklarowana jako przestarzała w Asterisk w wersji 1.2; zamiast niej użyj konstrukcji: ${STRFTIME(${EPOCH},,%Y%m%d-%H%M%S)}).
- ${TRANSFERCAPABILITY}: Typ kanału.
- ${TXTCIDNAME}: Wynik działania aplikacji TXTCIDName (zob. poniżej).
- ${UNIQUEID}: Bieżący unikalny identyfikator połączenia.
- ${TOUCH_MONITOR}: Służy do „nagrywania jednym naciśnięciem” (zob. features.conf oraz flagi wW dla komendy dial). Jeśli ustawiona na obu końcach połączenia, zmienna ta zawiera app_args (argumenty) dla aplikacji app_monitor, w przeciwnym razie używane są domyślne argumenty: WAV||m.
- ${CONTEXT}: Nazwa bieżącego kontekstu
- ${DATETIME}: Bieżąca data i czas w formacie: !YYYY-MM-DD_HH:MM:SS
- ${TIMESTAMP}: Bieżąca data i czas w formacie: YYYYMMDD-HHMMSS
- ${EPOCH}: Bieżący czas epoki UNIX (liczba sekund od 1 stycznia 1970 r.)
- ${EXTEN}: Bieżący numer telefonu (rozszerzenie)
- ${INVALID_EXTEN}: Wprowadzony numer telefonu przy przekierowaniu na niewłaściwe (invalid) rozszerzenie i
- ${LANGUAGE}: Bieżąca wartość języka. Zobacz obsługę języków narodowych w Asterisku
- ${PRIORITY}: Bieżący priorytet
- ${CALLINGPRES}: Zmienna prezentacji identyfikatora wywołania PRI dla połączeń przychodzących (zob. callingpres)
- ${CALLERID}: Identyfikator dzwoniącego (imię i numer)
- ${CALLERIDNAME}: Identyfikator dzwoniącego: imię
- ${CALLERIDNUM}: Identyfikator dzwoniącego: numer
- ${CHANNEL}: Nazwa bieżącego kanału
- ${RDNIS}: Bieżący przekierowany DNIS, identyfikator dzwoniącego, który przekierował połączenie. Zobacz RDNIS
- ${SIPDOMAIN}: Domena docelowa SIP dla połączenia przychodzącego (jeśli stosowne)
- ${SIP_CODEC}: Używane do ustawienia kodeka SIP dla połączenia
- ${SIPCALLID}: Nagłówek Call-ID: dialogu SIP
- ${SIPUSERAGENT}: Nagłówek user agent SIP
- ${UNIQUEID}: Unikalny identyfikator bieżącego połączenia SIP
- ${HANGUPCAUSE}: Ostatni kod powrotu rozłączenia na kanale Zap podłączonym do interfejsu PRI
- ${DNID}: Identyfikator wybierzanego numeru
- ${ACCOUNTCODE}: Kod konta, jeśli określony – zob. rozliczenia w Asterisku
Zmienne używane przez różne aplikacje
Polecenia niektórych aplikacji używają wartości zmiennych „kanałowych” lub zwracają w nich wyniki swojej pracy.
- Zarządzenie AgentCallbackLogin? zwraca w ${AGENTBYCALLERID_${CALLERID}}: ID pomyślnie zalogowanego agenta.
- Zarządzenie ChanIsAvail zwraca w ${AVAILCHAN}: pierwszy dostępny kanał
- Zarządzenie Dial używa wartości zmiennej ${VXML_URL}: do wysłania adresu URL XML do telefonu Cisco 7960.
- Zarządzenie Dial używa wartości zmiennej ${ALERT_INFO}: do przekazania informacji o typie połączenia do telefonów Cisco.
- Zarządzenie Dial zwraca w ${CAUSECODE}: Kod błędu, jeśli połączenie nie powiodło się.
- Zarządzenie Dial zwraca w ${DIALSTATUS}: tekstowy kod wyniku ostatniej próby połączenia z abonentem.
- Zarządzenie Dial używa wartości zmiennej ${TRANSFER_CONTEXT}: Jeśli ta zmienna jest ustawiona, podczas wykonywania procedury transferu połączenia (#transfer), zostanie użyta do wykonywania poleceń z podanego kontekstu.
- Zarządzenie EnumLookup zwraca w zmiennej ${ENUM}: wynik wyszukiwania.
- Zarządzenie Hangup używa wartości zmiennej ${PRI_CAUSE} do ustawiania kodów zwrotnych interfejsu PRI.
- Zarządzenie MeetMe używa wartości zmiennej {MEETME_AGI_BACKGROUND}: do określenia skryptu AGI, który należy wykonać.
- Zarządzenie MeetMe zwraca w zmiennej ${MEETMESECS}: liczbę sekund, przez które użytkownik przebywał w konferencji.
- Zarządzenie Playback zwraca w zmiennej ${PLAYBACKSTATUS}: Wynik wykonania polecenia (FAILED|SUCCESS).
- Zarządzenie Queue zwraca w zmiennej ${QUEUESTATUS}: Powód, dla którego połączenie umieszczone w kolejce ją opuściło.
- Zarządzenie TXTLookup zwraca w zmiennej ${TXTCIDNAME}: wynik wyszukiwania w DNS.
- Zarządzenie VoiceMail zwraca w zmiennej ${VMSTATUS}: wynik wykonania aplikacji VoiceMail?. Możliwe wartości: SUCCESS | USEREXIT | FAILED .
Zmienne specyficzne dla makr
Podczas używania kontekstów jako makr, dostępne są dodatkowe zmienne kanałowe specyficzne dla makr.
- ${ARG1}: pierwszy argument przekazany do makra
- ${ARG2}: drugi argument przekazany do makra (i tak dalej ...)
- ${MACRO_CONTEXT}: Nazwa kontekstu rozszerzenia, które wywołało to makro
- ${MACRO_EXTEN}: Rozszerzenie, które wywołało to makro
- ${MACRO_OFFSET}: Ustawiane przez makro, aby określić priorytet, od którego będzie kontynuowane wykonywanie poleceń po zakończeniu działania makra
- ${MACRO_PRIORITY}: Priorytet rozszerzenia w momencie wywołania tego makra
Zmienne środowiskowe
Możesz uzyskać dostęp do zmiennych środowiskowych systemu unix, używając następującej składni:
${ENV(''foo'')}
