#546 closed баг (fixed)
Гонки при вызове в конференцию
Reported by: | alx | Owned by: | alx |
---|---|---|---|
Priority: | major | Milestone: | 2 очередь |
Component: | ПО MC04-Dispatcher. Пульт диспетчера/техника | Keywords: | |
Cc: |
Description
При вызове пользователя в конференцию создается фоновая задача (bgapi), после чего формируется "синтетическое" событие конференции add-member, по которому в список участников конференции добавляется "виртуальный" участник в состоянии "вызывается". Если приходит событие BACKGROUND_JOB с сообщением о неудачном завершении вызова, участник переводится в состояние ошибки.
Иногда случается, что сообщение BACKGROUND_JOB приходит раньше, чем add-member, в результате при неудачном вызове участник навечно остается в состоянии "вызывается".
Для решения этой проблемы предлагается ввести хэш выполеннных задач, где хранить результат, полученный с событием BACKGROUND_JOB (возможно, только отрицательный), и при получении add-member с "виртуальным" участником искать UUID его задачи среди уже выполненных.
Удалять записи из хэша можно по времени.
In 777/dispatcher: