



Eccoci di ritorno!
Sono stato un pò assente, nel frattempo sono stato a MarsaAllam in Egitto ed eccomi di nuovo qua al lavoro, l’estate non è ancora finita, nuovi progetti partiranno ma adesso è tempo di afre un pò di bugfix.
Ho deciso di togliere un pò di fronzoli allo script safe_asterisk, in pratica
- Modificare la voce CONSOLE=yes in CONSOLE=no
- Togliere l’opzione -g, girare sempre in modalità di generazione coredump è peggiorativo per le prestazioni
- togliere -f dalla riga di esecuzione, in moda che Asterisk si in esecuzione in background (come demone)
io ho notato un sensibile miglioramente con questi semplici accorgimenti.




Ebbene si, certe volte mi capita di sentire colleghi che non reputano basilare aggiornare il firmware dei telefoni ip…..ma stiamo scherzando?
Noi usiamo principalmente Grandstream, perchè apparte gli snob considerino “cineseria” questi prodotti in confronto a Snom o Aastra, secondo me offrono un ottimo equilibri tra funzionalità e prezzo e devo dire che gli ultimi nati sono anche realizzati molto bene.
Apparte ciò è vero che un firmware nuovo può portare problemi, come il 1.1.6.16 con cui i telefoni davano occupato sempre.
Adesso ho “congelato” come release affidabile per i nostri sistemi la 1.2.3.5.
Un altra caso di successo dopo un aggiornamento di firmware l’ho avuto proprio oggi, un GXW-4004 (gateway fxs) non voleva saperne di far ricevere il fax all’apparecchio collegato, mentre dopo l’aggiornamento ha preso a funzionare regolarmente.




Comincio con una regola generale, NON esponete il vostro Asterisk direttamente su internet a meno che non sia una questione di vita o di morte.
Non so quanti di voi conoscono sipvicious, una suite di programmi che permettono di far male, se usati da “malintenzionati”.
Non c’è male eh? tutto quel che serve.
Primo punto debole, la maggor parte di pbx, per comodità ha username=password per ogni estesione
Secondo punto debole, per usare trunk sip di svariati provider viente fatto port forwarding della 5060/udp e delle porte RTP
A questo punto con molta probabilità avremmo in /var/log/asterisk/full cosine di questo tipo
Feb 3 22:54:31 NOTICE[28514] chan_sip.c: Registration from ‘”0″‘ failed for ‘86.72.2.248′ – Username/auth name mismatch
Feb 3 22:54:31 NOTICE[28514] chan_sip.c: Registration from ‘”1″‘ failed for ‘86.72.2.248′ – Username/auth name mismatch
Feb 3 22:54:31 NOTICE[28514] chan_sip.c: Registration from ‘”2″‘ failed for ‘86.72.2.248′ – Username/auth name mismatch
Feb 3 22:54:31 NOTICE[28514] chan_sip.c: Registration from ‘”3″‘ failed for ‘86.72.2.248′ – Username/auth name mismatch
Feb 3 22:54:31 NOTICE[28514] chan_sip.c: Registration from ‘”4″‘ failed for ‘86.72.2.248′ – Username/auth name mismatch
Feb 3 22:54:31 NOTICE[28514] chan_sip.c: Registration from ‘”5″‘ failed for ‘86.72.2.248′ – Username/auth name mismatch
e poi
Feb 3 22:56:30 NOTICE[28514] chan_sip.c: Registration from ‘”1082″‘ failed for ‘86.72.2.248′ – Wrong password
Feb 3 22:56:30 NOTICE[28514] chan_sip.c: Registration from ‘”1082″‘ failed for ‘86.72.2.248′ – Wrong password
Feb 3 22:56:30 NOTICE[28514] chan_sip.c: Registration from ‘”1082″‘ failed for ‘86.72.2.248′ – Wrong password
Feb 3 22:56:30 NOTICE[28514] chan_sip.c: Registration from ‘”1082″‘ failed for ‘86.72.2.248′ – Wrong password
Feb 3 22:56:30 NOTICE[28514] chan_sip.c: Registration from ‘”1082″‘ failed for ‘86.72.2.248′ – Wrong password
Feb 3 22:56:30 NOTICE[28514] chan_sip.c: Registration from ‘”1082″‘ failed for ‘86.72.2.248′ – Wrong password
Complimenti! Siete vittime di sipvicious.
Li ci sono avvisi di password sbagliate, ma se non ci sono potrete notare che i vostri telefoni perdano la registrazione e poi la riacquistino…qualcuno ha usato l’accoppiata!
E nel cdr ci sarà la sorpresa!
Come difendersi? bhe per prima cosa, password complesse, si è vero sono scomode ma tanto va configurata una volta sola nel telefono, e nel caso usiate il provisioning nemmeno in quel caso.
Togliere l’esposizione da Internet è cosa buona e giusta, ma se avete SIP trunks voip da usare, lasciate l’ip pubblico e/o il portforwarding, ma limitate i vostri device all’uso in lan, ovvero usate permit/deny in sip.conf non in [general], ma per ogni singolo device.
Con queste brevi regole dovreste dormire sonni tranquilli…ed evitare bollette esagerate!




Ovviamente mi dissocio da qualsiasi uso nefasto e criminale di questa soluzione, riporto solo un uso curioso di Asterisk….
Una soluzione commerciale del genere, oltre a non poter essere comprata da tutti sta sui 1500 dollari..




Ebbene si, erano molti mesi che non mi occupavo di Trixbox (la 2.8.0.3) e soprattutto d’installarlo, ma per una piccola installazione ho deciso di riusarlo, precisamente in un Acer Veriton N260G.
Essenzialmente non sono cambiate tante cose, apparte l’adozione di Asterisk 1.6, sicuramente l’unica novità degna di nota in ambito “business” è la priorità nelle code, la possibilità di togliere il call waiting su un singolo device (utile per i call center) e modificare la durata del ringing sempre su singola estensione.
Nell’installazione la difficoltà è stata nel fatto che il kernel presente, il 2.6.18-128.el5 non riconosce la Marvell 80E8871, quindi mi sono installato un altro kernel, ovvero il 2.6.18-164.el5.
Fatto ciò ovviamente non funzionavano più i DAHDI drivers (kmod-dahdi), quindi l’ho dovuti reinstallare da questo repo, potete usare questa guida per usufruirne.
In definitiva comunque rimane una ottima soluzione per piccole installazioni, l’unica vera nota negativa è che non è presente nessuna utility di backup, cosa gravissima che ne limita i campi di utilizzo.




Questo problema mi stava facendo scervellare!
Nella nostra VM basata su Ubuntu e Asterisk 1.4.22 non c’era verso di trovare come far funzionare il BLF su dei GXP 2010, cosa tra l’altro da sempre usata.
Funzionava solo per l’hold delle chiamate, ma per il resto l’estensione digitando
core show hints
tutti i telefoni risultavano in idle anche durante una chiamata.
Ebbene dopo svariate ricerche ho trovato che per asterisk 1.4 e 1.6 ci sono bisogno di parametri aggiuntivi, rispetto alle releases precedenti, per far fuzionare totalmente i blf, ovvero
[general]
notifyringing = yes
notifyhold = yes
limitonpeers = yes
in sip.conf e per ogni estensione, dobbiamo impostare il call-limit, ad esempio 1 per i telefoni mono linea oppure più alta per i multi linea, come ad esempio i GXP-2010, sempre se volete gestire più chimate in ingresso con tali telefoni.
A questo punto vedremo lo stato libero, sta suonando, in attesa, occupato, che nei GXP è rispettivamente verde, rosso lampeggiante veloce, rosso lampeggiante lento, rosso fisso




Sto seguendo un grosso progetto univeristario che mira alla realizzazione di una infrastruttura voip che inizalmente dovrà coprire 350 utenti, ma poi a regime saranno circa 4000.
E’ saltato subito fuori dai nostri incontri un’inaspettato fatto, Asterisk non è in grado di reggere l’urto di questa cosa, anche per la sua architettura ma proprio perchè sembra non pensato per essere così scalabile su queste cifre.
Inoltre abbiamo potuto vedere esperienze fatte dal GARR dove si fa largo uso di SER come sip proxy, di OpenSIPS per il load balancing e di Asterisk appunto per servizi avanzati, come IVR o voicemail, ma comunque non per chiamare.
Perchè questo? perchè SER è sicuramente più veloce, scalabile di Asterisk per lo standard SIP, e sicuramente si può fare molto meglio l’HA.
Noi ci stiamo indirizzando verso SipX in quanto è si un sip proxy scalabilissimo, ma anche flessibile come SER.
Inoltre supporta attivamente l’integrazione con LDAP/Active Directory, funge da voicemail server per Exchange 2007 e molto altro.
Inoltre è relativamente facile creare sistemo distribuiti per load balancing ed HA, e qui troverete tutte le sue varie features.




Aaaah quanto tempo che non mi capitava di fare un bel PBX, ma adesso basta Trixbox e tutti i suoi “accrocchi”.
Per un cliente ho “sfornato” un bel server IBM con una Sangoma 104DX (veramente facile adesso configurarle), Asterisk 1.4 pulito, DAHDI (addio maledetto Zaptel) e tutto basato su Ubuntu server 8.04, va che è una meraviglia.
Per configurarlo il nostro programma aziendale basato su client Windows e lato sever LDAP+Mono+PHP web services.
Risultato: ottimo, senza bestemmiare per i vari kernel panic e/o suicidi di FreePBX!




Il titolo del post riassume quello che voglio fare, ovvero un sistema fault tollerance che prevede la sincronizzazione dei dati utente e di sistema (quindi voicemail, db di freepbx e altro) tra i due sistemi, HA con HeartBeat e monitor con MON, in quanto può capitare che qualche servizio vada giu indipendentemente dalla connessione o guasto hardware (ad esempio un crash di mysql).
Se avete suggerimenti, opinioni o direttamente una soluzione da pubblicare, sarò felice di ospitarvi qui e su www.ilmiovoip.com, io intanto comincerò a lavorare un pò sulla soluzione (attualmente la parte trixbox+heartbeat è già operativa, a breve la parte MON).
Quello che più mi interessa attualmente è conoscere la struttura delle directory che servono a Trixbox per configurare drbdlinks.conf, è un lavoro duro e per ora ho partorito questo
/var/account
/var/ftp
/var/nwebmail
/var/spool/asterisk
/var/spool/clientmqueue
/var/spool/mqueue
/var/spool/vbox
/var/trixbox_load
/var/www
/var/lib/asterisk
/var/lib/ircd
/var/lib/mysql
/var/lib/php
/etc/asterisk
/etc/httpd
/etc/ircd
/etc/mail
/etc/php.d
/etc/vsftpd
/usr/lib/httpd
/etc/vsftpd.ftpusers
/etc/vsftpd.user_list
/etc/aliases
/etc/aliases.db
/etc/dhcpd.conf
/etc/my.cnf
/etc/php.ini
/etc/xinetd.conf
/etc/xinetd.d
ma può darsi che ci siano omissioni e/o errori.




Abbiamo sviluppato nella nostra azienda un pannello operatore per asterisk, HUD non ci piaceva.
L’applicazione è scritta in .NET 2.0 ed il motore server anch’esso scritto su questa piattaforma ma eseguito con Mono.
Questo breve preambolo per introdurre un problema che affligge i Thomson ST2030, ovvero quando dal pannello voglio chiamare, la chiamata veniva rifiutata dal telefono, dando un errore 486 su Asterisk.
Questo perchè il Thomson vedendo un CID identico all’interno su di esse configurato, droppava la chiamata.
Mi spiego meglio, dal PO voglio telefonare al 1234, Asterisk mi fa una chiamata al mio interno (impostato nel PO, ad esempio 100) e il CID di tale chiamata è 100, e la chiamata veniva droppata.
Stesso difetto è riproducibile con HUD. Questo problema non era presente in tutti i firmware, infatti nei vecchi 1.47 non era presente, però in quelli successivi non era più possibile usare PO vari.
Finalmente con la release 1.59 tutto funziona di nuovo, quindi se avete problemi simili con i vostri PO, scaricate questo firmware!
–


More Options ...
Categorie
Tag Cloud
Blog RSS
Comments RSS

Void « Default
Life
Earth
Wind
Water
Fire
Light 