VoIP rendszer linux alapú beágyazott vezérlőn Kordován Szabolcs Péter EI3Q1N
Tartalom Bevezető .................................................................................................................................................. 2 Topológia ................................................................................................................................................. 2 Kliens beállítások ..................................................................................................................................... 3 PAP2 .................................................................................................................................................... 3 SPA3102............................................................................................................................................... 6 Beállítások általában ........................................................................................................................... 9 Szerver beállítások................................................................................................................................. 10 Felhasználók ...................................................................................................................................... 10 Híváskezelés ...................................................................................................................................... 10 Helyreállítás ........................................................................................................................................... 11 Mellékletek ............................................................................................................................................ 13 Using the Interactive Voice Response Menu .................................................................................... 13 Interactive Voice Response Menu (PAP2) ......................................................................................... 13 Interactive Voice Response Menu (SPA3102) ................................................................................... 15 Asterisk konfigurációs fájlok.............................................................................................................. 16
Bevezető Csomagkapcsolt hangátvitel (VoIP) bemutatását és tanulmányozását teszi lehetővé Session Initiation Protocol (SIP) alkalmazásával, az RFC3261 ajánlás szerint a létrehozott rendszer. Központi részét Asterisk szerver adja, mely egy ipari beágyazott rendszerre lett telepítve. A hardver Moxa AI240 típusú egység, sd kártyával bővített háttértárral. A szoftver és a beállításait tartalmazó fájlok az sd kártyán vannak, ami az alap rendszer egyik könyvtárába van mount-olva. A gép indulása után néhány perc szükséges a szoftverek beindulásáig. Az előlapon lévő Ready led folyamatos világítása jelzi, hogy a rendszer elindult. Kliens szinte bármi lehet: célhardver (IP telefon), szoftver (softphone), terminál adapter (media gateway). Beállításuk különböző, már csak az eltéréseik miatt is, azonban közös a szerver, a felhasználónév és a jelszó beállítása. A rendszerben jelenleg két Linksys Analog Telephone Adapter (ATA) van. A szerver és a kliensek switch-hez csatlakoznak, portjaik tükrözve vannak egy adott portra, ahol egy külön számítógépen megfigyelhető az eszközök közötti forgalom. A jelzések Wireshark protokoll analizátorral vizsgálhatók valós időben.
Topológia
1. ábra Topológia
A szervernek és az ATA-knak egy hálózati tartományban kell lenniük. A szerver LAN2 interfésze 192.168.4.127/24 címen érhető el. Az ATA-k konfigurálása webes felületen a legegyszerűbb. Ehhez a monitorozó gép használható. A gateway-ek ip címét a hozzájuk csatlakoztatott telefonkészülékkel lehet lekérdezni, beállítani. Mellékletben megtalálható a két típusú ATA IVR menüje, amit négy * (csillag) megnyomásával lehet elérni.
Kliens beállítások Az alábbiak legalapvetőbb beállítások a működő rendszerhez.
PAP2
2. ábra PAP2 Interfészek
Telefonnal tiltani kell a DHCP-t, majd statikus címet kell adni. Ezután a monitorozó gépen a böngészőbe beírva a megadott ip címet elérhető az eszköz weblapja.
3. ábra PAP2 Weboldal
Alapértelmezetten nincs jelszó beállítva. Ha mégis kéri, akkor IVR-ral vissza kell állítani a gyári beállításokat. Sikeres belépés után az "Admin Login"-ra kattintva válthatunk felhasználót.
4. ábra PAP2 Admin Login
Ezután a részletes beállításhoz a "switch ti andvanced view"-ra kell kattintani.
5. ábra PAP2 Advanced View
Az Info fülön az eszköz állapota tekinthető meg, a System az alapvető rendszerbeállításokat tartalmazza. Itt lehet megváltoztatni az ip címét is ha szükséges. A SIP fülön a globális SIP beállítások találhatók. A portok a LINE1 és LINE2 fülön programozhatók. A következő mezőket kell kitölteni:
SIP Port: 5060 Proxy: szerver címe, 192.168.4.127 Use Outbound Proxy: no Register: yes Display Name, User ID, Auth Name: felhasználónév Password: jelszó Use Auth ID: yes Dial Plan: (xxx) Preferred Codec: kiválasztható, hogy melyik codec legyen a felajánlható sorban az első
A változtatásokat a "Save Settings" gombbal lehet elmenteni. Szükség esetén újraindul az ATA.
6. ábra PAP2 LINE beállítás
SPA3102
7. ábra SPA3102 Interfészek
Az eszköz routerként is használható, ezért két ethernet interfésszel rendelkezik, valamint két RJ11 csatlakozóval, mert a PSTN hálózatot tudja használni mint tartalék. Telefonnal lekérdezhetőek az interfészek ip címei. A WAN oldal az Internet, a LAN oldal az Ethernet feliratú. A külső interfészén keresztül kell kapcsolódni a szerverhez, ezért erre kell a 192.168.4.0/24 tartományból címet adni. Alapértelmezetten a WAN oldalról nem lehet elérni a weboldalát. Ha szükséges ezt engedélyezni kell a LAN oldalról belépve. Telefonnal le lehet kérdezni az ip címeket. A monitorozó gépen a böngészőbe beírva a kiválasztott ip címet elérhető az eszköz weblapja.
8. ábra SPA3102 Weboldal
Alapértelmezetten nincs jelszó beállítva. Ha mégis kéri, akkor IVR-ral vissza kell állítani a gyári beállításokat. Sikeres belépés után az "Admin Login"-ra kattintva válthatunk felhasználót. Ezután a részletes beállításhoz a andvanced-ra kell kattintani.
9. ábra SPA3102 Admin advanced
A Router fülön a router beállításai találhatók. Itt lehet megváltoztatni az ip címeket is ha szükséges. A Voice fülön vannak a telefonos rész beállításai. Azon belül a SIP fülön a globális SIP beállítások találhatók. A port a LINE1 fülön programozható. A következő mezőket kell kitölteni:
SIP Port: 5060 Proxy: szerver címe, 192.168.4.127 Use Outbound Proxy: no Register: yes Display Name, User ID, Auth Name: felhasználónév Password: jelszó Use Auth ID: yes Dial Plan: (xxx) Preferred Codec: kiválasztható, hogy melyik codec legyen a felajánlható sorban az első
A változtatásokat a "Submit All Changes" gombbal lehet elmenteni. Szükség esetén újraindul az ATA.
10. ábra SPA3102 LINE1 Beállítások
Beállítások általában A különböző kliensek beállításaiban megegyezik, hogy a szervert, a portot, felhasználónevet és jelszót. A szervert többféle képen hívhatják: registrator, register, proxy, host, server stb. Előfordulhat, hogy felhasználónevet több helyen lehet beállítani, mint a PAP2 és SPA3102 esetében. Az egyik az a név, amit a From header Display info részében használ (ez a Display Name a Linksys/Cisco esetében), a másik a regisztráláskor használt név, amihez a jelszó is tartozik (ez az Auth ID Linksys/Cisco esetében). Valamint külön konfigurálható a felhasználó azonosító, ami a From header címében a User Part (ez a User ID Linksys/Cisco esetében) A számjegyek bevételezését a kliens végzi. A telefonszámok logikáját a helyes és kontrolált működés érdekében meg kell adni. A kliens a megadott szabályok közül keresi a legmegfelelőbbet már tárcsázás közben, ha megtalálta, indítja a hívás, ha egyik szabálynak sem felel meg a tárcsázott szám, befleyezi a bevételezést és hibát jelez. Többnyire ez foglaltsági hang. A szabályokat a Dial Plan, Digitmap mezőbe lehet felvinni általában "|" szimbólummal elválasztva. Külön ajánlás nincs hozzá, így sajnos vannak gyártói sajátosságok, de alapjaiban a következő:
Digit: számjegy "0"-tól "9"-ig. Timer: "T" szimbólum jelzi az időzítő lejáratát. A timer minden leütött DTMF után újraindul. DTMF: Digit vagy Timer vagy a következő szimbólumok egyike "A", "B", "C", "D", "#", "*". Wildcard: "x" szimbólum helyettesít számjegyeket ("0"-tól "9"-ig). Range: Egy vagy több DTMF szimbólum szögletes zárójelben ("[" és "]"). Subrange: két számjegy kötőjellel ("-") elválasztva szögletes zárójelen belül, a Range részeként, helyettesíti a két számjegyet és a közéjük eső számjegyeket. Position: "." szimbólum tetszőleges számú előfordulást jelent, beleértve a nullát is.
Példák -
-
xxx - három digit 2xx - 200-tól 299-ig 2[1357-9]x - 210-219 és 230-239 és 250-259 és 270-299 06[237]0xxxxxxx - Magyarországról 20, 30, 70 kezdetű mobilszámok 061[2-9]xxxxxx - Magyarországról budapesti számok 00[1-9]x.T - külföldi számok, a 00 után csak 1 és 9 közötti számjegy lehet, majd bármilyen digit tetszőleges számban, ha a timer lejártáig nem jön újabb DTMF a bevételezés sikeresen véget ér *31[]*# - *31* és *31#
Szerver beállítások A gép automatikusan indul, ha tápot kap. Az előlapon lévő Ready folyamatos világítása jelzi, hogy az alkalmazások elindultak. A két interfésze van: LAN1 DHCP kliens, LAN2 192.168.4.127/24. Amennyiben szükségessé válik, úgy a Helyreállítás részben leírtak szerint, valamint ssh-val lehet belépni. Két részre lehet osztani a feladatokat a szerveren: felhasználók kezelésére és híváskezelésre. Mellékletben megtalálhatók a konfigurációs fájlok szükséges részei.
Felhasználók A felhasználó egyedileg paraméterezhetőek. Minden felhasználónak van jelszava, hívásazonosítója, codeklistája, belépési pontja a híváskezeléshez. Ezen kívül további paraméterekkel finomíthatók a beállítások. Jelenleg öt felhasználó van létrehozva, 201-205. A felhasználónév és jelszó egymásból következik. A 204 és 205 felhasználó annyiban tér el a többitől, hogy egymást hívva a media közvetlenül a kliensek között tud menni, azaz nem járatódnak meg az RTP csomagok a szerveren, ha a codec egyeztetés sikeres. [201] type=friend host=dynamic secret=kando201 callerid="201" <201> context=kando dtmfmode=auto disallow=all allow=gsm,alaw,ulaw qualify=90 canreinvite=no call-limit=2
;felhasználónév szögletes zárójelek között ;felhasználó típusa, friend egyszerű felhasználó (lehetne peer) ;felhasználó címe nincs megkötve (ACL), bárhonnan jöhet dinamikusan ;jelszó ;hívás azonosító, a from header ez lesz ha felhasználó telefonál (erre lecseréli a kliens által küldött from header-t) ;belépési pont a híváskezeléshez ;dtmf kezelése, lehet in-band, SIP-INFO és RFC2833 ;minden codec-et tilt ;prioritási sorrendben engedélyezi a gsm,alaw,ulaw codec-et ;90 másodpercenként küld egy keep-alive üzenetet, ez a valóságban egy OPTION üzenet ;media közvetlen engedélyezése másik kliens felé, 204 és 205 esetén yes ;párhuzamosan két hívása lehet
Híváskezelés A szerveren előre definiált szabályok vannak. Ezekek közül a szabályok közül próbálja meg megtalálni a legjobban illeszkedőt a klienstől fogadott hívott számra (Request-URI). A szintaxis hasonló a dial plan-éhez. A szabály egy extension-t határoz meg. Az extension-ben prioritások szerint hajtódnak végre a parancsok. Az "n" az előfordulás sorendjében helyettesíti a prioritást. Minden extension-ben elsőként egy kiírás van (ez csak az Asterisk konzoljában jelenik meg), utolsóként egy bontás parancs. Ez utóbbi az esetleges további egyezés esetén történő híváskezelést akadályozza meg. [kando] ;200-209 exten => _20X,1,NoOp(${EXTEN}) exten => _20X,n,Dial(SIP/${EXTEN}) exten => _20X,n,Hangup()
;context neve szögletes zárójelben ;Hívott szám kiírása ;hívott szám tárcsázása ;hívás bontása
;invalid hívás exten => i,1,NoOp(${EXTEN}) exten => i,n,Hangup()
;Hívott szám kiírása ;hívás bontása
;600 exten => 600,1,NoOp(Echo test)
;"Echo test" kiírása
exten exten exten exten
=> => => =>
600,n,Playback(demo-echotest) 600,n,Echo 600,n,Playback(demo-echodone) 600,n,Hangup()
;700 exten => 700,1,NoOp(Demo) exten => 700,n,Playback(demo-congrats) exten => 700,n,Hangup()
;demo-echotest monda lejátszása, echo test használata ;echo, visszaküldi a vett hangot ;demo-echodone monda lejátszása, echo test vége ;hívás bontása ;"Demo" kiírása ;demo-congrats monda lejátszása ;hívás bontása
Helyreállítás A gép oldalán található Reset to Default gombot addig kell nyomni, amíg a Ready led kialszik teljesen. Ezzel a gép alapbeállításai kerülnek visszaállításra. Soros-porton lehet csatlakozni hozzá a következők szerint: Baudrate Parity Data bits Stop bits: Flow Control Terminal
115200 bps None 8 1 None VT100
Az ENTER leütésével kérni fogja a felhasználónevet és jelszót. Moxa login: root Password: root
Az SD kártyán lévő script-tel helyreállíthatók a rendszer beállítások. A visszaállítás után újra kell indítani a gépet a reboot paranccsal. root@Moxa:~# /mnt/sd/install.sh Szukseges beallitasok visszaallitasa ... Ujrainditas szukseges! Hasznalja a 'reboot' parancsot! root@Moxa:~# reboot root@Moxa:~#
Újraindítás után megváltozik a promt AST-ra, a LAN1 (eth0) interfészen DHCP kliens lesz. A VoIP alkalmazás automatikusan elindul. Nincs további teendő. Bejelentkezni a korábbiak szerint lehet továbbra is. Az ip címei az ifconfig paranccsal kérhetőek le. Az órát érdemes beállítani a logok értelmezéséhez, ha szükséges.
AST login: root Password: .$$$$$$$$$$$$$$$=.. .$7$7.. .7$$7:. .$$:. ,$7.7 .$7. 7$$$$ .$$77 ..$$. $$$$$ .$$$7 ..7$ .?. $$$$$ .?. 7$$$. $.$. .$$$7. $$$$7 .7$$$. .$$$. .777. .$$$$$$77$$$77$$$$$7. $$$, $$$~ .7$$$$$$$$$$$$$7. .$$$. .$$7 .7$$$$$$$7: ?$$$. $$$ ?7$$$$$$$$$$I .$$$7 $$$ .7$$$$$$$$$$$$$$$$ :$$$. $$$ $$$$$$7$$$$$$$$$$$$ .$$$. $$$ $$$ 7$$$7 .$$$ .$$$. $$$$ $$$$7 .$$$. 7$$$7 7$$$$ 7$$$ $$$$$ $$$ $$$$7. $$ (TM) $$$$$$$. .7$$$$$$ $$ $$$$$$$$$$$$7$$$$$$$$$.$$$$$$ $$$$$$$$$$$$$$$$. root@AST:~# ifconfig eth0 Link encap:Ethernet HWaddr 00:90:E8:2B:F4:D1 inet addr:10.160.23.34 Bcast:10.160.127.255 Mask:255.255.128.0 UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1 RX packets:253600 errors:0 dropped:0 overruns:0 frame:0 TX packets:33 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:19682831 (18.7 MiB) TX bytes:3410 (3.3 KiB) Interrupt:27 eth1
Link encap:Ethernet HWaddr 00:90:E8:2B:F4:D2 inet addr:192.168.4.127 Bcast:192.168.4.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Interrupt:25
lo
Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
root@AST:~#
Mellékletek Using the Interactive Voice Response Menu When entering values, such as an IP address, you may exit without saving your changes by press the * (star) key twice within half a second. Otherwise, the * (star) key will be treated as a decimal point or dot. After entering a value, such as an IP address, press the # (pound) key to indicate you have finished your selection. To save the new setting, press the 1 key. To review the new setting, press the 2 key. To re-enter the new setting, press the 3 key. To cancel your entry and return to the main menu, press the * (star) key. For example, to enter the IP address 191.168.1.105 using your telephone’s keypad, press: 191*168*1*105. When you are finished, press the # (pound) key, then press the 1 key to save the IP address. To cancel your entry and return to the main menu, press the * (star) key. If the menu is inactive for more than one minute, the Phone Adapter will automatically exit the Interactive Voice Response Menu. To re-enter the menu, press the * (star) key four times. The settings you have saved will take effect when you hang up the telephone. The Phone Adapter may reboot at this time.
Interactive Voice Response Menu (PAP2) Action
Command (press these keyson the telephone)
Choices
Description
Enter InteractiveVoice **** ResponseMenu
—
Check DHCP
100
—
Use this commandto enter the InteractiveVoiceResponse Menu. Do not pressanyother keys until you hear, “Configuration menu. Please enter option followed by the# (pound) key or hangup to exit.” Use this commandto find out if DHCP has been enabled or disabled. If it is enabled, thePhoneAdapter will be assigned an IP addressautomatically by your network router or gateway. If it is disabled, then thePhone Adapter will need to use a static IP address.
Enable/Disable DHCP
101
Enter 1 to enable Enter Enable or disable thePhoneAdapter’s 0 to disable DHCP feature. If your network router assignsIPaddresses, enter 1, otherwise, enter 0.
Check IPAddress
110
—
Use this commandto check the current IP addressof thePhone Adapter.
Action
Command (press these keyson the telephone)
Choices
Description
Set Static IPAddress
111
Enter the IPaddress using the numbers on your telephone keypad. Use the * (star) key to enter a decimal point.
To set a static IP address, the DHCP feature must bedisabled. If theDHCP feature is enabled, youwill hear, “InvalidOption,” if youtry to set a static IPaddress.
Check Network Mask (or Subnet Mask)
120
—
Use this commandto check the current network mask of thePhone Adapter.
Set Network Mask (or Subnet Mask)
121
Enter the network mask To set the network mask, theDHCP using numbers on your feature must bedisabled. If theDHCP telephone keypad. Use feature is enabled, youwill hear, the * (star) key to enter “InvalidOption,” if youtry to set the a decimal point. network mask.
Check StaticGateway IPAddress
130
—
Use this commandto check the current gateway IP addressof the Phone Adapter.
Set StaticGateway IP Address
131
Enter the IPaddress using numbers on your telephone keypad. Use the * (star) key to enter a decimal point.
To set astatic gateway IPaddress, the DHCP feature must be disabled. If the DHCPfeature isenabled, youwill hear, “InvalidOption,” if youtry to set a static gateway IP address.
Check MACAddress
140
—
Use this commandto check the current MACaddress of thePhone Adapter in hexadecimal string format.
Check Firmware Version 150
—
Use this commandto check the current version number of the firmware currently installed on the Phone Adapter.
Enable/DisableWebbasedUtility of Phone Adapter
7932
Enter 1 to enable Enter This feature is password protected by 0 to disable your Internet phoneservice provider. (TheWeb-basedUtility is disabled by default becauseyouwill not need to use it unless instructed to do so by your service provider.)
Manual Reboot
732668
—
After youhear, “Option successful,” hangup the phone. ThePhone Adapter will automatically reboot.
Interactive Voice Response Menu (SPA3102)
11. ábra SPA3102 IVR menü
Asterisk konfigurációs fájlok /usr/local/arm-linux/etc/asterisk/sip.conf
/usr/local/arm-linux/etc/asterisk/extensions.conf
[201] type=friend host=dynamic secret=kando201 callerid="201" <201> context=kando dtmfmode=auto disallow=all allow=gsm,alaw,ulaw qualify=90 canreinvite=no call-limit=2
[kando] exten => _20X,1,NoOp(${EXTEN}) exten => _20X,n,Dial(SIP/${EXTEN}) exten => _20X,n,Hangup()
[202] type=friend host=dynamic secret=kando202 callerid="202" <202> context=kando dtmfmode=auto disallow=all allow=gsm,alaw,ulaw qualify=90 canreinvite=no call-limit=2 [203] type=friend host=dynamic secret=kando203 callerid="203" <203> context=kando dtmfmode=auto disallow=all allow=gsm,alaw,ulaw qualify=90 canreinvite=no call-limit=2 [204] type=friend host=dynamic secret=kando204 callerid="204" <204> context=kando dtmfmode=auto disallow=all allow=gsm,alaw,ulaw qualify=90 canreinvite=yes call-limit=2 [205] type=friend host=dynamic secret=kando205 callerid="205" <205> context=kando dtmfmode=auto disallow=all allow=gsm,alaw,ulaw qualify=90 canreinvite=yes call-limit=2
exten => i,1,NoOp(${EXTEN}) exten => i,n,Hangup() exten exten exten exten exten
=> => => => =>
600,1,NoOp(Echo test) 600,n,Playback(demo-echotest) 600,n,Echo 600,n,Playback(demo-echodone) 600,n,Hangup()
exten => 700,1,NoOp(Demo) exten => 700,n,Playback(demo-congrats) exten => 700,n,Hangup()
1. ÁBRA TOPOLÓGIA ..................................................................................................................................................... 2 2. ÁBRA PAP2 INTERFÉSZEK ........................................................................................................................................... 3 3. ÁBRA PAP2 WEBOLDAL ............................................................................................................................................ 3 4. ÁBRA PAP2 ADMIN LOGIN......................................................................................................................................... 3 5. ÁBRA PAP2 ADVANCED VIEW .................................................................................................................................... 4 6. ÁBRA PAP2 LINE BEÁLLÍTÁS ...................................................................................................................................... 5 7. ÁBRA SPA3102 INTERFÉSZEK ..................................................................................................................................... 6 8. ÁBRA SPA3102 WEBOLDAL....................................................................................................................................... 6 9. ÁBRA SPA3102 ADMIN ADVANCED ............................................................................................................................. 7 10. ÁBRA SPA3102 LINE1 BEÁLLÍTÁSOK ........................................................................................................................ 8 11. ÁBRA SPA3102 IVR MENÜ ................................................................................................................................... 15