Aggiungere opzione spegni nel Menu di Gnome Shell
August 31, 2011 — 18:07

Author: f0ff0 | Category: Linux | Tags: , , , , | Comments: 0

Un’altra caratteristica che la maggior parte degli utenti Gnome non riesce a mandar giù è il fatto che Gnome Shell non ha l’opzione spegni e riavvia nel menu utente di Fedora.

Tralasciando il perchè, la soluzione anche in questo caso passa per un’estensione alternativa: gnome-shell alernative status menu.

In Fedora 15 per installarla eseguire il seguente comando in console (come root):
yum install gnome-shell-extensions-alternative-status-menu

Alt-Tab Gnome shell (gnome 3)
August 31, 2011 — 17:17

Author: f0ff0 | Category: Linux | Tags: , , , , | Comments: 0
laptop_linux

Gnome 3 e il suo Gnome shell sono sicuramente tra le torture più grandi del 2011 linuxiano.
A parte lo studio di usabilità che he stato fatto, e di cui è meglio non sindacare, ci sono alcuni particolari che sono stati cambiati e che sinceramente non si capisce molto il senso.

Tra i tanti cambi forse meno apprezzati, c’è l’ALT-TAB, adesso copiato da MacOS X, che al posto di permetterci il cambio tra una finestra e un’altra (task switching), passa da un programma all’altro per via della raggruppazione delle finestre.
Utile proprio no!

La soluzione per fortuna c’è ed è semplice. Grazie all’estensione alternate-tab possiamo infatti tornare indietro a come siamo sempre stati abituati. Basta installarla e fare log-out log-in.

Link qui

OVH – Xen 4.0 IPfailover e Bridge Linux in Debian
August 27, 2011 — 17:54

Author: f0ff0 | Category: SysAdmin | Tags: , , , , | Comments: 0
datacenter

Ovh è tra le più interessanti aziende del panorama europeo in ambito soluzioni web.
Tra i tanti servizi offerti, si distingue per economicità e qualità l’offerta “server dedicati” che include, tra le tant ecose, fino a 3 indirizzi IP.

XEN e OVH
Ovh ha una distribuzione XEN preconfigurata.
Nel caso si desideri utilizzare una distribuzione Xen non-ovh, questo howto può essere utile per configurare le IP failover e associarle a macchine virtuali xen. l’howto è basato su Debian, ma è applicabile a tutte le differenti distribuzioni linux.

Configurazione IP failover
Per prima cosa occorre configurare le IP failover come aliases sul server fisico (Xen Host). In debian modificare il file /etc/network/interfaces

# Sostituire address con l'ip failover assegnata
auto eth0:1
iface eth0:1 inet static
        address 94.23.XX.YY
        netmask 255.255.255.255

A questo punto la nuova IP già risponderà al ping (naturalmente solo dopo aver eseguito il restart della rete o aver aggiunto manualmente l’indirizzo ip).

Preparazione del Bridge per le macchine virtuali
Il passo seguente consiste nel creare un bridge per le macchine virtuali. In soldoni, abbiamo bisogno di creare una rete privata virtuale dove le macchine virtuali e il server fisico possano comunicare.
I pacchetti proveninenti dalle macchine virtuali quindi, gireranno sulla rete privata dove il server fisico sarà il gateway delle macchine virtuali e si occuperà del forwarding dei pacchetti.

Consideriamo la rete 192.168.1.0 come rete privata e l’indirizzo 192.168.1.10 appartenente al server fisico (XEN host). Si procede quindi creando il bridge “br0″, aggiungendo la seguente entrata direttamente nel file /etc/network/interfaces di Debian:
Aggiungiamo al bridge l’interfaccia speciale dummy0 dal momento che non disponiamo di una seconda eth per la rete privata:

auto br0
iface br0 inet static
        bridge_ports dummy0
        address 192.168.1.10
        netmask 255.255.255.0

Il bridge “br0″ sarà l’interfaccia che si utilizzerà nei guest Xen

IP forwarding
Il server fisico (XEN Host) sarà quindi il gateway delle macchine virtuali e perciò, dal momento che sarà incaricato allo smistamento dei pacchetti verso l’esterno e quindi alle operazioni di forwarding, si deve abilitare l’ip forwarding con il seguente comando (nel caso non lo sia già):

echo 1 > /proc/sys/net/ipv4/ip_forward

Per far si che il parametro non si perda al prossimo reboot, settare net.ipv4.ip_forward a 1 direttamente nel file /etc/sysctl.conf

# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1

Iptables (PREROUTING POSTROUTING)
A questo punto, non ci rimane altro che configurare le regole di prerouting e postrouting.
Nel seguente esempio, la macchina virtuale con IP 192.168.1.11 riceverà il traffico entrante dall’IP failover 94.23.XX.YY

-A PREROUTING -d 94.23.XX.YY/32 -i eth0 -j DNAT --to-destination 192.168.1.11
-A POSTROUTING -s 192.168.1.11 -o eth0 -j SNAT --to-source 94.23.XX.YY

