SlideShare una empresa de Scribd logo
1 de 77
Descargar para leer sin conexión
Domótica

www.voipnovatos.es

Alberto Sagredo Castro
Alberto Sagredo Castro

¿Quién soy?	

• Alberto Sagredo Castro	

• @albersag	

• Alicantino de adopción.	

• Entusiasta de mi trabajo y autodidacta. 	

• Formación Asterisk, Kamailio.	

• Consultoría e Ingeniería en VoIP.	

• Más info http://www.linkedin.com/in/albersag
www.voipnovatos.es
Alberto Sagredo Castro

Tópicos de la domótica
• La domótica es cara.	

• La domótica es complicada.	

• La domótica sólo la tiene Bill Gates en su
casa.	


• La domótica es exclusiva.	

• La domótica es propietaria y cerrada.
www.voipnovatos.es
Alberto Sagredo Castro

Realidad de la domótica
• La domótica NO es cara.	

• La domótica NO es complicada.	

• La domótica supone un coste de un 1 % de
la vivienda.	


• La domótica es de ámbito plural.	

• La domótica puede ser lo abierta que
queráis.

www.voipnovatos.es
¿Para qué sirve?

Alberto Sagredo Castro

• Eficiencia y Ahorro energético	

• Seguridad (Intrusión, inundación,

incendio....)Accionamiento remoto de dispositivos	


• Confort, control.	

• Ocio/Comunicaciones Multimedia	

• eSalud	

• Robótica de servicios (limpieza, cortar césped.)
www.voipnovatos.es
Historia de la Domótica
Protocolo X10	

• Protocolo que nace en en los 70’s.	

• Comunicación por los cables de electricidad
(Powerline).	


• Depende del cableado iba mejor o peor.	

• Es el más “consolidado”.	

• No hay “feedback” del estado del dispositivo.	

• Usado mucho en entorno Industrial.	

• Direccionamiento limitado de dispositivos (16 x 16 ).
Protocolo 	

• Protocolo creado y controlado por Zensys. Comprado x Sigma Designs	

• Comunicación Wireless en 868 Mhz (EU) 908 Mhz (USA)	

• Red Mesh entre los dispositivos. 	

• El que mayor expansión y apoyo de fabricantes hoy en día.	

• Hay feedback del estado del dispositivo.	

• Fácil instalación y despliegue.	

• Soporte Local de vendedores. (zwave.es)	

• Opciones SW Libre Open-zwave. HW Zensys	

• Bajo Consumo	

• Zwave Alliance con más de 400 fabricantes y 900 dispositivos certificados.	

• Interoperabilidad entre fabricantes buenísima
Protocolo 	

• Especificación de 2004	

• Banda ISM 2.4 Ghz (otra cosa más en esta banda). Aunque se
permite en estándar 868 Mhz (EU) 915 Mhz (USA)	


• Controlador de hasta 65535 nodos. (subredes de 255 nodos)	

• Bajo Consumo	

• Hasta 300 Kb/s	

• Topología estrella, árbol o malla (la más usada).	

• Se espera que sea la más usada o más barata. 	

• Pocos dispositivos. Usado por wattio (Startup Bilbaína)	

• Interoperabilidad entre fabricantes por ver…	

• Especificación IPV6 04/02/2013
Protocolo 	

• IPV6 over Low Power Wireless Personal Area Network	

• Tiene IPV6!! (Olle Johansson would like it!)	

• Estándar del IETF	

• Bajo Consumo	

• Encriptación AES-CCM 128	

• Topología Mesh	

• Tráfico Bidireccional	

• ¿Estándar de futuro?	

• Muy pocos dispositivos. Dispositivos de Laboratorio.	

• Conectado mundialmente a Internet o bien PAN controlada por router
local.	


• OS Contiki

o tinyOS 6lowpan native.
Protocolo 	

• Creado por Belkin	

• Interfaz Wifi a dispositivos domóticos	

• Actualmente tres dispositivos: Interruptor de pared,
interruptor de enchufe y sensor de presencia	


• Protocolo UnPn 	

• Todavía sin API abierta	

• Afortundamente Ingeniería Inversa y Wemo Hacking	

• Para Activar necesario iPhone // Android	

• ¿Interoperabilidad? No pidáis peras al olmo
Protocolo 	

• Creado por Phillips	

• Interfaz Wifi a dispositivos domóticos	

• Control y Color de luces. Orientado a Iluminación	

• Protocolo UnPn 	

