Я использую PHP-AGI для записи вызовов звездочкой. Это обеспечивает метод монитор в классе AGI_AsteriskManager. Теперь я не хочу вводить и выводить записи отдельно, я просто хочу один единственный файл, содержащий полную запись вызова. Я использовал код ниже:
...
$agiAsteriskManager = new AGI_AsteriskManager();
$agiAsteriskManager->Monitor($mychannel,$myfile, "wav", true);
...
Последний параметр, как указано в документы это $ mix, который, я думаю, либо для создания одного файла ($ mix = false), либо двух отдельных файлов ($ mix = true) [источник].
Я пробовал оба варианта $ mix, но в любом случае он создает два файла. Может кто-нибудь помочь мне понять это? Где я иду не так, как я не мог найти подробную документацию относительно того же?
Это нормально.
Создайте два файла, после чего преобразуйте в один
Зависимость: пакет sox.
$agiAsteriskManager->Monitor($mychannel,$myfile, "wav", true);
Это сохранит запись звонка в один файл 1.wav
$agiAsteriskManager->Monitor($mychannel,$myfile, "wav", false);
Вышеупомянутое утверждение сохранит запись звонка в 2 файла. Это сохранит ввод и вывод отдельно.
«arheops» справедливо упомянул в предыдущем комментарии, что SOX необходим, если вы хотите сохранить запись в одном файле. Установка SOX на сервере УАТС решит проблему.
Первоначально Asterisk создает отдельные входящие и исходящие файлы, когда включен мониторинг вызовов и выполняется вызов. Как только мониторинг вызовов остановлен, две записи автоматически объединяются с помощью SOX.