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

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

RSS
Не работает журнал звонков
 
Добрый день

Находимся в стадии тестирования работы вашего продукта на демо лицензии.

Работаем на конфигурации 1С E-note "Управление ветеринарной практикой" с модулем телефонии Панель телефонии для 1С 1.4.26.5

Голый Asterisk 13.9.1, настроен согласно рекомендациям на wiki

Панель в режиме Панель телефонии + Внешний SIP телефон. Весь функционал работает хорошо, звонки отображаются, клиенты идентифицируются, возможно выполнить вызов клиента из панели.

Журнал звонков, если отрыт, то заполняется. Но если его обновить, поменять дату, закрыть/открыть то он очищается. Т.е. панель не может получить данные по запросу от asteriska. Просим помощь в поиске проблемы. Еще и триал должен закончиться 31.08

mail*CLI> odbc show PT1C_asteriskcdrdb

ODBC DSN Settings
-----------------

 Name:   PT1C_asteriskcdrdb
 DSN:    MySQL-asteriskcdrdb
   Last connection attempt: 1970-01-01 05:00:00


mail*CLI> cdr show status

Call Detail Record (CDR) settings
----------------------------------
 Logging:                    Enabled
 Mode:                       Simple
 Log unanswered calls:       No
 Log congestion:             No

* Registered Backends
 -------------------
   mysql
   csv
   cdr_manager
   cdr-custom
   Adaptive ODBC

mail*CLI> cel show status
CEL Logging: Enabled
CEL Tracking Event: ALL
CEL Tracking Event: CHAN_START
CEL Tracking Event: CHAN_END
CEL Tracking Event: HANGUP
CEL Tracking Event: ANSWER
CEL Tracking Event: APP_START
CEL Tracking Event: APP_END
CEL Tracking Event: BRIDGE_ENTER
CEL Tracking Event: BRIDGE_EXIT
CEL Tracking Event: PARK_START
CEL Tracking Event: PARK_END
CEL Tracking Event: BLINDTRANSFER
CEL Tracking Event: ATTENDEDTRANSFER
CEL Tracking Event: USER_DEFINED
CEL Tracking Event: LINKEDID_END
CEL Tracking Event: PICKUP
CEL Tracking Event: FORWARD
CEL Tracking Event: LOCAL_OPTIMIZE
CEL Tracking Application: all
CEL Event Subscriber: ODBC CEL backend
CEL Event Subscriber: CEL Custom CSV Logging
CEL Event Subscriber: Manager Event Logging


Вот что возникает в отладчике при попытке обновить журнал: (см вложение)
 
По каким инструкциям настраивалась АТС?
Приложите AGI скрипт, который запускается при звонке на: Local/10000555@miko_ajam

События "CEL" не должны приходить в AMI. Настройте файл cel.conf:
Код
[manager]

; AMI Backend Activation
;
; Use the 'enable' keyword to turn CEL logging to the Asterisk Manager Interface
; on or off.
;
; Accepted values: yes and no
; Default value:   no
enabled=no
 
Попробуйте в файле extensions.conf, в секцию "globals" добавить:
Код
[globals]
; Необходимо описать параметры подключения к базе данных MySQL
ASTVERSION=13

P.S. Подойдет, если в качестве инструкций использовался пример настройки. http://wiki.miko.ru/astpanel:dialplan_miko_ajam
 
Спасибо за оперативный ответ.

1. АТС настраивали по этим инструкциям - http://wiki.miko.ru/astpanel:dialplan_miko_ajam?roistat_visit=101032&_ga=1.7984306.1059528925.147030...

2. Описание экстеншена:

;[miko_ajam_10000555]                                                        
exten => 10000555,1,NoCDR()                                                  
exten => 10000555,n,Noop(internal calling application: 10000555 1C_CDR)
exten => 10000555,n,AGI(1C_CDR.php)
exten => 10000555,n,Hangup

Скрипт прилагаю

3. cel.conf поправил

4. ASTVERSION=13 прописал, не помогло. Но пробовал только перезапустить asterisk и панель телефонии. Полностью 1С надо было перезапускать?
 
Проблема в скрипте, в строке:
Код
$attr_name = (substr($ASTVERSION, 0, 2)=='13')?'chan1c':"Channel";
Не вышло определить номер версии Asterisk.
После правки extensions.conf обычно достаточно перезагрузить dialplan.

альтернатива - исправьте выше упомянутую строку на строчку:
Код
$attr_name = 'chan1c';
 
Не помогло.
Или это не единсвенная проблема.


