Opened 7 years ago

Last modified 7 years ago

#249 closed улучшение

Сброс текущего соединения более приоритетным вызовом — at Initial Version

Reported by: alx Owned by: alx
Priority: низкий Milestone: 2 очередь
Component: any Keywords:
Cc: san, andrei, artem, vlad

Description

Поступил запрос на реализацию функции для канального окончания АДАСЭ: при поступлении вызова канальному окончанию, уже занятому разговором, если новый вызов более приоритетный, то текущее соединение разрывается, и принимается новый вызов. Детали реализации (по какому признаку определять приоритетность вызова) еще в стадии обсуждения - есть вариант по имени пользователя и/или по категории (параметр cpc).

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

Технически реализовать это можно так (черновой набросок алгоритма):

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

Хочется услышать мнения по следующим моментам:

  • будет ли такая функция хоть сколько-нибудь востребована;
  • по каким критериям можно определять приоритетность вызова (у окончания АДАСЭ уже есть параметр "Горячая линия 1600 Гц", в которой пишется URI диспетчера, вызовы от которого и будут приоритетными, в других канальных окончаниях такого параметра нет), как вариант - использовать параметр URI cpc (Calling Party Category), который у нас уже используется;
  • Замечания/предложения по поводу предложенного алгоритма.

Change History (0)

Note: See TracTickets for help on using tickets.