Teams: Direct Sip Routing / Sonus Ribbon / HowTo (Comment Faire)


Bonjour

Nous allons détailler dans cet article la façon dont on doit déclarer notre passerelle SBC depuis notre environnement Teams dans le but de mettre en place la fonctionnalité Direct Sip Routing.

Elément de départs

  • Enregistrement DNS Public
    • Dans le cadre de notre environnement notre passerelle que nous nommerons sbcsonus01.workingtogether.fun est publiée via un enregistrement A sur internet.
  • Certificat public
    • La passerelle sbcsonus01.workingtogether.fun possède un certificat public qui va permettre le chiffrement des flux de communications. Ce certificat peut être visualisé dans la configuration de la passerelle dans le menu suivant :
      Onglet Settings/Security/Sbc Certificates/Sbc Supplementary Certificates
  • Groupe de signalisation
    • La passerelle sbcsonus01.workingtogether.fun possède un groupe de signalisation permettant de recevoir les appels de l’environnement Teams. Ce groupe de signalisation peut être visualisé depuis le chemin suivant :
    • Onglet Settings/Signaling Groups. La configuration du groupe de signalisation peut être trouvée ci-dessous.
    • Les groupes de signalisation permettent de regrouper les canaux téléphoniques à des fins d’acheminement et de configuration partagée. Ils constituent l’entité vers laquelle les appels sont acheminés, ainsi que l’endroit à partir duquel les itinéraires d’appel sont sélectionnés. Ils sont également l’endroit à partir duquel les tables de tonalités et les ensembles d’actions sont sélectionnés.
  • Profils SIP
    • La passerelle sbcsonus01.workingtogether.fun possède un profil Sip pour Teams. Les profils SIP contrôlent la façon dont le SBC Edge communique avec les appareils SIP. Ils contrôlent des caractéristiques importantes telles que : les temporisateurs de session, la personnalisation des en-têtes SIP, les temporisateurs SIP, les charges utiles MIME et les balises d’option.
  • Table de routage des appels
    • La passerelle sbcsonus01.workingtogether.fun possède une table de routage des appels qui peut être consultée ci-dessous
    • L’acheminement des appels permet aux appels d’être transportés entre les groupes de signalisation, permettant ainsi aux appels d’être transportés entre les ports, et entre les protocoles. Ces tables constituent l’un des points de connexion centraux du système, reliant les tables de transformation, les traductions de messages, les tables de réacheminement, les listes de médias et les trois types de groupes de signalisation (RNIS, SIP et CAS).
  • Profil TLS
    • La passerelle sbcsonus01.workingtogether.fun possède un profil TLS. Les profils TLS sont utilisés par les groupes de signalisation SIP lorsque le type de transport TLS est sélectionné pour les tronçons SIP entrants et sortants (ports d’écoute), et dans les tables de serveurs SIP lorsque TLS est sélectionné comme protocole hôte du serveur. Notre passerelle prend en charge TLS 1.0 uniquement, TLS 1.2 uniquement et TLS 1.0-1.2. Les protocoles SSL 3.0 et SSL 2.0 ne sont pas pris en charge en raison de risques et de vulnérabilités de sécurité. Nous conseillons vivement l’usage du TLS 1.2. La configuration du profils Tls peut être visualisée ci-dessous
  • MediaList
  • Licence SIP
    • La passerelle sbcsonus01.workingtogether.fun possède des licence SIP à hauteur de 50 (paramètre -MaxConcurrentSessions 50 de la commande New-CsOnlinePSTNGateway)
  • Media By Pass
    • Dans notre configuration nous n’allons pas configurer la fonctionnalité Media Bypass.
    • Pour désactiver le Media bypass sur la passerelle Sonus / Ribbon, procédez comme cela
      • Dans l’interface utilisateur Web, cliquez sur l’onglet Paramètres.
      • Dans la page de navigation de gauche, accédez aux groupes de signalisation.
      • Identifiez et ouvrez le groupe de signalisation utilisé pour vous connecter à Teams.
      • Dans le champ Multiplexage RTCP, sélectionnez Désactiver.
      • Dans le champ Support ICE, sélectionnez Désactivé. Cliquez sur OK.

Le schéma ci-dessous illustre la configuration en place


Note : les adresses ip sont figuratives dans nos exemples.

Configuration du groupe de signalisation sur la passerelle sbcsonus01.workingtogether.fun


