Hlavní navigace

Co nového ve vývoji ústředny Asterisk

28. 5. 2009
Doba čtení: 4 minuty

Sdílet

Na konci dubna letošního roku vyšla další hlavní verze populární pobočkové ústředny Asterisk 1.6.1.0. Opět si tedy optikou autora článku projděme nejdůležitější úpravy a nové zajímavé funkce, které byly vývojáři Asterisku do nové verze přidány.

Úvodem si shrňme jak se vlastně změnil vývojový cyklus. Vývojáři přešli na podobný systém jako je u linuxového kernelu. Po třímístném verzování 1.0, 1.2, 1.4 přešli na čtyřmístné 1.6.X.Y což jim umožní kratší vývojový cyklus. Jakmile je ohlášena nová stabilní major verze, nelze již do této řady přidávat nové funkce. K dnešnímu dni je aktuální verze řady 1.6.0 na verzi 1.6.0.9.

IAX2 protokol

Implementována rotace klíčů při zapnutém šifrování při probíhajícím hovoru. Přidán byl parametr „keyrotate“ pro možnost zachování kompatibility se staršími verzemi. Tato úprava zvyšuje bezpečnost šifrovaného spojení.

DNS manager dostal podporu pro SRV záznamy. DNS manager obecně je vlastně takový malý interní DNS server, který zlepšuje výkonnost ústředny kešováním DNS dotazů. Při velkém počtu telefonů je bez DNS managera zbytečně zatěžována síť dotazy na externí DNS servery a také je více zatěžováno CPU. V situaci, kdy záznamy máme již v lokální paměti, je zátěž CPU menší. Asterisk se totiž velmi často používá v malých systémech, kde je každý procesorový cyklus dobrý.

SIP protokol

V sip kanálu došlo ke zlepšení výkonu loadu/reloadu pomocí implementace hašovacích tabulek (astobj2) a dvojsměrného seznamu (doubly-linked list). To ocení zejména lidé s velkým dialplánem.

Podpora pro Realtime Text redundancy – T140 RED – v protokolu T.140 pro zabránění ztrátě textu při výpadku paketů. Protokol T.140 umožňuje posílat při hovoru textové zprávy. U nás nicméně není tolik rozšířený. V některých zemích se používá na podporu hluchoněmých.

Přidán SIPnotify AMI příkaz, pro posílání SIP notify příkazů. Pomocí SIP Notify můžete např. provést vzdálený restart telefonu.

Další vylepšení DNS managera, který pomocí asynchronních dotazů zlepšuje výkon(snižuje zátěž).

Status zařízení (device state)

Infrastruktura událostí byla výrazně upravena pro podporu distribuovaných událostí. Nyní podporuje distribuovaný status zařízení a distribuovaný MWI. Distribuovaný status zařízení znamená např. že na kterémkoliv asterisku v clusteru vím, že telefon XY je právě obsazený.

Na starosti to má modul res_ais, který zajišťuje komunikaci mezi servery. Používá k tomu

  • SAForum AIS (Service Availability Forum Application Interface Specification)
  • CLM (Cluster Management)
  • EVT (Event)

služby pro správu clusteru a sdílení událostí.


Funkce dialplánu

Přidána funkce AST_CONFIG(), která umožňuje přístup k proměnným z konfiguračního souboru.

Přidány funkce AGC() a DENOISE() z libspeex knihovny pro úpravy hlasitosti a kvality audia.

Funkce CHANNEL() nyní obsahuje maximální, minimální a průměrný jitter, rtt a ztrátovost. Velmi užitečné při napárování na CDR záznamy. Pomocí těchto proměnných, které máte k dispozici u každého hovoru můžete snadněji řešit problémy typu „měl jsem sekaný hovor“, protože v CDR uvidíte, že linka měla 10% ztrátovost. Informace jsou získávány z protokolu RTCP.


Databáze

Databázové drivery sloužící pro realtime konfiguraci ústředny nyní upozorňují pokud v tabulce chybí základní sloupce (např. Login) a některé dokonce umí tento sloupec i správně doplnit, pokud jsou tak nastaveny.


Konfigurace

Do syntaxe přibyl operátor „+=“, který zjednodušuje práci s dlouhými proměnnými. Nejvíce se to projeví u SQL příkazů, které nyní nemusí být na jednom řádku.

Příkazový řádek (Asterisk CLI)

Nový příkaz „config reload <file.conf>“ umožňuje reload modulu, který odpovídá názvu zadaného konfiguračního souboru. „config list“ vypíše, které konfigurační soubory se používají.

„pri show version“ a „ss7 show version“ vypíše používanou verzi libpri a libss7. To je užitečné zejména pokud nejste autorem instalace a systém nepoužívá některý z balíčkovacích programů.

„dialplan show chanvar“ zobrazí všechny proměnné související s daným kanálem. Takto dokážete získat spoustu informací o právě probíhajícím hovoru.


Aplikace

Dial má nový parametr F(context^exten­sion^pri), který umožňuje, aby volaný pokračoval v dialplánu pokud volající zavěsí. Užitečné např. pro callcentra pro spuštění zápisu informací o hovoru do databáze.

V aplikaci chanspy() je možné pomocí DTMF přepínat režimy odposlechu. Chanspy() se používá např v callcentrech pro poslouchání agentů.


AMI

Akce „Status“ nyní podporuje zobrazení volitelných proměnných spolu se stavem kanálu.


Ostatní

Proměnnou kanálu ATTENDED_TRAN­SFER_COMPLETE_SO­UND je možné použít k přehrání hlásky po dokončení přepojení s konzultací (attended transfer). Např. hláška „Váš hovor byl přepojen“.

Asterisk je nyní možné kompilovat proti Hoard Memory Alokátoru, jako výkonnější náhradu za malloc. Další informace je možné nalézt v doc/hoard.txt. Takto je možné zvýšit maximální počty současných hovorů, zvýšit počet sestavení hovorů za sekundu atd.

Legenda:

AMI – Asterisk Manager Interface

MWI – Message Waiting Indication


Zdroje:

www.asterisk.or­g/node/48590

svn.digium.com/svn/as­terisk/tags/1­.6.1.0/UPGRADE­.txt

CS24_early

svn.digium.com/svn/as­terisk/tags/1­.6.1.0/CHANGES

svn.digium.com/svn/as­terisk/tags/1­.6.1.0/asterisk-1.6.1.0-summary.txt

Byl pro vás článek přínosný?

Autor článku

Autor pracuje ve společnosti IPEX a.s. a ve volném čase se zabývá podporou open-source komunikačních projektů.