Closed Bug 936982 Opened 11 years ago Closed 10 years ago

Hanging all calls inside conference call leaves additional "connected" status to last hangup call

Categories

(Firefox OS Graveyard :: RIL, defect)

x86
macOS
defect
Not set
normal

Tracking

(tracking-b2g:backlog)

RESOLVED WONTFIX
tracking-b2g backlog

People

(Reporter: rexboy, Assigned: aknow)

References

Details

Attachments

(2 files, 1 obsolete file)

STR
1. Establish two calls, A and B
2. Join A and B into conference call
3. call A.hangUp() and then B.hangUp() together

Expected Result:
State of B changes from connected-->disconnecting-->disconnected

Actual Result:
State of B changes from connected-->disconnecting-->connected-->disconnected
(And B.ongroupchange raised right before changing to the last disconnected)


Platform version: Unagi, 26.0a2 20131028004002
I'll pul ril log later.
Attached file RIL log
Not sure what filter should I apply, so I copied all the log between making first call to hanging up all the calls. (Some gaia debug log also included)
Hsinyi,

Some analysis

Reason
======

11-11 12:03:41.701: I/Gecko(556): RIL Worker[0]: Received chrome message {"callIndex":2,"rilMessageToken":12,"rilMessageType":"hangUp"}
11-11 12:03:41.701: I/Gecko(556): RIL Worker[0]: New outgoing parcel of type 12

11-11 12:03:41.701: I/Gecko(556): RIL Worker[0]: Received chrome message {"callIndex":1,"rilMessageToken":13,"rilMessageType":"hangUp"}
11-11 12:03:41.701: I/Gecko(556): RIL Worker[0]: New outgoing parcel of type 12

We sent out two hangUp request to ril.

11-11 12:03:42.031: I/Gecko(556): RIL Worker[0]: Handling parcel as REQUEST_HANGUP
11-11 12:03:42.031: I/Gecko(556): RIL Worker[0]: New outgoing parcel of type 9

The first hangUp request is finish. Then we sent out the 'GET_CURRENT_CALLS' request.
Note that the request is sent out before we finish the hangUp procedure of 2nd call.

11-11 12:03:42.041: I/Gecko(556): RIL Worker[0]: Solicited response for request type 12, token 175, error 0
11-11 12:03:42.041: I/Gecko(556): RIL Worker[0]: Handling parcel as REQUEST_HANGUP

Finish 2nd hangUp.

11-11 12:03:42.061: I/Gecko(556): RIL Worker[0]: Handling parcel as REQUEST_GET_CURRENT_CALLS
11-11 12:03:42.071: I/Gecko(556): -*- RadioInterface[0]: Received message from worker: {"rilMessageType":"callStateChange","call":{"state":0,"callIndex":1,"toa":129,"isMpty":false,"isMT":false,"als":0,"isVoice":true,"isVoicePrivacy":false,"number":"117","numberPresentation":0,"name":"","namePresentation":0,"uusInfo":null,"isOutgoing":true,"isEmergency":false,"isConference":false,"started":1384142607492}}

The result contains 2nd call and the state is 'connected' because the call is not still connect when we send out the 'GET_CURRENT_CALL' request.

When telephony dom receives this update, it found that the state is different. It is set to 'disconnecting' before when hangUp API is called. Now a value of 'connected' is observed. So it fire a 'statechange' event with 'connected'.
The problem cannot simulate on emulator. I got the similar sequence of requests and responses. However the response of "GET_CURRENT_CALLS" contains nothing. So the two calls become disconnected at the same time.
Assignee: nobody → szchen
Please this into backlog.
blocking-b2g: --- → backlog
See Also: → 1005816
Attached file log2 (obsolete) —
Attachment #8426082 - Attachment is obsolete: true
Attached file log3
Bug 1005816 could not solve this issue.


