Module Calling en

= Informations =

= Vocation = Provides support for monitoring phone calls (incoming and outgoing). An alert when an incoming call contains links to customer information and / or information known collaborator. Logging calls in sheets and in the third calendar

= Install =

= Config =

This module enables and configures the module clicktodial dolibarr already present during the installation. Once installed and configured the module, you will need to combine dolibarr your service provider voip telephony.

Config clicktocall
This module natively in st dolibarr on the record of each user's internal dolibarr you have a tab clicktocall.Il is necessary to fill the login information (login / pass / tel), and the phone number used. url trigger click to call is not defined module calling, so do not change the configuration items clicktocall

Config link by SIP provider
Your choice of provider may limit the use of the module according to the API of the latter. This module comes with submodule to adjust it to your supplier. List of supplier supported to date:

- Keyyo : View keyyo.fr -The API supports incoming and outgoing calls - OVH : View Ovh.fr - The API supports  outgoing calls - OVH + @Asterisk : ovh extension module adds support outgoing calls through a PBX private. Requires to install and configure a server asterisk - The API supports incoming and outgoing calls

Link in Agenda and action
Add an action in the dictionary "Action List" table llx_c_actioncomm to list the specific action to telephony; - code : AC_TEL - Libellé : Phone call - type : system

This addition allows you to use the phone main menu button, which should limit the display to only telephony events.

Alert mode
This option allows you to manage the behavior when incoming calls;

- No popup notification and no notification, you can choose in this case the module sub NoRun notification module - Only users are notified of the called station, only informs the user whose number is called. This selection takes into account the extension configured on the user profile, and the line number specified in the tab clicktocall - All user configured for clicktodial are notified - All users are notified

behavior on the number of employees and the company
This option sets the behavior when an incoming call to an employee (including mobile number with are), internal call, call an external site.

- Ignore incoming calls numbers business users (pro / personal / mobile), no notification or record in shares - Accept and notify unless the corresponding user

Information collaborator called
Display additional information about the employee actually called by a third party (based on the number of phone contact).

Creating card
In the case of incoming call, the number is not found in the database, a listing can be created, with the name of the phone number.

- No creation of card - Create the third number of the caller - Create a contact number of the caller

Anonymous Calls
Can create a form for anonymous calls.

Trace calls
Trace calls in actions / agenda dolibarr; You can disable this option.

= Use =

Handling and use of this module is simple, given that it generated no specific action. clicktocall on the phone number you provide the ability to make calls in 1 click. Warning fax number, however, also found that with a click to call links. During an incoming call, depending on the configuration of the alert mode, you'll have a box showing the links to the contact card and / or the company trying to reach you. More calls are traced in the agenda.

= Information Développement =

General
Operation of the module is based on file "calling.php" at the root of public Dolibarr. That it is accessible via http. All calls to this module passes through the file, so that incoming calls outgoing. The module uses a table of additional data (llx_calling) to trace incoming calls, and the called user. Calling a folder is created in the Documents folder to store user specified javascript file.

Module in connection to api voip
It is possible to add and change modules to interact with APIs VOIP. modules provides a link provided to specific services if you use a different API, it will be necessary to create your own link module. File management module API must be called api_xxxx.php, where xxxx is the name of the service provider

Making a call
This connection uses the module ClicktoCall. It ensures the issuance of a call, which once launched will ring your phone, and that of the party you are calling. The use of clicktodial automatically complete the third action sheet / contact. For data storage, and display of the popup, a file is created in Documents / calling of Dolibarr. This file provides storage for temporary data.

Receiving a call
This section is a little more complex highly dependent on service by offering VOIP to which you have subscribed. The interception of calls, will not allow you to pick up your phone, but you will propose a popup dialog, providing you with the links to the third sheet / corresponding contact, if it exists in the database donnée.Dans otherwise it will be possible to create a third sheet / contact based on phone number. All incoming calls will complete the third action sheet. If unanswered call, the task will remain open. In the case of a call off hook, the stain will be closed.

Configuration api third
It will be necessary to operationalize the notification of incoming calls to specify a URL for api third notification, which must initiate this notification. Use the incoming URL, in your view configuration page. The latter being generated by a module API accurate to replace GET variables are specific to that provider.

Note
Storing phone number database. To be extracted and recognized, it is desirable to use the nomenclature international / national numbers. 02 35 98 63 65 or 33 6 98 65 87 54 65 98 or 002 32 78

Configuration element asterisk
Configuring Asterisk server is full and complex, the possibilities are huge, so I encourage you to read the tutorial specialist. Remember however that the PBX are highly contested and those that can generate significant cost if your server does this hack or is misconfigured, given that it is a gateway to the telephone network, and these rates vary (mobile, call overtaxed, international, etc. ..). For my own part, I use asterisk in the management of incoming calls, outgoing calls exploiting API ovh via click to call. Dolibarr calling module is designed to asterisk in this direction.

Fichier extensions.conf
following configuration elements start from the premise that you have installed an asterisk functional and configured your connection with your provider. It merely bring the basics to intercept incoming call and notification to Dolibarr. He must return at the same time to sip your line.

Context incoming call
[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

Under Module incoming call notifications
The alert modules are modules that works in real time to inform you of incoming calls. He created a display featuring links to the customer record / contact, and possibly the employee initially called. Several modules are available in different contexts of use.

- Mod NoRun : Module example, to disable all JavaScript elements call notification - Mod Simplejs : Module original notification via a popup (modal box jquery) in full screen. Intended for use by a single user of Dolibarr. Based on a recurring ajax call - Mod Advancedjs : Module advanced reporting, providing a non-intrusive display (top right menu link, and incoming call details click on the link). Operated mutli-user context. Based on a recurring ajax call. - Mode Nodejs : Module advanced notification, it is identical in terms of display module Advancedjs, but operates a complementary nodejs @ server to push information to the customer Dolibarr. There is no recurring ajax call. It requires a dedicated server, nodejs installed. and the servelet provided in the package

Submodule nodejs pre-requisite
This module exploits in technology node.js. It is therefore necessary that the server that hosts dolibarr, nodejs be installed. Otherwise, the client submodule dolibarr not work.

Servelet Nodejs
the configuration possibilities are numerous, we will present a basic installation quickly with these pre-requisite for this servelet. extract the zip nodejsd in your / var / nodejs script execution call index.js

Simply launch node /var/nodejs/index.js

for the script starts. If you connect to your dolibarr (with nodejs client module enabled), you will see the server will inform the connection of your user id. To start your production servelet used the famous "&" so that your servelet does not cut it when you log out of ssh.

node /var/nodejs/index.js &

Once installed and configured your servelet (see config.js file), go to the Control Panel module calling dolibarr, enable the module nodejs, then specify the url and port of your servelet

Note
It is possible to modify this behavior with module named alert_xxx.php