Se il telefono squilla, fermare la musica e notificare la chiamata sullo schermo del pc tramite voce.


SCENARIO: Sto ascoltando la musica sul divano di casa quando il telefono squilla. 

Caso 1) La musica è troppo alta e non sento il telefono
Caso 2) Sento il telefono ma devo alzarmi per vedere chi è ed in caso rispondere (estremamente antipigro)
Caso 3) Se decido di rispondere devo trovare comunque il telecomando/tastiera per fermare la riproduzione musicale, quindi nel worst-case scenario oltre ad alzarmi per prendere il telefono non trovo neanche il telecomando quindi devo raggiungere l'amplificatore e premere fisicamente il tasto. 

...e tutto ciò è inconcepibile.

Soluzione:

Come spiegato in un precedente post avremo bisogno di alcune cose sul medicenter (che nel mio caso è windows 8) :
1) un server SSH in ascolto (su windows Bitvise è ottimo se non volete smanettare con Cygwin)
2) nircmd e psexec installati sulla macchina possibilmente in system32.

Sul nostro cellulare android invece avremo bisogno di:
1) Tasker (costo $2,99)  per versioni vecchie di android credo che sia gratuito e lo potete scaricare dal sito ufficiale http://tasker.dinglisch.net/releases/Tasker.1.6u2.apk (questa versione funziona con Android <2.2)
2) SSH plugin for tasker (se proprio non avete la possibilità di acquistare la versione full perché non avete carta di credito registrata, potete utilizzare anche la versione gratuita, però ricordatevi di rinominare psexec.exe in ls.exe sul mediacenter e quindi modificare il comando di conseguenza - questo perché ls è l'unico comando che permette la versione gratuita )

Spiegazione:

Tasker permette di creare dei profili attivabili quando un determinato evento accade sul vostro cellulare.
SSH plugin viene attivato da Tasker ed invia un comando sul vostro mediacenter tramite un layer ssh (che dovete aver installato )

in parole semplici quindi:

Quando il telefono squilla --> Se il wifi è attivo --> Invia il comando SSH (opzionale: Ripeti fino a quando il telefono smette di squillare o si risponde o si riaggancia)

Nel dettaglio (spiegazione passo passo)

Creazione task (necessitiamo di due task):

Nome: Invia comando a mediacenter

1. Variable set %RING to 1
2. Wifi set to ON
label inizio
3. WAIT 1 seconds if %WIFII  (non contiene) CONNECTION
4. Goto inizio if WIFII (non contiene) CONNECTION
5. SSH PLUGIN (poi vi spiego come configuare il plugin)
6. Wait 1 Seconds
7. Goto inizio if RING (equal) 1

Nome: Set Ring 01. Variable Set %Ring To 0

Creazione profili (necessitiamo di 3 task)

Nome: Il telefono squillaevent --> Phone --> Phone Ringing
task da attivare: Invia comando a mediacenter
Nome: il telefono non squilla più (duplicare per ogni evento)
event --> Phone --> Phone offhock
event --> Phone --> Phone Idle
task da attivare:  Set Ring 0

Configurazione Plugin:

user_del_mediacenter@ip_media_center:22
password
(password)
comando: 
psexec \\localhost\ -u "user_del_mediacenter" -p "password_del_mediacenter" -d -i 1 nircmd sendkeypress 0xB2  
(con questa azione si preme il tasto stop)

se volete che il mediacenter pronunci il nome del chiamate tramite sintetizzatore vocale usate il comando

psexec \\localhost\ -u "user_del_mediacenter" -p "password_del_mediacenter" -d -i 1 nircmd say text "Incoming Call from %CNAME" 

%CNAME è una variabile di tasker che restituisce il caller id, in caso di chiamata anonima viene valorizzata in "0". In alternativa potete utilizzare anche %CNUM, per una panoramica completa delle variabili di tasker potete consultare il relativo sito http://tasker.dinglisch.net/userguide/en/variables.html

BONUS: 
In caso di chiamata persa inviare un msgbox al mediacenter con Nome - Numero e Ora chiamata
psexec \\localhost\ -u "user_del_mediacenter" -p "password_del_mediacenter" -d -i 1 nircmd infobox "Chiamata persa da %CNAME ( %CNUM ) il giorno %CDATE alle ore %CTIME"

N.b. ho notato che in alcuni casi il plugin crasha, questo accade quando il wifi attivo ma per qualche motivo la connessione è non è attiva, per ovviare a questo basta inserire il checkbox IF ed inserire come nome variabile %WIFII (match regex) SSID  (dove SSID è il nome CaSeSeNsItIvE della wifi di casa) o ancora meglio se avete il telefono ROOTATO inserire un Ping che scatena l'evento solo se il medicenter risponde.

Altri scenari utili che si potrebbero implementare:

Richiamata automatica da skype:
Sei a casa - Ricevi una chiamata da un determinato numero -> se riattacco la chiamata --> parte skype (o Voip a vostra scelta) e una chiamata verso quel numero.








Commenti