Asterisk dialplan se programuje vlastním
jednoduchým programovacím jazykem. Avšak mnoho uživatelů, speciálně
programátorů, preferuje svůj programovací jazyk. Použití vlastního
programovacího jazyka usnadňuje integraci do jiného IT systému. AGI rozhraní
proto umožňuje vývojářům kontrolovat (ovládat) ústřednu Asterisk programovacím
jazykem, dle vlastního výběru.
exten => 500,1,AGI(ahoj-svete.sh)
|
Tab. 3‑17 - Volání
jednoduchého AGI skriptu "Ahoj světe" z dialplanu
Existuje několik variant AGI, které se liší
především v metodě komunikace s Asteriskem.
1.1 Základní varianta AGI
Nejjednodušejší varianta, zmíněná hned na
začátku této kapitoly. AGI skript je spuštěn v dialplanu Asterisku. Zápis
syntaxe skriptu ukazuje Tab. 3-18. Komunikace mezi Asteriskem a aplikací se
uskutečňuje přes stdin
a stdout [4].
AGI(
command [,arg1 [,arg2 [,...]]]) |
Tab. 3‑18 -
Syntaxe AGI()
Tato varianta je nejméně efektivní formou AGI s
ohledem na spotřebu zdrojů.
Obr. 3‑10 Jak
pracuje AGI
1.2 EAGI (Enhanced AGI)
EAGI oproti AGI poskytuje kromě stdin a stdout i jednosměrný audio tok.
1.3 DeadAGI
Starší verze AGI. Již se nepoužívá. Služba
pracovala s již ukončeným hovorem v Asterisku označován jako exten=>h.
1.4 FastAGI AGI přes protokol TCP
FastAGI se používá pro AGI přes protokol TCP.
Rozdíl proti předchozím variantám je, že pro nové spojení (další hovor), není
otevřen nový proces. FastAGI má mnohem větší možnosti použití, ale složitější
implementaci.
exten => 1234,1,AGI(agi://192.168.12.101,
|
Tab. 3‑19 -
FastAGI()
1.5 Asynchronní AGI kontrolované AMI
Async
AGI—AMI-Controlled AGI je novější způsob použití AGI, který se
používá od verze Asterisku 1.6.0. Účelem asynchronního AGI je asynchronně řadit
požadavky (vytvářet frontu) požadavků AGI příkazů v kanálu. To může být
užitečné, pokud se již v Asterisku používá rozhraní AMI a je požadavek
použít vlastní programové skripty pro zpracování a řízení volání. Zápis syntaxe
skriptu ukazuje tab. 3-17
exten =>
1234,1,AGI(agi:async)
|
Tab. 3‑20 -
Async AGI—AMI-Controlled AGI
[4] LEIF MADSEN, Jim Van Meggelen. Asterisk: the definitive guide.
3rd ed. Sebastopol, CA: O'Reilly Media, Inc, 2011. ISBN
978-059-6517-342.
Žádné komentáře:
Okomentovat