• API abierta (http://developers.meethue.com)	

• IPhone / Android needed!	

• Caro
Fabricantes Z-wave
Los más conocidos:	


• Fibaro	

• Everspring	

• Fortrezz	

• Micasaverde (Vera)	

• Zipato	

• Aeon Labs	

• Danfoss
Zipato
• Fabricantes del Zipabox	

• Gateway orientado a la “cloud”	

• API muy abierta , JSON, REST-API	

• Muy abiertos a resolución de bugs	

• En el origen muy desconcertante	

• Gestión y configuración mediante interfaz web. Rules Creator Gráfico	

• 1 año escaso en el mercado	

• Se ha consolidado como una opción a tener en cuenta	

• Dispone de Addons para Zigbee, KNX, y Backup Module.	

• Apps nativas para Android / Iphone	

• Precio aprox 199 euros
Vera Lite
• Fabricado por Micasaverde (USA)	

• Gateway orientado a nube y local	

• API JSON, XML , amplísimas opciones de integración	

• UnPn	

• Soporte de usuarios muy bueno (http://forum.micasaverde.com)	

• Gran Cantidad de Plugins	

• Interfaz Web local.	

• Soporte remoto del fabricante cuando problemas de integración	

• El que tiene más solera.	

• En proceso de cambio. Mejorando web y más modelos de Vera	

• Integración con otros protocolos mediante dongles USB o bien plugins (Wemo) (Phillips Hue)	

• Apps compatibles iPhone/Android	

• Lo puedes encontrar por 170 euros
Vera: Integración
mediante HTTP
Documentados:	


• http://wiki.micasaverde.com/index.php/Luup_Requests	

!

• ACTION: http://ip_address:3480/data_request?

id=action&output_format=xml&DeviceNum=6&serviceId=urn:upnporg:serviceId:SwitchPower1&action=SetTarget&newTargetValue=1	


!

• RUN SCENE: http://ip_address:3480/data_request?id=lu_action&serviceId=urn:micasaverdecom:serviceId:HomeAutomationGateway1&action=RunScene&SceneNum=<SceneNum>	


!

• VARIABLE GET: http://ip_address:3480/data_request?id=variableget&DeviceNum=6&serviceId=urn:micasaverdecom:serviceId:DoorLock1&Variable=Status	


!

• VARIABLE SET : http://ip_address:3480/data_request?id=variableset&DeviceNum=6&serviceId=urn:micasaverdecom:serviceId:DoorLock1&Variable=Status&Value=1	


!

• SNAPSHOT CAMERA: http://ip_address:3480/data_request?id=archive_video&cam=8&format=1
Alternativas “Do it
yourself”
Raspberry PI
• Podemos usar un stick USB Zwave como AEON
LABS y user z-wave me	

!
!

• O bien usar una “mochila”	

!
!
Z-wave Me
• Z-wave me lanzó un dispositivo Razberry conectado

directamente al puerto GPIO de la Raspberry PI (http://
razberry.z-wave.me)	


• Puede usarse el USB de AEON LABS también	

!
!
!

• http://en.z-wave.me/
Open Z-wave
• Interfaz Open Source para Zwave 	

	


(https://code.google.com/p/open-zwave)	


• Z-wave me lanzó un dispositivo Razberry conectado

directamente al puerto GPIO de la Raspberry PI (http://
razberry.z-wave.me)	


• Controlar un interruptor con Open z-wave http://
www.agilart.com/blog/open-zwave	

!
!
Open Remote
• Open Source Automation

Platform	


http://www.openremote.org/display/HOME/OpenRemote	


• Se integra con AMX, KNX, Lutron, Z-Wave, 1-Wire,

EnOcean, xPL, Insteon, X10, Infrared, Russound,
GlobalCache, IRTrans, XBMC,VLC, panStamps, Denon
AVR, FreeBox, MythTV, and more.	


• Cross Platform Windows, Linux, Mac, Raspberry Pi, Alix,
Synology, ReadyNAS, QNAP and others.
Aplicaciones
Smartphones
• Existen las propias aplicaciones de los fabricantes
(Zipato,Vera).	


• Las de Android más “potentes” que las que
rondan por Apple Store.	

!
!
!
Demo #1 : Home
Automation Phone System
Elementos Inteligentes:	

- Zipato 	

- Asterisk	

- Raspberry Pi	

- 	

- Instalador
Demo #1 : Home
Automation Phone System
Sensores:	

- Fibaro Wall Plug	

- Fortrezz Siren	

!
Demo #1 : Home
Automation Phone System
Esquema de Funcionamiento: 	


my.zipato.com
Demo #1 : Home
Automation Phone System
Demo #1 : Home
Automation Phone System

Dialplan Asterisk:	

[ivr]

!

exten => s,1,Answer()
exten => s,n,Background(demovoipnovatos)
exten => s,n,Wait(5)
exten => s,n,agi(speech-recog.agi,es)
exten => s,n,Set(PrimeraWord=${CUT(${utterance},x20,1)})
exten => s,n,Set(SegundaWord=${CUT(${utterance},xNN,2)})
exten => s,n,GotoIf($["${utterance}" = "encender luz"]?encenderluz)
exten => s,n,GotoIf($["${utterance}" = "apagar luz"]?apagarluz)
exten => s,n,GotoIf($["${utterance}" = "encender sirena"]?encendersirena)
exten => s,n,GotoIf($["${utterance}" = "encender wemo"]?encenderwemo)
exten => s,n,GotoIf($["${utterance}" = "apagar wemo"]?apagarwemo)
exten => s,n,Verbose(1,El texto reconocido es: ${utterance})
exten => s,n,Verbose(1,Con una probabilidad de acierto: ${confidence})
exten => s,n,Verbose(1,La primera palabra es ${PrimeraWord} y la segunda palabra es ${SegundaWord} )
exten => s,n,Hangup
;exten => 800,n(encenderluz),Set(foo=${CURL(http://lampara.voip2day.voipnovatos.es/encender)})
exten => s,n(encenderluz),System(wget "http://lampara.voip2day.voipnovatos.es/encender")
exten => s,n,Playback(luzencendida)
exten => s,n,Hangup()
;exten => 800,n(apagarluz),Set(foo=${CURL(http://lampara.voip2day.voipnovatos.es/apagar)})
exten => s,n(apagarluz),System(wget "http://lampara.voip2day.voipnovatos.es/apagar")
exten => s,n,Playback(luzapagada)
exten => s,n,Hangup()
exten => s,n(encendersirena),System(wget "http://sirena.voip2day.voipnovatos.es/encender")
exten => s,n,Playback(sirenaencendida)
exten => s,n,Hangup()
exten => s,n(encenderwemo),System(wget "http://wemo.voip2day.voipnovatos.es/enchufe/encender")
exten => s,n,Playback(wemoencendido)
exten => s,n,Hangup()
exten => s,n(apagarwemo),System(wget "http://wemo.voip2day.voipnovatos.es/enchufe/apagado")
exten => s,n,Playback(wemoapagado)
exten => s,n,Hangup()
Demo #1 : Home
Automation Phone System
Dialplan Asterisk:	

exten => 1,1,System(wget "http://lampara.voip2day.voipnovatos.es/encender")
exten => 1,n,Playback(luzencendida)
exten => 1,n,Hangup()

!

exten => 2,1,System(wget "http://lampara.voip2day.voipnovatos.es/apagar")
exten => 2,n,Playback(luzapagada)
exten => 2,n,Hangup()

!

exten => 3,1,System(wget "http://sirena.voip2day.voipnovatos.es/encender")
exten => 3,n,Playback(sirenaencendida)
exten => 3,n,Hangup()

!

exten => 4,1,System(wget "http://wemo.voip2day.voipnovatos.es/enchufe/encender")
exten => 4,n,Playback(wemoencendido)
exten => 4,n,Hangup()

!

exten => 5,1,System(wget "http://wemo.voip2day.voipnovatos.es/enchufe/apagar")
exten => 5,n,Playback(wemoapagado)
root@raspberrypi:/var/lib/asterisk/agi-bin#
total 16
drwxr-xr-x 2 root
root
4096 oct 17
drwxr-xr-x 12 asterisk asterisk 4096 nov 2
-rwxr-xr-x 1 root
root
7517 oct 17
root@raspberrypi:/var/lib/asterisk/agi-bin#

ls -al
17:56 .
17:06 ..
17:56 speech-recog.agi
Demo #1 : Home
Automation Phone System
Configuración Apache:	

<VirtualHost [2001:b18:406a::10]:80>
ServerAdmin webmaster@localhost
ServerName lampara.voip2day.voipnovatos.es
DocumentRoot /var/www/lampara

!

!
!

<Directory /var/www/lampara/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn,
error, crit,
# alert, emerg.
LogLevel warn

!

CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Demo #1 : Home
Automation Phone System
Script Encendido PHP	

<html>
<head>
<title>Encendido Lampara IDC IPV6</title>
</head>
<body>
<?php
echo file_get_contents('https://my.zipato.com/zipato-web/remoting/
attribute/set?serial=XXXXXXXXXXXXXX&ep=xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxx&apiKey=xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx&state=true');
?>
</body>
</html>
Demo #1 : Home
Automation Phone System
Configuración Zipato
Demo #1 : Home
Automation Phone System
Configuración FIBARO Virtual Switch
Demo #1 : Home
Automation Phone System
Demo #2 : Teleasistencia
Elementos Inteligentes:	

- Zipato 	

- Asterisk	

- Raspberry Pi 	

- Instalador
Demo #2 : Teleasistencia
Actuadores:	

- Fibaro Key Fob	

- Fortrezz Siren
Demo #2 : Teleasistencia
Esquema de Funcionamiento: 	


my.zipato.com
Demo #2 : Teleasistencia
Configuración Zipato
Demo #2 : Teleasistencia
Configuración FIBARO Keyfob	


Los HTTP Request son realizados localmente
Demo #2 : Teleasistencia
Configuración Fortrezz Siren	


Los HTTP Request son realizados localmente
Demo #2 : Teleasistencia
Regla
Demo #2 : Teleasistencia
PHP .call file :

<html>
<head>
<title>Llamada Asterisk IPV4</title>
</head>
<body>
<?php
$numbertocall = "CALLCENTER";
$context="extensiones";
$extension="105";
$vars = "";
$touchtime = "";
$time = time();
$callfile = "call_" . $time . ".call";
$startcallfile ="/tmp/" . $callfile;
$endcallfile = "/var/spool/asterisk/outgoing/" . $callfile;

!

$cfile = fopen($startcallfile,"ab");
fwrite($cfile,"Channel: SIP/Vozcom/" . $numbertocall . "n");
fwrite($cfile,"MaxRetries: 1n");
fwrite($cfile,"RetryTime: 60n");
fwrite($cfile,"WaitTime: 30n");
fwrite($cfile,"Context: " . $context . "n");
fwrite($cfile,"Extension: " . $extension . "n");
if ($vars != "")
{
fwrite($cfile,"Set: " . $vars . "n");
}
fclose($cfile);

!

chmod($startcallfile,0777);
if ($touchtime != "")
{
list($hour,$minute,$second,$month,$day,$year) = split('-',$touchtime);
$ctime = mktime($hour,$minute,$second,$month,$day,$year);
touch($startcallfile,$ctime,$ctime);
}
rename($startcallfile,$endcallfile);

!
!

?>
</body>
</html>
Demo #2 : Teleasistencia
Configuración Apache:	

<VirtualHost *:8082>
ServerAdmin webmaster@localhost
ServerName asterisk.voip2day.voipnovatos.es
DocumentRoot /var/www/asterisk
<Directory /var/www/asterisk/llamar>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
<Directory /var/www/asterisk/alarma>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

!
!
!

ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Demo #2 : Teleasistencia
PHP Encendido / Apagado	

<html>
<head>
<title>Encendido Lampara IDC IPV6</title>
</head>
<body>
<?php
echo file_get_contents(‘https://my.zipato.com/zipato-web/remoting/attribute/set?……………………..’);

!
!

?>
</body>
</html>
Demo #2 : Teleasistencia
Dialplan Asterisk	

exten => 105,1,SIPAddHeader(Call-Info:;Answer-After=0)
exten => 105,n,Dial(SIP/${EXTEN})
exten => 105,n,Hangup
Demo #3 : Energy Call
Generator
Elementos Inteligentes:	

- Zipato	

- Asterisk	

- Raspberry Pi 	

- Instalador
Demo #3 : Energy Call
Generator
Sensores:	

- Fibaro Wall Plug	

- Fortrezz Siren Alarm	

!
Demo #3 : Energy Call
Generator
Esquema de Funcionamiento: 	


my.zipato.com
Demo #3 : Energy Call
Generator
Configuración Zipato
Demo #3 : Energy Call
Generator
Regla Zipato. Forma fácil
Demo #3 : Energy Call
Generator
O bien haremos consultas mediante JSON	

<?php
#include ("config.php");
$url = 'http://my.zipato.com:8080/zipato-web/json/Initialize';
$username = 'username;
$password = 'password';
$json = json_decode(file_get_contents($url));
$sid = 'jsessionid';
$none = 'nonce';
$id = $json->{$sid};
$nonce = $json->{$none};
$temp = sha1 ($password);
$temp2 = $nonce.$temp;
$pass = sha1($temp2);
$data = array("username" => "$username", "password" => "$pass", "method" => "SHA1" );
$data_url = "username=$username&password=$pass&method=SHA1";
$ch = curl_init('http://my.zipato.com:8080/zipato-web/json/Login');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_COOKIE, 'JSESSIONID='.$id);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
$c = curl_init();
curl_setopt($c, CURLOPT_URL, "http://my.zipato.com:8080/zipato-web/rest/meters/values/");
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_COOKIE, 'JSESSIONID='.$id.'; Path=/zipato-web/; HttpOnly');
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
Demo #3 : Energy Call
Generator
O bien haremos consultas mediante JSON	

$c = curl_init();
curl_setopt($c, CURLOPT_URL, "http://my.zipato.com:8080/zipato-web/rest/meters/");
curl_setopt($c, CURLOPT_RETURNTRANSFER, true);
curl_setopt($c, CURLOPT_COOKIE, 'JSESSIONID='.$id.'; Path=/zipato-web/; HttpOnly');
curl_setopt($c, CURLOPT_HEADER, false);
$output = curl_exec($c);
$json = json_decode ($output,true);
$timestamp = time();
$date = $today = date("Y-m-d H:i:s");

!

foreach ($json as $meter) {
//var_dump($meter);
$name = $meter['name'];
foreach ($meter['attributes'] as $attribute)
{
if ($attribute['definition']['name'] == "CURRENT_CONSUMPTION")
{
$consumo = round($attribute['value'],2);
}
}

!
//echo ($consumo);
!
system("asterisk -rx 'database put consumo lampara $consumo'");
!
}
Demo #3 : Energy Call
Generator
Dialplan Asterisk	

[extensiones]

!
!

exten => _9X.,1,Dial(SIP/vozcom/${EXTEN})
exten => _9X.,n,Hangup

!

exten => _6X.,1,Dial(SIP/vozcom/${EXTEN})
exten => _6X.,n,Hangup

!

exten
exten
exten
exten

!

=>
=>
=>
=>

locucion,1,Answer()
locucion,n,Wait(2)
locucion,n,Playback(Alarma en ventana)
locucion,n,Hangup

exten => checkconsumo,1,GotoIf($[${DB(consumo/lampara)} > 0]?ok:nook)
exten => checkconsumo,n(ok),Dial(SIP/vozcom/666777111,20,tTrR)
exten => checkconsumo,n(nook),Hangup
Demo #3 : Energy Call
Generator
Crontab	

*/1 * * * * php /var/www/sensor/vera/datos/captura.php
*/1 * * * * php /var/www/sensor/zipato/datos/captura.php
*/1 * * * * /usr/sbin/asterisk -rx "console dial checkconsumo@extensiones"
Demo #4 : Wemo Phone
System
Elementos Inteligentes:	

- Wemo Switch	

- Asterisk	

- Raspberry Pi 	

- Instalador
Demo #4 : Wemo Phone
System
Esquema de Funcionamiento:
Demo #4 : Wemo Phone
System
El encendido y Apagado lo haremos mediante PHP
y un script en bash	

<html>
<head>
<title>Encendido Lampara IDC IPV6</title>
</head>
<body>
<?php
System ("/var/www/wemo/enchufe/encender/wemo.sh 10.0.1.105 ON")
?>
</body>
</html>

Es importante saber la dirección IP del WEMO y el puerto que
levanta. Lo localizaremos mirando el DHCP Server y el puerto con
nmap
Demo #4 : Wemo Phone
System

#!/bin/sh
#
# WeMo Control Script
#
# rich@netmagi.com
#
# Usage: ./wemo_control IP_ADDRESS ON/OFF/GETSTATE/GETSIGNALSTRENGTH/GETFRIENDLYNAME
#
#

!

IP=$1
COMMAND=$2

!
#PORTTEST=$(curl -s $IP:49152 | grep "404")
!
#if [ "$PORTTEST" = "" ]
#
then
PORT=49153
#else
#
PORT=49152
#fi

!

if [ "$1" = "" ]
then
echo "Usage: ./wemo_control IP_ADDRESS ON/OFF/GETSTATE/GETSIGNALSTRENGTH/GETFRIENDLYNAME"
else

!
!
!

if [ "$2" = "GETSTATE" ]
then

curl -0 -A '' -X POST -H 'Accept: ' -H 'Content-type: text/xml; charset="utf-8"' -H "SOAPACTION: "urn:Belkin:service:basicevent:
1#GetBinaryState"" --data '<?xml version="1.0" encoding="utf-8"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:GetBinaryState xmlns:u="urn:Belkin:service:basicevent:1"><BinaryState>1</
BinaryState></u:GetBinaryState></s:Body></s:Envelope>' -s http://$IP:$PORT/upnp/control/basicevent1 |
grep "<BinaryState" | cut -d">" -f2 | cut -d "<" -f1 | sed 's/0/OFF/g' | sed 's/1/ON/g'

!
!

elif [ "$2" = "ON" ]
then
Demo #4 : Wemo Phone
System
!

curl -0 -A '' -X POST -H 'Accept: ' -H 'Content-type: text/xml; charset="utf-8"' -H "SOAPACTION: "urn:Belkin:service:basicevent:
1#SetBinaryState"" --data '<?xml version="1.0" encoding="utf-8"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:SetBinaryState xmlns:u="urn:Belkin:service:basicevent:1"><BinaryState>1</
BinaryState></u:SetBinaryState></s:Body></s:Envelope>' -s http://$IP:$PORT/upnp/control/basicevent1 |
grep "<BinaryState" | cut -d">" -f2 | cut -d "<" -f1

!
!
!

elif [ "$2" = "OFF" ]
then

curl -0 -A '' -X POST -H 'Accept: ' -H 'Content-type: text/xml; charset="utf-8"' -H "SOAPACTION: "urn:Belkin:service:basicevent:
1#SetBinaryState"" --data '<?xml version="1.0" encoding="utf-8"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:SetBinaryState xmlns:u="urn:Belkin:service:basicevent:1"><BinaryState>0</
BinaryState></u:SetBinaryState></s:Body></s:Envelope>' -s http://$IP:$PORT/upnp/control/basicevent1 |
grep "<BinaryState" | cut -d">" -f2 | cut -d "<" -f1

!
!
!

elif [ "$2" = "GETSIGNALSTRENGTH" ]
then

curl -0 -A '' -X POST -H 'Accept: ' -H 'Content-type: text/xml; charset="utf-8"' -H "SOAPACTION:
"urn:Belkin:service:basicevent:1#GetSignalStrength"" --data '<?xml version="1.0" encoding="utf-8"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/
soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:GetSignalStrength xmlns:u="urn:Belkin:service:basicevent:
1"><GetSignalStrength>0</GetSignalStrength></u:GetSignalStrength></s:Body></s:Envelope>' -s http://$IP:$PORT/upnp/control/basicevent1 |
grep "<SignalStrength" | cut -d">" -f2 | cut -d "<" -f1

!
!
!

elif [ "$2" = "GETFRIENDLYNAME" ]
then

curl -0 -A '' -X POST -H 'Accept: ' -H 'Content-type: text/xml; charset="utf-8"' -H "SOAPACTION: "urn:Belkin:service:basicevent:
1#ChangeFriendlyName"" --data '<?xml version="1.0" encoding="utf-8"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"
s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:ChangeFriendlyName xmlns:u="urn:Belkin:service:basicevent:1"><FriendlyName>Pool
Filter</FriendlyName></u:ChangeFriendlyName></s:Body></s:Envelope>' -s http://$IP:$PORT/upnp/control/basicevent1 |
grep "<FriendlyName" | cut -d">" -f2 | cut -d "<" -f1

!

else
Demo #4 : Wemo Phone
System
!
!
!

fi

else
echo
echo
echo
echo
fi

"COMMAND NOT RECOGNIZED"
""
"Usage: ./wemo_control IP_ADDRESS ON/OFF/GETSTATE/GETSIGNALSTRENGTH/GETFRIENDLYNAME"
""
Demo #4 : Wemo Phone
System

Dialplan Asterisk:	

[ivr]

!

exten => s,1,Answer()
exten => s,n,Background(demovoipnovatos)
exten => s,n,Wait(5)
exten => s,n,agi(speech-recog.agi,es)
exten => s,n,Set(PrimeraWord=${CUT(${utterance},x20,1)})
exten => s,n,Set(SegundaWord=${CUT(${utterance},xNN,2)})
exten => s,n,GotoIf($["${utterance}" = "encender luz"]?encenderluz)
exten => s,n,GotoIf($["${utterance}" = "apagar luz"]?apagarluz)
exten => s,n,GotoIf($["${utterance}" = "encender sirena"]?encendersirena)
exten => s,n,GotoIf($["${utterance}" = "encender wemo"]?encenderwemo)
exten => s,n,GotoIf($["${utterance}" = “apagar wemo"]?apagarwemo)
exten => s,n,Verbose(1,El texto reconocido es: ${utterance})
exten => s,n,Verbose(1,Con una probabilidad de acierto: ${confidence})
exten => s,n,Verbose(1,La primera palabra es ${PrimeraWord} y la segunda palabra es ${SegundaWord} )
exten => s,n,Hangup
;exten => 800,n(encenderluz),Set(foo=${CURL(http://lampara.voip2day.voipnovatos.es/encender)})
exten => s,n(encenderluz),System(wget "http://lampara.voip2day.voipnovatos.es/encender")
exten => s,n,Playback(luzencendida)
exten => s,n,Hangup()
;exten => 800,n(apagarluz),Set(foo=${CURL(http://lampara.voip2day.voipnovatos.es/apagar)})
exten => s,n(apagarluz),System(wget "http://lampara.voip2day.voipnovatos.es/apagar")
exten => s,n,Playback(luzapagada)
exten => s,n,Hangup()
exten => s,n(encendersirena),System(wget "http://sirena.voip2day.voipnovatos.es/encender")
exten => s,n,Playback(sirenaencendida)
exten => s,n,Hangup()
exten => s,n(encenderwemo),System(wget "http://wemo.voip2day.voipnovatos.es/enchufe/encender")
exten => s,n,Playback(wemoencendido)
exten => s,n,Hangup()
exten => s,n(apagarwemo),System(wget "http://wemo.voip2day.voipnovatos.es/enchufe/apagado")
exten => s,n,Playback(wemoapagado)
exten => s,n,Hangup()
Demo #4 : Wemo Phone
System
Dialplan Asterisk:	

exten => 1,1,System(wget "http://lampara.voip2day.voipnovatos.es/encender")
exten => 1,n,Playback(luzencendida)
exten => 1,n,Hangup()

!

exten => 2,1,System(wget "http://lampara.voip2day.voipnovatos.es/apagar")
exten => 2,n,Playback(luzapagada)
exten => 2,n,Hangup()

!

exten => 3,1,System(wget "http://sirena.voip2day.voipnovatos.es/encender")
exten => 3,n,Playback(sirenaencendida)
exten => 3,n,Hangup()

!

exten => 4,1,System(wget "http://wemo.voip2day.voipnovatos.es/enchufe/encender")
exten => 4,n,Playback(wemoencendido)
exten => 4,n,Hangup()

!

exten => 5,1,System(wget "http://wemo.voip2day.voipnovatos.es/enchufe/encender")
exten => 5,n,Playback(wemoapagado)
root@raspberrypi:/var/lib/asterisk/agi-bin#
total 16
drwxr-xr-x 2 root
root
4096 oct 17
drwxr-xr-x 12 asterisk asterisk 4096 nov 2
-rwxr-xr-x 1 root
root
7517 oct 17
root@raspberrypi:/var/lib/asterisk/agi-bin#

ls -al
17:56 .
17:06 ..
17:56 speech-recog.agi
Demo #5 : Phone Call Alarm
Elementos Inteligentes:	

- Vera Lite 	

- Asterisk	

- Raspberry Pi 	

- Instalador
Demo #5 : Phone Call Alarm
Actuadores:	

- Fibaro Door Sensor	

- Everspring Motion Sensor
Demo #5 : Phone Call Alarm
Esquema de Funcionamiento:
Demo #5 : Phone Call Alarm
Configuración Vera Lite
Demo #5 : Phone Call Alarm
Localizar ServID y ID de dispositivo a consultar	


https://sta1.mios.com/locator_json.php?username=xxx
{“units”:
[{“serialNumber":"xxxxxxx","FirmwareVersion":"1.5.622","name":"MTX","ipAddress":"x.x.x.x","users":
["username"],"active_server":"fwd7.mios.com","forwardServers":
[{"hostName":"fwd7.mios.com","primary":true},{"hostName":"fwd5.mios.com","primary":false}]}]}

http://x.x.x.x:3480/data_request?
id=user_data2&output_format=xml
http://x.x.x.x:3480/data_request?
id=user_data2&output_format=json
Demo #5 : Phone Call Alarm
Acceso Remotamente	

https://fwdx.mios.com/username/password/IDUNIT/
data_request?id=lu_status&output_format=json
Demo #5 : Phone Call Alarm
PHP Polling Script
<?php

!
$url = 'http://10.x.x.x:3480/data_request?id=variableget&DeviceNum=148&service
!
$abierta = file_get_contents('http://10.x.x.x:3480/data_request?id=variableget
!
if ($abierta == "0")
{
echo ("nnNo esta Abierta la Ventana. No hacemos nadann");
}

!
else{
!

echo ("nnEsta abierta la ventana. LLamamos al movilnn");
echo file_get_contents('http://10.x.x.x/asterisk/llamar');

!
}
!

?>

$url = 'http://10.x.x.x:3480/data_request?id=variableget&DeviceNum=148&serviceId=urn:micasaverde-com:serviceId:SecuritySensor1&Variable=Tripped';
Demo #5 : Phone Call Alarm
PHP LastTime Tripped Script
<?php

!

$url = 'http://10.x.x.x:3480/data_request?id=variableget&DeviceNum=148&service
$unixtime = time();

!

$abierta = file_get_contents('http://10.x.x.x:3480/data_request?id=variableget

!

$diftiempo=$unixtime - $abierta;

!

echo ($diftiempo);

!

if ($diftiempo > 60 )
{
echo ("nnNo esta Abierta la Ventana. No hacemos nadann");
}

!

else{

!

echo ("nnEsta abierta la ventana. LLamamos al movilnn");
echo file_get_contents('http://10.x.x.x/asterisk/llamar');

!

}
Demo #5 : Phone Call Alarm

Configuración Apache:	


<VirtualHost [2001:b18:406a::11]:80>
ServerAdmin webmaster@localhost
ServerName sensor.voip2day.voipnovatos.es

!

!

!
!
!

DocumentRoot /var/www/sensor
<Directory /var/www/sensor/datos>
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/sensor>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

!
Demo #5 : Phone Call Alarm
PHP .call file :

<html>
<head>
<title>Llamada Asterisk IPV4</title>
</head>
<body>
<?php
$numbertocall = "MOVIL";
$context="extensiones";
$extension="locucion";
$vars = "";
$touchtime = "";
$time = time();
$callfile = "call_" . $time . ".call";
$startcallfile ="/tmp/" . $callfile;
$endcallfile = "/var/spool/asterisk/outgoing/" . $callfile;

!

$cfile = fopen($startcallfile,"ab");
fwrite($cfile,"Channel: SIP/Vozcom/" . $numbertocall . "n");
fwrite($cfile,"MaxRetries: 1n");
fwrite($cfile,"RetryTime: 60n");
fwrite($cfile,"WaitTime: 30n");
fwrite($cfile,"Context: " . $context . "n");
fwrite($cfile,"Extension: " . $extension . "n");
if ($vars != "")
{
fwrite($cfile,"Set: " . $vars . "n");
}
fclose($cfile);

!

chmod($startcallfile,0777);
if ($touchtime != "")
{
list($hour,$minute,$second,$month,$day,$year) = split('-',$touchtime);
$ctime = mktime($hour,$minute,$second,$month,$day,$year);
touch($startcallfile,$ctime,$ctime);
}
rename($startcallfile,$endcallfile);

!
!

?>
</body>
</html>
Demo #5 : Phone Call Alarm
Dialplan Asterisk	

[extensiones]

!
!

exten => _9X.,1,Dial(SIP/vozcom/${EXTEN})
exten => _9X.,n,Hangup

!

exten => _6X.,1,Dial(SIP/vozcom/${EXTEN})
exten => _6X.,n,Hangup

!

exten
exten
exten
extne

!

=>
=>
=>
=>

locucion,1,Answer()
locucion,n,Wait(2)
locucion,n,Playback(Alarma en ventana)
locucion,n,Hangup
Alberto Sagredo Castro

Seguridad
puede controlar como consume
• Si nuestra casa se puede abrir, se no dejarlo abierto a cualquiera
energía, hay que tener cuidado y
(Sentido Común)	


• Si usamos sistemas cloud, creemos en el cloud… con todo lo que
ello conlleva.	

poner contraseñas o
• Si usamos Apache para HTTP request, forma didacta exenta de
certificados (Lo mostrado aquí es una
seguridad)	


• Zwave implícitamente lleva seguridad. Sobre todo dispositivos de
apertura de puertas. 	

• http://research.sensepost.com/cms/resources/conferences/2013/
bh_zwave/Security%20Evaluation%20of%20Z-Wave_WP.pdf
www.voipnovatos.es
Alberto Sagredo Castro

Futuro
• Esta por ver que protocolo se llevará el gato al agua.	

• Seguramente coexistencia de muchos de ellos, y el
integrador jugará a integrar y pelearse para hacerlos
funcionar. 	


• 6LowPAN interesante ver como evoluciona el mercado.	

• 6LowPAN y Zigbee soporte IPV6 (armados para el
futuro).	


• ¿Wemo abrirá su API?	

• ¿Phillips Hue más dispositivos?
www.voipnovatos.es
Alberto Sagredo Castro

¿Preguntas?

www.voipnovatos.es
Alberto Sagredo Castro

Gracias
• A Voip2day por invitarme un año más.	

• A mis hijos y esposa por hacerme féliz y darme razones
para luchar por ellos.	


• A mi mujer por aguantar los cables y las ondas que instalo
en casa.	


• A vosotros por la presencia y atención.	

• A los visitantes de voipnovatos.es por su fidelidad.	

• A voz.com por su apoyo incondicional.	

• A zwave.es por el asesoramiento en domótica.
www.voipnovatos.es
Alberto Sagredo Castro

@ albersag

www.voipnovatos.es

Más contenido relacionado

La actualidad más candente

Sistema de localización de objetos basado en tecnología de Código Abierto de ...
Sistema de localización de objetos basado en tecnología de Código Abierto de ...Sistema de localización de objetos basado en tecnología de Código Abierto de ...
Sistema de localización de objetos basado en tecnología de Código Abierto de ...RFIC-IUMA
 
Hardware Hacking con Arduino y RAD
Hardware Hacking con Arduino y RADHardware Hacking con Arduino y RAD
Hardware Hacking con Arduino y RADestialvarez
 
Conectando a la red telefónica: Dispositivos Openvox
Conectando a la red telefónica: Dispositivos OpenvoxConectando a la red telefónica: Dispositivos Openvox
Conectando a la red telefónica: Dispositivos OpenvoxPaloSanto Solutions
 
Cctv 2012 integrador
Cctv  2012   integradorCctv  2012   integrador
Cctv 2012 integradorVicos FFuhrer
 
LILIN Cámara IP IR Domo panorámica de 12MP 360°
LILIN Cámara IP IR Domo panorámica de 12MP 360°LILIN Cámara IP IR Domo panorámica de 12MP 360°
LILIN Cámara IP IR Domo panorámica de 12MP 360°David Godoy San Andrés
 
Navaja Negra 2018 - Análisis Forense en dispositivos Android en casos extremo...
Navaja Negra 2018 - Análisis Forense en dispositivos Android en casos extremo...Navaja Negra 2018 - Análisis Forense en dispositivos Android en casos extremo...
Navaja Negra 2018 - Análisis Forense en dispositivos Android en casos extremo...Buenaventura Salcedo Santos-Olmo
 
Workshop iniciacion arduino d1
Workshop iniciacion arduino d1Workshop iniciacion arduino d1
Workshop iniciacion arduino d1José Pujol Pérez
 
Seminario de arduino DeustoTech
Seminario de arduino DeustoTechSeminario de arduino DeustoTech
Seminario de arduino DeustoTechAdolfo García
 
Jaime Peñalba y Javier Rodríguez - Live Free or Die Hacking [RootedCON 2012]
Jaime Peñalba y Javier Rodríguez - Live Free or Die Hacking [RootedCON 2012]Jaime Peñalba y Javier Rodríguez - Live Free or Die Hacking [RootedCON 2012]
Jaime Peñalba y Javier Rodríguez - Live Free or Die Hacking [RootedCON 2012]RootedCON
 

La actualidad más candente (19)

Sistema de localización de objetos basado en tecnología de Código Abierto de ...
Sistema de localización de objetos basado en tecnología de Código Abierto de ...Sistema de localización de objetos basado en tecnología de Código Abierto de ...
Sistema de localización de objetos basado en tecnología de Código Abierto de ...
 
Intro al beaglebone black makerspe
Intro al beaglebone black   makerspeIntro al beaglebone black   makerspe
Intro al beaglebone black makerspe
 
Hardware Hacking con Arduino y RAD
Hardware Hacking con Arduino y RADHardware Hacking con Arduino y RAD
Hardware Hacking con Arduino y RAD
 
Conectando a la red telefónica: Dispositivos Openvox
Conectando a la red telefónica: Dispositivos OpenvoxConectando a la red telefónica: Dispositivos Openvox
Conectando a la red telefónica: Dispositivos Openvox
 
Ethernet Shield
Ethernet ShieldEthernet Shield
Ethernet Shield
 
Cctv 2012 integrador
Cctv  2012   integradorCctv  2012   integrador
Cctv 2012 integrador
 
Ievo m manual instalacion micro
Ievo m manual instalacion microIevo m manual instalacion micro
Ievo m manual instalacion micro
 
LILIN Cámara IP IR Domo panorámica de 12MP 360°
LILIN Cámara IP IR Domo panorámica de 12MP 360°LILIN Cámara IP IR Domo panorámica de 12MP 360°
LILIN Cámara IP IR Domo panorámica de 12MP 360°
 
Overview For Pdvsa 2007
Overview For Pdvsa 2007Overview For Pdvsa 2007
Overview For Pdvsa 2007
 
Puertos comunicación
Puertos comunicaciónPuertos comunicación
Puertos comunicación
 
Taller arduino I - CyLicon Valley
Taller arduino I - CyLicon ValleyTaller arduino I - CyLicon Valley
Taller arduino I - CyLicon Valley
 
Navaja Negra 2018 - Análisis Forense en dispositivos Android en casos extremo...
Navaja Negra 2018 - Análisis Forense en dispositivos Android en casos extremo...Navaja Negra 2018 - Análisis Forense en dispositivos Android en casos extremo...
Navaja Negra 2018 - Análisis Forense en dispositivos Android en casos extremo...
 
Presentacion Hacking Asterisk
Presentacion Hacking AsteriskPresentacion Hacking Asterisk
Presentacion Hacking Asterisk
 
Kevin lopez 10 5
Kevin lopez 10 5Kevin lopez 10 5
Kevin lopez 10 5
 
Workshop iniciacion arduino d1
Workshop iniciacion arduino d1Workshop iniciacion arduino d1
Workshop iniciacion arduino d1
 
01.asterisk introducción
01.asterisk introducción01.asterisk introducción
01.asterisk introducción
 
Seminario de arduino DeustoTech
Seminario de arduino DeustoTechSeminario de arduino DeustoTech
Seminario de arduino DeustoTech
 
Jaime Peñalba y Javier Rodríguez - Live Free or Die Hacking [RootedCON 2012]
Jaime Peñalba y Javier Rodríguez - Live Free or Die Hacking [RootedCON 2012]Jaime Peñalba y Javier Rodríguez - Live Free or Die Hacking [RootedCON 2012]
Jaime Peñalba y Javier Rodríguez - Live Free or Die Hacking [RootedCON 2012]
 
Enviando arduino xbee-primeros-pasos-1
Enviando arduino xbee-primeros-pasos-1Enviando arduino xbee-primeros-pasos-1
Enviando arduino xbee-primeros-pasos-1
 

Destacado

configuracion y uso del buzón de voz e interfaz ARI. en asterisk y freePBX
configuracion y uso del buzón de voz e  interfaz ARI. en asterisk y freePBXconfiguracion y uso del buzón de voz e  interfaz ARI. en asterisk y freePBX
configuracion y uso del buzón de voz e interfaz ARI. en asterisk y freePBXMichael Yesid Murcia Jaque
 
Edificios inteligentes
Edificios inteligentesEdificios inteligentes
Edificios inteligentesluisin33
 
Domótica (edificios inteligentes)
Domótica (edificios inteligentes)Domótica (edificios inteligentes)
Domótica (edificios inteligentes)Dan14lra
 
Asterisk Rest Interface - ARI
Asterisk Rest Interface - ARIAsterisk Rest Interface - ARI
Asterisk Rest Interface - ARIDavid Muñoz
 
Usando Docker con sistemas Asterisk
Usando Docker con sistemas AsteriskUsando Docker con sistemas Asterisk
Usando Docker con sistemas AsteriskElio Rojano
 
Profundizando manager
Profundizando managerProfundizando manager
Profundizando managerElio Rojano
 
Tecnicas monitoreo reportes con Asterisk
Tecnicas monitoreo reportes con AsteriskTecnicas monitoreo reportes con Asterisk
Tecnicas monitoreo reportes con AsteriskNicolás Gudiño
 
Guia de aplicaciones
Guia de aplicacionesGuia de aplicaciones
Guia de aplicacionesDelta Dore
 
1 implementación de_mantenimiento_basado_en_fiabilidad_(rcm)
1 implementación de_mantenimiento_basado_en_fiabilidad_(rcm)1 implementación de_mantenimiento_basado_en_fiabilidad_(rcm)
1 implementación de_mantenimiento_basado_en_fiabilidad_(rcm)INVESTIGACION138
 
Aspectos fundamentales de la domótica
Aspectos fundamentales de la domóticaAspectos fundamentales de la domótica
Aspectos fundamentales de la domóticaLeoncio Gomez
 

Destacado (20)

Call Center en Elastix
Call Center en ElastixCall Center en Elastix
Call Center en Elastix
 
Proyecto Domótica Marcelo Bernal
Proyecto Domótica Marcelo BernalProyecto Domótica Marcelo Bernal
Proyecto Domótica Marcelo Bernal
 
Domotica
DomoticaDomotica
Domotica
 
configuracion y uso del buzón de voz e interfaz ARI. en asterisk y freePBX
configuracion y uso del buzón de voz e  interfaz ARI. en asterisk y freePBXconfiguracion y uso del buzón de voz e  interfaz ARI. en asterisk y freePBX
configuracion y uso del buzón de voz e interfaz ARI. en asterisk y freePBX
 
Edificios inteligentes
Edificios inteligentesEdificios inteligentes
Edificios inteligentes
 
Domótica (edificios inteligentes)
Domótica (edificios inteligentes)Domótica (edificios inteligentes)
Domótica (edificios inteligentes)
 
Informe GTR 2014
Informe GTR 2014Informe GTR 2014
Informe GTR 2014
 
Asterisk Rest Interface - ARI
Asterisk Rest Interface - ARIAsterisk Rest Interface - ARI
Asterisk Rest Interface - ARI
 
RadioVozip English Version
RadioVozip English VersionRadioVozip English Version
RadioVozip English Version
 
Curso de domótica y bioclimatismo
Curso de domótica y bioclimatismoCurso de domótica y bioclimatismo
Curso de domótica y bioclimatismo
 
Usando Docker con sistemas Asterisk
Usando Docker con sistemas AsteriskUsando Docker con sistemas Asterisk
Usando Docker con sistemas Asterisk
 
Profundizando manager
Profundizando managerProfundizando manager
Profundizando manager
 
VoIp Un Enfoque Practico
VoIp Un Enfoque PracticoVoIp Un Enfoque Practico
VoIp Un Enfoque Practico
 
Tecnicas monitoreo reportes con Asterisk
Tecnicas monitoreo reportes con AsteriskTecnicas monitoreo reportes con Asterisk
Tecnicas monitoreo reportes con Asterisk
 
Viviendas domoticas
Viviendas domoticasViviendas domoticas
Viviendas domoticas
 
Domotica
DomoticaDomotica
Domotica
 
Domótica
DomóticaDomótica
Domótica
 
Guia de aplicaciones
Guia de aplicacionesGuia de aplicaciones
Guia de aplicaciones
 
1 implementación de_mantenimiento_basado_en_fiabilidad_(rcm)
1 implementación de_mantenimiento_basado_en_fiabilidad_(rcm)1 implementación de_mantenimiento_basado_en_fiabilidad_(rcm)
1 implementación de_mantenimiento_basado_en_fiabilidad_(rcm)
 
Aspectos fundamentales de la domótica
Aspectos fundamentales de la domóticaAspectos fundamentales de la domótica
Aspectos fundamentales de la domótica
 

Similar a Domótica con Asterisk Voip2day 2013

Seminario - Bitsense - UADE / Fundacion Proydesa
Seminario - Bitsense - UADE / Fundacion ProydesaSeminario - Bitsense - UADE / Fundacion Proydesa
Seminario - Bitsense - UADE / Fundacion ProydesaBitsense
 
Samsung Enterprise Networks 2016
Samsung Enterprise Networks 2016Samsung Enterprise Networks 2016
Samsung Enterprise Networks 2016Angel Mendieta
 
Inseguridad wireless-sfd- final
Inseguridad wireless-sfd- finalInseguridad wireless-sfd- final
Inseguridad wireless-sfd- finalsp1b0t
 
Qnap Estación Vistualización
Qnap Estación VistualizaciónQnap Estación Vistualización
Qnap Estación VistualizaciónDavid Lira
 
Askozia y snom presentan su solución integrada
Askozia y snom presentan su solución integradaAskozia y snom presentan su solución integrada
Askozia y snom presentan su solución integradaAskozia
 
VoIP2DAY2014 Alberto Sagredo
VoIP2DAY2014   Alberto SagredoVoIP2DAY2014   Alberto Sagredo
VoIP2DAY2014 Alberto SagredoVOIP2DAY
 
Presentacion Lexon Axia Livewire 2013
Presentacion Lexon Axia Livewire 2013Presentacion Lexon Axia Livewire 2013
Presentacion Lexon Axia Livewire 2013Lexon S.A.
 
Presentacion voip
Presentacion voipPresentacion voip
Presentacion voippavel
 
Curso de VoIP / Parte 01: VoIP y Asterisk
Curso de VoIP / Parte 01: VoIP y AsteriskCurso de VoIP / Parte 01: VoIP y Asterisk
Curso de VoIP / Parte 01: VoIP y AsteriskIrontec
 
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...PaloSanto Solutions
 
Fundamentos de telefonia ip
Fundamentos de telefonia ipFundamentos de telefonia ip
Fundamentos de telefonia ipJose Luis Chauca
 
Fundamentos20de20telefonia20ip 131006193600-phpapp02
Fundamentos20de20telefonia20ip 131006193600-phpapp02Fundamentos20de20telefonia20ip 131006193600-phpapp02
Fundamentos20de20telefonia20ip 131006193600-phpapp02myconta
 

Similar a Domótica con Asterisk Voip2day 2013 (20)

Seminario - Bitsense - UADE / Fundacion Proydesa
Seminario - Bitsense - UADE / Fundacion ProydesaSeminario - Bitsense - UADE / Fundacion Proydesa
Seminario - Bitsense - UADE / Fundacion Proydesa
 
La vo ip
La vo ipLa vo ip
La vo ip
 
Samsung Enterprise Networks 2016
Samsung Enterprise Networks 2016Samsung Enterprise Networks 2016
Samsung Enterprise Networks 2016
 
VozIPv6
VozIPv6VozIPv6
VozIPv6
 
Inseguridad wireless-sfd- final
Inseguridad wireless-sfd- finalInseguridad wireless-sfd- final
Inseguridad wireless-sfd- final
 
Qnap Estación Vistualización
Qnap Estación VistualizaciónQnap Estación Vistualización
Qnap Estación Vistualización
 
Askozia y snom presentan su solución integrada
Askozia y snom presentan su solución integradaAskozia y snom presentan su solución integrada
Askozia y snom presentan su solución integrada
 
Introduccion fpga
Introduccion fpgaIntroduccion fpga
Introduccion fpga
 
VoIP2DAY2014 Alberto Sagredo
VoIP2DAY2014   Alberto SagredoVoIP2DAY2014   Alberto Sagredo
VoIP2DAY2014 Alberto Sagredo
 
Ubnt colombia
Ubnt  colombiaUbnt  colombia
Ubnt colombia
 
Introducción a Asterisk
Introducción a AsteriskIntroducción a Asterisk
Introducción a Asterisk
 
Presentacion Lexon Axia Livewire 2013
Presentacion Lexon Axia Livewire 2013Presentacion Lexon Axia Livewire 2013
Presentacion Lexon Axia Livewire 2013
 
Redes
RedesRedes
Redes
 
Presentacion voip
Presentacion voipPresentacion voip
Presentacion voip
 
Curso de VoIP / Parte 01: VoIP y Asterisk
Curso de VoIP / Parte 01: VoIP y AsteriskCurso de VoIP / Parte 01: VoIP y Asterisk
Curso de VoIP / Parte 01: VoIP y Asterisk
 
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
Tres componentes fundamentales de un buen PBX IP: seguridad, alta disponibili...
 
Telefonia
TelefoniaTelefonia
Telefonia
 
Fundamentos de telefonia ip
Fundamentos de telefonia ipFundamentos de telefonia ip
Fundamentos de telefonia ip
 
Fundamentos20de20telefonia20ip 131006193600-phpapp02
Fundamentos20de20telefonia20ip 131006193600-phpapp02Fundamentos20de20telefonia20ip 131006193600-phpapp02
Fundamentos20de20telefonia20ip 131006193600-phpapp02
 
Admon
AdmonAdmon
Admon
 

Último

El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 

Último (20)

El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 

Domótica con Asterisk Voip2day 2013

  • 2. Alberto Sagredo Castro ¿Quién soy? • Alberto Sagredo Castro • @albersag • Alicantino de adopción. • Entusiasta de mi trabajo y autodidacta. • Formación Asterisk, Kamailio. • Consultoría e Ingeniería en VoIP. • Más info http://www.linkedin.com/in/albersag www.voipnovatos.es
  • 3. Alberto Sagredo Castro Tópicos de la domótica • La domótica es cara. • La domótica es complicada. • La domótica sólo la tiene Bill Gates en su casa. • La domótica es exclusiva. • La domótica es propietaria y cerrada. www.voipnovatos.es
  • 4. Alberto Sagredo Castro Realidad de la domótica • La domótica NO es cara. • La domótica NO es complicada. • La domótica supone un coste de un 1 % de la vivienda. • La domótica es de ámbito plural. • La domótica puede ser lo abierta que queráis. www.voipnovatos.es
  • 5. ¿Para qué sirve? Alberto Sagredo Castro • Eficiencia y Ahorro energético • Seguridad (Intrusión, inundación, incendio....)Accionamiento remoto de dispositivos • Confort, control. • Ocio/Comunicaciones Multimedia • eSalud • Robótica de servicios (limpieza, cortar césped.) www.voipnovatos.es
  • 6. Historia de la Domótica
  • 7. Protocolo X10 • Protocolo que nace en en los 70’s. • Comunicación por los cables de electricidad (Powerline). • Depende del cableado iba mejor o peor. • Es el más “consolidado”. • No hay “feedback” del estado del dispositivo. • Usado mucho en entorno Industrial. • Direccionamiento limitado de dispositivos (16 x 16 ).
  • 8. Protocolo • Protocolo creado y controlado por Zensys. Comprado x Sigma Designs • Comunicación Wireless en 868 Mhz (EU) 908 Mhz (USA) • Red Mesh entre los dispositivos. • El que mayor expansión y apoyo de fabricantes hoy en día. • Hay feedback del estado del dispositivo. • Fácil instalación y despliegue. • Soporte Local de vendedores. (zwave.es) • Opciones SW Libre Open-zwave. HW Zensys • Bajo Consumo • Zwave Alliance con más de 400 fabricantes y 900 dispositivos certificados. • Interoperabilidad entre fabricantes buenísima
  • 9. Protocolo • Especificación de 2004 • Banda ISM 2.4 Ghz (otra cosa más en esta banda). Aunque se permite en estándar 868 Mhz (EU) 915 Mhz (USA) • Controlador de hasta 65535 nodos. (subredes de 255 nodos) • Bajo Consumo • Hasta 300 Kb/s • Topología estrella, árbol o malla (la más usada). • Se espera que sea la más usada o más barata. • Pocos dispositivos. Usado por wattio (Startup Bilbaína) • Interoperabilidad entre fabricantes por ver… • Especificación IPV6 04/02/2013
  • 10. Protocolo • IPV6 over Low Power Wireless Personal Area Network • Tiene IPV6!! (Olle Johansson would like it!) • Estándar del IETF • Bajo Consumo • Encriptación AES-CCM 128 • Topología Mesh • Tráfico Bidireccional • ¿Estándar de futuro? • Muy pocos dispositivos. Dispositivos de Laboratorio. • Conectado mundialmente a Internet o bien PAN controlada por router local. • OS Contiki o tinyOS 6lowpan native.
  • 11. Protocolo • Creado por Belkin • Interfaz Wifi a dispositivos domóticos • Actualmente tres dispositivos: Interruptor de pared, interruptor de enchufe y sensor de presencia • Protocolo UnPn • Todavía sin API abierta • Afortundamente Ingeniería Inversa y Wemo Hacking • Para Activar necesario iPhone // Android • ¿Interoperabilidad? No pidáis peras al olmo
  • 12. Protocolo • Creado por Phillips • Interfaz Wifi a dispositivos domóticos • Control y Color de luces. Orientado a Iluminación • Protocolo UnPn • API abierta (http://developers.meethue.com) • IPhone / Android needed! • Caro
  • 13. Fabricantes Z-wave Los más conocidos: • Fibaro • Everspring • Fortrezz • Micasaverde (Vera) • Zipato • Aeon Labs • Danfoss
  • 14. Zipato • Fabricantes del Zipabox • Gateway orientado a la “cloud” • API muy abierta , JSON, REST-API • Muy abiertos a resolución de bugs • En el origen muy desconcertante • Gestión y configuración mediante interfaz web. Rules Creator Gráfico • 1 año escaso en el mercado • Se ha consolidado como una opción a tener en cuenta • Dispone de Addons para Zigbee, KNX, y Backup Module. • Apps nativas para Android / Iphone • Precio aprox 199 euros
  • 15. Vera Lite • Fabricado por Micasaverde (USA) • Gateway orientado a nube y local • API JSON, XML , amplísimas opciones de integración • UnPn • Soporte de usuarios muy bueno (http://forum.micasaverde.com) • Gran Cantidad de Plugins • Interfaz Web local. • Soporte remoto del fabricante cuando problemas de integración • El que tiene más solera. • En proceso de cambio. Mejorando web y más modelos de Vera • Integración con otros protocolos mediante dongles USB o bien plugins (Wemo) (Phillips Hue) • Apps compatibles iPhone/Android • Lo puedes encontrar por 170 euros
  • 16. Vera: Integración mediante HTTP Documentados: • http://wiki.micasaverde.com/index.php/Luup_Requests ! • ACTION: http://ip_address:3480/data_request? id=action&output_format=xml&DeviceNum=6&serviceId=urn:upnporg:serviceId:SwitchPower1&action=SetTarget&newTargetValue=1 ! • RUN SCENE: http://ip_address:3480/data_request?id=lu_action&serviceId=urn:micasaverdecom:serviceId:HomeAutomationGateway1&action=RunScene&SceneNum=<SceneNum> ! • VARIABLE GET: http://ip_address:3480/data_request?id=variableget&DeviceNum=6&serviceId=urn:micasaverdecom:serviceId:DoorLock1&Variable=Status ! • VARIABLE SET : http://ip_address:3480/data_request?id=variableset&DeviceNum=6&serviceId=urn:micasaverdecom:serviceId:DoorLock1&Variable=Status&Value=1 ! • SNAPSHOT CAMERA: http://ip_address:3480/data_request?id=archive_video&cam=8&format=1
  • 18. Raspberry PI • Podemos usar un stick USB Zwave como AEON LABS y user z-wave me ! ! • O bien usar una “mochila” ! !
  • 19. Z-wave Me • Z-wave me lanzó un dispositivo Razberry conectado directamente al puerto GPIO de la Raspberry PI (http:// razberry.z-wave.me) • Puede usarse el USB de AEON LABS también ! ! ! • http://en.z-wave.me/
  • 20. Open Z-wave • Interfaz Open Source para Zwave (https://code.google.com/p/open-zwave) • Z-wave me lanzó un dispositivo Razberry conectado directamente al puerto GPIO de la Raspberry PI (http:// razberry.z-wave.me) • Controlar un interruptor con Open z-wave http:// www.agilart.com/blog/open-zwave ! !
  • 21. Open Remote • Open Source Automation Platform http://www.openremote.org/display/HOME/OpenRemote • Se integra con AMX, KNX, Lutron, Z-Wave, 1-Wire, EnOcean, xPL, Insteon, X10, Infrared, Russound, GlobalCache, IRTrans, XBMC,VLC, panStamps, Denon AVR, FreeBox, MythTV, and more. • Cross Platform Windows, Linux, Mac, Raspberry Pi, Alix, Synology, ReadyNAS, QNAP and others.
  • 22. Aplicaciones Smartphones • Existen las propias aplicaciones de los fabricantes (Zipato,Vera). • Las de Android más “potentes” que las que rondan por Apple Store. ! ! !
  • 23. Demo #1 : Home Automation Phone System Elementos Inteligentes: - Zipato - Asterisk - Raspberry Pi - - Instalador
  • 24. Demo #1 : Home Automation Phone System Sensores: - Fibaro Wall Plug - Fortrezz Siren !
  • 25. Demo #1 : Home Automation Phone System Esquema de Funcionamiento: my.zipato.com
  • 26. Demo #1 : Home Automation Phone System
  • 27. Demo #1 : Home Automation Phone System Dialplan Asterisk: [ivr] ! exten => s,1,Answer() exten => s,n,Background(demovoipnovatos) exten => s,n,Wait(5) exten => s,n,agi(speech-recog.agi,es) exten => s,n,Set(PrimeraWord=${CUT(${utterance},x20,1)}) exten => s,n,Set(SegundaWord=${CUT(${utterance},xNN,2)}) exten => s,n,GotoIf($["${utterance}" = "encender luz"]?encenderluz) exten => s,n,GotoIf($["${utterance}" = "apagar luz"]?apagarluz) exten => s,n,GotoIf($["${utterance}" = "encender sirena"]?encendersirena) exten => s,n,GotoIf($["${utterance}" = "encender wemo"]?encenderwemo) exten => s,n,GotoIf($["${utterance}" = "apagar wemo"]?apagarwemo) exten => s,n,Verbose(1,El texto reconocido es: ${utterance}) exten => s,n,Verbose(1,Con una probabilidad de acierto: ${confidence}) exten => s,n,Verbose(1,La primera palabra es ${PrimeraWord} y la segunda palabra es ${SegundaWord} ) exten => s,n,Hangup ;exten => 800,n(encenderluz),Set(foo=${CURL(http://lampara.voip2day.voipnovatos.es/encender)}) exten => s,n(encenderluz),System(wget "http://lampara.voip2day.voipnovatos.es/encender") exten => s,n,Playback(luzencendida) exten => s,n,Hangup() ;exten => 800,n(apagarluz),Set(foo=${CURL(http://lampara.voip2day.voipnovatos.es/apagar)}) exten => s,n(apagarluz),System(wget "http://lampara.voip2day.voipnovatos.es/apagar") exten => s,n,Playback(luzapagada) exten => s,n,Hangup() exten => s,n(encendersirena),System(wget "http://sirena.voip2day.voipnovatos.es/encender") exten => s,n,Playback(sirenaencendida) exten => s,n,Hangup() exten => s,n(encenderwemo),System(wget "http://wemo.voip2day.voipnovatos.es/enchufe/encender") exten => s,n,Playback(wemoencendido) exten => s,n,Hangup() exten => s,n(apagarwemo),System(wget "http://wemo.voip2day.voipnovatos.es/enchufe/apagado") exten => s,n,Playback(wemoapagado) exten => s,n,Hangup()
  • 28. Demo #1 : Home Automation Phone System Dialplan Asterisk: exten => 1,1,System(wget "http://lampara.voip2day.voipnovatos.es/encender") exten => 1,n,Playback(luzencendida) exten => 1,n,Hangup() ! exten => 2,1,System(wget "http://lampara.voip2day.voipnovatos.es/apagar") exten => 2,n,Playback(luzapagada) exten => 2,n,Hangup() ! exten => 3,1,System(wget "http://sirena.voip2day.voipnovatos.es/encender") exten => 3,n,Playback(sirenaencendida) exten => 3,n,Hangup() ! exten => 4,1,System(wget "http://wemo.voip2day.voipnovatos.es/enchufe/encender") exten => 4,n,Playback(wemoencendido) exten => 4,n,Hangup() ! exten => 5,1,System(wget "http://wemo.voip2day.voipnovatos.es/enchufe/apagar") exten => 5,n,Playback(wemoapagado) root@raspberrypi:/var/lib/asterisk/agi-bin# total 16 drwxr-xr-x 2 root root 4096 oct 17 drwxr-xr-x 12 asterisk asterisk 4096 nov 2 -rwxr-xr-x 1 root root 7517 oct 17 root@raspberrypi:/var/lib/asterisk/agi-bin# ls -al 17:56 . 17:06 .. 17:56 speech-recog.agi
  • 29. Demo #1 : Home Automation Phone System Configuración Apache: <VirtualHost [2001:b18:406a::10]:80> ServerAdmin webmaster@localhost ServerName lampara.voip2day.voipnovatos.es DocumentRoot /var/www/lampara ! ! ! <Directory /var/www/lampara/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn ! CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
  • 30. Demo #1 : Home Automation Phone System Script Encendido PHP <html> <head> <title>Encendido Lampara IDC IPV6</title> </head> <body> <?php echo file_get_contents('https://my.zipato.com/zipato-web/remoting/ attribute/set?serial=XXXXXXXXXXXXXX&ep=xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxx&apiKey=xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx&state=true'); ?> </body> </html>
  • 31. Demo #1 : Home Automation Phone System Configuración Zipato
  • 32. Demo #1 : Home Automation Phone System Configuración FIBARO Virtual Switch
  • 33. Demo #1 : Home Automation Phone System
  • 34. Demo #2 : Teleasistencia Elementos Inteligentes: - Zipato - Asterisk - Raspberry Pi - Instalador
  • 35. Demo #2 : Teleasistencia Actuadores: - Fibaro Key Fob - Fortrezz Siren
  • 36. Demo #2 : Teleasistencia Esquema de Funcionamiento: my.zipato.com
  • 37. Demo #2 : Teleasistencia Configuración Zipato
  • 38. Demo #2 : Teleasistencia Configuración FIBARO Keyfob Los HTTP Request son realizados localmente
  • 39. Demo #2 : Teleasistencia Configuración Fortrezz Siren Los HTTP Request son realizados localmente
  • 40. Demo #2 : Teleasistencia Regla
  • 41. Demo #2 : Teleasistencia PHP .call file : <html> <head> <title>Llamada Asterisk IPV4</title> </head> <body> <?php $numbertocall = "CALLCENTER"; $context="extensiones"; $extension="105"; $vars = ""; $touchtime = ""; $time = time(); $callfile = "call_" . $time . ".call"; $startcallfile ="/tmp/" . $callfile; $endcallfile = "/var/spool/asterisk/outgoing/" . $callfile; ! $cfile = fopen($startcallfile,"ab"); fwrite($cfile,"Channel: SIP/Vozcom/" . $numbertocall . "n"); fwrite($cfile,"MaxRetries: 1n"); fwrite($cfile,"RetryTime: 60n"); fwrite($cfile,"WaitTime: 30n"); fwrite($cfile,"Context: " . $context . "n"); fwrite($cfile,"Extension: " . $extension . "n"); if ($vars != "") { fwrite($cfile,"Set: " . $vars . "n"); } fclose($cfile); ! chmod($startcallfile,0777); if ($touchtime != "") { list($hour,$minute,$second,$month,$day,$year) = split('-',$touchtime); $ctime = mktime($hour,$minute,$second,$month,$day,$year); touch($startcallfile,$ctime,$ctime); } rename($startcallfile,$endcallfile); ! ! ?> </body> </html>
  • 42. Demo #2 : Teleasistencia Configuración Apache: <VirtualHost *:8082> ServerAdmin webmaster@localhost ServerName asterisk.voip2day.voipnovatos.es DocumentRoot /var/www/asterisk <Directory /var/www/asterisk/llamar> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> <Directory /var/www/asterisk/alarma> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ! ! ! ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
  • 43. Demo #2 : Teleasistencia PHP Encendido / Apagado <html> <head> <title>Encendido Lampara IDC IPV6</title> </head> <body> <?php echo file_get_contents(‘https://my.zipato.com/zipato-web/remoting/attribute/set?……………………..’); ! ! ?> </body> </html>
  • 44. Demo #2 : Teleasistencia Dialplan Asterisk exten => 105,1,SIPAddHeader(Call-Info:;Answer-After=0) exten => 105,n,Dial(SIP/${EXTEN}) exten => 105,n,Hangup
  • 45. Demo #3 : Energy Call Generator Elementos Inteligentes: - Zipato - Asterisk - Raspberry Pi - Instalador
  • 46. Demo #3 : Energy Call Generator Sensores: - Fibaro Wall Plug - Fortrezz Siren Alarm !
  • 47. Demo #3 : Energy Call Generator Esquema de Funcionamiento: my.zipato.com
  • 48. Demo #3 : Energy Call Generator Configuración Zipato
  • 49. Demo #3 : Energy Call Generator Regla Zipato. Forma fácil
  • 50. Demo #3 : Energy Call Generator O bien haremos consultas mediante JSON <?php #include ("config.php"); $url = 'http://my.zipato.com:8080/zipato-web/json/Initialize'; $username = 'username; $password = 'password'; $json = json_decode(file_get_contents($url)); $sid = 'jsessionid'; $none = 'nonce'; $id = $json->{$sid}; $nonce = $json->{$none}; $temp = sha1 ($password); $temp2 = $nonce.$temp; $pass = sha1($temp2); $data = array("username" => "$username", "password" => "$pass", "method" => "SHA1" ); $data_url = "username=$username&password=$pass&method=SHA1"; $ch = curl_init('http://my.zipato.com:8080/zipato-web/json/Login'); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_COOKIE, 'JSESSIONID='.$id); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $output = curl_exec($ch); $c = curl_init(); curl_setopt($c, CURLOPT_URL, "http://my.zipato.com:8080/zipato-web/rest/meters/values/"); curl_setopt($c, CURLOPT_RETURNTRANSFER, true); curl_setopt($c, CURLOPT_COOKIE, 'JSESSIONID='.$id.'; Path=/zipato-web/; HttpOnly'); curl_setopt($c, CURLOPT_HEADER, false); $output = curl_exec($c);
  • 51. Demo #3 : Energy Call Generator O bien haremos consultas mediante JSON $c = curl_init(); curl_setopt($c, CURLOPT_URL, "http://my.zipato.com:8080/zipato-web/rest/meters/"); curl_setopt($c, CURLOPT_RETURNTRANSFER, true); curl_setopt($c, CURLOPT_COOKIE, 'JSESSIONID='.$id.'; Path=/zipato-web/; HttpOnly'); curl_setopt($c, CURLOPT_HEADER, false); $output = curl_exec($c); $json = json_decode ($output,true); $timestamp = time(); $date = $today = date("Y-m-d H:i:s"); ! foreach ($json as $meter) { //var_dump($meter); $name = $meter['name']; foreach ($meter['attributes'] as $attribute) { if ($attribute['definition']['name'] == "CURRENT_CONSUMPTION") { $consumo = round($attribute['value'],2); } } ! //echo ($consumo); ! system("asterisk -rx 'database put consumo lampara $consumo'"); ! }
  • 52. Demo #3 : Energy Call Generator Dialplan Asterisk [extensiones] ! ! exten => _9X.,1,Dial(SIP/vozcom/${EXTEN}) exten => _9X.,n,Hangup ! exten => _6X.,1,Dial(SIP/vozcom/${EXTEN}) exten => _6X.,n,Hangup ! exten exten exten exten ! => => => => locucion,1,Answer() locucion,n,Wait(2) locucion,n,Playback(Alarma en ventana) locucion,n,Hangup exten => checkconsumo,1,GotoIf($[${DB(consumo/lampara)} > 0]?ok:nook) exten => checkconsumo,n(ok),Dial(SIP/vozcom/666777111,20,tTrR) exten => checkconsumo,n(nook),Hangup
  • 53. Demo #3 : Energy Call Generator Crontab */1 * * * * php /var/www/sensor/vera/datos/captura.php */1 * * * * php /var/www/sensor/zipato/datos/captura.php */1 * * * * /usr/sbin/asterisk -rx "console dial checkconsumo@extensiones"
  • 54. Demo #4 : Wemo Phone System Elementos Inteligentes: - Wemo Switch - Asterisk - Raspberry Pi - Instalador
  • 55. Demo #4 : Wemo Phone System Esquema de Funcionamiento:
  • 56. Demo #4 : Wemo Phone System El encendido y Apagado lo haremos mediante PHP y un script en bash <html> <head> <title>Encendido Lampara IDC IPV6</title> </head> <body> <?php System ("/var/www/wemo/enchufe/encender/wemo.sh 10.0.1.105 ON") ?> </body> </html> Es importante saber la dirección IP del WEMO y el puerto que levanta. Lo localizaremos mirando el DHCP Server y el puerto con nmap
  • 57. Demo #4 : Wemo Phone System #!/bin/sh # # WeMo Control Script # # rich@netmagi.com # # Usage: ./wemo_control IP_ADDRESS ON/OFF/GETSTATE/GETSIGNALSTRENGTH/GETFRIENDLYNAME # # ! IP=$1 COMMAND=$2 ! #PORTTEST=$(curl -s $IP:49152 | grep "404") ! #if [ "$PORTTEST" = "" ] # then PORT=49153 #else # PORT=49152 #fi ! if [ "$1" = "" ] then echo "Usage: ./wemo_control IP_ADDRESS ON/OFF/GETSTATE/GETSIGNALSTRENGTH/GETFRIENDLYNAME" else ! ! ! if [ "$2" = "GETSTATE" ] then curl -0 -A '' -X POST -H 'Accept: ' -H 'Content-type: text/xml; charset="utf-8"' -H "SOAPACTION: "urn:Belkin:service:basicevent: 1#GetBinaryState"" --data '<?xml version="1.0" encoding="utf-8"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:GetBinaryState xmlns:u="urn:Belkin:service:basicevent:1"><BinaryState>1</ BinaryState></u:GetBinaryState></s:Body></s:Envelope>' -s http://$IP:$PORT/upnp/control/basicevent1 | grep "<BinaryState" | cut -d">" -f2 | cut -d "<" -f1 | sed 's/0/OFF/g' | sed 's/1/ON/g' ! ! elif [ "$2" = "ON" ] then
  • 58. Demo #4 : Wemo Phone System ! curl -0 -A '' -X POST -H 'Accept: ' -H 'Content-type: text/xml; charset="utf-8"' -H "SOAPACTION: "urn:Belkin:service:basicevent: 1#SetBinaryState"" --data '<?xml version="1.0" encoding="utf-8"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:SetBinaryState xmlns:u="urn:Belkin:service:basicevent:1"><BinaryState>1</ BinaryState></u:SetBinaryState></s:Body></s:Envelope>' -s http://$IP:$PORT/upnp/control/basicevent1 | grep "<BinaryState" | cut -d">" -f2 | cut -d "<" -f1 ! ! ! elif [ "$2" = "OFF" ] then curl -0 -A '' -X POST -H 'Accept: ' -H 'Content-type: text/xml; charset="utf-8"' -H "SOAPACTION: "urn:Belkin:service:basicevent: 1#SetBinaryState"" --data '<?xml version="1.0" encoding="utf-8"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:SetBinaryState xmlns:u="urn:Belkin:service:basicevent:1"><BinaryState>0</ BinaryState></u:SetBinaryState></s:Body></s:Envelope>' -s http://$IP:$PORT/upnp/control/basicevent1 | grep "<BinaryState" | cut -d">" -f2 | cut -d "<" -f1 ! ! ! elif [ "$2" = "GETSIGNALSTRENGTH" ] then curl -0 -A '' -X POST -H 'Accept: ' -H 'Content-type: text/xml; charset="utf-8"' -H "SOAPACTION: "urn:Belkin:service:basicevent:1#GetSignalStrength"" --data '<?xml version="1.0" encoding="utf-8"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/ soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:GetSignalStrength xmlns:u="urn:Belkin:service:basicevent: 1"><GetSignalStrength>0</GetSignalStrength></u:GetSignalStrength></s:Body></s:Envelope>' -s http://$IP:$PORT/upnp/control/basicevent1 | grep "<SignalStrength" | cut -d">" -f2 | cut -d "<" -f1 ! ! ! elif [ "$2" = "GETFRIENDLYNAME" ] then curl -0 -A '' -X POST -H 'Accept: ' -H 'Content-type: text/xml; charset="utf-8"' -H "SOAPACTION: "urn:Belkin:service:basicevent: 1#ChangeFriendlyName"" --data '<?xml version="1.0" encoding="utf-8"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:ChangeFriendlyName xmlns:u="urn:Belkin:service:basicevent:1"><FriendlyName>Pool Filter</FriendlyName></u:ChangeFriendlyName></s:Body></s:Envelope>' -s http://$IP:$PORT/upnp/control/basicevent1 | grep "<FriendlyName" | cut -d">" -f2 | cut -d "<" -f1 ! else
  • 59. Demo #4 : Wemo Phone System ! ! ! fi else echo echo echo echo fi "COMMAND NOT RECOGNIZED" "" "Usage: ./wemo_control IP_ADDRESS ON/OFF/GETSTATE/GETSIGNALSTRENGTH/GETFRIENDLYNAME" ""
  • 60. Demo #4 : Wemo Phone System Dialplan Asterisk: [ivr] ! exten => s,1,Answer() exten => s,n,Background(demovoipnovatos) exten => s,n,Wait(5) exten => s,n,agi(speech-recog.agi,es) exten => s,n,Set(PrimeraWord=${CUT(${utterance},x20,1)}) exten => s,n,Set(SegundaWord=${CUT(${utterance},xNN,2)}) exten => s,n,GotoIf($["${utterance}" = "encender luz"]?encenderluz) exten => s,n,GotoIf($["${utterance}" = "apagar luz"]?apagarluz) exten => s,n,GotoIf($["${utterance}" = "encender sirena"]?encendersirena) exten => s,n,GotoIf($["${utterance}" = "encender wemo"]?encenderwemo) exten => s,n,GotoIf($["${utterance}" = “apagar wemo"]?apagarwemo) exten => s,n,Verbose(1,El texto reconocido es: ${utterance}) exten => s,n,Verbose(1,Con una probabilidad de acierto: ${confidence}) exten => s,n,Verbose(1,La primera palabra es ${PrimeraWord} y la segunda palabra es ${SegundaWord} ) exten => s,n,Hangup ;exten => 800,n(encenderluz),Set(foo=${CURL(http://lampara.voip2day.voipnovatos.es/encender)}) exten => s,n(encenderluz),System(wget "http://lampara.voip2day.voipnovatos.es/encender") exten => s,n,Playback(luzencendida) exten => s,n,Hangup() ;exten => 800,n(apagarluz),Set(foo=${CURL(http://lampara.voip2day.voipnovatos.es/apagar)}) exten => s,n(apagarluz),System(wget "http://lampara.voip2day.voipnovatos.es/apagar") exten => s,n,Playback(luzapagada) exten => s,n,Hangup() exten => s,n(encendersirena),System(wget "http://sirena.voip2day.voipnovatos.es/encender") exten => s,n,Playback(sirenaencendida) exten => s,n,Hangup() exten => s,n(encenderwemo),System(wget "http://wemo.voip2day.voipnovatos.es/enchufe/encender") exten => s,n,Playback(wemoencendido) exten => s,n,Hangup() exten => s,n(apagarwemo),System(wget "http://wemo.voip2day.voipnovatos.es/enchufe/apagado") exten => s,n,Playback(wemoapagado) exten => s,n,Hangup()
  • 61. Demo #4 : Wemo Phone System Dialplan Asterisk: exten => 1,1,System(wget "http://lampara.voip2day.voipnovatos.es/encender") exten => 1,n,Playback(luzencendida) exten => 1,n,Hangup() ! exten => 2,1,System(wget "http://lampara.voip2day.voipnovatos.es/apagar") exten => 2,n,Playback(luzapagada) exten => 2,n,Hangup() ! exten => 3,1,System(wget "http://sirena.voip2day.voipnovatos.es/encender") exten => 3,n,Playback(sirenaencendida) exten => 3,n,Hangup() ! exten => 4,1,System(wget "http://wemo.voip2day.voipnovatos.es/enchufe/encender") exten => 4,n,Playback(wemoencendido) exten => 4,n,Hangup() ! exten => 5,1,System(wget "http://wemo.voip2day.voipnovatos.es/enchufe/encender") exten => 5,n,Playback(wemoapagado) root@raspberrypi:/var/lib/asterisk/agi-bin# total 16 drwxr-xr-x 2 root root 4096 oct 17 drwxr-xr-x 12 asterisk asterisk 4096 nov 2 -rwxr-xr-x 1 root root 7517 oct 17 root@raspberrypi:/var/lib/asterisk/agi-bin# ls -al 17:56 . 17:06 .. 17:56 speech-recog.agi
  • 62. Demo #5 : Phone Call Alarm Elementos Inteligentes: - Vera Lite - Asterisk - Raspberry Pi - Instalador
  • 63. Demo #5 : Phone Call Alarm Actuadores: - Fibaro Door Sensor - Everspring Motion Sensor
  • 64. Demo #5 : Phone Call Alarm Esquema de Funcionamiento:
  • 65. Demo #5 : Phone Call Alarm Configuración Vera Lite
  • 66. Demo #5 : Phone Call Alarm Localizar ServID y ID de dispositivo a consultar https://sta1.mios.com/locator_json.php?username=xxx {“units”: [{“serialNumber":"xxxxxxx","FirmwareVersion":"1.5.622","name":"MTX","ipAddress":"x.x.x.x","users": ["username"],"active_server":"fwd7.mios.com","forwardServers": [{"hostName":"fwd7.mios.com","primary":true},{"hostName":"fwd5.mios.com","primary":false}]}]} http://x.x.x.x:3480/data_request? id=user_data2&output_format=xml http://x.x.x.x:3480/data_request? id=user_data2&output_format=json
  • 67. Demo #5 : Phone Call Alarm Acceso Remotamente https://fwdx.mios.com/username/password/IDUNIT/ data_request?id=lu_status&output_format=json
  • 68. Demo #5 : Phone Call Alarm PHP Polling Script <?php ! $url = 'http://10.x.x.x:3480/data_request?id=variableget&DeviceNum=148&service ! $abierta = file_get_contents('http://10.x.x.x:3480/data_request?id=variableget ! if ($abierta == "0") { echo ("nnNo esta Abierta la Ventana. No hacemos nadann"); } ! else{ ! echo ("nnEsta abierta la ventana. LLamamos al movilnn"); echo file_get_contents('http://10.x.x.x/asterisk/llamar'); ! } ! ?> $url = 'http://10.x.x.x:3480/data_request?id=variableget&DeviceNum=148&serviceId=urn:micasaverde-com:serviceId:SecuritySensor1&Variable=Tripped';
  • 69. Demo #5 : Phone Call Alarm PHP LastTime Tripped Script <?php ! $url = 'http://10.x.x.x:3480/data_request?id=variableget&DeviceNum=148&service $unixtime = time(); ! $abierta = file_get_contents('http://10.x.x.x:3480/data_request?id=variableget ! $diftiempo=$unixtime - $abierta; ! echo ($diftiempo); ! if ($diftiempo > 60 ) { echo ("nnNo esta Abierta la Ventana. No hacemos nadann"); } ! else{ ! echo ("nnEsta abierta la ventana. LLamamos al movilnn"); echo file_get_contents('http://10.x.x.x/asterisk/llamar'); ! }
  • 70. Demo #5 : Phone Call Alarm Configuración Apache: <VirtualHost [2001:b18:406a::11]:80> ServerAdmin webmaster@localhost ServerName sensor.voip2day.voipnovatos.es ! ! ! ! ! DocumentRoot /var/www/sensor <Directory /var/www/sensor/datos> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/sensor> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> !
  • 71. Demo #5 : Phone Call Alarm PHP .call file : <html> <head> <title>Llamada Asterisk IPV4</title> </head> <body> <?php $numbertocall = "MOVIL"; $context="extensiones"; $extension="locucion"; $vars = ""; $touchtime = ""; $time = time(); $callfile = "call_" . $time . ".call"; $startcallfile ="/tmp/" . $callfile; $endcallfile = "/var/spool/asterisk/outgoing/" . $callfile; ! $cfile = fopen($startcallfile,"ab"); fwrite($cfile,"Channel: SIP/Vozcom/" . $numbertocall . "n"); fwrite($cfile,"MaxRetries: 1n"); fwrite($cfile,"RetryTime: 60n"); fwrite($cfile,"WaitTime: 30n"); fwrite($cfile,"Context: " . $context . "n"); fwrite($cfile,"Extension: " . $extension . "n"); if ($vars != "") { fwrite($cfile,"Set: " . $vars . "n"); } fclose($cfile); ! chmod($startcallfile,0777); if ($touchtime != "") { list($hour,$minute,$second,$month,$day,$year) = split('-',$touchtime); $ctime = mktime($hour,$minute,$second,$month,$day,$year); touch($startcallfile,$ctime,$ctime); } rename($startcallfile,$endcallfile); ! ! ?> </body> </html>
  • 72. Demo #5 : Phone Call Alarm Dialplan Asterisk [extensiones] ! ! exten => _9X.,1,Dial(SIP/vozcom/${EXTEN}) exten => _9X.,n,Hangup ! exten => _6X.,1,Dial(SIP/vozcom/${EXTEN}) exten => _6X.,n,Hangup ! exten exten exten extne ! => => => => locucion,1,Answer() locucion,n,Wait(2) locucion,n,Playback(Alarma en ventana) locucion,n,Hangup
  • 73. Alberto Sagredo Castro Seguridad puede controlar como consume • Si nuestra casa se puede abrir, se no dejarlo abierto a cualquiera energía, hay que tener cuidado y (Sentido Común) • Si usamos sistemas cloud, creemos en el cloud… con todo lo que ello conlleva. poner contraseñas o • Si usamos Apache para HTTP request, forma didacta exenta de certificados (Lo mostrado aquí es una seguridad) • Zwave implícitamente lleva seguridad. Sobre todo dispositivos de apertura de puertas. • http://research.sensepost.com/cms/resources/conferences/2013/ bh_zwave/Security%20Evaluation%20of%20Z-Wave_WP.pdf www.voipnovatos.es
  • 74. Alberto Sagredo Castro Futuro • Esta por ver que protocolo se llevará el gato al agua. • Seguramente coexistencia de muchos de ellos, y el integrador jugará a integrar y pelearse para hacerlos funcionar. • 6LowPAN interesante ver como evoluciona el mercado. • 6LowPAN y Zigbee soporte IPV6 (armados para el futuro). • ¿Wemo abrirá su API? • ¿Phillips Hue más dispositivos? www.voipnovatos.es
  • 76. Alberto Sagredo Castro Gracias • A Voip2day por invitarme un año más. • A mis hijos y esposa por hacerme féliz y darme razones para luchar por ellos. • A mi mujer por aguantar los cables y las ondas que instalo en casa. • A vosotros por la presencia y atención. • A los visitantes de voipnovatos.es por su fidelidad. • A voz.com por su apoyo incondicional. • A zwave.es por el asesoramiento en domótica. www.voipnovatos.es
  • 77. Alberto Sagredo Castro @ albersag www.voipnovatos.es