Konfigurácia ústredne Asterisk

Peter Seman 19. 2. 2009

Asterisk môže byť silným nástrojom pre VoIP riešenia, ale samotná konfigurácia je možno na prvý dojem trošku zložitejšia. Pokiaľ sa zoznámite so základnými pojmami a architektúrou súborov Asterisku, potom sa stane naozaj výkonným nástrojom vo vašich rukách. Ukážeme si, ako nakonfigurovať Asterisk server.

Asterisk sa stáva čoraz populárnejším projektom pre VoIP riešenia, lebo nevyžaduje vysoké investície ako klasické proprietárne systémy. V tomto článku sa budem snažiť vysvetliť niektoré základné pojmy, ktoré sa zaoberajú vytvorením SIP účtov a konfiguráciu Asterisku ako VoIP pobočkovej ústredne. V závere článku by čítateľ mal byť schopný nakonfigurovať Asterisk a jeho základné funkcie a pripojiť SIP telefóny s ďalšími hlasovými funkciami.

Autorská poznámka

Pre tento článok som použil praktické ukážky na linuxovej distribúcii CentoOS. Samozrejme Asterisk môže bežať na ľubovolnej distribúcií OS Linux a pre testovanie a prvé kroky s Asteriskom je možné použiť aj rôzne virtualizačné stroje. Autor predpokladá, že inštaláciu a kompiláciu Asterisku už čitateľ zvládol, alebo má distribúciu s predinštalovaným Asteriskom. Návod na inštaláciu nájdete na na stránkach projektu Asterisk.

Základné pojmy

Zatiaľ čo prebieha kompilácia Asterisku, môžeme si vysvetliť niektoré základné pojmy, ktoré by ste mali poznať skôr ako začnete s konfiguráciou. Ako príklad pre konfiguráciu si urobíme model VoIP pobočkovej ústredne pre vašu kanceláriu. Na základe tohoto modelu budeme ďalej rozvíjať vlastnosti a schopnosti Asterisk telefónneho systému.

Extension – pobočka

Extensions môžeme v odľahčenej forme definovať aj ako programovací jazyk Asterisku. V konfiguračnom súbore Extensions.conf je vytvorený krok za krokom postup, ako bude váš volací plán pracovať. Definície pobočiek sú uložené v súbore s názvom extensions.conf. Tento súbor obsahuje všetky informácie pre smerovanie prichádzajúcich a odchádzajúcich hovorov. Konfiguračný súbor obsahuje tri základné sekcie: globals, kontexty a makrá. Globals parametre obsahujú všetky vaše globálne konfiguračné údaje. Definícia sa skladá z troch častí oddelených čiarkami, s úvodným textom exten =>. Tento text oznamuje Asterisku, že je na začiatku definície. Formát pre pobočku vyzerá takto:

exten => pobočka,priorita,príkaz(parameter)

Môže sa to zdať mätúce, ale poďme sa pozrieť na ukážku extensions konfigurácie pre volanie do kancelárie napr. po pracovnej dobe.

[kancelaria]
exten => 100,1,Answer
exten => 100,2,Playback(po_pracovnej_dobe.gsm)
exten => 100,3,Hangup

V prvom rade je kontext označený ako [kancelaria]. Prvý riadok (exten => 100,1, Answer) hovorí, že ak voláme na pobočku 100, Asterisk začne práve na tomto riadku. Druhý riadok prehrá volajúcemu audio súbor s názvom po_pracovnej_dobe.gsm a po prehraní tohto súboru Asterisk ukončí hovor na tretom riadku.

Kontexty

V ďalšom odstavci sa zoznámime s kontextami. Správne pochopenie kontextu, je dôležité pre správnu funkčnosť dial plánu. V jednoduchosti kontexty definujú jednotlivé vlastnosti telefónneho systému, ktoré sú prostredníctvom kontextu prístupné. Pozrime sa na ďalší príklad:

[kancelaria]
exten => 200,1,Dial(SIP/200,20)
exten => 200,2,Voicemail(200)
exten => 200,3,Hangup
exten => 201,1,Dial(SIP/201,20)
exten => 201,2,Voicemail(201)
exten => 201,3,Hangup

[sklad]
exten => 300,1,Dial(SIP/300,20)
exten => 300,2,Voicemail(300)
exten => 300,3,Hangup

Tento príklad uvádza dva kontexty, pre kanceláriu a sklad. Obe kontexty majú spoločné, že keď sa volá na pobočku a pobočka do 20 sekúnd neprevezme hovor je presmerovaný do odkazovej schránky a potom je hovor ukončený. Rozdelenie do dvoch kontextov spôsobí, že pobočka 200 môže volať na pobočku 201, ale už nie na pobočku 300, ktorá je už v kontexte [sklad].

Makrá

Teraz, keď sme už spoznali logiku vytvárania kontextov, poďme sa pozrieť na Makrá. Makrá sú súvislosti v rámci dial plánu, ktoré sú definované a začínajú ako napr. [makro-volat_Pobocku]. Makro je incializované znakom s a potom pokračuje podľa jednotlivých riadkov. Uvedme si nasledujúci príklad: tentoraz nechceme volajúcemu oznámiť, že je po pracovnej dobe, ale chceme aby sa volajúci dovolal osobe, ktorú hľadá.

