Bonjour,
Je suis en train de développer une extension qui a pour but d'appeler des numéros de téléphones présents sur une page web. Pour cela avant de passer l'appel je dois me connecter et sélectionner un compte SIP via mon extension. Donc quand je lance mon extension et à la première sélection du compte SIP l'appel téléphonique ne se fait qu'une seule fois donc c'est bon mais si choisis de sélectionner un autre compte SIP, l'appel se fait deux fois alors que je n'ai cliqué qu'une seule fois sur le numéro et ainsi de suite suivant le nombre de fois où je sélectionne un compte SIP.

Voici ce que je fais quand je sélectionne mon compte SIP et que j'appuie sur un bouton pour valider
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$('#valider2').click(function(){
	if (document.formulaire.sip.value == 0) {
        alert("choisissez un compte sip");
	} else {
		var dselect = document.getElementById('tonSelect');
        // récupération de la valeur sélectionné
        valeur = dselect.options[dselect.selectedIndex].text;
		localStorage.setItem("sipSelectionne", valeur);
		chrome.tabs.executeScript(null, {
			code: 'var token = "' + localStorage.getItem('token') + '";var sip = "' + valeur + '";'
		},function() {
			chrome.tabs.executeScript(null, {file: 'appel.js'});
		});
	    document.location.href = "parametres.html";
	}
});
et voici comment je passe l'appel:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
var numeroTelephone = new RegExp('0\\d{9}|0\\d[.](\\d{2}[.]){3}\\d{2}|0\\d[ ]?(\\d{2}[ ]?){3}\\d{2}|0(\\d[ ]?){9}', 'g');
var trouve;
trouve = htmlString.match(numeroTelephone);
console.log(htmlString);
var j = 0;
if (trouve != null) {
	for (var i = 0; i < trouve.length; i++) {
		console.log(trouve[i]);
		if (!htmlString.includes("<a class=\"numTel\">" + trouve[i] + "</a>")) {
			document.getElementsByTagName('body')[0].innerHTML = document.getElementsByTagName('body')[0].innerHTML.replace(trouve[i],"<a class=numTel>" + trouve[i] + "</a>");
		}
	}
}
 
$('.numTel').click(function(){
		alert("ca clique");
 
		var numTel = document.getElementsByClassName('numTel')[$('.numTel').index(this)].innerHTML;
		numTel = numTel.replace(/ |[.]/g,"");
		localStorage.setItem("numTel", numTel);
		alert(numTel);
 
		const params = {
			"sipExtension": sip,
			"calledNum" : numTel
		}
 
		var xhr = new XMLHttpRequest();
		xhr.open('POST', 'https://extranet.occicom.fr/api/voip/v1/calls/' + sip + '/makeCall', true);
		xhr.setRequestHeader('Authorization', token);
		xhr.setRequestHeader('accept', 'application/json');
		xhr.setRequestHeader('Content-type', 'application/json');
		xhr.send(JSON.stringify(params));
});
Merci d'avance pour toute l'aide que vous pourrez m'apporter.