Paging entre 2 tenant

Bonjour,

pour plus de clarté je vais exprimer notre besoin :
Nous souhaitons mettre en place un système d’alerte (paging) par WAZO.
Le problème est que sur notre site nous avons 2 entreprises avec 2 tenants indépendants l’un de l’autre, nous avons cependant entre les 2 un trunk SIP. Nous souhaitons pouvoir alerter les 2 sites avec un seul numéro.

Pour cela on m’a orienté vers la mise en place d’une conférence qui appellerait les 2 numéros de paging.

Voilà ce que j’ai mis en place au niveau de la sous routine de la conférence, j’ai fait le test avec une extension (*1163) pour l’instant :

[paging-conference]
exten = s,1,NoOp(Paging conference)
same = n,Set(XIVO_USERID=1) ; Remplacer le numéro XIVO_USERID par l’id de l’utilisateur qui est autorisé a faire le paging
same = n,Dial(Local/*1163) ; lance l’appel vers le paging 63
same = n,Return()

le problème est quand l’appel du paging se lance le userfeaturesid ne prend pas la valeur de XIVO_USERID :

2023-02-21 12:49:41.5287] > agi://127.0.0.1/paging,63: File “/usr/lib/python3/dist-packages/psycopg2/extras.py”, line 141, in execute
[2023-02-21 12:49:41.5291] > agi://127.0.0.1/paging,63: return super(DictCursor, self).execute(query, vars)
[2023-02-21 12:49:41.5294] > agi://127.0.0.1/paging,63: psycopg2.DataError: ERREUR: syntaxe en entrée invalide pour l’entier : « »
[2023-02-21 12:49:41.5297] > agi://127.0.0.1/paging,63: LINE 1: …featuresid FROM paginguser WHERE userfeaturesid = ‘’ AND pag…
[2023-02-21 12:49:41.5300] > agi://127.0.0.1/paging,63: ^
[2023-02-21 12:49:41.5320] > agi://127.0.0.1/paging,63:
[2023-02-21 12:49:41.5323] > agi://127.0.0.1/paging,63:
[2023-02-21 12:49:41.5326] > agi://127.0.0.1/paging,63: A problem occurred in a python script

Avez-vous une idée ?
Ou même m’orienter vers une autre solution pour faire le paging entre 2 tenant.

Site 1 : Version Wazo Stack - 23.01
Site 2 : Version Wazo - 18.03

Merci
Romain

Salut,

Si tu veux retrouver ta variable tu dois mettre un _ devant sinon elle ne suivra pas. _XIVO_USERID.

Sylvain

Salut,
super merci, effectivement l’ID est bien envoyé maintenant, mais cela n’a pas changé grand-chose, je n’ai plus l’erreur, mais le Dial depuis la conférence vers l’extension du paging ne fonctionne pas.

Voilà la solution qui fonctionne chez nous :

  1. Les utilisateurs appellent un numéro de conférence.
  2. La conférence appelle les 2 numéros externe avec la fonction Page (si on utilise la fonction Dial un seul des 2 numéros peut décrocher):

[paging-conference]
exten = s,1,NoOp(Appel des numéros externe depuis la conférence)
same = n,Page(Local/XXXXXXXXXXX&Local/XXXXXXXXXXX) ; Appel des numéros long qui redirige vers les paging
same = n,Return()

  1. Le numéro externe redirige vers le paging et on y applique la sous-routine

[paging-ext]
exten = s,1,NoOp(Autorisation et remplacement du XIVO_USERID pour le paging)
same = n,Set(autnum=${REGEX(“XXXXX” ${CALLERID(num)})}) ; On compare le numéro appelant avec la REGEX si autorisé, autnum = 1
same = n,GotoIf( $[“${autnum}” != “1”]?:paging) ; Si autnum = 1 (numéro autorisé) alors on va à paging sinon on raccroche
same = n,Hangup(21)
same = n(paging),Set(XIVO_USERID=XXX) ; Remplacer le XXX XIVO_USERID par l’id de l’utilisateur qui est autorisé à faire le paging, ici XXX est un utilisateur dédié
same = n,Return()

Pour l’instant cela est fonctionnel avec une seule instance, je vais voir pour implémenter la 2ème instance.

Si vous avez un autre moyen sans devoir utiliser de SDA je suis preneur, sinon on fonctionnera comme cela.

Merci

Salut,

Fais toi un trunk SIP où tu fais passer ce que tu as besoin entre tes instances.

Salut,

Effectivement plus simple et plus efficace en utilisant le trunk sip entre les 2.
Merci.

Voilà plus concrètement ce qu’on a fait :

2 tenants avec un trunk sip
Extension tenant 1 : 7XXX
Extension tenant 2 : 8XXX

ici le numéro 7001 est à appeler pour déclencher les paging des 2 tenants.

dialplan sur le tenant 1 :

[default]
exten = 6001,1,GoSub(redirect-to-paging,s,1(XXX,XX)); remplacer XXX par le XIVO_USERID de l’utilisateur autorisé à faire le paging et XX par l’extension du paging
exten = 7001,1,Page(Local/6001&Local/8001) ; Groupe de paging 6001 sur le tenant local et 8001 sur le distant

[redirect-to-paging]
exten = s,1,NoOp(Redirige l’appel vers le paging ${ARG2} en se faisant passer pour le user id ${ARG1})
same = n,Set(_XIVO_USERID=${ARG1}) ; Remplace le numéro XIVO_USERID par l’id de l’utilisateur qui est autorisé a faire le paging
same = n,Goto(default,*11${ARG2},1) Appel vers le paging

dialplan sur le tenant 2 :

[default]
exten = 8001,1,GoSub(redirect-to-paging,s,1(XXX,XX)) ; remplacer XXX par le XIVO_USERID de l’utilisateur autorisé à faire le paging et XX par l’extension du paging

[redirect-to-paging]
exten = s,1,NoOp(Redirige l’appel vers le paging ${ARG2} en se faisant passer pour le user id ${ARG1})
same = n,Set(_XIVO_USERID=${ARG1}) ; Remplace le numéro XIVO_USERID par l’id de l’utilisateur qui est autorisé a faire le paging
same = n,Goto(default,*11${ARG2},1) Appel vers le paging

Romain

1 Like

Merci pour le feedback.