2016-12-16 1 views
1

FreePBX를 해결하기 위해 움직이지 최신FreePBX/별표 녹음 된 통화 위치를

사용자 수 없다는보고 UCP에서 수요 기록을 보거나 다운로드 할 수 있습니다. 그러나 호출은 기록되고 있으며,/var/spool/asterisk/monitor는 적절한 날짜 디렉토리로 이동해야하는 파일들로 가득합니다. 예 : 2016/12/15. FreePBX에서 설정 한 포스트 콜 녹음 스크립트를 설정했습니다.이 역시 실행되지 않습니다. 단순히 호출되는지 여부를 확인하여 파일에 추가합니다.

-rw-rw-r-- 1 asterisk asterisk 120364 Dec 15 17:20 1481858418.2722.wav

-rw-r--r-- 1 asterisk asterisk 147884 Dec 16 10:02 1481918523.4964.wav

가기 파일 권한

fwconsole chown를 실행 한 후 변경되었습니다. 이 때문에 별표에 올바른 사용 권한이 없다고 생각하게됩니다.

내가 권한을 변경 시도 MixMonitor

[2016-12-15 17:03:14] VERBOSE[20476] app_mixmonitor.c: Begin MixMonitor Recording SIP/200-00000125 

[2016-12-15 17:03:24] VERBOSE[20476] app_mixmonitor.c: MixMonitor close filestream (mixed)` 

[2016-12-15 17:03:24] VERBOSE[20476] app_mixmonitor.c: End MixMonitor Recording SIP/200-00000125 

[2016-12-15 17:03:24] VERBOSE[20476] app_mixmonitor.c: Copying recordings for Mixmonitor SIP/200-00000125 to voicemail recipients 

[2016-12-15 17:03:24] WARNING[20476] format_wav.c: Unable to set write file size 

에 대한 디버그 로그의 고장입니다, 다시 설치 별표-애드온, 그리고 다른 많은 것들. 거기에 어떤 아이디어가 있습니까?

답변

-1

올바른 솔루션 - 그것은 불가능하다

을 2016/12/15 당신이 (더 스크립트, 설정 등 제공되지 않습니다) 잘못된 dooing 무엇인지 추측, 즉 그것이 있어야한다 장소에 파일을 작성,하지만 난 당신을 제안 할 수 있습니다 selinux 나 권한 문제가 있습니다.

+0

이것은 freepbx 및 별표로 충돌하는 과정입니다. 내가 아는 한 시스템은 바닐라 설치 였고, 나는 모든 설정을 제공 할 수있다. 나는 무엇을 알지 못한다. –

+0

은 selinux와 그 사용 불가를 확인했습니다.오늘의 끝에서 나는 현재까지 –

+0

까지 freepbx 버전을 가져올 수도 있습니다. 디버그는 OffTopic에 있습니다. 책/듣기 강좌를 읽고 자신을 시험해보십시오. – arheops

0

내 질문에 답하십시오.

이것은 digium phones 및 freepbx의 문제입니다. Digium은 자체 기술을 사용하여 호출을 기록하고 저장합니다. https://wiki.asterisk.org/wiki/display/DIGIUM/Phone+Features+by+Environment

CDR 및 사용자 포털에는 전화가 걸리지 만 시스템이 변경되는 솔루션이 있습니다. 당신의 책임하에 이용하십시오.

별표 사용자의 실행 스크립트를 작성하면 별표 사용자 홈 디렉토리에 있습니다.

#!/bin/bash 

#this script is run from an incrontab 

MONITOR=/var/spool/asterisk/monitor/ 
if [ -d "$MONITOR$1" ]; then 
    exit 
fi 
if [ ! -f "$MONITOR$1" ]; then 
    echo "$(date): Failed to move a recording. \"$MONITOR$1\" does not exist." >> /var/log/asterisk/moved_recording_log 
    exit 
fi 

filename=$1 
uid=${filename%.*} 

if [ $(sed -e "s/^.wav//I" <<< "${filename##*.}") != "wav" ]; then 
    exit 
fi 

CONF=/etc/asterisk/res_odbc_additional.conf 
user=$(awk -F"=>" '/username=>/ {print $2}' ${CONF}) 
password=$(awk -F"=>" '/password=>/ {print $2}' ${CONF}) 

db=$(mysql asteriskcdrdb -u $user -p$password -se "SELECT cnum, calldate as date FROM cdr WHERE uniqueid = \"$uid\";" 2>/dev/null) 

ext=$(echo $db | awk '{print $1}') 
read -r -a dbd <<< "$db" 
IFS="-" read -r -a dbdate <<< "${dbd[1]}" 

if [ -z "${dbdate[0]}" ] || [ -z "${dbdate[1]}" ] || [ -z "${dbdate[2]}" ]; then 
    exit 
fi 

dir="/var/spool/asterisk/monitor/${dbdate[0]}/${dbdate[1]}/${dbdate[2]}/" 
mkdir -p $dir 

name="ondemand-${dbd[0]}-${dbd[0]}-${dbdate[0]}${dbdate[1]}${dbdate[2]}-${dbd[2]//:}-$filename" 
db=$(mysql asteriskcdrdb -u $user -p$password -se "UPDATE cdr SET recordingfile=\"$name\" WHERE uniqueid = \"$uid\";") 
mv $MONITOR$filename $dir$name 

exit 

다음 단계는 recordings 디렉토리에 기록 된 파일을 감시하는 것입니다. 별표 사용자 편집 incrontab으로

incrontab -e 

이가 꽤 일반적인 FreePBX 설정을 기반으로

/var/spool/asterisk/monitor/ IN_CLOSE_WRITE /bin/bash /home/asterisk/move_recordings.sh $# 

위의 스크립트의 위치와 이름으로 다음을 추가합니다. 이것을하기에 더 좋은 방법이있을 수 있지만 이것은 나를 위해 일해 왔습니다.