@quintana
Français via Google translate donc veuillez excuser tout problème de langue
Merci pour les réponses rapides (je regroupe les réponses ici)
J’enseigne à temps partiel et j’ai un autre cours à 14h00-16h00 aujourd’hui, mais j’assisterai certainement à toute vidéoconférence que vous proposez. Les mercredis et jeudis sont généralement les meilleurs jours pour moi, mais je vais certainement essayer d’intégrer ce qui vous convient dans mon emploi du temps. Je ferais aussi le week-end, mais je ne sais pas ce que vous pensez de l’activité du week-end, donc je respecterai tout ce que vous voudrez.
Quant aux flux :
Certaines choses dont je ne suis pas sûr peuvent affecter mes résultats :
- L’utilisateur que j’ai configuré pour node-red était associé au locataire principal TenantUUID
Je ne pouvais pas utiliser ’ --purpose “external-api” ’ avec myTenant
et quand j’ai créé un utilisateur avec ’ --purpose “user” ’ pour myTenant
cela n’a pas fonctionné pour capturer les données de trafic
- La politique que j’ai associée à mon utilisateur était la politique d’administration par défaut (accès complet)
- J’ai node-red en cours d’exécution sur un serveur distant se connectant au serveur Wazo
mais cela ne SEMBLE pas être le problème, car j’ai une connexion websocket qui fonctionne
(voir ci-dessous)
Je pense que j’utilise correctement les API. Ils fonctionnent et j’ai créé le document joint pour ce que j’ai fait pour que les API fonctionnent. Je vais créer plus de documentation pour node-red et la partager avec vous pour la publier sur la documentation Wazo si vous le souhaitez.
node-red fonctionne puisque j’ai pu faire fonctionner node-red et tracer des graphiques lorsque j’ai utilisé un injecteur d’horodatage toutes les 3 secondes et à partir de cela, j’ai généré un nombre aléatoire à partir duquel j’ai créé différents types de graphiques (graphique linéaire, compteur de vitesse, curseur, texte) .
La connexion de node-red au serveur Wazo fonctionne puisque j’ai pu utiliser la connexion Websocket pour capturer le current_call_count. Je dois travailler sur la manipulation des données pour capturer et stocker le nombre d’appels cumulés, mais à ce stade, il reconnaît l’activité Wazo et crée un graphique. Pour ce faire, je n’ai PAS créé d’application et n’ai rien créé du côté Wazo. Si j’ai créé une application et que je l’ai liée à une ligne, la ligne a cessé de fonctionner comme une ligne normale. Il me manque donc évidemment quelque chose dans la configuration qui permet aux informations de passer correctement si je la relie à une ligne/un utilisateur.
Le flux que j’ai utilisé pour cela est (je sais qu’il a besoin d’être affiné, juste pour tester le concept):
-
websocket → fonction → débogage et jauge
configuration du Websocket avec l’utilisateur sur le locataire principal avec des droits de politique d’administrateur
rien d’édité sur le serveur Wazo autre que de créer l’utilisateur avec l’attribution de MasterTenant et de politique
configuration de la fonction pour passer current_call_count avec “On Message” déclaré comme
var totalCallCount = context.get( "totalCallCount" );
if ( typeof( totalCallCount ) == "undefined" ) {
totalCallCount = 0;
}
// Current solution (below) is corrupted
// when a line is connected after the flow is running
// since a line connection
// sends (as a separate msg.payload) current_call_count = 0
// See below for temporary measure to deal with this
if ( msg.payload.hasOwnProperty( "current_call_count" ) ) {
if ( msg.payload.current_call_count == 1 ) {
totalCallCount += 1;
} else if ( msg.payload.registered == false ) {
// This handles the line being disconnected
// and prevents use of the current_call_count = 0
// sent as part of the disconnect process
totalCallCount = totalCallCount;
} else if ( msg.payload.current_call_count == 0 ) {
totalCallCount -= 1;
}
// Since I have not yet figured out how to handle new line connections
// I check if the totalCallCount has become corrupted (gone below 0)
// and reset it to 0
// Hopefully soon I figure out how to really deal with this situation
if ( totalCallCount < 0 ) {
totalCallCount = 0;
}
context.set( "totalCallCount" , totalCallCount )
msg.payload = totalCallCount;
return msg;
}
configuration de débogage et de jauge à partir de la sortie de la fonction
Cependant, lorsque j’ai essayé de configurer la surveillance du tronc, en utilisant soit l’utilisateur associé au locataire principal, soit l’utilisateur associé à myTenant, lorsque je suis allé dans la configuration et que j’ai cliqué sur “Choisir le tronc”, aucune option n’était affichée et le champ où j’étais censé pour entrer dans le TrunkUUID était grisé, m’empêchant de saisir quoi que ce soit manuellement.
Je suis donc bloqué sur le truc de la surveillance du tronc.
Des pensées?
Y a-t-il un moment où vous planifiez une vidéoconférence ? J’aimerais en faire partie. Et ton anglais est bien meilleur que mon français alors ne t’inquiète pas
Merci encore; c’est du chouette truc ! Je veux créer un tableau de bord rouge nœud auquel j’ai accès depuis mon téléphone portable afin de pouvoir voir ce qui se passe avec le serveur même lorsque je ne suis pas à mon bureau. (En plus je m’amuse à jouer… )
===========================================================
@quintana
French via Google translate so please excuse any language issues
Thank you for the quick replies (I am consolidating the answers here)
I teach part-time and have another class at 2:00pm-4:00pm today but will definitely attend any video conference you offer that I can. Wednesdays and Thursdays are generally best days for me but I will definitely try to fit what works for you into my schedule. I would do weekends as well but not sure what your thoughts are on weekend activity so I’ll respect whatever you want.
As for the flows:
Some things that I am not sure about that may be affecting my results:
- The user I setup for node-red was associated with the Master Tenant TenantUUID
I could not use ’ --purpose “external-api” ’ with myTenant
and when I created a user with ’ --purpose “user” ’ for myTenant
it did not work to capture the traffic data
- The policy I associated with my user was the default admin policy (full access)
- I have node-red running on a remote server connecting to the Wazo server
but that does not SEEM to be the problem, since I have a websocket connection working
(see below)
I think I am using the APIs correctly. They are working and I created a document for what I did to get the APIs working. I will create more documentation for node-red and share with you for posting on Wazo documentation if you want. I cannot upload a PDF with this post but if you want tos ee the documentation so far, let me know how to get it to you.
node-red is working since I was able to get node-red working and graphing when I used a timestamp injector every 3 seconds and from that generated a random number from which I created different graphing types (Line Chart, Speedometer, Slider, Text).
node-red’s connection to the Wazo server is working since I was able to use the Websocket connection to capture the current_call_count. I need to work on the data manipulation to capture and store cumulative call counts, but at this point, it is recognizing Wazo activity and creating a graph. To do this, I did NOT create an application and did NOT create anything on the Wazo side. If I did create an application and link it to a line, the line stopped working as a normal line, so I am obviously missing something in the setup that allows information to pass along properly if I link it to a line/user.
The Flow I used for this is (I know it needs refinement, just to test the concept):
-
websocket → function → debug & guage
websocket setup with user on Master Tenant with admin policy rights
nothing edited to Wazo server other than to create the user with MasterTenant and Policy assignment
function setup to pass current_call_count with “On Message” declared as
var totalCallCount = context.get( "totalCallCount" );
if ( typeof( totalCallCount ) == "undefined" ) {
totalCallCount = 0;
}
// Current solution (below) is corrupted
// when a line is connected after the flow is running
// since a line connection
// sends (as a separate msg.payload) current_call_count = 0
// See below for temporary measure to deal with this
if ( msg.payload.hasOwnProperty( "current_call_count" ) ) {
if ( msg.payload.current_call_count == 1 ) {
totalCallCount += 1;
} else if ( msg.payload.registered == false ) {
// This handles the line being disconnected
// and prevents use of the current_call_count = 0
// sent as part of the disconnect process
totalCallCount = totalCallCount;
} else if ( msg.payload.current_call_count == 0 ) {
totalCallCount -= 1;
}
// Since I have not yet figured out how to handle new line connections
// I check if the totalCallCount has become corrupted (gone below 0)
// and reset it to 0
// Hopefully soon I figure out how to really deal with this situation
if ( totalCallCount < 0 ) {
totalCallCount = 0;
}
context.set( "totalCallCount" , totalCallCount )
msg.payload = totalCallCount;
return msg;
}
debug and guage setup from output of function
However when I tried to setup trunk monitoring, using either the user associated with he Master Tenant or the user associated with myTenant, when I went to the setup and clicked “Choose Trunk”, there were no options shown and the field where I was supposed to enter the TrunkUUID was greyed out, preventing me from entering anything manually.
So I am stuck on the Trunk monitoring thing.
Any thoughts?
Is there a time you are planning a video conference? I’d love to be part of it. And your English is a lot better than my French so don’t worry
Thanks again; this is neat stuff! I wnat to create a node-red dashboard I can access from my mobile phone so I can see what is going on with the server even when I am not at my desk. (Plus I am having fun playing … )