• Aucun résultat trouvé

L'enseignant a gravé sur carte mémoire flash une image de distribution Linux ( Debian adaptée au processeur ARM ), étendu la partition,

installé les logiciels de la fin de tp

et défini l'@IP statique du raspberry pi en 10.0.0.23 ( voir annexe ).

(fdisk -l pour voir les partitions, df -h pour la taille libre, sudo raspi-config puis ligne "enlarge the root partition" ou "expand rootfs" )

I) Configuration de la passerelle SPA3102

On a sur la table le matériel suivant:

I Z

téléphone SPA3102

numérique n° 4200 Line = FXO

Phone = FXS

Ethernet Internet

n° 101 donné par SPA3102

Pour économiser du matériel on va utiliser les 2 ports ethernet de la passerelle SPA3102 comme switch.

- Faire un reset du SPA3102: Depuis le téléphone analogique branché sur le port Phone du SPA3102,

* Appeler le numéro **** ( cela appelle l'IVR = serveur vocal ), attendre la fin de l'annonce de l'IVR.

si vous n'avez pas d'annonce, débrancher tout sauf le téléphone,

rebrancher l'alimentation et recommencer.

* Composer le numéro 73738 pas trop vite en attendant que la voix répète la touche appuyée

* Taper # puis taper 1 er raccrocher quand vous entendez "option successful" ce qui lance le reset.

- Mettre le PC à l'adresse 192.168.0.13, se connecter au SPA3102: avec un navigateur HTTP

http://192.168.0.1

( s'il le demande: identifiant admin et pas de mot de passe ) - Aller dans l'onglet Router, puis clic sur Advanced à droite => On a au total 4 onglets en dessous.

Aller sur l'onglet en dessous WAN Setup.

* Mettre l'adressage en IP statique ( Connection Type )

* Renseigner adresse IP 10.0.0.3 ( Static IP ) et le masque 255.255.255.0 ( Netmask )

* Mettre "Enable Wan Web Server" à yes !!! sinon on n'aura pas d'accès et il faudra refaire le reset.

* Clic sur "Submit all changes"

- Rafraichir la page si nécessaire, Clic sur LAN Setup.

* Mettre le mode Bridge

* Mettre "DHCP Server" à No

* Clic sur "Submit all changes" ( l'@IP LAN n'est pas utilisée en bridge )

A ce stade, la broche LAN ( Ethernet jaune ) et WAN ( Internet bleue ) sont dans le même réseau, c'est pourquoi on peut brancher le rasperry pi sur cette broche.

- Repasser l'adresse IP du PC en 10.0.0.13 et vérifier que l'on peut se reconnecter au SPA3102 en 10.0.0.3 PC LAN

avec client SIP Xlite n° 100 192.168.0.13 10.0.0.13

Raspberry Pi 10.0.0.23 serveur Asterisk

PABX

( partagé avec tp Asterisk )

Téléphone "public"

N° 4100

TP TL53

J. Millet

Asterisk sur Raspberry Pi 2/8

III) Configuration de la téléphonie privée de l'entreprise

Configuration des comptes téléphoniques sur Asterisk - Se connecter à l'interface http du serveur

* Se connecter depuis le PC via navigateur web à l'interface http d'Asterisk:

http://10.0.0.23

* Choisir FreePbx

* Identifiant, mot de passe = admin, admin - Créer les 2 comptes SIP 100, 101

* Applications > Extensions ( si inaccessible, connexion en ssh selon instructions plus loin et asterisk –cvvvvvvv )

* Mettre le n° de téléphone dans les cases "Display Name" et "SIP Alias"

mettre dans "secret" un mot de passe de 6 caractères avec lettres et chiffres: secret = rt1234 Cliquer sur "Submit" puis en haut sur "Apply config".

Configuration pour le téléphone du SPA3102

La configuration pour le téléphone sur le port Phone ( interface FXS ) correspond à l'onglet Voice > Line 1 - Dans l'interface http du SPA3102, clic sur l'onglet Voice

puis clic sur Admin login

puis clic sur Advanced => On voit 9 onglets - Clic sur l'onglet Line 1

* Mettre Line enable à yes

* Mettre dans "Proxy and Registration" la ligne "Proxy" l'adresse IP du serveur Asterisk la ligne "Outbound" l'adresse IP du serveur Asterisk

* Mettre dans "Subscriber Information" la ligne "Display Name" à 101 la ligne "User ID" à 101 la ligne "Password" à rt1234

* Mettre dans "Audio Configuration" la ligne "Preferred Codec" à G711a

* Vider la ligne Dialplan et mettre sans oublier les . après les x: ( x. | *x. ) Ce téléphone peut appeler un numéro commençant par 0 à 9 de n'importe quelle longueur ( x. )

et * puis un chiffre entre 0 et 9 puis n'importe quelle longueur ( *x. )

* Clic sur "Submit all changes"

- Clic sur l'onglet SIP: Mettre Packet Size à 0.020 => On émet des paquets de 20 ms Clic sur "Submit all changes"

- Clic sur l'onglet Regional, on change un élément de la configuration électronique des signaux pour le téléphone FXS.

Mettre en bas de page FXS Port Impedance à "600+2,16uF"

Clic sur "Submit all changes"

Le téléphone Xlite du PC est configuré en 100.

- Démarrer Xlite sur le PC => Il s'enregistre.

- Vérifier les enregistrements: Se connecter en SSH à Asterisk

login = root

pour cette distribution ( pi d'habitude ) password = raspberry

Taper asterisk –rvvvvvvv puis sip show peers => On voit les @IP ) ( Sur le SPA3102, Onglet Voice > Info, section Line 1 status on a aussi Resgistration State et Next Registration In Pour forcer l'enregistrement on redémarre le SPA3102 en enlevant et remettant l'alimentation )

- Vérifier qu'ils peuvent s'appeler, qu'ils peuvent appeler le serveur ( appeler *43 pour avoir le test d'écho ) Ajout de boite vocale = Répondeur

