Aide compréhension trunk mutualisé pour multitenant

Bonjour tout le monde,

Etant plus orienté réseau dans ma carrière pro (backbone opérateur / virtualisation / automatisation), je souhaite rajouter une nouvelle corde à mon arc qui est la téléphonie.

J’ai donc opté pour Wazo (la solution gratuite pour mon lab) pour un PBX multitenant. Une fois l’installation et la configuration terminée, j’arrive bien à passer des appels internes. Je souhaite donc maintenant pouvoir faire des appels sortants / entrants sur des SDA.

Je sais que les trunks opérateurs sont configurés sur un SBC. De plus, si j’ai bien compris, je suis obligé d’en utiliser un pour modifier l’entête SIP et rajouter un champ pour identifier le tenant. Je ne souhaitais pas partir sur du kamailio en brut, j’ai trouvé un projet SBC KISS (qui est d’ailleurs développé par un gars de chez Wazo) : PKS (https://pk-sbc.io/).

Je comprends qu’il faille monter un trunk entre les deux mais je ne saisis pas la logique de comment le faire.

Au final, je souhaite avoir un tenant où dedans j’ai mon trunk et que les tenants puissent l’utiliser.

Si quelqu’un veut bien répondre aux quelques questions d’une personne qui souhaite comprendre comment ca marche :slight_smile: :

  • Est ce possible sur Wazo de mutualiser un trunk pour tous mes tenants ? C’est à dire de monter un trunk dans un tenant spécifique et que mes tenants Customer puissent l’utiliser ?
  • En regardant le code de PKS, je vois qu’il utilise une variable X-CUSTOMER-ID pour identifier le tenant. Par contre, je ne comprends pas comment mon SBC peut faire le lien avec les appels qu’il reçoit et qu’il puisse les router sur le bon tenant, il faut bien qu’il sache la correspondance entre les SDA et les tenants ? Donc je dois faire une table dans le SBC pour ça nan ?
  • Une fois le SIP envoyé au Wazo avec X-CUSTOMER-ID dans l’entête, comment lui il sait qu’il doit rediriger sur le tenant correspond à l’ID du client ?
  • Et dans le cas d’un appel sortant, c’est Wazo qui remplit le champ X-CUSTOMER-ID dans la trame SIP ?

Donc si quelqu’un aurait la gentillesse de m’envoyer quelques tips, je suis preneur !

D’avance merci :slight_smile:

Hello,

Je n’ai pas fait ce genre de configuration mais il y a déjà des réponses sur la gestion d’un trunk côté sbc pour rediriger vers plusieurs tenants

N’hésites pas à poser d’autres questions si nécessaire

Hello,

Yep, j’ai vu ce topic après ce post. Après pas mal d’heures passés, j’ai bien réussi à faire ce que je voulais.

Je réponds à mes propres questions :

  • Oui on peut mutualiser un trunk ce qui permet d’en avoir qu’un seul côté SBC. Il faut juste rajouter un header SIP pour matcher le bon tenant. Donc chaque tenant client possède son trunk de sortie vers le SBC
  • Oui dans les règles de routage des SDA, le SBC route vers les numéros vers le bon tenant donc il va remplir la X-CUSTOMER-ID avec la bonne valeur du tenant
  • Il faut ajouter dans le trunk dans point de terminaison idenify_by = header et dans identifier match_header = X-CUSTOMER-ID: customer2 et rajouter header dans le champ endpoint_identifier_order dans les paramètres globaux pjsip
  • Il faut rajouter une option dans le trunk. Un set_var dans point de terminaison PJSIP_HEADER(add,X-CUSTOMER-ID)=customer2)

Honnêtement, je ne sais pas si ce que je fais est correcte bien que fonctionnel. Le seul truc qui me pose soucis ce sont les appels inter tenant où mon SBC n’arrive pas router le flux de là où il vient (vu qu’un seul trunk) mais bon j’arriverai bien à trouver pourquoi :slight_smile:

Merci !