Module Calling

From Dolibarr ERP CRM Wiki
Jump to navigation Jump to search

Informations

Module name Calling
Editor / Editeur Oscim - http://oscim.fr
Download or buy page / Page achat ou téléchargement http://www.dolistore.com/
Status / Statut / Estado Stable
Prerequisites / Prérequis module_clicktodial Dolibarr min version 3.2.x   
Last update date / Date mise à jour fiche / Fecha última actualización 2019-07-23
Note / Nota

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

Depuis l'application

  • Avec un compte ayant le profil "administrateur", aller dans le menu Accueil - Configuration - Modules - Déployer un module externe.
  • Soumettez le fichier zip. Le module sera déployé est prêt pour l'étape suivante d'activation.

Manuellement

Si la méthode précédente a été désactivée par votre hébergeur, en voici une autre:

  • Télécharger le fichier archive du module (fichier .zip)
  • Placer le fichier dans le répertoire racine de dolibarr.
  • Decompressez le fichier, par exemple par la commande
unzip fichiermodule.zip
  • Le module est alors visible dans la liste des modules (Accueil -> Configuration -> Modules) et activable.

Configuration

Pour utiliser ce module, il vous faut d'abord l'activer. Pour cela, après s'être connecté avec un compte administrateur, aller sur la page "Accueil - Configuration - Modules".

Choisissez l'onglet dans lequel apparaît le module puis cliquez sur "Activer".

Le module est alors activé.

Si un pictogramme Cog circle.svg apparaît sur la vignette ou à la fin de la ligne du module, cliquez dessus pour accéder à la page de paramétrage spécifique à ce module.

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 est 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.

Les options du modules

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.

PS: pour forcer la langue utiliser dans les éléments inséré du calendrier, ajouter le paramètre GET "lang=fr_FR" à l'url précisé chez votre 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
; appel entrant via numero provider
[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)})

; REDIRECTION
exten =>  _X.,n,Goto(dolibarr_notification,s,1)
Context macro-notification
; Doli
; macro pour event CONNECT
[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)})
Context notification
; Doli
; Process
[dolibarr_notification]
; put notif SETUP
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()
; 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
exten => s,n,Dial(SIP/votreposte, 60,etTrM(dolinotif))
; put notif RELEASE
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)

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.7

- Check process for Dolibarr 3.5.3
- Fix link vs calendar in dolibarr 
- Fix translate for incoming calls
- Fix advancedjs plugin for dispay popup , based on html dolibarr structure
- Fix calulate duration call 
- Fix other bugs
- Add translation for turck (tr), Neederalnd (ne), danmerak (da)

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