Столкнулись с интересной проблемой: абонент часто нам звонил и жаловался, что не может подключиться с ошибкой "Превышено количество сессий". Ему периодически сбрасывали существующую сессию и он подключался, потом интернет у него отваливался, он снова не мог подключиться и т. д. А сегодня я неожиданно заметил, что в отчёте у этого абонента висят две активные сессии в состоянии "Подключено" (см. вложение), при этом количество одновременных сессий на сервисе ограничено одной.
Вложение:
Комментарий к файлу: Активные сессии
Активные сессии.png [ 75.9 КБ | Просмотров: 3008 ]
Разбирательства привели к следующему выводу:
Есть два абонента которые работают с одного коммутатора (Calling-Station-Id одинаковый). Один работает стабильно, у другого соединение часто рвётся (плохой коннектор). В результате при подключении второго иногда (когда работает первый) появляется ошибка (Too many sessions). Второй звонит в тех. поддержку, и ему "завершают" якобы зависшую сессию (сессию первого абонента). Теперь сессий в биллинге нет, но на NAS'е продолжает висеть сессия первого абонента, второй абонент нормально авторизуется, и первый по-прежнему работает. Когда приходит Update-пакет от первого абонента, сессия в биллинге вновь создаётся, не смотря на то, что уже есть одна активная сессия. В итоге в биллинге висят две сессии и оба абонента нормально работают, пока у второго опять не происходит дисконнект.
Вообще, все обучены, что для завершения подвисшей сессии сначала нажимать на "Закрыть", чтобы отправить дисконнект на NAS, и, если не поможет, на "Завершить". Но иногда народ путает и получаются вот такие ситуации.
В связи с вышеизложенным есть вопрос и предложение:
1. Почему при создании сессии по Update-пакету не проверяется ограничение на количество сессий?
2. Предлагаю изменить логику работы кнопки "Завершить" на "отправить дисконнект на NAS и не дожидаясь ответа завершить соединение в базе". Можно ещё добавить опцию в конфиг, которая будет регулировать поведение этой кнопки. При этом при дисконнекте нужно сделать как описано здесь:
http://forum.bgbilling.ru/viewtopic.php?f=44&t=7536.