Opened 7 years ago
Closed 7 years ago
#237 closed баг (fixed)
Ошибка тренсфера
Reported by: | alx | Owned by: | alx |
---|---|---|---|
Priority: | средний | Milestone: | 1 очередь |
Component: | any | Keywords: | |
Cc: |
Description
Обнаружена ошибка, проявляющаяся в следующем сценарии:
- Абонент 113 вызывает 111
- Абонент 111 отвечает
- Абонент 111 ставит соединение на hold и вызывает абонента 505
- Пока 505 звенит (не знаю, является ли это существенным обстоятельством), 111 выполняет call transfer.
Важно, что call transfer выполняется посылкой REFER удерживаемому абоненту 113, а не вызываемому 505 (для этого в коде FXS модифицирован вызов ua_refer()
)!
В хоте трансфера:
- 113 получает REFER и посылает INVITE абоненту 505.
- 505 посылает ответ 603 абоненту 111 и ответ 180 абоненту 113, однако абонент 113 не реагирует на полученное сообщение Ringing и продолжает проигрывать холдовую музыку!!!
- После ответа абонента 505 разговор происходит нормальным образом.
Причина явления в том, что абонент 113, получив сообщение Ringing, не считает его "своим", так как call_id не совпадает с active_call.id.
Change History (3)
comment:1 by , 7 years ago
comment:2 by , 7 years ago
Вариантов решения два:
- При получении REFER и отправке INVITE окончание FXS переходит в состояние Outgoing;
- Принимать событие Ringing как в состоянии Outgoing, так и в состоянии Connected.
Note:
See TracTickets
for help on using tickets.
Причина отсутствия КПВ у абонента 113 - при получении события Ringing окончание FXS проверяет, находится ли оно в состоянии Outgoing. Находящийся же на холде абонент 113 находится в состоянии Connected.