Jump to content

Recommended Posts

Posted

Hi all.

Is there anyone that set up a Barge feature to work with 2600 ?

If someone can help us with this, to get it set up. 

What we need is:

Listen in to an employee while on the phone either muted, where the employee, and the other party dont know,

Or talk to the employee   

 

 

Posted

We are using the eavesdrop feature, but that's in our own hosted Kazoo cluster. But I thought that all features in the open source version is available in the 2600hz hosted one?

If I remember correctly we did a simple PHP script invoked via Pivot. The manager can monitor the agents by dialing a feature code followed by the extension he wants to listen to (*68*101 or *68*102 etc).
We then programmed his phone to have those codes in the soft keys, so he just has to press one key to listen :)

Posted
25 minutes ago, FASTDEVICE said:

@tomas_ Does the feature only work with queues and agents? I have a basic need for it to work with any device in an active call.  

No, we are using it on regular calls and devices.
Not queues, but I think it would work there also.

Posted (edited)

Sure!
Here's the main part of our PHP script invoked by pivot from a feature code (*68). I hope I didn't missed something.
It uses https://github.com/2600hz/kazoo-php-sdk, basically in the find_user_id_from_extension function, but it should be possible to do that with Kazoo API and curl also.

<?php

### Todo:
# Permissions, system for who is permitted to eavesdrop on which users
#  Now all users in same account is permitted to eavesdrop all

require_once "kazoo-php-sdk/vendor/autoload.php";

date_default_timezone_set('Europe/Stockholm');
$date_format = 'Y-m-d H:i:s';
$logfile = "/var/log/kazoo/eavesdrop.log";
$feature_code_length = 3;  # Length of feature code (*68 = 3)

$account_id = $_GET['Account-ID'];
$user_id = $_GET['User-ID'];
$caller_user_id = $_GET['User-ID'];
$request = $_GET['Request'];
$extn = substr($request, $feature_code_length);	# Strip feature code to get extension to eavesdrop

if (!function_exists('AppendLogFile')) {
	function AppendLogFile($logstring){
		global $logfile, $logfile_handle, $date_format;
		$datestring = date($date_format);
		if (fwrite($logfile_handle, "$datestring; $logstring\n") === FALSE) echo("** Error: Cannot write to logfile $logfile! **\n\n");
	}
}

function get_sdk($api_key_function) {
	require_once "kazoo-php-sdk/vendor/autoload.php";
	$options = array('base_url' => 'http://localhost:8000');
	$auth_token = new \Kazoo\AuthToken\ApiKey($api_key_function);
	$sdk = new \Kazoo\SDK($auth_token, $options);
	return $sdk;
	exit();
}

function find_user_id_from_extension($sdk, $account_id, $extn) {
	$users = $sdk->Account($account_id)->Users();
	foreach($users as $element) {
		$presence_id = $element->presence_id;
		if ($presence_id == $extn) {
			return $element->id;
			exit;
		}
	}
}


if (!$logfile_handle = fopen($logfile, 'a')) { ### Open logfile
	die("** Error: Failed to open logfile $logfile! **");
}

$sdk = get_sdk($master_api_key);
$user_id = find_user_id_from_extension($sdk, $account_id, $extn);

AppendLogFile("Starting eavesdrop on user_id $user_id from $caller_user_id in account $account_id.");

header("content-type: application/json");
echo ('{"module":"eavesdrop","data":{"user_id":"'.$user_id.'", "approved_user_id": "'.$caller_user_id.'"}}');

 

Edited by tomas_ (see edit history)
Posted

i have the same script as tomas_ working on my self hosted cluster too. we added an extra check where script will check an eavesdrop group where we add users and only those users can listen in on other calls

  • Administrators
Posted
On 3/17/2018 at 10:58 AM, Josh Robbins said:

it doesn't work - I get a system message saying "no channels" and then she hangs up on me. This must be disabled on the hosted platform. Booooooo

If you are hearing a recording it is enabled but didn't find any matching channels.

Posted

yep - got it working yesterday with the help of Darren at Fast Device. It turns out it doesn't work without an approved_group_id with the listening user in part of that group. 

So anyone know about whisper or barge now that we got monitor working? I found something called "intercept": https://github.com/2600hz/kazoo/blob/5e877f684639fa655de973e9295abf1cb74c8957/applications/callflow/doc/intercept.md

is that barge possibly?

Posted
6 hours ago, Josh Robbins said:

It turns out it doesn't work without an approved_group_id with the listening user in part of that group. 

So you mean it isn't enough with just approved_user_id that we have in our script above?

Posted

@tomas_ oddly enough, it didn't work on Josh's account using the user id. However, It did work on mine. Once we switched to using the group id, it worked perfectly for him. That's the right approach anyway for security reasons, but I'm uncertain why the behavior is different between reseller accounts. My only thought is he subscribes to Qubicle and I don't.  

×
×
  • Create New...