Wake on Lan-Wake over internet su Debian

 

wake on lan su debian

 

 

Per chi ha un PC o un serverino e volesse accenderlo al bisogno da remoto ha bisogno di Wake on Lan. Per potere ottenere questo c'è bisogno di tre cose fondamentali:

 

  1. Wake on lan deve essere abilitato nel Bios, e che la scheda di rete supporti Wol.
  2. Serve un IP statico oppure per chi ha una adsl casalinga può sempre rivolgersi ad un servizio DDNS come DynDNS oppure  Noip.com.
  3. Serve un router in grado di inoltrare i Magic Packet, e questo oramai è quasi impossibile da ottenere dato che la maggior parte dei modem/router casalinghi sono bloccati e quindi non in grado di inviare i magic packet. Per ovviare a questo problema consiglio un piccolo acquisto di qualche decina di euro, il Linksys E1200-EZ versione v2. Una volta in mano, su questo router si può installare il nuovo firmware opensource DD-WRT. e poi seguire la guida specifica.

 

Per abilitare Wol su Debian Gnu-Linux:

 

# apt-get install ethtool

 

verificare che la scheda di rete sia attiva:

 

# ethtool eth0

 

root@debianserver:/home/edmond# ethtool eth0
Settings for eth0:
    Supported ports: [ TP MII ]
    Supported link modes:   10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
    Supported pause frame use: No
    Supports auto-negotiation: Yes
    Advertised link modes:  10baseT/Half 10baseT/Full
                            100baseT/Half 100baseT/Full
    Advertised pause frame use: No
    Advertised auto-negotiation: Yes
    Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                         100baseT/Half 100baseT/Full
    Link partner advertised pause frame use: Symmetric
    Link partner advertised auto-negotiation: Yes
    Speed: 100Mb/s
    Duplex: Full
    Port: MII
    PHYAD: 1
    Transceiver: internal
    Auto-negotiation: on
    Supports Wake-on: pumbg
    Wake-on: d
    Current message level: 0x00000001 (1)
                   drv
    Link detected: yes

 

come si vede è settata su "d", quindi significa che è disabilitata. Per abilitarla:

 

# ethtool -s eth0 wol g

 

per verificare il buon esito:

 

# ethtool eth0 | grep -i "wake"

 

root@debianserver:/home/edmond# ethtool eth0 | grep -i "wake"
    Supports Wake-on: pumbg
    Wake-on: g

 

adesso serve conoscere il mac address della scheda di rete:

 

# cat /sys/class/net/eth0/address

 

e poi una volta configurato il router si è pronti a svegliare il PC da remoto al bisogno.

 

enjoy 🙂

 

Rimuovere completamente Asterisk e Freepbx

 

 

rimuovere-asterisk_freepbx

 

 

Per rimuovere/disinstallare completamente Asterisk e Freepbx, installati da sorgenti, basta eseguire questi semplici passi, sempre sperando di non dimenticare qualche pezzo. Questo può servire a chi ha fatto qualche casino e vorrebbe ricominciare da capo una nuova installazione.

 

Disinstallare Freepbx:

 

# /etc/init.d/asterisk stop
# cd /usr/src/freepbx
# ./install_amp --uninstall

 

e rispondere sempre yes alle richieste dello script.

 

Rimuovere Asterisk:

 

# rm -rf /etc/asterisk
# rm -rf /usr/src/freepbx/asterisk.conf
# rm -rf /usr/sbin/asterisk
# rm -rf /usr/lib/asterisk
# rm -rf /usr/include/asterisk.h
# rm -rf /usr/include/asterisk
# rm -rf /usr/share/man/man8/asterisk.8
# rm -rf /var/spool/asterisk
# rm -rf /var/log/asterisk
# rm -rf var/run/asterisk
# rm -rf /var/{lib,log,spool}/asterisk

 

enjoy 🙂

Installare Asterisk 13 + Freepbx 12 su Debian Wheezy

 

freepbx-12

 

Dopo aver installato Asterisk 11 e Freepbx 2.11 su Debian Wheezy, mi sono deciso a provare ad installare la versione recente di Asterisk 13 con Freepbx 12. I passi sono più o meno gli stessi di quelli precedenti, ma con qualche piccolo accorgimento ed alcune modifiche, Ad ogni modo, malgrado qualche piccolo warning il tutto funziona perfettamente.

 

Aggiornare il sistema:

 

# apt-get update && apt-get upgrade -y

 

Scaricare le dipendenze ed i servizi necessari:

 

