Module Calling

= Informations =

= Vocation = Assure la prise en charge du suivi des appels téléphonique( appels entrant et sortant).

Une alerte lors d'appel entrant contenant les liens vers les informations clients et/ou les informations du collaborateur appelé. Historisation des appels dans les fiches de tiers et dans l'agenda

= Installation =

= Configuration =

Ce module active et configure le module clicktodial de dolibarr déjà présent lors de l'installation. Une fois installé et configuré le module, il vous sera nécessaire de coupler dolibarr à votre fournisseur de service de téléphonie en voip.

Configuration du clicktocall
Ce module st natif dans dolibarr, sur la fiche de chaque utilisateur interne de dolibarr vous avez un onglet clicktocall.Il est nécessaire de renseigner les informations de connexion (login/pass/tel), et le numéro de téléphone utilisé. l'url de déclenchement du click to call est défini pas le module calling, aussi il ne faut pas modifié les éléments de configuration du clicktocall

Configuration de la liaison avec votre provider de SIP
Le choix de votre fournisseur peut limiter l'usage du module en fonction de l'api de ce dernier. Ce module est fourni avec des sous module permettant d'ajuster celui-ci à votre fournisseur. Liste des fournisseur supporté à ce jour:

- Keyyo : Voir keyyo.fr - L'api supporte les appels entrant et sortant - OVH : Voir Ovh.fr - L'api supporte les appels sortant - OVH + @Asterisk : extension du module ovh, ajoute la prise en charge des appels sortant par l’intermédiaire d'un pbx privé. Nécessite d'installer et configurer un serveur asterisk - L'api supporte les appels entrant et sortant

Liaison Agenda et action
Ajouter une action dans le dictionnaire "liste des action" de la table 	llx_c_actioncomm, afin de lister les actions spécifique à la téléphonie;

- code : AC_TEL - Libellé : Phone call - type : system

Cet ajout vous permet d'exploiter le bouton du menu principal téléphonie, qui devrait limiter l'affichage aux seuls événements de téléphonie.

le mode d'alerte
Cette option vous permet de gérer le comportement lors des appels entrant;

- Pas de notification en popup; aucune notification, vous pouvez dans ce cas choisir le module norun des sous module de notification - Seul les utilisateurs du poste appelé sont notifiés; n'informe que l'utilisateur dont le numéro est appelé. cette sélection prend en compte le numéro de poste configuré sur la fiche utilisateur, et le numéro de ligne défini dans l'onglet clicktocall - Tous les utilisateur configuré pour le clicktodial sont notifiés - Tous les utilisateurs sont notifiés

comportement sur les numéro des collaborateurs et de l'entreprise
Cette option règle le comportement lors de l'appel entrant d'un collaborateur (y compris avec sont numéro de mobile), appel interne, appel d'un site externe.

- Ignorer les appels entrant des numéros utilisateurs de l'entreprise (pro/perso/mobile); aucune notification ni trace dans les actions - Accepter et notifier sauf l'utilisateur correspondant

Information du collaborateur appelé
Affichage d'information complémentaire sur le collaborateur réellement appelé par un tiers (basé sur le numero de téléphone contacté).

Création de fiche
Dans le cas d'appel entrant, dont le numéro n'est pas trouvé dans la base de donnée, une fiche peut être créer, avec comme nom le numéro de téléphone.

- Pas de création de fiche - Créer un tiers avec le numéro de l'appelant - Créer un contact avec le numéro de l'appelant

Appel Anonyme
Peut créer une fiche pour les appels anonyme.

Trace les appels
Tracer les appels dans les actions/agenda de dolibarr; Vous pouvez désactiver cette option.

Utilisateur appel entrant
Pour gérer correctement la liaison dans les événement, il est nécessaire d'ajuster le choix de l'utilisateur à qui sera affecté l'action. Il est souhaitable d'ajouter un utilisateur a cette fin.

= Utilisation =

La manipulation et l'utilisation de ce module reste simple, compte tenu qu'il ne généré pas d'action particulières. le clicktocall sur les numéro de téléphone vous assure la possibilité de lancer des appels en 1 clic. Attention toutefois les numéro de fax ce retrouvent aussi avec un liens de click to call.

