SipX
Installazione Sipx da sorgente
User da utilizzare per Sipx: sipxchange
Disabilitare SELinux Disabilitare Firewall
Installazione e configurazione DNS
Create il seguente file per named: nano /var/named/chroot/etc/named.conf
dati di esempio
options { directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; }; zone "voip.ergon2000.net" IN { type master; file "voip.ergon2000.net.zone"; allow-update { none; }; }; zone "1.255.10.IN-ADDR.ARPA" { type master; file "10.255.1.0.zone"; };
Editiamo il file nano /var/named/dominio.net.zone Configurazione di esempio:
$TTL 1D @ IN SOA ns1.voip.ergon2000.net. root.voip.ergon2000.net. ( 200602132 ; serial# 3600 ; refresh, seconds 3600 ; retry, seconds 3600 ; expire, seconds 3600 ) ; minimum TTL, seconds NS ns1.voip.ergon2000.net. ; Inet Address of nameserver voip.ergon2000.net. MX 10 mail ; Primary Mail Exchanger ns1 CNAME scm mail CNAME scm ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; sipX Servers for SIP domain 'voip.ergon2000.net' ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; scm.voip.ergon2000.net. IN A 10.255.1.249 scm IN A 10.255.1.249 voip.ergon2000.net. IN NAPTR 2 0 "s" "SIP+D2T" "" _sip._tcp.voip.ergon2000.net. voip.ergon2000.net. IN NAPTR 2 0 "s" "SIP+D2U" "" _sip._udp.voip.ergon2000.net. _sip._tcp.voip.ergon2000.net. IN SRV 1 0 5060 scm.voip.ergon2000.net. _sip._tcp.voip.ergon2000.net. IN SRV 1 0 5060 10.255.1.249. _sip._udp.voip.ergon2000.net. IN SRV 1 0 5060 scm.voip.ergon2000.net. _sip._udp.voip.ergon2000.net. IN SRV 1 0 5060 10.255.1.249. ; scm.voip.ergon2000.net routing for registry/redirect service _sip._tcp.rr.scm.voip.ergon2000.net. IN SRV 1 0 5070 scm.voip.ergon2000.net. _sip._udp.rr.scm.voip.ergon2000.net. IN SRV 3 0 5070 scm.voip.ergon2000.net. _sip._tcp.rr.scm.voip.ergon2000.net. IN SRV 2 100 5070 10.255.1.249. _sip._udp.rr.scm.voip.ergon2000.net. IN SRV 4 100 5070 10.255.1.249. ; 10.255.1.249 routing for registry/redirect service _sip._tcp.rr.10.255.1.249. IN SRV 1 0 5070 10.255.1.249. _sip._udp.rr.10.255.1.249. IN SRV 3 0 5070 10.255.1.249. _sip._tcp.rr.10.255.1.249. IN SRV 2 100 5070 scm.voip.ergon2000.net. _sip._udp.rr.10.255.1.249. IN SRV 4 100 5070 scm.voip.ergon2000.net. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Create il file /var/named/10.255.1.0.zone e inserite i seguenti dati
$TTL 1D @ IN SOA ns1.voip.ergon2000.net. root.voip.ergon2000.net. ( 200602132 ; serial# 3600 ; refresh, seconds 3600 ; retry, seconds 3600 ; expire, seconds 3600 ) ; minimum TTL, seconds NS ns1.voip.ergon2000.net. ; Inet Address of nameserver 249 IN PTR scm.voip.ergon2000.net. ; Record of class IN by defaul t
Se per qualche motivo quando fate partire il servizio vi dice che non trova il file 10.255.1.0.zone prevate a linkarlo con questo comando
cp -s /var/named/10.255.1.0.zone /var/named/chroot/var/named/10.255.1.0.zone
Facciamo partire named:
service named start chkconfig --levels 235 named on
Installazione e configurazione NTP
yum install ntp chkconfig ntpd on
modificare il file /etc/ntpd.conf alle seguenti rige
restrict 10.255.0.0 mask 255.255.0.0 nomodify notrap server time.ien.it
Installazione Dipendenze
Installiamo i seguenti pacchetti:
yum install gcc gcc-c++ autoconf automake libtool subversion doxygen rpm-build zip \ httpd-devel openssl-devel jpackage-utils which unzip \ pcre-devel expat-devel unixODBC-devel createrepo \ jakarta-commons-beanutils jakarta-commons-collections jakarta-commons-net \ ant log4j junit ant-commons-logging ant-junit ant-trax ant-nodeps \ mod_ssl postgresql-server libXp zlib-devel postgresql-devel
yum install xerces-c-devel ruby ruby-devel ruby-postgres cppunit-devel cppunit redhat-rpm-config xerces* sh -c "wget -P /etc/yum.repos.d http://sipxecs.sipfoundry.org/temp/sipXecs/sipxecs-unstable-centos.repo"
yum install cgicc-devel java-1.5.0-sun-devel ruby-dbi ruby-gems w3c-libwww-devel cppunit ruby-postgres xerces-c-devel jain-sip jakarta-commons-net
yum install cgicc-devel java-1.5.0-sun-devel ruby-dbi ruby-gems w3c-libwww-devel cppunit ruby-postgres xerces-c-devel jain-sip jakarta-commons-net --nogpgcheck gem install rake gem install file-tail
Scarichiamo java:
wget -O java.bin http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/j2sdk-1_4_2_18-linux-i586-rpm.bin?BundledLineItemUUID=RrFIBe.pkBMAAAEb1iFHJ0rq&OrderID=PXZIBe.pGCsAAAEbyCFHJ0rq&ProductID=8ntIBe.o_Y8AAAEac8YGcZhi&FileName=/j2sdk-1_4_2_18-linux-i586-rpm.bin
installazione:
chmod +x java.bin ./j2sdk-1_4_2_18-linux-i586-rpm.bin yum install j2sdk-1_4_2_18-linux-i586.rpm --nogpgcheck
Installazione SipX
Aggiunta utente:
useradd sipxchange
Scarichiamo i sorgenti:
svn co http://sipxecs.sipfoundry.org/rep/sipXecs/branches/3.10.1 sipx
Aggingere questa riga al file: /etc/profile
export JAVA_HOME=/usr/java/j2sdk1.4.2_18/
Compiliamolo:
cd sipx autoreconf -if mkdir BUILD cd BUILD ../configure --cache-file=`pwd`/ac-cache-file SIPXPBXUSER=`sipxchange` sudo mkdir -p /usr/local/sipx sudo chown `sipxchange`:`sipxchange` /usr/local/sipx make build
Note per l'installazione con patch per 7912 Per installare l'rpm della 3.10.2 con la patch per i nuovi telefoni cisco bisogna dare yum install sipxconfig-3.10.2.patch e poi installare tutti gli altri rpm di sipx tranne quelli che hanno il nome che comincia per sipxconfig
Configurazione Trunk con CallManager
CallManager 4.2
Lato CallManager
Creare una nuova Trunk Sip in Device/Trunk
I campi fissi sono:
Destination Address: NomeMacchina.dominio.net Destination Port: 5060 Incomming Port: 5060 Outgoing Transport Type*: udp
Il resto della configurazione varia a seconda dei casi
Create un route patter adeguto che reindirizzi a questo gateway
Lato SipX
In Terminale/SBCs aggiungene uno nuovo con nome CCM (o quello che volete)
Address: 10.255.1.250 //L'indirizzo del CallManager// Port: 5060
In Terminali/Gateway aggiungete una nuova Sip Trunk con il nome che volete
Address: 10.255.1.250 //L'indirizzo del CallManager// Port: 5060 Transport Protocol: udp Route: CCM //il nome del SBC che avete creato//
Create delle regole di composizione adeguate che reindirizzano a questo gateway
Configurazione Telefoni Cisco
Configurazione Generale
nano /etc/sipxpbx/registrar-config
SIP_REGISTRAR_MAX_EXPIRES : 3600
SIP_REGISTRAR_MIN_EXPIRES : 3600
SIP_REGISTRAR.MWI.UA.CISCO : ^(CSCO|Cisco)
7960
File necessari:
- XMLDefault.cnf.xml (Non prodotto da SipX)
- SIPDefault.cnf (Non prodotto da SipX)
- P003-08-9-00.bin (Firmware)
- P003-08-9-00.sbn (Firmware)
- P0S3-08-9-00.loads(Firmware)
- P0S3-08-9-00.sb2 (Firmware)
- SIPmacaddress.cnf (Prodotto da SipX)
Se tutti i file ci sono e se XMLDefault.cnf.xml e SIPDefault.cnf sono configurati come si deve il telefono si prenderà il firmware e la configurazione da solo, sia se è SCCP sia se è Sip
Problemi noti con firmware P0S3-08-9-00: nessuno per ora
7912
File necessari:
- XMLDefault.cnf.xml (Non prodotto da SipX)
- gkdefault.cfg (Firmware)
- CP7912080000SIP060111A.sbin (Firmware)
- gkMACADDRESS (Prodotto da SipX)
Con questi file si autoconfigurano sia gli SCCP(cambio firmware) sia i SIP
Problemi noti con firmware CP7912080000SIP060111A: non rinnova registrazione
Problemi noti con firmware CP7912080001SIP060412A: nessuno per ora
Procedura per generarre gkdefault.cfg
Modificare il file gkdefault.txt nei punti dove c'è l'asterisco
upgradecode:3,0x601,0x0400,0x0100,0.0.0.0,69,*,*.sbin
Esempio: upgradecode:3,0x601,0x0400,0x0100,0.0.0.0,69,0x060111a,CP7912080001SIP060412A.sbin
Firmware supportati
Per i 7906/7911 utilizzare il firmware 8.2.2SR4, sembra essere l'ultimo funzionante bene con l'ACD di sipx ed è anche l'unico che comunica con tutti i telefoni di altre marche.
Lo stesso potrebbe valere per 7961/7941
Soap
Link per telefoni registrati http://scm.voip.ergon2000.net:8090/sipdb/registration.xml Bisogna modificare il file /etc/sipxpbx/httpd-sipxchange-common.conf.in per permettere l'accesso da remoto
Porta per richieste Soap rigurardo coda: 8020
Php Service Sipxproc
Per vedere lo stato dei servizi http://10.255.1.248:8112/proc/status.php?action=statusa
Per riavviare il servizio http://10.255.1.248:8112/proc/status.php?action=restart&service=ACDServer
Per Startare il servizio http://10.255.1.248:8112/proc/status.php?action=start&service=ACDServer
Per Stoppare il servizio http://10.255.1.248:8112/proc/status.php?action=stop&service=ACDServer
Tips x Debug
Debug Sipx
Count messages per call to filter the trace
On your system, run:
sipx-dialog-count /var/log/sipxpbx/sipXproxy.log
it will print a list like this:
Messages Method Time Call-Id -------------- ---------- ------------------- ------------------------------------------------ 50 INVITE 2009-12-11T22:22:20 nekyxpqiedpefov@scott.home.skrb.org 36 INVITE 2009-12-11T22:17:19 zbwmxexjtxvlwer@scott.home.skrb.org
search that list for the call that starts at the right time (log times are in UTC), and then use the call-id from that call as the <token> argument to sipx-trace - you'll get just the one call you're after.
Run a packet trace
1. Download and install Wireshark. This is an invaluable tool for network analysis. 2. Before you issue the preflight test, open a root shell to the SipX server and issue this command to create the capture:
# tcpdump -i eth0 -n -s 1500 -w /tmp/capture.pcap
I assume the server, as it is a Mac Mini, has only a single network interface which is eth0. Adjust the -i option as needed. This will create a file called capture.pcap in /tmp which will contain a complete network trace of everything going in and out of eth0. 3. Run your preflight test from another root ssh shell while the package capture is running. Allow the preflight to fail. 4. Once it has failed, ctrl-c the tcpdump capture and it will gracefully close the capture. 5. FTP, SFTP, SCP, or otherwise transfer the capture.pcap file to the system you installed Wireshark on (I assume you'll be using Windows). I recommend Filezilla as a great open-source file transfer client. 6. Open the capture file with Wireshark.
Debug Cisco IP Phones
7941 - 7961
ssh user: 'user' password: 'pass'; poi al login: 'debug', password: 'debug'
per resettare (o testare il telefono): test open; test key set #
screenshot: http://X.Y.Z.K/CGI/Screenshot user: 'user' password: 'pass' verificare che il parametro di configurazione 'URL di autenticazione' in 'Config di rete' sia settato su 'http://SipXAddress/phone/profile/docroot/auth.php'
e che il file auth.php (source: '<?php echo 'AUTHORIZED' ?>') esista (in: /var/sipxdata/configserver/phone/profile/docroot/auth.php) e che la url sia effettivamente raggiungibile (deve restiture: 'AUTHORIZED') (verifica che sia installato il PHP).
Per installare il php:
yum install php-mysql php-devel php-gd php-pecl-memcache php-pspell php-snmp php-xmlrpc php-xml
cp /etc/httpd/conf.d/php.conf /etc/sipxpbx/httpd.conf.d/php.conf
nano etc/sipxpbx/httpd.conf.d/php.conf
edit: LoadModule php5_module /etc/httpd/modules/libphp5.so
service sipxecs restart