如何记录通话数据



我想记录星号命令行的数据。但标准是我想要单独记录呼叫的日志数据,即我想要在单独的文件中记录每个呼叫的数据。

有办法吗?

如果星号中没有内置功能来执行此操作,则可以使用bash解决方案:

#!/bin/bash
echo "0" >/tmp/numberoflines
IFS=''
pathToLogFile = /path/to/log/file
while [ 1 ]
do
    NUMBER=$(cat /tmp/numberoflines)
    LINECOUNT=$(wc -l < $pathToLogFile)
    DIFFERENCE=$(($LINECOUNT-$NUMBER))
    if [ $DIFFERENCE != 0 ]; then
        lines=($(tail -n $DIFFERENCE $pathToLogFile))
        for line in $lines; do
            callID = `expr "$line" : 'CALLID_REGEX (see below)'`
            $(echo "$line" >> /path/to/log/directory/$callID)
        done
    fi
sleep 5;
echo "$LINECOUNT" >/tmp/numberoflines
done

未经考验的

应该用它来得到一个解决这个问题的想法。

正则表达式:normaly: /[(Cd{8})]/。遗憾的是,我不知道bash中的语法。我很抱歉。你必须自己把它转换成bash语法。


思路是:记住日志文件中由bash脚本处理的最后一行。检查日志文件的行数。如果有比记住的行更多的行:遍历新行并在每行开头提取调用id(格式:C********(*是数字)。换句话说:一个C后面跟着一个8位数的数字)。现在将整行附加到日志文件的末尾。文件的名称是解压后的callid。


EDIT来电显示信息(不要与来电显示混淆):https://wiki.asterisk.org/wiki/display/AST/Unique+Call-ID+Logging

相关内容

  • 没有找到相关文章

最新更新