Crmgo Blog

Zmienne w Asterisk

Zmienne w Asterisk

Zmienne kanałowe predefiniowane Poniżej znajduje się lista zmiennych kanałowych ustawianych bezpośrednio przez Asterisk, których wartości możesz wykorzystać w planie numeracji. W przeciwieństwie do zmiennych definiowanych przez użytkownika, zmienne definiowane przez Asterisk są wrażliwe na wielkość liter. ${ACCOUNTCODE} : Kod konta, jeśli…

Zmienne w Asterisk

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'')}

  • ${ENV(ASTERISK_PROMPT)} : bieżący wiersz poleceń CLI? dla Asterisk .
  • ${ENV(RECORDED_FILE)} : nazwa pliku, pod którym została zapisana ostatnia nagrana sesja wykonana za pomocą polecenia Record (dostępne w CVS > 2004-03-21)

Uwaga: wpis mógł powstać z pomocą AI i redakcji. Odpowiedzialny: Dmytro Lomaka, Kaltenkirchen.