Development

Routage des appels vocaux : c’était plus que seulement du codage !

Développer la capacité pour acheminer des appels par nous-mêmes était un véritable défi et ce qui est intéressant, c’est qu’il ne s’agissait pas simplement de codage.

September 28 2016

La plateforme interne d'Infobip traite plus de 200 millions de transactions quotidiennes pour plus de 200 000 utilisateurs professionnels dans le monde entiers - développeurs, entreprises Internet, banques et autres. Beaucoup de ces entreprises utilisent notre plateforme pour acheminer les appels vocaux.

Développer la capacité d'acheminer des appels par nous-mêmes était un véritable défi. Cela nécessite une étroite collaboration des équipes de développeurs et quelques semaines de recherche et de développement. Ce qui est intéressant c'est qu'il ne s'agissait pas simplement de codage.

Notre équipe traitant les appels vocaux a dû configurer le SBC* (Session Border Controller - contrôleur de session en périphérie) pour résoudre les appels vocaux entrants grâce à un serveur basé sur ENUM* développé par l'équipe de suivi SMS, qui fait des demandes d'acheminement à IPCore pour lui permettre de choisir une passerelle.

Cela impliquait effectivement peu de codification, il s'agissait plus de rassembler les composants existants en un puzzle que je vais essayer de vous décrire ici.

Après avoir reçu un appel entrant, le contrôleur de session en périphérie, doit traduire le numéro composé en adresse IP vers laquelle l'appel sera acheminé. Ceci était préconfiguré en cherchant une configuration statique qui recense chaque numéro de préfixe d'une adresse IP spécifique.

Maintenir une telle configuration complexe représentait un défi, car elle ne s'intégrait pas bien avec le reste de l'écosystème Infobip, où les acheminements sont normalement gérés par notre outil de gestion de compte interne.

Le contrôleur de session en périphérie peut être aisément configuré pour faire des demandes ENUM qui sont essentiellement des requêtes DNS qui traduisent un numéro composé en adresse IP. Nous n'avons pas analysé le RFC3761 dans son ensemble, nous avons juste pris une copie brute de Wireshark de paquets UDP et nous avons fait du reverse engineering sur le protocole.

Parmi les numéros composés, SBC envoie aussi l'adresse IP du client que le serveur proxy ENUM SBC utilise pour la traduire vers notre SmsChannelId en appelant le service API SBC.

Lorsque nous avons un numéro composé (adresse de destination) et l'ID de notre client (SmsChannelId), nous pouvons demander à IPCore de choisir une passerelle. Nous faisons cela en soumettant simplement le message au numéro composé au nom du client, laissant notre équipe IPCore utiliser les règles d'acheminement standard pour choisir une passerelle.

Chaque passerelle est configurée pour renvoyer une demande HTTP au service SBC ENUM. La demande HTTP contient l'adresse IP de la passerelle, qui est le résultat initial de la demande ENUM, et elle est retournée à SBC.

Non seulement nous avons exposé le mécanisme d'acheminement existant à SBC, avec des outils standard d'Infobip pour le gérer, mais nous avons également obtenu plusieurs autres avantages :

  • TRAÇABILITÉ - chaque demande d'acheminement est visible dans la section MessageLog, avec d'autre trafic, indiqué par requestType 43. Cela nous permet d'analyser les demandes d'acheminement, par exemple dans un formulaire d'essai d'acheminement. Les demandes de la passerelle sont également visibles dans les journaux de communication, qui a eu pour effet une transparence accrue. Cela, en conséquence, a eu un impact direct sur la capacité d'autres équipes techniques pour surveiller les processus d'acheminement mieux qu'avant..
  • SUPPORT MNP  - nous pouvons appréhender les numéros portés correctement en réalisant des consultations de numéro et faire de meilleurs choix de passerelle. Cela a été une amélioration significative concernant la qualité du service expérimenté par nos clients, car il nous a même permis de réaliser de meilleurs taux pour les appels réellement connectés. Il a aussi permis une optimisation considérable des coûts pour toutes les entreprises qui utilisent notre plateforme pour acheminer leurs appels vocaux..
  • CAPACITÉ D'ACHEMINEMENT AVANCÉE - La configuration statique SBC était limitée aux règles d'acheminement par préfixe, alors que maintenant nous pouvons mettre en œuvre et effectuer des règles d'acheminement plus complexes. Nous pouvons réaliser un équilibrage de la passerelle, proposer des acheminements personnalisés pour les clients, ainsi qu'établir une liste noire et de nombreuses autres fonctions qui sont les clés pour un service vocal professionnel dont nos clients ont besoin.

Par Milan Mimica, Ingénieur informatique à Infobip