Création d’un menu vocal interactif avec Asterisk

Création d’un menu vocal interactif avec Asterisk

Sélection du moteur de syntèse vocale

Il existe plusieurs moteurs de synthèse vocale : Flite (intégré à Asterisk), Googletts (le plus poussé actuellement).
Notre choix s’est porté sur Googletts, projet libre de Google, possédant une agi simple a utiliser mais nécessitant un accès à internet pour la génération vocale.

Installation des dépendances

Nous rappelons que nous avons installé Asterisk sur une CentOS 6.5 minimale, il manque donc certaines dépendances :

  • Perl : langage de programmation PERL
  • perl-libwww : Librairie Perl pour le WEB
  • sox : SOund eXchange, Processeur sonore
  • mpg123 : lecteur et encodeur MPG audio

Nous devons donc ajouter le dépot RPMFORGE pour CentOS 6.x

  1. Téléchargez le package :
    $ wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm
  2. Importez la clé de sécurity GPG :
    $ rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
  3. Installez le dépot:
    $ rpm -K rpmforge-release-0.5.3-1.el6.rf.*.rpm
    
  4. Installation des dépendaces requises : perl perl-libwww-perl.noarch sox.x86_64 mpg123
    $ yum install perl perl-libwww-perl.noarch sox.x86_64 mpg123

Téléchargement de Googletts

Téléchargez l’Agi googletts.agi
version zip (pour windows)

version tar.gz
Décompressez l’archive et copier le fichier googletts.agi dans le répertoire /var/lib/asterisk/agi-bin/

$ wget http://www.madti.info/dl/googletts.zip
$ unzip googletts.zip
$ cp googletts.agi /var/lib/asterisk/agi-bin/googletts.agi

Génération du menu vocal interactif avec Asterisk

Pour cet exemple créons un menu standard d’accueil avec choix de l’interlocuteur entre Thomas, Hervé et Gauvain.
Editez le fichier extensions.conf d’asterisk dans /etc/asterisk/. Ajoutez les lignes suivantes dans le fichier.

[accueil]
exten => 8001,1,Answer() ; asterisk decroche
exten => 8001,n,Set(TIMEOUT(response)=5) ; mise en place d'un timer de 5 secondes
exten => 8001,n,agi(googletts.agi,"Bienvenue sur ce menu interactif.",fr,any,1.3) ; message d'accueil
exten => 8001,n,agi(googletts.agi,"Qui souhaitez vous joindre ?",fr,any,1.3)
exten => 8001,n,agi(googletts.agi,"Pour Thomas tapez 1.",fr,any) ; message de premiere option
exten => 8001,n,agi(googletts.agi,"Pour Hervé tapez 2.",fr,any) ; message de seconde option
exten => 8001,n,agi(googletts.agi,"Pour Gauvain tapez 3.",fr,any) ; message de troisieme option
exten => 8001,n,agi(googletts.agi,"Pour raccrocher tapez étoile",fr,any,1.2) ; message de fin
exten => 8001,n,agi(googletts.agi,"Pour réécouter ce message tapez dièse",fr,any) ; message de repetition
exten => 8001,n,WaitExten() ; attente d'une touche
exten => 1,1,Goto(admin,1001,1) ; sur pression de la touche '1' allez dans le contexte admin et appeler 1001, a la premiere ligne du contexte
exten => 2,1,Goto(admin,1002,1) ; sur pression de la touche '2' allez dans le contexte admin et appeler 1002, a la premiere ligne du contexte
exten => 3,1,Goto(gestion,2001,1) ; sur pression de la touche '3' allez dans le contexte gestion et appeler 2001, a la premiere ligne du contexte
exten => _[4-9],1,agi(googletts.agi,"Touche non supportée. Retour au menu",fr,any,1.3) ; sur pression d'une touche de 4 à 9 inclus, message vocal
exten => _[4-9],n,Goto(accueil,8001,4) ; sur pression d'une touche de 4 à 9 inclus aller dans le contexte accueil, appeler 8001 (ce menu), a la ligne 4
exten => #,1,Goto(accueil,8001,3) ; sur pression de la touche 'diese' aller dans le contexte accueil, appeler 8001 (ce menu), a la ligne 3
exten => *,1,Hangup() ; sur pression de la touche 'etoile', racrocher
exten => t,1,Goto(accueil,8001,3) ; si le timer se termine aller dans le contexte accueil, appeler 8001 (ce menu), a la ligne 3

