Closed Bug 729503 Opened 12 years ago Closed 12 years ago

WebTelephony: TelephonyCall hanged up while in "dialing" state never gets to "disconnected"

Categories

(Core :: DOM: Device Interfaces, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: etienne, Assigned: hsinyi)

References

Details

(Whiteboard: [good first bug][lang=c++][mentor=philikon])

Attachments

(3 files)

* Called .handUp() on a call in "dialing" state.
* It passes to "disconnecting" right away
* But then it never gets to "disconnected"
Thanks for the report! This is a bug in the DOM side of things. When we don't have a call ID yet, we need to notify "disconnected" ourselves rather than wait for the RIL to come back to us. Should be relatively easy to fix.
Blocks: webtelephony
Summary: B2G telephony: TelephonyCall hanged up while in "dialing" state never gets to "disconnected" → WebTelephony: TelephonyCall hanged up while in "dialing" state never gets to "disconnected"
Whiteboard: [good first bug][lang=c++][mentor=philikon]
Assignee: nobody → htsai
I didn't see the bug in the latest build. Is this bug fixed?
(In reply to htsai from comment #2)
> I didn't see the bug in the latest build. Is this bug fixed?

The only thing that I can think of is bug 717451. It landed recently.

How are you attempting to verify this issue?
I am investigating |logcat| to check the call states, without seeing the bug that I noticed last Friday as well.
(In reply to htsai from comment #4)
> I am investigating |logcat| to check the call states,

I should have been more specific, sorry. What I meant was: can you upload an HTML test page (or diff against gaia) that exercises the problem. The bug is about DOM events not being fired, so we should reproduce it there. logcat is helpful for debugging, but it's not a means of reproducing the issue.
(In reply to Philipp von Weitershausen [:philikon] from comment #5)
> (In reply to htsai from comment #4)
> > I am investigating |logcat| to check the call states,
> 
> I should have been more specific, sorry. What I meant was: can you upload an
> HTML test page (or diff against gaia) that exercises the problem. The bug is
> about DOM events not being fired, so we should reproduce it there. logcat is
> helpful for debugging, but it's not a means of reproducing the issue.
Thanks for the explanation. Would keep investigating the issue further.
FWIW this looks fixed to me.

-> https://github.com/andreasgal/gaia/pull/712
According to the code, when |ril_worker.js| receives the hangUp message 
originally from |dialer.js|, |ril_worker.js| sends REQUEST_HANGUP to rild.
After this REQUEST_HANGUP returns, RIL shows the connection is not active 
anymore in next RIL_REQUEST_GET_CURRENT_CALLS query.Then, 
|_handleDisconnectedCall| in |ril_worker.js| will sendDOMMessage to |RadioInterfaceLayer.js|, which will subsequently notify 
|TelephonyCall.cpp| that the call state has been changed into "disconnected." 
Finally, |dialer.js| will receive the "disconnected" state. 

I also added some debug messages in the code to show the call state transition.
Please review the logcat as attached, which shows that the telephony call can reach "disconnected" state while hanged up in "dialing" state.
(In reply to htsai from comment #8)
> Created attachment 605335 [details]
> logcat: TelephonyCall hanged up while in "dialing" state
> 
> According to the code, when |ril_worker.js| receives the hangUp message 
> originally from |dialer.js|, |ril_worker.js| sends REQUEST_HANGUP to rild.
> After this REQUEST_HANGUP returns, RIL shows the connection is not active 
> anymore in next RIL_REQUEST_GET_CURRENT_CALLS query.Then, 
> |_handleDisconnectedCall| in |ril_worker.js| will sendDOMMessage to
> |RadioInterfaceLayer.js|, which will subsequently notify 
> |TelephonyCall.cpp| that the call state has been changed into
> "disconnected." 
> Finally, |dialer.js| will receive the "disconnected" state. 
> 
> I also added some debug messages in the code to show the call state
> transition.
> Please review the logcat as attached, which shows that the telephony call
> can reach "disconnected" state while hanged up in "dialing" state.

Forgot to say, I cannot reproduce this bug as you can see in the attached logcat. This bug isn't valid IMO.
Thanks for investigating, Hsinyi. Etienne, if you still see this bug, please apply Hsinyi's patches and provide us with some logs. Then we can decide whether to reopen this bug. Thanks!
Status: UNCONFIRMED → RESOLVED
Closed: 12 years ago
Resolution: --- → WORKSFORME
No problem, haven't seen it since comment 7.

Thanks all!
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: