Hlavní navigace

Asterisk 1.8 už není jen telefonní ústředna

Marek Červenka

Dne 21. října 2010 vyšla dlouho očekávaná major verze komunikačního řešení Asterisk označovaná jako 1.8. Ano, už to není pouze pobočková ústředna. Je to mnohem více a dokáže zastat mnohem více různých typů úkolů. Můžete přes něj třeba komunikovat s Jabber účty nebo jej propojit s kalendářem. Co umí?

Pokud se o Asterisku chcete dozvědět více, doporučujeme náš seriál Pobočková VoIP ústředna Asterisk.

Obecně o projektu

Verze 1.8 má přídomek LTS. Někdo to může znát například z označení některých verzí Ubuntu. LTS znamená Long Term Support a v tomto případě se jedná o čtyři roky, po které bude firma Digium nad projektem držet ochrannou ruku.

Pojďme si dát také trochu statistiky:

  • 219 vývojářů se podílelo na 3061 úpravách přijatých přes issues.asterisk.org
  • 334 testerů se podílelo na 998 testech reportovaných problémů
  • 502 uživatelů se podílelo na reportování 1162 problémů, které byly v 1.8 vyřešeny
  • 888 souborů bylo změněno; proběhlo celkem 373267 přidání a 58116 mazání
  • Z oficiálního webu byly staženy dva miliony kopií

Co je nového

Pokud začneme zeširoka tak, byly provedeny stovky vylepšení, které nejsou tak úplně vidět “na povrchu”:


  • zlepšení architektury
    • např. oddělení RTP do samostatného modulu ze SIP modulu (res_rtp_asterisk)
  • zvýšení výkonosti
    • např. zdvojnásobený počet registrací [5]
  • automatizované testy


Nové funkce

A už se také konečně dostáváme ke konkrétním funkcím, které uživatele zajímají samozřejmě nejvíc.

IPv6 – SIP/RTP

Média čím dál více masírují koncem světa kvůli nedostatku IPv4 adres. Proto se nám může brzo hodit podpora IPv6. Podpora je zatím pouze v SIP modulu, což nám ale pro telefonii stačí.

Pokud potřebujete ústřednu provozovat pouze na nějaké konkrétní Ipv6 adrese, můžete použít standardní konfigurační direktivu.

bindaddr=2001:db8::1

Pokud to navíc ještě potřebujete pro konkrétní protokol, tak můžete použít direktivy “ud­pbindaddr", „tcpbindaddr“ a "tlsbindaddr”.

Security event framework

V současné době narůstá počet útoků na VoIP infrastrukturu. Takže je logické, že vývojáři projektu Asterisk řešili, jak pomoci se zlepšením v této oblasti. Jelikož je poměrně obtížné vydefinovat, co je a co ještě není útok, dohodli se na zlepšení reportování oblastí které se týkají bezpečnosti. Samostatné akce prováděné nad těmito logy již poté proběhnou pomocí standardních nástrojů jako je iptables.

Vznikl tedy “bezpečnostní framework”.

Ten se skládá ze dvou základních komponent:

  • Security Event Generation
  • Security Event Logger

Security Event Generation

Tato část je tvořena ast_event API rozhraním, kterým jednotlivé moduly můžou reportovat věci týkající se bezpečnosti.>

Security Event Logger

Tato část zajišťuje generování událostí do určeného logu. Formát je dobře strukturovaný což umožňuje dalším nástrojů jednoduché zpracování.

Logování se aktivuje v konfiguračním souboru logger.conf  takto:

security_log => security

Kompletní seznam událostí a detailnější popis je uveden v [6].

Secure RTP (SRTP) pro SIP

Velmi zásadní funkcí, která dá zelenou pro nasazování Asterisku ve firmách a státních institucích, je šifrování hovorů. Tato funkce se dostávala do projektu dlouhých 5 let [9].

SRTP je implementováno pomocí Sdescriptions. Od implementace MIKEY bylo upuštěno. Pro zabezpečení signalizace je třeba použít TLS, které je implementováno již od verze 1.6.

Funkce je jednoduše aktivována v sip.conf parametrem

encryption=yes

V dialplánu je možné ověřit a například povolit pouze šifrované hovory

exten => 123,1,GotoIf("$[${CHANNEL(secure_signaling)}" = ""]?fail)
exten => 123,n,GotoIf("$[${CHANNEL(secure_media)}" = ""]?fail)
exten => 123,n,Dial(SIP/123)
exten => 123,n,Hangup
exten => 123,n(fail),Playback(vm-goodbye)
exten => 123,n,Hangup

Podpora spolupráce s kalendáři

Tato funkce může být zajímavá pro firmy, které používají k organizaci času kalendáře. Podporovány jsou všechny známé typy – Exchange 2003/2007/2010, iCal, CalDAV.

Modul umožňuje sledování stavu kalendáře. Dokáže do kalendáře zapisovat. Umožňuje telefonicky upozorňovat na blížící se schůzky atd. Dle kalendáře můžete řídit vaši linku.

Příklad:

Dle kalendáře jste mimo kancelář. Linka je přesměrována na mobil. Po příchodu do kanceláře je linka směrována na telefon v kanceláři (existují docházkové systémy, které zapisují data do kalendáře např. Systém AKTION od firmy EFG). V 10:30 máte poradu a linka je přesměrována na kolegu. Ve 14:30 odjíždíte na jednání se zákazníkem a linka se dle kalendáře přesměrovává na mobil.

Na kalendářovém modulu se podílel student z našich luhů a hájů Jan Kaláb z VUT za sponzoringu firmy IPEX. Na obrázku je příklad, jak může nastavení spolupráce linky a kalendáře vypadat:

Konfigurace kalendáře v IPEX iPBX 2.3

Pro podrobnější popis kalendářů viz [7].

Integrace Jabber/XMPP funkcí

Byla rozšířena podpora protokolu XMPP. Nově jsou podporovány chat roomy. V dialplánu je možné přijímat zprávy. Podpora metody PubSub. V aplikaci SendText je možné posílat XMPP zprávy na určené Jabber ID. Obecně se nejvíc integrace Asterisku a XMPP používá při notifikaci o příchozím hovoru.

Call Event Logging (CEL)

V podstatě by se dalo říct, že se jedná o systém uchování seznamu hovorů (Call Detail Records – CDR) nové generace. V současné době většina ústředen dokáže uchovat pouze základní informace o uskutečněném hovoru.

Příklad: čas volání, volající číslo, volané číslo, délka hovoru…

Novější VoIP ústředny ještě občas obsahují například IP adresy telefonů, kodek atp.

Nyní si představte následující situaci:

Zákazník se dovolá na zelenou linku. Chvíli mluví s operátorem. Operátor ho přepojí na obchodníka. Obchodník ho přepojí na technika. Ten ho přepojí do skladu, aby zákazníkovi poslal nový router.

Teď si představte, že v rámci velmi dobré obsluhy zákazníka chcete zjistit, proč router nebyl zákazníkovi odeslán. Sklad tvrdí, že žádný takový hovor neobdržel.

V CDR může být třeba pouze tento záznam

2010-09-09 15:33, 222333444, 800123456, 456

Pokud, ale použijeme CEL tak máme záznam celého hovoru a ten ho jasně usvědčí!

ConfBridge – audio konference

Již od verze 1.6.2 je k dispozici alternativa k audiokonferen­čnímu modulu MeetMe. Důvodem je závislost MeetMe na “časovači”. U modulu ConfBridge tato závislost ve verzi 1.8 úplně odpadá.

Call Completion Supplementary Services (CCSS)

Tato ryze telefonní funkce usnadňuje “dovolání se”. V případě, že volající hovor nezvedá nebo má obsazeno, ústředna hlídá stav volaného a zkouší hovor opakovaně spojit. Funkce je podporována v protokolech SIP a ISDN.

Konkrétně se jedná o funkce Call Completion Busy Subscriber (CCBS) a Call Completion No Response (CCNR).

Advice of Charge (AOC-S, AOC-D, AOC-E)

