preload
Oct 25

Di seguito, due soft-phone gratuiti per Asterisk. Il primo è la versione “ridotta” di eyeBeam e non supporta molte funzioni utili, quali ad esempio il trasferimento di chiamata. Il secondo invece, supporta molte funzioni avanzate, tra cui il trasferimento di chiamata.

Oct 25

Asterisk non ha il supporto per l’RCF 3389. Se un client (soft-phone o telefono voip) che supporta il Confort Noise si collega ad Asterisk, il log riporterà l’avviso Comfort noise support incomplete in Asterisk (RFC 3389).

Uno degli inconvenienti (o almeno, ho trovato solo questo per ora) è la possibile trasmissione frammentata della musica d’attesa. Pertanto, è consigliabile disattivare sul client questa funzionalità.

Oct 25

Per il corretto funzionamento di VoiceOne dopo l’installazione di Asterisk da sorgenti, è necessario installare i pacchetti zip, unzip, mpg123 con il seguente comando:


apt-get install zip unzip mpg123

Inoltre, per una corretta gestione della musica d’attesa, è necessario procedere alla creazione manuale di alcune cartelle che non vengono automaticamente create ne dal setup di Asterisk (da sorgenti) ne da quello di VoiceOne:


cd /var/lib/asterisk/mohmp3
mkdir voiceone
mkdir voiceone/default
cd /var/lib/asterisk
mkdir voiceon
mkdir voiceone/default

A questo punto, la gestione della musica d’attesa dall’interfaccia web non dovrebbe più presentare l’errore PHP Warning: Invalid argument supplied for foreach() in /var/www/html/voiceone/settings/moh/edit/index.php on line 48, così come non dovrebbe più dare problemi la gestione dei plugin.

Oct 24

1. Creare un database che verrà utilizzato da VoiceOne (e da Asterisk) per la gestione delle impostazioni

mysqladmin create voiceone

2. Aggiungere questa riga al file /etc/sudoers:


www-data ALL=NOPASSWD: /var/www/voiceone_webservices/config/script/vo-tools.sh

Il file /etc/sudoers esiste se sudo è installato. Per installarlo su Debian, :

apt-get install sudo

Da notare che www-data è l’utente con cui gira Apache, per cui se Apache è in esecuzione con un altro utente, è necessario modificare la riga appena inserita. Inoltre, il percorso alla document root di VoiceOne va impostata sul percorso in cui sarà installato voiceone e voiceone_webservices.

3. Aggiungere le seguenti righe al file /etc/asterisk/modules.conf nella sezione moduli:

preload => res_config_mysql.so

4. Modificare la sezione setting del file /etc/asterisk/extconfig.conf aggiungendo o modificando queste righe:


agents.conf => mysql,voiceone,ast_config
extensions.conf => mysql,voiceone,ast_config
features.conf => mysql,voiceone,ast_config
iax.conf => mysql,voiceone,ast_config
meetme.conf => mysql,voiceone,ast_config
misdn.conf => mysql,voiceone,ast_config
musiconhold.conf => mysql,voiceone,ast_config
queues.conf => mysql,voiceone,ast_config
sip.conf => mysql,voiceone,ast_config
zapata.conf => mysql,voiceone,ast_config
iaxusers => mysql,voiceone,iax_buddies
iaxpeers => mysql,voiceone,iax_buddies
sipusers => mysql,voiceone,sip_buddies
sippeers => mysql,voiceone,sip_buddies
voicemail => mysql,voiceone,voicemail_users
extensions => mysql,voiceone,extensions_table

5. Creare il file /etc/asterisk/res_mysql.conf


[general]
dbhost = localhost
dbname = voiceone
dbuser = root
dbpass = voiceone
dbport = 3306
dbsock = /var/lib/mysql/mysql.sock

I parametri vanno personalizzati per concedere l’accesso al database mySql creato al punto 1

6. Creare il file /etc/asterisk/cdr_mysql.conf:


