Иногда возникает потребность автоматизировать обратный звонок клиенту с вашего сайта. Сценарий примерно таков: клиент заинтересовался вашей услугой и хочет пообщаться. Он вводит свой номер телефона в форму на сайте и нажимает OK. После этого вызов клиенту инициируется с доп. номера (Extension) сотрудника, ответственного за общение с клиентами. На столе сотрудника звонит телефон, сотрудник снимает трубку и слышит примерно следующее: “Ожидайте соединения с клиентом”. У клиента тоже звонит телефон, клиент снимает трубку и связь устанавливается.

Схема довольно непростая в реализации на первый взгляд. Но с помощью 3CX HTTP API и нескольких строк PHP кода она реализуется элементарно!

Вначале определим переменные.

config.php

<?php
// Имя сервера 3CX. Используйте IP адрес или имя DNS имя.
$host = 'http://localhost';
// Номер порта IVR. Должен быть открыть на файерфоле, если сайт хостится снаружи.
$port = ':5484';
// Extension с которого будет выполнятся вызов
$ext = '1000';
// PIN этого Extension
$ext_pin = '1000';
// Префикс линии, если он используется для выхода "наружу"
$prefix = '9';
?>

Теперь реализуем вызов с помощью 3CX HTTP API. См. http://wiki.3cx.com/api/http-api

call.php

<?php
require ('config.php');
$number = $_POST["number"];
$url = "$host$port/PbxAPI.aspx?func=make_call&from=$ext&pin=$ext_pin&to=$number";

$handle = fopen("$url", "r");
$contents = '';
while (!feof($handle)) {
$contents .= fread($handle, 8192);
}
fclose($handle);
?>

А это страничка, в которой клиент будет вводит свой номер. Конечно, она сильно упрощена, зато наглядна.

index.php

<html>
<body>

<form action="call.php" method="post">
Number: <input type="text" name="number" />
<input type="submit" />
</form>

</body>
</html>

Напоследок хочу порекомендовать обдумать какой-либо способ защиты от “шутников”, желающих вводить номера просто так. Возможно, это должна быть некая предварительная авторизация на сайте или CAPTCHA…

Хороших вам продаж!