Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

#557 closed баг (invalid)

Не инициируется отправка команды ГБ при вызове абонента в конференцию

Reported by: viktam Owned by: alx
Priority: major Milestone: 1 очередь
Component: ПО MC04-Dispatcher. Пульт диспетчера/техника Keywords:
Cc: san

Description

У пользователя Витебск-1(2710@) настроена функция ГБ
В настройках программы таймаут на включение ГБ установлен в значение 2 или 3 секунды. (настройка Конференции->Ожидание ответа перед включением ГБ)

При использовании старой версии ПО MC04_Dispatcher функция ГБ работала, а в новой нет поэтому было проведено два эксперимента: 1-й в r530 ПО и 2-й в r804:

эксперимент 1 (r530)

  1. Техник(2@) вызвал пользователя Витебск-1(2710@) в конференцию.
  2. Пользователь услышал вызывной сигнал телефона, затем через несколько секунд сигнал ГБ, после чего поднял трубку.

эксперимент 2 (r804)

  1. Техник(2@) вызвал пользователя Витебск-1(2710@) в конференцию.
  2. Пользователь услышал вызывной сигнал телефона, затем ждал порядка 20 секунд но так и не услышал сигнал ГБ.

Attachments (2)

exp1_r530_logs.zip (11.2 KB ) - added by san 7 years ago.
exp2_r804_debug2017-04-27.zip (31.6 KB ) - added by san 7 years ago.

Download all attachments as: .zip

Change History (11)

by san, 7 years ago

Attachment: exp1_r530_logs.zip added

by san, 7 years ago

comment:1 by san, 7 years ago

Cc: san added

comment:2 by san, 7 years ago

приложил файлы логов от экспериментов

in reply to:  2 comment:3 by alx, 7 years ago

Resolution: invalid
Status: newclosed

Replying to san:

приложил файлы логов от экспериментов

В приложенном файле эксперимента 2 я вижу вызов пользователя 2710@192.168.114.15: в 15:47:53.612 в конференцию "conf-1". Команда вызова, переданная в FS, следующая:

originate {originate_timeout=120,origination_caller_id_name='conf-1',origination_caller_id_number=conf-1}[api_hangup_hook='originate loopback/2710@192.168.114.15/answered 0',origination_uuid=be0f71e9-8922-4e66-97c7-35743957baac]user/2710@192.168.114.15,[leg_delay_start=3]loopback/2710@192.168.114.15/alarm conf-1 XML conference

В этой команде присутствует следующий компонент: [leg_delay_start=3]loopback/2710@192.168.114.15/alarm, что означает "вызвать 2710@192.168.114.15 в контексте alarm с задержкой 3 секунды". Вызов в контексте alarm как раз и включает сигнал "Громкого боя".

Таким образом, команда на включение "Громкого боя" пультом отправлялась, неотправка команды логом работы программы не подтверждается. Нарушений в работе пульта не вижу.

Last edited 7 years ago by alx (previous) (diff)

comment:4 by san, 7 years ago

[leg_delay_start=3]loopback/2710@192.168.114.15/alarm

Нашёл разницу - в r530 в этом компоненте не указывался домен [leg_delay_start=3]loopback/2710/alarm

И записи в БД(настройки ГБ пользователей) этой программой сделаны без учёта домена db insert/alarms/<юзернэйм без домена>/<oid>

Из лога FS:
при вызове с помощью r804 в переменной ${destination_number} содержится и домен, поэтому при проверке exists/alarms/${destination_number} в БД не находится соответствующей записи.

2017-05-03 15:28:01.009455 [INFO] mod_dialplan_xml.c:637 Processing 0 <0>->2702@192.168.0.74 in context alarm
2017-05-03 15:28:01.009455 [DEBUG] mod_loopback.c:661 CHANNEL CONSUME_MEDIA
2017-05-03 15:28:01.009455 [DEBUG] switch_core_state_machine.c:662 (loopback/2702@192.168.0.74-a) State CONSUME_MEDIA going to sleep
Dialplan: loopback/2702@192.168.0.74-b parsing [alarm->Alarm] continue=false
Dialplan: loopback/2702@192.168.0.74-b Regex (FAIL) [Alarm] ${db(exists/alarms/${destination_number})}(false) =~ /^true$/ break=on-false

Алексей, поправь пожалуйста, если я ошибся в терминологии или выводах :)

in reply to:  4 comment:5 by alx, 7 years ago

Replying to san:

Алексей, поправь пожалуйста, если я ошибся в терминологии или выводах :)

С терминологией вроде бы все в порядке. А каковы выводы?

comment:6 by san, 7 years ago

выводы

Функция ГБ в эксперименте2 "не сработала" т.к. в БД занесены записи без указания домена.

in reply to:  6 comment:7 by alx, 7 years ago

Replying to san:

Функция ГБ в эксперименте2 "не сработала" т.к. в БД занесены записи без указания домена.

Так об этом надо спрашивать не меня, а Витю, :) я не знаю, что у него занесено в БД...

Я могу сказать, что твой вывод очень правдоподобен, учитывая что я, скорее всего, никому не говорил о том, что надо изменить ключи при конфигурации "громкого боя", и описание на wiki-страничке не поправил... Виноват...

comment:8 by san, 7 years ago

Я так понимаю что изменения ключей связаны с #182 ?

И ещё, подскажи можно ли поправить конфиг, чтобы не пришлось изменять записи в БД для случая работы в одном домене? Например, можно сюда <condition field="${db(exists/alarms/${destination_number})}" expression="^true$"> вместо ${destination_number} вставить только его часть до @ ? и как?

comment:9 by san, 7 years ago

Сам отвечаю на последнее, можно использовать в проверке только часть ${destination_number} до символа @, например так:
<condition field="${db(exists/alarms/${regex(${destination_number}|^(.*)@(.*)$|%1)})}" expression="^true$">

Note: See TracTickets for help on using tickets.