Počítačové sítě/LAB: IP telefony
Požadavky
[editovat | editovat zdroj]- 1x Asterisk na Debian serveru (v příkladu použito Raspberry Pi s OS Raspbian)
- ?x IP telefon (v příkladu použit Linksys SPA942 a Cisco 303)
- Funkční síť, funkční DHCP server
Co je VoIP
[editovat | editovat zdroj]VoIP (anglicky Voice over IP) je způsob přenosu hlasové a multimediální komunikace přes protokol IP[1].
Co je SIP
[editovat | editovat zdroj]SIP (anglicky Session Initiation Protocol) je protokol sloužící pro navázání komunikace, často používán ve VoIP[2].
Co je dial plan
[editovat | editovat zdroj]Dial plan je očekávaná sekvence čísel používaná v telefonii pro zavolání funkce (jednou z funkcí je např. Dial - snaží se spojit hovor)[3].
Zadání
[editovat | editovat zdroj]Zprovozněte komunikaci mezi IP telefony, které budou navazovat spojení přes Asterisk server.
Schéma
[editovat | editovat zdroj]Úkoly
[editovat | editovat zdroj]- Sestavit síť podle schématu
- Nastavit Asterisk ústřednu
- Nastavit telefony
- Otestovat komunikaci
Řešení
[editovat | editovat zdroj]Nastavení Raspberry Pi
[editovat | editovat zdroj]Zjištění IP adresy Raspberry Pi pomocí příkazu ip addr
:
root@raspberrypi:~# ip addr 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000 link/ether b8:27:eb:f2:f1:17 brd ff:ff:ff:ff:ff:ff inet 192.168.1.21/24 brd 192.168.1.255 scope global eth0:0 valid_lft forever preferred_lft forever inet6 fe80::ba27:ebff:fef2:f117/64 scope link valid_lft forever preferred_lft forever
Je třeba nainstalovat SIP ústřednu Asterisk:
root@raspberrypi:~# apt-get update root@raspberrypi:~# apt-get install asterisk
Nastavení Asterisk
[editovat | editovat zdroj]Nejvíce práce je s nastavením Asterisk ústředny. Pro konfiguraci slouží dva soubory: sip.conf
a extensions.conf
uložené v adresáři /etc/asterisk
. Pro jejich editaci použijeme program nano. Po editaci souboru se změny uloží pomocí klávesové zkratky Ctrl-O
, je třeba potvrdit jméno souboru [Enter]
a ukončit nano klávesovou zkratkou Ctrl-X
.
Soubor sip.conf
[4] slouží k autentizaci jednotlivých uživatelů :
root@raspberrypi:~# cd /etc/asterisk root@raspberrypi:/etc/asterisk# nano sip.conf
Ukázková konfigurace pro 3 telefony:
[tel1] ; ID uzivatele type=friend host=dynamic secret=a123 ; heslo uzivatele context=locals ; kontext [tel2] type=friend host=dynamic secret=b234 context=locals [tel3] type=friend host=dynamic secret=c345 context=locals
Soubor extensions.conf
[5] slouží jako dialplan - říká, co se stane, když uživatel na telefonu vytočí nějaké číslo[6]:
root@raspberrypi:/etc/asterisk# nano extensions.conf
Ukázková konfigurace pro 3 telefony:
[locals] ; kontext exten => 123,1,dial(SIP/tel1) ; kdokoli vytoci 123, zavolej tel1 exten => 234,1,dial(SIP/tel2) exten => 345,1,dial(SIP/tel3)
Je třeba, aby parametr context
v souboru sip.conf
byl stejný jako jméno uvedené v hranatých závorkách []
v souboru extensions.conf
.
Spuštění Asterisk
[editovat | editovat zdroj]Spuštění Asterisk ústředny se provede pod uživatelem root příkazem:
root@raspberrypi:~# asterisk -r raspberrypi*CLI>
Tím se zároveň spustí konzole sloužící k ovládání Asterisk ústředny. V konzoli je po změně autentizačního souboru sip.conf
třeba aktualizovat seznam uživatelů, následně lze aktuální uživatele vypsat:
raspberrypi*CLI> sip reload raspberrypi*CLI> sip show users
Po změně souboru extensions.conf
je třeba dial plan aktualizovat:
raspberrypi*CLI> dialplan reload
Vypsání kontextu (v tomto LABu byl použit kontext locals):
raspberrypi*CLI>dialplan show locals
Pokud dojde k nějaké chybě v Asterisk ústředně (většinou způsobené špatnou konfigurací v souborech sip.conf
a extensions.conf
, zobrazí se tato chyba v konzoli.
Nastavení telefonu Linksys a Cisco
[editovat | editovat zdroj]IP adresa telefonu se získá z menu (tlačítko s obrázkem listu papíru) -> Network. Lze použít i zkratku menu -> 9.
Přihlásit se do webového rozhraní IP telefonu -> Admin login (vpravo nahoře) -> Ext1 a vyplnit následující údaje:
- Proxy: IP adresa Asterisk serveru
- User ID: Identifikátor ze
sip.conf
(ID uzivatele) - Password: Heslo ze
sip.conf
(heslo uzivatele)
Pokročilé nastavení Asterisk
[editovat | editovat zdroj]Asterisk ústředna má mnoho možností nastavení, včetně vytvoření plně automatického systému. Jednoduchý příklad, který po vytočení čísla 999 zvedne hovor, řekne hello world a zavěsí se nastaví v souboru extensions.conf
:
exten => 999,1,Answer same => n,Background(hello-world) same => n,HangUp
Testování
[editovat | editovat zdroj]Při testování se vytočí číslo sousedního přístroje, ten by měl začít zvonit. Hovor se přijme, otestuje se kvalita hovoru a zavěsí se.
Při testování automatické ústředny se vytočí číslo automatu, měla by se ozvat hláška hello world.
Závěr
[editovat | editovat zdroj]Byla nastavena pobočková ústředna Asterisk a na ní připojeny IP telefony. Pomocí SIP protokolu došlo k navázání spojení mezi telefony, načež byla otestována kvalita hovoru.
Reference
[editovat | editovat zdroj]- ↑ https://en.wikipedia.org/wiki/Voice_over_IP
- ↑ https://en.wikipedia.org/wiki/Session_Initiation_Protocol
- ↑ https://en.wikipedia.org/wiki/Dial_plan
- ↑ http://www.voip-info.org/wiki/view/Asterisk+config+sip.conf
- ↑ http://www.voip-info.org/wiki/view/Asterisk+config+extensions.conf
- ↑ Ve skutečnosti uživatel nevytáčí číslo, ale tzv. extension, což můžou být libovolné alfanumerické znaky.