Chinese (People's Republic of China)  English  Français


Supinfo-Projects.com
Tous les projets des élèves ingénieurs de Supinfo



Projets
  Dernier Projet
  Les plus populaires
  Tous les Projets

196 Visiteurs
3168 Projets


My Supinfo-Projects

   Connectez-vous
   Créez un Compte


Synopsis

   50 Visites
   Note INTERNET : 20
    (2 Votants)
   7 Commentaires

   Lire l'article

Evaluez cet article

20
18
16
14
12
10
8
6
4
2
0


Commentez cet article

Auteur :

Email :

Votre commentaire :



 
2006 - Note de Synthèse Stage
Comment créer un serveur vocal
[25 mn de lecture - paru le 11/14/2006 8:24:17 PM - Public : Confirmé]

Auteur

jojolapin972Johan DINDAINE
Elève-Ingénieur Supinfo Paris
Promotion SUPINFO 2007

   Lui écrire
   Tous les projets de cet auteur
   Le mini-CV de cet auteur

4 Comment faire un menu vocal

1.1 Méthode simple : extension.conf

Si jamais, vous avez un menu assez simple a créer et une profondeur peu
étendue, il vous sera conseiller d'utiliser cette méthode.

Voici un exemple d'application pouvant être implémenter avec cette méthode.

L'utilisateur reçoit un message disant :

pour la direction commerciale, tapez 1,
pour la direction technique, tapez 2,
pour la direction des ressources humaines tapez 3,
pour tous les autres tapez 4.
 

Le fichier extension à mettre en place est le suivant :

exten => s,1,Playback(le_nom_du_fichier_sonore_de_bienvenu_sans
_lextention_gsm) ;

lis simplement le fichier sonore sans aucune interaction avec le client.

exten => s,2,Read(nom_de_la_variable_qui_enregistre_la_touche_du
_clavier|nom_du_fichier_sonore_disant_le_choix_des_touche_sans_lextention
_gsm|nombre_de_touche_a_rentrer_au_telephone);
lis le fichier sonore et enregistre la touche sur laquelle l'utilisateur a tappé.
Cette action coupe d'ailleurs la lecture du fichier sonore.

exten => s,3,GotoIf($[ ${nom_de_la_variable_qui_enregistre
_la_touche_du_clavier} = 1 ] ? 7 : 4 )

exten => s,4,GotoIf($[ ${nom_de_la_variable_qui_enregistre
_la_touche_du_clavier} = 2 ] ? 8 : 5 )

exten => s,5,GotoIf($[ ${nom_de_la_variable_qui_enregistre
_la_touche_du_clavier} = 3 ] ? 9 : 6 )

exten => s,6,GotoIf($[ ${nom_de_la_variable_qui_enregistre
_la_touche_du_clavier} = 4 ] ? 10 : 1)

exten => s,7,Dial(SIP/COMPTE_COMMERCIAL)

exten => s,8,Dial(SIP/COMPTE_TECHNIQUE)

exten => s,9,Dial(SIP/COMPTE_HUMAIN)

exten => s,10,Dial(SIP/COMPTE_ACCUEUIL)

1.2 Méthode approfondie : AGI (PHP)

La méthode avec AGI est a utiliser pour les grandes applications plus élaborées avec de nombreuses interaction notamment avec les bases de données.

Pour ce faire, on utilise un script PHP en mode console qui a la particularité de
commencer, comme pour les scripts Shell par un appel de l'interpréteur de commande PHP.

#! /usr/bin/php5 -p (en supposant que vous utilisez php5)

L'option -q signifie quiet, le programme ne renverras pas l’erreur HTML qui pourrait troubler Asterisk.

Il vous faudra ensuite ouvrir les différents flux qui permettront l'interaction
avec Asterisk : le flux d'entrée standard, le flux de sortie standard et d'erreur.

$stdin = fopen('php://stdin', 'r');

$stdout = fopen('php://stdout', 'w');

$stdlog = fopen('monfichierdelog', 'w');

?>

Etant donné que la manipulation de flux est très compliquée à effectuer, je ne
pourrais que vous conseiller d'utiliser des fonctions qui permettent d'envoyer des
fonctions très simplement à Asterisk.

L'une d'entre elles est la suivante :

function execute($command) {
   GLOBAL $in, $out;
   fputs($out, $command . " \n");
   fflush($out);
   $data = fgets($in, 4096);
   if (preg_match("^([0-9]{1,3}) (.*)", $data, $matches)) {
       if (preg_match('�^result=([0-9a-zA-Z]*)( ?\((.*)\))?',
$matches[2], $match)) {
           $arr['code'] = $matches[1];
           $arr['result'] = $match[1];
           if (isset($match[3]) && $match[3])
               $arr['data'] = $match[3];
           return $arr;
       } else return 0;
   } else return -1;
}

example:
$result = execute("GET VARIABLE testing");
// Now $result['data'] holds the value of testing

$result = execute("GET DATA insertid 3000 5");
// $result['result'] is the entered digits

La liste des commandes disponibles nativement est disponible quand à elle sur la page suivante :

http://www.voip-info.org/wiki/index.php?page=Asterisk+-
+documentation+of+application+commands



Articles de la même catégorie

 Pages : Top


6 Visites
0 Commentaires
Triple_Play
[30 mn de lecture - paru le 11/13/2006 8:38:08 PM - Public : Confirmé]

En savoir plus


7 Visites
0 Commentaires
XAMPP discovery
[20 mn de lecture - paru le 11/13/2006 4:02:01 PM - Public : Débutant]

En savoir plus


26 Visites
0 Commentaires
A la découverte de XAMPP
[20 mn de lecture - paru le 11/13/2006 4:00:45 PM - Public : Débutant]

En savoir plus

   Tous les Articles


SUPINFO Training Center peut vous proposer une formation en réseau...

   Suivez notre formation cisco et devenez certifié Cisco avec SUPINFO Training Center


Powered by Campus-Booster Technology
Conditions d'utilisation & Copyright | Respect de la vie privée
© Copyright 1965-2006 Supinfo Paris, Paris Academy of Computer Science
Supinfo, Ecole Supérieure d'Informatique et Paris Academy Of Computer Science are trade marks.
23, rue de Château LANDON - 75010 PARIS - Phone : +33 (0) 153359 700 Fax : +33 (0) 153359 701

Web site autided by :