středa 20. března 2013

AsteriskNOW 3.0

Verze AsteriskNOW 2.x je nahrazena novější verzí AsteriskNOW 3.0. Tato distribuce přináší mnohá vylepšení:
  • Distribuce používá verzi Asterisku 11 
  • Instalace je již na OS Centos 6 
  • Nové rozhraní freePBX 2.11 beta 
  • Upravené moduly pro Digium telefony 
  • Mnoho oprav problémů 
Bude li časový prostor, vyskytne se zde popis otestované distribuce AsteriskuNOW 3, nebo aspoň zkrácené dojmy. 
Latest version - 3.0.1

pátek 22. února 2013

NetBeans plugin pro Chrome (HTML5)

Pro ladění aplikací www je vhodné udržovat náhled vytvářeného díla. K tomu může být nápomocen NetBeans plugin pro prohlížeč Chrome. Ten zavádí podporu v NetBeans IDE pro vývoj HTML5 aplikací. Tento screencast ukazuje, jak použít průvodce k vytvoření projektu HTML5 a jak používat prohlížeč Chrome při vytváření html pomocí NetBeans. Zajimavá je také vlastnost zobrazování hotového díla v různých velikostech obrazovky.

neděle 3. února 2013

Astricon 2012 - Videa

Mnoho informací kolem Open source Asterisku, bylo k vidění na výstavě Astricon 2012. Například Asterisk & WebRTC & HTML5 a mnoho dálšího. Pokud jste se tam nedostali jako já, můžete shlédnou videa na http://www.tmcnet.com/tmc/videos/.

pátek 21. prosince 2012

Co přináší nový Asterisk 11 ?

Po roce je tu opět nová verze ústředny Asterisk. Přináší několik zásadních novinek. Tou nejviditelnější je podpora nadějného protokolu WebRTC, který v budoucnu umožní telefonování přímo z vašeho webového prohlížeče. Kromě toho přibylo několik protokolů pro překonávání NATu a mnoho dalších užitečných drobností.Celý článek na root.cz >>>.

neděle 30. září 2012

Kanál Asterisku - LOCAL CHANNEL

Lokální kanál LOCAL CHANNEL, je metoda v Asterisku sloužící k rozšíření dialplanu, někdy také nazývána pseudo-kanál. LOCAL CHANNEL umožňuje větvení nebo rekurzivní směrování s možností vrácení se zpět do dialplanu po dokončení hovoru. Například volání na dvě destinace (SIP, DAHDI, atd.) s různým nastavením parametrů (časové parametry, identifikace ID, atd.). V Tab. 3-1 je ukázka větvení dialplanu pomocí lokálního kanálu. 
[dev]
exten => 333,1,NoOp(4,Volba pevného a mobilniho telefonu se zpozdenim 30s)
exten => 333,n,Dial(Local/pevny-333@ext&Local/mobile-333@ext,30)
exten => 333,n,Hangup()
[ext]
; Volba pevneho telefonu
exten => pevny-333,1,Verbose(4,Volani na pevny telefon 333)
exten => pevny-333,n,Dial(SIP/333)
; Volba mobilni stanice se 6s zpozdenim
exten => mobile-333,1,Verbose(4,Dialing cellphone of extension 201)
exten => mobile-333,n,Verbose(4,-- Waiting 6 seconds before dialing)
exten => mobile-333,n,Wait(6)
exten => mobile-333,n,Dial(DAHDI/g0/606606606)
 Tab. 3‑1 - Ukázka větvení dialplanu pomocí lokálního kanálu 
Na druhém řádku v kontextu [dev] jsou "vytočeny" dvě stanice na lokálním kanálu a při uplynutí 30s dojde k ukončení "vytáčení". Před tím, ale je předáno řízení do kontextu [ext] a dvou různých "exten". Každý "exten" může mít nastaveny různá pravidla. Kanál, který odpoví (propojí hovorový kanál), ukončí všechny ostatní rozvětvená pravidla. Může to být přijmutí hovoru nebo i příkaz v dialplánu Asterisku (např. Answer(), atd. )

sobota 7. července 2012

Asterisk Gateway Interface AGI

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,arg1,arg2,arg3)

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.

neděle 1. července 2012

Asterisk Manager Interface AMI

Asterisk Manager Interface (AMI) je monitorovací a řídící rozhraní Asterisku. To umožňuje online sledovat události (manager events), které se vyskytují v systému, ale také komunikovat s Asteriskem (manager actions). K dispozici je široké spektrum aplikací. Mnoho zajímavých bylo vytvořeno za účelem rozšíření funkcionality Asterisku. AMI aplikace je klientem ústředny Asterisk, kde je služba AMI spuštěna. Konfigurace se opět provádí v konfiguračních souborech. Pro AMI je to soubor manager.conf, v kterém se především nastavují přístupová práva, ale i bezpečnostní a jiná nastavení [4].

Připojení AMI pomocí protokolu TCP

K rozhraní AMI se vnější aplikace připojují pomocí TCP soketu. Na příkladu si ukážeme připojení AMI pomocí služby telnet.
1.      Připojení AMI přes TCP na portu 5038
2.      Přihlášení akcí Login
3.      Provedené příkazu (např. Ping)
4.      Odhlášení a odpojení Logoff
$ telnet localhost 5038
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Asterisk Call Manager/1.1
Action: Login
Username: strom
Secret: jedle
Response: Success
Message: Authentication accepted

Action: Ping
Response: Success
Ping: Pong
Timestamp: 9256398652.925531

Action: Logoff
Response: Goodbye
Message: Thanks for all.
Tab. - Ukázka komunikace AMI

AMI správce zpráv

Existují dva hlavní typy zpráv pro AMI: správce událostí (manager events) a správce akcí (manager actions).
Správce událostí zobrazuje jednosměrné zprávy směrující z Asterisku k AMI klientovi a zobrazuje stav systému. Události jsou vyvolány samotnou ústřednou, např. probíhající volání (stav kanálu).
Obr.  3‑8 Správce událostí AMI
Správce akcí rozšiřuje funkcionalitu správce událostí o schopnost události vyvolávat. Znamená to, že AMI klient odešle zprávu do Asterisku, ten ji zpracuje (provede žádanou akci) a vrátí zpět související událost AMI klientovi např. vytvoření kanálu (hovoru), získání dat z AstDB, atd.
Obr.  3‑9 Správce akcí AMI
Asterisk reaguje jen na zprávy (příkazy), které zná.  Dostupné příkazy lze zjistit v příkazovém řádku ústředny zadáním příkazu manager show command. Některé používané příkazy [4]:
·         Command       Provádí příkazy do CLI Asterisku
·         Originate         Aktivuje telefonní hovor
·         Hangup           Zavěsí kanál (ukončí hovor)  
·         Logoff            Odhlásí klienta AMI
·         SIPpeers         Vrátí seznam SIP uživatelů

[4]    LEIF MADSEN, Jim Van Meggelen. Asterisk: the definitive guide. 3rd ed. Sebastopol, CA: O'Reilly Media, Inc, 2011. ISBN 978-059-6517-342.