Opened 7 years ago

Closed 7 years ago

#204 closed баг (fixed)

Отбой при ответе после REFER

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

Description

  1. в fxo1 поступает вызывной сигнал.
  2. абонент 103 отвечает на вызов.
  3. 103 нажимает Flash и набирает 102.
  4. К 102 идет вызов, 103 слышит КПВ и кладет трубку.
  5. Выполняется call transfer.
  6. 102 снимает трубку, но при попытке ответа возникает ошибка, и происходит отбой. Причем отбой происходит односторонний!

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

Attachments (1)

bug1.log (19.6 KB ) - added by alx 7 years ago.

Download all attachments as: .zip

Change History (3)

by alx, 7 years ago

Attachment: bug1.log added

comment:1 by alx, 7 years ago

Здесь произошло следующее: call transfer был произведен в состоянии Ringing. Новое соединение для вызванного абонента было исходящее (он сам послал INVITE после получения REFER). Таким образом, вызов ua_answer() после снятия трубки был не нужен.

После снятия трубки необходимость ua_answer() проверяется по флагу rtpStarted, однако в данном случае этот флаг еще не был установлен, так как на момент снятия трубки еще не был получен ответ "200 OK" от fxo1.

Необходимо использовать какой-то другой признак состояния соединения (требует ли оно ответа или нет), в идеале он должен устанавливаться сразу при получении нового соединения (через eCallEvent или eCallReplace).

comment:2 by alx, 7 years ago

Resolution: fixed
Status: newclosed

In 1099/sip_ua:

Устранена ситуация, при которой при снятии трубки окончание FXS пыталось ответить
на уже отвеченное соединение, в результате чего получало ошибку. Closes #204.
Однако, здесь остается возможность неверного поведения из-за того что
INVITE посылается сразу при получении REFER в одном потоке, а событие eCallReplace
обрабатывается в другом. Необходима реализация #137.

Note: See TracTickets for help on using tickets.