Rodina funkcí AOC je určena pro přenášení informací o účtování. Jeden z typů je například určený pro zobrazení ceny hovoru na displeji telefonu.

AOC-S: zasílán na začátku hovoru. Obsahuje seznam cen hovorného vztažený k hovoru.

AOC-D: zasílán v průběhu hovoru. Informace o aktuální ceně hovoru.

AOC-E: zasílán po ukončení hovoru. Obsahuje finální cenu hovoru.

U ISDN je AOC podporováno v režimu “passthrough”. Tzn. propouští informace o AOC na další zařízení. Aktivuje se v chan_dahdi.conf  takto:

aoc_enable=s,d,e

U SIPu lze nyní AOC posílat. Zobrazují jej např. Telefony Snom. AOC je dále podporováno i v manager API. AOC zprávy lze generovat.

Příklad:

Action: AOCMessage
Channel: DAHDI/i1/1111-1
MsgType: d
ChargeType: Currency
CurrencyAmount: 16
CurrencyName: USD
CurrencyMultiplier:
OneThousandth
AOCBillingId: Normal
ActionID: 1234
Response: Success
ActionID: 1234
Message: AOC Message
successfully queued on channel

Zlepšená podpora TDM a T.38 Faxování

Bylo začleněno mnoho oprav a chyb, které zlepšují fungování faxů. Je možné, že do 1.8 stromu se ještě dostane i podpora T.38 gateway funkcionality, která umožní posílání faxů pomocí protokolu T.38 pokud máte v Asterisk serveru HW kartu(PRI,BRI,F­XO,FXS,…).

V případě, že byste se chtěli podílet na dokončení této funkce, tak mě prosím kontaktujte na adrese cervajs (zavináč) freevoice.cz.

Menší novinky u SIPu

V dialplánu je možné vybrat kodek pro odchozí hovor. Podpora informace o zavěšení hovoru – SIP Q.850 Reason Header. Využívá se pro získání informace o čísle kauzy, s jakou byl hovor zavěšen, např. Obsazeno – kauza 17.

Connected party ID

Volněji popsáno “identifikace opravdu spojeného volaného”. Na displeji telefonu vidíme opravdu až spojené koncové číslo. Představte si scénář, kdy voláte kolegovi Honzovi na linku 200, který má přesměrováno na kolegyni Andreu s linkou 300. Na telefonu uvidíte, že hovoříte s linkou 300, i když jste původně volali na 200.

Funkce je v Asterisku podporována na většině protokolů – SIP, IAX2, H323, ISDN (chan_dahdi i chan_misdn). Funkce je podporována automaticky. Asterisk posílá updatované informace o hovoru. Funkci je možné ovlivňovat i dialplánem.

Upgrade z 1.6 nebo starších verzí

V této kapitole bych chtěl upozornit na některé změny na které je potřeba si dá pozor při upgradování. Určitě doporučuju přečíst jednotlivé dokumenty UPGRADE-1.X.txt kde X je verze Asterisku. Tyto dokumenty jsou umístěny přímo ve zdrojových souborech.

  1. Dříve samostatný balík asterisk-addons byl začleněn přímo do balíku Asterisk. Jednotlivé moduly můžete aktivovat při kompilaci pomocí make menuselect.
  2. RTP stack v asterisku byl modularizován a vyjmut ze SIP kanálu. Nyní je přesunut do samostatného modulu res_rtp_asterisk. Pokud nepoužíváte automatické nahrávání modulu při startu Asterisku tak musíte mít v modules.conf tento modul explicitně specifikován jinak Vám nebude fungovat volání.
  3. Proměnné systému začínající AST_ jsou rezervovány systémem.

Závěr

Na závěr jsem si nechal dvě specialitky. První specialitkou je funkce PITCH_SHIFT, která dokáže online manipulovat s hlasem. Patří do skupiny těch funkcí, které nemusí být vůbec užitečné, ale pobaví [8]. Co takhle změnit hlas vedoucímu při audiokonferenci? Je ovšem jasné, že pokud nemá smysl pro humor, výsledkem může být vyhazov. Takže opatrně!

