2 * Copyright (C) 2006 The Android Open Source Project
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
19 * - SMS retransmit (specifying TP-Message-ID)
26 * Supp Service Notification (+CSSN)
27 * GPRS PDP context deactivate notification
33 #define ANDROID_RIL_H 1
44 typedef void * RIL_Token;
48 RIL_E_RADIO_NOT_AVAILABLE = 1, /* If radio did not start or is resetting */
49 RIL_E_GENERIC_FAILURE = 2,
50 RIL_E_PASSWORD_INCORRECT = 3, /* for PIN/PIN2 methods only! */
51 RIL_E_SIM_PIN2 = 4, /* Operation requires SIM PIN2 to be entered */
52 RIL_E_SIM_PUK2 = 5, /* Operation requires SIM PIN2 to be entered */
53 RIL_E_REQUEST_NOT_SUPPORTED = 6,
55 RIL_E_OP_NOT_ALLOWED_DURING_VOICE_CALL = 8, /* data ops are not allowed during voice
56 call on a Class C GPRS device */
57 RIL_E_OP_NOT_ALLOWED_BEFORE_REG_TO_NW = 9, /* data ops are not allowed before device
58 registers in network */
59 RIL_E_SMS_SEND_FAIL_RETRY = 10 /* fail to send sms and need retry */
65 RIL_CALL_DIALING = 2, /* MO call only */
66 RIL_CALL_ALERTING = 3, /* MO call only */
67 RIL_CALL_INCOMING = 4, /* MT call only */
68 RIL_CALL_WAITING = 5 /* MT call only */
72 RADIO_STATE_OFF = 0, /* Radio explictly powered off (eg CFUN=0) */
73 RADIO_STATE_UNAVAILABLE = 1, /* Radio unavailable (eg, resetting or not booted) */
74 RADIO_STATE_SIM_NOT_READY = 2, /* Radio is on, but the SIM interface is not ready */
75 RADIO_STATE_SIM_LOCKED_OR_ABSENT = 3, /* SIM PIN locked, PUK required, network
76 personalization locked, or SIM absent */
77 RADIO_STATE_SIM_READY = 4 /* Radio is on and SIM interface is available */
82 int index; /* GSM Index for use with, eg, AT+CHLD */
83 int toa; /* type of address, eg 145 = intl */
84 char isMpty; /* nonzero if is mpty call */
85 char isMT; /* nonzero if call is mobile terminated */
86 char als; /* ALS line indicator if available
88 char isVoice; /* nonzero if this is is a voice call */
90 char * number; /* phone number */
91 char numberPresentation; /* 0 = Allowed,
93 2 = Not Specified/Unknown,
98 int cid; /* Context ID */
99 int active; /* nonzero if context is active */
100 char * type; /* X.25, IP, IPV6, etc. */
103 } RIL_PDP_Context_Response;
106 int messageRef; /*TP-Message-Reference*/
107 char *ackPDU; /* or NULL if n/a */
110 /** Used by RIL_REQUEST_WRITE_SMS_TO_SIM */
112 int status; /* Status of message. See TS 27.005 3.1, "<stat>": */
113 /* 0 = "REC UNREAD" */
115 /* 2 = "STO UNSENT" */
117 char * pdu; /* PDU of message to write, as a hex string. */
118 char * smsc; /* SMSC address in GSM BCD format prefixed by a length byte
119 (as expected by TS 27.005) or NULL for default SMSC */
122 /** Used by RIL_REQUEST_DIAL */
126 /* (same as 'n' paremeter in TS 27.007 7.7 "+CLIR"
127 * clir == 0 on "use subscription default value"
128 * clir == 1 on "CLIR invocation" (restrict CLI presentation)
129 * clir == 2 on "CLIR suppression" (allow CLI presentation)
135 int command; /* one of the commands listed for TS 27.007 +CRSM*/
136 int fileid; /* EF id */
137 char *path; /* "pathid" from TS 27.007 +CRSM command.
138 Path is in hex asciii format eg "7f205f70"
143 char *data; /* May be NULL*/
144 char *pin2; /* May be NULL*/
150 char *simResponse; /* In hex string format ([a-fA-F0-9]*). */
151 } RIL_SIM_IO_Response;
153 /* See also com.android.internal.telephony.gsm.CallForwardInfo */
157 * For RIL_REQUEST_QUERY_CALL_FORWARD_STATUS
158 * status 1 = active, 0 = not active
160 * For RIL_REQUEST_SET_CALL_FORWARD:
169 int reason; /* from TS 27.007 7.11 "reason" */
170 int serviceClass;/* From 27.007 +CCFC/+CLCK "class"
171 See table for Android mapping from
173 0 means user doesn't input class */
174 int toa; /* "type" from TS 27.007 7.11 */
175 char * number; /* "number" from TS 27.007 7.11. May be NULL */
176 int timeSeconds; /* for CF no reply only */
177 }RIL_CallForwardInfo;
180 char * cid; /* Cell Id (as described in TS 27.005) in 16 bits in GSM
181 * Primary Scrambling Code (as described in TS 25.331)
183 * Valid values are hexadecimal 0x0000 - 0xffff.
185 int rssi; /* Received RSSI in 2G,
186 * Level index of CPICH Received Signal Code Power in 3G
188 } RIL_NeighboringCell;
190 /* See RIL_REQUEST_LAST_CALL_FAIL_CAUSE */
192 CALL_FAIL_NORMAL = 16,
194 CALL_FAIL_CONGESTION = 34,
195 CALL_FAIL_ACM_LIMIT_EXCEEDED = 68,
196 CALL_FAIL_CALL_BARRED = 240,
197 CALL_FAIL_FDN_BLOCKED = 241,
198 CALL_FAIL_ERROR_UNSPECIFIED = 0xffff
199 } RIL_LastCallFailCause;
201 /* See RIL_REQUEST_LAST_PDP_FAIL_CAUSE */
203 PDP_FAIL_BARRED = 8, /* no retry; prompt user */
204 PDP_FAIL_BAD_APN = 27, /* no retry; prompt user */
205 PDP_FAIL_USER_AUTHENTICATION = 29, /* no retry; prompt user */
206 PDP_FAIL_SERVICE_OPTION_NOT_SUPPORTED = 32, /*no retry; prompt user */
207 PDP_FAIL_SERVICE_OPTION_NOT_SUBSCRIBED = 33, /*no retry; prompt user */
208 PDP_FAIL_ERROR_UNSPECIFIED = 0xffff /* This and all other cases: retry silently */
209 } RIL_LastPDPActivateFailCause;
211 /* Used by RIL_UNSOL_SUPP_SVC_NOTIFICATION */
213 int notificationType; /*
214 * 0 = MO intermediate result code
215 * 1 = MT unsolicited result code
217 int code; /* See 27.007 7.17
220 int index; /* CUG index. See 27.007 7.17. */
221 int type; /* "type" from 27.007 7.17 (MT only). */
222 char * number; /* "number" from 27.007 7.17
223 (MT only, may be NULL). */
224 } RIL_SuppSvcNotification;
226 /* see RIL_REQUEST_GET_SIM_STATUS */
227 #define RIL_SIM_ABSENT 0
228 #define RIL_SIM_NOT_READY 1
229 /* RIL_SIM_READY means that the radio state is RADIO_STATE_SIM_READY.
231 * than "+CPIN: READY". It also means the radio is ready for SIM I/O
233 #define RIL_SIM_READY 2
234 #define RIL_SIM_PIN 3
235 #define RIL_SIM_PUK 4
236 #define RIL_SIM_NETWORK_PERSONALIZATION 5
238 /* The result of a SIM refresh, returned in data[0] of RIL_UNSOL_SIM_REFRESH */
240 /* A file on SIM has been updated. data[1] contains the EFID. */
242 /* SIM initialized. All files should be re-read. */
244 /* SIM reset. SIM power required, SIM may be locked and all files should be re-read. */
246 } RIL_SimRefreshResult;
248 /* No restriction at all including voice/SMS/USSD/SS/AV64 and packet data. */
249 #define RIL_RESTRICTED_STATE_NONE 0x00
250 /* Block emergency call due to restriction. But allow all normal voice/SMS/USSD/SS/AV64. */
251 #define RIL_RESTRICTED_STATE_CS_EMERGENCY 0x01
252 /* Block all normal voice/SMS/USSD/SS/AV64 due to restriction. Only Emergency call allowed. */
253 #define RIL_RESTRICTED_STATE_CS_NORMAL 0x02
254 /* Block all voice/SMS/USSD/SS/AV64 including emergency call due to restriction.*/
255 #define RIL_RESTRICTED_STATE_CS_ALL 0x04
256 /* Block packet data access due to restriction. */
257 #define RIL_RESTRICTED_STATE_PS_ALL 0x10
260 * RIL_REQUEST_GET_SIM_STATUS
262 * Requests status of the SIM interface and the SIM card
266 * "response" must be an int * pointing to RIL_SIM_* constant
267 * This should always succeed (RIL_SUCCESS)
269 * If the radio is off or unavailable, return RIL_SIM_NOT_READY
271 * Please note: RIL_SIM_READY means that the radio state
272 * is RADIO_STATE_SIM_READY. This is more than "+CPIN: READY".
273 * It also means the radio is ready for SIM I/O
278 #define RIL_REQUEST_GET_SIM_STATUS 1
281 * RIL_REQUEST_ENTER_SIM_PIN
283 * Supplies SIM PIN. Only called if SIM status is RIL_SIM_PIN
285 * "data" is const char **
286 * ((const char **)data)[0] is PIN value
288 * "response" must be NULL
293 * RADIO_NOT_AVAILABLE (radio resetting)
298 #define RIL_REQUEST_ENTER_SIM_PIN 2
302 * RIL_REQUEST_ENTER_SIM_PUK
304 * Supplies SIM PUK and new PIN.
306 * "data" is const char **
307 * ((const char **)data)[0] is PUK value
308 * ((const char **)data)[1] is new PIN value
310 * "response" must be NULL
315 * RADIO_NOT_AVAILABLE (radio resetting)
321 #define RIL_REQUEST_ENTER_SIM_PUK 3
324 * RIL_REQUEST_ENTER_SIM_PIN2
326 * Supplies SIM PIN2. Only called following operation where SIM_PIN2 was
327 * returned as a a failure from a previous operation.
329 * "data" is const char **
330 * ((const char **)data)[0] is PIN2 value
332 * "response" must be NULL
337 * RADIO_NOT_AVAILABLE (radio resetting)
342 #define RIL_REQUEST_ENTER_SIM_PIN2 4
345 * RIL_REQUEST_ENTER_SIM_PUK2
347 * Supplies SIM PUK2 and new PIN2.
349 * "data" is const char **
350 * ((const char **)data)[0] is PUK2 value
351 * ((const char **)data)[1] is new PIN2 value
353 * "response" must be NULL
358 * RADIO_NOT_AVAILABLE (radio resetting)
364 #define RIL_REQUEST_ENTER_SIM_PUK2 5
367 * RIL_REQUEST_CHANGE_SIM_PIN
369 * Supplies old SIM PIN and new PIN.
371 * "data" is const char **
372 * ((const char **)data)[0] is old PIN value
373 * ((const char **)data)[1] is new PIN value
375 * "response" must be NULL
380 * RADIO_NOT_AVAILABLE (radio resetting)
383 * (old PIN is invalid)
387 #define RIL_REQUEST_CHANGE_SIM_PIN 6
391 * RIL_REQUEST_CHANGE_SIM_PIN2
393 * Supplies old SIM PIN2 and new PIN2.
395 * "data" is const char **
396 * ((const char **)data)[0] is old PIN2 value
397 * ((const char **)data)[1] is new PIN2 value
399 * "response" must be NULL
404 * RADIO_NOT_AVAILABLE (radio resetting)
407 * (old PIN2 is invalid)
411 #define RIL_REQUEST_CHANGE_SIM_PIN2 7
414 * RIL_REQUEST_ENTER_NETWORK_DEPERSONALIZATION
416 * Requests that network personlization be deactivated
418 * "data" is const char **
419 * ((const char **)(data))[0]] is network depersonlization code
421 * "response" must be NULL
426 * RADIO_NOT_AVAILABLE (radio resetting)
432 #define RIL_REQUEST_ENTER_NETWORK_DEPERSONALIZATION 8
435 * RIL_REQUEST_GET_CURRENT_CALLS
437 * Requests current call list
441 * "response" must be a "const RIL_Call **"
446 * RADIO_NOT_AVAILABLE (radio resetting)
448 * (request will be made again in a few hundred msec)
451 #define RIL_REQUEST_GET_CURRENT_CALLS 9
457 * Initiate voice call
459 * "data" is const RIL_Dial *
462 * This method is never used for supplementary service codes
466 * RADIO_NOT_AVAILABLE (radio resetting)
469 #define RIL_REQUEST_DIAL 10
472 * RIL_REQUEST_GET_IMSI
476 * Only valid when radio state is "RADIO_STATE_SIM_READY"
479 * "response" is a const char * containing the IMSI
483 * RADIO_NOT_AVAILABLE (radio resetting)
487 #define RIL_REQUEST_GET_IMSI 11
492 * Hang up a specific line (like AT+CHLD=1x)
495 * (int *)data)[0] contains GSM call index (value of 'x' in CHLD above)
501 * RADIO_NOT_AVAILABLE (radio resetting)
505 #define RIL_REQUEST_HANGUP 12
508 * RIL_REQUEST_HANGUP_WAITING_OR_BACKGROUND
510 * Hang up waiting or held (like AT+CHLD=0)
517 * RADIO_NOT_AVAILABLE (radio resetting)
521 #define RIL_REQUEST_HANGUP_WAITING_OR_BACKGROUND 13
524 * RIL_REQUEST_HANGUP_FOREGROUND_RESUME_BACKGROUND
526 * Hang up waiting or held (like AT+CHLD=1)
533 * RADIO_NOT_AVAILABLE (radio resetting)
537 #define RIL_REQUEST_HANGUP_FOREGROUND_RESUME_BACKGROUND 14
540 * RIL_REQUEST_SWITCH_WAITING_OR_HOLDING_AND_ACTIVE
542 * Switch waiting or holding call and active call (like AT+CHLD=2)
544 * State transitions should be is follows:
546 * If call 1 is waiting and call 2 is active, then if this re
549 * Call 1 Call 2 Call 1 Call 2
550 * ACTIVE HOLDING HOLDING ACTIVE
551 * ACTIVE WAITING HOLDING ACTIVE
552 * HOLDING WAITING HOLDING ACTIVE
553 * ACTIVE IDLE HOLDING IDLE
554 * IDLE IDLE IDLE IDLE
561 * RADIO_NOT_AVAILABLE (radio resetting)
565 #define RIL_REQUEST_SWITCH_WAITING_OR_HOLDING_AND_ACTIVE 15
566 #define RIL_REQUEST_SWITCH_HOLDING_AND_ACTIVE 15
569 * RIL_REQUEST_CONFERENCE
571 * Conference holding and active (like AT+CHLD=3)
578 * RADIO_NOT_AVAILABLE (radio resetting)
581 #define RIL_REQUEST_CONFERENCE 16
586 * Send UDUB (user determined used busy) to ringing or
587 * waiting call answer)(RIL_BasicRequest r);
594 * RADIO_NOT_AVAILABLE (radio resetting)
597 #define RIL_REQUEST_UDUB 17
600 * RIL_REQUEST_LAST_CALL_FAIL_CAUSE
602 * Requests the failure cause code for the most recently terminated call
605 * "response" is a "int *"
606 * ((int *)response)[0] is an integer cause code defined in TS 24.008
607 * Annex H or close approximation
609 * The implementation should return CALL_FAIL_ERROR_UNSPECIFIED for blocked
610 * MO calls by restricted state (See RIL_UNSOL_RESTRICTED_STATE_CHANGED)
612 * If the implementation does not have access to the exact cause codes,
613 * then it should return one of the values listed in RIL_LastCallFailCause,
614 * as the UI layer needs to distinguish these cases for tone generation or
615 * error notification.
619 * RADIO_NOT_AVAILABLE
622 * See also: RIL_REQUEST_LAST_PDP_FAIL_CAUSE
624 #define RIL_REQUEST_LAST_CALL_FAIL_CAUSE 18
627 * RIL_REQUEST_SIGNAL_STRENGTH
629 * Requests current signal strength and bit error rate
631 * Must succeed if radio is on.
634 * "response" is an "int *"
635 * ((int *)response)[0] is received signal strength (0-31, 99)
636 * ((int *)response)[1] is bit error rate (0-7, 99)
637 * as defined in TS 27.007 8.5
638 * Other values (eg -1) are not legal
642 * RADIO_NOT_AVAILABLE
645 #define RIL_REQUEST_SIGNAL_STRENGTH 19
647 * RIL_REQUEST_REGISTRATION_STATE
649 * Request current registration state
652 * "response" is a "char **"
653 * ((const char **)response)[0] is registration state 0-5 from TS 27.007 7.2
654 * ((const char **)response)[1] is LAC if registered or NULL if not
655 * ((const char **)response)[2] is CID if registered or NULL if not
657 * LAC and CID are in hexadecimal format.
658 * valid LAC are 0x0000 - 0xffff
659 * valid CID are 0x00000000 - 0x0fffffff
660 * In GSM, CID is Cell ID (as described in TS 27.007) in 16 bits
661 * In UMTS, CID is UMTS Cell Identity (as described in TS 25.331) in 28 bits
663 * Please note that registration state 4 ("unknown") is treated
664 * as "out of service" in the Android telephony system
668 * RADIO_NOT_AVAILABLE
671 #define RIL_REQUEST_REGISTRATION_STATE 20
674 * RIL_REQUEST_GPRS_REGISTRATION_STATE
676 * Request current GPRS registration state
679 * "response" is a "char **"
680 * ((const char **)response)[0] is registration state 0-5 from TS 27.007 7.2
681 * ((const char **)response)[1] is LAC if registered or NULL if not
682 * ((const char **)response)[2] is CID if registered or NULL if not
683 * ((const char **)response)[3] indicates the available radio technology, where:
689 * LAC and CID are in hexadecimal format.
690 * valid LAC are 0x0000 - 0xffff
691 * valid CID are 0x00000000 - 0x0fffffff
693 * Please note that registration state 4 ("unknown") is treated
694 * as "out of service" in the Android telephony system
698 * RADIO_NOT_AVAILABLE
701 #define RIL_REQUEST_GPRS_REGISTRATION_STATE 21
704 * RIL_REQUEST_OPERATOR
706 * Request current operator ONS or EONS
709 * "response" is a "const char **"
710 * ((const char **)response)[0] is long alpha ONS or EONS
711 * or NULL if unregistered
713 * ((const char **)response)[1] is short alpha ONS or EONS
714 * or NULL if unregistered
715 * ((const char **)response)[2] is 5 or 6 digit numeric code (MCC + MNC)
716 * or NULL if unregistered
720 * RADIO_NOT_AVAILABLE
723 #define RIL_REQUEST_OPERATOR 22
726 * RIL_REQUEST_RADIO_POWER
728 * Toggle radio on and off (for "airplane" mode)
730 * ((int *)data)[0] is > 0 for "Radio On"
731 * ((int *)data)[0] is == 0 for "Radio Off"
735 * Turn radio on if "on" > 0
736 * Turn radio off if "on" == 0
740 * RADIO_NOT_AVAILABLE
743 #define RIL_REQUEST_RADIO_POWER 23
750 * If the implementation is currently playing a tone requested via
751 * RIL_REQUEST_DTMF_START, that tone should be cancelled and the new tone
752 * should be played instead
755 * ((char *)data)[0] is a single character with one of 12 values: 0-9,*,#
756 * ((char *)data)[1] is a single character with one of 3 values:
757 * 'S' -- tone should be played for a short time
758 * 'L' -- tone should be played for a long time
761 * FIXME should this block/mute microphone?
762 * How does this interact with local DTMF feedback?
766 * RADIO_NOT_AVAILABLE
769 * See also: RIL_REQUEST_DTMF_STOP, RIL_REQUEST_DTMF_START
772 #define RIL_REQUEST_DTMF 24
775 * RIL_REQUEST_SEND_SMS
777 * Send an SMS message
779 * "data" is const char **
780 * ((const char **)data)[0] is SMSC address in GSM BCD format prefixed
781 * by a length byte (as expected by TS 27.005) or NULL for default SMSC
782 * ((const char **)data)[1] is SMS in PDU format as an ASCII hex string
783 * less the SMSC address
784 * TP-Layer-Length is be "strlen(((const char **)data)[1])/2"
786 * "response" is a const RIL_SMS_Response *
788 * Based on the return error, caller decides to resend if sending sms
789 * fails. SMS_SEND_FAIL_RETRY means retry (i.e. error cause is 332)
790 * and GENERIC_FAILURE means no retry (i.e. error cause is 500)
794 * RADIO_NOT_AVAILABLE
795 * SMS_SEND_FAIL_RETRY
798 * FIXME how do we specify TP-Message-Reference if we need to resend?
800 #define RIL_REQUEST_SEND_SMS 25
804 * RIL_REQUEST_SEND_SMS_EXPECT_MORE
806 * Send an SMS message. Identical to RIL_REQUEST_SEND_SMS,
807 * except that more messages are expected to be sent soon. If possible,
808 * keep SMS relay protocol link open (eg TS 27.005 AT+CMMS command)
810 * "data" is const char **
811 * ((const char **)data)[0] is SMSC address in GSM BCD format prefixed
812 * by a length byte (as expected by TS 27.005) or NULL for default SMSC
813 * ((const char **)data)[1] is SMS in PDU format as an ASCII hex string
814 * less the SMSC address
815 * TP-Layer-Length is be "strlen(((const char **)data)[1])/2"
817 * "response" is a const RIL_SMS_Response *
819 * Based on the return error, caller decides to resend if sending sms
820 * fails. SMS_SEND_FAIL_RETRY means retry (i.e. error cause is 332)
821 * and GENERIC_FAILURE means no retry (i.e. error cause is 500)
825 * RADIO_NOT_AVAILABLE
826 * SMS_SEND_FAIL_RETRY
830 #define RIL_REQUEST_SEND_SMS_EXPECT_MORE 26
834 * RIL_REQUEST_SETUP_DEFAULT_PDP
836 * Configure and activate PDP context (CID 1) for default IP connection
838 * Android Telephony layer will start up pppd process on specified
839 * tty when this request responded to.
841 * "data" is a const char **
842 * ((const char **)data)[0] is the APN to connect to
843 * ((const char **)data)[1] is the username, or NULL
844 * ((const char **)data)[2] is the password, or NULL
846 * "response" is a char **
847 * ((char **)response)[0] indicating PDP CID, which is generated by RIL
848 * ((char **)response)[1] indicating the network interface name
849 * ((char **)response)[2] indicating the IP address for this interface
851 * FIXME may need way to configure QoS settings
855 * RADIO_NOT_AVAILABLE
858 * See also: RIL_REQUEST_DEACTIVATE_DEFAULT_PDP
861 #define RIL_REQUEST_SETUP_DEFAULT_PDP 27
868 * Request SIM I/O operation.
869 * This is similar to the TS 27.007 "restricted SIM" operation
870 * where it assumes all of the EF selection will be done by the
873 * "data" is a const RIL_SIM_IO *
874 * Please note that RIL_SIM_IO has a "PIN2" field which may be NULL,
875 * or may specify a PIN2 for operations that require a PIN2 (eg
876 * updating FDN records)
878 * "response" is a const RIL_SIM_IO_Response *
880 * Arguments and responses that are unused for certain
881 * values of "command" should be ignored or set to NULL
885 * RADIO_NOT_AVAILABLE
890 #define RIL_REQUEST_SIM_IO 28
893 * RIL_REQUEST_SEND_USSD
895 * Send a USSD message
897 * If a USSD session already exists, the message should be sent in the
898 * context of that session. Otherwise, a new session should be created.
900 * The network reply should be reported via RIL_UNSOL_ON_USSD
902 * Only one USSD session may exist at a time, and the session is assumed
904 * a) The android system invokes RIL_REQUEST_CANCEL_USSD
905 * b) The implementation sends a RIL_UNSOL_ON_USSD with a type code
906 * of "0" (USSD-Notify/no further action) or "2" (session terminated)
908 * "data" is a const char * containing the USSD request in UTF-8 format
913 * RADIO_NOT_AVAILABLE
916 * See also: RIL_REQUEST_CANCEL_USSD, RIL_UNSOL_ON_USSD
919 #define RIL_REQUEST_SEND_USSD 29
922 * RIL_REQUEST_CANCEL_USSD
924 * Cancel the current USSD session if one exists
931 * RADIO_NOT_AVAILABLE
935 #define RIL_REQUEST_CANCEL_USSD 30
938 * RIL_REQUEST_GET_CLIR
940 * Gets current CLIR status
942 * "response" is int *
943 * ((int *)data)[0] is "n" parameter from TS 27.007 7.7
944 * ((int *)data)[1] is "m" parameter from TS 27.007 7.7
948 * RADIO_NOT_AVAILABLE
951 #define RIL_REQUEST_GET_CLIR 31
954 * RIL_REQUEST_SET_CLIR
957 * ((int *)data)[0] is "n" parameter from TS 27.007 7.7
963 * RADIO_NOT_AVAILABLE
966 #define RIL_REQUEST_SET_CLIR 32
969 * RIL_REQUEST_QUERY_CALL_FORWARD_STATUS
971 * "data" is const RIL_CallForwardInfo *
973 * "response" is const RIL_CallForwardInfo **
974 * "response" points to an array of RIL_CallForwardInfo *'s, one for
975 * each distinct registered phone number.
977 * For example, if data is forwarded to +18005551212 and voice is forwarded
978 * to +18005559999, then two separate RIL_CallForwardInfo's should be returned
980 * If, however, both data and voice are forwarded to +18005551212, then
981 * a single RIL_CallForwardInfo can be returned with the service class
982 * set to "data + voice = 3")
986 * RADIO_NOT_AVAILABLE
989 #define RIL_REQUEST_QUERY_CALL_FORWARD_STATUS 33
993 * RIL_REQUEST_SET_CALL_FORWARD
995 * Configure call forward rule
997 * "data" is const RIL_CallForwardInfo *
1002 * RADIO_NOT_AVAILABLE
1005 #define RIL_REQUEST_SET_CALL_FORWARD 34
1009 * RIL_REQUEST_QUERY_CALL_WAITING
1011 * Query current call waiting state
1013 * "data" is const int *
1014 * ((const int *)data)[0] is the TS 27.007 service class to query.
1015 * "response" is a const int *
1016 * ((const int *)response)[0] is 0 for "disabled" and 1 for "enabled"
1018 * If ((const int *)response)[0] is = 1, then ((const int *)response)[1]
1019 * must follow, with the TS 27.007 service class bit vector of services
1020 * for which call waiting is enabled.
1022 * For example, if ((const int *)response)[0] is 1 and
1023 * ((const int *)response)[1] is 3, then call waiting is enabled for data
1024 * and voice and disabled for everything else
1028 * RADIO_NOT_AVAILABLE
1031 #define RIL_REQUEST_QUERY_CALL_WAITING 35
1035 * RIL_REQUEST_SET_CALL_WAITING
1037 * Configure current call waiting state
1039 * "data" is const int *
1040 * ((const int *)data)[0] is 0 for "disabled" and 1 for "enabled"
1041 * ((const int *)data)[1] is the TS 27.007 service class bit vector of
1042 * services to modify
1043 * "response" is NULL
1047 * RADIO_NOT_AVAILABLE
1050 #define RIL_REQUEST_SET_CALL_WAITING 36
1053 * RIL_REQUEST_SMS_ACKNOWLEDGE
1055 * Acknowledge successful or failed receipt of SMS previously indicated
1056 * via RIL_UNSOL_RESPONSE_NEW_SMS
1059 * ((int *)data)[0] is "1" on successful receipt
1060 * (basically, AT+CNMA=1 from TS 27.005
1061 * ((int *)data)[0] is "0" on failed receipt
1062 * (basically, AT+CNMA=2 from TS 27.005)
1064 * "response" is NULL
1066 * FIXME would like request that specified RP-ACK/RP-ERROR PDU
1070 * RADIO_NOT_AVAILABLE
1073 #define RIL_REQUEST_SMS_ACKNOWLEDGE 37
1076 * RIL_REQUEST_GET_IMEI
1078 * Get the device IMEI, including check digit
1080 * Valid when RadioState is not RADIO_STATE_UNAVAILABLE
1083 * "response" is a const char * containing the IMEI
1087 * RADIO_NOT_AVAILABLE (radio resetting)
1091 #define RIL_REQUEST_GET_IMEI 38
1094 * RIL_REQUEST_GET_IMEISV
1096 * Get the device IMEISV, which should be two decimal digits
1098 * Valid when RadioState is not RADIO_STATE_UNAVAILABLE
1101 * "response" is a const char * containing the IMEISV
1105 * RADIO_NOT_AVAILABLE (radio resetting)
1109 #define RIL_REQUEST_GET_IMEISV 39
1113 * RIL_REQUEST_ANSWER
1115 * Answer incoming call
1117 * Will not be called for WAITING calls.
1118 * RIL_REQUEST_SWITCH_WAITING_OR_HOLDING_AND_ACTIVE will be used in this case
1122 * "response" is NULL
1126 * RADIO_NOT_AVAILABLE (radio resetting)
1130 #define RIL_REQUEST_ANSWER 40
1133 * RIL_REQUEST_DEACTIVATE_DEFAULT_PDP
1135 * Deactivate PDP context created by RIL_REQUEST_SETUP_DEFAULT_PDP
1137 * "data" is const char **
1138 * ((char**)data)[0] indicating PDP CID
1139 * "response" is NULL
1143 * RADIO_NOT_AVAILABLE
1146 * See also: RIL_REQUEST_SETUP_DEFAULT_PDP
1149 #define RIL_REQUEST_DEACTIVATE_DEFAULT_PDP 41
1152 * RIL_REQUEST_QUERY_FACILITY_LOCK
1154 * Query the status of a facility lock state
1156 * "data" is const char **
1157 * ((const char **)data)[0] is the facility string code from TS 27.007 7.4
1158 * (eg "AO" for BAOC, "SC" for SIM lock)
1159 * ((const char **)data)[1] is the password, or "" if not required
1160 * ((const char **)data)[2] is the TS 27.007 service class bit vector of
1163 * "response" is an int *
1164 * ((const int *)response) 0 is the TS 27.007 service class bit vector of
1165 * services for which the specified barring facility
1166 * is active. "0" means "disabled for all"
1171 * RADIO_NOT_AVAILABLE
1175 #define RIL_REQUEST_QUERY_FACILITY_LOCK 42
1178 * RIL_REQUEST_SET_FACILITY_LOCK
1180 * Enable/disable one facility lock
1182 * "data" is const char **
1184 * ((const char **)data)[0] = facility string code from TS 27.007 7.4
1185 * (eg "AO" for BAOC)
1186 * ((const char **)data)[1] = "0" for "unlock" and "1" for "lock"
1187 * ((const char **)data)[2] = password
1188 * ((const char **)data)[3] = string representation of decimal TS 27.007
1189 * service class bit vector. Eg, the string
1190 * "1" means "set this facility for voice services"
1192 * "response" is NULL
1196 * RADIO_NOT_AVAILABLE
1200 #define RIL_REQUEST_SET_FACILITY_LOCK 43
1203 * RIL_REQUEST_CHANGE_BARRING_PASSWORD
1205 * Change call barring facility password
1207 * "data" is const char **
1209 * ((const char **)data)[0] = facility string code from TS 27.007 7.4
1210 * (eg "AO" for BAOC)
1211 * ((const char **)data)[1] = old password
1212 * ((const char **)data)[2] = new password
1214 * "response" is NULL
1218 * RADIO_NOT_AVAILABLE
1222 #define RIL_REQUEST_CHANGE_BARRING_PASSWORD 44
1225 * RIL_REQUEST_QUERY_NETWORK_SELECTION_MODE
1227 * Query current network selectin mode
1231 * "response" is int *
1232 * ((const int *)response)[0] is
1233 * 0 for automatic selection
1234 * 1 for manual selection
1238 * RADIO_NOT_AVAILABLE
1242 #define RIL_REQUEST_QUERY_NETWORK_SELECTION_MODE 45
1245 * RIL_REQUEST_SET_NETWORK_SELECTION_AUTOMATIC
1247 * Specify that the network should be selected automatically
1250 * "response" is NULL
1252 * This request must not respond until the new operator is selected
1257 * RADIO_NOT_AVAILABLE
1261 #define RIL_REQUEST_SET_NETWORK_SELECTION_AUTOMATIC 46
1264 * RIL_REQUEST_SET_NETWORK_SELECTION_MANUAL
1266 * Manually select a specified network.
1268 * The radio baseband/RIL implementation is expected to fall back to
1269 * automatic selection mode if the manually selected network should go
1270 * out of range in the future.
1272 * "data" is const char * specifying MCCMNC of network to select (eg "310170")
1273 * "response" is NULL
1275 * This request must not respond until the new operator is selected
1280 * RADIO_NOT_AVAILABLE
1284 #define RIL_REQUEST_SET_NETWORK_SELECTION_MANUAL 47
1287 * RIL_REQUEST_QUERY_AVAILABLE_NETWORKS
1289 * Scans for available networks
1292 * "response" is const char ** that should be an array of n*4 strings, where
1293 * n is the number of available networks
1294 * For each available network:
1296 * ((const char **)response)[n+0] is long alpha ONS or EONS
1297 * ((const char **)response)[n+1] is short alpha ONS or EONS
1298 * ((const char **)response)[n+2] is 5 or 6 digit numeric code (MCC + MNC)
1299 * ((const char **)response)[n+3] is a string value of the status:
1305 * This request must not respond until the new operator is selected
1310 * RADIO_NOT_AVAILABLE
1314 #define RIL_REQUEST_QUERY_AVAILABLE_NETWORKS 48
1317 * RIL_REQUEST_DTMF_START
1319 * Start playing a DTMF tone. Continue playing DTMF tone until
1320 * RIL_REQUEST_DTMF_STOP is received
1322 * If a RIL_REQUEST_DTMF_START is received while a tone is currently playing,
1323 * it should cancel the previous tone and play the new one.
1325 * "data" is a char *
1326 * ((char *)data)[0] is a single character with one of 12 values: 0-9,*,#
1327 * "response" is NULL
1331 * RADIO_NOT_AVAILABLE
1334 * See also: RIL_REQUEST_DTMF, RIL_REQUEST_DTMF_STOP
1336 #define RIL_REQUEST_DTMF_START 49
1339 * RIL_REQUEST_DTMF_STOP
1341 * Stop playing a currently playing DTMF tone.
1344 * "response" is NULL
1348 * RADIO_NOT_AVAILABLE
1351 * See also: RIL_REQUEST_DTMF, RIL_REQUEST_DTMF_START
1353 #define RIL_REQUEST_DTMF_STOP 50
1356 * RIL_REQUEST_BASEBAND_VERSION
1358 * Return string value indicating baseband version, eg
1359 * response from AT+CGMR
1362 * "response" is const char * containing version string for log reporting
1366 * RADIO_NOT_AVAILABLE
1370 #define RIL_REQUEST_BASEBAND_VERSION 51
1373 * RIL_REQUEST_SEPARATE_CONNECTION
1375 * Separate a party from a multiparty call placing the multiparty call
1376 * (less the specified party) on hold and leaving the specified party
1377 * as the only other member of the current (active) call
1381 * See TS 22.084 1.3.8.2 (iii)
1382 * TS 22.030 6.5.5 "Entering "2X followed by send"
1383 * TS 27.007 "AT+CHLD=2x"
1385 * "data" is an int *
1386 * (int *)data)[0] contains GSM call index (value of 'x' in CHLD above)
1387 * "response" is NULL
1391 * RADIO_NOT_AVAILABLE (radio resetting)
1394 #define RIL_REQUEST_SEPARATE_CONNECTION 52
1398 * RIL_REQUEST_SET_MUTE
1400 * Turn on or off uplink (microphone) mute.
1402 * Will only be sent while voice call is active.
1403 * Will always be reset to "disable mute" when a new voice call is initiated
1405 * "data" is an int *
1406 * (int *)data)[0] is 1 for "enable mute" and 0 for "disable mute"
1408 * "response" is NULL
1412 * RADIO_NOT_AVAILABLE (radio resetting)
1416 #define RIL_REQUEST_SET_MUTE 53
1419 * RIL_REQUEST_GET_MUTE
1421 * Queries the current state of the uplink mute setting
1424 * "response" is an int *
1425 * (int *)response)[0] is 1 for "mute enabled" and 0 for "mute disabled"
1429 * RADIO_NOT_AVAILABLE (radio resetting)
1433 #define RIL_REQUEST_GET_MUTE 54
1436 * RIL_REQUEST_QUERY_CLIP
1438 * Queries the status of the CLIP supplementary service
1440 * (for MMI code "*#30#")
1443 * "response" is an int *
1444 * (int *)response)[0] is 1 for "CLIP provisioned"
1445 * and 0 for "CLIP not provisioned"
1446 * and 2 for "unknown, e.g. no network etc"
1450 * RADIO_NOT_AVAILABLE (radio resetting)
1454 #define RIL_REQUEST_QUERY_CLIP 55
1457 * RIL_REQUEST_LAST_PDP_FAIL_CAUSE
1459 * Requests the failure cause code for the most recently failed PDP
1464 * "response" is a "int *"
1465 * ((int *)response)[0] is an integer cause code defined in TS 24.008
1466 * section 6.1.3.1.3 or close approximation
1468 * If the implementation does not have access to the exact cause codes,
1469 * then it should return one of the values listed in
1470 * RIL_LastPDPActivateFailCause, as the UI layer needs to distinguish these
1471 * cases for error notification
1472 * and potential retries.
1476 * RADIO_NOT_AVAILABLE
1479 * See also: RIL_REQUEST_LAST_CALL_FAIL_CAUSE
1483 #define RIL_REQUEST_LAST_PDP_FAIL_CAUSE 56
1486 * RIL_REQUEST_PDP_CONTEXT_LIST
1488 * Queries the status of PDP contexts, returning for each
1489 * its CID, whether or not it is active, and its PDP type,
1490 * APN, and PDP adddress.
1493 * "response" is an array of RIL_PDP_Context_Response
1497 * RADIO_NOT_AVAILABLE (radio resetting)
1501 #define RIL_REQUEST_PDP_CONTEXT_LIST 57
1504 * RIL_REQUEST_RESET_RADIO
1506 * Request a radio reset. The RIL implementation may postpone
1507 * the reset until after this request is responded to if the baseband
1508 * is presently busy.
1511 * "response" is NULL
1513 * The reset action could be delayed for a while
1514 * in case baseband modem is just busy.
1518 * RADIO_NOT_AVAILABLE (radio resetting)
1522 #define RIL_REQUEST_RESET_RADIO 58
1525 * RIL_REQUEST_OEM_HOOK_RAW
1527 * This request reserved for OEM-specific uses. It passes raw byte arrays
1530 * It can be invoked on the Java side from
1531 * com.android.internal.telephony.Phone.invokeOemRilRequestRaw()
1533 * "data" is a char * of bytes copied from the byte[] data argument in java
1534 * "response" is a char * of bytes that will returned via the
1535 * caller's "response" Message here:
1536 * (byte[])(((AsyncResult)response.obj).result)
1538 * An error response here will result in
1539 * (((AsyncResult)response.obj).result) == null and
1540 * (((AsyncResult)response.obj).exception) being an instance of
1541 * com.android.internal.telephony.gsm.CommandException
1547 #define RIL_REQUEST_OEM_HOOK_RAW 59
1550 * RIL_REQUEST_OEM_HOOK_STRINGS
1552 * This request reserved for OEM-specific uses. It passes strings
1555 * It can be invoked on the Java side from
1556 * com.android.internal.telephony.Phone.invokeOemRilRequestStrings()
1558 * "data" is a const char **, representing an array of null-terminated UTF-8
1559 * strings copied from the "String[] strings" argument to
1560 * invokeOemRilRequestStrings()
1562 * "response" is a const char **, representing an array of null-terminated UTF-8
1563 * stings that will be returned via the caller's response message here:
1565 * (String[])(((AsyncResult)response.obj).result)
1567 * An error response here will result in
1568 * (((AsyncResult)response.obj).result) == null and
1569 * (((AsyncResult)response.obj).exception) being an instance of
1570 * com.android.internal.telephony.gsm.CommandException
1576 #define RIL_REQUEST_OEM_HOOK_STRINGS 60
1579 * RIL_REQUEST_SCREEN_STATE
1581 * Indicates the current state of the screen. When the screen is off, the
1582 * RIL should notify the baseband to suppress certain notifications (eg,
1583 * signal strength and changes in LAC or CID) in an effort to conserve power.
1584 * These notifications should resume when the screen is on.
1587 * ((int *)data)[0] is == 1 for "Screen On"
1588 * ((int *)data)[0] is == 0 for "Screen Off"
1590 * "response" is NULL
1596 #define RIL_REQUEST_SCREEN_STATE 61
1600 * RIL_REQUEST_SET_SUPP_SVC_NOTIFICATION
1602 * Enables/disables supplementary service related notifications
1605 * Notifications are reported via RIL_UNSOL_SUPP_SVC_NOTIFICATION.
1608 * ((int *)data)[0] is == 1 for notifications enabled
1609 * ((int *)data)[0] is == 0 for notifications disabled
1611 * "response" is NULL
1615 * RADIO_NOT_AVAILABLE
1618 * See also: RIL_UNSOL_SUPP_SVC_NOTIFICATION.
1620 #define RIL_REQUEST_SET_SUPP_SVC_NOTIFICATION 62
1623 * RIL_REQUEST_WRITE_SMS_TO_SIM
1625 * Stores a SMS message to SIM memory.
1627 * "data" is RIL_SMS_WriteArgs *
1629 * "response" is int *
1630 * ((const int *)response)[0] is the record index where the message is stored.
1637 #define RIL_REQUEST_WRITE_SMS_TO_SIM 63
1640 * RIL_REQUEST_DELETE_SMS_ON_SIM
1642 * Deletes a SMS message from SIM memory.
1645 * ((int *)data)[0] is the record index of the message to delete.
1647 * "response" is NULL
1654 #define RIL_REQUEST_DELETE_SMS_ON_SIM 64
1657 * RIL_REQUEST_SET_BAND_MODE
1659 * Assign a specified band for RF configuration.
1662 * ((int *)data)[0] is == 0 for "unspecified" (selected by baseband automatically)
1663 * ((int *)data)[0] is == 1 for "EURO band" (GSM-900 / DCS-1800 / WCDMA-IMT-2000)
1664 * ((int *)data)[0] is == 2 for "US band" (GSM-850 / PCS-1900 / WCDMA-850 / WCDMA-PCS-1900)
1665 * ((int *)data)[0] is == 3 for "JPN band" (WCDMA-800 / WCDMA-IMT-2000)
1666 * ((int *)data)[0] is == 4 for "AUS band" (GSM-900 / DCS-1800 / WCDMA-850 / WCDMA-IMT-2000)
1667 * ((int *)data)[0] is == 5 for "AUS band 2" (GSM-900 / DCS-1800 / WCDMA-850)
1669 * "response" is NULL
1673 * RADIO_NOT_AVAILABLE
1676 #define RIL_REQUEST_SET_BAND_MODE 65
1679 * RIL_REQUEST_QUERY_AVAILABLE_BAND_MODE
1681 * Query the list of band mode supported by RF.
1685 * "response" is int *
1686 * "response" points to an array of int's, the int[0] is the size of array, reset is one for
1687 * each available band mode.
1689 * 0 for "unspecified" (selected by baseband automatically)
1690 * 1 for "EURO band" (GSM-900 / DCS-1800 / WCDMA-IMT-2000)
1691 * 2 for "US band" (GSM-850 / PCS-1900 / WCDMA-850 / WCDMA-PCS-1900)
1692 * 3 for "JPN band" (WCDMA-800 / WCDMA-IMT-2000)
1693 * 4 for "AUS band" (GSM-900 / DCS-1800 / WCDMA-850 / WCDMA-IMT-2000)
1694 * 5 for "AUS band 2" (GSM-900 / DCS-1800 / WCDMA-850)
1698 * RADIO_NOT_AVAILABLE
1701 * See also: RIL_REQUEST_SET_BAND_MODE
1703 #define RIL_REQUEST_QUERY_AVAILABLE_BAND_MODE 66
1706 * RIL_REQUEST_STK_GET_PROFILE
1708 * Requests the profile of SIM tool kit.
1709 * The profile indicates the SAT/USAT features supported by ME.
1710 * The SAT/USAT features refer to 3GPP TS 11.14 and 3GPP TS 31.111
1714 * "response" is a const char * containing SAT/USAT profile
1715 * in hexadecimal format string starting with first byte of terminal profile
1719 * RIL_E_RADIO_NOT_AVAILABLE (radio resetting)
1720 * RIL_E_GENERIC_FAILURE
1722 #define RIL_REQUEST_STK_GET_PROFILE 67
1725 * RIL_REQUEST_STK_SET_PROFILE
1727 * Download the STK terminal profile as part of SIM initialization
1730 * "data" is a const char * containing SAT/USAT profile
1731 * in hexadecimal format string starting with first byte of terminal profile
1733 * "response" is NULL
1737 * RIL_E_RADIO_NOT_AVAILABLE (radio resetting)
1738 * RIL_E_GENERIC_FAILURE
1740 #define RIL_REQUEST_STK_SET_PROFILE 68
1743 * RIL_REQUEST_STK_SEND_ENVELOPE_COMMAND
1745 * Requests to send a SAT/USAT envelope command to SIM.
1746 * The SAT/USAT envelope command refers to 3GPP TS 11.14 and 3GPP TS 31.111
1748 * "data" is a const char * containing SAT/USAT command
1749 * in hexadecimal format string starting with command tag
1751 * "response" is a const char * containing SAT/USAT response
1752 * in hexadecimal format string starting with first byte of response
1757 * RIL_E_RADIO_NOT_AVAILABLE (radio resetting)
1758 * RIL_E_GENERIC_FAILURE
1760 #define RIL_REQUEST_STK_SEND_ENVELOPE_COMMAND 69
1763 * RIL_REQUEST_STK_SEND_TERMINAL_RESPONSE
1765 * Requests to send a terminal response to SIM for a received
1768 * "data" is a const char * containing SAT/USAT response
1769 * in hexadecimal format string starting with first byte of response data
1771 * "response" is NULL
1775 * RIL_E_RADIO_NOT_AVAILABLE (radio resetting)
1776 * RIL_E_GENERIC_FAILURE
1778 #define RIL_REQUEST_STK_SEND_TERMINAL_RESPONSE 70
1781 * RIL_REQUEST_STK_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM
1783 * When STK application gets RIL_UNSOL_STK_CALL_SETUP, the call actually has
1784 * been initialized by ME already. (We could see the call has been in the 'call
1785 * list') So, STK application needs to accept/reject the call according as user
1789 * ((int *)data)[0] is > 0 for "accept" the call setup
1790 * ((int *)data)[0] is == 0 for "reject" the call setup
1792 * "response" is NULL
1796 * RIL_E_RADIO_NOT_AVAILABLE (radio resetting)
1797 * RIL_E_GENERIC_FAILURE
1799 #define RIL_REQUEST_STK_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM 71
1802 * RIL_REQUEST_EXPLICIT_CALL_TRANSFER
1804 * Connects the two calls and disconnects the subscriber from both calls.
1807 * "response" is NULL
1811 * RADIO_NOT_AVAILABLE (radio resetting)
1814 #define RIL_REQUEST_EXPLICIT_CALL_TRANSFER 72
1817 * RIL_REQUEST_SET_PREFERRED_NETWORK_TYPE
1819 * Requests to set the preferred network type for searching and registering
1820 * (CS/PS domain, RAT, and operation mode)
1823 * ((int *)data)[0] is == 0 for WCDMA preferred (auto mode)
1824 * ((int *)data)[0] is == 1 for GSM only
1825 * ((int *)data)[0] is == 2 for WCDMA only
1827 * "response" is NULL
1831 * RIL_E_RADIO_NOT_AVAILABLE (radio resetting)
1832 * RIL_E_GENERIC_FAILURE
1834 #define RIL_REQUEST_SET_PREFERRED_NETWORK_TYPE 73
1837 * RIL_REQUEST_GET_PREFERRED_NETWORK_TYPE
1839 * Query the preferred network type (CS/PS domain, RAT, and operation mode)
1840 * for searching and registering
1844 * "response" is int *
1845 * ((int *)response)[0] is == 0 for WCDMA preferred (auto mode)
1846 * ((int *)response)[0] is == 1 for GSM only
1847 * ((int *)response)[0] is == 2 for WCDMA only
1851 * RADIO_NOT_AVAILABLE
1854 * See also: RIL_REQUEST_SET_PREFERRED_NETWORK_TYPE
1856 #define RIL_REQUEST_GET_PREFERRED_NETWORK_TYPE 74
1859 * RIL_REQUEST_NEIGHBORING_CELL_IDS
1861 * Request neighboring cell id in GSM network
1864 * "response" must be a " const RIL_NeighboringCell** "
1868 * RADIO_NOT_AVAILABLE
1871 #define RIL_REQUEST_GET_NEIGHBORING_CELL_IDS 75
1874 * RIL_REQUEST_SET_LOCATION_UPDATES
1876 * Enables/disables network state change notifications due to changes in
1877 * LAC and/or CID (basically, +CREG=2 vs. +CREG=1).
1879 * Note: The RIL implementation should default to "updates enabled"
1880 * when the screen is on and "updates disabled" when the screen is off.
1883 * ((int *)data)[0] is == 1 for updates enabled (+CREG=2)
1884 * ((int *)data)[0] is == 0 for updates disabled (+CREG=1)
1886 * "response" is NULL
1890 * RADIO_NOT_AVAILABLE
1893 * See also: RIL_REQUEST_SCREEN_STATE, RIL_UNSOL_RESPONSE_NETWORK_STATE_CHANGED
1895 #define RIL_REQUEST_SET_LOCATION_UPDATES 76
1897 /***********************************************************************/
1899 #define RIL_UNSOL_RESPONSE_BASE 1000
1902 * RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED
1904 * Indicate when value of RIL_RadioState has changed.
1906 * Callee will invoke RIL_RadioStateRequest method on main thread
1911 #define RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED 1000
1915 * RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED
1917 * Indicate when call state has changed
1919 * Callee will invoke RIL_REQUEST_GET_CURRENT_CALLS on main thread
1923 * Response should be invoked on, for example,
1924 * "RING", "BUSY", "NO CARRIER", and also call state
1925 * transitions (DIALING->ALERTING ALERTING->ACTIVE)
1927 * Redundent or extraneous invocations are tolerated
1929 #define RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED 1001
1933 * RIL_UNSOL_RESPONSE_NETWORK_STATE_CHANGED
1935 * Called when network state, operator name, or GPRS state has changed
1936 * Basically on, +CREG and +CGREG
1938 * Callee will invoke the following requests on main thread:
1940 * RIL_REQUEST_REGISTRATION_STATE
1941 * RIL_REQUEST_GPRS_REGISTRATION_STATE
1942 * RIL_REQUEST_OPERATOR
1946 * FIXME should this happen when SIM records are loaded? (eg, for
1949 #define RIL_UNSOL_RESPONSE_NETWORK_STATE_CHANGED 1002
1952 * RIL_UNSOL_RESPONSE_NEW_SMS
1954 * Called when new SMS is received.
1956 * "data" is const char *
1957 * This is a pointer to a string containing the PDU of an SMS-DELIVER
1958 * as an ascii string of hex digits. The PDU starts with the SMSC address
1959 * per TS 27.005 (+CMT:)
1961 * Callee will subsequently confirm the receipt of thei SMS with a
1962 * RIL_REQUEST_SMS_ACKNOWLEDGE
1964 * No new RIL_UNSOL_RESPONSE_NEW_SMS
1965 * or RIL_UNSOL_RESPONSE_NEW_SMS_STATUS_REPORT messages should be sent until a
1966 * RIL_REQUEST_SMS_ACKNOWLEDGE has been received
1969 #define RIL_UNSOL_RESPONSE_NEW_SMS 1003
1972 * RIL_UNSOL_RESPONSE_NEW_SMS_STATUS_REPORT
1974 * Called when new SMS Status Report is received.
1976 * "data" is const char *
1977 * This is a pointer to a string containing the PDU of an SMS-STATUS-REPORT
1978 * as an ascii string of hex digits. The PDU starts with the SMSC address
1979 * per TS 27.005 (+CDS:).
1981 * Callee will subsequently confirm the receipt of the SMS with a
1982 * RIL_REQUEST_SMS_ACKNOWLEDGE
1984 * No new RIL_UNSOL_RESPONSE_NEW_SMS
1985 * or RIL_UNSOL_RESPONSE_NEW_SMS_STATUS_REPORT messages should be sent until a
1986 * RIL_REQUEST_SMS_ACKNOWLEDGE has been received
1989 #define RIL_UNSOL_RESPONSE_NEW_SMS_STATUS_REPORT 1004
1992 * RIL_UNSOL_RESPONSE_NEW_SMS_ON_SIM
1994 * Called when new SMS has been stored on SIM card
1996 * "data" is const int *
1997 * ((const int *)data)[0] contains the slot index on the SIM that contains
2001 #define RIL_UNSOL_RESPONSE_NEW_SMS_ON_SIM 1005
2006 * Called when a new USSD message is received.
2008 * "data" is const char **
2009 * ((const char **)data)[0] points to a type code, which is
2010 * one of these string values:
2011 * "0" USSD-Notify -- text in ((const char **)data)[1]
2012 * "1" USSD-Request -- text in ((const char **)data)[1]
2013 * "2" Session terminated by network
2014 * "3" other local client (eg, SIM Toolkit) has responded
2015 * "4" Operation not supported
2016 * "5" Network timeout
2018 * The USSD session is assumed to persist if the type code is "1", otherwise
2019 * the current session (if any) is assumed to have terminated.
2021 * ((const char **)data)[1] points to a message string if applicable, which
2022 * should always be in UTF-8.
2024 #define RIL_UNSOL_ON_USSD 1006
2025 /* Previously #define RIL_UNSOL_ON_USSD_NOTIFY 1006 */
2028 * RIL_UNSOL_ON_USSD_REQUEST
2030 * Obsolete. Send via RIL_UNSOL_ON_USSD
2032 #define RIL_UNSOL_ON_USSD_REQUEST 1007
2036 * RIL_UNSOL_NITZ_TIME_RECEIVED
2038 * Called when radio has received a NITZ time message
2040 * "data" is const char * pointing to NITZ time string
2041 * in the form "yy/mm/dd,hh:mm:ss(+/-)tz,dt"
2043 #define RIL_UNSOL_NITZ_TIME_RECEIVED 1008
2046 * RIL_UNSOL_SIGNAL_STRENGTH
2048 * Radio may report signal strength rather han have it polled.
2050 * "data" is an "int *"
2051 * ((int *)response)[0] is received signal strength (0-31, 99)
2052 * ((int *)response)[1] is bit error rate (0-7, 99)
2053 * as defined in TS 27.007 8.5
2054 * Other values (eg -1) are not legal
2056 #define RIL_UNSOL_SIGNAL_STRENGTH 1009
2060 * RIL_UNSOL_PDP_CONTEXT_LIST_CHANGED
2062 * Indicate a PDP context state has changed, or a new context
2063 * has been activated or deactivated
2065 * "data" is an array of RIL_PDP_Context_Response identical to that
2066 * returned by RIL_REQUEST_PDP_CONTEXT_LIST
2068 * See also: RIL_REQUEST_PDP_CONTEXT_LIST
2071 #define RIL_UNSOL_PDP_CONTEXT_LIST_CHANGED 1010
2074 * RIL_UNSOL_SUPP_SVC_NOTIFICATION
2076 * Reports supplementary service related notification from the network.
2078 * "data" is a const RIL_SuppSvcNotification *
2082 #define RIL_UNSOL_SUPP_SVC_NOTIFICATION 1011
2085 * RIL_UNSOL_STK_SESSION_END
2087 * Indicate when STK session is terminated by SIM.
2091 #define RIL_UNSOL_STK_SESSION_END 1012
2094 * RIL_UNSOL_STK_PROACTIVE_COMMAND
2096 * Indicate when SIM issue a STK proactive command to applications
2098 * "data" is a const char * containing SAT/USAT proactive command
2099 * in hexadecimal format string starting with command tag
2102 #define RIL_UNSOL_STK_PROACTIVE_COMMAND 1013
2105 * RIL_UNSOL_STK_EVENT_NOTIFY
2107 * Indicate when SIM notifies applcations some event happens.
2108 * Generally, application does not need to have any feedback to
2109 * SIM but shall be able to indicate appropriate messages to users.
2111 * "data" is a const char * containing SAT/USAT commands or responses
2112 * sent by ME to SIM or commands handled by ME, in hexadecimal format string
2113 * starting with first byte of response data or command tag
2116 #define RIL_UNSOL_STK_EVENT_NOTIFY 1014
2119 * RIL_UNSOL_STK_CALL_SETUP
2121 * Indicate when SIM wants application to setup a voice call.
2123 * "data" is const int *
2124 * ((const int *)data)[0] contains timeout value (in milliseconds)
2126 #define RIL_UNSOL_STK_CALL_SETUP 1015
2129 * RIL_UNSOL_SIM_SMS_STORAGE_FULL
2131 * Indicates that SMS storage on the SIM is full. Sent when the network
2132 * attempts to deliver a new SMS message. Messages cannot be saved on the
2133 * SIM until space is freed. In particular, incoming Class 2 messages
2139 #define RIL_UNSOL_SIM_SMS_STORAGE_FULL 1016
2142 * RIL_UNSOL_SIM_REFRESH
2144 * Indicates that file(s) on the SIM have been updated, or the SIM
2145 * has been reinitialized.
2147 * "data" is an int *
2148 * ((int *)data)[0] is a RIL_SimRefreshResult.
2149 * ((int *)data)[1] is the EFID of the updated file if the result is
2150 * SIM_FILE_UPDATE or NULL for any other result.
2152 * Note: If the radio state changes as a result of the SIM refresh (eg,
2153 * SIM_READY -> SIM_LOCKED_OR_ABSENT), RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED
2156 #define RIL_UNSOL_SIM_REFRESH 1017
2159 * RIL_UNSOL_CALL_RING
2161 * Ring indication for an incoming call (eg, RING or CRING event).
2165 #define RIL_UNSOL_CALL_RING 1018
2169 * Import four CDMA notifications 1019 - 1022. Need fix when do real CDMA merge.
2173 * RIL_UNSOL_RESPONSE_SIM_STATUS_CHANGED
2175 * Indicates that SIM state changes.
2177 * Callee will invoke RIL_REQUEST_GET_SIM_STATUS on main thread
2180 #define RIL_UNSOL_RESPONSE_SIM_STATUS_CHANGED 1019
2183 * RIL_UNSOL_RESPONSE_CDMA_NEW_SMS
2185 * Called when new CDMA SMS is received
2187 * "data" is const RIL_CDMA_SMS_Message *
2189 * Callee will subsequently confirm the receipt of the SMS with
2190 * a RIL_REQUEST_CDMA_SMS_ACKNOWLEDGE
2192 * No new RIL_UNSOL_RESPONSE_CDMA_NEW_SMS should be sent until
2193 * RIL_REQUEST_CDMA_SMS_ACKNOWLEDGE has been received
2195 #define RIL_UNSOL_RESPONSE_CDMA_NEW_SMS 1020
2198 * RIL_UNSOL_RESPONSE_NEW_BROADCAST_SMS
2200 * Called when new Broadcast SMS is received
2202 * "data" is const char * of 88 bytes which indicates each page
2203 * of a CBS Message sent to the MS by the BTS as coded in 3GPP
2204 * 23.041 Section 9.4.1.1
2206 #define RIL_UNSOL_RESPONSE_NEW_BROADCAST_SMS 1021
2209 * RIL_UNSOL_CDMA_RUIM_SMS_STORAGE_FULL
2211 * Indicates that SMS storage on the RUIM is full. Messages
2212 * cannot be saved on the RUIM until space is freed.
2216 #define RIL_UNSOL_CDMA_RUIM_SMS_STORAGE_FULL 1022
2219 * RIL_UNSOL_RESTRICTED_STATE_CHANGED
2221 * Indicates a restricted state change (eg, for Domain Specific Access Control).
2223 * Radio need send this msg after radio off/on cycle no matter it is changed or not.
2225 * "data" is an int *
2226 * ((int *)data)[0] contains a bitmask of RIL_RESTRICTED_STATE_* values.
2228 #define RIL_UNSOL_RESTRICTED_STATE_CHANGED 1023
2232 /***********************************************************************/
2236 * RIL_Request Function pointer
2238 * @param request is one of RIL_REQUEST_*
2239 * @param data is pointer to data defined for that RIL_REQUEST_*
2240 * data is owned by caller, and should not be modified or freed by callee
2241 * @param t should be used in subsequent call to RIL_onResponse
2242 * @param datalen the length of data
2245 typedef void (*RIL_RequestFunc) (int request, void *data,
2246 size_t datalen, RIL_Token t);
2249 * This function should return the current radio state synchronously
2251 typedef RIL_RadioState (*RIL_RadioStateRequest)();
2254 * This function returns "1" if the specified RIL_REQUEST code is
2255 * supported and 0 if it is not
2257 * @param requestCode is one of RIL_REQUEST codes
2260 typedef int (*RIL_Supports)(int requestCode);
2263 * This function is called from a separate thread--not the
2264 * thread that calls RIL_RequestFunc--and indicates that a pending
2265 * request should be cancelled.
2267 * On cancel, the callee should do its best to abandon the request and
2268 * call RIL_onRequestComplete with RIL_Errno CANCELLED at some later point.
2270 * Subsequent calls to RIL_onRequestComplete for this request with
2271 * other results will be tolerated but ignored. (That is, it is valid
2272 * to ignore the cancellation request)
2274 * RIL_Cancel calls should return immediately, and not wait for cancellation
2276 * Please see ITU v.250 5.6.1 for how one might implement this on a TS 27.007
2279 * @param t token wants to be canceled
2282 typedef void (*RIL_Cancel)(RIL_Token t);
2284 typedef void (*RIL_TimedCallback) (void *param);
2287 * Return a version string for your RIL implementation
2289 typedef const char * (*RIL_GetVersion) (void);
2292 int version; /* set to RIL_VERSION */
2293 RIL_RequestFunc onRequest;
2294 RIL_RadioStateRequest onStateRequest;
2295 RIL_Supports supports;
2296 RIL_Cancel onCancel;
2297 RIL_GetVersion getVersion;
2298 } RIL_RadioFunctions;
2303 * "t" is parameter passed in on previous call to RIL_Notification
2306 * If "e" != SUCCESS, then response can be null/is ignored
2308 * "response" is owned by caller, and should not be modified or
2311 * RIL_onRequestComplete will return as soon as possible
2313 void (*OnRequestComplete)(RIL_Token t, RIL_Errno e,
2314 void *response, size_t responselen);
2317 * "unsolResponse" is one of RIL_UNSOL_RESPONSE_*
2318 * "data" is pointer to data defined for that RIL_UNSOL_RESPONSE_*
2320 * "data" is owned by caller, and should not be modified or freed by callee
2323 void (*OnUnsolicitedResponse)(int unsolResponse, const void *data,
2327 * Call user-specifed "callback" function on on the same thread that
2328 * RIL_RequestFunc is called. If "relativeTime" is specified, then it specifies
2329 * a relative time value at which the callback is invoked. If relativeTime is
2330 * NULL or points to a 0-filled structure, the callback will be invoked as
2334 void (*RequestTimedCallback) (RIL_TimedCallback callback,
2335 void *param, const struct timeval *relativeTime);
2340 * RIL implementations must defined RIL_Init
2341 * argc and argv will be command line arguments intended for the RIL implementation
2342 * Return NULL on error
2344 * @param env is environment point defined as RIL_Env
2345 * @param argc number of arguments
2346 * @param argv list fo arguments
2349 const RIL_RadioFunctions *RIL_Init(const struct RIL_Env *env, int argc, char **argv);
2351 #else /* RIL_SHLIB */
2354 * Call this once at startup to register notification routine
2356 * @param callbacks user-specifed callback function
2358 void RIL_register (const RIL_RadioFunctions *callbacks);
2363 * RIL_onRequestComplete will return as soon as possible
2365 * @param t is parameter passed in on previous call to RIL_Notification
2367 * @param e error code
2368 * if "e" != SUCCESS, then response can be null/is ignored
2369 * @param response is owned by caller, and should not be modified or
2371 * @param responselen the length of response in byte
2373 void RIL_onRequestComplete(RIL_Token t, RIL_Errno e,
2374 void *response, size_t responselen);
2377 * @param unsolResponse is one of RIL_UNSOL_RESPONSE_*
2378 * @param data is pointer to data defined for that RIL_UNSOL_RESPONSE_*
2379 * "data" is owned by caller, and should not be modified or freed by callee
2380 * @param datalen the length of data in byte
2383 void RIL_onUnsolicitedResponse(int unsolResponse, const void *data,
2388 * Call user-specifed "callback" function on on the same thread that
2389 * RIL_RequestFunc is called. If "relativeTime" is specified, then it specifies
2390 * a relative time value at which the callback is invoked. If relativeTime is
2391 * NULL or points to a 0-filled structure, the callback will be invoked as
2394 * @param callback user-specifed callback function
2395 * @param param parameter list
2396 * @param relativeTime a relative time value at which the callback is invoked
2399 void RIL_requestTimedCallback (RIL_TimedCallback callback,
2400 void *param, const struct timeval *relativeTime);
2403 #endif /* RIL_SHLIB */
2409 #endif /*ANDROID_RIL_H*/