Asterisk, PostgreSQL, CDR и все это через ODBC драйвер

Описывать как установить данные компоненты не буду, в просторах сети их достаточно. Суть проблемы использования для CDR *, в БД через ODBC драйвер к Postgres заключается в использование новых колонок даты звонка. В Mysql она всего одна calldate, в Postgres'е три
start, answer, end и проблема возникает с 3, ошибка:
asterisk cdr_adaptive_odbc syntax error at or near "end"
Для решения проблемы, приходит в голову только одна мысль переименовать end в callend в самой структуре таблицы, т.е. таблица будет иметь вид:
CREATE TABLE cdr (
    accountcode VARCHAR(20),
    src VARCHAR(80),
    dst VARCHAR(80),
    dcontext VARCHAR(80),
    clid VARCHAR(80),
    channel VARCHAR(80),
    dstchannel VARCHAR(80),
    lastapp VARCHAR(80),
    lastdata VARCHAR(80),
    start TIMESTAMP WITHOUT TIME ZONE,
    answer TIMESTAMP WITHOUT TIME ZONE,
    callend TIMESTAMP WITHOUT TIME ZONE,
    duration INTEGER,
    billsec INTEGER,
    disposition VARCHAR(45),
    amaflags VARCHAR(45),
    userfield VARCHAR(256),
    uniqueid VARCHAR(150),
    linkedid VARCHAR(150),
    peeraccount VARCHAR(20),
    sequence INTEGER
);

Далее в настройках /etc/asterisk/cdr_adaptive_odbc.conf
Необходимо добавить alias
alias end => callend

Комментарии

  1. CREATE TABLE cdr (
    clid varchar (80),
    src varchar (80),
    dst varchar (80),
    dcontext varchar (80),
    channel varchar (80),
    dstchannel varchar (80),
    lastapp varchar (80),
    lastdata varchar (80),
    start timestamp,
    answer timestamp,
    "end" timestamp,
    duration int,
    billsec int,
    disposition varchar (45),
    amaflags int,
    accountcode varchar (20),
    uniqueid varchar (150),
    userfield varchar (255)
    );

    ОтветитьУдалить
  2. Этот комментарий был удален автором.

    ОтветитьУдалить

Отправить комментарий

Популярные сообщения