Druhou specialitkou je nový projekt Asterisk SCF, který je ale na samostatný článek a zabývá se vysokou dostupností a škálovatelností VoIP řešení postavených na platformě Asterisk.

Zdroje

[1] svnview.digium­.com/svn/aste­risk/branches/1­.8/CHANGES?vi­ew=markup

[2] svn.asterisk.or­g/svn/asteris­k/tags/1.8.0/as­terisk-1.8.0-summary.txt

[3] svnview.digium­.com/svn/aste­risk/branches/1­.8/UPGRADE.txt

[4] downloads.aste­risk.org/pub/te­lephony/asteris­k/ChangeLog-1.8.0

[5] reviewboard.as­terisk.org/r/825/

[6] svn.asterisk.or­g/svn/asteris­k/tags/1.8.0/doc/tex/as­terisk.tex

[7] www.abclinuxu­.cz/clanky/na­vody/asterisk-a-kalendare

[8] reviewboard.as­terisk.org/r/526/

[9] issues.asteris­k.org/view.php?id=5413

Našli jste v článku chybu?

22. 11. 2010 13:54

z4nD4R (neregistrovaný)

Zdravim vas,
v danej ukazme mate syntakticku chybu.
Spravne ma zapis pre extensions vyzerat nasledovne:
exten => 123,1,GotoIf($["${CHAN­NEL(secure_sig­naling)}" = ""]?fail)
exten => 123,n,GotoIf($["${CHAN­NEL(secure_me­dia)}" = ""]?fail)
exten => 123,n,Dial(SIP/123)
exten => 123,n,Hangup
exten => 123,n(fail),Pla­yback(vm-goodbye)
exten => 123,n,Hangup









19. 11. 2010 18:23

mighq (neregistrovaný)

moj dojem po skusenostiach s * je, ze FreeSwitch (http://www.freeswitch.org/) je v tejto oblasti lepsi produkt. kto sa este len rozhoduje, stoji za to skusit.

DigiZone.cz: V Plzni odstartovalo Radio 1

V Plzni odstartovalo Radio 1

Vitalia.cz: 7 originálních adventních kalendářů pro mlsné

7 originálních adventních kalendářů pro mlsné

Vitalia.cz: To nejhorší při horečce u dětí: Febrilní křeče

To nejhorší při horečce u dětí: Febrilní křeče

DigiZone.cz: R2B2 a Hybrid uzavřely partnerství

R2B2 a Hybrid uzavřely partnerství

120na80.cz: Rovnátka, která nejsou vidět

Rovnátka, která nejsou vidět

Podnikatel.cz: E-Ježíšek si zařádí: nákupy od 2 do 5 tisíc

E-Ježíšek si zařádí: nákupy od 2 do 5 tisíc

Měšec.cz: Exekuční poradna: ptejte se online

Exekuční poradna: ptejte se online

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

Vitalia.cz: Pamlsková vyhláška bude platit jen na základkách

Pamlsková vyhláška bude platit jen na základkách

Lupa.cz: Levný tarif pro Brno nebude, je to kartel

Levný tarif pro Brno nebude, je to kartel

Podnikatel.cz: Vládu obejde, kvůli EET rovnou do sněmovny

Vládu obejde, kvůli EET rovnou do sněmovny

Lupa.cz: Obchod budoucnosti je bez front, košíků i pokladen

Obchod budoucnosti je bez front, košíků i pokladen

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

120na80.cz: Pánové, pečujte o svoje přirození a prostatu

Pánové, pečujte o svoje přirození a prostatu

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Měšec.cz: Za palivo zaplatíte mobilem (TEST)

Za palivo zaplatíte mobilem (TEST)

DigiZone.cz: Ohrozí Freedom TV přechodové sítě?

Ohrozí Freedom TV přechodové sítě?

Podnikatel.cz: Chtějte údaje k dani z nemovitostí do mailu

Chtějte údaje k dani z nemovitostí do mailu

Vitalia.cz: Proč vás každý zubař posílá na dentální hygienu

Proč vás každý zubař posílá na dentální hygienu