Opened 8 years ago

Closed 8 years ago

Last modified 6 years ago

#475 closed задача (fixed)

Функция "дополнительный телефон"

Reported by: san Owned by: dimag
Priority: critical Milestone:
Component: ПО MC04-Dispatcher. Пульт диспетчера/техника Keywords: algorithm, interface, dispatcher, users
Cc: alx

Description

Функция была в предыдущей версии ПО, называлась "Дополнительный телефон", заказчик просит добавить и в эту версию.
Суть в использовании Диспетчером Sip-телефона в качестве устройства для приёма и вывода звука, при этом программа должна вызывать(и отключать) телефон в Основную конференцию по существующим алгоритмам (авто/вручную/принудительно) вместо вызова(отключения) своего пользователя.
Задание:

  1. Добавить в программе настройку:

Конференции-> Основная конференция
"Подключать абонента" <выпадающий список>

  • первый элемент списка: "Себя", остальные элементы - список абонентов.
  • настройка становится активной если выбрано подключение не "вручную", если "вручную" - настройка дизэйблится.
  • по умолчанию установлено значение "Себя"
  1. При выборе в настройках значения отличного от "Себя"

Программа для функций "Подключение в Основную конференцию (авто/принудительное/постоянное)" использует вместо своего абонента, абонента выбранного в настройках.

p.s. может быть есть идеи на что заменить слово "Себя"? мне оно не очень нравится.

Change History (31)

comment:1 by dimag, 8 years ago

Предлагаю использовать вместо "Себя" слова "Пользователь программы"

comment:2 by dimag, 8 years ago

Может быть выбран 1 абонент?

comment:3 by san, 8 years ago

  • Лучше оставить "Себя"
  • Да, только один абонент

comment:4 by dimag, 8 years ago

Keywords: algorithm interface dispatcher users added
Resolution: fixed
Status: newclosed

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

comment:5 by san, 8 years ago

А "автоматическое отключение" тоже работает?

comment:6 by alx, 8 years ago

Что делает вызов setCurrentText(item->text()); в строке 8732 файла MainAppFrameWindow3.cpp?

comment:7 by alx, 8 years ago

И еще несколько вопросов по интерфейсу в целом.

  • Наименование параметра "Подключать абонента" по-моему ничего не говорит о его действительной функции. Догадаться о том, что и зачем здесь настраивается, по-моему, по такому названию невозможно.
  • Для чего служат чекбоксы рядом с каждым элементом выпадающего списка "Подключать абонента", если все равно несколько чекбоксов выбрать нельзя? Что будет, например, если я установлю чекбокс в пункте "opérateur" и выберу пункт "alx"? Почему выпадающий список не такой же как, например, в настройке "Подключение"?
  • Непонятно, по какому принципу отсортированы элементы выпадающего списка в параметре "Подключать абонента". Они явно не в алфавитном порядке, а в каком - непонятно...
Last edited 8 years ago by alx (previous) (diff)

comment:8 by san, 8 years ago

Resolution: fixed
Status: closedreopened

in reply to:  7 comment:9 by san, 8 years ago

Replying to alx:

  • Наименование параметра "Подключать абонента" по-моему ничего не говорит о его действительной функции.

По заданию(см. текст тикета)

  1. Эта настойка должна располагаться в группе настроек "Основная конференция"
  2. Она связана с другой настройкой (подключение в конференцию)

Похоже Дима текст тикета не читал прежде чем выполнять

Про чекбоксы и сортировку - согласен, глупо выглядит

comment:10 by san, 8 years ago

"автоматическое отключение" проверил - Программа упала)

comment:11 by dimag, 8 years ago

Меня попросили сделать внешний вид для списка пользователей как для пункта "Авария при отсутствие абонента", поэтому в списке пользователь выделяется галочкой.

comment:12 by dimag, 8 years ago

На данный момент пользователи выводятся отсортированными по логину.

in reply to:  11 comment:13 by san, 8 years ago

Replying to dimag:

Меня попросили сделать внешний вид для списка пользователей как для пункта "Авария при отсутствие абонента", поэтому в списке пользователь выделяется галочкой.

Дмитрий, это не правда. Устного разговора по этому тикету даже не было.

in reply to:  12 ; comment:14 by alx, 8 years ago

Replying to dimag:

На данный момент пользователи выводятся отсортированными по логину.

Это мне кажется нелогичным: в списке выводится отображаемое имя, а сортируется он почему-то не по нему, а по логину, который в списке не отображается. По-моему будет логично, когда если сотрировка списка выполняется по логину, то логин в списке и отображать.

Тем более что логин уникален, а отображаемое имя - нет. Это второй аргумент, почему в списке должны быть логины а не отображаемые имена.

in reply to:  11 comment:15 by alx, 8 years ago

Replying to dimag:

Меня попросили сделать внешний вид для списка пользователей как для пункта "Авария при отсутствие абонента", поэтому в списке пользователь выделяется галочкой.

Вы не ответили на вторую часть вопроса: что будет, если я установил чекбокс напротив пользователя "opérateur" и выбрал пункт "alx" (то есть когда выпадающий список свернут, на экране написано: "Подключать абонента: [alx]"). У какого пользователя зазвенит телефон при вызове диспетчера?

comment:16 by alx, 8 years ago

По строке 8732 тоже жду ответа...

comment:17 by dimag, 8 years ago

Resolution: fixed
Status: reopenedclosed

r494
Изменил внешний вид выбора пользователя на стандартный выпадающий список с возможностью выбора 1 элемента, список отсортирован по имени пользователя, галочки убраны, код полностью переписан. Проверял во вторник с Александром, он остался доволен.
Аналогично измена сортировка для списка пользователей-участников переговоров для окна аудиозаписей и для списка пользователей в списке Авария при отсутствие абонента.

in reply to:  14 ; comment:18 by san, 8 years ago

Логин уникален, а отображаемое имя - нет. Это второй аргумент, почему в списке должны быть логины а не отображаемые имена.

Я думаю было бы не лишним добавить после имени пользователя его логин.

Алексей, Дмитрий пишет о том что полностью изменил код этого фрагмента, твой вопрос по поводу строки кода автоматически снимается?

in reply to:  18 comment:19 by alx, 8 years ago

Replying to san:

Я думаю было бы не лишним добавить после имени пользователя его логин.

Думаю, что это наилучший вариант. Если же выбирать что-то одно, то это должен быть логин.

Алексей, Дмитрий пишет о том что полностью изменил код этого фрагмента, твой вопрос по поводу строки кода автоматически снимается?

Что ты подразумеваешь под "снимается"? Мне как была непонятна цель вызова setCurrentText() в строке 8732, так она мне и непонятна до сих пор. От того что Дима в более поздней ревизии этот вызов убрал, более понятным он не стал. Однако, независимо от того, исчезла вызвавшая вопрос строка из исходников или нет, требовать ответа я не могу - я Дмитрию не начальник, он мне не подчинен. И если он решил игнорировать вопрос, я ничего сделать не могу.

comment:20 by dimag, 7 years ago

В списке выбора нужно было выводить видимое имя пользователя при его выборе в списке выбора. В строке 8732 в строку редактирования выпадающего списка заносилось это имя.

comment:21 by alx, 7 years ago

Саша, до сих пор я как-то всерьез не задумывался о сути данной функции, а сейчас у меня возник вопрос: для чего здесь вообще задается имя пользователя? Разве есть какой-то смысл в том, чтобы диспетчер в процессе работы с конференциями подключал не себя, а кого-то другого? Как это будет выглядеть?

К примеру, установлен режим подключения к основной конференции "Автоматическое", и при этом в "Дополнительный телефон" выбран пользователь Вася. Теперь в основную конференцию входит Петя. Верно ли я понял, что в этот момент в конференцию должны быть вызваны и диспетчер, а Вася? Этот вопрос снимается - не дочитал последний пункт описания. :) Но вопрос о смысле подключения не себя - остается...

А если у диспетчера режим подключения "Ручной" - то при входе Пети Вася уже вызываться не должен? В чем логика?

Чем эта функция отличается от функции "Использовать Sip-телефон", которую ты упоминал в #310? Если это одно и то же, то, насколько я понимаю, суть данной функции в том, что вместо SIP юзер-агента, встроенного в пульт, используется внешний юзер-агент, например SIP-телефон. И, если это действительно так, для конфигурации данной функции достаточно сделать чекбокс "Внешний SIP UA", при включении которого мы просто не будем активировать наш встроенный UA и все... И, кстати, будет логично, если этот чекбокс будет не в основном конфиге пульта, а в диалоге аутентификации, рядом с чекбоксом "Автоматическое подключение"...

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

in reply to:  description comment:22 by alx, 7 years ago

Replying to san:

Суть в использовании Диспетчером Sip-телефона в качестве устройства для приёма и вывода звука,

То есть, если исходить из заявленной сути, именно ДИСПЕТЧЕР, а не кто-то другой, должен вызываться!

comment:23 by san, 7 years ago

суть данной функции в том, что вместо SIP юзер-агента, встроенного в пульт, используется внешний юзер-агент, например SIP-телефон.

Да

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

Да, думаю можно так сделать, это будет существенным упрощением.

Но есть одна особенность:
Сейчас присутствие абонентов в сети, в том числе и Диспетчера, контролируется Техником по их статусу регистрации.
В случае отключенного SIP UA Техник не сможет получить информацию о присутствии самого пульта Диспетчера в сети.

in reply to:  23 comment:24 by alx, 7 years ago

Replying to san:

В случае отключенного SIP UA Техник не сможет получить информацию о присутствии самого пульта Диспетчера в сети.

Он и сейчас, даже без этой функции, не может: если диспетчер вместо пульта зарегистрирует "обычный" UAC, техник не увидит никакой разницы!

comment:25 by san, 7 years ago

Сейчас "диспетчер" и "дополнительный телефон" это два разных UA, они регистрируются под разными именами и присутствие их обоих в сети контролируются Техником по статусу регистрации.

В случае активации функции "внешний UA" UA диспетчера будет отключен и Техник не сможет контролировать присутствие пульта в сети.

in reply to:  25 comment:26 by alx, 7 years ago

Replying to san:

два разных UA,

Первый вопрос: зачем одному человеку (диспетчеру) два разных UA, если он, как ранее ты писал в ticket:241#comment:41, "может находиться только в одной конференции в определённый момент времени."?

они регистрируются под разными именами

Второй вопрос: зачем одному человеку (диспетчеру) заводить две разные учетные записи? Это уже шизофрения какая-то получается... :)

и присутствие их обоих в сети контролируются Техником по статусу регистрации.

Верно. Акцентирую внимание: "их" == "Юзер-агентов".

В случае активации функции "внешний UA" UA диспетчера будет отключен и Техник не сможет контролировать присутствие пульта в сети.

А тут я вынужден повторить написанное в comment:23 - он контролирует присутствие не пульта, а UA (выше я на этом акцентировал внимание)! Поправь меня если я ошибаюсь, но по-моему отличить UA пульта от какого-либо другого UA техник не может.

comment:27 by san, 7 years ago

уфф :)

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

отличить UA пульта от какого-либо другого UA техник не может

Да, но диспетчер и не может по своему желанию регистрироваться от имени себя другими UA кроме пульта

in reply to:  27 comment:28 by alx, 7 years ago

Replying to san:

Я не утверждаю что то как сделано сейчас - логично и правильно.

А как сделано сейчас? И сделано кем? Сейчас какой-то реально работающий диспетчер использует сразу две учетные записи? Ну так, наверное, это его право и его дело, к нашему пульту это прямого отношения не имеет. Человек вправе представляться несколькими разными именами, если он этого хочет. И мы, даже если очень захотим, запретить ему этого не сможем - в конце концов, он может запустить несколько пультов... :)

Если же говорить именно о пульте, то он не требует, чтобы его собственный UA и внешний UA ("дополнительный телефон") использовали разные учетные записи. Опять же поправь меня если я ошибаюсь.

Я говорю о том, что формально мы потеряем функцию контроля присутствия пульта в сети.

А я говорю, что не потеряем, так как невозможно потерять то, чего не имеешь.

отличить UA пульта от какого-либо другого UA техник не может

Да, но диспетчер и не может по своему желанию регистрироваться от имени себя другими UA кроме пульта

Как не имеет? Почему не имеет? Что помешает ему это сделать?

comment:29 by san, 7 years ago

Обсудили устно, закончим на том, что я согласен с

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

comment:30 by alx, 7 years ago

In 829/dispatcher:

Добавлен конфигурационный параметр "Внешений SIP user agent",
при установке которого встроенный UA деактивируется. See #475.

comment:31 by san, 6 years ago

Milestone: Срочно!

Milestone deleted

Note: See TracTickets for help on using tickets.