#206 closed баг (fixed)
Ошибка при отправке NOTIFY
Reported by: | alx | Owned by: | alx |
---|---|---|---|
Priority: | средний | Milestone: | 1 очередь |
Component: | any | Keywords: | |
Cc: |
Description
При выполнении Call Transfer при получении REFER UA уведомляет инициатора трансфера о ходе трансфера отправкой NOTIFY. Иногда (замечено при создании конференции методом "REFER конференции", когда два REFER передаются в одно и то же соединение), что при попытке сформировать NOTIFY eXosip_call_build_notify()
возвращает ошибку -3, что означает OSIP_WRONG_STATE.
Предположительно эта ошибка вызвана тем, что мы пытаемся отправить новый запрос (начать новую транзакцию в диалоге), когда еще не завершена предыдущая транзакция.
Предлагается для подобных случаев организовать очередь в дескрипторе соединения, и при невозможности отправить уведомление (или даже устанавливать какой-то флаг "идет транзакция") класть его в очередь, а при завершении транзакции проверять, нет ли в очереди ожидающих отправки уведомлений...
Пока в качестве (временного?) решения изменена логика тренсфера в конференцию: второй REFER отправляется не после получения ответа "202" на предыдущий, а после получения завершающего NOTIFY после предыдущего трансфера.