VoIP Recept
Tartalomjegyzék
[elrejtés]- 1 Egy lehetséges Asterisk recept, avagy hozzávalók sok személyre
- 1.1 Debain Alaprendszer
- 1.1.1 Javasolt Particionálás (RAID 1 + LVM)
- 1.1.2 Alap install után érdemes a nem kellő csomagokat törölni és netfilter(iptables)-el megvédeni a gépet
- 1.1.3 Redundáns hálózat azaz hálózati interface bonding beállítása
- 1.1.4 Ajánlott csomagok telepítése
- 1.1.5 További csomagok
- 1.1.6 NTP beállítása
- 1.1.7 MySQL root jelszó beállítása
- 1.2 Hálózati kialakítás / konfiguráció
- 1.3 Asterisk konfiguráció
- 1.4 Teszt eszközök
- 1.1 Debain Alaprendszer
Egy lehetséges Asterisk recept, avagy hozzávalók sok személyre
Debain Alaprendszer
Először is rakjunk fel egy Debian (Lenny) alap install
- Érdemes megfontolni a HW környezet kialakításánál
- redundáns tápegység
- két hálózati kártya (redundáns hálózati kapcsolat miatt)
- két merevlemez (raid miatt)
Javasolt Particionálás (RAID 1 + LVM)
két partíció(software raid):
- az egyik a /boot-nak 300-400M
- a másik raid azaz többi pedig az LVM és aztán ezt már lehet tovább szabdalni.... erre lehet tenni a swap-et.
{{{image}}} | /etc/mdam.conf-ban vagy /etc/aliases (root) ne felejtsük beállítani hogy raid problémáról kinek küldjön levelet |
Alap install után érdemes a nem kellő csomagokat törölni és netfilter(iptables)-el megvédeni a gépet
- NETFILTER(iptables) védelmét a számítógépnek mindenki alakítsa ki saját szája íze szerint.
- ami nem kell azt szedjük ne hallgasson semmi feleslegesen
például
aptitude purge pidentd,nfs-common,portmap aptitude install ssh
Redundáns hálózat azaz hálózati interface bonding beállítása
- Csomagok installálása
aptitude install vlan ifenslave-2.6
- cat > /etc/modprobe.d/bonding
alias bond0 bonding options bonding mode=active-backup updelay=4000 downdelay=1 miimon=10 primary=eth0
- Az /etc/network/interfaces file-t ezen minta alapján írjuk át.
- Itt több vlan-ra van a példa de értelemszerűen, ha csak egy vlan van akkor csak a 10-es VLAN-t kell csak átírni a többit lehet törölni. Azért érdemes így csinálni még akkor is ha csak egy VLAN-unk van, mert bármikor később a több VLAN kezelése hasznos lehet.
# The loopback network interface auto lo iface lo inet loopback # The primary network interface auto bond0 iface bond0 inet manual up ifconfig bond0 0.0.0.0 up slaves eth1 eth0 auto vlan10 iface vlan10 inet static address 10.10.10.12 netmask 255.255.0.0 network 10.10.0.0 broadcast 10.10.255.255 vlan-raw-device bond0 gateway 10.10.0.1 # dns-* options are implemented by the resolvconf package, if installed dns-search voip.niif.hu dns-nameservers 10.10.0.2 auto vlan20 iface vlan20 inet static address 10.20.10.12 netmask 255.255.0.0 network 10.20.0.0 broadcast 10.20.255.255 vlan-raw-device bond0 auto vlan30 iface vlan30 inet static address 10.30.10.12 netmask 255.255.0.0 network 10.30.0.0 broadcast 10.30.255.255 vlan-raw-device bond0
- Ha a Másik oldal cisco eszköz akkor egy lehetséges minta konfiguráció.
interface GigabitEthernet1/2 description eht0 switchport switchport trunk encapsulation dot1q switchport trunk allowed vlan 10,20,30 switchport mode trunk no ip address no cdp enable spanning-tree portfast trunk
{{{image}}} | Érdemes a switchek között Rapid Spanning Tree-t használni, hogy a konvergenciát lecsökkentsük. Érdemes odafigyelni hogy el ne felejtsük bekapcsolni a "portfast"-et! A két hálózati kártyát két független switch-be illik kötni. A két swich-ben legyen egységes a konfiguráció. Végül ne legyünk restek az egészet letesztelni. |
- Több ip cím felhúzása egy interface-re
Több ip címre STUN protokoll miatt mindenképp szükségünk lesz. Az STUN-hoz 2 darab ipv4 cím szükséges! Ha ezentúl külön ip címre akarjuk rakni a szolgáltatást akkor ezzel is számolnunk kell.
auto eth0 iface eth0 inet static address 19.111.158.110 netmask 255.255.255.0 broadcast 19.111.158.255 gateway 19.111.158.1 post-up for last in `seq 111 114`; do ip addr add 19.111.158.$last/32 dev $IFACE; done || true
Ha már van alap OS-ünk redundáns tápunk/merevlemez/hálózatunk és ha mindezt le is teszteltük, akkor bele is kezdhetünk az érdemi telepítésekbe.
Ajánlott csomagok telepítése
aptitude update aptitude upgrade aptitude install atftpd dhcp3-server mysql-server mysql-client ntp aptitude install asterisk asterisk-config asterisk-mp3 asterisk-sounds-extra asterisk-sounds-main asterisk-mysql
dahdi dahdi_dummy
A dahdi_dummy-ra az időzítésekhez lehet szükség, bár vannak 1.6.x asteriskben több mindent tud időzítőként használni. Timer source-ra főleg a MeetMe alkalmazásnak és az IAX protokolnak van szüksége.
aptitude install dahdi-source m-a a-i dahdi
További csomagok
- Természetesen még ízlés szerint telpíthető
- monitorozáshoz: nagios-nrpe-server,munin-node,munin-plugins-extra
- mentéshez: bacula-fd ajánlott
NTP beállítása
Ezt a sort a /etc/ntp.conf-ban
#server ntp.your-provider.example
cseréljük le kedvenc lokális ntp szerverünkre. pl.
server 172.20.0.1
MySQL root jelszó beállítása
mysql root jelszó megváltoztatása
mysqladmin -u root -p password titok
A kényelem miatt, hogy ne kelljen begépelnünk a a jelszót:
cat > /root/.my.cnf [client] user=root password=titok
Hálózati kialakítás / konfiguráció
REINVITE vagy No REINVITE ez itt a kérdés? Mindkettőnek megvannak az előnyei és hátrányai.
Én a konfigurációkban mindenütt a 172.20.0.0/16 tartományt használom, de mindenkit bátorítanék aki csak megteheti, hogy használjon nyilvános címeket. Szűréssel könnyen csökkenthető a támadási felület és a media közvetlenül tud folyni. Azért is hogy maga a media reinvite esetén ne menjen át szükségszerűen semmilyen NAT-on, vagy RTP media proxy-n ami bottleneck lehet és ha kiesik akkor visz magával a hívást. Persze a másik oldal, hogy a bottleneck csökkenti a támadási felületet. De a támadási felület jól konfigurált router ACL-el is elérhető, sőt ezt javaslom.
A példa itt most egy egyszerű sin topológiát használ.
DHCP szerver
A DHCP szerver default configjához képest ezeket kell értelem szerűen megváltoztatni illetve a subnet részt hozzáadni.
option domain-name "tartomány.hu"; option domain-name-servers 193.6.10.1, 193.225.13.113; authoritative; subnet 172.20.0.0 netmask 255.255.0.0 { range 172.20.0.10 172.20.255.254; option routers 172.20.0.1; }
TFTP
A tftp a telefonok frissítésére és a konfigurációjuknak a mentésére szolgál. Az atftpd TFTP szerver a /var/lib/tftpboot könyvtárból szolgál ki, így minden konfigurációs állományt és firmware-t ebbe a jegyzékbe másolunk majd be. Érdemes a NETFILTER/(iptables) szabályokat úgy készíteni, hogy csak a helyi telefonok férhessenek hozzá.
Asterisk konfiguráció
Kis Takarítás
Először is mozgassuk el az összes példa konfigurációs file-t a saját home könyvtárunkba, és utána kezdjük el a minták fokozatos visszamásolgatását és átírását.
- másoljuk vissza a következő fileokat és a manager.d könyvtárt
agents.conf asterisk.conf extconfig.conf features.conf iax.conf modules.conf rtp.conf udptl.conf alsa.conf cdr.conf extensions.ael followme.conf manager.conf musiconhold.conf sip.conf users.conf amd.conf enum.conf extensions.conf http.conf manager.d res_snmp.conf sip_notify.conf voicemail.conf
cp /usr/share/doc/asterisk-mysql/examples/cdr_mysql.conf.sample /etc/asterisk/cdr_mysql.conf cp /usr/share/doc/asterisk-mysql/examples/res_mysql.conf.sample /etc/asterisk/res_mysql.conf
modules.conf
Ezután egy kis nyesegetéssel ilyen csinos formára hozzuk a modules.conf-ot
; ; Asterisk configuration file ; ; Module Loader configuration file ; [modules] autoload=yes ;load load => res_musiconhold.so ;noload ;chan noload => chan_alsa.so noload => chan_oss.so noload => chan_capi.so noload => chan_skinny.so noload => chan_zap.so noload => chan_mgcp.so noload => chan_vpb.so noload => chan_phone.so noload => chan_gtalk.so noload => chan_modem.so noload => chan_modem_aopen.so noload => chan_modem_bestdata.so noload => chan_modem_i4l.so ;res noload => res_jabber.so noload => res_odbc.so noload => res_smdi.so noload => res_config_odbc.so noload => res_config_pgsql.so ;func noload => func_odbc.so ;pbx noload => pbx_dundi.so noload => pbx_gtkconsole.so noload => pbx_kdeconsole.so ;;cdr noload => cdr_sqlite.so noload => cdr_custom.so noload => cdr_manager.so noload => cdr_pgsql.so ;app noload => app_festival.so noload => app_zapras.so noload => app_zapbarge.so noload => app_zapscan.so noload => app_talkdetect.so noload => app_alarmreceiver.so noload => app_image.so noload => app_directory_odbc.so noload => app_voicemail_odbc.so noload => app_voicemail_imap.so noload => app_intercom.so ; Module names listed in "global" section will have symbols globally ; exported to modules loaded after them. ; [global]
![]() |
A szócikk vagy fejezet még megírásra vár
Ha ki tudod egészíteni, megköszönjük! |
Indication
- indication.conf
[general] country=hu [hu] description = Hungary ringcadance = 1000,4000 dial = 425 busy = 425/500,0/500 ;ring = 440+480/2000,0/4000 ; is what I heard on an ISDN line... looks like NA ring. ring = 440/1000,0/4000 ; is what I heard via an analogue GSM adaptor... congestion = 425/300,0/300 callwaiting = 425/40,0/1960 ; Dialrecall not used in Hungary, use standard (using UK standard) dialrecall = 350+440 ; Record tone is not used in Hungary, use busy tone record = 425/250,0/250 info = !950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,!950/330,!1400/330,!1800/330,!0/1000,0
Teszt eszközök
aptitude install sip-tester sipsak sofia-sip-bin
- SIPP
xml alapú config sip teszt eseteket lehet vele készíteni és tesztelni
- sipsak
egyszerű sip teszt tool hívás tesztre, options üzenet küldésére
- sofia sip
NOKIA sip stack LGPL pl. dns feloldást lehet tesztelni vele /usr/bin/addrinfo /usr/bin/localinfo /usr/bin/sip-date /usr/bin/sip-dig /usr/bin/sip-options /usr/bin/stunc