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

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

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

просмотр истории страницы
*Обязательно прочитать сначала*

_Важно\! VSFTPD работает в chroot /app/asr_billing/var/_

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

_Важно\! Владельецем директории, в которую планируется выгрузка cdr, должен быть пользователь cdr_ftp_

h2. Настройка
_Для оборудования не поддерживающего Radius AAA существует альтернативный способ обсчета звонков через загрузку CDR, также рекомендуется его использовать и для оборудования с настроенным Radius AAA на случай проблем сети._
Основные шаги, которые необходимо выполнить для настройки ftp-сервера:
* Установить пароль ftp сервера

h3. Настройка разрешенных ip адресов
{toc:maxLevel=2}

*шаг 1* Заходим в "Настройки(в файле)"
!Выделение_010.png|thumbnail,border=1!
*шаг 2*
!Выделение_011.png|thumbnail,border=1!
*шаг 3*
!Настройки фтп-ip.png|thumbnail,border=1!
h1. Настройка

h3. Настройка пароля пользователя cdr_ftp через веб-интерфейс
{tip}{*}Время выполнения инструкции*: до 5 минут{tip}

*шаг 1* Заходим в "Настройки(в файле)"
!Выделение_010.png|thumbnail,border=1!
*шаг 2*
!Выделение_011.png|thumbnail,border=1!
*шаг 3*
!Настройки фтп-пароль.png|thumbnail,border=1!
h2. Настройка разрешенных IP адресов и пароля

h3. Настройка пароля пользователя cdr_ftp через терминал( для версий младше 51204273 )
Зайдите в меню [Настройки \-> Настройки (в файле)|CarbonBilling:Настройки (в файле)], откройте вкладку "*Настройки FTP сервера*"

!cdr_ftp_set_ip_and_password.png|border=1!

h3. Добавление IP-адресов NAS

Укажите IP-адреса VoIP NAS или подсети с которых они обращаются к биллингу.
{note}Если VoIP NAS и Carbon Billing 5 находятся в разных сетях и общаются через маршрутизатор, укажите адрес маршрутизатора{note}

h3. Установка пароля пользователя cdr_ftp в интерфейсе администратор

Задайте пароль в том же меню что и IP-адреса NAS.
{note}Установить пароль и IP можно одновременно, а можно в любой момент настроить одно или другое.{note}


h4. Установка пароля пользователя cdr_ftp через терминал

Вы так же можете установить пароль используя командный интерфейс:
{code}
$ chroot /app/asr_billing/
{code}

h2. Создание директории для загрузки CDR-файлов

* В актуальных версиях биллинга все директории создаются вручную, но эта глава может пригодиться на случай переустановки системы
*Корневой директорией \*vsftpd* является */app/asr_billing/var/*.
* Владельцем директории, в которую планируется выгрузка cdr, должен быть пользователь cdr_ftp. Создать её и установить права можно следующим образом:
{code}chroot /app/asr_billing/ mkdir -p /var/cdr/VoIPnas1/
chroot /app/asr_billing/ chown cdr_ftp:cdr_ftp /var/cdr/VoIPnas1/{code}
* Необходимо, чтобы у пользователя cdr_ftp были права на вход для всех вышестоящих папок.

h3. Пример скрипта выгрузки cdr файлов с asterisk
{code}
#!/bin/bash
{info}Обработанные CDR перемещаются в архив: например, если папка для загрузки cdr */var/oss/core/VOIP/cdr*, архив будет в папке */var/oss/core/VOIP/cdr_archive{*}{info}

set -eu
h2. Настройка пассивного режима FTP

Настройка пассивного режима FTP требуется для *Eltex SMG*, но может быть полезна в случае если биллинг и NAS находятся в разных сегментах сети.
Откройте файл конфигурации сервера */app/asr_billing/etc/vsftpd/vsftpd.conf* и добавьте в конец файла следующие строки:
CDR_SRC_FILE='/var/log/asterisk/cdr-csv/Master.csv' {code}pasv_enable=Yes
CDR_DST_DIR='/var/log/asterisk/cdr-csv-rotate/' pasv_max_port=10100
FTP_SERVER='46.19.46.169' pasv_min_port=10090{code}
FTP_LOGIN='cdr_ftp'
FTP_PASSWORD='servicemode'
FTP_DIRECTORY='cdr'
Перезапустите FTP-сервер
{code}chroot /app/asr_billing/ service vsftpd restart{code}
Добавьте правило iptables в [хук|CarbonBilling:Дополнительные настройки. hooks. Хуки. Свои правила в firewall]:
{code}iptables -I asr_billing_input -p tcp --destination-port 10090:10100 -s 10.0.0.0/24 -j ACCEPT{code}
Адрес *10.0.0.0/24* замените на адрес Вашей АТС или сервисную подсеть, откуда будут приходить запросы.

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

[ ! -d "$CDR_DST_DIR" ] && mkdir $CDR_DST_DIR
h2. Пример настроек для FTP-сервера на получение cdr.

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
Во вложении представлен пример настроек FTP-сервера для загрузки данных.

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
[^vsftpd.conf]

{code}

h3. Пример.

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

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

h1. Отладка

В файле */app/asr_billing/etc/vsftpd/vsftpd.conf* настройте сохранение логов в отдельный файл:
{code}xferlog_std_format=NO
xferlog_file=/var/log/vsftpd.log{code}
Подробный debud vsftpd, можно включить, указав в файле */app/asr_billing/etc/vsftpd/vsftpd.conf*:
{code}log_ftp_protocol=YES{code}
Данную опцию необходимо отключить по завершении debug

Перезапустите FTP-сервер
{code}chroot /app/asr_billing/ service vsftpd restart{code}

# Если вы видите в логах АТС что данные были отправлены, но не видите из в логе FTP, скорей всего проблема в фаерволе
# Если же записи в логе FTP появляются, но звонков все равно нет в папке на сервере биллинга по логу можно попробовать определить в чем проблема. Вероятней всего, не настроен пассивный режим FTP или некорректно заданы права на папку для CDR