- Activer les boites vocales des postes 100 et 101 dans Asterisk ( via interface freepbx dans navigateur web du PC ):

Dans la définition de l'extension: Rubrique Voicemail, case "Status" à Enable. Mettre le mot de passe 1234.

- Tester la possibilité de dépôt de message ( 101 appelle 100 qui ne répond pas,... )

TP TL53

J. Millet

Asterisk sur Raspberry Pi 3/8

- Relever le code à composer pour accéder aux boites vocales: Admin > Feature Codes > Voicemail > Dial Voicemail - Tester la lecture de message ( appel depuis n'importe quel poste, indiquer votre numéro puis votre mot de passe ).

- Relever le code à composer pour accéder aux boites vocales directement: My Voicemail

- Tester la lecture de message ( appel depuis le poste de la boite vocale, indiquer votre mot de passe ).

IV) Configuration de l'accès externe

Configuration d'Asterisk pour les appels sortants

a) Définir un faisceau SIP = Trunk SIP dans le serveur du RPI:

- Aller au menu de définition des Trunks dans l'interface Freepbx de l'Asterisk du RPI: Connectivity > Trunks

=> Add SIP Trunk

Trunk Name: Abo_SIP

Outbound Caller ID ( CID Sortant ) : 4200 ( notre n° public ) Max Channels: 1

Outgoing Settings / Trunk Name: Abo_ext_SIP !! à reprendre dans la config du SPA3102 Voice -> PSTN-Line -> User ID Outgoing Settings / Peer Details

Mettre host=dynamic

Mettre username=Abo_ext_SIP nom du Trunk

Mettre secret=rt1234 mot de passe pour notre compte sur le serveur public Laisser type=friend liaison vers passerelle qui va s'enregistrer et donner son @IP Ajouter context=from-trunk

=> Effacer le contenu de USER Details dans la partie Incoming Settings

=> Ne rien mettre dans Register String

Comme on se connecte non pas à un serveur ( type peer ) mais à un client qui fait passerelle ( type friend ), le trunk n’a pas à s’enregistrer, c’est le client qui l’aura fait.

- Clic sur Submit puis Apply Config

b) Définir l'acheminement des appels sortants : Outbound route: ( lien entre numéro extérieur appelé et faisceau ) On fait le lien entre le numéro demandé par l'abonné local et le faisceau à utiliser avec la numérotation à faire.

