BreizhVoIP
Aide

Recevoir les événements du standard dans son logiciel

Abonner une application aux événements du standard, appels, postes et messages vocaux, et vérifier qu'ils viennent bien de chez vous.

Un standard sait beaucoup de choses que votre logiciel métier ignore : qui appelle, qui n'a pas répondu, quel poste vient de se déconnecter. Les webhooks font le pont : à chaque événement, le standard appelle une adresse chez vous avec le détail, et votre logiciel en fait ce qu'il veut.

Deux abonnements : le logiciel commercial suit les appels, la supervision suit les postes.
Deux abonnements : le logiciel commercial suit les appels, la supervision suit les postes.

Ce n'est pas le module du plan d'appel

La confusion est facile, et les deux ne servent pas à la même chose.

Le module Webhook d'un plan d'appel se place à un endroit précis d'un parcours. Il attend la réponse et peut router l'appel selon ce que votre logiciel répond. Il agit pendant l'appel.

Les webhooks décrits ici sont un abonnement à des événements. Ils partent après coup, sans rien attendre, et concernent tout le standard : pas seulement les appels, mais aussi les postes, les files, les contacts, la messagerie vocale.

En résumé : le module décide, l'abonnement informe.

Les événements auxquels s'abonner

catégorieévénements
Appelsdémarré, terminé, manqué
Postesconnecté, déconnecté
Messagerie vocalenouveau message
Files d'attenteagent entré, agent sorti, appelant en attente
Contactscréé, modifié, supprimé
Postes et numéroscréé, modifié, supprimé

Un abonnement en choisit autant qu'il veut. Mieux vaut plusieurs abonnements ciblés qu'un seul qui reçoit tout : votre logiciel n'a pas à trier, et une adresse en panne n'entraîne pas les autres.

Vérifier que l'appel vient bien de nous

C'est le point à ne pas négliger. Votre adresse est publique : n'importe qui peut lui envoyer un faux événement, et votre logiciel le croira.

Chaque envoi porte donc une signature, calculée à partir du corps du message et du secret de l'abonnement. Votre code recalcule la même signature de son côté et compare : si elle diffère, le message n'a pas été émis par nous.

Les en-têtes accompagnant chaque envoi :

en-têtecontenu
X-Webhook-Signaturela signature, préfixée de sha256=
X-Webhook-Eventle type d'événement
X-Webhook-Idl'abonnement concerné
X-Webhook-Deliveryl'identifiant unique de cet envoi
X-Webhook-Timestampl'heure d'émission

Vous pouvez aussi ajouter vos propres en-têtes à un abonnement, par exemple une clé d'API attendue par votre logiciel.

Ce qui se passe quand votre adresse ne répond pas

Le standard considère l'envoi réussi si votre serveur répond un code de succès, et il attend quinze secondes au plus.

Sinon il recommence, jusqu'à cinq fois, en espaçant les tentatives : trente secondes, puis une minute, deux, quatre, huit. Une coupure de quelques minutes chez vous ne perd donc rien.

Ces reprises ont une conséquence sur votre code : un même événement peut vous parvenir deux fois. Si votre serveur a traité l'appel mais que sa réponse s'est perdue, le standard réessaiera.

Servez-vous de X-Webhook-Delivery, unique par envoi, pour ignorer un doublon. Sans cette précaution, un rappel automatique ou une écriture en base peuvent être déclenchés deux fois.

Voir ce qui a été envoyé

Le bouton Logs de chaque abonnement montre les envois, le code renvoyé par votre serveur et le contenu de sa réponse. C'est là qu'on regarde quand une intégration ne se comporte pas comme prévu, plutôt que dans son propre code.

Le bouton Tester envoie un message d'essai à la demande : de quoi vérifier une adresse avant de l'utiliser, sans attendre qu'un vrai appel arrive.

Les journaux d'envoi sont conservés trente jours, puis supprimés.

Avant de brancher

Trois précautions valent d'être prises dès le premier abonnement.

Répondez vite. Votre serveur doit accuser réception, pas faire le travail pendant que le standard attend. Rangez l'événement dans une file chez vous, et traitez-le ensuite.

Commencez par un seul événement. call.ended suffit à valider toute la chaîne, signature comprise.

Désactivez plutôt que supprimer. Un abonnement désactivé garde ses journaux et son secret, ce qui permet de reprendre sans reconfigurer votre logiciel.

Pour comprendre à quoi sert cette fonctionnalité et ce qu’elle apporte :

Voir la fiche