Test du menu

Pour tester le menu il suffit d’appeler le numéro 8001 pour avoir l’accueil.
Si tout fonctionne vous entendrez une voix féminine faire les annonces, et sur pression de la touche requise votre correspondant vous répondra.

Activation de l’assistance à distance non sollicitée de Windows 7 avec contrôle de l’UAC

Lorsqu’un utilisateur dans un domaine Active Directory Windows rencontre des problèmes, l’utilisation de l’outil d’assistance à distance intégré en standard dans Windows s’avère efficace pour lui venir en aide.

L’outil de Microsoft propose deux types distincts se référant aux modes de lancement des sessions de l’assistance à distance :

  • Assistance à distance sollicitée avec envoi d’une invitation par courrier électronique ou sous forme de fichier : une personne envoie une invitation, par courrier électronique ou sous forme de fichier, à une personne capable de l’aider.
  • Assistance à distance non sollicitée : pour pouvoir utiliser ce type d’assistance, une configuration préalable est requise, et les ordinateurs doivent se trouver au sein d’un domaine. Cela signifie que vous, en tant qu’administrateur système, pouvez déterminer qui peut proposer de l’assistance à distance au sein du domaine (ensemble de personnes définis, tel que des membres du support, offrant une assistance aux utilisateurs).

L’objectif de ce tutoriel est de créer une Stratégie de groupe permettant d’activer et d’utiliser l’assistance à distance non sollicitée de Windows dans un domaine Active Directory, avec l’interaction du contrôle de compte d’utilisateur (User Account Control UAC).
(Testé sous Windows Serveur 2008 R2 et Windows 7 professionnel)
lire la suite sur www.zentic.info

Serveur VoIP Asterisk sur CentOS Partie 4/4 (TroubleShooting)

Nous allons

  1. Installer Asterisk (Article sur www.madti.info en collaboration avec Thomas Schultz).
  2. Configurer et tester Asterisk
  3. Installer et configurer Postfix
  4. Troubleshooting Asterisk

Mise en place d’un Serveur VoIP Asterisk sur CentOS Partie 4/4 (Troubleshooting Asterisk)

Afin de diagnostiquer les éventuels problèmes liés à la configuration d’Asterisk, il est indispensable d’en connaitre le fonctionnement de base. De nombreux blogs et/ou wikis existent. Et puis nous n’allons réinventer la roue, alors vous trouverez sur le site

http://www.voip-info.org/wiki/view/How+To+Debug+and+Troubleshoot+VOIP

Tout ce dont vous avez besoin.

Et puis un petit résumé:

Lancement d’Asterisk

Pour lancer Asterisk, il faut d’abord se connecter en root :

Lancer Asterisk :

root# /etc/init.d/asterisk start

Lancer la CLI (Command-Line Interface) :

root# asterisk -rvvvvv

Les commandes de la CLI

Le nombre de commandes est important. Voici celles que nous avons le plus utilisées :

  • sip debug : active le mode debug et affiche les trames
  • sip show users : affiche les utilisateurs inscrits
  • reload : recharge les fichiers de configuration
  • show dialplan : affiche extensions.conf

Vous pouvez accéder à toutes les commandes ici.

Les fichiers de configuration

Les fichiers de configuration d’Asterisk se trouvent dans /etc/asterisk/ et portent l’extension .conf.

  • asterisk.conf : contient les emplacements des différents répertoires utilisés par Asterisk
  • extensions.conf : permet de définir le plan de numérotation (Dial Plan)
  • sip.conf : permet de définir les contextes d’appel et les utilisateurs utilisant le protocle SIP

 

 

Serveur VoIP Asterisk sur CentOS Partie 3/4 (Installer et configurer Postfix)

Nous allons

  1. Installer Asterisk (Article sur www.madti.info en collaboration avec Thomas Schultz).
  2. Configurer et tester Asterisk
  3. Installer et configurer Postfix
  4. Troubleshooting Asterisk

Mise en place d’un Serveur VoIP Asterisk sur CentOS Partie 4/4 (Troubleshooting Asterisk)

