Queue logged in hints for Queue Agents
-
Hi Nicolas,
for some customers I have setup BLF keys on the phones for my Queue Agents to dial an extension which toggles login/logout to/from a Queue.
In the Agent login routine I also set the status for a custom hint (INUSE, NOT_INUSE), so that an Agent could see on the BLF key on the phone, if he's logged into the Queue or not.exten => _qm-queue1-XXX,hint,Custom:qm-queue1-${EXTEN:-3}Is there a way in FOP2 to adapt this behavior and turn the custom hint on and off, when an Agent is logged in/off through the FOP2 webinterface?
-
Using the plugin interface you could intercept queue add/remove events and do things with it. In your case, you should Originate a call to a custom dialplan that will set the hint. Look in FOP 2.27 for the sample plugin.
The event itself looks like this:
127.0.0.1 <- Event: QueueMemberAdded 127.0.0.1 <- Privilege: agent,all 127.0.0.1 <- Queue: 100 127.0.0.1 <- Location: SIP/1109 127.0.0.1 <- MemberName: John Doe 127.0.0.1 <- StateInterface: 127.0.0.1 <- Membership: dynamic 127.0.0.1 <- Penalty: 30 127.0.0.1 <- CallsTaken: 0 127.0.0.1 <- LastCall: 0 127.0.0.1 <- Status: 1 127.0.0.1 <- Paused: 0In order to catch add events you will need to have this in the plugin .pl file:
$AMI_Event_Handler{'yourcustomplugin'}{'QUEUEMEMBERADDED'} = sub { my $event = shift; my @allreturn; my $location = ${$event}{'Location'}; my $return = "Action: Originate\r\n"; $return .= "Channel: Local/$location\@custom-context-to-set-hint\r\n"; $return .= "Application: Noop\r\n"; $return .= "\r\n"; push @allreturn, $return; return @allreturn; }And then have a custom-context-to-set-hint in your dialplan to set your hints.
You will have to adapt the above to suit your exact requirements.
-
-
-
mkeuter could you share what you have?
I am interested in this to be used with FreePBX generated hints for the 45<ext><queue> toggle. Will confuse my users if we don't have the light change when they change queue state from FOP2.
Thanks
Joe -
Well after finding that I could launch fop2_server in debug mode, I was able to watch some commands and look over existing plugins to come up with this... I could not get it to upload through web interface though so I just placed it in plugins folder.
This works with FreePBX generated hints for Ext/Queue toggle keys. (45<exten><queue>). I make no guarantees outside of my setup :geek: I will share for others through, maybe can use as is, modify for your setup or use it for inspiration to take over the world.
All of these I placed a folder called queuehintfpbx inside of /var/www/html/fop2/admin/plugins then in the FOP2 Manager went to Plugins and enabled it. Not sure if necessary, but seemed so, I reloaded FOP2 service.
# file: queuehintfpbx.pl # For Queue Add $AMI_Event_Handler{'queuehintfpbx'}{'QUEUEMEMBERADDED'} = sub { my $event = shift; my @allreturn = (); my $return = ''; my $exten = ${$event}{'Location'}; my $queue = ${$event}{'Queue'}; $exten =~ s/[^0-9]//g; $return = "Action: Command\r\n"; $return .= "Command: devstate change Custom:QUEUE$exten*$queue INUSE\r\n"; $return .= "\r\n"; push @allreturn, $return; return @allreturn; }; #For Queue Remove $AMI_Event_Handler{'queuehintfpbx'}{'QUEUEMEMBERREMOVED'} = sub { my $event = shift; my @allreturn = (); my $return = ''; my $exten = ${$event}{'Location'}; my $queue = ${$event}{'Queue'}; $exten =~ s/[^0-9]//g; $return = "Action: Command\r\n"; $return .= "Command: devstate change Custom:QUEUE$exten*$queue NOT_INUSE\r\n"; $return .= "\r\n"; push @allreturn, $return; return @allreturn; };queuehintfpbx.js
plugins['queuehintfpbx'] = (function() { return { loadLang: function(values) { }, setLang: function() { }, init: function() { } } }());plugin.xml
<plugin> <rawname>queuehintfpbx</rawname> <name>Queue Hint Update Integration</name> <version>0.9.8</version> <description>Queue Add/Remove Hint Updates for Queues</description> <description-es_ES></description-es_ES> <engine>freepbx</engine> <changelog> *0.9.8* Initial Release </changelog> </plugin>I have an empty queuehintfpbx.css file and an empty lang folder.
-
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login