Commit Graph

32 Commits

Author SHA1 Message Date
John Wang
447a2b014b am ae2a4419: am 4567847d: Add "canDial" check.
* commit 'ae2a44191188cde1dc4a1bbb0134d775f0dc4126':
  Add "canDial" check.
2010-12-01 11:20:56 -08:00
John Wang
4567847d46 Add "canDial" check.
For bug #3164802.

CallManager allow a new phone call only if ALL of the following are true:

- Phone is not powered off
- There's no incoming or waiting call
- There's available call slot in either foreground or background
- The foreground call is ACTIVE or IDLE or DISCONNECTED.

Change-Id: I0124d600fd8c63b8c608301f3889b3faec47f1db
2010-12-01 10:26:49 -08:00
Jean-Michel Trivi
42c5a5ed4f SIP calls should set the audio mode to MODE_IN_COMMUNICATION
Audio mode MODE_IN_CALL is reserved for telephony.

Change-Id: I66cb9ff746ad9c15b2ce3b5a6de6c69f56654d15
2010-11-17 10:58:45 -08:00
John Wang
d19f44f3e3 Fix the audio mode glitch during hangup.
Fix bug # 3136179.

Keep audio mode as IN_CALL during hangup DISCONNECTING state

to prevent the NORMAL and IN_CALL glitch in auiod setMode.

Change-Id: I5513a3d5c65bd13ac054c9718c4dbd7d6db9eaf3
2010-11-10 15:35:51 -08:00
Eric Laurent
164a8f86c7 Partial fix for issue 3124895.
When a SIP call is put on hold and no other call is active, the audio mode should not be
switched to incall.

Change-Id: I1307330f10cbfb9c4223bcb9dc4faa79778750af
2010-10-25 19:45:39 -07:00
Hung-ying Tyan
88e3f0ad28 Silently reject a ringing call when another call is dialing/ringing.
http://b/issue?id=3109483
http://b/issue?id=3103072

Change-Id: I34f13225319c7f2a41e1ea9e25811866432ab809
2010-10-21 02:38:04 +08:00
John Wang
844a6b3cca Turn off additional debug.
Bug:3038245
Change-Id: If3c894511b4bbfd0d3e95b51aeca299edbbcf55d
2010-10-12 11:32:24 -07:00
John Wang
864032f951 Fix startDtmf.
Call correct startDtmf() function.

Bug: 3033030

Change-Id: Ia90311ac5d2e4b070a28533c865c81dc90326557
2010-10-10 11:36:05 -07:00
Hung-ying Tyan
17956e626b CallManager/SipPhone: fix reject a ringing call
+ CallManager: fix getFirstActiveRingingCall(), getActiveFgCall(), getFirstActiveBgCall()
+ Set DisconnectCause to be INCOMING_REJECTED when a call is rejected

http://b/issue?id=3049671

Change-Id: Ica1d81ca4b71ab0ceb2ab437b82bbb4ccf86fe92
2010-10-06 09:31:44 +08:00
Hung-ying Tyan
23f21600d0 Add CallManager/Phone.setEchoSuppressionEnabled().
Change-Id: I7bc6241e6fa815787799a53d6f3a076567edc361
2010-09-30 12:34:41 +08:00
John Wang
55bc084bf4 Add debug functions.
Enable more debug in CallManager.

Change-Id: Iaf66e31dc67f7ca9123fe5d8b351a21b1ec8b987
2010-09-26 13:39:55 -07:00
Chung-yih Wang
4c571a62b1 Fix the build.
Change-Id: I6e3f683be22ab834ca1b83a1dbb0b3acd62645d2
2010-09-21 13:38:17 +08:00
Chung-yih Wang
9779b714f4 Revert the ANSWERING state.
+fix the unknown call flash for answering an incoming call and
updating the screen if the background call got dropped.
+change the getFirstActiveBgCall to return the call if the state
is not IDLE. This will help to fix unknown flash if the background
call got dropped.

Change-Id: I9803ccebd919acbd5296e7dfde7dc5f29cc9f180
2010-09-21 11:51:51 +08:00
John Wang
0a30e454eb Use PhoneBase in the phone list.
For bug 3001613.

Only use PhoneBase (not PhoneProxy) in CallManager.

Both PhoneBase and PhoneProxy implement Phone interface,

such as dial(). The real implementation, for

example in GSM,  is in GSMPhone extending from PhoneBase.

So that foregroundCall.getPhone() returns GSMPhone obj. On the other hand,

PhoneFactory.getDefaultPhone() returns PhoneProxy obj, which has a class

member of GSMPhone.

Therefore for phone returned by PhoneFacotry, which is used by PhoneApp,

        phone.getForegroundCall().getPhone() != phone

Change-Id: I8a304098dd86762aaee56fb3c8b76c883e8c9a4f
2010-09-17 18:07:23 -07:00
John Wang
bd53554f8a Add debug function.
Change-Id: If2381b04b08876f78ac93833f848f099de5c6104
2010-09-17 13:53:45 -07:00
Chung-yih Wang
d8f3d16735 Add a new phone state ANSWERING.
The state ANSWERING is set when we answer an incoming sip call, i.e.
sending a 'OK' response to the peer. The state will be set to ACTIVE
once the 'ACK' from peer is received.