Afin de diagnostiquer les éventuels problèmes liés à la configuration d’Asterisk, il est indispensable d’en connaitre le fonctionnement de base. De nombreux blogs et/ou wikis existent. Et puis nous n’allons réinventer la roue, alors vous trouverez sur le site

http://www.voip-info.org/wiki/view/How+To+Debug+and+Troubleshoot+VOIP

Tout ce dont vous avez besoin.

Et puis un petit résumé:

Lancement d’Asterisk

Pour lancer Asterisk, il faut d’abord se connecter en root :

Lancer Asterisk :

root# /etc/init.d/asterisk start

Lancer la CLI (Command-Line Interface) :

root# asterisk -rvvvvv

Les commandes de la CLI

Le nombre de commandes est important. Voici celles que nous avons le plus utilisées :

  • sip debug : active le mode debug et affiche les trames
  • sip show users : affiche les utilisateurs inscrits
  • reload : recharge les fichiers de configuration
  • show dialplan : affiche extensions.conf

Vous pouvez accéder à toutes les commandes ici.

Les fichiers de configuration

Les fichiers de configuration d’Asterisk se trouvent dans /etc/asterisk/ et portent l’extension .conf.

  • asterisk.conf : contient les emplacements des différents répertoires utilisés par Asterisk
  • extensions.conf : permet de définir le plan de numérotation (Dial Plan)
  • sip.conf : permet de définir les contextes d’appel et les utilisateurs utilisant le protocle SIP

 

 

Afficher Cacher un texte sous Word

Pour afficher cacher un texte mis en forme sous Word. Il faut passer par une petite programmation en vba.
Une série de cases à cocher ( une par section à cacher) est à créer, nommer.
Puis à vous d’adapter le script suivant:

'SCRIPT VBA POUR AFFICHER CACHER UN TEXTE PAR MODIFICATION DE SIGNET OU PAR TEXTE MASQUÉ
 'Préparation de Word
 'Affichage du ruban développeur
 'Fichier=>Options=>Personnaliser le Ruban>cocher développeur(design)
 'Préparation du document
 'On insère dans les documents des case-à-cocher (ActiveX)(onglet developpeur>contrôles>mode création, contrôles>outils hérités>contrôles ActiveX>case-à-cocher)
 'On insère des signets (marques-pages/bookmark) aux endroits a modifier (un signet titre et un second texte).
 'On créer les styles à appliquer (styles pour titres et styles pour textes)
 'On appuie sur Alt+F11 pour l’éditeur VBE/VBA
 'On selectionne Project(nom_du_document), puis Microsoft Word Objets =>ThisDocument
 '
 'Définitions
 'On déclare les fonctions (SUB) en PRIVATE pour qu’elles ne soient disponibles que pour ce document, et qu'elles n'interfèrent pas les uns avec les autres.
 'Dim permet la déclaration de la variable, AS son Format
 'On assigne les valeurs aux variables:
 '"texte" est une chaîne de caractères
 'Chr(10) indique un retour à la ligne
 'Chr(169) indique un CopyRight ©
 'Chr(167) indique un Alinea/Paragraphe §
 'Chr(174) indique un Registered/ Ressort ®
 'Chr(153) indique un TradeMark ™
 '& indique une concaténation de chaîne
 'vbNullString efface le contenu de la variable
 '
 'On commence les conditions avec IF et on termine la condition avec End IF
 'ELSE une condition « si faux »
 'Call appelle une autre fonction SUB
 'With permet d’appliquer plusieurs modifications à un objet et se termine par End With
 '
 '
 'Script
 'case-à-cocher 1
 Private Sub CheckBox1_Click()
 Dim StrTxt As String, StrBkMk As String
 Dim Stxt As String, StBk As String
 StrBkMk = "Bookmark1"
 StBk = "bookmarka"
 If Me.CheckBox1.Value = True Then
 StrTxt = "Titre signet 1"
 Stxt = Chr(10) & "Texte signet 1" & Chr(10)
 Else
 StrTxt = vbNullString
 Stxt = vbNullString
 End If
 Call UpdateBookmark(StrBkMk, StrTxt)
 Call UpdateBookmark2(StBk, Stxt)
 Call ListBookmark("Bookmark1")
 Call StyleBookmark("bookmarka")
 End Sub
 'case-à-cocher 2
 Private Sub CheckBox2_Click()
 Dim StrTxt As String, StrBkMk As String
 Dim Stxt As String, StBk As String
 StrBkMk = "Bookmark2"
 StBk = "bookmarkb"
 If Me.CheckBox2.Value = True Then
 StrTxt = "Titre signet 2"
 Stxt = Chr(10) & "Texte signet 2" & Chr(10)
 Else
 StrTxt = vbNullString
 Stxt = vbNullString
 End If
 Call UpdateBookmark(StrBkMk, StrTxt)
 Call UpdateBookmark2(StBk, Stxt)
 Call ListBookmark("Bookmark2")
 Call StyleBookmark("bookmarkb")
 End Sub
 'case-à-cocher 3
 Private Sub CheckBox3_Click()
 Dim StrTxt As String, StrBkMk As String
 Dim Stxt As String, StBk As String
 StrBkMk = "Bookmark3"
 StBk = "bookmarkc"
 If Me.CheckBox3.Value = True Then
 StrTxt = " Titre signet 3 "
 Stxt = Chr(10) & "Texte signet 3." & Chr(10)
 Else
 StrTxt = vbNullString
 Stxt = vbNullString
 End If
 Call UpdateBookmark(StrBkMk, StrTxt)
 Call UpdateBookmark2(StBk, Stxt)
 Call ListBookmark("Bookmark3")
 Call StyleBookmark("bookmarkc")
 End Sub
 'case-à-cocher 4
 Private Sub CheckBox4_Click()
 Dim StrTxt As String, StrBkMk As String
 Dim Stxt As String, StBk As String
 StrBkMk = "Bookmark4"
 StBk = "bookmarkd"
 If Me.CheckBox4.Value = True Then
 StrTxt = " Titre signet 4»
 Stxt = Chr(10) & "Texte signet 4." & Chr(10)
 Else
 StrTxt = vbNullString
 Stxt = vbNullString
 End If
 Call UpdateBookmark(StrBkMk, StrTxt)
 Call UpdateBookmark2(StBk, Stxt)
 Call ListBookmark("Bookmark4")
 Call StyleBookmark("bookmarkd")
 End Sub
 'case-à-cocher 5
 'cache affiche grâce à "texte masqué" de la police de caractères (texte ou page blanche)
 Private Sub CheckBox5_Click()
 Bookmarks("Bookmark5").Range.Font.Hidden = Not CheckBox5.Value
 '// If the logic is wrong, change to
 '// = Not Checkbox5.Value
 End Sub

