====== 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 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: '') 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