Change-Id: I84ee3cc68222eb34e032896ce23f7431d4ad774a
2010-09-16 19:09:16 +08:00
John Wang
59f9bae81d Complete event registration in CallManager.
1. Originally CallManager registers for all phone events provided by registerFor interface,

which will cause error msg such as "registerForXXX() in PhoneBase should not be called, CDMAPhone inactive."

for CDMA only events. Register for those events only if phone is CDMA phone.

2. Add registerForPostDialCharacter().

Note, we can't use notifyRegistrants() in handler since we need send

the character that is being processed in msg.arg1.

Change-Id: I48037c8a8e225bb82e203836a041f81f2445f4d8
2010-09-14 16:01:50 -07:00
John Wang
bc0e400d78 Return immutable copies of private callList.
Change-Id: I3da97acf89e044515e98fa04233dd378c32c250d
2010-09-13 19:10:21 -07:00
John Wang
d028bd0a5f Register ServiceStateChanged to CallManager.
Change-Id: I216bac222e1bfd93ad36c0aeafa85c232dd60abe
2010-09-10 15:23:21 -07:00
John Wang
a48dc39bd5 Add hangupForegroundResumeBackground().
To fix bug 2968310.

Handle the operation of hangupForegroundResumeBackground while foreground call and background call come from different phones.

Change-Id: Id83ca1b75031a8391c95c7f8b2be40e9067dd4cd
2010-09-08 15:50:57 -07:00
John Wang
20bb22964e Add API to get all foreground calls.
Change-Id: I38293b2d7841f5d8708a7b9b516f686ab15de2b1
2010-09-02 17:12:28 -07:00
Hung-ying Tyan
0e05bd27be CallManager: remove unused Phone argument from stopDtmf() and sendBurstDtmf()
Change-Id: Ib0c83c373580f7be9cb1ee262cd0098c70db9c64
2010-08-25 18:18:15 +08:00
Hung-ying Tyan
3294d44b96 Add confcall management to SIP calls
and fix the bug of re-assigning connectTime's in SipConnection,
and adding synchronization for SipPhone to be thread-safe,
and set normal audio mode when call not on hold instead of on hold in SipAudioCallImpl,
and fix re-entrance problem in CallManager.setAudioMode() for in-call mode.

Change-Id: I54f39dab052062de1ce141e5358d892d30453a3a
2010-08-24 17:54:47 +08:00
Hung-ying Tyan
a4cb657e3a CallManager: add setAudioMode()
When in a call, different audio modes need to be applied based on phone type.
(For example, SIP call needs to be in MODE_NORMAL while GSM call in MODE_IN_CALL.)
Originally, it's handled in PhoneUtils.setAudioMode(). It makes more sense now
to handle the actual logic in CallManager.

Change-Id: I58d8f31d6b4afe22f88da442daac2010781de801
2010-08-18 10:21:10 +08:00
Hung-ying Tyan
8eac20eacd SIP: implement conference call
Change-Id: Ifd420ed95e77e744c6aff28ac63e7363f97d9dc6
2010-08-18 10:00:36 +08:00
Hung-ying Tyan
912e0f7d9e CallManager: do not deliver ring event if fg call is live.
Change-Id: If5b1bca1f09557a2ee4de9ba429d80a0393279a0
2010-08-17 17:52:34 +08:00
John Wang
c159c84699 Update switch call and accept call.
Change-Id: Ifdd1af77e3eca08f6c931605ecfb275835b78709
2010-08-12 14:52:39 -07:00
Chung-yih Wang
2725a65512 Fix a bug in unregisterPhone().
Change-Id: Ifaef66d45043dc5376688a77f9d18124a9c29576
2010-08-11 14:22:34 +08:00
Hung-ying Tyan
d122805bbf CallManager: add getAllPhones().
Change-Id: I50589aaec55925d93c392f15a22c70d2a6634b87
2010-08-09 16:14:15 +08:00
John Wang
0b80ac9825 Add register methods in CallManager "do not merge"
Cherry-picked from master.

Add register methods used by PhoneApp into CallManager class.

For most register methods, CallManager acts as an pass-through

register to handle register and unregister phone case.

Change-Id: I9567c2dbffb9e482b906f94c2d991a404ad4626e
2010-08-02 15:33:48 -07:00
John Wang
4de9d20260 Handle call list in CallManager "do not merge".
Cherry-picked from master.
Update APIs to access foregroudCalls, backgroudCalls, and ringingCalls
     * 1. APIs to access list of calls
     * 2. APIs to check if any active call, which has connection other than
     * disconnected ones, pleaser refer to Call.isIdle()
     * 3. APIs to return first active call
     * 4. APIs to return the connections of first active call
     * 5. APIs to return other property of first active call

Change-Id: Ic30e28018d14e496e9427f96fec8a7c2ff7c1549
2010-08-02 15:18:17 -07:00
John Wang
ccd88b6594 Create CallManager class "do not merge"
Cherry-pick from master.
Initial check-in to support multiple call channels.

Change-Id: I387bab4d69ee38d738c5e0e0a51f1ac6607b9759
2010-08-02 15:13:53 -07:00