Здравствуйте, нужно реализовать проверку статуса заказа звонящего путем
ввода им с телефона в тональном режиме номера заказа, т.е. что бы ответ был готов\не готов\комплектуется.
Сейчас сделано так, что берется номер звонящего, проверяется по базе и выдается результат, но к сожалению не совсем подходит, хоть и удобнее для клиента. Как минимум, у клиента несколько заказов может быть, либо он может звонить с другого номера.
Вариант с определением номера:
;Вызваем php скрипт check_status.php с аргументом номер клиента.
exten => s,n,AGI(check_status.php, ${CALLERID(number)})
<?php
//check_status.php скрипт для автоматического ответа по статусу заказа
//Подключаемся к базе данных (причем, можно отметить, что php имеет в своем наборе интерфейсы
//практически ко всем типам баз данных которые только существуют)
$conn = mysql_connect("localhost", "mysql_user", "mysql_password");
mysql_select_db("clients");
//Делаем выборку по номеру клиента
$sql = "SELECT status
FROM clients
WHERE client_number = ".$argv[1];
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
// Получили статус предположим что они бывают Ready и Please_Wait
$status=$row["status"];
mysql_free_result($result);
//Подключаем класс для работы с Asterisk
require('phpagi.php');
$agi = new AGI();
//Отвечаем на вызов клиента
$agi->answer();
// Проигрываем заранее заготовленные файлы Ready или Please_Wait /var/lib/asterisk/sounds
$agi->stream_file($status);
$agi->hangup();
?>