Les systèmes de facturation et les outils de débogage veulent les mêmes données selon des calendriers différents. La plupart des plateformes leur fournissent des copies séparées. Sur Bird, un seul enregistrement sert aux deux, et il est lisible dès la fin de l'appel. Cela change deux choses pour le rapprochement : ce qui compte comme un segment, et quand le coût arrive.
Que contient un enregistrement ?
Un enregistrement comporte trois groupes de champs, répondant à trois questions différentes.
Ce qui s'est passé. Le status est le résultat, parmi answered, no answer, rejected, failed ou unknown. À côté, la réponse SIP est le code SIP final. Lorsque Bird a refusé l'appel plutôt qu'un opérateur, une raison de rejet nomme la vérification qu'il n'a pas passée. Ces trois éléments lus ensemble constituent le diagnostic, et ce que signifient les codes de réponse SIP explique comment ils se combinent.
Quand cela s'est passé. Started indique quand Bird a reçu l'appel. Answered indique quand il a été décroché, ou le fait qu'il ne l'a pas été. Ended indique quand il a été raccroché. Sur un appel entrant, Inbound route enregistre ce que le numéro composé était configuré pour faire, et Trunk nomme le trunk par lequel l'appel est arrivé ou a été acheminé.
Ce que cela a coûté. Temps facturable, durée totale et coût de l'appel.
Deux identifiants les accompagnent, et ils ne sont pas interchangeables. L'identifiant d'appel (vcl_…) est l'identifiant propre à l'enregistrement. Citez-le au support et corrélez-le dans vos propres journaux. L'identifiant de session (vcs_…) est partagé par tous les segments d'un même appel.
Pourquoi un appel apparaît-il sous la forme de deux enregistrements ?
Parce qu'un enregistrement décrit un segment plutôt qu'un appel, et certains appels en ont plusieurs.
Un appel transféré en est un exemple : le segment entrant et le segment sortant sont des enregistrements distincts, partageant un même identifiant de session. Si vous comptez les enregistrements comme des appels, vous surcomptez exactement les appels qui ont été transférés, et si vous additionnez les durées entre enregistrements, vous comptez deux fois le temps où ils se chevauchaient.
L'identifiant de session est la solution. Regroupez par celui-ci quand vous voulez des appels, et lisez les enregistrements individuellement quand vous voulez des segments. Ce que vous voulez dépend de la question : un problème d'acheminement est une question de segment, et une question d'expérience client ou de volume est généralement une question de session.
Pourquoi mon coût ne correspond-il pas à la durée ?
Le temps facturable exclut la sonnerie. Le coût est inscrit après la fin de l'appel, pas en même temps.
Le temps facturable n'est pas la durée totale. Le temps facturable court du décrochage au raccroché. La durée totale inclut le temps de sonnerie avant que quelqu'un ne décroche. Un enregistrement contient les deux. Un rapprochement qui utilise silencieusement le mauvais champ dérive de la durée de sonnerie sur chaque appel décroché, et de la durée entière sur chaque appel resté sans réponse.
Le coût arrive après l'appel. Un enregistrement contient son coût une fois qu'il a été tarifé, ce qui ne se produit pas à l'instant où l'appel se termine. Un enregistrement récupéré immédiatement peut être complet à tous les autres égards et ne porter aucun prix. Si vous calculez les dépenses en quasi temps réel, lisez le coût quand il est présent et n'interprétez jamais son absence comme zéro. Ce n'est pas un détail : un coût absent et un coût de zéro sont deux faits différents ici, et les traiter de la même manière sous-estime les dépenses.
Attendre n'est cependant pas toujours la bonne réponse. Un appel sans réponse n'a pas de coût et n'en aura jamais. Un appel décroché qui en reste dépourvu n'attend pas non plus la tarification. L'enregistrement ne dit pas lequel des deux cas vous regardez. Contactez le support avec l'identifiant d'appel plutôt que de continuer à l'interroger.
Quels appels n'apparaissent jamais ?
Un appel que Bird refuse avant de l'admettre ne laisse aucun enregistrement : le journal n'est donc pas un compte rendu complet de ce qui a atteint votre compte.
Un appel que Bird ne peut pas du tout admettre est rejeté avant qu'un enregistrement n'existe, et n'atteint donc jamais le journal. La liste d'autorisation IP du trunk est un tel refus. Un appel provenant d'une adresse qui n'y figure pas est refusé au niveau de la couche SIP, et ne produit généralement aucun enregistrement. Un attaquant sondant votre trunk peut donc générer un volume de trafic considérable sans laisser de trace à l'endroit où vous iriez naturellement chercher. Un PBX, l'autocommutateur qui achemine les appels d'une entreprise, mal configuré fait la même chose depuis une nouvelle adresse.
La conséquence pratique est que "there is nothing in the call log" répond à une question plus étroite qu'il n'y paraît. Cela signifie qu'aucun appel n'a été admis, pas que rien n'a été tenté. Quand un système téléphonique signale que ses appels échouent et que le journal est vide, vérifiez la liste d'autorisation en premier plutôt qu'en dernier. Dépannage vocal couvre le reste de ce parcours.
Comment récupérer les enregistrements ?
Pour un seul appel, ouvrez-le dans le journal d'appels et consultez les champs ci-dessus. Le journal filtre et recherche dans la liste, et affiche les appels en cours séparément des appels terminés.
Pour un grand nombre, l'API vocale renvoie les appels sous forme d'enregistrements paginables. Les endpoints de statistiques vocales les agrègent par jour, heure, pays et code de réponse. Une question sur un schéma récurrent trouve sa réponse dans les statistiques plutôt qu'en parcourant les enregistrements.
Le journal d'appels documente chaque champ d'un enregistrement et la façon dont la liste est filtrée.
En bref
Un appel peut donner lieu à plusieurs enregistrements.
Chaque segment a son propre enregistrement, et c'est un identifiant de session partagé qui les regroupe. Un appel transféré correspond à deux enregistrements, pas un seul.
Le temps facturable va du décrochage au raccroché.
Ce n'est pas la durée totale, qui inclut la sonnerie. Les deux sont enregistrés : vérifiez que vous utilisez le bon.
Le coût n'est pas là tout de suite, et parfois jamais.
Un enregistrement contient son coût une fois qu'il a été tarifé. Un appel décroché qui en est toujours dépourvu n'attend pas la tarification : transmettez l'identifiant d'appel au support.
Certains appels ne produisent jamais d'enregistrement.
Un appel refusé avant que Bird ne l'admette ne laisse rien dans le journal : le journal n'est donc pas un compte rendu complet de ce qui a atteint votre compte.