Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#503 closed баг (invalid)

Статус красный, но аварии в программе нет

Reported by: san Owned by: dimag
Priority: critical Milestone: 1 очередь
Component: ПО MC04-Dispatcher. Пульт диспетчера/техника Keywords:
Cc: alx

Description

  1. Запустил программу
  2. Ничего не делал
  3. Обнаружил своего пользователя красным

время происшествия примерно 14:59
r506

  1. Пользователь позеленел, едва я успел его сфотографировать

логи прилагаю

Attachments (2)

1028-1.zip (65.4 KB ) - added by san 10 years ago.
1028-1.png (28.1 KB ) - added by san 10 years ago.

Download all attachments as: .zip

Change History (17)

by san, 10 years ago

Attachment: 1028-1.zip added

by san, 10 years ago

Attachment: 1028-1.png added

comment:1 by dimag, 10 years ago

судя по логам, пришло сообщение
PRESENCE_IN - -4@192.168.0.63-Unregistered
CUSTOM - sofia::unregister - 4
от FreeSwitch сервера, соответственно я перевёл пользователя 4 в состояние нет подключения, потом пришло сообщение
CUSTOM - sofia::register - 4
после этого, я установил состояние пользователя в присутствует на сервере.
Так что я не считаю это ошибкой, на какое-то время сервер перевёл пользователя программы в состояние незарегистрировано, что я отобразил.

comment:2 by san, 10 years ago

Milestone: Текущее1 очередь
Priority: majorcritical

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

  1. Причина потери регистрации?
  2. Почему программа не выдала аварию?
Last edited 10 years ago by san (previous) (diff)

comment:3 by san, 10 years ago

Cc: alx added

comment:4 by dimag, 10 years ago

Cc: alx removed

1)Надо спросить у FreeSwitch.
2)Возможно всё произошло очень быстро, я проверяю регистрацию 1 раз в секунду.

comment:5 by san, 10 years ago

Cc: alx added

comment:6 by san, 10 years ago

2) Мне кажется событие длилось более секунды, я успел заметить, удивиться и сделать Alt+PrintScreen. Посмотри в логе сколько длилось

1) Я припоминаю, что уже были какие-то неясности с регистрацией...

comment:7 by dimag, 10 years ago

Да были, для этой ситуации я проверю периодически состояние регистрации у SIP-клиента, если она отсутствует, то делаю попытку перерегистрироваться.

comment:8 by san, 10 years ago

А каким образом происходит "штатная" перерегистрация своего абонента?
На сколько отличается значение таймаута регистрации, который ты сообщаешь регистратору, от времени через которое будет совершена перерегистрация?

in reply to:  4 comment:9 by alx, 10 years ago

Replying to dimag:

пришло сообщение PRESENCE_IN - -4@192.168.0.63-Unregistered

Replying to dimag:

2)Возможно всё произошло очень быстро, я проверяю регистрацию 1 раз в секунду.

Что значит "проверяю регистрацию", если "пришло сообщение" о ее потере? Зачем "проверять регистрацию" раз в секунду, если о любом изменении состояния регистрации программа немедленно получает уведомление?

Саша, была ли в конфигурации программы включена функция уведомления об отсутствии пользователя 4? Если была, то это, однозначно, баг - программа получила уведомление о потере регистрации пользователя 4, но не выдала сообщение.

comment:10 by san, 10 years ago

Саша, была ли в конфигурации программы включена функция уведомления об отсутствии пользователя 4

Нет, но у программы есть авария "Ошибка регистрации абонента". Насколько я понял она должна срабатывать при потере регистрации своего абонента.

in reply to:  10 comment:11 by alx, 10 years ago

Replying to san:

Нет,

Тогда программа и не должна была выдавать аварию по причине "красного" статуса этого абонента.

но у программы есть авария "Ошибка регистрации абонента". Насколько я понял она должна срабатывать при потере регистрации своего абонента.

Где-то описано (тикет?), в каких случаях должна выдаваться такая авария? Из ее формулировки можно предположить, что она выдается, когда UAC регистрировался на сервере регистрации, но процесс регистрации завершался неуспешно (например UAC послал REGISTER и получил ответ "403 Forbidden"). Таким образом, это совсем не то же самое, что и факт отсутствия регистрации пользователя на сервере, который индицируется красным кружком...

comment:12 by alx, 10 years ago

Сейчас вспомнил, что был такой тикет #185. Он именно о случае ошибки регистрации.

Дима, можно ли установить по приложенному логу, пытался ли UAC регистрироваться на сервере в интересующий нас период (между получением unregister и register), и если да, была ли эта попытка успешной?

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

comment:13 by san, 10 years ago

Resolution: invalid
Status: newclosed

Хм.. видимо я ошибочно понял суть аварии

А причину потери регистрации я кажется нашел - на другом ПК оказалась запущена программа от имени этого-же пользователя и видимо в момент закрытия программы она разрегистрировала моего абонента.

В таком случае - закрываю тикет

comment:14 by dimag, 10 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
после которого я присвоил пользователю программу статус не зарегистрирован.

in reply to:  13 comment:15 by dimag, 10 years ago

Replying to san:

Хм.. видимо я ошибочно понял суть аварии

А причину потери регистрации я кажется нашел - на другом ПК оказалась запущена программа от имени этого-же пользователя и видимо в момент закрытия программы она разрегистрировала моего абонента.

В таком случае - закрываю тикет

Тогда понятно, когда открыто 2 одинаковых пользователя на 2 разных компьютерах, и один из них закрывается, то придёт сообщение sofia::unrigister, которое приведёт пользователя на оставшемся компьютере в красное состояние, в котором он будет на получения сообщения sofia::register.

Note: See TracTickets for help on using tickets.