'mise-a-jour du signet de titre
Sub UpdateBookmark(StrBkMk As String, StrTxt As String)
Dim bProtected As Boolean
Dim BkMkRng As Range
Dim sPassword As String
sPassword = "" 'password pour protection du doc
'deprotection du doc
If ActiveDocument.ProtectionType <> wdNoProtection Then
bProtected = True
ActiveDocument.Unprotect Password:=sPassword
End If
With ActiveDocument
If .Bookmarks.Exists(StrBkMk) Then
Set BkMkRng = .Bookmarks(StrBkMk).Range
BkMkRng.Text = StrTxt
.Bookmarks.Add StrBkMk, BkMkRng
End If
End With
'reprotection du doc
Finished:
If bProtected = True Then
ActiveDocument.Protect _
Type:=wdAllowOnlyFormFields, NoReset:=True, Password:=sPassword
End If
Set BkMkRng = Nothing
End Sub

'mise-a-jour du signet de texte
Sub UpdateBookmark2(StBk As String, Stxt As String)
Dim bProtected As Boolean
Dim BkMkRng2 As Range
Dim sPassword As String
sPassword = "mot de passe" 'password pour protection du doc
'deprotection du doc
If ActiveDocument.ProtectionType <> wdNoProtection Then
bProtected = True
ActiveDocument.Unprotect Password:=sPassword
End If
With ActiveDocument
If .Bookmarks.Exists(StBk) Then
Set BkMkRng2 = .Bookmarks(StBk).Range
BkMkRng2.Text = Stxt
.Bookmarks.Add StBk, BkMkRng2
End If
End With
'reprotection du doc
Finished:
If bProtected = True Then
ActiveDocument.Protect _
Type:=wdAllowOnlyFormFields, NoReset:=True, Password:=sPassword
End If
Set BkMkRng = Nothing
End Sub

