Asterisk™: будущее телефонии Второе издание
Шрифт:
cdr.conf
Файл cdr.conf используется для активации протоколирования записей параметров вызовов в плоский файл или базу данных. Хранение записей вызовов полезно для всевозможных целей, включая учет вызовов и времени разговора абонента, предотвращение мошенничества, оценку QoS и многое другое. Файл cdr.conf содержит некоторые общие параметры, не относящиеся к конкретной базе данных, а, скорее, указывающие, как Asterisk должна обрабатывать передачу информации в базу данных. Вот полный список опций раздела [general] файла cdr.conf: enable
Принимает
batch
Принимает аргументы yes и no. Позволяет Asterisk в конце каждого вызова записывать данные в буфер, а не в базу данных, чтобы сократить нагрузку на систему.
Заметьте, что, если для этой опции задано значение yes, в случае неожиданного сбоя системы данные могут быть утрачены.
size
Устанавливает максимальное количество записей CDR, накапливаемых в буфере перед передачей на серверную часть систем хранения CDR. Эта настройка имеет смысл, только если для опции batch задано значение yes. Значение по умолчанию - 100 записей.
time
В качестве аргумента принимает целое число (количество секунд). Определяет, через какое время (в секундах) Asterisk очищает буфер и записывает CDR в базу данных, независимо от количества записей в буфере (что определено параметром size). Значение по умолчанию - 300 с (5 мин).
scheduleronly
Принимает аргументы yes и no. Если в системе создается и передается в удаленную базу данных большой объем CDR, может быть полезно задать для scheduleronly значение yes. Поскольку планировщик задач не может начать новую задачу, не завершив текущую, медленная запись CDR может неблагоприятно повлиять на остальные процессы, использующие планировщик. Эта настройка будет указывать Asterisk обрабатывать запись CDR в новом потоке, по сути, назначая специальный планировщик для этой функции. При нормальной работе это обеспечит очень незначительное преимущество.
safeshutdown
Принимает аргументы yes и no. Задание для safeshutdown значения yes не даст Asterisk полностью выключиться, пока буфер не будет полностью очищен и вся информация не будет записана в базу данных. Если для этого параметра задано значение no и происходит выключение Asterisk при наличии информации в буферах, эта информация, скорее всего, будет утрачена.
endbeforehexten
Обычно записи CDR не закрываются до тех пор, пока не будет завершено выполнение всех добавочных номеров. Если эта опция активирована, CDR будет завершаться перед выполнением добавочного номера h, так что такие значения CDR, как end и billsec, могут быть извлечены в этом добавочном номере. Значение по умолчанию - no.
Оставшаяся часть cdr.conf посвящена настройкам нескольких серверных механизмов хранения CDR. Для
cdr_manager.conf
Файл cdr_manager.conf содержит только заголовок [general] и единственную опцию, enabled, с помощью которой можно определить, должен ли Asterisk Manager API формировать события CDR. Если требуется формировать события CDR, в файле cdr_manager.conf должны присутствовать следующие строки:
[general] enabled=yes
Тогда Manager API будет создавать CDR-события, содержащие следующие поля:
Event: Cdr
AccountCode:
Source:
Destination:
DestinationContext:
CallerID:
Channel:
DestinationChannel:
LastApplication:
LastData:
StartTime:
AnswerTime:
EndTime:
Duration:
BillableSeconds:
Disposition:
AMAFlags:
UniqueID:
UserField:
cdr_odbc.conf
Asterisk может хранить данные CDR в локальной или удаленной базе данных посредством интерфейса ODBC. Файл cdr_odbc.conf содержит информацию, необходимую Asterisk для соединения с базой данных. Модуль cdr_odbc.so будет пытаться загрузить файл cdr_odbc.conf, и в случае обнаружения информации для соединения с базой данных данные CDR будут записываться туда.
Если вы собираетесь использовать базу данных для хранения данных CDR, придется выбрать одну базу данных из нескольких доступных. Asterisk не любит, когда приходится соединяться с несколькими базами данных CDR, поэтому в папке конфигурации Asterisk не должно быть лишних файлов cdr_ <механизм БД>.есп1:.
cdr_pgsql.conf
Asterisk может хранить данные CDR в базе данных PostgreSQL с помощью модуля cdr_pgsql.so. При загрузке этого модуля необходимая информация считывается из файла cdr_pgsql.conf, и Asterisk устанавливает соединение с базой данных для записи и хранения данных CDR.
cdr_tds.conf
Asterisk также может хранить данные CDR в базе данных FreeTDS (включая СУБД MS SQL), используя модуль cdr_tds.so. При загрузке этого модуля используется конфигурационный файл cdr_tds.conf. После успешного установления соединения данные CDR записываются в эту базу данных.
codecs.conf
У большинства кодеков нет настраиваемых параметров; они просто такие, какие они есть.
Однако некоторые кодеки могут вести себя по-разному. Это, главным образом, означает, что они могут быть оптимизированы для конкретной цели, такой как сокращение задержки, оптимизация использования сети или, возможно, обеспечение высококачественного звука.
Файл codecs.conf появился в Asterisk достаточно недавно и на момент написания данной книги обеспечивал возможность конфигурации только параметров Speex. Эти настройки не требуют никаких объяснений, если вы знакомы с протоколом Speex .