« Asterisk MySQL » : différence entre les versions
Ligne 91 : | Ligne 91 : | ||
exten => s,3,MYSQL(Fetch fetchid <span style="color:purple">${resultid}</span> AcceptAnon)<br /> | exten => s,3,MYSQL(Fetch fetchid <span style="color:purple">${resultid}</span> AcceptAnon)<br /> | ||
exten => s,4,MYSQL(Disconnect <span style="color:purple">${connid}</span>)<br /> | exten => s,4,MYSQL(Disconnect <span style="color:purple">${connid}</span>)<br /> | ||
exten => s,5,NoOp(Les appels anonymes sont-ils autorisés ? ${Resultat}) | exten => s,5,NoOp(Les appels anonymes sont-ils autorisés ? <span style="color:purple">${Resultat}</span>) | ||
</blockquote> | </blockquote> | ||
Version du 16 août 2011 à 22:44
Prérequis
Vous devez disposer d'une machine avec les logiciels suivants :
- Asterisk 1.4.X / 1.6.X (configuration conseillée c.f. Asterisk Installation);
- Serveur web Apache (c.f. Apache_Installation sauf pour Ubuntu/Debian);
- Application PHPMyAdmin installée et configurée (c.f. PHPMyAdmin sauf pour Ubuntu/Debian).
Installation
Ubuntu / Debian
Il suffit de saisir cette ligne de commande dans le terminal afin d'installé la couche MySQL pour Asterisk ainsi que le serveur web et PHPMyAdmin:
|
|
L'assistant d'installation nécessitera de paramètrer le serveur MySQL : définir le mot de passe de l'utilisateur root. Ensuite l'accès à PHPMyAdmin depuis un navigateur web s'effectue directement depuis cette url : http://127.0.0.1/phpmyadmin/ (note: remplacer 127.0.0.1 par l'IP du serveur si vous n'accéder pas à l'interface depuis ce dernier).
Autre distribution
Il est possible d'installer indépendament les modules. Ainsi il faudra veiller à installer :
- le serveur web composé de Apache, PHP et MySQL;
- PHPMyAdmin, l'utilitaire de gestion de bases de données MySQL.
Ce sont toutes des applications OpenSources pouvant être téléchargées depuis Internet.
Activer MySQL pour Asterisk
Pour activer MySQL dans Asterisk, il est nécessaire d'éditer plusieurs fichiers de configuration :
- pour la connexion par Asterisk aux bases de données MySQL;
- pour la compréhension des requêtes SQL;
- pour que les fichiers de configuration puisse rechercher également l'information dans les bases.
Ainsi les bases de données deviendront une extension aux fichiers de configuration.
cdr_mysql.conf
Ce fichier est spécifique au module de journalisation des appels (Call Data Record).
Pour que le modules puisse fonctionner, il faut y renseigner les paramètres de configuration à la base de données :
[global] hostname=localhost dbname=nom_de_la_base table=nom_de_la_table password=motDePasse user=login port=3306 sock=/var/run/mysqld/mysqld.sock userfield=1
extconfig.conf
Pour que les différents fichiers de configuration puisse également chercher des éléments de configuration dans les bases SQL, il faut renseigner comme ceci le fichier :
agents => mysql,asterisk,queue_agent_table sipusers => mysql,asterisk,sip sippeers => mysql,asterisk,sip voicemail => mysql,asterisk,users queues => mysql,asterisk,queue_table queue_members => mysql,asterisk,queue_member_table
Où :
- agents => : désigne le nom du fichier de configuration;
- mysql : le type de la base de données;
- asterisk : le nom de la base de données;
- queue_agent_table : le nom de la table renfermant les paramètres ainsi que les valeurs affectées pour chaque enregistrement.
res_mysql.conf
Il faut également renseigner dans ce fichier les paramètres de connexion à la base :
[general] dbhost = localhost dbname = nom_de_la_base dbuser = login dbpass = motDePasse dbport = 3306 dbsock = /var/run/mysqld/mysqld.sock
Requêtes
Synthax
Les requêtes MySQL s'implémentent dans le DialPlan du fichier de configuration extensions.conf de la manière suivante :
exten => 1,1,NoOp(######## Requête MySQL ########)
exten => 1,2,MYSQL(Connect connid ${DBHOST} ${DBUSER} ${DBPASS}
exten => 1,3,MYSQL(Query resultid ${connid} <Requête SQL>)
exten => 1,4,MYSQL(Fetch fetchid ${resultid} Resultat) ; le résultat de la requête est stocké dans la variable Resultat.
exten => 1,5,MYSQL(Disconnect ${connid})
Récupérer des données SELECT
En reprenant l'exemple ci-dessus :
exten => s,1,MYSQL(Connect connid ${DBHOST} ${DBUSER} ${DBPASS} ${DBNAME})
exten => s,2,MYSQL(Query resultid ${connid} SELECT Value FROM myconf WHERE Param="AcceptAnon" AND Line="${Line}")
exten => s,3,MYSQL(Fetch fetchid ${resultid} AcceptAnon)
exten => s,4,MYSQL(Disconnect ${connid})
exten => s,5,NoOp(Les appels anonymes sont-ils autorisés ? ${Resultat})
Manipuler des données INSERT/UPDATE/DELETE
Fonctions
CDR (Call Data Records)
.:[ Asterisk IPBX ]:.
Inter-Asterisk eXchange | MOH Musique d'Attente