Konfigurujeme Asterisk ústřednu bez www rozhraní

V průběhu tohoto textu společně nakonfigurujeme ústřednu asterisk bez www rozhraní - editací jeho konfiguračních souborů. Výsledkem naší práce bude fungující telefonní ústředna se 2 (můžete i více) interními telefonními přístroji, nebo SW klienty (např. v domácnosti nebo ve firmě). Tuto ústřednu společně také připojíme k vašemu existujícímu účtu Odorik, čímž budete moci volat prakticky kamkoliv a přijímat hovory prakticky odkudkoliv. (Následující postup byl vyzkoušen pro Asterisk 1.6.2.14).

Co budeme potřebovat

* Abychom mohli vůbec pokračovat, bude třeba připravit si pro další práci zvlášť nový virtuální server podle návodu Základní instalace Asterisk na Debian 5 (Lenny), nebo lépe Základní instalace Asterisk na Debian 6 (Squeeze). Nezapomeňte také nastavit minimálně 256MB RAM a alespoň 3GB diskového prostoru, aby vaše ústředna fungovala bezproblémově. Také doporučuji dodatečně nainstalovat kodek g729 podle návodu Instalace kodeku G.729, ale tento krok není nezbytně nutný. Kodek g729 můžete dodatečně nainstalovat kdykoliv poté.

* Dále bude potřeba znát vaše vnitřní přihlašovací jméno v síti Odorik a s ním spojené heslo. Oba údaje zjistíte po svém přihlášení na stránkách http://www.odorik.cz v sekci 'návody a nastavení'. Zde Postupně vyberte 'Volání z internetu' a 'Volání z libovolného SIP programu, VoIP telefonu či adaptéru'. Poznačte si údaje 'přihlašovací jméno' a 'heslo pro VoIP' a případně zkontrolujte, zda máte aktivní protokol SIP, jak ilustruje obrázek.

Konfigurujeme

Po vytvoření virtuálního serveru na 4smart.cz, nastavení dostatečného množství systémových prostředků a vlastní instalaci Asterisku podle výše uvedeného doporučení se ke svému serveru přihlaste přes SSH.

Nejprve úklid

Přejděte do adresáře /etc/asterisk příkazem:

cd /etc/asterisk

Pokud jste při instalaci asterisku nainstalovali i vzorové konfigurační soubory, bude je obsahovat právě tento adresář. Ve skutečnosti nebudeme potřebovat žádný z nich. Vytvoříme si svoje vlastní. Všechny stávající konfigurační soubory přesuneme do podadresáře. Mohou se vám někdy v budoucnu hodit jako inspirace a pomocný zdroj při řešení problémů s vlastními konfiguracemi.

mkdir original-config
mv *.* original-config/

asterisk.conf

Začneme vytvořením tohoto souboru, kde nastavíme důležité proměnné, jenž říkají asterisku, kde hledat soubory s nastavením, moduly, soubory se zvuky a hudbou, úložiště pro databázi a odkaz, kam bude asterisk logovat. Obsah souboru asterisk.conf tedy bude následující:

[directories]
astetcdir => /etc/asterisk
astmoddir => /usr/lib/asterisk/modules
astvarlibdir => /var/lib/asterisk
astdatadir => /var/lib/asterisk
astdbdir => /var/lib/asterisk
astrundir => /var/run/asterisk
astlogdir => /var/log/asterisk

sip.conf

Soubor sip.conf bude obsahovat konfiguraci všech extensions naší ústředny, jenž využívají protokolu SIP. Pojem extension si lze vysvětlit jako přípojku k zařízení (telefon / SW klient), a také jako páteřní spoj Trunk v našem případě do sítě Odorik. Nejprve globálně nastavíme naši ústřednu tak, aby nemohla přijímat anonymní volání z internetu. To zajistí nastavení 'allowguest=no'. Současně také bude třeba nastavit, aby se naše ústředna zaregistrovala v síti Odorik a s ním spojené heslo.