Le port de communication est 5061. Dans notre cas c’est la valeur qui va correspondre au paramétre -SipSignalingPort de la commande New-CsOnlinePSTNGateway. La table Federated IP Row correspond au serveurs Teams (52.114.148.0/52.114.132.46/52.114.75.24/52.114.76.76/52.114.7.24/52.114.14.70) qui sont susceptibles de contacter notre passerelle.

Configuration du Profil Sip sur la passerelle sbcsonus01.workingtogether.fun

Configuration de la table d’appel de routage sur la passerelle sbcsonus01.workingtogether.fun

La configuration de la table d’appel de routage (Call Routing table) peut être visualisée à cet endroit : Onglet Settings/Menu Call Routing Table


Configuration du profils TLS sur la passerelle sbcsonus01.workingtogether.fun

Configuration du media pour Microsoft Teams

Déclaration de la passerelle de communication

La passerelle de communication que nous allons déclarer se fera en Powershell pour mieux appréhender les valeurs et la signification des différents paramètres. La déclaration de la passerelle se fait avec la commande Powershell suivante : New-CsOnlinePSTNGateway. Le tableau suivant précise les différents paramètres et leur signification.

Obligatoire? Paramètre du centre d’administration Microsoft teams Paramètre PowerShell Description Par défaut Valeurs possibles Type et restrictions
Oui Ajouter un nom de domaine complet pour l’SBC FQDN Aucun Nom de domaine complet, limite de 63 caractères , Voir la liste des caractères autorisés et interdits sur les conventions d’appellation dans Active Directory pour les ordinateurs, domaines, sites et UO .
Non Activé Activé Permet d’activer l’SBC pour les appels sortants. Vous pouvez utiliser cette opération pour supprimer temporairement l’SBC du service lors de sa mise à jour ou de sa maintenance. False Vrai
False
Boolean
Oui Port de signalisation SIP SipSignalingPort Il s’agit du port d’écoute utilisé pour communiquer avec le routage direct via le protocole TLS (Transport Layer). Aucun Tout port entre 0 et 65535
Non Envoyer les options SIP SendSIPOptions Définit si les SBC envoient des messages d’options SIP. Nous vous recommandons vivement d’activer ce paramètre. Lorsque ce paramètre est désactivé, l’SBC est exclu du système de surveillance et d’alerte. Vrai Vrai
False
Boolean
Non Transférer l’historique des appels ForwardCallHistory Indique si les informations de l’historique des appels sont transmises via le Trunk. Lorsque vous activez cette fonction, le proxy Office 365 envoie un en-tête informations d’historique et un en-tête expertisé. False Vrai
False
Boolean
Non Forward P-assertion-Identity (PAI) en-tête ForwardPAI Indique si l’en-tête PAI est transmis en même temps que l’appel. L’en-tête PAI permet de vérifier l’identité de l’appelant. Si ce paramètre est activé, l’en-tête de confidentialité : ID est également envoyé. False Vrai
False
Boolean
Non Capacité d’appel simultanée MaxConcurrentSessions Lorsque vous définissez une valeur, le système d’alerte vous avertit lorsque le nombre de sessions simultanées est de 90% ou une valeur supérieure à celle-ci. Si vous ne définissez pas de valeur, les alertes ne sont pas générées. Toutefois, le système de surveillance rapportera le nombre de sessions simultanées toutes les 24 heures. Valeur Valeur
1 à 100 000
Non Code de réponse de basculement FailoverResponseCodes Si le routage direct reçoit tout code d’erreur SIP 4xx ou 6xx en réponse à une invitation sortante, l’appel est considéré comme complet par défaut. Sortant désigne un appel d’un client teams vers le RTC avec le flux de trafic : client teams-> le routage direct-> le réseau de téléphonie de l’SBC->). Lorsque vous spécifiez un code de réponse de basculement, cela force le routage direct à essayer un autre SBC (si un autre SBC existe dans la stratégie de routage vocale de l’utilisateur) lorsqu’il reçoit les codes spécifiés si la SBC ne peut pas faire un appel en raison de problèmes réseau ou d’autres problèmes. Pour en savoir plus, voir basculement de codes SIP spécifiques reçus du contrôleur de bordure de session (SBC). 408, 503, 504 Ent
Non Temps de basculement (secondes) FailoverTimeSeconds Lorsque vous définissez une valeur, les appels sortants qui ne sont pas traités par la passerelle au cours de la période que vous définissez sont routés vers le Trunk disponible suivant. S’il n’y a pas de lignes supplémentaires, l’appel est automatiquement interrompu. La valeur par défaut est 10 secondes. Dans une organisation avec des réseaux lents et des réponses par passerelle, il est possible que les appels soient interrompus de façon inobligatoire. 0,10 Numéro Ent
Non Pays ou région préférés pour le trafic multimédia MediaRelayRoutingLocationOverride Permet de définir manuellement votre pays ou région préféré pour le trafic multimédia. Nous vous recommandons de définir cette valeur uniquement si les journaux d’appels indiquent clairement que l’affectation par défaut du centre de fichiers pour le chemin multimédia n’utilise pas le chemin le plus proche du centre de médias SBC. Par défaut, le routage direct attribue un centre de distribution en fonction de l’adresse IP publique de l’SBC et sélectionne toujours le chemin le plus proche du centre de distribution SBC. Toutefois, dans certains cas, le chemin d’accès par défaut ne sera peut-être pas le chemin optimal. Ce paramètre vous permet de définir manuellement la région préférée pour le trafic multimédia. Aucun Codes de pays au format ISO
Non Le SBC prend en charge PIDF/LO pour les appels d’urgence PidfloSupported Spécifiez si l’SBC prend en charge l’objet d’emplacement du format de données de présence (PIDF/min) pour les appels d’urgence.
Non Sonnerie du téléphone lors du recherche de l’utilisateur GenerateRingingWhileLocatingUser Définissez si un signal audio est lu pour l’appelant pour indiquer que les équipes sont dans le processus de création de l’appel. Ce paramètre s’applique uniquement au routage direct en mode de contournement non multimédia. Parfois, les appels entrants des clients RTC aux équipes peuvent prendre plus de temps que prévu. Lorsque c’est le cas, l’appelant n’entend rien, le client Teams ne sonne pas et l’appel peut être annulé par certains fournisseurs de télécommunications. Ce paramètre permet d’éviter les silences inattendus qui peuvent se produire dans les cas suivants. Vrai Vrai
False
Boolean
Non MediaBypass Ce paramètre indique si l’SBC prend en charge la dérivation multimédia et si vous voulez l’utiliser pour cet élément SBC. Aucun Vrai
False
Boolean