Makro je inicializované prostredníctvom makro príkazu:

[kancelaria]
exten => 100,1,Answer
exten => 100,2,Macro(volat_Pobocku,100,SIP/100)
exten => 100,3,Hangup

Naše makro volat_Pobocku požaduje dve parametre, ktoré majú byť prevedené. Po prvé, pobočka na ktorú sa nažíte dovolať, a následne aj koncová pobočka SIP.

[macro-volat_Pobocku]
exten => s,1,Dial(${ARG2},20)
exten => s,2,Voicemail(${ARG1})

Keď sa pozrieme na tento príklad, môžeme si všimnúť, že sa nejedná o definovanú pobočku. Ako už viete volať je možné len pobočky, ktoré sú v kontexte zadefinované. Zároveň však volajúci môže byť presmerovaný do iného kontextu prostredníctvom napr. goto príkazu. Pre ilustráciu povedzme, že vytvárate automatizovaný volací plán pre overovanie kreditných kariet. Systém vyzve volajúceho na zadanie svojho čísla kreditnej karty, potom makro s názvom over_kartu prehrá volajúcemu čísla,ktoré zadal a vyzve ho aby pre súhlas stlačil 1 alebo 2 pre znovu zadanie cisla. Volajúci, však nemá žiadnu možnosť zadať iné číslo alebo pobočku, ktoré sú definované mimo makro.

Navrhnutie systému

Teraz, keď máme základné vedomosti o pobočkách, kontextoch a makrách, môžete začať navrhovať telefóny systému. Na účely tohto článku budeme predpokladať, že máme správne naištalovaný Asterisk a ako pobočky budeme pripájať softvérové SIP telefóny. Vzhľadom k tomu, že máte všeobecnú predstavu o tom, ako pobočky pracujú s kontextami, budete môcť volať z pobočiek medzi sebou. Jednotlivé konfiguračné súbory sú uložene v adresáry Asterisk a ich pomenovanie logicky vystihuje konfiguraciu. Napríklad vytváranie pobočiek je definované v extensions.conf a SIP klienti (teda sw telefóny) v sip.conf  súbore.

SIP klient

V našom prípade pripojíme softvérové SIP telefóny, ktoré bežia na počítači. Môžeme využiť známe softvérové telefóny ako Kiax, Kphone alebo SJphone a pod. Úprava sip.conf súboru, je veľmi jednoduchá pomocou akéhokoľvek textového editora, ako napr. na obrázku.

Asterisk

Nastavenia, ktoré potrebujete správne nakonfigurovať sú v sekcii [general]. Tu si môžete definovať, aký port chcete využívať pre prístup SIP klientov (predvolené je 5060), bind address a ďalšie možnosti. Aby ste zabránili pripájaniu vonkajších SIP klientov k vášmu Asterisku, zmeňte nastavenie bindaddr vo vašom sip.conf na vašu vnútornú IP adresu sieťovej karty.

Ďalšou dôležitou súčasťou je správne nastavený kontext pre prichádzajúce SIP hovory, samozrejme aj pre jednotlivých SIP klientov možete urobiť individuálne kontexty, ale v našom prípade počítame s tým, že všetky prichádzajúce hovory budú smerované práve do kontextu, ktorý je definovaný v položke  [general].

Tu je naša konfigurácia sip.conf:

[general]
context=kancelaria
port=5060
bindaddr=192.168.1.2 ;IP adresa sieťovej karty Asterisku

Skôr ako budeme môcť začať používať softvérové telefónny, budete musieť vytvoriť jednotlivých SIP klientov. V tomto prípade by to boli telefóny v kancelárii. Dosiahneme to znovu úpravou sip.conf súboru. Nižšie je konfigurácia pre telefón pracovníka Jana Testera s číslom pobočky 100.

[100]
type=friend
mailbox=100@kancelaria
auth=md5
username=100
secret=12345
callerid=("Jan Tester" <100>)
host=dynamic
disallow=all
allow=gsm
allow=ulaw
allow=alaw

Každý nový SIP klient má uvedený názov v hrantých zátvorkách a potom sa definujú jednotlivé parametre tohto klienta.

Type: Táto hodnota definuje, aký vzťah bude mať SIP klient k Asteriku. Dostupné možnosti: používateľ user, peer a friend.
Username: Užívateľské meno SIP klienta používané pri overovaní.
Secret: Heslo SIP klienta sa používa spolu s užívateľským menom pre autentifikáciu SIP služby.
Allow: Povolenie určitých hlasových kodekov pre komunikáciu s daným zariadením. Aby ste mohli preferovať len určité kodeky, je potrebné najprv zakázať všetky kodeky hodnotou disallow=all.
CallerID: Toto je reťazec, po ktorým bude volajúci identifikovaný a, ktorý sa zobrazí volanému účastníkovi
Host: To určuje umiestnenie SIP telefónu. Ak je hodnota nastavená na dynamic, SIP telefón z akejkoľvek IP adresy sa bude registrovať na Asterisk. Iná možnosť je zadanie meno alebo IP adresu telefónu.
Mailbox: Určuje hlasovú schránku v prípade, že klient hovor nepreberie.

Potom, čo sme vytvorili SIP klientov a nakonfigurovali pre autentifikáciu na Asterisk SIP služby, potrebujeme vytvoriť smerovanie hovorov medzi jednotlivými SIP klientami. Aby sme to dosiahli, musíme začať úpravou súboru extensions.conf.

Pre náš príklad, pridajte nasledujúcu konfiguráciu:

[kancelaria]
exten => 100,1,Dial('SIP/100',20)
exten => 100,n,Voicemail(100)
exten => 100,n,Hangup

exten => 200,1,Dial('SIP/200',20)
exten => 200,n,Voicemail(200)
exten => 200,n,Hangup

Obidve pobočky sú pripravené volať medzi sebou. Ak jedna pobočka volá priamo na druhú pobočku tak po 20 sekundách v prípade neprevzatia hovoru je volajúci presmerovaný do odkazovej schránky.

Odkazová schránka

Nastavenie odkazovej schránky sa upravuje v súbore voicemail.conf. Tak ako sme si už zvykli, najskôr definujeme všeobecné nastavenia v sekcii [general] a potom definujeme kontextové nastavenie. Nastavujeme formát hlasovej správy vo formáte napr. gsm, wav a pod.

[general]
format = gsm|wav

Definícia kontextu odkazovej schránky je už v známom formáte:

[kontext]
extension => heslo, skutočné meno, e-mailová adresa, užívateľské možnosti

V našom príklade nastavíme odkazovú schránku schránku pre každého z užívateľov:

[kancelaria]
100 => 456,Jan Tester,jan@firma_test.sk
200 => 789,Fero Pokus,fero@firma_test.sk

Teraz, keď Fero Pokus dostane novú hlasovú schránku, bude mu táto správa poslaná ako kópia do e-mailu fero@firma_test.sk.

Záver

V túto chvíľu sme schopní telefonovať medzi Janom a Ferom. Prihláste sa ako užívateľ root a spustite

widgety

$ /etc/init.d/asterisk start

a Asterisk bude naštartovaný a súčasne si môžete nakonfigurovať softvérové telefóny. Nezabudnite zadať správne prihlasovacie meno a heslo, rovnako pamätajte, že Asterisk podporuje komunikaciu so SIP len cez UDP. Po úspešnom nakonfigurovaní si môžete začať volať.


Autor je pracovník spoločnosti DialCom Servis s.r.o., ktorá sa dlhodobo zaoberá VoIP telekomunikačnými riešeniami.

Našli jste v článku chybu?
Podnikatel.cz: Tyto pojmy k #EET byste měli znát

Tyto pojmy k #EET byste měli znát

Lupa.cz: Patička e-mailu závazná jako vlastnoruční podpis?

Patička e-mailu závazná jako vlastnoruční podpis?

DigiZone.cz: Přelaďte si Šlágr TV u Skylinku

Přelaďte si Šlágr TV u Skylinku

120na80.cz: Tipy jak zvládnout školku

Tipy jak zvládnout školku

Vitalia.cz: Tahák, jak vyzrát nad zápachem z úst

Tahák, jak vyzrát nad zápachem z úst

DigiZone.cz: Technisat připravuje trojici DAB

Technisat připravuje trojici DAB

120na80.cz: Co je padesátkrát sladší než cukr?

Co je padesátkrát sladší než cukr?

DigiZone.cz: Sat novinky: NASA Ultra HD (4K)

Sat novinky: NASA Ultra HD (4K)

DigiZone.cz: Parlamentní listy: kde končí PR...

Parlamentní listy: kde končí PR...

DigiZone.cz: Regionální tele­vize CZ vysílá "Mapu úspěchu"

Regionální tele­vize CZ vysílá "Mapu úspěchu"

Měšec.cz: TEST: Vyzkoušeli jsme pražské taxikáře

TEST: Vyzkoušeli jsme pražské taxikáře

Vitalia.cz: 5 chyb, které děláme při skladování potravin

5 chyb, které děláme při skladování potravin

Vitalia.cz: Tradiční čínská medicína a rakovina

Tradiční čínská medicína a rakovina

120na80.cz: Galerie: Čínští policisté testují českou minerálku

Galerie: Čínští policisté testují českou minerálku

Lupa.cz: Blíží se konec Wi-Fi sítí bez hesla?

Blíží se konec Wi-Fi sítí bez hesla?

Lupa.cz: Jak levné procesory změnily svět?

Jak levné procesory změnily svět?

Vitalia.cz: Jak Ondra o astma přišel

Jak Ondra o astma přišel

Lupa.cz: Další Češi si nechali vložit do těla čip

Další Češi si nechali vložit do těla čip

Lupa.cz: Cimrman má hry na YouTube i vlastní doodle

Cimrman má hry na YouTube i vlastní doodle

Podnikatel.cz: Byla finanční manažerka, teď cvičí jógu

Byla finanční manažerka, teď cvičí jógu