Вы не авторизованы

Вы можете читать сообщения. Если вы хотите создать новую тему или присоединиться к обсуждению, пройдите процедуру регистрации или авторизуйтесь.

RSS
настройка истории звонков для Asterisk 1.8.7.1
 
Добрый день!
Не понятна инструкция
http://wiki.miko.ru/astpanel:ats:asterisk:callhistory_v6
а именно секция "Формат Lines"
Объясните, где именно и что прописать. Остальное сделал, но историю звонков в панели не видно
 
Я рекомендую изучить пример настройки "чистого" Asterisk.
Цитата
Обязательный набор и порядок полей в строке:
calldate,src,dst,channel,dstchannel,billsec,disposition,uniqueid
Это поля, которые следует передать из таблицы истории звонков CDR.

Пример AMI
Цитата
Event: UserEvent Privilege: user,all UserEvent: FromCDR Uniqueid: 1412529473.6 Channel: Date:2014-10-05 Lines:2014-10-05 08:24:16@.@1001@.@1000@.@SIP/1001-00000000@.@SIP/1000-00000001@.@1.05052@.@ANSWERED@.@1412522656.0@.@@.@SIP/1000-00000001@.@Dial@.@1412522656.0@.@.....2014-10-05 10:17:06@.@1001@.@1000@.@SIP/1001-00000001@.@SIP/1000-00000002@.@1.49662@.@ANSWERED@.@1412529426.1@.@@.@SIP/1000-00000002@.@Dial@.@1412529426.1@.@.....
 
1. "Это поля, которые следует передать из таблицы истории звонков CDR. "
Объясните по простому что значит - "передать"? Что и куда надо прописать, чтоб оно как надо передавалось?

2. Есть и такое упоминание в инструкции:
В качестве Backend рекомендуем использовать MySQL через ODBC
Вопрос в следующем, а можно пока в целях демо НЕ использовать MySQL? У нас CDR кладутся в файл. Пока не хотелось существенных изменений в текущую нашу конфигурацию вносить
 
  1. Я рекомендую изучить пример настройки "чистого" Asterisk. В архиве есть PHP скрипт с примером реализации. (заточен под MySQL)
  2. Это обязательное условие. CSV файл не возможно использовать для анализа истории звонков, к примеру выполнение выборки истории за период.
Если есть возможность, рекомендуем использовать подготовленные "сборки":
Их настраивать и администрировать гораздо проще, чем "чистый" Asterisk.
 
Разобрался с архивом, сделал, прописал все как в файлах. На выходе получаем:
1. CDRы не кладутся в созданную базу
2. При тесте 10000555-го контекста скрипт 1C_CDR.php не находит имя базы (подставляет пустое значение) - возможно это же есть и причина незаписи CDRов в базу. Вывод консоли:
      > Channel SIP/705-00000005 was answered.
   -- Executing [10000555@miko_ajam:1] NoCDR("SIP/705-00000005", "") in new stack
   -- Executing [10000555@miko_ajam:2] NoOp("SIP/705-00000005", "internal calling application: 10000555 1C_CDR") in new stack
   -- Executing [10000555@miko_ajam:3] AGI("SIP/705-00000005", "1C_CDR.php") in new stack
   -- Launched AGI Script /var/lib/asterisk/agi-bin/1C_CDR.php
      > 1C_CDR.php: Running SQL Command describe .PT1C_cdr
1C_CDR.php: SEVERE: Unknown database type:
1C_CDR.php: SEVERE: Unable to connect to database.
      > 1C_CDR.php: Running SQL Command SEL ECT
      > 1C_CDR.php:    `a`.`calldate`,
      > 1C_CDR.php:    `a`.`src`,
      > 1C_CDR.php:    `a`.`dst`,
      > 1C_CDR.php:    `a`.`channel`,
      > 1C_CDR.php:    `a`.`dstchannel`,
      > 1C_CDR.php:    FORMAT(`a`.`billsec`,0),
      > 1C_CDR.php:    `a`.`disposition`,
      > 1C_CDR.php:    `a`.`uniqueid`,
      > 1C_CDR.php:    `a`.`userfield`,
      > 1C_CDR.php:    '',
      > 1C_CDR.php:    `a`.`lastapp`,
      > 1C_CDR.php:    `a`.`linkedid`
      > 1C_CDR.php: FR OM
      > 1C_CDR.php:    (SELECT * FR OM ``.`PT1C_cdr`
      > 1C_CDR.php:     WHERE `calldate` BETWEEN '2015-07-01' AND '2015-08-01'
      > 1C_CDR.php:    ) AS `a`
      > 1C_CDR.php: WH ERE (( `a`.`lastapp`='Transferred Call' AND `a`.`lastdata` like   '%/705@%')
      > 1C_CDR.php:                                    OR ((`a`.`lastapp`='Dial' OR `a`.`lastapp`='Queue')
      > 1C_CDR.php:                                            AND (`a`.`channel` like '%/705-%'
      > 1C_CDR.php:                                                   OR `a`.`dstchannel` like '%/705-%'
      > 1C_CDR.php:                                                   OR `a`.`dstchannel` like '%/705@%'
      > 1C_CDR.php:                                                   OR `a`.`src`='705'
      > 1C_CDR.php:                                                   OR `a`.`dst`='705'))
      > 1C_CDR.php:                            )
1C_CDR.php: SEVERE: Unknown database type:
1C_CDR.php: SEVERE: Unable to connect to database.
   -- AGI Script Executing Application: (UserEvent) Options: (Refresh1CHistory,Channel:SIP/705,Date:2015-07-01)
...

Что делалось.
Поскольку система старая и есть часть инфраструктуры, установить чистый астериск, равно как и использовать готовые сборки, возможности нет. Приходится встраивать. Используется все что уже к настоящему моменту установлено - mysql, odbc, php и сам Asterisk.
CDRы пишутся в файл и в базу mysql, с другим именем, в другие таблицы. ODBC не используется.
Решил не возиться с полями имеющихся таблиц и скрипты не править, а создать новую базу как описано, и через ODBC коннектиться. То есть, в тестовом режиме предполагалось, что CDRы будут писаться и в старую базу напрямую в mysql, и в новую, через odbc.

Посему пока 2 вопроса
1. А вообще возможно ли так, чтоб в 2 базы писалось одно и то же параллельно, но через разные коннекторы?
2. Если да, то как проверить, работает ли ODBC (та ли версия установлена, все ли запущено итп)
 
В примере настроек изучайте "Перейти к описанию конфигурационный файлов"
  1. Да, можно.
  2. Изучайте инструкции и Пример настроек **MySQL через ODBC**
 
C ODBC  разобрались - что-то было недоустановлено, yum install помог. CDRы и CELы в таблицы кладутся, тесты на odbc как описано проходят.

Но - скрипт 1C_CDR.php все равно работает как написано выше, т.е. не определяет имя базы, т.е.

$db_name = GetVarChannnel($agi,'AMPDBNAME');
возвращает пустое значение

В результате в 1С после завершения звонка он кратковременно появляется в истории и тут же его по Рефрешу удаляет (т.к. коннекта к базе нет, и рефреш дает пусто). Соотв-но история звонков пустая
 
Я рекомендую изучить пример настройки "чистого" Asterisk.
http://wiki.miko.ru/astpanel:dialplan_miko_ajam

Изучайте примеры конфигурационный файлов:
http://wiki.miko.ru/astpanel:dialplan_miko_ajam:configs

конфиг файл extensions.conf не настроен

[globals]
; Необходимо описать параметры подключения к базе данных MySQL
AMPDBENGINE=mysql
AMPDBNAME=asteriskcdrdb
 
спасибо, помогло!
Читают тему