Я надеюсь, что вы можете помочь мне с проблемой набора телефонных звонков с помощью Plivo PHP (новый SDK 4.0). Сначала я укажу, чего я хочу достичь:
— Клиент на моем веб-сайте хочет поговорить с главным агентом, поэтому он вводит свой номер телефона в форму, выбирает агента и, наконец, когда отправляет запрос, веб-сайт соединяет их обоих, набирая номер (это работает). Но затем, (здесь начинаются мои проблемы), я не могу получить информацию о звонке (статус, продолжительность, начальная и конечная даты звонка и т. Д.) Для выставления счета клиенту в соответствии с некоторыми из этих деталей.
Отредактировано 2018/02/23:
Рамя, ошибка 600 исчезла, и, кажется, все в порядке, как я вижу в журнале отладки Plivo. Ниже мои новые коды (Я думаю, что лучше сделано благодаря вашим инструкциям), и затем я покажу вам журнал Plivo debud (возможно, лучше увидеть его в моем аккаунте, звонок сделан 23 февраля 2018 18:33:15), и наконец я вижу мой журнал ошибок отладки сервера пуст!
Основная проблема в том, что файл dialstatus.php, хотя, кажется, получает параметры, но я не знаю, как получить к ним доступ, потому что dialstatus.php не выполняет отображение данных на моем мониторе (в моем коде, например, эта строка никогда не отображается на экране монитора 🙂
echo "Status = $estado, Aleg UUID = $aleg, Bleg UUID = $bleg";
Поэтому, несмотря на получение параметров, я не могу получить к ним доступ, чтобы манипулировать ими, распечатывать их на экране, выполнять операции с ними и т. Д. Может быть, это проблема с разрешениями файлов? (Эти php-файлы имеют разрешения 6,4,4 на моем сервере, так же, как и другие).
Спасибо!
Код 1: makecall.php
require 'vendor/autoload.php';
use Plivo\RestClient;
$client = new RestClient("**********", "**************************");
$telefono_cliente = "34*******";
$telefono_experto = "34*********";
$duracion = 50;
try {
$response = $client->calls->create(
"3491111111",
[$telefono_experto],
"https://www.ejemplo.com/llamar/response.php?telf=$telefono_cliente",
'POST',
[
'time_limit' => $duracion,
]
);
$id = $response->requestUuid;
echo "<br>Este es el requestUuid: " . $id . "<br><br>";
}
catch (PlivoRestException $ex) {
print_r($ex);
}
?>
Код 2: response.php
require 'vendor/autoload.php';
use Plivo\XML\Response;
$resp = new Response();
$params = array(
'callerId' => '3491111111',
'action' => "https://www.ejemplo.com/llamar/dialstatus.php",
'method' => "POST",
'redirect' => "false");
$body3 = 'Desde ejemplo un cliente desea hablar con usted.';
$params3 = array(
'language' => "es-ES", # Language used to read out the text.
'voice' => "WOMAN" # The tone to be used for reading out the text.
);
$resp->addSpeak($body3,$params3);
$dial = $resp->addDial($params);
//$number = "34**********";
$number = $_GET['telf'];
$dial->addNumber($number);
Header('Content-type: text/xml');
echo($resp->toXML());
/*
Output:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Speak language="es-ES" voice="WOMAN">Desde ejemplo un cliente desea hablar con usted.</Speak>
<Dial redirect="false" method="POST" action="http://www.ejemplo.com/llamar/dialstatus.php" callerId="3491111111">
<Number>34********</Number>
</Dial>
</Response>
*/
?>
Код 3: dialstatus.php
// Print the Dial Details
$estado = $_REQUEST['DialStatus'];
$aleg = $_REQUEST['DialALegUUID'];
$bleg = $_REQUEST['DialBLegUUID'];
echo "Status = $estado, Aleg UUID = $aleg, Bleg UUID = $bleg";
?>
Пливо Инженер по продажам здесь.
Redirect = true используется только в том случае, если вы хотите продолжить вызов, вернув другой XML-код в URL-адресе действия. Для вашего случая использования вам не нужно использовать этот параметр. Даже если для параметра Redirect задано значение false, Plivo отправит запрос на URL-адрес действия со списком параметров. Я посмотрел в свой аккаунт (Вот) и я вижу, как этот запрос отправляется с DialStatus, ALegUUID, BLegUUID вместе с другими параметрами.
URL действия набора номера — лучшее место, чтобы узнать DialStatus и DialHangupCause.
Вы можете найти продолжительность звонка и сумму счета в Запрос URL для зависания также. Этот URL для зависания можно настроить при первом вызове API (эксперту). По умолчанию для URL-адреса зависания установлено значение «Ответить по URL».
Пожалуйста, поднимите билет поддержки с нами для дальнейшей помощи.
Других решений пока нет …