Événement
Les conversations et d'autres objets Vonage tels que les membres et les Applications génèrent des événements. Lorsque des activités clés se produisent, un événement est généré, qui peut être traité par l'application. Par exemple, lorsqu'un utilisateur se joint à une conversation, un événement member:joined est déclenché.
Si une Application Vonage a rtc en tant que capacité, il recevra l'événement envoyé sur la page rtc event_url webhook.
Product deprecation notice
Effective April 30th, 2026, the messaging functionality of the Vonage Conversation API will be discontinued. Access for new users will be closed, and messaging capabilities will no longer be available to existing users after this date.
The voice functionality of the Conversation API will remain available and is not impacted by this change. If you have any questions regarding this partial discontinuation, please contact your account manager or our support team.
| Type d'événement | Description |
|---|---|
| Général | |
leg:status:update | |
| Audio | |
audio:dtmf | La tonalité DTMF est reçue dans le Leg. |
audio:earmuff:off | La jambe est désarticulée. |
audio:earmuff:on | La jambe est munie d'un cache-nez. |
audio:mute:off | La jambe n'est pas coupée. |
audio:mute:on | La jambe est en sourdine. |
audio:play:stop | L'audio diffusé dans un Leg est arrêté. |
audio:play:done | L'audio diffusé dans un Leg s'arrête de jouer, c'est-à-dire que les données audio se terminent. |
audio:play | L'audio est diffusé en continu dans un Leg. |
audio:record:stop | |
audio:record:done | |
audio:record | L'appel est en cours d'enregistrement. |
audio:asr:done | |
audio:asr:record:done | |
audio:say:stop | |
audio:say:done | |
audio:say | |
audio:speaking:on | |
audio:speaking:off | |
| Message | |
message | Message (remplace les événements Texte et Image), avec les sous-types Texte, Image, Audio, Vidéo, Fichier, Modèle, Personnalisé, VCard, Emplacement, Aléatoire. Voir Spécification API pour plus de détails |
message:rejected | Le message a été rejeté. |
message:submitted | Le message a été envoyé. |
message:undeliverable | Le message ne peut être transmis. |
message:delivered | Le message a été transmis. |
message:seen | Le message a été vu. |
| Conversation | |
conversation:updated | L'objet de la conversation est mis à jour. |
| Membre | |
member:invited | Le membre est invité à participer à une conversation. |
member:joined | Un membre se joint à une conversation. |
member:left | Le membre quitte une conversation. |
member:media | |
member:message:status | |
| RTC | |
rtc:status | |
rtc:transfer | |
rtc:hangup | |
rtc:terminate | |
rtc:answered | |
rtc:ringing | |
rtc:answer | |
| SIP | |
sip:status | |
sip:answered | L'appel SIP est pris. |
sip:machine | Lorsque l'entité qui répond à l'appel SIP est une machine. |
sip:hangup | L'utilisateur d'un appel SIP raccroche. |
sip:ringing | L'appel SIP commence à sonner, par exemple lorsque Vonage effectue un appel sortant. |
sip:amd_machine | |
| Sur mesure | |
custom: | Types d'événements personnalisés, dont le nom peut correspondre à n'importe quel nom. ^custom:[\w\-:]+ par exemple custom:test |
ephemeral | Événements éphémères qui peuvent être envoyés mais ne peuvent pas être récupérés après avoir été envoyés. |
| Événement | |
event:delete | Un événement a été supprimé |
Gestion des événements
L'extrait de code suivant montre que le code peut être exécuté en fonction de l'événement déclenché :
...
events.forEach((value, key) => {
if (conversation.members[value.from]) {
const date = new Date(Date.parse(value.timestamp))
switch (value.type) {
case 'message:seen':
...
break;
case 'message:delivered':
...
break;
case 'message':
...
break;
case 'member:joined':
...
break;
case 'member:left':
...
break;
case 'member:invited':
...
break;
case 'member:media':
...
break;
default:
...
}
}
})
...