# apt-get install -y build-essential linux-headers-`uname -r` openssh-server apache2 mysql-server mysql-client bison flex php5 php5-curl php5-cli php5-mysql php-pear php-db php5-gd curl sox libgnutls26 libncurses5-dev libssl-dev libmysqlclient-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git subversion uuid-dev libjansson-dev smartmontools zip unzip rar unrar arj zoo sox

 

a metà installazione verrà chiesto di settare una password per Mysql MEMORIZZARLA/SEGNARSELA, poi per sicurezza meglio riavviare, a meno che non si è sicuri che si userà lo stesso kernel.

 

# reboot

 

Scaricare l'occorrente:  Dahdi, Libpri, Pjproject, Asterisk, Freepbx.

 

# cd /usr/src
# wget https://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/\
dahdi-linux-complete-current.tar.gz
# wget
# wget https://www.pjsip.org/release/2.3/pjproject-2.3.tar.bz2
# wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz
# wget https://mirror.freepbx.org/freepbx-12.0.21.tgz

 

Installare Dahdi:

 

# cd /usr/src
# tar xvfz dahdi-linux-complete-current.tar.gz
# cd dahdi-linux-complete-2*
# make -j4 all
# make install
# make config

 

Installare Libpri:

 

# cd /usr/src
# tar xvfz libpri-1.4-current.tar.gz
# cd libpri-1.4*
# make -j4
# make install

 

Installare Pjproject:

 

# cd /usr/src
# tar -xjvf pjproject-*
# cd /usr/src/pjproject-*
# CFLAGS='-DPJ_HAS_IPV6=0' ./configure --prefix=/usr --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr
# make dep
# make
# make install

 

Installare Asterisk:

 

# cd /usr/src
# tar xvfz asterisk-13-*
# cd asterisk-*
# ./configure
# make menuselect

 

a questo punto conviene dare un occhiata e se serve si può abilitare qualche modulo in più, come format_mp3 o i moduli extrasound:

 

freepbx-moduli

 

# make -j4
# make install
# make config
# ldconfig

 

Installazione e configurazione di Freepbx e Mysql

 

# pear uninstall db
# pear install db-1.7.14
# cd /usr/src
# tar xvfz freepbx-*
# cd freepbx
# adduser asterisk --disabled-password --gecos "Asterisk User"
# chown asterisk. /var/run/asterisk
# chown -R asterisk. /etc/asterisk
# chown -R asterisk. /var/{lib,log,spool}/asterisk
# chown -R asterisk. /usr/lib/asterisk
# chown -R asterisk. /var/www/
# sed -i 's/\(^upload_max_filesize = \).*/\1120M/' /etc/php5/apache2/php.ini
# cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig
# sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf
# /etc/init.d/apache2 restart
# export ASTERISK_DB_PW='INSERIRE_LA_PASSW_MYSQL'
# mysqladmin -p -u root create asterisk
# mysqladmin -p -u root create asteriskcdrdb
# mysql -p -u root -e "GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';"
# mysql -p -u root -e "GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';"
# mysql -p -u root -e "flush privileges;"
# ./start_asterisk start
# ./install_amp --installdb --username=asteriskuser --password=${ASTERISK_DB_PW} --dbhost='127.0.0.1' --dbname='asterisk' --freepbxip='X.X.X.X' --cgibin='/var/www/cgi-bin' --bin='/var/lib/asterisk/bin' --sbin='/usr/local/sbin' --asteriskuser=admin --asteriskpass=${ASTERISK_DB_PW} --asteriskip='127.0.0.1' --scripted

 

sostituire le X.X.X.X con l'ip della macchina che eseguirà Asterisk:

 

# ./install_amp --update-links
# amportal chown
# amportal a ma installall
# amportal restart
# amportal a ma refreshsignatures
# amportal chown

 

a questo punto fare una piccola modifica al file /etc/apache2/sites-enabled/000-default.conf, poiche la DocumentRoot deve puntare a  "/var/www/html", ed AllowOverride dovrà essere "All", come sotto:

 

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/html
        <Directory />
                Options FollowSymLinks
                AllowOverride All
        </Directory>
        <Directory /var/www/html>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all

 

# nano /etc/apache2/sites-enabled/000-default.conf
# /etc/init.d/apache2 restart

 

Da adesso in poi si potrà utilizzare AsteriskFreepbx all'indirizzo https://localhost/admin/. La prima cosa da fare è andare nel menu Admin-Module Admin e scaricare tutti i moduli. Dopo l'aggiornamento dei moduli potrebbero verificarsi degli errori nel momento in cui si applicano i cambiamenti, il tutto si risolve andando manualmente a forzarne l'aggiornamento.

