V
prvé řadě je nutné po rozbalení karty
zapnout
switch na kartě (jumper), karta je standardně od výrobce
dodávaná s nastavením v režimu T1.
Pokud
zapomenete switch nastavit, tak se to dá udělat i parametrem
ovladače wct11xp
insmod wct11xp t1e1override=0xFF
# pro E1,
insmod wct1xxp t1e1override=0xFF
# pro T1
anebo v jednom z návodů se
píše, že je možné
přidat do /etc/modprobe.conf
options wct4xxp t1e1override=0xFF.
Jelikož je Trixbox postaven na CentOS (100% kompatibilní s
Redhat
Enterprise Linuxem), používá Kudzu pro detekci
nového HW. Digium
Wildcard TE110P je automaticky detekován a v /etc se
objeví soubor zaptel.conf, který byl automaticky
vytvořen
při instalaci. Tento soubor musíme nastavit. Otevřeme tedy
oblíbený editor v linuxu např.
[root@asterisk1
~]# nano /etc/zaptel.conf
Následující soubor je
ukázkou zaptel.conf
pro případ, že připojujeme ISDN PRI jako Slave/UserSide
(tedy k
veřejné tel. ústředně některého z
operátorů).
span=1,1,0,ccs,hdb3,crc4
bchan=1-15
dchan=16
bchan=17-31
loadzone
= de
defaultzone = de
definice parametrů je následující:
span=<spannum>,<timing>,<LBO>,<framing>,<coding>
kde
spannum definuje
číslo portu (1 - pro první port, 2 -
druhý port na
víceportové kartě, atd ...,
ale máte-li
TE110P a zároveň TE410P, tak pokud TE110P
používá
1, tak pro první port TE410P je číslo 2, pro
druhý
3, atd ....).
Timing určuje
způsob synchronizace E1/T1, v zásadě
máme pouze
možnost synchronizace z vnitřních hodin (internal clocking)
anebo z E1 (external clocking, synchronizujeme
vnitřní
hodiny dle protější strany), pokud selžou
externí
hodiny, tak se automaticky přechází na
interní.
Možnosti jsou
následujícící:
0....
znamenají interní hodiny,
1.... znamená, že se synchronizuje prioritně z tohoto portu,
2.... znamená, že se synchronizuje prioritně z
tohoto portu, pokud synchronizace z portu s prioritou 1 selže
LBO (Line
Build Out) je výkonová úroveň
signálu v dB,
kterou je možné nastavit v závislosti na
vzdálenosti propojovaných
zažízení,
doporučené hodnoty LBO jsou
následující:
0 .... do 400
m,
1 .... od 400 do 800m,
2 .... od 800 do 1,2 km,
3 .... od 1,2 km do 1,6 km,
4 .... od 1,6 km do 2 km.
Pro T1 se mů že
Framing
nastavit
na hodnoty D4 nebo ESF, pro E1 na CAS nebo CCS, tzn. buď je signalizace
kanálově orientovaná (CAS) anebo
soustředěná
společným kanálem (CCS).
Coding určuje
typ použitého linkového kódu,
který může
být AMI, B8ZS anebo HDB3, za typem
kódování
obvykle na E1 ještě následuje
zabezpečení rámce metodou CRC4.
Konfigurace kanálů vychází z typu
použitého rozhraní, čili pro T1:
bchan=1-23
dchan=24
a v případě E1 to bude:
bchan=1-15,17-31
dchan=16
pokud budeme mít čtyřportovou E1, tak konfigurace
kanálů bude vypadat následovně:
bchan=1-15,17-31
dchan=16
bchan=32-46,48-62
dchan=47
bchan=63-77,79-93
dchan=78
bchan=94-108,110-124
dchan=109
Poněvadž téměř v každé zemi je nějaké
specifické nastavení kontrolních
tónů
(oznamovací, vyzváněcí,
obsazovací,
odkazovací, ..), tak pomocí
loadzone a
defaultzone lze
nastavit typ tónu, pokud zvolíme
de, tak se
jedná o Německo.
Po editaci
/etc/zaptel.conf
je nutné nahrát konfiguraci. Buď Trixbox
zrestartujete anebo použijete příkaz
ztcfg -vv
, kterým se načte nová konfigurace
uložená v
/etc/zaptel.conf
. Nakonec
se podíváme na aktuální
stav rozhraní podporovaného ovladačemi
Zaptel
pomocí příkazu
cat /proc/zaptel.
[root@asterisk1
~]# cat /proc/zaptel/*
Span 1: WCT1/0 "Digium Wildcard TE110P T1/E1
Card 0" HDB3/CCS/CRC4
1 WCT1/0/1 Clear (In use)
2 WCT1/0/2 Clear (In use)
3 WCT1/0/3 Clear (In use)
4 WCT1/0/4 Clear (In use)
5 WCT1/0/5 Clear (In use)
6 WCT1/0/6 Clear (In use)
7 WCT1/0/7 Clear (In use)
8 WCT1/0/8 Clear (In use)
9 WCT1/0/9 Clear (In use)
10 WCT1/0/10 Clear (In use)
11 WCT1/0/11 Clear (In use)
12 WCT1/0/12 Clear (In use)
13 WCT1/0/13 Clear (In use)
14 WCT1/0/14 Clear (In use)
15 WCT1/0/15 Clear (In use)
16 WCT1/0/16 HDLCFCS (In use)
17 WCT1/0/17 Clear (In use)
18 WCT1/0/18 Clear (In use)
19 WCT1/0/19 Clear (In use)
20 WCT1/0/20 Clear (In use)
21 WCT1/0/21 Clear (In use)
22 WCT1/0/22 Clear (In use)
23 WCT1/0/23 Clear (In use)
24 WCT1/0/24 Clear (In use)
25 WCT1/0/25 Clear (In use)
26 WCT1/0/26 Clear (In use)
27 WCT1/0/27 Clear (In use)
28 WCT1/0/28 Clear (In use)
29 WCT1/0/29 Clear (In use)
30 WCT1/0/30 Clear (In use)
31 WCT1/0/31 Clear (In use)
Pokud chcete nastavit kartu pomocí autokonfigurace
Trixboxem, tak k tomu slouží příkaz:
genzaptelconf
/* autoconfig Zaptel cards
Pokud přece jen chcete inicializovat ovladače
manuálně, tak nejdříve si připravte
/etc/zaptel.conf a
použijte
modprobe
k zavedení ovladače karty:
[root@asterisk1
~]# modprobe
[root@asterisk1 ~]# modprobe wcte11xp
[root@asterisk1 ~]# ztcfg -vv
Zaptel.conf pracuje na úrovni modulu a
řeší
fyzickou vrstvu (Master, Slave, synchronizaci), po
spuštění Asterisku se
zavádí
další parametry pro
vyšší vrstvy z
konfiguráku
/etc/asterisk/zapata.conf
.
[root@asterisk1
~]# cat /etc/asterisk/zapata.conf
; Zapata telephony interface
; Configuration file
[trunkgroups]
[channels]
language=de
context=default
switchtype=qsig
;If you connect to a hicom PBX set your ISDN Numbering
Plan Identifier to unknown.
pridialplan=unknown
prilocaldialplan=unknown
signalling=pri_cpe
callerid=asreceived
usecallerid=yes
hidecallerid=no
facilityenable = yes
callwaiting=yes
usecallingpres=yes
callwaitingcallerid=yes
threewaycalling=yes
transfer=yes
cancallforward=yes
callreturn=yes
echocancel=yes
echocancelwhenbridged=yes
overlapdial=yes
rxgain=0.0
txgain=0.0
group=1
callgroup=1
pickupgroup=1
immediate=no
;callprogress=no
channel => 1-15
channel => 17-31
1.3
Zabezpečení
Prvním krokem v nastavení zabezpečení je změna
všech default-hesel, tyto hesla jsou známa a pokud
nebudou změněna, tak je riziko jejich využití poměrně
vysoké. Je nutné projet následující
příkazy:
passwd admin
passwd-maint
passwd-amp
passwd-meetme
a nakonec můžeme ještě změnit heslo uživatele root :
passwd
Pokud se chystáte Trixbox jen vyzkoušet, tak
můžete další část přeskočit. Tato část řeší
nastavení SSL a iptables. Jelikož většina
konfigurace bude probíhat přes web, tak
si doinstalujeme SSL a zrestartujeme HTTP službu
pomocí
příkazů:
yum -y
install mod_ssl
service httpd restart
Update CentOS se
provádí příkazem yum -y update.
Vytvoříme
si certifikát, na který se bude odkazovat
konfigurační soubor apache.
openssl genrsa 1024 >
pcn211f.vsb.cz.key #
privátní klíč
openssl req -new -key pcn211f.vsb.cz.key
-out pcn211f.vsb.cz.csr #
požádáme CA (sami sebe) o
zaslání certifikátu
openssl req -x509 -days 700 -key
pcn211f.vsb.cz.key -in pcn211f.vsb.cz.csr -out
ast1.vsb.cz.crt #
podepíšeme cert., platí 700
dnů
[root@asterisk1 ~]# cd /root
[root@asterisk1 ~]# openssl genrsa 1024 >
pcn211f.vsb.cz.key
Generating RSA private key, 1024 bit long modulus
............................................++++++
..........++++++
e is 65537 (0x10001)
[root@asterisk1 ~]# openssl req -new -key
pcn211f.vsb.cz.key -out pcn211f.vsb.cz.csr
You are about to be asked to enter information that will
be incorporated
into your certificate request.
What you are about to enter is what is called a
Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:42
State or Province Name (full name) [Berkshire]:Morava
Locality Name (eg, city) [Newbury]:Ostrava
Organization Name (eg, company) [My Company Ltd]:VSB TU
Organizational Unit Name (eg, section) []:k454
Common Name (eg, your name or your server's hostname)
[]:Voznak Miroslav
Email Address []:miroslav.voznak@vsb.cz
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
[root@asterisk1 ~]# openssl req -x509 -days 700 -key
pcn211f.vsb.cz.key -in pcn211f.vsb.cz.csr -out ast1.vsb.cz.crt
[root@asterisk1 ~]#
Teď v ssl.conf nastavíme cesty k vytvořeným
souborům key a crt, které jsme vytvořili
SSLCertificateFile /etc/httpd/conf/ssl.crt/ast1.vsb.cz.crt
SSLCertificateKeyFile
/etc/httpd/conf/ssl.key/pcn211f.vsb.cz.key
Teď zabezpečíme Trixbox na úrovni firewallu
(dále
jen FW), což vyžaduje konfiguraci iptables. Nastavení
iptables
doporučuji provést dle tohoto
článku.
Do pravidel nezapomeňte povolit SIP, SSH, HTTPS a
případně další protokoly.
#
SSH, HTTPS
-A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
-A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT
# případně HTTP z
konkrétní
sítě nebo neomezený přístup z
konkrétní IP
-A INPUT -s 158.196.81.0/24 -p tcp -m tcp --dport 80 -j
ACCEPT
-A INPUT -s 147.32.253.251 -j
ACCEPT
# SIP, H323,
IAX2
-A INPUT -p udp -m udp --dport 10000:20000 -j ACCEPT
-A INPUT -p udp -m udp --dport 4569 -j ACCEPT
-A INPUT -p udp -m udp --dport 5060 -j ACCEPT
-A INPUT -p udp -m udp --dport 1719 -j ACCEPT
-A INPUT -p udp -m udp --dport 1718 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1720 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1721 -j ACCEPT
Možnosti iptables jsou rozsáhlé a pokud s FW
nemáte zkušenosti, tak Vám doporučuji
nejdříve získat aspoň
elementární
zkušenosti se základním
nastavením a potom
pokračovat dál.
[root@asterisk1
~]# /sbin/iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
[root@asterisk1 ~]# /sbin/iptables -A INPUT -j DROP
[root@asterisk1 ~]# iptables-save >
/etc/iptables.conf
[root@asterisk1
~]# iptables -F
/* poeditovat /etc/iptables.conf
a vyzkoušet
[root@asterisk1 ~]# iptables-restore
< /etc/iptables.conf
[root@asterisk1 ~]# iptables -L -vn
/* poeditovat /etc/rc3.d/S99local
[root@asterisk1 etc]# nano /etc/rc3.d/S99local
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
/sbin/iptables -F
/sbin/iptables-restore < /etc/iptables.conf
touch /var/lock/subsys/local
/etc/trixbox/runonce
/usr/local/sbin/motd.sh > /etc/motd
/usr/sbin/fxotune -s
/usr/sbin/amportal start
Nakonec ještě doporučuji drobnou úpravu ve
/var/www/html/index.php ,aby jako
default
najížděla stránka pro
uživatelskou administraci Trixboxu :
nano
/var/www/html/index.php
<?php^
/* $location = 'http://'.$_SERVER['HTTP_HOST'].'/user/'; */
$location = 'https://'.$_SERVER['HTTP_HOST'].'/recordings/index.php'; ^
header("location:".$location);^
?>
Po doinstalování modulů
2.2 Administrace modulů
bude
úprava aktivní.
1.4
Přihlášení
Konfigurace Trixboxu bude probíhat přes SSH. Pro
přidání uživatele, nastavení hesla a
smazání uživatele můžeme použití
příkazy:
# adduser
jmeno
# passwd jmeno
# userdel jmeno
Pro přihlášení použijeme
oblíbeného ssh klienta. Pro
konfiguraci trixboxu
https://IPadresa/maint , pokud jste si neneastavili heslo, tak default
je
user: maint
password: password
2
Konfigurace systému
Ze všeho nejdříve by měl být proveden
update
Trixboxu na poslední verzi pomocí
trixbox-update.sh:
[root@asterisk1
~]# trixbox-update.sh
# zjištění
aktuální
verze
[root@asterisk1 ~]# trixbox-update.sh update
# provedení update
Pro update CentOS použijeme:
[root@asterisk1
~]# yum -y update
Asterisk můžeme zastavit, pustit nebo restartovat
příkazem
amportal,
pro restart použijeme:
[root@asterisk1
log]# amportal restart
V dalším kroku je nutné zadat FQDN
(Fully Qualified Domain Name) do souboru
/etc/hosts.
[root@asterisk1 ~]# nano /etc/hosts
158.196.81.132
asterisk.vsb.cz
# neodstraňujte řádky pro localhost
2.1 Konfigurace pro Sendmail
Nainstalujeme sendmail:
[root@asterisk1
mail]# yum install sendmail-cf
Nastavíme
jméno SMTP pro odesílání
pošty v
/etc/mail/sendmail.mc
[root@asterisk1
mail]# nano /etc/mail/sendmail.mc
# najdeme dnl define(`SMART_HOST',`smtp.yourprovider')
# smtp.provider nahradíme názvem
našeho SMTP,
# výsledná úprava teda může vypadat
podobně - dnl define(`SMART_HOST',`smtp.vsb.cz')
Pomocí make vyrobíme nový sendmail.cf
[root@asterisk1
mail]# make -C /etc/mail
A nakonec sendmail zrestartujeme:
[root@asterisk1
etc]# /etc/init.d/sendmail restart
Shutting down
sendmail:
[ OK ]
Shutting down
sm-client:
[ OK ]
Starting
sendmail:
[ OK ]
Starting sm-client:
[ OK ]
Pro vyzkoušení odešleme
zkušební mail:
[root@asterisk1
etc]# echo "Tak co, funguje ?" | sendmail -v
miroslav.voznak@vsb.cz
Pokud jste nezadali svůj email, tak
zkušební
zpráva skončila v mé poště. Činnost
sendmailu se
zapisuje do logu, který nám může pomoci při
lokalizaci
problému:
[root@asterisk1
mail]# cd /var/log
[root@asterisk1 log]# tail -200 maillog
2.2 Administrace modulů
Přihlásíme se do Trixboxu
https://IPadresa/maint/ a přes Asterisk -> FreePBX
-> Tools
se dostaneme k menu
Module Admin. Po rozkliknutí se dostaneme k
možnosti doinstalovat další moduly.
Jako výchozí bude nainstalováno jen
jádro
systému a další moduly
musíme zvolit,
rozklikneme a zvolíme
Install.
Ke každému modulu si můžeme přečíst
krátký
popis funkce. Pro prvotní instalaci Trixboxu doporučuji
zvolit
následující moduly:
- Core je výchozí modul
obsahující jádro,
- Feature Code Admin je pro administrace kódů
služeb,
- Voicemail je hlasová pošta,
- Announcements přehrává
systémová
ohlášení,
- Music on Hold je pro hudbu při přidržení hovoru,
- Recordings pro nahrávání
hovorů,
- Call Forward pro přesměrování
volání,
- Call Waiting je čekající
volání,
- Asterisk Logfiles pro náhled do souboru s logy,
- Print Extensions umožňuje tisk jmenného seznamu
s tel.č.
Po vybrání modulu zvolíme
Procees a
potvrdíme instalaci.
Teď je vhodné provést
update
nainstalovaných modulů na aktuální
verzi. Zvolíme
Check
for updates online a zaškrtneme položku
Show only upgradable.
Opět vybereme jednotlivé moduly, kde zvolíme
download and upgrade,
odešleme ke zpracování přes
Process a
potvrdíme
Confirm.
Další možností je stáhnout
upgrade přímo z
freePBX.org,
kde je poslední verze 2.2:1. Pro přímé
stažení a instalaci:
cd
/usr/src/
wget http://mirror.freepbx.org/freepbx-2.2.1.tar.gz
tar zxvf freepbx-2.2.1.tar.gz
cd freepbx-2.2.1
./install_amp
Anebo namísto výše
popsaného je
možné stáhnout všechny moduly najednou
s
využitím balíčku
'withmodules' :
cd
/usr/src/
wget http://mirror.freepbx.org/freepbx-2.2.1-withmodules.tar.gz
tar zxvf freepbx-2.2.1-withmodules.tar.gz
cd freepbx-2.2.1
./install_amp
2.3
Voicemail
Základním předpokladem je, že
jsme úspěšně prošli
částí
2.1 Konfigurace pro
Sendmail
a pokud ne, tak nebudeme mít možnost posílat
zprávy do emailu. Nejdříve nastavíme
několik
užitečných parametrů v části
Setup-> General
Settings, jde o parametry:
Teď je vhodné upravit
etc/asterisk/vm_general.inc
, především nastavit mailové
jméno
odesílatele zprávy a omezit délku
záznamu.
[root@asterisk1
asterisk]# nano /etc/asterisk/vm_general.inc
; 1st listed format gets emailed
format=wav|wav49
attach=yes
pbxskip=yes
serveremail=vms@vsb.cz
fromstring=Voicemail System
maxmessage=180 ; max. délka zprávy
minmessage=3 ; min. délka zprávy
maxsilence=5 ; po pěti sekundách ticha ukončit
silencethreshold=128
skipms=3000
review=yes
operator=yes
Obsah textu zprávy odesílané emailem
můžeme upravit v souboru
etc/asterisk/vm_email.inc
,
[root@asterisk1
~]# cat /etc/asterisk/vm_email.inc
; Change the email body and subject, variables: VM_NAME,
VM_DUR, VM_MSGNUM, VM_MAILBOX, VM_CALLERID, VM_DATE
emailsubject=New message ${VM_MSGNUM} in mailbox
${VM_MAILBOX} from ${VM_CALLERID}
emailbody=${VM_NAME},\n\nThere is a new voicemail in
mailbox
${VM_MAILBOX}:\n\n\tFrom:\t${VM_CALLERID}\n\tLength:\t${VM_DUR}
seconds\n\tDate:\t${VM_DATE} \n\nOpen an email attachement or visit
https://pbx-a-ast1.vsb.cz/recordings/ to check the settings of Your
extension.\n Contact mailto:miroslav.voznak@vsb.cz for resolving
technical issues.
Výsledek výše popsané
úpravy vidíme v emailu
--------
Původní zpráva --------
Předmět: New message 1 in mailbox 7101 from "Jiri Jirout"
<7200>
Datum: Sun, 25 Feb 2007 22:40:35 +0100
Od: Voicemail System <vms@vsb.cz>
Komu: Miroslav Voznak
<miroslav.voznak@vsb.cz>
Miroslav Voznak,
There is a new voicemail in mailbox 7101:
From: "Jiri Jirout" <7200>
Length: 0:09 seconds
Date: Sunday, February 25, 2007 at
10:40:35 PM
Open an email attachement or visit
https://pbx-a-ast1.vsb.cz/recordings/ to check the settings of Your
extension.
Contact mailto:miroslav.voznak@vsb.cz for
resolving technical issues.
2.4 Konfigurace ISDN vedení a odchozího směru
Prvním krokem je přidání
ZAP Trunk v menu
Trunks.
Tím se přidá další
vedení a protože jsme si v
části
1.2
Instalace ISDN PRI karty
ukázali instalaci ISDN PRI
karty a v
/etc/asterisk/zapata.conf
jsme toto ISDN PRI vedení zařadili do skupiny
group=1 , tak
stačí přidat přes
Add
Trunk další vedení s
identifikací g1 (group=1).
Teď nastavíme odchod přes
Zap/g1 v
Outbound Routes ,
kde označíme pravidla volby.
- 0.
/* po nule následuje libovolný znak či
více
libovolných znaků
- [1-6]XXX /*
volané číslo je
čtyřmístné a začíná 1 až 6
3
Konfigurace poboček
Pobočky vytváříme přes menu
Setup -> Extensions ,
kde můžeme přidat pobočku typu SIP, IAX2, ZAP anebo Custom.
Příklad níže ukazuje vytvoření pobočky (SIP),
Trixbox nepodporuje jmenné identifikátory uživatelů a
vyplňujeme především tři údaje, kterými
jsou
User Extension, Display Name a
Secret.
Ihned při zakládání nového uživatele můžeme vyplnit parametry pro Voice Mail.
Pokud je nainstalován modul
Print Extensions, tak máme přehledný seznam uživatelů, kde jsou jména a pobočky.
3.1
Základní konfigurace SIP a IAX2 pobočky
Při přidání pobočky jsou nám nabídnuty k vyplnění následující dvě
povinné položky :
User Extension
se vždy zadává tel. číslo nově zřizované pobočky,
Display Name
je jméno volajícího (nevyplňovat číslo),
vždy je odesíláno zadané jméno, bez ohledu
na to, co si sám nastaví uživatel.
3.2 Možnosti
nastavení parametrů pobočky
Všechny ostatní položky jsou nepovinné a následující sada je označována jako
Extension Options a patří zde:
Direct DID
což je provolba přiřazená pobočce, pokud je
posílána a měla by být zadaná ve
stejném formátu jak je poskytována
operátorem a standardně je pole nevyplněné,
DID Alert Info
Alert Info může být využíváno pro
rozlišení vyzvánění na SIP telefonech.
Pokud bude voláno konkrétní DID (provolba), tak
bude posláno Alert-Info, což je pole v SIP hlaviččce
specifikující odlišné
vyzvánění, bez nastaveného Direct DID nemá
význam. Použití např. Alert-Info:
<http://www.example.com/sounds/moo.wav>
Outbound CID
Přepisuje id volajícího, když se volá ven přes
trunk. Jakékoliv nastavení zde bude přepisovat
odchozí id volajícího nastavené v Trunks.
Formát je
"caller name" <#######>
Emergency CID
Zadané id v této položce bude vždy nastaveno, pokud bude
odchozí volání označeno jako nouzové.
Emergency CID přepisuje všechny ostatní id
volajícího.
Další položky jsou označeny jako
Device Options a zde patří:
secret
je heslo uživatele, lze i bez hesla, což pochopitelně představuje bezpečnostní riziko,
dtmfmode
podporuje tři možnosti, inband, rfc2833 nebo info (pomocí metody
INFO), pokud je DTMF volba posílána v pásmu, tak
je funkční pouze s kodekem G.711, mimo pásmo se
používá info anebo rfc2833, doporučený mód
je rfc2833,
canreinvite
tady je možné vyplnit "yes" anebo "no", Asterisk se standardně
chová jako B2BUA (vše přeposílá,
reinicalizuje) a dokáže tak výborně pomáhat i
klientům za NATem, jelikož na sebe zakončuje tok signalizace i tok
hovoru a znovu reinicializuje v novém spojení k
cílovému uživateli, pokud není tato funkce
žádoucí a z nějakého důvodu je potřebné
přímé RTP spojení označované mnohdy jako
"payload switching" anebo "direct RTP patch", tak je možné zadat
"yes",
context
je velmi důležitý, podle příslušnosti k
určítému "context" můžu řídí procesy
spojování, standardně from-internal (povoleno volit
jakékoliv číslo), případně from-restricted viz,
kapitola 5.1 (omezím pouze do povolených směrů, na
VŠB-TUO jsou zařazeny v tomto kontextu všechny
volání zdarma v rámci PBX a Cesnetu)
host
pokud je host nastaven na "dynamic", tak je vyžadována
registrace a Asterisk získává
aktuální IP adresu uživatele, na které je
dosažitelný, pokud vyplníme "static", tak registrace
není vyžadována
type
každé spojení může být definováno jako
user, peer anebo friend, zatímco user je pro
příchozí volání a peer pro odchozí,
tak friend je zároveň pro příchozí i
odchozí, standardně vyplňujeme "friend".
nat
pokud je volba "yes", tak Asterisk ignoruje IP adresu v poli Contact a vezme IP adresu, ze které paket přišel.
port
je port služby, standardně 5060
qualify
pokud je "yes" , tak
monitoruje zpoždění, jestli je menší než 2000ms,
pokud splňuje, tak je klient dosažitelný, v případě změny
se "yes" nahrazuje časem v milisekundách, který
mý býti kontrolován
callgroup
se používá pro přiřazení jedné nebo
více skupinám, ve které bude volání
vyzvánět,
pickupgroup
obdobně jako v předchozím případě se
používá pro přiřazení jedné nebo
více skupinám, ve které bude možné
volání převzít, pro tento účel
slouží kód *8
disallow
specifikuje kodek, který má býti zakázán (all pro všechny)
allow
specifikuje povolené kodeky (jinak se řídí pomocí sip.conf)
dial
syntaxe je SIP/tel.c anebo IAX2/tel.c.
accountcode
zadává se jako text alfanumerických znaků a je to zůčtovací kód (projeví se v CDR)
mailbox
má
syntaxi telc.@default a určuje hlasovou schránku uživatele, pro zadání
více schránek se odděluje čárkou, např.
2221@deault,2224@default,2289@default a zprávy se vybírají přes *98
Další sekce nastavení nese označení
Fax Handling a řeší se zde příjem a
odesílání faxů na email:
FaxExtension
pro odesílání a příjem faxů systémem
má být vybrána položka "system", pro funkčnost je
nutné nastavení v General settings
Fax Email
emailová adresa, pokud není zadána,t ak platí nastavení z General settings
Fax DetectionType
Zaptel nebo NVFax bude okamžitě odpovídat na
volání po vyzvávění trvající
dle položky uvedené níže. NVfax se používá
na SIP nebo IAX trunky.
Pause after answer
je počet sekund do automatického vyzvednutí.
Další sekce má název Privacy:
Privacy Manager
pokud není poslána identifikace volajícího,
tak volající bude vyzván k zadání
svého tel.č. a dostane tři pokusy
Následuje sekce, která řeší nahrávání Recording Options:
Record IncomingRecord
nahrávání příchozích hovorů na
vyžádání, vždy a nikdy (On demand, always, never)
Record OutgoingRecord
nahrávání odchozích hovorů na vyžádání, vždy a nikdy (On demand, always, never)
Poslení sekce má název Voicemail & Directory:
Status
stav povoleno nebo zakázáno (enabled | disabled)
voicemail password
heslo uživatele pro vstup do vlastní schránky hlasové pošty, může obsahovat pouze čísla
pager email address
emailová adresa pro zaslání krátkých upozornění na nový vzkaz
email attachment
volba, zda k emailu rovnou připojit zanechanou zprávu v příloze
Play CID
volba, zda přečíst číslo volajícího před přehráním zprávy
Play Envelope
volba, zda přehrát datum a čas kdy byla zpráva zanechána
Delete Vmail
volba, zda smazat zprávu po odeslání na email
vm options
další možnosti, oddělené přes ( | ), např. review=yes|maxmessage=60
vm context
standardně default
4 SIP a ENUM Trunk
Trunk chápeme jako
propojení s okolním světem, přes trunk bude
odcházet volání mimo náš Trixbox a
rovněž přes trunk budou volání přicházet. Jelikož
je zapotřebí rozhodnout, přes který trunk budeme směrovat
konkrétní volbu, tak musíme vytvořit soubor
pravidel pro určení směru, čili filtr. Tento filtr volby nese
označení
dial pattern a má následující možnosti:
X — znak X znamená jakékoliv číslo z rozsahu 0 až 9
N — znamená jakékoliv číslo z rozsahu 2 až 9
Z — znamená jakékoliv číslo z rozsahu 1 až 9
[] — zastupuje jeden znak ze seznamu v závorkách,
např. [02-68*#] vyhovuje 0, čísla z rozsahu 2 až 6, 8, * a #
. - tečka je zástupný symbol pro jakýkoliv znak
| - znaky před tímto symbolem nejsou voleny do trunku, používá se k oříznutí prefixu
+ - znaky před tímto symbolem budou přidány,
např. 420+ znamená přidání 420 před
číslo, znak + se může kombinovat se znakem |, např.
0|420+NXXXXXXXX zareaguje na vytočené číslo 0603565999
tak, že přes trunk odešle 420603565999, stejný efekt bude
mít zadání 420+0|NXXXXXXXX
4.1 Konfigurace propojení přes SIP Trunk
Přes
Setup -> Trunks přidáme
Add SIP trunk. Nastavení má tyto sekce:
- General Settings (obecná nastavení),
- Outgoing Dial Rules (pravidla odchozí volby),
- Outgoing Settings (odchozí nastavení),
- Incomming Settings (příchozí nastavení),
- Registrations (registrace).
V
General Settings se může nastavit:
Outbound Caller ID
ID volajícího, které je nahrazeno na odchodu přes
trunk. Formát je "caller name" <#######> a pokud se
napíše "hiden", tak to ID volajícího bude
potlačeno, potlačení funguje na PRI/BRI/SIP/IAX.
Never Override CallerID
někteří VoIP poskytovatelé nepovolují
volání, pokud je posláno neplatné CallerID.
Použije se k tomu, aby nebyly posílány CallerID,
které nejsou explicitně zadány v trunku nebo v poli
"outbound callerid" pobočky. Výsledným efektem
zaškrtnutí políčka je
zakázání cizích callerid
odcházejících přes trunk.
Maximum channels
maximální počet použitých kanálů
(současných hovorů) pro trunk, zahrnující
příchozí i odchozí
V další sekci
Outgoing Dial Rules se řeší pravidla volby:
Dial Rules
pravidlo řídí volbu čísla přes trunk,
jednotlivé pravidla se zapisují pod sebe, jejich
formát je uveden v začátku kapitoly
Dial rules wizard
pomáhá vytvořit pravidlo a jelikož zohledňuje
především nastavení v USA, tak nelze doporučit
jeho používání !!!
Outbound Dial Prefix
je prefix pro odchozí směr, pokud je Trixbox za jinou PBX, tak
vložíme 0, která se automaticky přidá do
všech odchodů
Další sekce má název
Outgoing Settings:
Trunk Name
jedinečné jméno pro trunk
PEER Details
zde se nastaví parametry spojení, standardně se jedná o:
host=195.113.113.131
secret=696999
type=peer
username=8775097342
Další sekce má název
Incoming Settings:
USER Context
název účtu (může být i číslo), jeho parametry se definují níže
USER Details
zde se upraví parametry spojení, standardně jsou k
vyplnění připravené tři parametry, ale můžou se přidat
další:
context=from-internal
secret=696999
type=user
Poslední sekcí je
Registration:
Register String
jelikož většina VoIP poskytovatelů vyžaduje registraci, tak zde je možné zadat registrační řetězec, např. username:password@host
(8775097342:696999@sip.iptel.org), pokud je vyžadována i
provolba (DID), tak se zadává formát username:password@host/DID
Pokud jsme založili nový trunk, tak je nutné ještě nastavit
Outbound Routes a zde můžeme nastavit také pravidla
Outgoing dial rules a není nutné je nastavovat v menu
Trunks,
což je vidět na příkladu níže, kde nasatvení
pravidel není vyplněno a vyplňujeme Outgoing,Incomming setttings
a Registrations.
4.2 Nastavení odchozích pravidel přes Outbound Routes
Přes
Setup -> Outbound Routes přidáme
Add route. Nastavení má tyto položky:
Route Name
v položce se zadává název směru, je
používáno k popisu, jaký typ volání
odchází přes směr (ČR, mezinárodní, atd ...)
Route Password
do této položky může být zadáno
číselné heslo a ke jeho zadání je
vyzván uživatel, který chce směr použít
Emergency Dialing
zvolením této položky se uplatní nastavení
"Emergency CID", pokud je nastaveno, může být např. použito,
pokud je směr využíván pro nouzová
volání (např. 112)
Intra Company Route
zaškrtnutím položky bude tento směr chápán
jako vnitřní propojení mezi pobočkami společnosti,
zachovají se interní informace "Caller ID" a nebude se
uplatňovat "outbund CID" nastevné pro trunk.
Dial Patterns se řídí pravidly uvedenými v
úvodu kapitoly 4.
Trunk Sequence
pomocí této položky se řídí pořadí
obsazování trunků, obvykle nejprve zkusí
levnější trunk (třeba ENUM) a potom dražší
(třeba SIP nebo ZAP).
Na obrázku níže je příklad vyplnění
Outbound Route.
4.3 Konfigurace propojení přes ENUM
Přes
Setup -> Trunks přidáme
Add ENUM trunk.
bude doplněno ...
5 Rozšiřující možnosti nastavení
5.1 Oprávnění volání, kategorie uživatelů
Často se potkáváme u PBX s požadavkem restrikce
volání do určitách směrů a na PBX
bývají snadardně vytvářeny kategorie uživatelů,
kteří jsou oprávněni volat pouze interně, v rámci
ČR a mezinárodně, častěji bývá nastaveno
ještě podrobnější rozdělení. Pochopitelně i
s Trixboxem je možné vytvářet kategorie, které
přidělíme uživatelům. Princip spočívá ve
vytvoření různých
kontextů, které pobočkám přidělujeme.
V následujícím příkladu budou použity dva
typy kontextů [from-internal] a [from-restricted]. Postup se
skládá z následujících kroků:
1. Zkopírujeme obsah sekce
[outbound-allroutes] ze souboru
/etc/asterisk/extensions_additional.conf a
odložíme si jej do jiného souboru, který si za
tím účelem vytvoříme (obsah sekce označím
jako F1), v našem případě vypadá následovně:
[outbound-allroutes]
include => outbound-allroutes-custom
include => outrt-001-9_outside
include => outrt-002-PBX VSB
exten => foo,1,Noop(bar)
; end of [outbound-allroutes]
2. Zkopírujeme obsah sekce
[from-internal-additional] ze souboru
/etc/asterisk/extensions_additional.conf , v našem případě vypadá následovně:
[from-internal-additional]
include => from-internal-additional-custom
include => app-dialvm
include => app-vmmain
include => app-cf-busy-off
include => app-cf-busy-off-any
include => app-cf-busy-on
include => app-cf-off
include => app-cf-off-any
include => app-cf-on
include => app-cf-unavailable-off
include => app-cf-unavailable-on
include => app-userlogonoff
include => app-pickup
include => app-zapbarge
include => app-chanspy
include => ext-test
include => ext-local
include => outbound-allroutes
exten => h,1,Hangup
; end of [from-internal-additional]
3. Vytvoříme novou sekci
[from-restricted] v souboru
/etc/asterisk/extensions_custom.conf
a do ní vložíme obsah zkopírovaný v
předchozím kroku 2. a hned za něj obsah (F1) uložený v
kroku 1. a nakonec přidáme
exten => h,1,Hangup
exten => s,1,Macro(hangupcall)
exten => h,1,Macro(hangupcall)
v našem případě výsledek v souboru
/etc/asterisk/extensions_custom.conf vypadá následovně:
[from-restricted]
include => from-internal-additional-custom
include => app-dialvm
include => app-vmmain
include => app-cf-busy-off
include => app-cf-busy-off-any
include => app-cf-busy-on
include => app-cf-off
include => app-cf-off-any
include => app-cf-on
include => app-cf-unavailable-off
include => app-cf-unavailable-on
include => app-userlogonoff
include => app-pickup
include => app-zapbarge
include => app-chanspy
include => ext-test
include => ext-local
include => outbound-allroutes-custom
;include => outrt-001-9_outside
include => outrt-002-PBX VSB
exten => foo,1,Noop(bar)
exten => h,1,Hangup
exten => s,1,Macro(hangupcall)
exten => h,1,Macro(hangupcall)
4. Nakonecv
/etc/asterisk/extensions_custom.conf zakomentujeme ";" směry, které budeme chtít v kontextu
[from-restricted] zakázat, což je už provedeno v kroku 3.
;include => outrt-001-9_outside
Směry se nastavují přes menu SETUP -> OUTBOUND ROUTES , v
našem případě měly směry názvy PBX VSB a
9_outside. Pobočku omezíme nastavením položky
context na
[from-restricted] v menu SETUP -> EXTENSIONS
6 Tipy a triky
6.1 Změna loga
Při přihlášení admina je logo v
levém rohu
v souboru /var/www/html/maint/skin/default/header.gif
Při přihlášení uživatele je logo v
levém
rohu v souboru /var/www/html/recordings/theme/logo.gif
7 Klienti
Praktické zkušenosti s nastavením několika klientů můžete najít
v tomto článku.
7.1 Nokia
V
současné době (rok 2007) má Nokia na trhu
následující typy mobilních telefonů
vybavených SIP klientem:
Nokia E60, E61, E70, N80 a E61PR3
Nastavení:
Navigate to Tools->Settings->Connection->SIP settings.
Open the Options menu and select Add new->Use default profile:
Profile name: to be defined
Service profile: IETF
Default access point: your wifi access point
Public user name: sip:SIPuser@host (usually "host" is IP address or name of your SIP Server)
Use compression: No
Regristration: Always on
Use security: No
Proxy server:
Proxy server address: sip:IP address of your asterisk
Realm: asterisk (or realm of your asterisk)
User name: SIP user
Password: secret
Allow loose routing: Yes
Transport type: UDP
Port: 5060
Registrar server:
Registrar serv.addr.: sip:Asterisk
Realm: -
User name: -
Password: -
Transport type: UDP
Port: 5060
Now, navigate to Tools->Settings->Connection->Internet
tel.settings: and create a New profile in the Options menu with the
following settings:
Name: Default
SIP profiles: previously defined profile
Název profilu: dle libosti (např. asterisk)
Profil služby: IETF
výchozí přístupový bod: dle
nastavení WiFi (výběrem z nakonfigurovaných
přístupů k AP)
veřejné už. jméno: sip:user@host (user=uživatel,
host=doména,což je většinou IPadresa SIP Proxy)
použít kompresi: NE
registrace: vždy zapnuto
zabezpečení: NE
Proxy server: tady stačí nastavit pouze typ přenosu na UDP a port na 5060
Registrar server: sip:IPadresanebonazevregistrarserveru (obvykle stejná jako SIP Proxy)
oblast: neboli realm , na všb je to asterisk
už. jméno: tím se registruje na Registrar
heslo: přidělené heslo
8 Troubleshooting
8.1 Registrace
<-- SIP read from 158.196.78.84:5062:
REGISTER sip:158.196.81.132;transport=UDP SIP/2.0
Via: SIP/2.0/UDP 158.196.78.84:5060;branch=z9hG4bKpfv40qm0l5hc66klhs21qo8;rport
From: <sip:7000@158.196.81.132>;tag=r3040qndv1hc7om5hs21
To: <sip:7000@158.196.81.132>
Contact: <sip:7000@158.196.78.84;transport=UDP>;expires=3600
CSeq: 1163 REGISTER
Call-ID: 1Dx0qDjvoIcEyUY47g3lBSeh4cQEl0
User-Agent: Nokia RM-89 3.0633.09.04
Max-Forwards: 70
Content-Length: 0
---> Transmitting to 158.196.78.84:5062:
SIP/2.0
100 Trying
Via: SIP/2.0/UDP 158.196.78.84:5060;branch=z9hG4bKpfv40qm0l5hc66klhs21qo8;received=158.196.78.84;rport=5062
From: <sip:7000@158.196.81.132>;tag=r3040qndv1hc7om5hs21
To: <sip:7000@158.196.81.132>
Call-ID: 1Dx0qDjvoIcEyUY47g3lBSeh4cQEl0
CSeq: 1163 REGISTER
User-Agent: Asterisk PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Contact: <sip:7000@158.196.81.132>
Content-Length: 0
---> Transmitting (NAT) to 158.196.78.84:5062:
SIP/2.0
401 Unauthorized
Via: SIP/2.0/UDP 158.196.78.84:5060;branch=z9hG4bKpfv40qm0l5hc66klhs21qo8;received=158.196.78.84;rport=5062
From: <sip:7000@158.196.81.132>;tag=r3040qndv1hc7om5hs21
To: <sip:7000@158.196.81.132>;tag=as74977999
Call-ID: 1Dx0qDjvoIcEyUY47g3lBSeh4cQEl0
CSeq: 1163 REGISTER
User-Agent: Asterisk PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
WWW-Authenticate: Digest algorithm=MD5, realm="asterisk", nonce="7b578464"
Content-Length: 0
<-- SIP read from 158.196.78.84:5062:
REGISTER sip:158.196.81.132;transport=UDP SIP/2.0
Via: SIP/2.0/UDP 158.196.78.84:5060;branch=z9hG4bK245k1ga0o7jhuo1481l5j3j;rport
From: <sip:7000@158.196.81.132>;tag=r3040qndv1hc7om5hs21
To: <sip:7000@158.196.81.132>
Contact: <sip:7000@158.196.78.84;transport=UDP>;expires=3600
CSeq: 1164 REGISTER
Call-ID: 1Dx0qDjvoIcEyUY47g3lBSeh4cQEl0
User-Agent: Nokia RM-89 3.0633.09.04
Max-Forwards: 70
Authorization: Digest
realm="asterisk",nonce="7b578464",algorithm=MD5,username="7000",uri="sip:158.196.81.132;transport=UDP",response="a1119d71b908a45e9dd953bbe0c462e6"
Content-Length: 0
---> Transmitting (NAT) to 158.196.78.84:5062:
SIP/2.0
100 Trying
Via: SIP/2.0/UDP 158.196.78.84:5060;branch=z9hG4bK245k1ga0o7jhuo1481l5j3j;received=158.196.78.84;rport=5062
From: <sip:7000@158.196.81.132>;tag=r3040qndv1hc7om5hs21
To: <sip:7000@158.196.81.132>
Call-ID: 1Dx0qDjvoIcEyUY47g3lBSeh4cQEl0
CSeq: 1164 REGISTER
User-Agent: Asterisk PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Contact: <sip:7000@158.196.81.132>
Content-Length: 0
---> Transmitting (NAT) to 158.196.78.84:5062:
SIP/2.0
200 OK
Via: SIP/2.0/UDP 158.196.78.84:5060;branch=z9hG4bK245k1ga0o7jhuo1481l5j3j;received=158.196.78.84;rport=5062
From: <sip:7000@158.196.81.132>;tag=r3040qndv1hc7om5hs21
To: <sip:7000@158.196.81.132>;tag=as74977999
Call-ID: 1Dx0qDjvoIcEyUY47g3lBSeh4cQEl0
CSeq: 1164 REGISTER
User-Agent: Asterisk PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Expires: 3600
Contact: <sip:7000@158.196.78.84;transport=UDP>;expires=3600
Date: Fri, 09 Mar 2007 17:24:52 GMT
Content-Length: 0
9 Literatura