[global]
hostname=localhost
dbname=voiceone
table=cdr
user=root
password=voiceone
port=3306
sock=/var/lib/mysql/mysql.sock
userfield=1

I parametri vanno personalizzati per concedere l’accesso al database mySql creato al punto 1

7. Modificare il file /etc/asterisk/manager.conf:


[general]
enabled=yes

[admin]
secret=qwerty_123_mnbvc
deny=0.0.0.0/0.0.0.0
permit=127.0.0.1/255.255.255.0
read=system,call,log,verbose,command,agent,user
write=system,call,log,verbose,command,agent,user

8. Scaricare e decomprimere l’ultima release di VoiceOne reperibile all’indirizzo nella document root di Apache. Verranno create due cartelle, voiceone/ e voiceone_webservice/

9. Rinominare sia il file config.inc.php.default in DOCUMENT_ROOT/voiceone/admin/config che il file DOCUMENT_ROOT/voiceone_webservices/config in config.inc.php

10. Modificare il file DOCUMENT_ROOT/voiceone/admin/config/config.inc.php (E’ consigliato settare il parametro $soapHostname con l’indirizzo IP invece di localhost)

11. Modificare il file DOCUMENT_ROOT/voiceone_webservices/config/config.inc.php

12. Modificare il file DOCUMENT_ROOT/voiceone_webservices/config/script/vo-tools.sh e inserire il percorso assoluto allo script nella variabile VOCFGDIR

13. Verificare il percorso specificato nel file DOCUMENT_ROOT/voiceone_webservices/config/script/vo.cfg

14. Riavviare Apache

15. Aprire da un browser l’indirizzo http://mioserver/voiceone/setup.php e seguire le istruzioni presentate

Traduzione dell’articolo VoiceOne: Quick Install Guide reperibile sul sito http://docs.voiceone.it/

Oct 24

Per compilare Asterisk è necessario che le seguenti dipendenze siano soddisfatte:

- I sorgenti del kernel
- Gli headers del kernel
- Bison
- Openssl ed openssl-dev oppure libssl-dev

E’ sufficiente digitare come utente root:

apt-get install gcc g++ make libncurses5-dev

A questo punto, occorre scaricare Asterisk dal sito ufficiale http://www.asterisk.org/downloads.

cd /usr/src/
wget http://downloads.digium.com/pub/asterisk/releases/asterisk-1.4.13.tar.gz

Scompattare l’archivio appena scaricato col comando:


tar xzvf asterisk-1.4.13.tar.gz

verrà creata una nuova cartella dal nome “asterisk-1.4.13″. A questo punto, entrare nella cartella e avviare la configurazione pre-compilazione:


cd asterisk-1.4.13
./configure

questo script controlla l’usabilità delle librerie di sistema, creando un file di nome ’Makefile’, che verrà usato successivamente dal comando ’make’ per compilare Asterisk, ed è capace di adattarsi alla distribuzione GNU/Linux sul quale si trova. Al termine dell’esecuzione dello script dovreste leggere a video qualcosa tipo:


configure: OS type : linux-gnu
configure: Host CPU : i686

A questo punto, è possibile procedere con la compilazione vera e propria, digitando il comando:


make menuselect

In questa fase, è possibile specificare quali moduli compilare, anche se l’impostazione predefinita dovrebbe andar bene. Una volta completata la scelta, uscire applicando le modifiche ed eseguire il make vero e proprio:

make

Su un pc recente, la compilazione dura pochi minuti. Al termine dell’esecuzione dello script a video si dovrebbe leggere qualcosa tipo:


+--------- Asterisk Build Complete ---------
+ Asterisk has successfully been built, and
+ can be installed by running:
+
+ make install
+-------------------------------------------

A questo punto, avviare l’installazione di Asterisk con il comando

make install

Al termine dell’esecuzione dello script dovrebbe essere possibile leggere a video qualcosa tipo:


+---- Asterisk Installation Complete -------+
...

Installiamo infine i files di configurazione di esempio (utili per la configurazione) e i script di avvio personalizzati per la distribuzione in uso con i comandi:


make samples
make config

A questo punto, per testare il funzionamento di Asterisk digitare il comando


asterisk -vvvc

che dovrebbe restituire, alla fine, la riga


Asterisk Ready.
*CLI>

ovvero, l’interfaccia a riga di comando di Asterisk. Per uscire digitare il comando:


stop now

Il seguente materiale è stato adattato dall’articolo Guida all’installazione di Asterisk reperito sul sito http://www.cupovoip.com

A questo punto, è necessario installare (sempre dai sorgenti) il pacchetto asterisk-addons che comprendono la possibilità di integrare Asterisk a mySql come repository della configurazione.

Per il download e la compilazione del pacchetto, sono necessari i pacchetti subversion e libmysqlclient15-dev. Per installarli, il comando è il seguente:

apt-get install subversion libmysqlclient15-dev

Ovviamente, è necessaria un’installazione funzionante di mySQL e di Asterisk. E’ necessario anche il modulo Perl DBD::mysql, per installarlo:


perl -MCPAN -e "install DBD::mysql"

A questo punto, scarichiamo con svn i sorgenti di asterisk-addons:


cd /usr/src
svn checkout http://svn.digium.com/svn/asterisk-addons/branches/1.4 asterisk-addons

A download completato, accedere alla cartella /usr/src/asterisk-addons per iniziare la compilazione:


cd asterisk-addons
./configure
make menuselect

E’ opportuno verificare che tutti i moduli siano selezionati. Nel caso, verificare che le dipendenze richieste siano soddisfatte. Confermare le scelte, e avviare la compilazione vera e propria col comando


make clean
make
make install

Traduzione dell’articolo asterisk-addons apparso sul sito http://www.voip-info.org/

Oct 23

Grazie all’utility Front Row Enabler 1.5 (freeware) di Andrew Escobar è possibile installare l’ultima release di Front Row su tutti i Mac sui cui gira Mac OS X 10.4.5 o superiore.

Prima di tutto occorre scaricare l’utility in questione, che la trovate all’indirizzo http://andrewescobar.com/frontrow/. Questo il link per il download diretto: FrontRow Enabler 1.5.

Poi, occorre scaricare l’aggiornamento Apple a FrontRow, che al momento in cui scrivo è arrivato alla versione 1.3.1. Lo trovate alla pagina Apple – Support – FrontRow 1.3.1

Una volta che l’aggiornamento è scaricato, è necessario apportare alcune modifiche alla procedura descritta nella guida di FrontRow Enabler:

1. Aprire il pacchetto FrontRowUpdate1.3.1.dmg e copiare il file FrontRowUpdate1.3.1.pkg sul desktop
2. Cliccando col tasto destro sul file .pkg appena copiato, scegliere la voce Mostra contenuto pacchetto
3. Aprire Content, quindi RINOMINARE il file FrontRowUpdate1.3.1.dist in FrontRowUpdate1.3.dist, quindi chiudere il Finder
4. Rinominare il file FrontRowUpdate1.3.1.pkg salvato sul desktop in FrontRowUpdate1.3.pkg
5. Aprire Enabler1.5.dmg ed avviare Enabler, quindi scegliere Install Front Row
6. Ripristinare i nomi modificati dai punti 3 e 4, e avviare il pacchetto FrontRowUpdate1.3.1.pkg. Dovrebbe avviarsi la procedura di installazione di FrontRow.
7. Al termine dell’installazione, aprire nuovamente Enabler1.5.dmg e avviate Enabler, quindi scegliere Enable Front Row
8. In Preferenze di Sistema/Audio spuntare l’opzione Riproduci effetti sonori di Front Row e sempre da Preferenze di Sistema/Tastiera e Mouse/ Abbreviazioni da tastiera mettere il segno di spunta a Front Row
9. Fate il logout e riaccedere alla sessione, avviare FrontRow col tasto MELA + ESC

