Opened 9 years ago

Closed 8 years ago

#102 closed улучшение (fixed)

Сообщать и обрабатывать ошибки трансфера

Reported by: alx Owned by: alx
Priority: средний Milestone: 1 очередь
Component: any Keywords:
Cc:

Description

Сейчас при ошибке трансфера происходят нехорошие вещи, типа тишины у одного из абонентов при отбое другого абонента. Узнать о неудачном трансфере нет возможности, так как transfee сразу посылает NOTIFY с 200 OK.
Надо сделать посылку NOTIFY с реальным результатом трансфера, а сами данные трансфера где-то запоминать, чтобы в случае неудачи, как минимум, можно было бы корректно разорвать соединения...

Change History (9)

comment:1 by alx, 9 years ago

Milestone: версия 17версия 18

comment:2 by alx, 9 years ago

Milestone: версия 18

comment:3 by alx, 9 years ago

Milestone: версия 18
version: 19

comment:4 by alx, 9 years ago

Milestone: версия 181 очередь

Milestone renamed

comment:5 by alx, 9 years ago

Milestone: 1 очередь2 очередь
Type: багулучшение

comment:6 by alx, 9 years ago

Надо обрабатывать событие EXOSIP_CALL_MESSAGE_REQUESTFAILURE. Так, если на сервере трансфер административно запрещен, то в ответ на REFER приходит "403 Forbidden", а мы это никак не обрабатываем.

comment:7 by alx, 9 years ago

Milestone: 2 очередь1 очередь

comment:8 by alx, 9 years ago

EXOSIP_CALL_MESSAGE_REQUESTFAILURE и EXOSIP_CALL_MESSAGE_ANSWERED обрабатываются:
после отправки REFER ожидается ответ, и если он неуспешный, соединения разрываются: [823]

comment:9 by alx, 8 years ago

Resolution: fixed
Status: newclosed

In 1061/sip_ua:

В процессе выполнения трансфера сделано "честное" уведомление о состоянии процесса:

  • при получении REFER отправляется NOTIFY с "100 Trying";
  • при получении успешного ответа на INVITE отправляется NOTIFY с "200 OK";
  • при неуспешном вызове отправляется NOTIFY с реальным кодом завершения вызова.

Добавлено новое событие call_notify_t (eCallNotify), которым канальные окончания
информируются о получении NOTIFY внутри диалога. call_notify_t содержит
событие, состояние подписки, content-type и тело уведомления.

В dvoIntercept соединение теперь разрывается после получения окончательного уведомления
о состоянии трансфера (независимо от кода завершения).

Closes #102.

Note: See TracTickets for help on using tickets.