Asterisk est un logiciel IPBX libre (et propriétaire) sous GNU Linux de plus en plus répandu. La mise en place d’un logiciel de taxation externe se heurte pour Asterisk à un problème connu de fragmentation des distributions : en effet il existe des dizaines de distributions diverses, avec, pour chacune des choix différents de base de données, de tables utilisées et de gestion des tickets de communications.

Le but de cet article est de décrire les étapes de connexion d’un logiciel Comtrafic avec un IPBX Asterisk en prenant comme exemple une distribution Xivo.

Démarche, configuration Asterisk et prérequis

La majorité des manipulations nécessitant des droits conséquents, un accès root au système Linux est quasiment indispensable. La première question est de savoir par quel moyen récupérer les informations sur les communications et d’identifier si et où elle sont stockées. Aujourd’hui la majorité des configurations stockent nativement ces informations dans la base de données de l’IPBX. Il existe encore des cas de figures où les tickets ne sont pas stockés ou stockés sous forme de fichiers. Une fois la ou les tables identifiées, il reste à donner les droits d’accès pour Comtrafic et à déterminer les requêtes de récupérations des communications. Il est parfois plus intéressant de gérer les droits d’abord pour avoir les outils externes qui permettent d’identifier la table.

Étape 1 : Vérifier et gérer les droits d’accès à la base.

Pour Xivo, la base de données est PostgreSQL, d’autres distributions (les plus nombreuses) utiliseront MySQL et ses dérivés voire SQLite3.

Vérifier les accès à la base et identifier des tables

  • Connectez vous en root sur l’interface du serveur Linux et lancez l’interface PostgreSQL, tapez :

root@xivo:~# su – postgres

postgres@xivo:~$ psql asterisk

  • PostgreSQL doit répondre une ligne de type:
psql (9.4.19)
  • Liste des tables, taper

asterisk=# \dt

  • Liste des users , taper

asterisk=# SELECT login, passwd from “user”;

réponse :

 login  |    passwd
-------+---------------
root | Serv98@host727
  • Contenu de la table call_log , taper

asterisk=# SELECT * FROM call_log;

réponse :

id | date | source_name | source_exten | source_line_identity | destination_name | destination_exten | destination_line_identity | duration | user_field | answered 338 | 2019-11-14 19:31:48.794466 | 0471098882 | 0471098882 | sip/rffgg | | 0720672244 | | 00:00:00 | | f

Remarques :

Dans cette phase on identifie les tables, dans la majorité des distributions Asterisk, la table intéressante se nomme CDR, pour Xivo c’est CALL_LOG et CEL.

Donner les droits d’accès à distance

Vous pouvez pour les droits d’accès consulter les docs de la base de données celle de la distribution.

De manière générale il faut :

  • Créez (ou modifiez) un utilisateur reconnu par la base de données et donnez les droits à cet utilisateur pour le bon accès aux tables et au serveur.

Exemple pour Xivo et un utilisateur/mot de passe comtrafic/comtrafic :

CREATE USER comtrafic WITH PASSWORD ‘comtrafic’;

GRANT ALL PRIVILEGES ON DATABASE asterisk to comtrafic;

GRANT SELECT ON asterisk.”call_log” TO comtrafic;

GRANT SELECT ON ALL TABLES IN SCHEMA public TO comtrafic;
GRANT
all privileges ON asterisk."userfeatures" TO comtrafic;

ATTENTION : les commandes précédentes donnent tous les droits à ce user, ce qui est pratique pour démarrer mais ensuite il est impératif de restreindre les droits au minimum utile.

Donner au système externe les droit d’accès au serveur et à la base.

Il faut donc gérer les pare feux et les droits réseau en général, de plus il faut que la base accepte les accès externes. Pour PostgreSQL un bon résumé est donné ici : https://blog.bigbinary.com/2016/01/23/configure-postgresql-to-allow-remote-connection.html. Testez avec la commande (où 192.168.212.57 est l’adresse IP du serveur) psql -h 192.168.212.57 -U comtrafic

Étape 2 : Accéder à la base avec Comtrafic.

  • Vérifiez si le PC taxation a accès au serveur via ping, telnet ou http.
  • Utilisez un logiciel de connexion à la base de données : https://www.heidisql.com est excellent et permet l’accès à MySQL & PostgreSQL.
  • Si c’est OK lancer le logiciel ‘lien.exe’ par le raccourci créé sur le bureau, cliquez sur l’onglet paramétrage, cliquez sur le bouton ‘Modifier‘ : et renseignez les paramètres, notamment l’adresse du serveur, le login et mot de passe :
taxation Asterisk Xivo