Attenzione, come specificato nello stesso sito di Andrew Escobar, questi sono i requisiti:

  • Mac OS X 10.4.8, 10.4.9 or 10.4.10
  • PowerPC based Mac
  • iTunes 6.0.4 or later
  • iPhoto 6.0.2 or later
  • Core Image capable graphics card
Oct 15

Creando una connessione remota ad un pc basato su Windows (XP o 2003 Server) da un PC che non sta eseguendo Windows Server 2003, la stampante locale potrebbe non venire reindirizzata nella sessione remota.

Il problema si verifica quando la porta stampante sul PC locale non inizia con COM, LPT o USB. Per default infatti, le porte che non inziano con COM, LPT o USB vengono reindirizzate solo in Windows Server 2003. Per default, le stampanti multifunzione potrebbero non essere reindirizzate dal computer locale perchè usano una porta denominata DOT4.

Per risolvere il problema, occorre forzare tutte le porte del client affinchè vengano filtrate per essere reindirizzate. Per farlo, occorre aggiungere un valore di tipo DWORD chiamato FilterQueueType alla chiave di registro HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default\AddIns\RDPDR ed impostarne il valore a FFFFFFFF.

  1. Cliccare su Start, Run, digitare regedit, e quindi premere OK.
  2. Trovare e quindi selezionare la seguente chiave di registro: HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default\AddIns\RDPDR
  3. Dal menù Modifica, cliccare su Nuovo e quindi selezionare Valore DWORD.
  4. Digitare FilterQueueType, quindi premere ENTER.
  5. Dal menù Modifica selezionare Modifica.
  6. Digitare FFFFFFFF, e quindi cliccare su OK.

In questo modo, tutte le porte del client verranno reindirizzate nella sessione remota.

Traduzione dall’articolo in inglese della knowledge base Microsoft Printers That Use Ports That Do Not Begin With COM, LPT, or USB Are Not Redirected in a Remote Desktop or Terminal Services Session

Oct 15

L’integrazione con Active Directory è relativamente facile. Occorre innanzitutto entrare in amministrazione del server OpenFire accedendo via web all’indirizzo http://ip_server:9090/. Da qui, nella sezione Server Settings cliccare sulla voce Profile Settings

Da questa pagina, è sufficiente attivare l’opzione Directory Server (LDAP), ed indicare i parametri per l’accesso al server Windows ADS e la lettura degli utenti del dominio:

  • Indirizzo IP del server
  • Porta di comunicazione (solitamente la 389)
  • Posizione degli account utente da utilizzare (Base DN) – va specificato con la sintassi LDAP
  • Posizione di un account amministratore per l’accesso ad Active Directory (Admin DN) – va specificato con la sintassi LDAP

Per esempio, se gli utenti sono inseriti nella posizione di default, ovvero nella cartella Users (è possibile controllarlo dallo snap-in Utenti e Computer di Active Directory), così come l’utente Administrator del dominio, i due parametri (Base DN e Admin DN) vanno impostati così (premesso che il dominio AD sia dominio.local):

  • Base DN: cn=Users; dc=dominio, dc=local
  • Admin DN: cn=Administrator, cn=users, dc=dominio, dc=local

Nel caso in cui gli utenti siano invece organizzati all’interno di una Organizational Unit chiamata Utenti AZIENDA, allora il parametro Base DN varierà così:

  • Base DN: ou=Utenti AZIENDA; dc=dominio; dc=local
  • Admin DN: cn=Administrator, ou=Utenti AZIENDA, dc=dominio, dc=local

Maggiori informazioni sono reperibili direttamente sul sito della Ignite Realtime, nella sezione LDAP della guida.

Oct 15

Innanzitutto, OpenFire necessità di una Java Virtual Machine funzionante. Per installarla, è sufficiente scaricare l’ultima versione dal sito www.java.com/it. Una volta scaricato il pacchetto, occorre eseguirlo dal terminale nella cartella in cui va installata la JVM.