Lors d'un appel entrant, en fonction de la configuration du mode d'alerte, vous aurez une boite affichant le liens vers la fiche du contact et/ou de la société qui cherche à vous joindre. De plus les appels sont tracés dans l'agenda.

= Information Développement =

Généralités
Le fonctionnement du module s’appuie sur un fichier "calling.php" à la racine public de dolibarr. Celui ci est donc accessible via http. Tous les appels de ce module transite par ce fichier, tant les appels entrant que les sortant. Le module utilise une table de donnée supplémentaire (llx_calling ) afin de tracer les appels entrant, et l'utilisateur appelé. Un dossier calling est crée dans la dossier Documents afin de stocker des fichier javascript spécifique par utilisateur.

Sous Module de liaison vers api de voip
Il est possible d'ajouter et modifier les modules d'interaction avec les api de VOIP. les modules fournis assure une liaison vers des services precis, si vous utiliser une autre api, il sera necessaire de créer votre propre module de liaison.

Le fichier d'un module de gestion d'api doit être nommé api_xxxx.php, ou xxxx représente le nom du fournisseur du service

Émission d'un appel
Cette liaison exploite le module ClicktoCall. Il assure l’émission d'un appel, qui une fois lancé fera sonner votre téléphone, et celui de l'interlocuteur que vous appelez. L'utilisation du clicktodial complétera automatiquement la fiche action du tiers/contact.

Pour la conservation des données, et l'affichage du popup, un fichier est créer dans Documents/calling de dolibarr. Ce fichier assure le stockage des données temporaire.

Réception d'un appel
Cette section un peu plus complexe sera très dépendante des service offert par l'offre de VOIP à laquelle vous avez souscrit.

L'interception des appels, ne vous permettra pas de décrocher votre téléphone, mais vous proposera un popup de dialogue, vous fournissant le liens vers la fiche Tiers/contact correspondante, si celle ci existe dans la base de donnée.Dans le cas contraire, il sera possible de créer une fiche de tiers/contact basé sur le numéro de téléphone.

Tous appel entrant viendra compléter la fiche action du tiers. En cas d'appel non répondu, la tache restera ouverte. Dans le cas d'un appel décroché, la tache sera clôturé.

Configuration de l'api tiers
Il sera nécessaire pour rendre opérationnel la notification des appels entrant de préciser une URL de notification pour l'api tiers, qui doit initier cette notification. Utiliser l' URL entrant, afficher dans votre page de configuration. Celle ci étant générer par le module d'une api précise, les variables GET a remplacer, sont spécifique à ce fournisseur.

Note
- Stockage des numéro de téléphone en base de donnée. Pour pouvoir être extrait et reconnu, il est souhaitable d'utiliser la nomenclature international / national des numéros. 02 35 98 63 65 ou 33 6 98 65 87 54 ou 002 65 98 32 78

Élément de configuration d'asterisk
La configuration d'asterisk reste un serveur complet et complexe, les possibilité sont énorme, aussi, je vous encourage à consulter les tuto spécialisés. N'oubliez toutefois pas que les PBX sont très fortement attaqué, et que ceux si peuvent générer des coût important si votre serveur ce fait hacker ou est mal configuré, compte tenu qu'il est une passerelle vers le réseau téléphonique, et ces tarifs variant (mobile, appel surtaxé, international, etc..). Pour ma part, je n'utilise asterisk que dans la prise en charge des appels entrants, les appels sortant exploitant l'api d'ovh via le click to call. Le module dolibarr calling d'asterisk est conçut en ce sens.

Fichier extensions.conf
les éléments de configuration suivant parte du principe que vous avez installé un asterisk fonctionnel, et configuré votre liaison avec votre provider. Il ne font qu'apporter les éléments de base pour l’interception des appel entrant et la notification vers dolibarr. Il doivent renvoyer en même temps vers votre ligne sip.

Context appel entrant
[process_entrant] exten => _X.,1,NoOp exten => _X.,n,Set(__DOLI_CALLER=${CUT(CUT(SIP_HEADER(From),@,1),:, 2)}) exten => _X.,n,Set(__DOLI_CALLE=${CUT(CUT(SIP_HEADER(To),@,1),:, 2)})
 * appel entrant via numero provider