Note : Dans un premier temps nous n’allons pas utiliser les fonctionnalités de Media ByPass.

La commande que nous voulons donc passer est la suivante :

New-CsOnlinePSTNGateway -Identity sbcsonus01.workingtogether.fun -SendSIPOptions $True -ForwardCallHistory $True -ForwardPAI $False -Enabled $true -SipSignalingPort 5061 -MaxConcurrentSessions 50 -GenerateRingingWhileLocatingUser $True -MediaBypass $False

Cette commande va créer la passerelle dans l’environnement Teams. Comme nous avons activer les Sip options les deux environnements vont tenter de communiquer entre eux sans qu’il soit nécessaire de passer un appel.

Pas de Connection entre Teams et notre Gateway

Seulement après quelques heures nous constatons dans l’interface Teams que la passerelle est toujours down alors que notre firewall indique qu’aucun paquet provenant des sources MS vers la passerelle n’a été rejeté et inversement


Test de connectivité depuis la passerelle

Depuis la passerelle, nous effectuons quelques tests de connectivité qui nous informe que le port 5061 est bien ouvert vers les serveurs de Microsoft


Note : les adresses ip sont figuratives dans nos exemples.

Vérification de la connexion en Sip

Pour vérifier notre configuration nous avons effectué la procédure suivante

Dans l’interface utilisateur Web, cliquez sur l’onglet Paramètres.
Dans le volet de navigation de gauche, cliquez sur Groupes de signalisation.
Pour le groupe de signalisation configuré pour Microsoft Teams Direct Routing, cliquez sur Compteurs.
Vérifiez si le nombre de messages augmente dans les options de sortie. Si le nombre n’augmente pas, vérifiez ce qui suit :

  • Confirmez que le serveur DNS est correctement configuré et accessible.
  • Confirmez la configuration des Interfaces Logiques (Interfaces Nœuds > Interfaces Logiques), et la Route par défaut dans Protocoles > IP > Routes statiques.
  • Confirmez que le certificat SBC est valide.
  • Vérifiez si le nombre de messages augmente dans Incoming 2xx. Si le nombre n’augmente pas, vérifiez ce qui suit :