Дебаг лог во вложении
 
Это помогло. Ошибки в сообщении нет.

Проеряйте, если история звонков в базе данных "asteriskcdrdb" в таблице "PT1C_cdr" на дату "2016-08-30".
 
База заполняется.

Результат запроса во вложении
Изменено: Глебов Николай - 30.08.2016 19:12:31
 
Включайте на asterisk:
agi set debug on
Анализируйте работу AGI скрипта.

Проанализируйте таблицу PT1C_cdr
 
Во вложении лог при работе скрипта

Каким образом можно пошагово проверить что возвращают временные таблицы по мере выполнения скрипта?

Как вариант сейчас увидел, что можно убрать в скрипте дропанье таблиц cdr_$uid и linkedid_$uid
Сейчас посмотрю что в них собирается
Изменено: Глебов Николай - 31.08.2016 14:35:36
 
Как только запрос сформирован Вы можете сохранить его в файл:
Код
$output= $AGIDB->sql($zapros, 'NUM'); // сформирован
file_put_contents('/tmp/123.sql', $zapros); // записываем в фвйл
 
Спасибо за совет. Значит вот что имеем.

1. Сохранил в файле все три запроса
2. Создал в базе asteriskcdrdb две постоянные таблицы вида cdr_$uid и linkedid_$uid с именами как в сохраненных запросах
3. Выполнил запросы в mysql. Обе таблицы заполнились
4. Результат работы третьего запроса выводит хорошие данные.
5. Сделал вывод что дело не в запросах.
6. Дописал в скрипте file_put_contents('/tmp/output.txt', $output); - получил пустой файл на выходе
7. Проверил значение переменной $db_name - оно точно равно "asteriskcdrdb"
8. Убрал в скрипте в месте где создаются временные таблицы TEMPORARY
$AGIDB->sql("CRE ATE   TABLE $name_tmp_linkedid  (linkedid varchar(32));", 'NUM'); - пример для первой таблицы
9. Выполнил скрипт и в базе не увидел созданных таблиц.
 
Для доступа к базе данных используются следующие параметры:
  1. AMPDBENGINE= mysql
  2. AMPDBHOST= ip_address???
  3. AMPDBUSER
  4. AMPDBPASS
Код
<Local/10000555@miko_ajam-00000016;2>AGI Tx >> 200 result=1 (asteriskcdrdb)
<Local/10000555@miko_ajam-00000016;2>AGI Rx << GET VARIABLE AMPDBENGINE
<Local/10000555@miko_ajam-00000016;2>AGI Tx >> 200 result=1 (mysql)
<Local/10000555@miko_ajam-00000016;2>AGI Rx << GET VARIABLE AMPDBHOST
<Local/10000555@miko_ajam-00000016;2>AGI Tx >> 200 result=1 (ip_address)
<Local/10000555@miko_ajam-00000016;2>AGI Rx << GET VARIABLE AMPDBUSER
<Local/10000555@miko_ajam-00000016;2>AGI Tx >> 200 result=1 (user)
<Local/10000555@miko_ajam-00000016;2>AGI Rx << GET VARIABLE AMPDBPASS
<Local/10000555@miko_ajam-00000016;2>AGI Tx >> 200 result=1 (password)
<Local/10000555@miko_ajam-00000016;2>AGI Rx << GET VARIABLE AMPDBFILE


Проверьте, судя по всему параметры подключения указаны не корректно.
Ознакомьтесь со статьей: http://wiki.miko.ru/astpanel:dialplan_miko_ajam:configs#extensions

Настройте корректные параметры в файле extensions.conf
Код
[globals] ; ПРИМЕР
; Необходимо описать параметры подключения к базе данных MySQL
AMPDBENGINE=mysql
AMPDBNAME=asteriskcdrdb
AMPDBHOST=127.0.0.1
AMPDBUSER=root ; УСТАНОВИТЕ СВОЕ ЗНАЧЕНИЕ
AMPDBPASS=123 ; УСТАНОВИТЕ СВОЕ ЗНАЧЕНИЕ
 
Эти параметры указаны верно. В примере лога я специально скрыл значения.

Настройки делались согласно этой статьи и практически во всем совпадают. За исключением bindaddr (указан локальный ip) в manager.conf и тем что features.conf в 13 астериске не используется, эти параметры указаны в res_parking.conf

Пока мысли закончились
 
ок, а в логах php нет ошибок?
пробуйте анализировать наличие медленных запросов в  mysql
https://habrahabr.ru/post/31072/
Читают тему (гостей: 1)