<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Queue logged in hints for Queue Agents]]></title><description><![CDATA[<p dir="auto">Hi Nicolas,<br />
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.<br />
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.</p>
<pre><code>exten =&gt; _qm-queue1-XXX,hint,Custom:qm-queue1-${EXTEN:-3}
</code></pre>
<p dir="auto">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?</p>
]]></description><link>http://localhost:4567/topic/1771/queue-logged-in-hints-for-queue-agents</link><generator>RSS for Node</generator><lastBuildDate>Tue, 27 Oct 2026 09:28:18 GMT</lastBuildDate><atom:link href="http://localhost:4567/topic/1771.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 18 Jul 2014 09:10:21 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Queue logged in hints for Queue Agents on Fri, 06 Mar 2015 16:56:26 GMT]]></title><description><![CDATA[<p dir="auto">Hi,</p>
<p dir="auto">the QUEUEMEMBERADDED and QUEUEMEMBERREMOVED events work fine for me like described above, but when I try to catch the QUEUEMEMBERPAUSED event, it does nothing.</p>
]]></description><link>http://localhost:4567/post/7680</link><guid isPermaLink="true">http://localhost:4567/post/7680</guid><dc:creator><![CDATA[mkeuter]]></dc:creator><pubDate>Fri, 06 Mar 2015 16:56:26 GMT</pubDate></item><item><title><![CDATA[Reply to Queue logged in hints for Queue Agents on Wed, 13 Aug 2014 10:13:39 GMT]]></title><description><![CDATA[<p dir="auto">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.</p>
<p dir="auto">This works with FreePBX generated hints for Ext/Queue toggle keys. (<em>45&lt;exten&gt;</em>&lt;queue&gt;).  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.</p>
<p dir="auto">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.</p>
<p dir="auto"><strong><a href="http://queuehintfpbx.pl" rel="nofollow ugc">queuehintfpbx.pl</a></strong></p>
<pre><code># 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;
};
</code></pre>
<p dir="auto"><strong>queuehintfpbx.js</strong></p>
<pre><code>plugins['queuehintfpbx'] = (function() {
    return { 
        loadLang: function(values) {
        },
        setLang: function() {
        },
        init: function() {
        }
    }
}());
</code></pre>
<p dir="auto"><strong>plugin.xml</strong></p>
<pre><code>&lt;plugin&gt;
    &lt;rawname&gt;queuehintfpbx&lt;/rawname&gt;
    &lt;name&gt;Queue Hint Update Integration&lt;/name&gt;
    &lt;version&gt;0.9.8&lt;/version&gt;
    &lt;description&gt;Queue Add/Remove Hint Updates for Queues&lt;/description&gt;
	&lt;description-es_ES&gt;&lt;/description-es_ES&gt;
    &lt;engine&gt;freepbx&lt;/engine&gt;
    &lt;changelog&gt;
        *0.9.8*   Initial Release
    &lt;/changelog&gt;
&lt;/plugin&gt;
</code></pre>
<p dir="auto">I have an empty queuehintfpbx.css file and an empty lang folder.</p>
]]></description><link>http://localhost:4567/post/7679</link><guid isPermaLink="true">http://localhost:4567/post/7679</guid><dc:creator><![CDATA[joe1981alAPR]]></dc:creator><pubDate>Wed, 13 Aug 2014 10:13:39 GMT</pubDate></item><item><title><![CDATA[Reply to Queue logged in hints for Queue Agents on Tue, 12 Aug 2014 00:08:09 GMT]]></title><description><![CDATA[<p dir="auto">mkeuter could you share what you have?</p>
<p dir="auto">I am interested in this to be used with FreePBX generated hints for the <em>45&lt;ext&gt;</em>&lt;queue&gt; toggle.  Will confuse my users if we don't have the light change when they change queue state from FOP2.</p>
<p dir="auto">Thanks<br />
Joe</p>
]]></description><link>http://localhost:4567/post/7678</link><guid isPermaLink="true">http://localhost:4567/post/7678</guid><dc:creator><![CDATA[joe1981alAPR]]></dc:creator><pubDate>Tue, 12 Aug 2014 00:08:09 GMT</pubDate></item><item><title><![CDATA[Reply to Queue logged in hints for Queue Agents on Sat, 19 Jul 2014 21:05:44 GMT]]></title><description><![CDATA[<p dir="auto">I think the logout event is QUEUEMEMBERREMOVED. You can repeat the block for that event to have both login and logoff covered.</p>
]]></description><link>http://localhost:4567/post/7677</link><guid isPermaLink="true">http://localhost:4567/post/7677</guid><dc:creator><![CDATA[nicolas]]></dc:creator><pubDate>Sat, 19 Jul 2014 21:05:44 GMT</pubDate></item><item><title><![CDATA[Reply to Queue logged in hints for Queue Agents on Sat, 19 Jul 2014 17:35:00 GMT]]></title><description><![CDATA[<p dir="auto">Hi Nicolas,</p>
<p dir="auto">I got something working already. But how can I use 2 different handlers for login and logout in one plugin?<br />
With 2 different it works for me.</p>
]]></description><link>http://localhost:4567/post/7676</link><guid isPermaLink="true">http://localhost:4567/post/7676</guid><dc:creator><![CDATA[mkeuter]]></dc:creator><pubDate>Sat, 19 Jul 2014 17:35:00 GMT</pubDate></item><item><title><![CDATA[Reply to Queue logged in hints for Queue Agents on Fri, 18 Jul 2014 12:29:40 GMT]]></title><description><![CDATA[<p dir="auto">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.</p>
<p dir="auto">The event itself looks like this:</p>
<pre><code>127.0.0.1            &lt;- Event: QueueMemberAdded
127.0.0.1            &lt;- Privilege: agent,all
127.0.0.1            &lt;- Queue: 100
127.0.0.1            &lt;- Location: SIP/1109
127.0.0.1            &lt;- MemberName: John Doe
127.0.0.1            &lt;- StateInterface: 
127.0.0.1            &lt;- Membership: dynamic
127.0.0.1            &lt;- Penalty: 30
127.0.0.1            &lt;- CallsTaken: 0
127.0.0.1            &lt;- LastCall: 0
127.0.0.1            &lt;- Status: 1
127.0.0.1            &lt;- Paused: 0
</code></pre>
<p dir="auto">In order to catch add events you will need to have this in the plugin .pl file:</p>
<pre><code>$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;
}
</code></pre>
<p dir="auto">And then have a custom-context-to-set-hint in your dialplan to set your hints.</p>
<p dir="auto">You will have to adapt the above to suit your exact requirements.</p>
]]></description><link>http://localhost:4567/post/7675</link><guid isPermaLink="true">http://localhost:4567/post/7675</guid><dc:creator><![CDATA[nicolas]]></dc:creator><pubDate>Fri, 18 Jul 2014 12:29:40 GMT</pubDate></item></channel></rss>