Настройка FTP сервера для выгрузки CDR

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (2)

просмотр истории страницы
{code}

h3. Директории куда необходимо выгружать cdr.
_coming soon_
Для оборудования не поддерживающего Radius AAA существует альтернативный способ обсчета звонков через загрузку CDR, также рекомендуется его использовать и для оборудования с настроенным Radius AAA на случай проблем сети.

Важно\! Для загрузки CDR необходимо создать отдельное оборудование т.к. при загрузке CDR биллинг по Radius отправляет данные ввиде Acct-Stop пакетов с виртуального адреса 169.1.28.12

h3. Пример скрипта выгрузки cdr файлов с asterisk
{code}
#!/bin/bash

set -eu

CDR_SRC_FILE='/var/log/asterisk/cdr-csv/Master.csv'
CDR_DST_DIR='/var/log/asterisk/cdr-csv-rotate/'
FTP_SERVER='46.19.46.169'
FTP_LOGIN='cdr_ftp'
FTP_PASSWORD='servicemode'
FTP_DIRECTORY='cdr'

cd "$CDR_DST_DIR"

[ ! -d "$CDR_DST_DIR" ] && mkdir $CDR_DST_DIR

if [ -f "$CDR_SRC_FILE" ]; then
DATE=`date +%Y%m%d%H%M%S`
mv $CDR_SRC_FILE $CDR_DST_DIR/cdr-${DATE}.csv
touch $CDR_SRC_FILE
fi

for f in $CDR_DST_DIR/cdr-*.csv; do
echo $f
f_name="${f##*/}"
ftp -v -n $FTP_SERVER <<End-Of-Session > /tmp/ftplog.$$
user $FTP_LOGIN "$FTP_PASSWORD"
binary
cd $FTP_DIRECTORY
put "$f" "$f_name"
bye
End-Of-Session
if fgrep -q "226 Transfer complete" /tmp/ftplog.$$ ;then
echo "ftp OK"
mv $f ${f}.uploaded
fi
done

{code}

h3. Пример.

1. Вы настроили выгрузку по фтп в папку /cdr
2. Учетная запись cdr_ftp поумолчанию заперта в /var поэтому в настройка оборудования биллинга необходимо указать путь /var/cdr/

{color:#ff0000}Внимание\! При правильной настройке, все выгруженные CDR файлы, при успешной загрузке, удаляются из директории.{color}