exten => _X.,n,Goto(dolibarr_notification,s,1)
 * REDIRECTION

Context macro-notification
[macro-dolinotif] exten => s,1,SET(${CURL(http://votreserveur/calling/calling.php?account=${EXTEN}&caller=${DOLI_CALLER}&callee=${DOLI_CALLE}&type=CONNECT&callref=${DOLI_CALLER}&version=1)})
 * Doli
 * macro pour event CONNECT

Context notification
[dolibarr_notification] exten => s,1,SET(CALLERID(name)=${CURL(http://votreserveur/calling/calling.php?account=${USERNAME}&caller=${DOLI_CALLER}&callee=${DOLI_CALLE}&type=SETUP&callref=${DOLI_CALLER}&version=1)}) exten => s,n,Answer exten => s,n,Dial(SIP/votreposte, 60,etTrM(dolinotif)) exten => h,1,SET(CALLERID(name)=${CURL(http://votreserveur/calling/calling.php?account=${USERNAME}&caller=${DOLI_CALLER}&callee=${DOLI_CALLE}&type=RELEASE&callref=${DOLI_CALLER}&version=1)}) exten => h,2,Hangup(16)
 * Doli
 * Process
 * put notif SETUP
 * option : r pour sonnerie d'attente
 * option : e Execute "h" as the peer when this call ends
 * option : t T transphert appelant / appelé
 * option : M Macro
 * option S raccorche apres x seconde
 * put notif RELEASE

Sous Module des notifications d'appel entrant
Les modules d'alerte, sont les modules qui travaille en temps réel afin de vous informer des appels entrant. Il créer un affichage proposant les liens vers la fiche client/contact, et éventuellement celle du collaborateur initialement appelé. Plusieurs modules sont disponible en fonction des contextes d'utilisation.

- Mod NoRun : Module d'exemple, permettant de désactiver tout éléments JavaScript de notification des appels - Mod Simplejs : Module original de notification via un popup (modale box jquery) en pleine page. Destiné à l'usage d'un utilisateur unique de dolibarr. Basé sur un appel récurent en ajax. - Mod Advancedjs : Module de notification avancé, assurant un affichage non intrusif (lien menu haut droit, et détail appel entrant au click sur le lien). Exploité en contexte mutli-utilisateurs. Basé sur un appel récurent en ajax. - Mode Nodejs : Module de notification avancé, il est identique en terme d'affichage au module Advancedjs, mais exploite un serveur @nodejs complementaire afin de pousser les informations vers les client dolibarr. Il n'y a aucun appel récurent en ajax. Il nécessite un serveur dedié, nodejs installé. le servelet et fourni dans le paquet.

Sous module Nodejs pre-requis
Ce sous module exploite la technologie node.js. Il est donc nécessaire que votre serveur qui héberge dolibarr, soit installé nodejs. Sans quoi, le sous module client de dolibarr ne fonctionnera pas.

Servelet Nodejs
les possibilité de configuration étant nombreuses, nous allons détailler rapidement une installation de base avec ces pre-requis pour ce servelet. extraire le zip nodejsd dans votre dossier /var/nodejs

le script d’exécution s'appel index.js

Il vous suffit de lancer node /var/nodejs/index.js

pour que le script démarre. Si vous vous connecter à votre dolibarr (ayant activé le module client Nodejs), vous verrez alors le serveur vous informer le la connexion de l'id de votre utilisateur.

Pour lancer en production votre servelet, utilisé le fameux "&", afin que votre servelet ne ce coupe pas lorsque vous vous déconnecterez du ssh.

node /var/nodejs/index.js &

Une fois installé et configuré votre servelet (voir fichier config.js), aller dans le panneau de configuration du module calling de dolibarr, activer le module nodejs, puis preciser l'url et le port de votre servelet

Note
Il est possible de moduler ce comportement avec des module nommé alert_xxx.php

= Fix Version / Note version =

1.2.4
- Check process for Dolibarr 3.4.1 - Fix display popup for all incoming calls

1.2.3
- Check and Fix process for Dolibarr 3.4.0 - Add user for manipulate calendar and incoming/outgoing calls