Внедриться в готовую конфигурацию
Добавлено: 21 июл 2025, 13:24
Стоит задача не трогая основую конфигурацию астериска, созданную через веб интерфейс freepbx добавить логирование звонков нужной очереди.
в большом конфиге нашел нужную мне очередь (555) она выглядит так
[from-queue]
include => from-queue-custom
...
exten => 555,1,Goto(from-internal,${QAGENT},1)
...
меня интересует эта очередь 555. Все звонки на нее мне надо записать в лог. Скрипт лога уже подготовил на php AGI
цитата с https://asterisk-pbx.ru/wiki/freepbx/custom_context
Стандартный контекст FreePBX from-internal включает в себя файл extensions_custom.conf
Таким образом, если задать какой-либо шаг диалплана в файле extensions_custom.conf
без [имени контекста], это действие будет включено в контекст from-internal и выполняться как диалплан FreePBX.
Подскажите пожалуйста, верно ли я понял, мне надо попасть в контекст from-internal,
чтобы настройки попали в него, надо добавить в файл extensions_custom.conf такую строчку без имени контекста
exten => 555,1,AGI(script_log.php, ${STRFTIME(${EPOCH},,%Y/%m/%d %H:%M:%S)}, ${CALLERID(num)})
передаю скрипту дату звонка и номер абонента
вопрос, что с очередностью верно ли я указываю 555,1 ? не заменит не перетрет ли это какую то настройку?
в большом конфиге нашел нужную мне очередь (555) она выглядит так
[from-queue]
include => from-queue-custom
...
exten => 555,1,Goto(from-internal,${QAGENT},1)
...
меня интересует эта очередь 555. Все звонки на нее мне надо записать в лог. Скрипт лога уже подготовил на php AGI
PRIME_BBCODE_SPOILER_SHOW PRIME_BBCODE_SPOILER: script_log.php
#!/usr/bin/php -q
<?php
require('phpagi.php');
$agi = new AGI();
// дата время текущее
$d = date("Y-m-d H:i:s");
$text = $d . ": ";
// все переданные аргументы записываем в лог
for($i = 1; $i < $argc; $i++) {
$text .= $argv[$i];
if ($i < $argc-1) $text .= "; ";
}
file_put_contents("calls.log", trim($text) . "\n", FILE_APPEND);
exit(0);
?>
<?php
require('phpagi.php');
$agi = new AGI();
// дата время текущее
$d = date("Y-m-d H:i:s");
$text = $d . ": ";
// все переданные аргументы записываем в лог
for($i = 1; $i < $argc; $i++) {
$text .= $argv[$i];
if ($i < $argc-1) $text .= "; ";
}
file_put_contents("calls.log", trim($text) . "\n", FILE_APPEND);
exit(0);
?>
Стандартный контекст FreePBX from-internal включает в себя файл extensions_custom.conf
Таким образом, если задать какой-либо шаг диалплана в файле extensions_custom.conf
без [имени контекста], это действие будет включено в контекст from-internal и выполняться как диалплан FreePBX.
Подскажите пожалуйста, верно ли я понял, мне надо попасть в контекст from-internal,
чтобы настройки попали в него, надо добавить в файл extensions_custom.conf такую строчку без имени контекста
exten => 555,1,AGI(script_log.php, ${STRFTIME(${EPOCH},,%Y/%m/%d %H:%M:%S)}, ${CALLERID(num)})
передаю скрипту дату звонка и номер абонента
вопрос, что с очередностью верно ли я указываю 555,1 ? не заменит не перетрет ли это какую то настройку?