Configurazione XEN
La gestione del bridge e delle interfacce di rete avviene direttamente con linux e non con Xen. Per questa ragione, controllare bene che nel file /etc/xen/xend-config.sxp siano commentati parametri quali:

#(network-script network-bridge)
#(network-script 'network-bridge netdev=eth1')
#(vif-script vif-bridge)
#(network-script network-nat)
Intercettazioni telefoniche in Asterisk con ChanSpy
August 21, 2011 — 1:55

Author: f0ff0 | Category: Asterisk VoIP | Tags: , , , | Comments: 0

Se possibile muniti di buon senso, abbiamo la possibilità di “spiare” le conversazioni attive sul nostro server asterisk (bridged calls) servendoci della funzione chanspy().

Il caso più classico dove questa funzionalità trova applicazione è nei sistemi per call center, dove il supervisore ha la necessità di interagire con l’operatore principalmente al fine di:

- Controllare la qualità: Il supervisore monitorizza il servizio che l’operatore offre al cliente.
- Training: Il supervisore interagisce con l’operatore al fine di aiutarlo ad offrire un buon servizio telefonico (whisper mode).

Asterisk implementa la funzione chanspy(). Analizziamo il seguente esempio per capire come funziona:

[macro-spy]
exten => s,1,Answer(1)
exten => s,n,Authenticate(1234)
exten => s,n,ChanSpy(SIP/${ARG1}|o)
exten => s,n,Hangup

In questo esempio, la macro “spy” viene protetta con password (1234) grazie alla funzione Authenticate di Asterisk. L’accesso alle funzionalità di monitoraggio quindi rimane ristretta a tutti coloro che conoscono la chiave d’accesso.
La macro “spy” si aspetta un valore ${ARG1} che risulta essere l’estensione che si desidera ascoltare.
Nel dialplan associato alle estensioni del centralino telefonico aggiungiamo una linea simile alla seguente:

exten => _*666X.,1,Macro(spy,${EXTEN:4})

Il supervisore quindi, semplicemente digita *666 seguito dall’estensione, digiterà la password e potrà iniziare l’ascolto telefonico.

La funzione ChanSpy ha differenti opzioni. Riportiamo le principali e più utili:
- b: Si spia solo i canali attivi su bridged calls.
- r([basename]): Registra la sessione di monitorizzazione nella directory spool di asterisk nel caso non sia presente un basename differente.
- w: ‘whisper’, il supervisore può parlare con l’agente che si sta spiando.
- W: ‘private ‘whisper’, il supervisore può parlare con l’agente che si sta spiando ma non può ascoltare il cliente.

Recuperare files persi e foto cancellate con Linux
August 20, 2011 — 12:09

Author: f0ff0 | Category: Linux SysAdmin | Tags: , , , | Comments: 0

Si possono recuperare files cancellati da supporti quali per esempio schede di memorie SD? La risposta è si!

Esistono diversi tools per recuperare files cancellati in linux anche se tra i tanti spiccano principalmente due:

* photorec
* foremost

Preparazione / Backup:
Prima di fare qualunque tipo di intervento, per evitare ulteriori perdite di dati, cloniamo la partizione in un file con il comando dd. La partizione in oggetto è sdb1 e la si clonerà nel file file.img:

dd if=/dev/sdb1 of=file.img bs=512

Photorec:
Photorec non ha molte opzioni e si limita a recuperare solo immagini e video. Tra le opzioni a linea di comando può risultare utile specificare la directory di destinazione dove il programma salverà i documenti recuperati:

photorec /d file.img

Foremost:
Foremost è un software molto potente che permette recuperare sia documenti che immagini.
Possiamo anche discriminare la ricerca dei file persi ad un tipo esatto di documento.
Per esempio, se desideriamo recuperare solo le immagini jpg cancellate:

foremost -o -T -t jpg file.img

Per conoscere tutti i formati supportati da foremost utilizzare il man di foremost (man foremost).
Con l’opzione “-t All”, per esempio, foremost cercherà di recuperare tutti i tipi di documenti conosciuti.
Risulta essere un programma molto valindo in quanto è capace di recuperare immagini anche parzialmente.

Google Analytics: Escludere le proprie visite
August 20, 2011 — 1:58

Author: f0ff0 | Category: Web | Tags: , , , | Comments: 0

Accade spesso, soprattutto quando si  sviluppa una nuova pagina web, di vedersi inclusi nelle statistiche di google analytics.
Se si ha la fortuna di disporre di un’IP statico, il problema è piuttosto banale; google ha già un filtro preimpostato per escludere un IP o un rango dal tracking delle visite.
Nel caso più classico dell’IP dinamico, senza impazzire a cambiare l’IP svariate volte, google prevede l’utilizzo di un cookie specifico per escludere un computer dalle statistiche.

Per escludersi quindi si seguono 2 semplici passi:
1. Creare un cookie specifico che contiene un valore desiderato.
2. Configurare il nuovo filtro in google analytics.

