Počítačové sítě/LAB: IP telefony
Požadavky
editovat- 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
editovatVoIP (anglicky Voice over IP) je způsob přenosu hlasové a multimediální komunikace přes protokol IP[1].
Co je SIP
editovatSIP (anglicky Session Initiation Protocol) je protokol sloužící pro navázání komunikace, často používán ve VoIP[2].
Co je dial plan
editovatDial 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í
editovatZprovozněte komunikaci mezi IP telefony, které budou navazovat spojení přes Asterisk server.
Schéma
editovatÚkoly
editovat- Sestavit síť podle schématu
- Nastavit Asterisk ústřednu
- Nastavit telefony
- Otestovat komunikaci
Řešení
editovatNastavení Raspberry Pi
editovatZjiš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
editovatNejví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
editovatSpuš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
editovatIP 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
editovatAsterisk ú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í
editovatPř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
editovatByla 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- ↑ 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.