Confirmez que le certificat SBC est valide. (Fait)

Confirmez la capacité du micrologiciel pour le logiciel suivant :

  • SBC Edge 7.0.2 ou SBC Edge 8.0 pour SBC 1000 et SBC 2000 (Fait)
  • SBC Edge 7.0.3 pour SWe Lite
  • Confirmez que le pare-feu est correctement configuré pour autoriser les messages SIP TLS entrants. (Fait)
  • Confirmez que l’ACL utilise la bonne adresse IP. (Fait)
  • Confirmez que le profil SIP est correctement configuré. (Fait)

Dans notre cas de figure les messages en sortie semblent fonctionner comme le montre la figure suivante :

Vérifiez si le nombre de messages augmente dans les Options d’entrée. Si le nombre n’augmente pas (ce qui est notre cas), vérifiez ce qui suit :

  • Confirmez que le pare-feu est correctement configuré pour autoriser les messages SIP TLS entrants (Fait)
  • Confirmez que l’IP fédérée est configurée avec sip-all.pstnhub.microsoft.com
  • Confirmez que le FQDN utilisé dans le profil SIP > FQDN dans le champ « Contact Header » est le même FQDN que celui défini dans le tenant. (Fait)
  • Confirmez que le FQDN utilisé dans le champ Profil SIP > FQDN dans l’en-tête du contact se résout à l’adresse IP publique du SBC. (Fait)

Pour Teams, le groupe de signalisation faisant face au serveur Teams doit être configuré comme « FQDN SBC Edge » ou « Statique » (s’il y a plus d’un groupe de signalisation connecté au routage direct des équipes). Le FQDN dans l’en-tête de contact doit être le même FQDN que celui utilisé dans la passerelle en ligne pour le tenant d’Office 365. Si l’adresse IP du SBC est configurée dans l’en-tête de contact au lieu du FQDN du SBC, un message interdit est reçu.

  • Confirmez qu’une route statique (Protocoles > IP > Route statique) est configurée pour atteindre le serveur public Microsoft à partir de votre IP publique (Fait)
  • Vérifiez le nombre de messages dans Outgoing 2xx. Si le nombre augmente, les modifications que vous avez apportées lors de la validation ont résolu le(s) problème(s) d’intégration. (Toujours pas)

En regardant de plus près et en activant les logs de la passerelle on peut apercevoir que la passerelle rencontre un problème de TLS avec les certificats de Microsoft :

TransportCommonParams.cpp:390) – Verify peer certificate depth=1, issuer: /C=IE/O=Baltimore/OU=CyberTrust/CN=Baltimore CyberTrust Root, subject: /C=US/ST=Washington/L=Redmond/O=Microsoft Corporation/OU=Microsoft IT/CN=Microsoft IT TLS CA 4 error: 20(unable to get local issuer certificate)
[2020-05-25 17:00:06,401] 2756 0001 com.sonus.sbc.sip.libctl WARN (TransportTlsSocket.cpp:3174) – TLS Client peer certificate(sip.pstnhub.microsoft.com) verify failed, error: 20(unable to get local issuer certificate), current index: 2 for conn_id: 49084
[2020-05-25 17:00:06,402] 2757 0003 com.sonus.sbc.sip.libctl INFO (TransportTlsSocket.cpp:2522) – SSL_connect after: socket fd=74 for conn_id: 49083 in state: error, negotiated version: (NONE) and cipher: (NONE)
[2020-05-25 17:00:06,402] 2758 0002 com.sonus.sbc.sip.libctl WARN (TransportTlsSocket.cpp:3024) – TLS Peek Code: 0, Error Code: 336134278, Reason: 134(Unknown) for conn_id: 49083
[2020-05-25 17:00:06,403] 2759 0005 com.sonus.sbc.sip.libctl WARN (TransportTlsSocket.cpp:3079) – TLS Handshake Failed alert msg send 48 was notified for conn_id: 49083

Nous avons installé l’autorité de certification de Microsoft que l’on peut récupérer à l’adresse suivante : https://cacert.omniroot.com/bc2025.crt dans la configuration de la passerelle

Une fois installé notre signaling group est monté

Et nos compteurs incoming augmentent

Et l’état de la passerelle est maintenant passée en orange sur le portail Microsoft Teams. Après vérification les appels PSTN arrivent sur Teams.


Votre commentaire

Choisissez une méthode de connexion pour poster votre commentaire:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s