Errori moduli esempi:

PHP Fatal error:  Call to undefined function core_devices_list() in /var/www/html/admin/modules/digium_phones/classes/digium_phones.php on line 102

PHP Fatal error:  Call to undefined function core_devices_list() in /var/www/html/admin/modules/callforward/functions.inc.php on line 47

The Module Named "Core" is required, but yours is disabled because it needs to be upgraded. Please upgrade Core first, and then try again.

 

Errori compilazione:

Durante la compilazione ho avuto diversi errori ma che non hanno dato problemi:

PHP Warning:  copy(/var/www/html/robots.txt): failed to open stream: No such file or directory in /usr/src/freepbx/libfreepbx.install.php on line 381

PHP Warning:  file_put_contents(/var/log/asterisk/freepbx.log): failed to open stream: Permission denied in /var/www/html/admin/libraries/utility.functions.php on line 111

 

enjoy 😉

 

Asterisk 11 con Freepbx 2.11 su Debian 7 Wheezy

 

 

Guida su Asterisk 11 con Freepbx 2.11 su Debian 7 Wheezy. Mi sono cimentato nell'installazione del centralino Asterisk con l'interfaccia Freepbx su Debian Wheezy. Dopo diversi tentativi il tutto è andato a buon fine. Di seguito riporterò i passi effettuati su una Debian 7 Wheezy appena installata. I comandi sotto sono stati eseguiti tutti da root.

 

Aggiornare il sistema:

 

# apt-get update && apt-get upgrade -y

 

Scaricare le dipendenze ed i servizi necessari:

 

# apt-get install -y build-essential linux-headers-`uname -r` openssh-server apache2 mysql-server mysql-client bison flex php5 php5-curl php5-cli php5-mysql php-pear php-db php5-gd curl sox libgnutls26 libncurses5-dev libssl-dev libmysqlclient-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git subversion uuid-dev libjansson-dev smartmontools zip unzip rar unrar arj zoo sox

 

a metà installazione verrà chiesto di settare una password per mysql. MEMORIZZARLA/SEGNARSELA.

poi:

 

# pear uninstall db
# pear install db-1.7.14

 

Scaricare l'occorrente: Asterisk, Dahdi, Libpri, Freepbx.

 

# cd /usr/src
# wget https://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/\
dahdi-linux-complete-current.tar.gz
# wget
# wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11-current.tar.gz
# wget https://mirror.freepbx.org/freepbx-2.11.0.40.tgz

 

Installare Dahdi:

 

# cd /usr/src
# tar xvfz dahdi-linux-complete-current.tar.gz
# cd dahdi-linux-complete-2.10.0.1+2.10.0.1
# make -j4 all
# make install
# make config

 

Installare Libpri:

 

# cd /usr/src
# tar xvfz libpri-1.4-current.tar.gz
# cd libpri-1.4.15
# make -j4
# make install

 

Installare Asterisk:

 

# cd /usr/src
# tar xvfz asterisk-11-current.tar.gz
# cd asterisk-11.15.0
# ./configure
# ./contrib/scripts/install_prereq install
# contrib/scripts/get_mp3_source.sh
# make menuselect
# make -j4
# make install
# make config

 

Riavviare il sistema:

 

# reboot

 

dopo il riavvio controllare che tutti i servizi sono up:

 

# service asterisk start
# service apache2 start
# service mysql start

 

per entrare nella CLI di Asterisk:

 

# asterisk -r
Ctrl>c

 

 

Creazione utente e settaggio dei permessi:

 

# adduser asterisk --disabled-password --gecos "Asterisk User"
# chown -R asterisk. /var/run/asterisk
# chown -R asterisk. /etc/asterisk
# chown -R asterisk. /var/{lib,log,spool}/asterisk
# chown -R asterisk. /usr/lib/asterisk
# mkdir /var/www/html
# chown -R asterisk. /var/www/

 

Modifiche più o meno necessarie nel file di configurazione di apache:

 

# sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php5/apache2/php.ini
# cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf_orig
# sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/apache2/apache2.conf
# service apache2 restart

 

Configurazione del database Asterisk in mysql:

 

# export ASTERISK_DB_PW=amp109
# mysqladmin -p -u root create asterisk
# mysqladmin -p -u root create asteriskcdrdb

verrà richiesta la password di mysql scelta in precedenza.

 

# mysql -u root -p

 

adesso siamo nella CLI di mysql e dare i comandi successivi, sostituire PASSWD_MYSQL con la password creata:

 

GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY
'PASSWD_MYSQL';
GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED
BY 'PASSWD_MYSQL';
flush privileges;
quit

 

