Módosítások

VoIP Recept

10 221 bájt hozzáadva, 2012. április 16., 14:59
Új oldal, tartalma: „= 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 megfo…”
= 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.

{{ambox | text=/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 ====
[[Kép:debian_bonding.png]]

[[Kép:ip_softswitch.png]]

;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.
<pre>
# 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
</pre>
;Ha a Másik oldal cisco eszköz akkor egy lehetséges minta konfiguráció.
<pre>
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
</pre>
{{ambox | text =É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.

<pre>
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
</pre>

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 ====
<pre>
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
</pre>
===== 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.
<pre>
aptitude install dahdi-source
m-a a-i dahdi
</pre>

==== 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
<pre>
#server ntp.your-provider.example
</pre>
cseréljük le kedvenc lokális ntp szerverünkre. pl.
<pre>
server 172.20.0.1
</pre>

==== MySQL root jelszó beállítása ====
mysql root jelszó megváltoztatása
<pre>
mysqladmin -u root -p password titok
</pre>
A kényelem miatt, hogy ne kelljen begépelnünk a a jelszót:
<pre>
cat > /root/.my.cnf
[client]
user=root
password=titok
</pre>

== 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.

[[Kép:voip_pleda.png]]

=== DHCP szerver ===
A DHCP szerver default configjához képest ezeket kell értelem szerűen megváltoztatni illetve a subnet részt hozzáadni.

<pre>
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;
}
</pre>

=== 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
<pre>
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
</pre>

<pre>
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
</pre>

=== modules.conf ===
Ezután egy kis nyesegetéssel ilyen csinos formára hozzuk a modules.conf-ot
<pre>
;
; 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]

</pre>

{{TODO}}

=== Indication ===
;indication.conf
<pre>
[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
</pre>
;Forrás: http://www.voip-info.org/wiki/view/Asterisk+indications+Hungary

== 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

Navigációs menü