[general]
allowguest=no
Register => uzivatelske_jmeno:heslo@sip.odorik.cz/*uzivatelske_jmeno

Řetězce 'uzivatelske_jmeno' a 'heslo' na tomto řádku nahraďte vašimi údaji.

Nyní nakonfigurujeme extensions (přípojky) pro vaše vnitřní SIP telefony, nebo softwarové klienty. Budeme pro jednoduchost uvažovat pouze 2 telefony. Do souboru sip.conf přidejte následující řádky:

[muj_telefon1]
type=friend
secret=qe25rt6dd
userid=Muj telefon1 <201>
host=dynamic
context=internal

[muj_telefon2]
type=friend
secret=erg1g58pf
userid=Muj telefon2 <202>
host=dynamic
context=internal

Volba 'type=friend' zajistí, že váš telefon bude moci volat i přijímat hovory. Ústředna si u něj také bude pamatovat jeho současnou IP adresu.

'secret=' představuje heslo. Tímto heslem se bude telefon registrovat na vaši ústřednu. Bezpečné jsou kombinace písmen a číslic. V obou případech zadejte vlastní smyšlená hesla.

'userid' se bude zobrazovat na displeji volaného telefonu.

'host=dynamic' zajistí, že se váš telefon může k ústředně přihlásit z libovolné IP adresy.

'context=internal' je jméno kontextu, který se bude provádět, když budete s telefonem realizovat odchozí hovor. Kontext, mimo jiné, určuje číslovací plán vaší ústředny a budeme se mu věnovat v souboru extensions.conf.

Zbývá ještě nadefinovat extension pro Trunk (páteřní spoj vaší ústředny) do sítě Odorik. Jen tak budete moci volat na libovolné telefonní číslo a přijímat hovory například ze svého mobilního telefonu. Do souboru sip.conf dále přidejte tyto řádky:

[odorik]
type=peer
username=uzivatelske_jmeno
secret=heslo
host=sip.odorik.cz
canreinvite=no
insecure=invite
context=incoming

'type=peer' Je zvláštní typ přípojky určený pro Trunk do Odoriku. Vaše ústředna si bude pamatovat IP adresu brány Odoriku.

'username=' V tomto případě nahraďte uvedený řetězec 'uzivatelske_jmeno' za vaše přihlašovací jméno do sítě Odorik (viz. obrázek výše).

'secret=' Rovněž nahraďte 'heslo' za vaše přihlašovací heslo do sítě odorik (viz. obrázek výše).

'host=sip.odorik.cz' Je nastavení brány do sítě Odorik, ponechte uvedené.

'canreinvite=no' Zajistí, že všechny hovory (hlasová data) půjdou skrze ústřednu.

'insecure=invite' Zajistí, že se vaše ústředna nebude autentizovat pro hovory, které přicházejí ze sítě Odorik na vaši ústřednu. Pokud by tento řádek chyběl, nebylo by možné přijímat hovory zvenčí.

'context=incoming' Je název kontextu, který se bude provádět, pokud bude tento extension 'zvonit' = pro všechny příchozí hovory ze sítě Odorik.

extensions.conf

V tomto konfiguračním souboru je definován dialplan ústředny. Dialplany jsou součástí kontextů. V souboru sip.conf jsme deklarovali kontexty dva (internal a incoming). V souboru extensions.conf je budeme definovat. Předpokládejme, že naše dva telefony [muj_telefon1] a [muj_telefon2] (viz. sip.conf) budou mít telefonní čísla 201 a 202. Bude-li chtít např. telefon [muj_telefon1] zavolat na [muj_telefon2], vytočí prostě 202. Opačně by to vypadalo podobně. V souboru extensions.conf to bude vypadat následovně:

[general]

[globals]

[internal]
exten => 201,1,Dial(SIP/muj_telefon1)
exten => 202,1,Dial(SIP/muj_telefon2)

Jak je vidět, jsou tato pravidla součástí kontextu 'internal'. Nyní již by bylo možné realizovat vzájemná volání mezi telefony, ovšem vyžadovalo by to provést reload dialplanu a podobně i konfigurace SIP vaší ústředny. My ale budeme pokračovat přidáním dalších řádků, které vám umožní volat z vaší ústředny na libovolné telefonní číslo v ČR. Stačí do kontextu 'internal' přidat další řádky:

exten => _XXXXXXXXX,1,Set(CALLERID(number)=uzivatelske_jmeno)
exten => _XXXXXXXXX,n,Dial(SIP/00420${EXTEN}@odorik)

V příkazu set nezapomeňte zadat vaše přihlašovací jméno do sítě Odorik, místo uvedeného řetězce 'uzivatelske_jmeno'. Jednoduše můžete doplnit i pravidla, která vám umožní volat i 3-místná čísla začínající jedničkou (150,155,158,…).

exten => _1XX,1,Set(CALLERID(number)=uzivatelske_jmeno)
exten => _1XX,n,Dial(SIP/00420${EXTEN}@odorik)

Pokud budete chtít navíc volat i v síti odorik, šlo by to vyřešit takto:

exten => _*XXXXXX,1,Set(CALLERID(number)=uzivatelske_jmeno)
exten => _*XXXXXX,n,Dial(SIP/${EXTEN}@odorik)

Opět, jako v prvním případě, nezapomeňte vždy změnit řetězec 'uzivatelske_jmeno' za svoje přihlašovací jméno. Pokud by v zadaném uživatelském jméně byla chyba, nebylo by možné odchozí hovor vůbec realizovat. Poslední uvedená pravidla akceptují volání na čísla začínající '*' se šesti číslicemi.

V tomto okamžiku máme kompletně vyřešeny i všechny odchozí hovory. Zbývá vyřešit ty příchozí. Pro ně jsme definovali speciální kontext 'incoming'. Pokud tedy bude extension 'Odorik' vyzvánět, provede asterisk obsah tohoto kontextu. Ukážeme si ten nejjednodušší případ, jak na to. Řekněme, že chceme, aby příchozí hovor zvenčí (například z vašeho mobilu) vždy vyzváněl na všech telefonech současně. Do souboru extensions.conf proto přidáme:

[incoming]
exten => _.,1,Dial(SIP/muj_telefon1&SIP/muj_telefon2,120,g)
exten => _.,n,Hangup()

Toto je nejjednodušší příklad, jak příchozí hovory směrovat na všechny telefony. Asterisk nabízí více možností, které lze vybrat podle konkrétních potřeb.

Z nastavení je to vše. Veškeré editované soubory nyní uložte.

Spuštění asterisku s novou konfigurací

Nejprve je třeba zjistit, jestli asterisk běží. To provedete příkazem:

pgrep asterisk

Pokud příkaz nic nevrátí, asterisk neběží. Spusťte jej proto příkazem:

/etc/init.d/asterisk

Tím můžete skončit a přeskočit až k nadpisu 'Testujeme' :-). Konfigurace se zavedla automaticky se spuštěním asterisku. Jestliže ale příkaz pgrep vrátil číselnou hodnotu, tj. asterisk běží, existují 2 způsoby, jak novou konfiguraci zavést. Který zvolíte, je jen na vás. Nejprve ten nejjednodušší a „nejhrubější“:

/etc/init.d/asterisk restart

Takto asterisk jako démona natvrdo restartujete. Nová konfigurace se načte s jeho spuštěním. Daleko šetrnější způsob je vše provést pomocí vlastní konzole Asterisku. Do konzole vstoupíte příkazem:

asterisk -r

nebo jen

rasterisk

V konzoli pak zadejte příkazy:

sip reload
dialplan reload

Pokud jste někde neudělali chybu, mělo by vám vše fungovat, jak bylo popsáno a můžete začít s testováním.

Testujeme

Pokud budete potřebovat, zde je pár rad, jak nastavit SW klienta, nebo VoIP zařízení Linksys. Mohou vám ušetřit čas. Prezentovaná konfigurace je jedna z těch jednodušších. Ty komplexní můžete svěřit nám (podpora[zav.]4smart.cz), rádi vám pomůžeme.

Zpět na přehled Wiki

 
konfigurujeme-ustrednu-bez-www-rozhrani.txt · Poslední úprava: 2015/08/20 10:27 autor: misa