On veut que l'abonné local utilise le préfixe 0 pour un appel externe par le faisceau SIP.

Connectivity / Outbond routes Route name: Op_ext_SIP_sortant

Dial Patterns: 0|.

0 dans la case Prefix et . dans la case "Match Pattern"

= Masque de numérotation: On compose le préfixe 0 sur le téléphone local qui sera éliminé et Asterisk appelle sur le réseau public le reste du n° qui est de format quelconque ( . )

Trunk Sequence for Matched Routes: Mettre le faisceau défini avant: Choisir Abo_SIP Clic sur Submit puis Apply Config

Configuration du SPA3102 pour les appels sortants - Clic sur l'onglet Voice > PSTN Line

* Vérifier que Line enable est à yes,

que le port SIP est 5061 ( 5060 utilisé pour le téléphone branché sur Phone = FXS, 5061 pour le port Line = FXO )

* Dans la section Proxy and Registration Proxy: Mettre l'adresse IP du serveur Asterisk

* Dans la section Subscriber Information

User ID: Abo_ext_SIP sur la droite, pas dans "Display name" !! User ID = nom du trunk

Password: rt1234 mot de passe du Trunk

* Dans la section Audio Configuration Preferred Codec: G711a

TP TL53

J. Millet

Asterisk sur Raspberry Pi 4/8

* Dans la section DialPlan

Dial Plan 1: ( 4x.<:@gw0> ) n° commençant par 4 et appel par ligne RTC ( Rem: 4. sans x ne marche pas )

* Dans la section VoIP-To-PSTN Gateway Setup VoIP-To-PSTN Gateway Enable: yes

Vérifier que "Line 1 VoIP Caller DP" est à 1 => On utilise le Dial Plan 1

* Dans FXO Timer Values (sec )

Voip Answer Delay: 0 ( si on laisse à 1 cela peut faire des moitiés de sonnerie sur appel sortant )

PSTN Answer Delay: 0 si on n’a pas de CallerID service sur la ligne analogique, au moins 3 sinon.

* Dans PSTN Disconnect Detection

Disconnect Tone: 440@-30,440@-30;2(.5/.5/1) Ligne coupée = Tonalité 440Hz à -30dB de 0,5 sec

* Dans International Control FXO Port Impedance: 600+2,16uF SPA To PSTN Gain: 2

PSTN To SPA Gain: 2 On-Hook Speed: 3 ms ( ETSI ) Current Limiting Enable: yes Ring Validation Time: 100 ms Ring Timeout: 256 ms

* Clic sur "Submit all changes"

- Appeler depuis un des postes locaux vers le n° public. Penser au préfixe 0 avant le n° ( parfois il y a un délai, jusqu'à 15 s maxi ) Configuration d'Asterisk pour les appels entrants

On ajoute un acheminement entrant: Inboud Route = Lien entre le n° public demandé par l'abonné externe et n° privé appelé.

Un appel extérieur ira vers un téléphone local par la SDA ( sélection directe à l'arrivée = lien n° public <–> n° privé

)

Connectivity / Inbound routes Description: Op_ext_SIP_entrant

DID number: on laisse vide pour prendre tous les appels ( n° public pour le tp car on simule le réseau avec un pabx, en réalité 10 chiffres )

( Caller ID number = n° appelant doit rester vide pour recevoir tous les appels )

Set Destination: Cocher Extensions et mettre 100 => Les appels au n° DID iront au poste local 100 Clic sur Submit puis Apply Config

Remarque: Si on avait plusieurs numéro spublics, dans Trixbox, si on s'arrête là on ne peut appeler car Trixbox ne traite pas le n° => n° inconnu.

Il ne peut associer la route entrante au numéro appelé => On ajoute à la définition du trunk, partie "outgoing settings" ( oui outgoing pour appel entrant ! ) la ligne "context=from-trunk"

Configuration du SPA3102 pour les appels entrants

- Se connecter à la CLI du serveur Asterisk puis appeler depuis le téléphone public notre installation.

=> On ne voit rien en CLI et on constate que l'appel va directement au poste branché sur Phone = FXS par défaut.

Pour que ce soit Asterisk qui gère les appels on doit rediriger les appels de PSTN vers VoIP: Clic sur PSTN Line, Dans l'onglet Voice > PSTN Line, section PSTN-To-VoIP Gateway Setup du SPA3102

* Vérifier que PSTN-To-VoIP Gateway Enable: Yes

* Mettre PSTN Ring Thru Line 1: no

* MettrePSTN CID for VoIP CID: No Yes si la ligne analogique fait l’identification d’appel ( envoi du n° appelé entre sonneries )

* MettrePSTN Caller Default DP: 2 => L'appel entrant va au Dial Plan2

* Ajouter la ligne Dial Plan 2 qui envoie tout immédiatement ( S0 ) à Asterisk: (S0<:@10.0.0.23>)

* Clic sur "Submit all changes"

Dans l'onglet Voice > PSTN Line, section Audio Configuration du SPA3102

* Mettre DTMF Tx Method: INFO ( sinon les codes DTMF des téléphones publics ne passent pas en SIP ) - Revenir à la CLI du serveur Asterisk dans le SSH puis appeler depuis le téléphone public notre installation.

Relever la ligne qui contient la commande Dial. Expliquer ce qu'elle signifie.

- Mettre en attente ( bouton hold sur Xlite ), l'appelant entend la musique d'attente. ( MOH Music on hold )

TP TL53

J. Millet

Asterisk sur Raspberry Pi 5/8

- Changer l'extension de destination de Inbound Route en 101 ( Submit, Apply Config ) Vérifier que l'appel change de destinataire.

V) IVR ( Interactive Voice Response ou SVI Serveur Vocal Interactif )

Enregistrement de messages systèmes personnalisés

- En mettant les messages en français ( voir annexe ), on a supprimé un répertoire où seront stockés nos messages.

Récréer ce répertoire via SSH: sudo mkdir /var/lib/asterisk/sounds/custom cd /var/lib/asterisk

sudo chown -R asterisk:asterisk sounds

On va définir des messages pour expliquer à la personne qui appelle les choix possibles. Il y a 2 méthodes:

-> Soit on téléverse ( upload ) sur le serveur des fichiers sons avec un PC relié à Internet ce qui n'est pas notre cas.

A l'adresse http://www.oddcast.com/home/demos/tts/tts_example.php?sitepa

On tape un message, choisit une voix et un effet, enregistre le son avec audacity par exemple On téléverse le fichier son dans Asterisk: Admin / System Recordings

-> Soit on crée les messages avec un téléphone

Admin / System Recordings dans les menus Asterisk

Mettre le n° du téléphone que l'on utilise pour enregistrer, cliquer sur Go, Attendre que l'affichage change et indique la suite

Sur ce téléphone appeler *77 ( code défini dans les Features Code ) Faire votre message une fois en communication et raccrocher Appeler *99 pour écouter le message, raccrocher

Revenir à la page web pour enregistrer le fichier: Name this recording, Save sinon taper *77 pour recommencer ( mettre un nom sans _ )

- Avec Xlite ( le SPA3102 bloque l'enregistrement ), enregistrer une annonce ENRG1: "Taper 1 pour appeler 100, 2 pour appeler 101 ou 3 pour laisser un message"

- Avec Xlite, enregistrer une annonce ENRG2: "Taper 1 pour laisser un message à 100, 2 pour laisser un message à 101"

- Avec Xlite, enregistrer une annonce CONF: "Bienvenue en conférence"

Vérification avec utilisation simple: Conférences: MeetMe - Aller à Applications/Conferences:

n° pour se connecter: 150, nom monIVR Join Message: CONF User join/leave: yes Clic sur Submit puis Apply Config

- Tester: Appel du numéro de conférence.

=> On entend le message CONF

=> On donne son nom

=> On tape # ( pound key ).

On est alors en conférence ( la voix indique combien d'autres utilisateurs sont présents )

SVI : Serveur vocal interactif ( Standard automatique / Digital Receptionnist / IVR Interactive Voice Response ) On crée un standard automatique ( "Bonjour, pour une Assistance technique, tapez 1, pour avoir des informations sur votre abonnement, tapez 2, ..." ). C'est la version simple de l'ACD ( Automatic Call Distribution ) = Call center.

- Programmer l'accueil suivant ( fait de 2 IVR Choix1 et Choix2 qui utilisent les enregistrements ENRG1 et ENRG2 précédents ). NB: Il faut déjà créer Choix 2 car il est utilisé dans Choix 1

- Programmer l'accueil: Applications / IVR

On fait le premier niveau add a new IVR: nom Choix1,

Annoucement ENRG1

Invalid Destination: Terminate call , Hang up

( l'IVR Choix1 n'existe pas encore, on ne peux pas encore reboucler vers lui comme on le veut ) Timeout Destination: Terminate call , Hang up

puis les options selon schéma suivant ( IVR Entries )

appui sur la touche 1 = mettre 1 dans la case Ext (digits pressed), Destination=100 clic sur + en vert

appui sur la touche 2, Destination = 101 clic sur submit et apply en haut

TP TL53

J. Millet

Asterisk sur Raspberry Pi 6/8

Maintenant qu'il est créé, on peut mettre les renvois vers lui dans le cas de non réponse ou réponse invalide Invalid Destination: IVR, Choix1

( l'IVR Choix1 n'existe pas encore, on ne peux pas encore reboucler vers lui comme on le veut ) Timeout Destination: IVR, Choix1

clic sur submit et apply config en haut On fait le second niveau add a new IVR: nom Choix2,

Annoucement ENRG2

Invalid Destination: Terminate call , Hang up

( l'IVR Choix1 n'existe pas encore, on ne peux pas encore reboucler vers lui comme on le veut ) Timeout Destination: Terminate call , Hang up

puis les options selon schéma suivant ( IVR Entries )

appui sur la touche 1 ( digits pressed ), Destination = Voicemail 100 (busy ) clic sur + en vert

appui sur la touche 2 ( digits pressed ), Destination = Voicemail 101 (busy ) appui sur la touche 8 ( digits pressed ), Destination = IVR Choix1

clic sur submit et apply config en haut

Maintenant qu'il est créé, on peut mettre les renvois vers lui dans le cas de non réponse ou réponse invalide Invalid Destination: IVR, Choix2

( l'IVR Choix1 n'existe pas encore, on ne peux pas encore reboucler vers lui comme on le veut ) Timeout Destination: IVR, Choix2

clic sur submit et apply config en haut On relie le premier niveau au second: Aller dans la définition de Choix1

Ajouter une etnrée: appui sur la touche 3 Destination = IVR Choix2 clic sur submit et apply config en haut

IVR Choix1 Annonce ENRG1

( dit que 1 -> 100, 2->101, 3-> Choix 2 )

n° i Options de Choix 1 n° 1, n°2 n°3 IVR Choix 1

appel 100 appel 101 appel IVR Choix 2

IVR Choix 2

Annonce ENRG2

( dit que 1 -> Msg à 100, 2-> Msg à 101 )

n°8 IVR

Options de Choix 2 n° 1, n°2, n° i Choix1 Voicemail Voicemail IVR Choix 2

de 100 de 101

On veut tester l'IVR en simulant un appel externe depuis un poste interne. Dans Admin > Features Code on voit que c'est le n° 7777. Mais si on ne fait rien, l'appel simulé n'ayant pas de n° d'appelant ira au context from-pstn non défini.

- Ajouter une Inbound Route pour les numéros d'appelant non définis ( DID number ) Connectivity > Inbound Routes, Add incoming Route à droite en haut

Description: simu 7777 Set Destination: IVR, Choix 1

- Tester en composant le numéro 7777 depuis le poste 101 (simule un appel entrant: voir Feature Codes )

=> On entend le message ENRG1, tester l'IVR en faisant des choix ( 1 -> appel du 100, … ).

- Modifier la destination de l'appel de Inbound Route Op_ext_SIP_entrant = racine de l'IVR = Choix 1.

- Tester depuis le poste externe 4100.

TP TL53

J. Millet

Asterisk sur Raspberry Pi 7/8

VI) Vidéosurveillance avec alerte téléphonique

Mise en place de la vidéosurveillance

- Brancher la webcam usb au raspberry pi. TOURNER LA VERS LE MUR ( qu'elle ne voit pas du mouvement en permanence ) Vérifier qu'elle est reconnue: Taper lsusb qui liste les appareils USB branché

=> on doit voir une ligne avec le nom de la webcam

- Ouvrir le fichier de configuration du logiciel motion sudo nano /etc/motion/motion.conf

S'il est vide, on démarre le logiciel pour qu'il écrive des valeurs par défaut: sudo motion –n puis ctrl C pour arrêter.

- Dans /etc/motion/motion.conf

=> Passer en 768x576: ligne width 768 ( chercher "width" avec CTRL W ) ligne height 576

=> Régler le seuil - Calcul du seuil: On a le seuil 1500 pour une image 320x240 = 76800 pixels On passe à une résolution d'image de 768x576 = 442368 pixels

Calculer le facteur multiplicatif.

Appliquer ce facteur au seuil par défaut

- Réglage du seuil de détection: Ligne threshold mettre la valeur calculée avant - Attendre du mouvement sur 3 images avant d'agir : Ligne minimum_motion_frames 3

=> Qualité d'image compressée: Ligne "quality" de la partie "Image File Output" à mettre à 100

=> Vérifier le port de streaming: Ligne "webcam_port" de paragraphe "Live Webcam Server": 8081 par défaut

=> Autoriser l'accès au serveur web du RPI depuis un autre PC: Ligne "webcam_localhost" à off

=> Mettre webcam_limit à 120 ( 1 image/s donc 2 minutes puis cela coupe, sinon il y a blocage ) - Sauvegarder et sortir de nano: CTRL O puis enter puis CTRL X

- On démarre le logiciel: sudo motion –n &

Si on n'est pas root, ne pas oublier sudo sinon pas de streaming, le & fait que le programme ne s'arrête pas si on ferme le ssh, vérifier en fin de démarrage qu'il y a le message "Started stream webcam server in port 8081", rebooter s'il y a une erreur de palette - Ouvrir Firefox et se connecter au site de diffusion: http://@IP:8081

( remplacer @IP par la valeur d'adresse IP du raspberry pi obtenue par ifconfig ou en lisant la ligne avec 8081 des messages lors du démarrage de motion )

NE PAS UTILISER INTERNET EXPLORER OU CHROME ( le flux est en Motion JPEG que seul Firefox traite par défaut: voir http://www.lavrsen.dk/foswiki/bin/view/Motion/WebcamServer )

- Vérifier que si l'on bouge devant la webcam, on voit qu'il enregistre des images dans /tmp ( messages dans la fenêtre ) ( l'image serait de mauvaise qualité si on avait laissé webcam_quality à 50 pour avoir des tailles de fichier plus petites à transférer ) - Arrêter motion en SSH: sudo killall motion

Alerte téléphonique lors de la détection de mouvement

On pourrait sauvegarder les images ou vidéos sur un serveur ftp en installant wput. Pour cela on met dans motion.conf on_picture_save wput %f ftp://Identifiant:Mot_passe@nom_serveur_ftp/repertoire/%f –t 3

(t pour 3 essais max) On pourrait aussi envoyer un mél. Mais cela signifie qu'il faudra attendre que l'on aille lire les fichiers pour être averti. Donc on préfère recevoir un SMS ou un appel téléphonique automatisé grâce à notre serveur Asterisk local.

On va envoyer un appel téléphonique:

- Créer un fichier annonce_intrusion avec le téléphone Xlite. ( Asterisk ajoute l'extension .wav au nom entré ) Localiser le fichier depuis le répertoire /: sudo find / -name annonce_intrusion.wav

Déplacer le fichier dans /var/lib/asterisk/sounds ( commande sudo mv )

- Configurer motion pour qu'un mouvement détecté appelle un script: sudo nano /etc/motion/motion.conf Chercher "on_motion_detected" avec CTRL W ),

Enlever la mise en commentaire = le ;

Remplacer value pour avoir: on_motion_detected /usr/local/bin/cam_event.sh

TP TL53

J. Millet

Asterisk sur Raspberry Pi 8/8

Le script cam_event.sh qui est appelé consiste à demander à Asterisk de joindre un numéro téléphonique via l'abonnement SIP public et d'envoyer le message enregistré. Pour réaliser un appel téléphonique programmé, on copie un fichier .call dans le répertoire /var/spool/asterisk/outgoing/ ( variable astspooldir dans le fichier asterisk.conf ). Le fichier .call contient les informations d'appel.

- Créer le script cam_event.sh appelé dans motion.conf qui va déclencher l'appel = copier le fichier .call cd /usr/local/bin/

sudo nano cam_event.sh

#!/bin/sh

cp ~/intrusion.call /var/spool/asterisk/outgoing/

- Rendre le script exécutable sudo chmod +x cam_event.sh

- Vérifier que Asterisk peut faire un appel automatique: En CLI, taper module show

=> On doit avoir la ligne pbx_spool.so

- On crée le fichier d'appel d'Asterisk que le script va utiliser: intrusion.call

( Infos sur "Asterisk auto-dial out" à http://www.voip-info.org/wiki/view/Asterisk+auto-dial+out ):

sudo nano ~/intrusion.call

Channel: SIP/Abo_ext_SIP/4100 Callerid: 101 MaxRetries: 2

WaitTime: 20 Context: intrusion Extension: s

Appel du n° 4100 par canal Abo_SIP N° Appelant, le Trunk mettra le n° public Nombre d'essais en cas d'échec

Temps d'attente que cela décroche Contexte qui va traiter l'appel Extension appelée dans le contexte Remarque: La syntaxe de Channel est celle de la commande Dial ( appeler 0 4100 depuis Xlite et regarder en CLI ) sudo chown asterisk:asterisk ~/intrusion.call

Dans Asterisk on n'a pas besoin de créer un abonné SIP interne appelé par le script car on a mis s dans le contexte à utiliser.

- Dans extensions_custom.conf d'Asterisk on fait le contexte utilisé:

( dans raspbx, extensions.conf est autogénéré donc non modifiable directement. Il inclut extensions_custom.conf )

sudo nano /etc/asterisk/extensions_custom.conf [intrusion]

exten => s,1,Playback(/var/lib/asterisk/sounds/annonce_intrusion) exten => s,2,Wait(3)

exten => s,3,Playback(/var/lib/asterisk/sounds/annonce_intrusion) exten => s,4,Wait(20)

exten => s,5,Playback(/var/lib/asterisk/sounds/annonce_intrusion) exten => s,6,Hangup()

* On diffuse le message quand cela décroche: annonce_intrusion.wav,

* On attend

* On rediffuse le message

* On attend plus pour répondeur GSM

* On rediffuse le message

* On raccroche

Source: http://www.voip-info.org/wiki/view/How+to+implement+an+alarm+system+with+Asterisk+and+a+webcam - Dans la CLI Asterisk, taper reload pour que les modifications soient prises en compte.

SI CELA NE MARCHE PAS ET QUE VOUS MODIFIEZ extensions_custom.conf par la suite, penser à faire reload en CLI pour prendre en compte vos modifications.

- Vérifier que le fichier existe dans le répertoire: ls /var/lib/asterisk/sounds

=> On doit voir annonce_intrusion.wav

- Se connecter en SSH dans une seconde fenêtre sur la CLI d'Asterisk pour vérifier le déroulement de l'appel.

- Vérifier que l'appel automatisé fonctionne: Appeler le script dans la première fenêtre SSH /usr/local/bin/cam_event.sh

- Quand l'appel automatique fonctionne, démarrer motion si ce n'est pas fait sudo motion –n &

- Vérifier que du mouvement devant votre caméra déclenche l'appel d'alerte.

Remarque: Pour bien faire les choses, il faut aussi prévoir un moyen d'arrêter le script en cas de fausse détection ou quand on veut réagir ( éviter une forme de DOS Deny Of Service car les détections relanceraient des appels )

Forme d'IVR ( on appelle notre numéro public = racine de l'IVR => Asterisk demande un choix => selon le code on appelle un script ) Sinon au lieu d'utiliser on_motion_detected dans motion.conf, on peut utiliser on_motion_start qui ne fera un appel qu'en début de détection.

Documents relatifs