'application du style de titre
Sub ListBookmark(StrBkMk As String)
Dim BkLstRange As Range
Dim bProtected As Boolean
Dim sPassword As String
sPassword = "mot de passe" 'password pour protection du doc
'deprotection du doc
If ActiveDocument.ProtectionType <> wdNoProtection Then
bProtected = True
ActiveDocument.Unprotect Password:=sPassword
End If
If Me.CheckBox1.Value = True Then
With ActiveDocument
If .Bookmarks.Exists(StrBkMk) Then
Set BkLstRange = .Bookmarks(StrBkMk).Range
BkLstRange.Style = "Puce_1"
End If
End With
Else
With ActiveDocument
If .Bookmarks.Exists(StrBkMk) Then
Set BkLstRange = .Bookmarks(StrBkMk).Range
BkLstRange.Style = "Normal"
End If
End With
End If
'reprotection du doc
Finished:
If bProtected = True Then
ActiveDocument.Protect _
Type:=wdAllowOnlyFormFields, NoReset:=True, Password:=sPassword
End If
End Sub

'application du style de texte
Sub StyleBookmark(StBk As String)
Dim BkLstRange2 As Range
Dim bProtected As Boolean
Dim sPassword As String
sPassword = "mot de passe" 'password pour protection du doc
'deprotection du doc
If ActiveDocument.ProtectionType <> wdNoProtection Then
bProtected = True
ActiveDocument.Unprotect Password:=sPassword
End If
With ActiveDocument
If .Bookmarks.Exists(StBk) Then
Set BkLstRange = .Bookmarks(StBk).Range
BkLstRange.Style = "article"
End If
End With
'reprotection du doc
Finished:
If bProtected = True Then
ActiveDocument.Protect _
Type:=wdAllowOnlyFormFields, NoReset:=True, Password:=sPassword
End If
End Sub

Serveur VoIP Asterisk sur CentOS Partie 1/4 (Préparation de la distribution)

Nous allons

  1. Installer Asterisk
  2. Configurer et tester Asterisk
  3. Installer et configurer Postfix
  4. Troubleshooting Asterisk

Mise en place d’un Serveur VoIP Asterisk sur CentOS Partie 1/4 (Préparation de la distribution)

Préparation de la distribution

Nous avons choisi une distribution Centos 6.5, avec une installation minimale, pour sa stabilité et sa compatibilité avec Asterisk. Nous serons connectés en « root » pour des raisons de droits système.

Après installation de CentOS. Pensez à activer l’interface réseau eth0, car elle est désactivée par défaut, et à la configurer avec une adresse IP fixe.
Continuer la lecture de « Serveur VoIP Asterisk sur CentOS Partie 1/4 (Préparation de la distribution) »

Création d’un domaine active directory avec windows server 2008r2

Création d’un domaine active directory avec windows server 2008r2

Création d'un domaine active directory avec Windows server 2008 R2
Création d’un domaine Active Directory avec windows server 200r2
Nom du domaine skynet.t2si avec le serveur PDC comme contrôleur de domaine.

Préparation du serveur

Nommer le serveur PDC, attention il est très difficile de renommer le serveur après la création du domaine et de garder le domaine stable.

Ajouter les rôles suivants:

  • Services de domaine Active Directory
  • Services de fichiers
  • Serveur DHCP
  • (optionnel car installé lors de DCPROMO) Serveur DNS

[AdSense-B]

Préparation du domaine (dcpromo.exe)

Continuer la lecture de « Création d’un domaine active directory avec windows server 2008r2 »

Transformer un poste sous windows xp en kiosque

Transformer un poste sous windows xp en kiosque

1 .Création de l’utilisateur Kiosk.

Ouvrez une session Windows XP avec le compte « administrateur » afin de créer un compte utilisateur « Kiosk ».

Le compte « Kiosk » sera un compte utilisateur limité.

Déconnecter le compte administrateur.


2 .Installation et configuration de Firefox.

Connecter le compte Kiosk.

Installer Firefox sous sa dernière version (à l’heure de ces lignes version 30.0), avec les droits administrateur si demander.

Aller dans le menu de configuration de Firefox et choisir « Modules ».

Rechercher le module « mKiosk 2014.2.0 » (à l’heure de ces lignes version 30.0) et l’installer.

A l’invite redémarrer Firefox.
Continuer la lecture de « Transformer un poste sous windows xp en kiosque »