cd /usr/java/
chmod a+x jre-1_5_0-linux-i586.bin
./jre-1_5_0-linux-i586.bin

Al termine del processo apparirà Done.

Procediamo con l’installazione di OpenFire. Scaricate il pacchetto più recente disponibile sul sito della Ignite Realtime. Al momento, la 3.3.3. Spostate il pacchetto nella cartella in cui verrà installato il server, nel caso di questa guida /opt


cd /opt
tar xzvf openfire_3_3_2.tar.gz

Verrà creata una sottodirectory chiamata openfire.
Il passo successivo è creare un utente ed un gruppo che saranno utilizzati dal servizio. All’utente assegneremo come directory home la directory di installazione di OpenFire.


groupadd jabber
useradd -d /opt/openfire -g jabber jabber
chown -R jabber:jabber /opt/openfire

A questo punto, creeremo un database per OpenFire su mySql a cui assegneremo il diritto di accesso all’utente jabber creato prima:


mysql -u root -p yourmysqlrootpw
CREATE DATABASE jabber;
GRANT all on jabber.* to jabber@localhost IDENTIFIED BY "pwfornewuser";

Ora, avviamo il server impersonando l’utente jabber


su - jabber
cd /opt/openfire/bin
./openfire start

A questo punto, verifichiamo che il server sia effettivamente in esecuzione col comando


netstat -tulpen

Troveremo un processo java in ascolto sulla porta 9090 e 9091
A questo punto, il server è attivo e funzionante.

Completiamo l’installazione da un qualsiasi browser web digitando l’indirizzo http://:9090 L’installazione è guidata, prevede di specificare il percorso per l’accesso al db di mySql e il backend da usare per gli utenti (è possibile l’integrazione con Active Directory).Le porte 5222 e 5223 non devono essere bloccate dalle regole di firewalling, mentre per le connessioni server-to-server o per il trasferimento di file, anche le porte 5269 e 7777 devono rimanere aperte.

Traduzione del post HowTo: Set up the openfire (ex wildfire) jabber-server on debian pubblicato sul blog blog.chaoz.org

Una serie di client per Linux e per Windows sono referenziati direttamente nel sito Jabber.org nell’apposita sezione Software :: Clients. Per Windows, segnalo Pandion.

Oct 05

Una delle problematiche più diffuse quando si realizza un sito con protezione, è gestire i download di file e documenti autorizzandolo ai soli utenti abilitati o a seconda di regole personalizzate. Se i file o i documenti risiedono in una cartella del sito, facilmente vi è possibile accedervi da browser una volta “scoperto” il nome del file. Per evitare questo, è sufficiente scrivere una pagina asp che si occupi di verificare se l’utente può o meno accedere al file.
In caso affermativo, il file verrà inviato al client.


<%
Function ReadBinaryFile(FileName)Const adTypeBinary = 1'Create Stream object
Dim BinaryStream
Set BinaryStream = CreateObject("ADODB.Stream")'Specify stream type - we want To get binary data.
BinaryStream.Type = adTypeBinary

'Open the stream
BinaryStream.Open

'Load the file data from disk To stream object
BinaryStream.LoadFromFile FileName

'Open the stream And get binary data from the object
ReadBinaryFile = BinaryStream.Read

End Function

'Logica di gestione
'Verifico se l'utente può accedere al file e setto BlnOK a True o a False
BlnOK = True

If BlnOK Then
Response.Buffer = True
Response.BinaryWrite ReadBinaryFile(Session("File"))
Else
Response.Write "Errore!"
End If

%>

Utilizzando le variabili di sessione, si passa il nome del file. All’interno della sezione Logica di gestione si concede o meno il download. La funzione ReadBinaryFile leggerà dal filesystem del server il file (che può essere anche in una posizione di rete, purchè accedibile e leggibile dall’utente con cui lavora il sito su IIS) e lo invierà al client con la funzione Response.BinaryWrite.