05-21 15:53:02.538: I/Gecko(108): RIL Worker: [0] [TeleQ] push REQUEST_HANGUP
05-21 15:53:02.548: I/Gecko(108): RIL Worker: [0] [TeleQ] execute REQUEST_HANGUP
05-21 15:53:02.548: I/Gecko(416): [aknow] call: 4302e040, state: disconnecting
05-21 15:53:02.548: I/Gecko(416): [aknow] call: 44e6e1d0, state: disconnecting
05-21 15:53:02.558: I/Gecko(108): RIL Worker: [0] [TeleQ] push REQUEST_HANGUP
05-21 15:53:02.568: I/Gecko(108): RIL Worker: [0] [TeleQ] execute REQUEST_HANGUP
05-21 15:53:02.838: I/Gecko(108): RIL Worker: [0] [TeleQ] push REQUEST_GET_CURRENT_CALLS
05-21 15:53:02.838: I/Gecko(108): RIL Worker: [0] [TeleQ] pop REQUEST_HANGUP
05-21 15:53:02.838: I/Gecko(108): RIL Worker: [0] [TeleQ] push REQUEST_GET_CURRENT_CALLS
05-21 15:53:02.838: I/Gecko(108): RIL Worker: [0] [TeleQ] pop REQUEST_HANGUP

Sent two hangup requests.

05-21 15:53:02.838: I/Gecko(108): RIL Worker: [0] [TeleQ] execute REQUEST_GET_CURRENT_CALLS

Sent getCurrentCall requests to ril.

05-21 15:53:02.848: I/Gecko(108): RIL Worker: [0] Handling parcel as UNSOLICITED_RESPONSE_CALL_STATE_CHANGED

Received 1st callstatechanged indicating the 1st call had been already hung-up. (however, 2nd call is not)

05-21 15:53:02.848: I/Gecko(108): RIL Worker: [0] [TeleQ] push REQUEST_GET_CURRENT_CALLS
05-21 15:53:02.858: I/Gecko(108): RIL Worker: [0] [TeleQ] execute REQUEST_GET_CURRENT_CALLS
05-21 15:53:02.868: I/Gecko(108): -*- RadioInterface[0]: Received message from worker: {"rilMessageType":"callStateChange","call":{"state":0,"callIndex":1,"toa":129,"isMpty":false,"isMT":false,"als":0,"isVoice":true,"isVoicePrivacy":false,"number":"0912532529","numberPresentation":0,"name":"","namePresentation":0,"uusInfo":null,"isOutgoing":true,"isEmergency":false,"isConference":false,"started":1400658758719,"hangUpLocal":true},"rilMessageClientId":0}

From call list, 2nd call is still alive but with a different Mpty value.
We report the callstatechange. That makes the state change from 'disconnecting' to 'connected.'

05-21 15:53:02.868: I/Gecko(108): RIL Worker: [0] [TeleQ] pop REQUEST_GET_CURRENT_CALLS
05-21 15:53:02.878: I/Gecko(416): [aknow] call: 44e6e1d0, state: connected
05-21 15:53:02.878: I/Gecko(108): RIL Worker: [0] [TeleQ] pop REQUEST_GET_CURRENT_CALLS
05-21 15:53:02.978: I/Gecko(108): [aknow] call: 43ef93c0, state: disconnected
05-21 15:53:02.998: I/Gecko(108): RIL Worker: [0] Handling parcel as UNSOLICITED_RESPONSE_CALL_STATE_CHANGED

Now, we received 2nd callstatechanged... Modem just completed the action for 2nd hangUp request.

05-21 15:53:02.998: I/Gecko(108): RIL Worker: [0] [TeleQ] push REQUEST_GET_CURRENT_CALLS
05-21 15:53:02.998: I/Gecko(108): RIL Worker: [0] [TeleQ] execute REQUEST_GET_CURRENT_CALLS
05-21 15:53:03.129: I/Gecko(108): RIL Worker: [0] [TeleQ] pop REQUEST_GET_CURRENT_CALLS
05-21 15:53:03.189: I/Gecko(108): [aknow] call: 46eff3c0, state: disconnected
05-21 15:53:03.239: I/Gecko(416): [aknow] call: 4302dfd0, state: disconnected
05-21 15:53:03.239: I/Gecko(416): [aknow] call: 4302e040, state: disconnected
05-21 15:53:03.369: I/Gecko(416): [aknow] call: 452ab2b0, state: disconnected
05-21 15:53:03.379: I/Gecko(416): [aknow] call: 44e6e1d0, state: disconnected
We have provided the method to hangup all calls in the conference (Bug 978639).
The scenario in this bug will not happen and it's not needed any more.
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → WONTFIX
blocking-b2g: backlog → ---
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: