Opened 8 years ago

Closed 8 years ago

#186 closed задача (готово)

Функция "перехват звонка"

Reported by: san Owned by: alx
Priority: низкий Milestone: 2 очередь
Component: VE-01 Keywords:
Cc: andrei

Description (last modified by san)

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

Суть функции:
Абонент может "перехватывать" вызовы поступившие для других, набрав на своём телефоне определённый номер

Результаты обсуждения:

  • в плате существуют "списки перехвата звонков"
  • списков может быть сколько угодно
  • в списке перечислены абоненты которые могут перехватывать вызовы друг у друга
  • в настройках абонентов появится поле принадлежности к одному(только одному) из "списков перехвата звонков"
  • когда вызовов, возможных для перехвата, несколько действуют приоритеты:
    • откуда вызов: FxO, PRI, 1ИНД, IP, FxS
    • по времени начала вызова, самый старый в приоритете


Т.е. есть некий список абонентов платы [Петя, Дима ,Маша] и второй список абонентов[Вася, Петя] которые вправе перехватывать вызовы поступающие абонентов первого списка.
Пример: 1. звонит телефон Димы 2. Петя в соседней комнате слышит звонок, и зная что Димы нет на месте, набирает #50 3. "Звонок" переключается на Петю, устанавливается соединение "Кто-то" <-> "Петя"
Если вызовов несколько - перехватывается вызов на абонента который выше в списке.

Как минимум, хочется такой функционал для окончаний FxS.

p.s. Если эта функция будет реализована, я смогу "безболезнено" заменить платой VE нашу офисную АТС. А это мне очень хочется сделать в основном целях тестирования платы "на своей шкуре". Ну а после замены АТС на VE, когда все окончания будут в IP, можно уже постепенно подключать Freeswitch и использовать его потенциал для повышения комфорта...

Change History (22)

comment:1 by san, 8 years ago

Description: modified (diff)

comment:2 by alx, 8 years ago

Я здесь не совсем понимаю пару моментов.

  1. Если все равно будет внешний коммутатор (FreeSwitch), то почему бы сразу не отдать эту функцию ему?
  2. Как именно ты представляешь себе использование данной функции? Можно чуть более подробный сценарий, нежели приведен в описании?
    • Откуда, например, берется "#50"?
    • Откуда Петя знает, что набрав #50 он перехватит вызов именно Димы, а не Васи? Что-то мне подсказывает, что набором "#50" Петя не обойдется, он должен будет набрать еще и телефон Димы, например "#50*1234567"...
    • А откуда известно, что Дима вообще хочет, чтобы Петя перехватывал его вызовы? Можно сидеть и тупо набирать "#50*1234567" в надежде перехватить вызовы постороннему человеку... Очевидно, что Дима должен каким-то образом дать разрешение на перехват своих вызовов, причем не разрешение вообще, а разрешение конкретному абоненту... А если так, то не будет ли в 10 раз проще воспользоваться уже имеющей функцией переадресации по неответу? Преимущества очевидны:
      • Пете не надо прислушиваться к звонкам из соседней комнаты (и, как следствие, можно перехватывать вызовы не только в соседнюю комнату, а также в соседний дом, соседний город, соседнюю страну...), Петя всегда отвечает на звонок своего собственного телефонного аппарата;
      • Пете не надо набирать (и помнить!) ни кода перехвата, ни номера телефона Димы - надо просто снять трубку...

comment:3 by san, 8 years ago

  1. Для меня гораздо проще заменить сначала АТС на плату VE, "чтоб никто не заметил", а для этого не хватает только такой функции.
  1. Эта функция работает в нашей АТС панасоник, можно подглядеть там подробности настройки
  • #50 настраиваемое значение
  • Петя перехватит первый по приоритету вызов из списка, чей конкретно он не знает, ему и не надо. Например сейчас Андрей Казанцев набирает код перехвата когда слышит что один из телефонов в комнате звонит, ему не важно какой телефон звонит, а нужно просто принять вызов.
  • при наличии функции переадресации, в нашей компании всё-равно используют эту функцию перехвата, и к ней уже сильно привыкли.

in reply to:  3 comment:4 by alx, 8 years ago

Replying to san:

  • #50 настраиваемое значение

Настраиваемое кем и как? Самим Петей? Димой для Пети? Оператором для Димы и Пети вместе взятых? В процессе этой настройки "#50" как-то привязывается к номеру Пети или Димы? Я ведь не просто так просил привести более подробный сценарий...

  • Петя перехватит первый по приоритету вызов из списка,

Ага. Есть, стало быть, какой-то список вызовов. Можно о нем подробнее? Когда и как вызовы попадают в этот список?

И хотелось бы чуть подробней о приоритетах вызовов в списке. Какие у вызовов бывают приоритеты? Как вызов получает тот или иной приоритет?

чей конкретно он не знает, ему и не надо.

То есть как? Допустим собрали мы АТС на 500 номеров. Диме поступает вызов. Петя из соседней комнаты набирает "#50", в результате чего перехватывает вызов в полицию. Это хорошо и правильно?

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

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

comment:5 by san, 8 years ago

Cc: andrei added

comment:6 by san, 8 years ago

Результаты устного обсуждения:

  • в плате существуют "списки перехвата звонков"
  • списков может быть сколько угодно
  • в списке перечислены абоненты которые могут перехватывать вызовы друг у друга
  • в настройках абонентов появится поле принадлежности к одному(только одному) из "списков перехвата звонков"
  • когда вызовов, возможных для перехвата, несколько действуют приоритеты:
    • откуда вызов: FxO, PRI, 1ИНД, IP, FxS
    • по расположению вызываемых в списке перехвата


comment:7 by san, 8 years ago

Component: anyVE-02
Milestone: 1 очередь2 очередь

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

Replying to san:

  • по расположению вызываемых в списке перехвата

Что такое "расположение вызываемых в списке перехвата", если, согласно "в настройках абонентов появится поле принадлежности к одному...", этот список - на самом деле множество, а у множества нет порядка расположения, объект в множестве может только либо присутствовать, либо отсутствовать...

comment:9 by san, 8 years ago

ну да, согласен.
тогда второго критерия приоритета нет. если два вызова пришли из FxO без разницы кокой из них будет перехвачен

comment:10 by andrei, 8 years ago

А плата VE знает какой из двух вызовов пришел раньше?
Если да, то перехватываем звонок который начался ранее.
По двум спискам согласен. Настраивать их может любой кто имеет доступ к настройке корзины, как и остальные параметры.

comment:11 by san, 8 years ago

Да, точно, про старшинство забыл, т.е. второй критерий приоритет "самому старому"

Андрюх, вместо двух списков договорились до неограниченого числа списков.
Абонент может перехватывать звонки любого из абонентов СВОЕГО списка, читай comment:6.

comment:12 by andrei, 8 years ago

Для начала согласен.

comment:13 by san, 8 years ago

Description: modified (diff)

comment:14 by andrei, 8 years ago

Ага, а как быть если нужно войти во все списки?
Например директор хочет перехватить любой вызов, а Казанцев имеет право перехватить только вызов в свой отдел.

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

Replying to andrei:

А плата VE знает какой из двух вызовов пришел раньше?

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

in reply to:  15 comment:16 by andrei, 8 years ago

Replying to alx:

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

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

comment:17 by alx, 8 years ago

Component: VE-02VE-01

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

Replying to san:

  • когда вызовов, возможных для перехвата, несколько действуют приоритеты:
    • откуда вызов: FxO, PRI, 1ИНД, IP, FxS
    • по времени начала вызова, самый старый в приоритете

Во-первых, здесь нечеткая постановка задачи: даны два критерия, один из которых может противоречить другому. Например, если есть два вызова: один от FXS, другой от FXO, причем вызов от FXS пришел первым. Какой из вызовов должен быть перехвачен? По первому критерию - вызов от FXO, а по второму - от FXS...

Во-вторых, если приоретизация по времени вызова понятна и логична (первым пришел - первым обслужен), то приоретизация по типу окончания как-то непонятна. Почему именно в таком порядке? Почему не по-другому? Напрашивается необходимость настраивать логику приоритетов, но это еще более усложнит конфигурацию...

Предлагаю убрать первый критерий и оставить только приоритет более старого вызова перед более молодым.

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

Какой из вызовов должен быть перехвачен? По первому критерию - вызов от FXO, а по второму - от FXS...

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

comment:20 by san, 8 years ago

А как же внешний звонок против внутреннего? Насколько я помню это главный критерий приоритета который Андрей предлагал

comment:21 by alx, 8 years ago

На текущий момент (начиная с r1060) перехват реализован со следующими ограничениями:

  • перехватываются вызовы только канальных окончаний FXS;
  • перехватить вызов можно только с канального окончания FXS;
  • источник вызова не учитывается при выборе перехватываемого вызова.

Считаю, что в таком виде функция пригодна для практического использования (как минимум, тестирования).

comment:22 by alx, 8 years ago

Resolution: готово
Status: newclosed

Насколько я понимаю, тестирование успешно закончено. Закрываю тикет.

Note: See TracTickets for help on using tickets.