En savoir un peu plus ...
Aircall
Aircall est une plateforme de téléphonie et de communication par internet.
Prérequis :- Une clef API Aircall,
- Le numéro de téléphone du destinataire,
- Une vue des ressources avec leurs id Aircall.
Exemple :Dans cet exemple nous ajoutons un bouton pour effectuer un appel via Aircall.
Nous réalisons également la création d'une fiche action.
let bouton = "<button id='btn_appeler' type='button' role='button' class='btn btn-ajouter btn-sm' style='margin-left: 5px; float: right; margin-right: 10px;";
bouton += "background-color:#064169; color:white;' title='Appeler via Aircall'><i class='fas fa-phone-volume'></i> <span class='trn'>Appeler</span></button>";
thisComponent.ui.find("#tab2525").after(bouton);
thisComponent.ui.find("#btn_appeler").on("click", async function(){
let token = "CLE_API";
let num = formatPhoneNumber(thisComponent.getValue("telephone"));
let data = {
"to": num,
};
let id = await gopaas.webservice.getItems("CLE_VUE", "utilisateur|equal|" + gsUser + "|");
let getID = id.rows;
let user_id = getID[0].aircall_id;
let url = "https://api.aircall.io/v1/users/"+user_id+"/dial";
let cle = Date.now() + "_nids";
let action = {cle : cle,
nom : "Note",
statut : "Terminé",
date_debut : gopaas.date.dateSql(),
date_fin : gopaas.date.dateSql(),
heure_debut : gopaas.date.time(),
heure_fin : gopaas.date.time(),
dossier : thisComponent.getValue("cle"),
client : thisComponent.getValue("contact"),
adresse : thisComponent.getValue("adresse"),
cp : thisComponent.getValue("cp"),
ville : thisComponent.getValue("ville")
};
await gopaas.webservice.updateItem("action", "new", action);
ItemGeneric.open("action", cle);
$.ajax({
url: url,
type: "POST",
data: JSON.stringify(data),
headers: {
"content-type": "application/json",
"Authorization": 'Basic '+ token
},
success: function(results) {
console.log(results);
}
});
});
function formatPhoneNumber(number) {
var nonInt = /\D/g;
var allNumbers = /.*(\d{1})(\d{3})(\d{3})(\d{2})/;
var formatStyle = "+33$1$2$3$4";
return number.replace(nonInt, '').replace(allNumbers, formatStyle)
}