10

The internal Android class com.android.internal.telephony.Call contains an enum called State and defined as follows:

public enum State {
    IDLE, ACTIVE, HOLDING, DIALING, ALERTING, INCOMING, WAITING, DISCONNECTED, DISCONNECTING;

    public boolean isAlive() {
        return !(this == IDLE || this == DISCONNECTED || this == DISCONNECTING);
    }

    public boolean isRinging() {
        return this == INCOMING || this == WAITING;
    }

    public boolean isDialing() {
        return this == DIALING || this == ALERTING;
    }
}

What does the different states represent?

Bjarke Freund-Hansen
  • 28,728
  • 25
  • 92
  • 135
  • Would you know how to use this class? (I have internal/hidden APIs showing, app installed as system and with root permissions, just have no idea at all how to use that) – Edw590 Dec 23 '20 at 01:44

2 Answers2

8

Okay, this is my own attempt at answering the question:

/** Call is idle. */
IDLE,
/** Call is active i.e. audio paths are connected. */
ACTIVE,
/** We have placed the call on hold. */
HOLDING,
/** Outgoing dialling call initiated. */
DIALING,
/** Outgoing call is alerting receiving party. */
ALERTING,
/** Incoming call ready for pickup. */ 
INCOMING,
/** Incoming call is waiting for pickup, while another call is in progress. */
WAITING,
/** Call is disconnected, by either party. */
DISCONNECTED,
/** Call is currently being disconnected. */
DISCONNECTING;
Bjarke Freund-Hansen
  • 28,728
  • 25
  • 92
  • 135
2
3GPP TS 27.007 version 13.5.0 Release 13

List current calls +CLCC

Command 
+CLCC

Possible response(s)
[+CLCC: <ccid1>,<dir>,<stat>,<mode>,<mpty>[,<number>
,<type>[,<alpha>[,<priority>[,<CLI validity>]]]]
[<CR><LF>+CLCC: <ccid2>,<dir>,<stat>,<mode>,<mpty>[,
<number>,<type>[,<alpha>[,<priority>[,<CLI validity>
]]]]
[...]]]
+CME ERROR: <err>

<stat>: integer type (state of the call)
0 active
1 held
2 dialing (MO call)
3 alerting (MO call)
4 incoming (MT call)
5 waiting (MT call) 

My interpretation:

0 active: call in progress (setup was successful)
1 held: call on hold
2 dialing (MO call): number dialed
3 alerting (MO call): number dialed and the called party is alerted
4 incoming (MT call): incoming call, ringtone played (AT RING notification)
5 waiting (MT call): call waiting notification while another call is active (if call waiting feature enabled)
Pawel
  • 21
  • 1