Member
Last active 7 years ago
Using Channel: GLOBAL works great. Thank you.
We would like to receive PeerStatus notifications in the UI. I created a plugin with an AMI_Event_Handler for the PeerStatus event. This plugin gets called when the event occurs, but I do not see how I can get the message back to the UI.
In other plugins, we created a UserEvent with a unique family name and that was sent back to the UI. However, in the case of the PeerStatus there is no channel and I am seeing:
There is no channel , but we've got Family. Do nothing
in the FOP2 log.
Is there something I can put in the Channel parameter to tell the FOP2 server to ignore the channel and send the notification? If not, is there another mechanism where I can send a message from the plugin to the UI?
I reloaded the original 2.28 fop2.js and was able to reproduce the problem, albeit a bit differently.
This time, open the browser, navigate to the fop2 login page, and enter a correct extension with an invalid password. The client sends the auth request, gets the incorrect return, and redisplays the login dialog.
uncion init
VM97:1 sends auth 1234 y ieRMoKueUKgRfm9Q9nK1RoAGzbSAX
VM97:1 ws send <msg data="1|auth|4159672901|1da254f595f949a51b0aa5232a19a020" />
VM97:1 0,incorrect=0 en slot
VM97:1 show sec box
VM97:1 limpia todo
VM97:1
At this point, do the update in FreePBX. The fop2 server will start sending messages to the client that never logged in.
[root@ASTERISK18 ~]# /usr/local/fop2/fop2_server --version
fop2_server version 2.28
I forgot to add that we have made some modifications to fop2.js so there will be some messages you do not recognize.
I was finally able to replicate this problem consistently. The problem occurs in both Chrome and Firefox (the only two browsers we use).
To replicate the problem:
I have attached the console log that shows this. I added
=====> Here I am logged out and have the login dialog <=====
to the log so you can see where I am logged off. There are a couple pings after this, and then a whole slew of messages from the FOP2 server.
The console log continues to show messages sent from the server.
We have noticed that occasionally when the user logs out of the FOP2 server but leaves the browser open, that he continues to get messages from the server. He tells us that he hears the ringing sound when a queue call is received.
I checked the FOP2 server log and verified that the close message was received by the server.
One thing I noticed is when I attempt to replicate the problem, I see what appear to be entries in the log that support the close request.
<= <msg data="19|close||a51774713f90db99bb7ebe652561d2c8" />
-- PROCESS_FLASH_COMMAND origen 19 accion close destino password a51774713f90db99bb7ebe652561d2c8
Client Disconnection - remove client on error from socket AnyEvent::Handle=HASH(0xe5ac120) (75.85.118.107:52967)
Client disconnection, user 4159672901 logged off
Discarding from status notifications as it is not a permitted possition (19).
No context defined for AnyEvent::Handle::destroyed=HASH(0xe5ac120) (unauthenticated or connection failed), skip online status notification.
However, when I check the user's logout, all I see is the close request, but no additional entries after it.
<msg data="232|close||27b6226a159a2293f8e746543f18464d" />
I don't know if this indicates an error in the close request or something else.
Can you think of a reason that the server would continue to send messages to a client after logout? There is a possibility that another user is logged into FOP2 with the same extension.
I rechecked the presence file (deleted the entry and retyped it without copying from another line) and the problem persists. If the problem were in the presence.js file, I would expect the command sent to the fop2 server to show the problem, yet the translation appears to occur in the server.
[root@ASTERISK18 fop2]# file js/presence.js
js/presence.js: UTF-8 Unicode C++ program text
Correct here in the command sent to the server
75.85.118.107:52197 <= <msg data="23|setastdb|fop2state~4159672901~Away|0c81ee79a3e68fb6a9f03eb4bdeb5461" />
Yet, incorrect when the action is sent to Asterisk.
127.0.0.1 -> Action: Command
127.0.0.1 -> Command: database put fop2state USER/4159672901 "^C^F²"
I got around the problem by changing the command sent from fop2.js to setastdb2 and handling it in a plugin. This is with the same entry in presence.js:
75.85.118.107:52323 <= <msg data="23|setastdb2|fop2state~4159672901~Away|0c9f5d4fcf8982e0d9b3e6f57a486fe3" />
In Headland pre-command setastdb plugin
127.0.0.1 -> Command: database put fop2state USER/4159672901 "Away"
127.0.0.1 -> Action: Command
127.0.0.1 -> ActionID: 62
I would like to replace an action performed by the FOP2 server. To do this, I would write a plugin with a precommand handler that would process the command.
Is there a way, then, that the plugin can send a response that tells the FOP2 server to bypass its standard processing of the command and proceed to invoke the postcommand handler, if present?