Per soddisfare il punto 1. si deve creare una pagina html nella documento root del sito web (es. escludimi.html). La pagina dovrà essere html valida, contenere il codice di tracking di google e il body come in questo esempio:

<body onLoad=”javascript:pageTracker._setVar(‘exclude_visitor’);”>

A questo punto, visualizzando la pagina escludimi.html si scaricherà il cookie _utmv con il valore escludimi.

Non resta che passare al punto 2 e configurare il filtro in Google Analytics:

Analytics -> Profile Settings -> Edit Filter
Filter Type: Custom filter -> Exclude
Filter Field: User Defined
Filter Pattern: escludimi
Case Sensitive: No

Fatto!

Asterisk va in ferie: giorni festivi e voicemenu
December 27, 2010 — 23:38

Author: admin | Category: Asterisk | Tags: , , , , , , , | Comments: 0

Mentre si pensa alla configurazione di un IVR, nasce spesso l’esigenza di dover fornire un menu vocale differente solo in alcune occasioni specifiche, come ad esempio durante i giorni festivi. La soluzione più semplice e facilemente applicabile a sistemi di dimensioni ridotte consiste nell’utilizzare il database interno di asterisk per immagazzinare le date, per poi limitarsi ad eseguire un check nel dialplan di asterisk.

Database: per aggiungere una data “bankholiday” al database asterisk si utilizzerà il comando ‘database’ come nell’esempio sottostante, sostiuendo la YYYYMMDD (key) con il giorno desiderato (es. 20101225):


asterisk -rx 'database put bankholiday YYYYMMDD 1'

Dialplan: la funzione DB_EXISTS restituirà valore 1 se la chiave YYYYMMDD esiste. Nel esempio sottostante il dialplan continuerà l’esecuzione della macro “reception” se il  giorno risulta non essere nel database, mentre salterà al menu vocale “menu-reception” durante i giorni festivi presenti nel db interno.


[macro-reception]
include = default
exten => s,1,GotoIf(${DB_EXISTS(bankholiday/${STRFTIME(${EPOCH},,%Y%m%d)})}?closed,1)
...
exten => closed,1,NoOp("closed")
...

Asterisk 1.6.2.1
January 18, 2010 — 0:19

Author: f0ff0 | Category: Asterisk | Comments: 0

Il giorno 15/01/2010 e’ stata rilasciata l’ultima versione del branch 1.6 di Asterisk. Si tratta di una minor release che risolve una serie di bugs piu’ o meno severi. L’annuncio ufficiale:

The release of Asterisk 1.6.2.1 resolved several issues reported by the
community, and would have not been possible without your participation. Thank
you!

* CLI ‘queue show’ formatting fix.
(Closes issue #16078. Reported by RoadKill. Tested by dvossel. Patched by
ppyy.)

* Fix misreverting from 177158.
(Closes issue #15725. Reported, Tested by shanermn. Patched by dimas.)

* Fixes subscriptions being lost after ‘module reload’.
(Closes issue #16093. Reported by jlaroff. Patched by dvossel.)

* app_queue segfaults if realtime field uniqueid is NULL
(Closes issue #16385. Reported, Tested, Patched by haakon.)

* Fix to Monitor which previously assumed the file to write to did not contain
pathing.
(Closes issue #16377#16376. Reported by bcnit. Patched by dant.

Release Summary

Gestione centralizzata della configurazione di Asterisk
December 27, 2009 — 18:10

Author: f0ff0 | Category: Asterisk | Tags: , , , , , , , , | Comments: 0

Nei centralini telefonoci di piccole/medie dimensioni, spesso nasce l’esigenza di poter centralizzare i dati di configurazione degli utenti SIP in un unico file. L’autoprovisioning dei telefoni, la rubrica telefonica e i file di asterisk condividono spesso gli stessi dati. Editare a mano ogni singolo file diventa spesso un lavoro ripetitivo.

… approfondimento qui

Asterisk – Selezione automatica della lingua
December 26, 2009 — 16:27

Author: admin | Category: Asterisk | Tags: , , , , , , , | Comments: 0

Con una semplice espressione regolare possiamo analizzare la prima cifra del numero chiamante ed eseguire un’applicazione differente, come ad esempio, riprodurre un messaggio vocale in differenti lingue.

Consideriamo l’esempio di un centralino telefonico con un messaggio di benvenuto in due lingue, italiano e inglese. Per discriminare i numeri telefonici italiani ricerchiamo le cifre “0″ e “3″ rispettivamente per i numeri di rete fissa e i numeri gsm.

Tutte le chiamate che iniziano con una cifra differente o che si effettuano con il numero nascosto si rindirizzeranno sul messaggio in inglese.

exten => s,n,GotoIF(${REGEX(“^[3,0]” ${CALLERID(num):0:1})}”]?it,1:en,1)
exten => it,1,Background(welcome-it)
exten => it,n,…
exten => en,1,Background(welcome-en)
exten => en,n,…

« Previous PageNext Page »