Максимальная продолжительность сеанса

S
Автор Sergiiy
Обновлено 11 месяцев назад

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

Для достижения этой цели flysip Softswitch, начиная с версии 5.3 , увеличивает разрешенную максимальную продолжительность активного звонка в режиме реального времени. Алгоритм изменен только для баланса Аккаунтов и работает следующим образом:    

  • Поступает звонок. Флайсип пытается выделить деньги на первый период времени.
  • Если баланс достаточен, вызову разрешается соединиться и продолжаться, по крайней мере, в течение этого первого периода.
  • Вызов соединяется, и за некоторое время до истечения выделенного времени flysip пытается выделить дополнительный период времени, чтобы продлить продолжительность вызова.
  • Если это распределение успешно, то максимально допустимая продолжительность вызова соответственно увеличивается.
  • Это перераспределение повторяется до тех пор, пока либо не закончится баланс, либо не будет достигнуто максимальное время сеанса учетной записи.  
  • Когда следующее перераспределение не удается, f; больше не продлевает максимальную продолжительность вызова, и вызов отключается по тайм-ауту сеанса , когда он достигает максимальной продолжительности вызова, которая была установлена ​​ранее.  

Возможны два алгоритма распределения времени сеанса.

  • Только средняя продолжительность вызова ( ACD ) — каждое новое распределение пытается получить ровно еще один ACD. Этот алгоритм дает сбой, если ACD составляет 5 секунд или меньше.
  • Инкрементальный  - флайсип сначала пытается получить 10 секунд и вдвое больше, чем предыдущая попытка, пока не достигнет либо 200 секунд, либо ACD, в зависимости от того, что больше. Дальнейшее распределение до Session Timeout осуществляется в соответствии с таблицами ниже   

Новая попытка выделения выполняется за 5 секунд до истечения времени ожидания сеанса для вызова.

Пример

Предположим, что:

  • Интервал 1 = 10 секунд
  • Интервал N = 15 секунд
  • Цена 1 = 6 долларов США в минуту.
  • Цена N = $4/минута

Алгоритм ACD, ACD = 140 секунд

График Попробуйте выделить

Фактически выделенный период

Время ожидания сеанса Заблокированный баланс
Connect+ 0 секунд 140 секунд 145 секунд 145 секунд 1 доллар + 9 долларов = 10 долларов
Connect+ 140 секунд 140 секунд 150 секунд 295 секунд 10 долларов + 10 долларов = 20 долларов
Connect+ 290 секунд 140 секунд 150 секунд 445 секунд 20 долларов + 10 долларов = 30 долларов

Инкрементальный алгоритм для случая, когда ACD >200 (ACD = 230)

График Попробуйте выделить Фактически выделенный период Время ожидания сеанса Заблокированный баланс
Connect+ 0 секунд 10 секунд 10 секунд 10 секунд 1 доллар
Connect+ 5 секунд 20 секунд 30 секунд 40 секунд $1+$2=$3
Connect+ 35 секунд 40 секунд 45 секунд 85 секунд $3+$3=$6
Connect+ 80 секунд 80 секунд 90 секунд 175 секунд 6 долларов + 6 долларов = 12 долларов
Connect+ 170 секунд 160 секунд 165 секунд 340 секунд 12 долларов + 11 долларов = 23 доллара
Connect+ 335 секунд 230 секунд 240 секунд 580 секунд 23 доллара + 16 долларов = 39 долларов
Connect+ 575 секунд 230 секунд 240 секунд 820 секунд 39 долларов + 16 долларов = 55 долларов
Connect+ 815 секунд 230 секунд 240 секунд 1060 секунд 55 долларов + 16 долларов = 71 доллар

Этот алгоритм доступен только в новой версии strackerd, которую можно включить, установив для параметра system/strackerd/binary значение pkg в таблице system_config. Эта опция недоступна через XML-RPC API и может быть настроена только вручную.

Алгоритм распределения времени можно выбрать с помощью параметра system/strackerd/next_duration_algorithm в таблице system_config. Доступные значения: «ACD» (по умолчанию) и «инкрементный». Эта опция недоступна через XML-RPC API и может быть настроена только вручную.

Оцените эту статью