Académique Documents
Professionnel Documents
Culture Documents
de vidéosurveillance avec un
système de notification par
VOIX et SMS
PREREQUIS :
Pour la réalisation de notre projet un minimum de matériel est nécessaire à
savoir :
Des caméras (webcam, camera wifi, camera IP)
Un ou des serveur(s) utilisé(s) pour la diffusion ou la sauvegarde des flux
Un ensemble de logiciels open source ou payant (qui seront définis).
Un modem (clé 3G) pour gérer le service d’envoi de sms
Notons que nous travaillons sous VirtualBox avec une distribution Ubuntu.
On aura besoin aussi de ssh car il ne sera pas évident de saisir les commandes
sans faire des erreurs.
II. Etude des différentes solutions
de vidéosurveillance
Il existe un tas de solutions pour mettre en place la vidéosurveillance
fonctionnant sous différents systèmes d’exploitation notamment :
Zoneminder, Motion, Sentry Vision Security ou Kipicam…
Nous allons étudier au maximum 04 outils mais il en existe tant d’autres.
II.1. Zoneminder
Zoneminder est une solution open source efficace de vidéosurveillance,
acceptant des sources vidéo analogiques (connectées via une carte d'acquisition),
des webcams ou encore des caméras réseau. Il est capable d'envoyer les images
capturées sur un serveur déporté via FTP ou SMTP (mail) mais dispose
également d'un serveur web dédié permettant de consulter les images et vidéos
capturées ainsi que de contrôler le système de vidéo-surveillance
II.2. Motion
Motion est un programme hautement configurable qui surveille les signaux
vidéo de nombreux types de caméras.
Configurez-le pour surveiller les caméras de sécurité, observer les oiseaux,
enregistrer votre animal de compagnie, surveiller votre domestique, créer des
vidéos en accéléré et plus encore.
• Créez des vidéos ou enregistrez des photos de l'activité
• Voir le flux en direct des caméras
• Invoquer des scripts lorsque des activités se produisent
• Consigner l'activité dans plusieurs types de bases de données
• Masques entièrement personnalisables pour la confidentialité ou la
détection de mouvement
II.4. Kipicam
Ce logiciel en français permet de sauvegarder en local, puis de publier sur un
site web, un serveur FTP, ou d'envoyer par Email les images d'une ou plusieurs
webcams.
Pour chaque caméra connectée et paramétrée, vous pouvez définir la qualité des
images diffusées ainsi que le mode de transfert de votre choix (déclenchement
périodique ou déclenchement par détection de mouvement). Kipicam est très
simple d'utilisation et vous permet de gérer dans une seule application,
l'ensemble de vos webcams.
La publication sur le web ou l’envoi d’emails est réalisée après avoir renseigné
tout simplement l'adresse de votre serveur (ftp ou smtp), le login, le mot de
passe et éventuellement un répertoire de destination. Un titre et la date seront
ajoutés automatiquement à l'image lors de sa publication.
Kipicam fonctionne sous Windows XP, Vista et 7 mais requiert d'avoir
Microsoft Framework .NET 3.5 Service Pack 1 pour l'utiliser.
La liaison via un modem est celle que nous avons retenue pour les tests et
présentation de l'application, surtout du fait de sa mise en œuvre facile,
techniquement et financièrement. Les résultats obtenus seront valables pour une
liaison spécialisée. Le traitement du SMS se faisant au sein du serveur, il
convient de procéder à une étude de sa structure interne.
III.2. Architecture de base
Nous avons utilisé une machine virtuelle (ubuntu server 14.04) faisant office de
serveur et qui supporte Asterisk, Kannel et Motion.
Mais aussi l’utilisation de téléphone portable pour jouer les rôles de caméras ou
de client pour Asterisk.
Tous les périphériques sont connectés au même réseau local et ont accès à
internet.
IV. Configurations
IV.1. Installation et configuration de
Motioneye
La mise en place de Motioneye nécessite un ensemble de prérequis tels que :
Python 2.7
Tornado 3.1+
Jinja2
PIL or Pillow
Curl, libcurl et pycurl
Nous allons tout d’abord ajouter un PPA à nos sources apt, afin d'installer
ffmpeg:
add-apt-repository -y ppa:kirillshkrogalev/ffmpeg-next
apt-get update
chmod +x /etc/init.d/motioneye
update-rc.d -f motioneye defaults
/etc/init.d/motioneye start
Puis on crée un dossier où nous allons placer les sources d’Asterisk dans
/usr/src/
mkdir /usr/src/asterisk
cd /usr/src/asterisk
Et remplacez la par :
[4001]
type=friend
host=dynamic
dtmfmode=rfc2833
disallow=all
allow=ulaw
fullname = Mika DAFF
username = mdaff
secret=secret
context = drpt
[drpt]
exten => 4001,1,Dial(SIP/4001,20,r)
exten => 4001,2,Hangup()
;voici la configuration pour activer et désactiver l’alarme
exten => *666,1,Answer()
exten => *666,n,Wait(1)
exten => *666,n,Playback(activated)
exten => *666,n,Wait(120)
exten => *666,n,System(/usr/local/bin/control_motion.sh start)
exten => *666,n,Wait(1)
exten => *666,n,Hangup()
exten => *777,1,Answer()
exten => *777,n,Wait(1)
exten => *777,n,System(/usr/local/bin/control_motion.sh stop)
exten => *777,n,Playback(de-activated)
exten => *777,n,Wait(1)
exten => *777,n,Hangup()
[moncontexte]
exten => s,1,Set(LANGUAGE()=fr)
exten => s,n,Answer()
exten => s,n,Wait(2)
exten => s,n,Playback(activated)
exten => s,n,Wait(1)
exten => s,n,Playback(activated)
exten => s,n,Wait(1)
exten => s,n,Playback(activated)
exten => s,n,Wait(1)
exten => s,n,Playback(activated)
exten => s,n,Wait(1)
exten => s,n,Playback(activated)
exten => s,n,Wait(1)
exten => s,n,Hangup()
• * 666 est le code utilisé pour activer l'alarme. Le système attendra 120 secondes
et plus tard il sera actif, nous pouvons fermer et sortir du bureau;
• * 777 est le code utilisé pour désactiver l'alarme;
• le contexte moncontexte est exécuté quand le système fait l'appel téléphonique.
Maintenant pour la gestion des événements, on va créer un script nommé
cam_event.sh dans le répertoire /usr/local/bin/
Ce script cam_event.sh est responsable de faire un appel par l’intermédiaire
d’Asterisk lorsqu’un mouvement est détecté. Pour cela, on tape les commandes
suivantes :
cd /usr/local/bin
nano cam_event.sh
Puis on y copie le contenu suivant :
#!/bin/sh
# En premier nous reproduisons un fichier acoustique par les haut-parleurs
for i in `seq 1 5` ; do play /usr/local/bin/alarma.wav ; done
# making the call
cat << EOF > /tmp/alarmevent.call
Channel: SIP/4001
Callerid: 4001
MaxRetries: 2
RetryTime: 20
WaitTime: 20
Context: moncontexte
Extension: s
Priority: 1
EOF
chown 777 /tmp/alarmevent.call
mv /tmp/alarmevent.call /var/spool/asterisk/outgoing/
Nous avons aussi créé un script de démarrage et d’arrêt de Motion dans le même
répertoire.
cd /usr/local/bin
nano control_motion.sh
#!/bin/sh
case $1 in
start)
sudo /usr/bin/motion
;;
stop)
PID=`pidof motion`
sudo kill $PID
sudo killall cam_event.sh
sudo rm -f /var/spool/asterisk/outgoing/alarmevent.call
;;
esac
IV.3. Installation et configuration de
Kannel
Installation des paquets indispensables pour KANNEL
apt-get install libxml2 libxml2-dev libusb-dev libxml2-doc gcc
L’installation de Kannel peut se faire de deux façons :
A partir du site officiel de Kannel
(http://www.kannel.org/download/1.4.4/gateway-1.4.4.tar.bz2)
A partir des dépôts d’Ubuntu
apt-get install kannel
nano /etc/udev/rules.d/62-option-modem-modeswitch.rules
Pour y mettre le code suivant :
minicom -s
cd /etc/kannel
nano kannel.conf
cp kannel.conf kannel.conf.original
#Wapbox
group = wapbox
bearerbox-host = localhost
log-file = "/var/log/kannel/wapbox.log"
#Smsbox
group = smsbox
bearerbox-host = localhost
sendsms-port = 14000
sendsms-url = "/cgi-bin/sendsms"
sendsms-chars = "0123456789+-"
global-sender = +221781921230
log-level = 0
log-file = "/var/log/kannel/smsbox.log"
access-log = "/var/log/kannel/smsbox-access.log"
#Smsc
group = smsc
smsc = at
smsc-id = Huawei-E3131
modemtype = huawei_e3131
device = /dev/ttyUSB0
host = localhost
sms-center = +221776380010
my-number = +221781921230
keepalive = 10
speed = 9600
sim-buffering = true
#Modems
group = modems
id = huawei_e3131
name = "huawei E3131"
detect-string = "Huawei"
init-string ="AT+CNMI=2,1,2,2,0"
message-storage = "ME"
speed = 9600
#Sendsms
group = sendsms-user
username = kannel
password = kannel
forced-smsc = huawei-E3131
user-allow-ip = "*.*.*.*"
Maintenant fermez et enregistrez le fichier kannel.conf.
Notons qu’il faut remplacer aux lignes :
Global-sender, +22177xxxxxxx par le numérode la carte sim sur vore
modem ;
My-number, même chose aussi
Pin, 0000 par le code pin de la carte sim sur votre modem.
Pour vérifier la configuration de kannel on lance le bearerbox sur un terminal et
smsbox sur un autre terminal différent.
Sur le terminal on fait :
cd /etc/kannel
bearerbox -v 0 kannel.conf
http://localhost:14000/cgi-
bin/sendsms?username=kannel&password=kannel&to=+22177****&text=notre
_message
Si tout se passe bien, vous devez avoir sur le navigateur la phrase suivante :
0 : Accepted for delivery
Dans notre cas on a ceci :
Sur le terminal où nous avons lancé le smsbox on verra bien que le message est
bien reçu.
En même temps, si la puce (781921230 dans notre cas) qui se trouve dans le
modem a du crédit, normalement vous recevrez sur le N° 774407432
(l’administrateur) le sms «Alerte intrusion dans la salle ».
Smsbox va s'interfacer avec Bearerbox pour récupérer les messages qui sont sur
la puce.
V. Couplage de MotionEye avec la
notification par voix et SMS
Pour prendre en charge la notification il est important de tenir en compte un
paramètre essentiel qui est la détection de mouvement.
Cliquez sur General Settings puis mettez à ON advanced settings pour
visualiser les paramètres avancés, activez la détection en mettant Motion
Detection à On.
Une fois que cela est fait, cliquez sur Apply pour enregistrer les modifications
faites.
A chaque détection de mouvement notre système exécute les instructions qui
sont dans l’onglet Motion Notifications.
CONCLUSION
La vidéosurveillance a une place prépondérante au sein de l'entreprise; pour
protéger les personnes, les actifs ainsi que pour minimiser les risques de
vandalisme. C’est donc un système de plus en plus présent dans la vie
quotidienne.
Au cours de notre étude on est arrivé à réaliser un serveur de vidéosurveillance
(qui est lui équipé d’un logiciel de vidéosurveillance) en utilisant Motioneye.
Et pour l’automatisation de notre système on l’a intégré avec un système de
notification en utilisant Asterisk (voix) et Kannel (SMS).
La plateforme permettra à chaque administrateur d’avoir un temps d’avance sur
les événements qui se déroulent sur l’environnement cible.
WEBOGRAPHIE
http:// www.google.com
https://trevilly.com/videosurveillance-avec-motion-et-sms/
https://doc.ubuntu-fr.org/videosurveillance
https://lairbag.wordpress.com/2015/07/22/raspberry-pi-et-video-surveillance-
configuration-de-motioneye/
http://www.6ma.fr/tuto/comment+transformer+telephone+android+webcam+ip-
734
https://www.voip-
info.org/wiki/view/How+to+implement+an+alarm+system+with+Asterisk+and+
a+webcam
http://djoloftek.blogspot.sn/2011/05/configuration-de-kannel.html
http://lucie.zevillage.org/news/mise-en-place-d-un-systeme-de-videosurveillance
http://fr.wikipedia.org/wiki/Zoneminder
https://www.youtube.com/