restart Asterisk:

 

# /etc/init.d/asterisk restart

 

Installazione di Freepbx:

 

# cd /usr/src/
# export VER_FREEPBX=2.11
# tar xvfz freepbx-2.11.0.40.tgz
# cd /usr/src/freepbx
# mysql -p -u root asterisk < SQL/newinstall.sql
# mysql -p -u root asteriskcdrdb < SQL/cdr_mysql_table.sql
# ./install_amp --webroot /var/www

oppure:

# ./install_amp --username=asteriskuser --password=$ASTERISK_DB_PW --webroot /var/www

 

Se tutto è andato bene puntare il browser su https://localhost/admin

 

Asterisk 11 con Freepbx 2.11 su Debian 7 Wheezy

 

enjoy 😉

 

Disabilitare password utente al login su Debian

 

Per disabilitare la richiesta di password al login per uno specifico utente su una distribuzione Gnu-Linux, vi sono diverse strade. Quella più sicura e veloce è la seguente:

 

# passwd -d nome_utente

# usermod -s /sbin/nologin nome_utente

 

enjoy 😉

 

Errore: Abortire dpkg –configure -a

 

Ho deciso di abortire l'installazione di un pacchetto su Debian Wheezy, poichè mi ero accorto che la cosa prendeva troppo tempo e non sarebbe andata a buon fine:

 

$ sudo kill "pid"

 

una volta killato il processo d'installazione come è giusto che sia in questi casi appare l'invito ad eseguire:

 

$ sudo dpkg --configure -a

 

a questo punto però è successo che il comando precedente non faceva che reinstallare il medesimo pacchetto, quindi c'era bisogno di cancellarlo dalla memoria:

 

$ sudo dpkg --clear-selections

 

quindi:

 

$ sudo apt-get update

$ sudo apt-get upgrade

 

ed apparirà quasi sicuramente questo tipo di errore:

 

E: Impossibile impostare il blocco /var/cache/apt/archives/lock – open (11: Risorsa temporaneamente non disponibile)
E: Impossibile bloccare la directory /var/cache/apt/archives/


si risolve con:

 

$ sudo rm /var/cache/apt/archives/lock

 

 

Gnome 3.6 su Debian Sid/Experimental

 

Gnome 3..6.1 si trova nei repository experimental, e mi sono deciso ad installarlo, giusto per dargli un'occhiata. Al momento mancano 2 pacchetti essenziali, gnome-session-fallback e gnome-shell-extensions, comunque non ci sono problemi nell'utilizzo, e per avere l'estensioni, si può al momento anche usare il pacchetto di ubuntu. Per i temerari, quindi:

 

# apt-get install -t experimental gnome-shell gnome-icon-theme gnome-packagekit gnome-desktop3-data nautilus gnome-packagekit-tools gnome-panel-data mutter libgnome-desktop-3-dev

 

enjoy 😉

Guardare o Registrare SkyTg24 con Mplayer o Vlc

 

 

 

Guardare e registare SkyTg24 usando mplayer e vlc:

 

# apt-get install rtmpdump

 

Guardare con mplayer e vlc:

$ rtmpdump -v -r "rtmp://212.243.210.71:1935/live?_fcs_vhost=cp49989.live.edgefcs.net/streamRM1@2564" -q | mplayer -

$ rtmpdump -v -r "rtmp://212.243.210.71:1935/live?_fcs_vhost=cp49989.live.edgefcs.net/streamRM1@2564" -q | vlc -

 

Registrare con mplayer:

$ rtmpdump -v -r "rtmp://212.243.210.71:1935/live?_fcs_vhost=cp49989.live.edgefcs.net/streamRM1@2564" -q | mplayer - -dumpstream -dumpfile Skytg24.mpeg

 

Guardare registrando con mplayer: basta dare qualche secondo di vantaggio, ed aprire il file:

$ rtmpdump -v -r "rtmp://212.243.210.71:1935/live?_fcs_vhost=cp49989.live.edgefcs.net/streamRM1@2564" -o  -| mplayer - -dumpstream -dumpfile Skytg24.mpeg


enjoy 😉

Mostrare data futura da terminale

 

Dopo aver mostrato come fare per avere una data precedente usando il terminale, ed una data falsa di sistema, per completezza adesso mostrerò come ottenere una data futura:

 


$ date --date='10 seconds'

$ date --date="1 days"

$ date --date="tomorrow"

$ date --date="1 week"

$ date --date="1 month"

$ date --date="1 year"

$ date --date="this Wednesday"

$ date --date="next day"

 

enjoy 😉