#503 closed баг (invalid)
Статус красный, но аварии в программе нет
Reported by: | san | Owned by: | dimag |
---|---|---|---|
Priority: | critical | Milestone: | 1 очередь |
Component: | ПО MC04-Dispatcher. Пульт диспетчера/техника | Keywords: | |
Cc: | alx |
Description
- Запустил программу
- Ничего не делал
- Обнаружил своего пользователя красным
время происшествия примерно 14:59
r506
- Пользователь позеленел, едва я успел его сфотографировать
логи прилагаю
Attachments (2)
Change History (17)
by , 8 years ago
Attachment: | 1028-1.zip added |
---|
by , 8 years ago
Attachment: | 1028-1.png added |
---|
comment:1 by , 8 years ago
comment:2 by , 8 years ago
Milestone: | Текущее → 1 очередь |
---|---|
Priority: | major → critical |
Это ошибка, пользователь программы не должен произвольно терять регистрацию, и даже если он потерял регистрацию по некой причине, программа должна выдать аварийное сообщение.
- Причина потери регистрации?
- Почему программа не выдала аварию?
comment:3 by , 8 years ago
Cc: | added |
---|
follow-up: 9 comment:4 by , 8 years ago
Cc: | removed |
---|
1)Надо спросить у FreeSwitch.
2)Возможно всё произошло очень быстро, я проверяю регистрацию 1 раз в секунду.
comment:5 by , 8 years ago
Cc: | added |
---|
comment:6 by , 8 years ago
2) Мне кажется событие длилось более секунды, я успел заметить, удивиться и сделать Alt+PrintScreen. Посмотри в логе сколько длилось
1) Я припоминаю, что уже были какие-то неясности с регистрацией...
comment:7 by , 8 years ago
Да были, для этой ситуации я проверю периодически состояние регистрации у SIP-клиента, если она отсутствует, то делаю попытку перерегистрироваться.
comment:8 by , 8 years ago
А каким образом происходит "штатная" перерегистрация своего абонента?
На сколько отличается значение таймаута регистрации, который ты сообщаешь регистратору, от времени через которое будет совершена перерегистрация?
comment:9 by , 8 years ago
Replying to dimag:
пришло сообщение PRESENCE_IN - -4@192.168.0.63-Unregistered
Replying to dimag:
2)Возможно всё произошло очень быстро, я проверяю регистрацию 1 раз в секунду.
Что значит "проверяю регистрацию", если "пришло сообщение" о ее потере? Зачем "проверять регистрацию" раз в секунду, если о любом изменении состояния регистрации программа немедленно получает уведомление?
Саша, была ли в конфигурации программы включена функция уведомления об отсутствии пользователя 4? Если была, то это, однозначно, баг - программа получила уведомление о потере регистрации пользователя 4, но не выдала сообщение.
follow-up: 11 comment:10 by , 8 years ago
Саша, была ли в конфигурации программы включена функция уведомления об отсутствии пользователя 4
Нет, но у программы есть авария "Ошибка регистрации абонента". Насколько я понял она должна срабатывать при потере регистрации своего абонента.
comment:11 by , 8 years ago
Replying to san:
Нет,
Тогда программа и не должна была выдавать аварию по причине "красного" статуса этого абонента.
но у программы есть авария "Ошибка регистрации абонента". Насколько я понял она должна срабатывать при потере регистрации своего абонента.
Где-то описано (тикет?), в каких случаях должна выдаваться такая авария? Из ее формулировки можно предположить, что она выдается, когда UAC регистрировался на сервере регистрации, но процесс регистрации завершался неуспешно (например UAC послал REGISTER и получил ответ "403 Forbidden"). Таким образом, это совсем не то же самое, что и факт отсутствия регистрации пользователя на сервере, который индицируется красным кружком...
comment:12 by , 8 years ago
Сейчас вспомнил, что был такой тикет #185. Он именно о случае ошибки регитсрации.
Дима, можно ли установить по приложенному логу, пытался ли UAC регистрироваться на сервере в интересующий нас период (между получением unregister и register), и если да, была ли эта попытка успешной?
follow-up: 15 comment:13 by , 8 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
Хм.. видимо я ошибочно понял суть аварии
А причину потери регистрации я кажется нашел - на другом ПК оказалась запущена программа от имени этого-же пользователя и видимо в момент закрытия программы она разрегистрировала моего абонента.
В таком случае - закрываю тикет
comment:14 by , 8 years ago
Просмотрим лог
Загружается конфигурация
UP 0 years, 3 days, 22 hours, 8 minutes, 2 seconds, 910 milliseconds, 562 microseconds
FreeSWITCH (Version 1.6.11 git 5e413fe 2016-09-28 17:20:19Z 64bit) is ready
724 session(s) since startup
2 session(s) - peak 14, last 5min 2
0 session(s) per Sec out of max 30, peak 9, last 5min 0
1000 session(s) max
min idle cpu 0.00/96.47
Current Stack Size/Max 240K/8192K
14:57:12.847 sip_endpoint.c !.Creating endpoint instance...
14:57:12.847 pjlib .select() I/O Queue created (031C9F18)
14:57:12.847 sip_endpoint.c .Module "mod-msg-print" registered
14:57:12.847 sip_transport. .Transport manager created.
14:57:12.847 pjsua_core.c .PJSUA state changed: NULL --> CREATED
14:57:12.896 pjsua_core.c .pjsua version 2.4.5 for win32-6.2/i386/msvc-18.0 initialized
Подсистема SIP успешно инициализированна
14:57:13.098 pjsua_acc.c ....sip:4@192.168.0.63: registration success, status=200 (OK), will re-register in 120 seconds
Получаем список пользователей
InitializationThread::Done()
CStartupDlg::Done() started
Startup dlg finished
ESL Connected
Window Icon setted
MainAppFrameWindow2 ctor
pLogViewWidget created
pSplitterSoundPlay created
Main Window created
PRESENCE_IN - -4@192.168.0.63-Unregistered
CUSTOM - sofia::unregister - 4
Очевидно в 14:57:13.098 pjsua_acc.c ....sip:4@192.168.0.63: registration success, status=200 (OK), will re-register in 120 seconds - произошла регистрация SIP клиента на сервере.
Далее мы проинициализировали главное окно приложение, начала считывать события и сразу получили 2:
PRESENCE_IN - -4@192.168.0.63-Unregistered
CUSTOM - sofia::unregister - 4
после которого я присвоил пользователю программу статус не зарегистрирован.
comment:15 by , 8 years ago
Replying to san:
Хм.. видимо я ошибочно понял суть аварии
А причину потери регистрации я кажется нашел - на другом ПК оказалась запущена программа от имени этого-же пользователя и видимо в момент закрытия программы она разрегистрировала моего абонента.
В таком случае - закрываю тикет
Тогда понятно, когда открыто 2 одинаковых пользователя на 2 разных компьютерах, и один из них закрывается, то придёт сообщение sofia::unrigister, которое приведёт пользователя на оставшемся компьютере в красное состояние, в котором он будет на получения сообщения sofia::register.
судя по логам, пришло сообщение
PRESENCE_IN - -4@192.168.0.63-Unregistered
CUSTOM - sofia::unregister - 4
от FreeSwitch сервера, соответственно я перевёл пользователя 4 в состояние нет подключения, потом пришло сообщение
CUSTOM - sofia::register - 4
после этого, я установил состояние пользователя в присутствует на сервере.
Так что я не считаю это ошибкой, на какое-то время сервер перевёл пользователя программы в состояние незарегистрировано, что я отобразил.