ril.h
上传用户:rftzhifu
上传日期:2017-02-21
资源大小:229k
文件大小:60k
源码类别:

android开发

开发平台:

Unix_Linux

  1. /*
  2.  * Copyright (C) 2006 The Android Open Source Project
  3.  *
  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
  7.  *
  8.  *      http://www.apache.org/licenses/LICENSE-2.0
  9.  *
  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.
  15.  */
  16. /*
  17.  * ISSUES:
  18.  * - SMS retransmit (specifying TP-Message-ID)
  19.  *
  20.  */
  21. /**
  22.  * TODO
  23.  *
  24.  * Supp Service Notification (+CSSN)
  25.  * GPRS PDP context deactivate notification
  26.  *  
  27.  */
  28. #ifndef ANDROID_RIL_H 
  29. #define ANDROID_RIL_H 1
  30. #include <stdlib.h>
  31. #include <sys/time.h>
  32. #ifdef __cplusplus
  33. extern "C" {
  34. #endif
  35. #define RIL_VERSION 2
  36. typedef void * RIL_Token;
  37. typedef enum {
  38.     RIL_E_SUCCESS = 0,
  39.     RIL_E_RADIO_NOT_AVAILABLE = 1,     /* If radio did not start or is resetting */
  40.     RIL_E_GENERIC_FAILURE = 2,
  41.     RIL_E_PASSWORD_INCORRECT = 3,      /* for PIN/PIN2 methods only! */
  42.     RIL_E_SIM_PIN2 = 4,                /* Operation requires SIM PIN2 to be entered */
  43.     RIL_E_SIM_PUK2 = 5,                /* Operation requires SIM PIN2 to be entered */
  44.     RIL_E_REQUEST_NOT_SUPPORTED = 6,
  45.     RIL_E_CANCELLED = 7,
  46.     RIL_E_OP_NOT_ALLOWED_DURING_VOICE_CALL = 8, /* data ops are not allowed during voice
  47.                                                    call on a Class C GPRS device */
  48.     RIL_E_OP_NOT_ALLOWED_BEFORE_REG_TO_NW = 9,  /* data ops are not allowed before device
  49.                                                    registers in network */
  50.     RIL_E_SMS_SEND_FAIL_RETRY = 10 /* fail to send sms and need retry */
  51. } RIL_Errno;
  52. typedef enum {
  53.     RIL_CALL_ACTIVE = 0,
  54.     RIL_CALL_HOLDING = 1,
  55.     RIL_CALL_DIALING = 2,    /* MO call only */
  56.     RIL_CALL_ALERTING = 3,   /* MO call only */
  57.     RIL_CALL_INCOMING = 4,   /* MT call only */
  58.     RIL_CALL_WAITING = 5     /* MT call only */
  59. } RIL_CallState;
  60. typedef enum {
  61.     RADIO_STATE_OFF = 0,          /* Radio explictly powered off (eg CFUN=0) */
  62.     RADIO_STATE_UNAVAILABLE = 1,  /* Radio unavailable (eg, resetting or not booted) */
  63.     RADIO_STATE_SIM_NOT_READY = 2,      /* Radio is on, but the SIM interface is not ready */
  64.     RADIO_STATE_SIM_LOCKED_OR_ABSENT = 3, /* SIM PIN locked, PUK required, network 
  65.                                personalization locked, or SIM absent */
  66.     RADIO_STATE_SIM_READY = 4           /* Radio is on and SIM interface is available */
  67. } RIL_RadioState;
  68. typedef struct {
  69.     RIL_CallState   state;
  70.     int             index;      /* GSM Index for use with, eg, AT+CHLD */
  71.     int             toa;        /* type of address, eg 145 = intl */
  72.     char            isMpty;     /* nonzero if is mpty call */
  73.     char            isMT;       /* nonzero if call is mobile terminated */
  74.     char            als;        /* ALS line indicator if available 
  75.                                    (0 = line 1) */
  76.     char            isVoice;    /* nonzero if this is is a voice call */
  77.     char *          number;     /* phone number */
  78. } RIL_Call;
  79. typedef struct {
  80.     int             cid;        /* Context ID */
  81.     int             active;     /* nonzero if context is active */
  82.     char *          type;       /* X.25, IP, IPV6, etc. */
  83.     char *          apn;
  84.     char *          address;
  85. } RIL_PDP_Context_Response;
  86. typedef struct {
  87.     int messageRef;   /*TP-Message-Reference*/
  88.     char *ackPDU;     /* or NULL if n/a */
  89. } RIL_SMS_Response;
  90. /** Used by RIL_REQUEST_WRITE_SMS_TO_SIM */
  91. typedef struct {
  92.     int status;     /* Status of message.  See TS 27.005 3.1, "<stat>": */
  93.                     /*      0 = "REC UNREAD"    */
  94.                     /*      1 = "REC READ"      */
  95.                     /*      2 = "STO UNSENT"    */
  96.                     /*      3 = "STO SENT"      */
  97.     char * pdu;     /* PDU of message to write, as a hex string. */
  98.     char * smsc;    /* SMSC address in GSM BCD format prefixed by a length byte
  99.                        (as expected by TS 27.005) or NULL for default SMSC */
  100. } RIL_SMS_WriteArgs;
  101. /** Used by RIL_REQUEST_DIAL */
  102. typedef struct {
  103.     char * address;
  104.     int clir;
  105.             /* (same as 'n' paremeter in TS 27.007 7.7 "+CLIR"
  106.              * clir == 0 on "use subscription default value"
  107.              * clir == 1 on "CLIR invocation" (restrict CLI presentation)
  108.              * clir == 2 on "CLIR suppression" (allow CLI presentation)
  109.              */
  110. } RIL_Dial;
  111. typedef struct {
  112.     int command;    /* one of the commands listed for TS 27.007 +CRSM*/
  113.     int fileid;     /* EF id */
  114.     char *path;     /* "pathid" from TS 27.007 +CRSM command.
  115.                        Path is in hex asciii format eg "7f205f70"
  116.                      */
  117.     int p1;
  118.     int p2;
  119.     int p3;
  120.     char *data;     /* May be NULL*/
  121.     char *pin2;     /* May be NULL*/
  122. } RIL_SIM_IO;
  123. typedef struct {
  124.     int sw1;
  125.     int sw2;
  126.     char *simResponse;  /* In hex string format ([a-fA-F0-9]*). */
  127. } RIL_SIM_IO_Response;
  128. /* See also com.android.internal.telephony.gsm.CallForwardInfo */
  129. typedef struct {
  130.     int             status;     /*
  131.                                  * For RIL_REQUEST_QUERY_CALL_FORWARD_STATUS
  132.                                  * status 1 = active, 0 = not active
  133.                                  *
  134.                                  * For RIL_REQUEST_SET_CALL_FORWARD:
  135.                                  * status is:
  136.                                  * 0 = disable
  137.                                  * 1 = enable
  138.                                  * 2 = interrogate
  139.                                  * 3 = registeration
  140.                                  * 4 = erasure
  141.                                  */
  142.     int             reason;     /* from TS 27.007 7.11 "reason" */
  143.     int             serviceClass;/* From 27.007 +CCFC/+CLCK "class"
  144.                                     See table for Android mapping from
  145.                                     MMI service code 
  146.     0 means user doesn't input class */
  147.     int             toa;        /* "type" from TS 27.007 7.11 */
  148.     char *          number;     /* "number" from TS 27.007 7.11. May be NULL */
  149.     int             timeSeconds; /* for CF no reply only */
  150. }RIL_CallForwardInfo;
  151. typedef struct {
  152.    char * cid;         /* cell id in 2G,  Primary Scrambling Code in 3G
  153.                         * hexadecimal format.
  154.                         * Valid values are 0x00000000 - 0xffffffff.
  155.                         */
  156.    int    rssi;        /* Received RSSI in 2G,
  157.                         * Level index of CPICH Received Signal Code Power in 3G
  158.                         */
  159. } RIL_NeighboringCell;
  160. /* See RIL_REQUEST_LAST_CALL_FAIL_CAUSE */
  161. typedef enum {
  162.     CALL_FAIL_NORMAL = 16,
  163.     CALL_FAIL_BUSY = 17,
  164.     CALL_FAIL_CONGESTION = 34,
  165.     CALL_FAIL_ACM_LIMIT_EXCEEDED = 68,
  166.     CALL_FAIL_CALL_BARRED = 240,
  167.     CALL_FAIL_FDN_BLOCKED = 241,
  168.     CALL_FAIL_ERROR_UNSPECIFIED = 0xffff
  169. } RIL_LastCallFailCause;
  170. /* See RIL_REQUEST_LAST_PDP_FAIL_CAUSE */
  171. typedef enum {
  172.     PDP_FAIL_BARRED = 8,         /* no retry; prompt user */
  173.     PDP_FAIL_BAD_APN = 27,       /* no retry; prompt user */
  174.     PDP_FAIL_USER_AUTHENTICATION = 29, /* no retry; prompt user */
  175.     PDP_FAIL_SERVICE_OPTION_NOT_SUPPORTED = 32,  /*no retry; prompt user */
  176.     PDP_FAIL_SERVICE_OPTION_NOT_SUBSCRIBED = 33, /*no retry; prompt user */
  177.     PDP_FAIL_ERROR_UNSPECIFIED = 0xffff  /* This and all other cases: retry silently */
  178. } RIL_LastPDPActivateFailCause;
  179. /* Used by RIL_UNSOL_SUPP_SVC_NOTIFICATION */
  180. typedef struct {
  181.     int     notificationType;   /*
  182.                                  * 0 = MO intermediate result code
  183.                                  * 1 = MT unsolicited result code
  184.                                  */
  185.     int     code;               /* See 27.007 7.17
  186.                                    "code1" for MO
  187.                                    "code2" for MT. */
  188.     int     index;              /* CUG index. See 27.007 7.17. */
  189.     int     type;               /* "type" from 27.007 7.17 (MT only). */
  190.     char *  number;             /* "number" from 27.007 7.17
  191.                                    (MT only, may be NULL). */
  192. } RIL_SuppSvcNotification;
  193. /* see RIL_REQUEST_GET_SIM_STATUS */
  194. #define RIL_SIM_ABSENT       0
  195. #define RIL_SIM_NOT_READY    1
  196. /* RIL_SIM_READY means that the radio state is RADIO_STATE_SIM_READY. 
  197.  * This is more
  198.  * than "+CPIN: READY". It also means the radio is ready for SIM I/O
  199.  */
  200. #define RIL_SIM_READY        2
  201. #define RIL_SIM_PIN          3
  202. #define RIL_SIM_PUK          4
  203. #define RIL_SIM_NETWORK_PERSONALIZATION 5
  204. /* The result of a SIM refresh, returned in data[0] of RIL_UNSOL_SIM_REFRESH */
  205. typedef enum {
  206.     /* A file on SIM has been updated.  data[1] contains the EFID. */
  207.     SIM_FILE_UPDATE = 0,
  208.     /* SIM initialized.  All files should be re-read. */
  209.     SIM_INIT = 1,
  210.     /* SIM reset.  SIM power required, SIM may be locked and all files should be re-read. */
  211.     SIM_RESET = 2
  212. } RIL_SimRefreshResult;
  213. /** 
  214.  * RIL_REQUEST_GET_SIM_STATUS
  215.  *
  216.  * Requests status of the SIM interface and the SIM card
  217.  * 
  218.  * "data" is NULL
  219.  *
  220.  * "response" must be an int * pointing to RIL_SIM_* constant 
  221.  * This should always succeed (RIL_SUCCESS)
  222.  *
  223.  * If the radio is off or unavailable, return RIL_SIM_NOT_READY 
  224.  *
  225.  * Please note: RIL_SIM_READY means that the radio state 
  226.  * is RADIO_STATE_SIM_READY.   This is more than "+CPIN: READY". 
  227.  * It also means the radio is ready for SIM I/O
  228.  *
  229.  * Valid errors:
  230.  *  Must never fail
  231.  */
  232. #define RIL_REQUEST_GET_SIM_STATUS 1
  233. /**
  234.  * RIL_REQUEST_ENTER_SIM_PIN
  235.  *
  236.  * Supplies SIM PIN. Only called if SIM status is RIL_SIM_PIN
  237.  *
  238.  * "data" is const char **
  239.  * ((const char **)data)[0] is PIN value
  240.  *
  241.  * "response" must be NULL
  242.  *
  243.  * Valid errors:
  244.  *  
  245.  * SUCCESS 
  246.  * RADIO_NOT_AVAILABLE (radio resetting)
  247.  * GENERIC_FAILURE
  248.  * PASSWORD_INCORRECT
  249.  */
  250. #define RIL_REQUEST_ENTER_SIM_PIN 2
  251. /**
  252.  * RIL_REQUEST_ENTER_SIM_PUK
  253.  *
  254.  * Supplies SIM PUK and new PIN. 
  255.  *
  256.  * "data" is const char **
  257.  * ((const char **)data)[0] is PUK value
  258.  * ((const char **)data)[1] is new PIN value
  259.  *
  260.  * "response" must be NULL
  261.  *
  262.  * Valid errors:
  263.  *  
  264.  *  SUCCESS 
  265.  *  RADIO_NOT_AVAILABLE (radio resetting)
  266.  *  GENERIC_FAILURE
  267.  *  PASSWORD_INCORRECT
  268.  *     (PUK is invalid)
  269.  */
  270. #define RIL_REQUEST_ENTER_SIM_PUK 3
  271. /**
  272.  * RIL_REQUEST_ENTER_SIM_PIN2
  273.  *
  274.  * Supplies SIM PIN2. Only called following operation where SIM_PIN2 was
  275.  * returned as a a failure from a previous operation.
  276.  *
  277.  * "data" is const char **
  278.  * ((const char **)data)[0] is PIN2 value
  279.  *
  280.  * "response" must be NULL
  281.  *
  282.  * Valid errors:
  283.  *  
  284.  *  SUCCESS 
  285.  *  RADIO_NOT_AVAILABLE (radio resetting)
  286.  *  GENERIC_FAILURE
  287.  *  PASSWORD_INCORRECT
  288.  */
  289. #define RIL_REQUEST_ENTER_SIM_PIN2 4
  290. /**
  291.  * RIL_REQUEST_ENTER_SIM_PUK2
  292.  *
  293.  * Supplies SIM PUK2 and new PIN2. 
  294.  *
  295.  * "data" is const char **
  296.  * ((const char **)data)[0] is PUK2 value
  297.  * ((const char **)data)[1] is new PIN2 value
  298.  *
  299.  * "response" must be NULL
  300.  *
  301.  * Valid errors:
  302.  *  
  303.  *  SUCCESS 
  304.  *  RADIO_NOT_AVAILABLE (radio resetting)
  305.  *  GENERIC_FAILURE
  306.  *  PASSWORD_INCORRECT
  307.  *     (PUK2 is invalid)
  308.  */
  309. #define RIL_REQUEST_ENTER_SIM_PUK2 5
  310. /**
  311.  * RIL_REQUEST_CHANGE_SIM_PIN
  312.  *
  313.  * Supplies old SIM PIN and new PIN. 
  314.  *
  315.  * "data" is const char **
  316.  * ((const char **)data)[0] is old PIN value
  317.  * ((const char **)data)[1] is new PIN value
  318.  *
  319.  * "response" must be NULL
  320.  *
  321.  * Valid errors:
  322.  *  
  323.  *  SUCCESS 
  324.  *  RADIO_NOT_AVAILABLE (radio resetting)
  325.  *  GENERIC_FAILURE
  326.  *  PASSWORD_INCORRECT
  327.  *     (old PIN is invalid)
  328.  *      
  329.  */
  330. #define RIL_REQUEST_CHANGE_SIM_PIN 6
  331. /**
  332.  * RIL_REQUEST_CHANGE_SIM_PIN2
  333.  *
  334.  * Supplies old SIM PIN2 and new PIN2. 
  335.  *
  336.  * "data" is const char **
  337.  * ((const char **)data)[0] is old PIN2 value
  338.  * ((const char **)data)[1] is new PIN2 value
  339.  *
  340.  * "response" must be NULL
  341.  *
  342.  * Valid errors:
  343.  *  
  344.  *  SUCCESS 
  345.  *  RADIO_NOT_AVAILABLE (radio resetting)
  346.  *  GENERIC_FAILURE
  347.  *  PASSWORD_INCORRECT
  348.  *     (old PIN2 is invalid)
  349.  *      
  350.  */
  351. #define RIL_REQUEST_CHANGE_SIM_PIN2 7
  352. /**
  353.  * RIL_REQUEST_ENTER_NETWORK_DEPERSONALIZATION
  354.  *
  355.  * Requests that network personlization be deactivated
  356.  *
  357.  * "data" is const char **
  358.  * ((const char **)(data))[0]] is network depersonlization code
  359.  *
  360.  * "response" must be NULL
  361.  *
  362.  * Valid errors:
  363.  *  
  364.  *  SUCCESS 
  365.  *  RADIO_NOT_AVAILABLE (radio resetting)
  366.  *  GENERIC_FAILURE
  367.  *  PASSWORD_INCORRECT
  368.  *     (code is invalid)
  369.  */
  370. #define RIL_REQUEST_ENTER_NETWORK_DEPERSONALIZATION 8
  371. /**
  372.  * RIL_REQUEST_GET_CURRENT_CALLS 
  373.  *
  374.  * Requests current call list
  375.  *
  376.  * "data" is NULL
  377.  *
  378.  * "response" must be a "const RIL_Call **"
  379.  * 
  380.  * Valid errors:
  381.  *  
  382.  *  SUCCESS 
  383.  *  RADIO_NOT_AVAILABLE (radio resetting)
  384.  *  GENERIC_FAILURE
  385.  *      (request will be made again in a few hundred msec)
  386.  */
  387. #define RIL_REQUEST_GET_CURRENT_CALLS 9
  388. /** 
  389.  * RIL_REQUEST_DIAL
  390.  *
  391.  * Initiate voice call
  392.  *
  393.  * "data" is const RIL_Dial *
  394.  * "response" is NULL
  395.  *  
  396.  * This method is never used for supplementary service codes
  397.  *
  398.  * Valid errors:
  399.  *  SUCCESS 
  400.  *  RADIO_NOT_AVAILABLE (radio resetting)
  401.  *  GENERIC_FAILURE
  402.  */
  403. #define RIL_REQUEST_DIAL 10
  404. /**
  405.  * RIL_REQUEST_GET_IMSI
  406.  *
  407.  * Get the SIM IMSI
  408.  *
  409.  * Only valid when radio state is "RADIO_STATE_SIM_READY"
  410.  *
  411.  * "data" is NULL
  412.  * "response" is a const char * containing the IMSI
  413.  *
  414.  * Valid errors:
  415.  *  SUCCESS 
  416.  *  RADIO_NOT_AVAILABLE (radio resetting)
  417.  *  GENERIC_FAILURE
  418.  */
  419. #define RIL_REQUEST_GET_IMSI 11
  420. /**
  421.  * RIL_REQUEST_HANGUP
  422.  *
  423.  * Hang up a specific line (like AT+CHLD=1x)
  424.  *
  425.  * "data" is an int * 
  426.  * (int *)data)[0] contains GSM call index (value of 'x' in CHLD above)
  427.  *
  428.  * "response" is NULL
  429.  *
  430.  * Valid errors:
  431.  *  SUCCESS 
  432.  *  RADIO_NOT_AVAILABLE (radio resetting)
  433.  *  GENERIC_FAILURE
  434.  */
  435. #define RIL_REQUEST_HANGUP 12
  436. /**
  437.  * RIL_REQUEST_HANGUP_WAITING_OR_BACKGROUND
  438.  *
  439.  * Hang up waiting or held (like AT+CHLD=0)
  440.  *
  441.  * "data" is NULL
  442.  * "response" is NULL
  443.  *
  444.  * Valid errors:
  445.  *  SUCCESS 
  446.  *  RADIO_NOT_AVAILABLE (radio resetting)
  447.  *  GENERIC_FAILURE
  448.  */
  449. #define RIL_REQUEST_HANGUP_WAITING_OR_BACKGROUND 13
  450. /**
  451.  * RIL_REQUEST_HANGUP_FOREGROUND_RESUME_BACKGROUND
  452.  *
  453.  * Hang up waiting or held (like AT+CHLD=1)
  454.  *
  455.  * "data" is NULL
  456.  * "response" is NULL
  457.  *
  458.  * Valid errors:
  459.  *  SUCCESS 
  460.  *  RADIO_NOT_AVAILABLE (radio resetting)
  461.  *  GENERIC_FAILURE
  462.  */
  463. #define RIL_REQUEST_HANGUP_FOREGROUND_RESUME_BACKGROUND 14
  464. /**
  465.  * RIL_REQUEST_SWITCH_WAITING_OR_HOLDING_AND_ACTIVE
  466.  *
  467.  * Switch waiting or holding call and active call (like AT+CHLD=2)
  468.  *
  469.  * State transitions should be is follows:
  470.  *
  471.  * If call 1 is waiting and call 2 is active, then if this re
  472.  *
  473.  *   BEFORE                               AFTER
  474.  * Call 1   Call 2                 Call 1       Call 2
  475.  * ACTIVE   HOLDING                HOLDING     ACTIVE
  476.  * ACTIVE   WAITING                HOLDING     ACTIVE
  477.  * HOLDING  WAITING                HOLDING     ACTIVE
  478.  * ACTIVE   IDLE                   HOLDING     IDLE
  479.  * IDLE     IDLE                   IDLE        IDLE
  480.  *
  481.  * "data" is NULL
  482.  * "response" is NULL
  483.  *
  484.  * Valid errors:
  485.  *  SUCCESS 
  486.  *  RADIO_NOT_AVAILABLE (radio resetting)
  487.  *  GENERIC_FAILURE
  488.  */
  489. #define RIL_REQUEST_SWITCH_WAITING_OR_HOLDING_AND_ACTIVE 15
  490. #define RIL_REQUEST_SWITCH_HOLDING_AND_ACTIVE 15
  491. /**
  492.  * RIL_REQUEST_CONFERENCE
  493.  *
  494.  * Conference holding and active (like AT+CHLD=3)
  495.  * "data" is NULL
  496.  * "response" is NULL
  497.  *
  498.  * Valid errors:
  499.  *  SUCCESS 
  500.  *  RADIO_NOT_AVAILABLE (radio resetting)
  501.  *  GENERIC_FAILURE
  502.  */
  503. #define RIL_REQUEST_CONFERENCE 16
  504. /**
  505.  * RIL_REQUEST_UDUB
  506.  *
  507.  * Send UDUB (user determined used busy) to ringing or 
  508.  * waiting call answer)(RIL_BasicRequest r);
  509.  *
  510.  * "data" is NULL
  511.  * "response" is NULL
  512.  *
  513.  * Valid errors:
  514.  *  SUCCESS 
  515.  *  RADIO_NOT_AVAILABLE (radio resetting)
  516.  *  GENERIC_FAILURE
  517.  */
  518. #define RIL_REQUEST_UDUB 17
  519. /**
  520.  * RIL_REQUEST_LAST_CALL_FAIL_CAUSE
  521.  *
  522.  * Requests the failure cause code for the most recently terminated call
  523.  *
  524.  * "data" is NULL
  525.  * "response" is a "int *"
  526.  * ((int *)response)[0] is an integer cause code defined in TS 24.008
  527.  *   Annex H or close approximation
  528.  *
  529.  * If the implementation does not have access to the exact cause codes,
  530.  * then it should return one of the values listed in RIL_LastCallFailCause,
  531.  * as the UI layer needs to distinguish these cases for tone generation or
  532.  * error notification.
  533.  *
  534.  * Valid errors:
  535.  *  SUCCESS
  536.  *  RADIO_NOT_AVAILABLE
  537.  *  GENERIC_FAILURE
  538.  *
  539.  * See also: RIL_REQUEST_LAST_PDP_FAIL_CAUSE
  540.  */
  541. #define RIL_REQUEST_LAST_CALL_FAIL_CAUSE 18
  542. /**
  543.  * RIL_REQUEST_SIGNAL_STRENGTH
  544.  *
  545.  * Requests current signal strength and bit error rate
  546.  *
  547.  * Must succeed if radio is on.
  548.  *
  549.  * "data" is NULL
  550.  * "response" is an "int *"
  551.  * ((int *)response)[0] is received signal strength (0-31, 99)
  552.  * ((int *)response)[1] is bit error rate (0-7, 99)
  553.  *  as defined in TS 27.007 8.5
  554.  *  Other values (eg -1) are not legal
  555.  *
  556.  * Valid errors:
  557.  *  SUCCESS
  558.  *  RADIO_NOT_AVAILABLE
  559.  */
  560. #define RIL_REQUEST_SIGNAL_STRENGTH 19
  561. /**
  562.  * RIL_REQUEST_REGISTRATION_STATE
  563.  *
  564.  * Request current registration state
  565.  *
  566.  * "data" is NULL
  567.  * "response" is a "char **"
  568.  * ((const char **)response)[0] is registration state 0-5 from TS 27.007 7.2
  569.  * ((const char **)response)[1] is LAC if registered or NULL if not
  570.  * ((const char **)response)[2] is CID if registered or NULL if not
  571.  *
  572.  * LAC and CID are in hexadecimal format.
  573.  * valid LAC are 0x0000 - 0xffff
  574.  * valid CID are 0x00000000 - 0xffffffff
  575.  * 
  576.  * Please note that registration state 4 ("unknown") is treated 
  577.  * as "out of service" in the Android telephony system
  578.  *
  579.  * Valid errors:
  580.  *  SUCCESS
  581.  *  RADIO_NOT_AVAILABLE
  582.  *  GENERIC_FAILURE
  583.  */
  584. #define RIL_REQUEST_REGISTRATION_STATE 20
  585. /**
  586.  * RIL_REQUEST_GPRS_REGISTRATION_STATE
  587.  *
  588.  * Request current GPRS registration state
  589.  *
  590.  * "data" is NULL
  591.  * "response" is a "char **"
  592.  * ((const char **)response)[0] is registration state 0-5 from TS 27.007 7.2
  593.  * ((const char **)response)[1] is LAC if registered or NULL if not
  594.  * ((const char **)response)[2] is CID if registered or NULL if not
  595.  * ((const char **)response)[3] indicates the available radio technology, where:
  596.  *      0 == unknown
  597.  *      1 == GPRS only
  598.  *      2 == EDGE
  599.  *      3 == UMTS
  600.  *
  601.  * LAC and CID are in hexadecimal format.
  602.  * valid LAC are 0x0000 - 0xffff
  603.  * valid CID are 0x00000000 - 0xffffffff
  604.  * 
  605.  * Please note that registration state 4 ("unknown") is treated 
  606.  * as "out of service" in the Android telephony system
  607.  *
  608.  * Valid errors:
  609.  *  SUCCESS
  610.  *  RADIO_NOT_AVAILABLE
  611.  *  GENERIC_FAILURE
  612.  */
  613. #define RIL_REQUEST_GPRS_REGISTRATION_STATE 21
  614. /**
  615.  * RIL_REQUEST_OPERATOR
  616.  *
  617.  * Request current operator ONS or EONS
  618.  *
  619.  * "data" is NULL
  620.  * "response" is a "const char **"
  621.  * ((const char **)response)[0] is long alpha ONS or EONS 
  622.  *                                  or NULL if unregistered
  623.  *
  624.  * ((const char **)response)[1] is short alpha ONS or EONS 
  625.  *                                  or NULL if unregistered
  626.  * ((const char **)response)[2] is 5 or 6 digit numeric code (MCC + MNC)
  627.  *                                  or NULL if unregistered
  628.  *                                  
  629.  * Valid errors:
  630.  *  SUCCESS
  631.  *  RADIO_NOT_AVAILABLE
  632.  *  GENERIC_FAILURE
  633.  */
  634. #define RIL_REQUEST_OPERATOR 22
  635. /**
  636.  * RIL_REQUEST_RADIO_POWER
  637.  *
  638.  * Toggle radio on and off (for "airplane" mode)
  639.  * "data" is int *
  640.  * ((int *)data)[0] is > 0 for "Radio On"
  641.  * ((int *)data)[0] is == 0 for "Radio Off"
  642.  *
  643.  * "response" is NULL
  644.  *
  645.  * Turn radio on if "on" > 0
  646.  * Turn radio off if "on" == 0
  647.  *
  648.  * Valid errors:
  649.  *  SUCCESS
  650.  *  RADIO_NOT_AVAILABLE
  651.  *  GENERIC_FAILURE
  652.  */
  653. #define RIL_REQUEST_RADIO_POWER 23
  654. /**
  655.  * RIL_REQUEST_DTMF
  656.  *
  657.  * Send a DTMF tone
  658.  *
  659.  * If the implementation is currently playing a tone requested via
  660.  * RIL_REQUEST_DTMF_START, that tone should be cancelled and the new tone
  661.  * should be played instead
  662.  *
  663.  * "data" is a char *
  664.  * ((char *)data)[0] is a single character with one of 12 values: 0-9,*,#
  665.  * ((char *)data)[1] is a single character with one of 3 values:
  666.  *    'S' -- tone should be played for a short time
  667.  *    'L' -- tone should be played for a long time
  668.  * "response" is NULL
  669.  * 
  670.  * FIXME should this block/mute microphone?
  671.  * How does this interact with local DTMF feedback?
  672.  *
  673.  * Valid errors:
  674.  *  SUCCESS
  675.  *  RADIO_NOT_AVAILABLE
  676.  *  GENERIC_FAILURE
  677.  *
  678.  * See also: RIL_REQUEST_DTMF_STOP, RIL_REQUEST_DTMF_START
  679.  *
  680.  */
  681. #define RIL_REQUEST_DTMF 24
  682. /**
  683.  * RIL_REQUEST_SEND_SMS
  684.  * 
  685.  * Send an SMS message
  686.  *
  687.  * "data" is const char **
  688.  * ((const char **)data)[0] is SMSC address in GSM BCD format prefixed
  689.  *      by a length byte (as expected by TS 27.005) or NULL for default SMSC
  690.  * ((const char **)data)[1] is SMS in PDU format as an ASCII hex string
  691.  *      less the SMSC address
  692.  *      TP-Layer-Length is be "strlen(((const char **)data)[1])/2"
  693.  *
  694.  * "response" is a const RIL_SMS_Response *
  695.  *
  696.  * Based on the return error, caller decides to resend if sending sms
  697.  * fails. SMS_SEND_FAIL_RETRY means retry (i.e. error cause is 332) 
  698.  * and GENERIC_FAILURE means no retry (i.e. error cause is 500)
  699.  *
  700.  * Valid errors:
  701.  *  SUCCESS
  702.  *  RADIO_NOT_AVAILABLE
  703.  *  SMS_SEND_FAIL_RETRY
  704.  *  GENERIC_FAILURE
  705.  *
  706.  * FIXME how do we specify TP-Message-Reference if we need to resend?
  707.  */
  708. #define RIL_REQUEST_SEND_SMS 25
  709. /**
  710.  * RIL_REQUEST_SEND_SMS_EXPECT_MORE
  711.  * 
  712.  * Send an SMS message. Identical to RIL_REQUEST_SEND_SMS,
  713.  * except that more messages are expected to be sent soon. If possible,
  714.  * keep SMS relay protocol link open (eg TS 27.005 AT+CMMS command)
  715.  *
  716.  * "data" is const char **
  717.  * ((const char **)data)[0] is SMSC address in GSM BCD format prefixed
  718.  *      by a length byte (as expected by TS 27.005) or NULL for default SMSC
  719.  * ((const char **)data)[1] is SMS in PDU format as an ASCII hex string
  720.  *      less the SMSC address
  721.  *      TP-Layer-Length is be "strlen(((const char **)data)[1])/2"
  722.  *
  723.  * "response" is a const RIL_SMS_Response *
  724.  *
  725.  * Based on the return error, caller decides to resend if sending sms
  726.  * fails. SMS_SEND_FAIL_RETRY means retry (i.e. error cause is 332) 
  727.  * and GENERIC_FAILURE means no retry (i.e. error cause is 500)
  728.  *
  729.  * Valid errors:
  730.  *  SUCCESS
  731.  *  RADIO_NOT_AVAILABLE
  732.  *  SMS_SEND_FAIL_RETRY
  733.  *  GENERIC_FAILURE
  734.  *
  735.  */
  736. #define RIL_REQUEST_SEND_SMS_EXPECT_MORE 26
  737. /**
  738.  * RIL_REQUEST_SETUP_DEFAULT_PDP
  739.  *
  740.  * Configure and activate PDP context (CID 1) for default IP connection 
  741.  *
  742.  * Android Telephony layer will start up pppd process on specified
  743.  * tty when this request responded to.
  744.  *
  745.  * "data" is a const char **
  746.  * ((const char **)data)[0] is the APN to connect to
  747.  * ((const char **)data)[1] is the username, or NULL
  748.  * ((const char **)data)[2] is the password, or NULL
  749.  *
  750.  * "response" is a char **
  751.  * ((char **)response)[0] indicating PDP CID, which is generated by RIL
  752.  * ((char **)response)[1] indicating the network interface name
  753.  * ((char **)response)[2] indicating the IP address for this interface
  754.  *
  755.  * FIXME may need way to configure QoS settings
  756.  *
  757.  * Valid errors:
  758.  *  SUCCESS
  759.  *  RADIO_NOT_AVAILABLE
  760.  *  GENERIC_FAILURE
  761.  *
  762.  * See also: RIL_REQUEST_DEACTIVATE_DEFAULT_PDP
  763.  */
  764. #define RIL_REQUEST_SETUP_DEFAULT_PDP 27
  765. /**
  766.  * RIL_REQUEST_SIM_IO
  767.  *
  768.  * Request SIM I/O operation.
  769.  * This is similar to the TS 27.007 "restricted SIM" operation
  770.  * where it assumes all of the EF selection will be done by the
  771.  * callee.
  772.  *
  773.  * "data" is a const RIL_SIM_IO *
  774.  * Please note that RIL_SIM_IO has a "PIN2" field which may be NULL,
  775.  * or may specify a PIN2 for operations that require a PIN2 (eg
  776.  * updating FDN records)
  777.  *
  778.  * "response" is a const RIL_SIM_IO_Response *
  779.  *
  780.  * Arguments and responses that are unused for certain
  781.  * values of "command" should be ignored or set to NULL
  782.  *
  783.  * Valid errors:
  784.  *  SUCCESS
  785.  *  RADIO_NOT_AVAILABLE
  786.  *  GENERIC_FAILURE
  787.  *  SIM_PIN2
  788.  *  SIM_PUK2
  789.  */
  790. #define RIL_REQUEST_SIM_IO 28
  791. /**
  792.  * RIL_REQUEST_SEND_USSD
  793.  *
  794.  * Send a USSD message
  795.  *
  796.  * If a USSD session already exists, the message should be sent in the
  797.  * context of that session. Otherwise, a new session should be created.
  798.  *
  799.  * The network reply should be reported via RIL_UNSOL_ON_USSD
  800.  *
  801.  * Only one USSD session may exist at a time, and the session is assumed
  802.  * to exist until:
  803.  *   a) The android system invokes RIL_REQUEST_CANCEL_USSD
  804.  *   b) The implementation sends a RIL_UNSOL_ON_USSD with a type code
  805.  *      of "0" (USSD-Notify/no further action) or "2" (session terminated)
  806.  *
  807.  * "data" is a const char * containing the USSD request in UTF-8 format
  808.  * "response" is NULL
  809.  *
  810.  * Valid errors:
  811.  *  SUCCESS
  812.  *  RADIO_NOT_AVAILABLE
  813.  *  GENERIC_FAILURE
  814.  *
  815.  * See also: RIL_REQUEST_CANCEL_USSD, RIL_UNSOL_ON_USSD
  816.  */
  817. #define RIL_REQUEST_SEND_USSD 29
  818. /**
  819.  * RIL_REQUEST_CANCEL_USSD
  820.  * 
  821.  * Cancel the current USSD session if one exists
  822.  *
  823.  * "data" is null
  824.  * "response" is NULL
  825.  *
  826.  * Valid errors:
  827.  *  SUCCESS
  828.  *  RADIO_NOT_AVAILABLE
  829.  *  GENERIC_FAILURE 
  830.  */
  831. #define RIL_REQUEST_CANCEL_USSD 30
  832. /**  
  833.  * RIL_REQUEST_GET_CLIR
  834.  *
  835.  * Gets current CLIR status
  836.  * "data" is NULL
  837.  * "response" is int *
  838.  * ((int *)data)[0] is "n" parameter from TS 27.007 7.7
  839.  * ((int *)data)[1] is "m" parameter from TS 27.007 7.7
  840.  *
  841.  * Valid errors:
  842.  *  SUCCESS
  843.  *  RADIO_NOT_AVAILABLE
  844.  *  GENERIC_FAILURE
  845.  */
  846. #define RIL_REQUEST_GET_CLIR 31
  847. /**
  848.  * RIL_REQUEST_SET_CLIR
  849.  *
  850.  * "data" is int *
  851.  * ((int *)data)[0] is "n" parameter from TS 27.007 7.7
  852.  *
  853.  * "response" is NULL
  854.  *
  855.  * Valid errors:
  856.  *  SUCCESS
  857.  *  RADIO_NOT_AVAILABLE
  858.  *  GENERIC_FAILURE
  859.  */
  860. #define RIL_REQUEST_SET_CLIR 32
  861. /**
  862.  * RIL_REQUEST_QUERY_CALL_FORWARD_STATUS
  863.  *
  864.  * "data" is const RIL_CallForwardInfo *
  865.  *
  866.  * "response" is const RIL_CallForwardInfo **
  867.  * "response" points to an array of RIL_CallForwardInfo *'s, one for
  868.  * each distinct registered phone number.
  869.  *
  870.  * For example, if data is forwarded to +18005551212 and voice is forwarded
  871.  * to +18005559999, then two separate RIL_CallForwardInfo's should be returned
  872.  * 
  873.  * If, however, both data and voice are forwarded to +18005551212, then
  874.  * a single RIL_CallForwardInfo can be returned with the service class
  875.  * set to "data + voice = 3")
  876.  *
  877.  * Valid errors:
  878.  *  SUCCESS
  879.  *  RADIO_NOT_AVAILABLE
  880.  *  GENERIC_FAILURE
  881.  */
  882. #define RIL_REQUEST_QUERY_CALL_FORWARD_STATUS 33
  883. /**
  884.  * RIL_REQUEST_SET_CALL_FORWARD
  885.  *
  886.  * Configure call forward rule
  887.  *
  888.  * "data" is const RIL_CallForwardInfo *
  889.  * "response" is NULL
  890.  *  
  891.  * Valid errors:
  892.  *  SUCCESS
  893.  *  RADIO_NOT_AVAILABLE
  894.  *  GENERIC_FAILURE
  895.  */
  896. #define RIL_REQUEST_SET_CALL_FORWARD 34
  897. /**
  898.  * RIL_REQUEST_QUERY_CALL_WAITING
  899.  *
  900.  * Query current call waiting state
  901.  *
  902.  * "data" is const int *
  903.  * ((const int *)data)[0] is the TS 27.007 service class to query.
  904.  * "response" is a const int *
  905.  * ((const int *)response)[0] is 0 for "disabled" and 1 for "enabled"
  906.  *
  907.  * If ((const int *)response)[0] is = 1, then ((const int *)response)[1]
  908.  * must follow, with the TS 27.007 service class bit vector of services
  909.  * for which call waiting is enabled.
  910.  *
  911.  * For example, if ((const int *)response)[0]  is 1 and 
  912.  * ((const int *)response)[1] is 3, then call waiting is enabled for data
  913.  * and voice and disabled for everything else
  914.  *
  915.  * Valid errors:
  916.  *  SUCCESS
  917.  *  RADIO_NOT_AVAILABLE
  918.  *  GENERIC_FAILURE
  919.  */
  920. #define RIL_REQUEST_QUERY_CALL_WAITING 35
  921. /**
  922.  * RIL_REQUEST_SET_CALL_WAITING
  923.  *
  924.  * Configure current call waiting state
  925.  *
  926.  * "data" is const int *
  927.  * ((const int *)data)[0] is 0 for "disabled" and 1 for "enabled"
  928.  * ((const int *)data)[1] is the TS 27.007 service class bit vector of
  929.  *                           services to modify
  930.  * "response" is NULL
  931.  *
  932.  * Valid errors:
  933.  *  SUCCESS
  934.  *  RADIO_NOT_AVAILABLE
  935.  *  GENERIC_FAILURE
  936.  */
  937. #define RIL_REQUEST_SET_CALL_WAITING 36
  938. /**
  939.  * RIL_REQUEST_SMS_ACKNOWLEDGE
  940.  *
  941.  * Acknowledge successful or failed receipt of SMS previously indicated
  942.  * via RIL_UNSOL_RESPONSE_NEW_SMS 
  943.  *
  944.  * "data" is int *
  945.  * ((int *)data)[0] is "1" on successful receipt 
  946.  *                  (basically, AT+CNMA=1 from TS 27.005
  947.  * ((int *)data)[0] is "0" on failed receipt 
  948.  *                  (basically, AT+CNMA=2 from TS 27.005)
  949.  *
  950.  * "response" is NULL
  951.  *
  952.  * FIXME would like request that specified RP-ACK/RP-ERROR PDU
  953.  *
  954.  * Valid errors:
  955.  *  SUCCESS
  956.  *  RADIO_NOT_AVAILABLE
  957.  *  GENERIC_FAILURE
  958.  */
  959. #define RIL_REQUEST_SMS_ACKNOWLEDGE  37
  960. /**
  961.  * RIL_REQUEST_GET_IMEI
  962.  *
  963.  * Get the device IMEI, including check digit
  964.  *
  965.  * Valid when RadioState is not RADIO_STATE_UNAVAILABLE
  966.  *
  967.  * "data" is NULL
  968.  * "response" is a const char * containing the IMEI
  969.  *
  970.  * Valid errors:
  971.  *  SUCCESS 
  972.  *  RADIO_NOT_AVAILABLE (radio resetting)
  973.  *  GENERIC_FAILURE
  974.  */
  975. #define RIL_REQUEST_GET_IMEI 38
  976. /**
  977.  * RIL_REQUEST_GET_IMEISV
  978.  *
  979.  * Get the device IMEISV, which should be two decimal digits
  980.  *
  981.  * Valid when RadioState is not RADIO_STATE_UNAVAILABLE
  982.  *
  983.  * "data" is NULL
  984.  * "response" is a const char * containing the IMEISV
  985.  *
  986.  * Valid errors:
  987.  *  SUCCESS 
  988.  *  RADIO_NOT_AVAILABLE (radio resetting)
  989.  *  GENERIC_FAILURE
  990.  */
  991. #define RIL_REQUEST_GET_IMEISV 39
  992. /**
  993.  * RIL_REQUEST_ANSWER
  994.  *
  995.  * Answer incoming call
  996.  *
  997.  * Will not be called for WAITING calls.
  998.  * RIL_REQUEST_SWITCH_WAITING_OR_HOLDING_AND_ACTIVE will be used in this case
  999.  * instead
  1000.  *
  1001.  * "data" is NULL
  1002.  * "response" is NULL
  1003.  *
  1004.  * Valid errors:
  1005.  *  SUCCESS 
  1006.  *  RADIO_NOT_AVAILABLE (radio resetting)
  1007.  *  GENERIC_FAILURE
  1008.  */
  1009. #define RIL_REQUEST_ANSWER 40
  1010. /**
  1011.  * RIL_REQUEST_DEACTIVATE_DEFAULT_PDP
  1012.  *
  1013.  * Deactivate PDP context created by RIL_REQUEST_SETUP_DEFAULT_PDP
  1014.  *
  1015.  * "data" is const char **
  1016.  * ((char**)data)[0] indicating PDP CID
  1017.  * "response" is NULL
  1018.  *
  1019.  * Valid errors:
  1020.  *  SUCCESS
  1021.  *  RADIO_NOT_AVAILABLE
  1022.  *  GENERIC_FAILURE
  1023.  *
  1024.  * See also: RIL_REQUEST_SETUP_DEFAULT_PDP
  1025.  */
  1026. #define RIL_REQUEST_DEACTIVATE_DEFAULT_PDP 41
  1027. /**
  1028.  * RIL_REQUEST_QUERY_FACILITY_LOCK
  1029.  *
  1030.  * Query the status of a facility lock state
  1031.  *
  1032.  * "data" is const char **
  1033.  * ((const char **)data)[0] is the facility string code from TS 27.007 7.4  
  1034.  *                      (eg "AO" for BAOC, "SC" for SIM lock)
  1035.  * ((const char **)data)[1] is the password, or "" if not required
  1036.  * ((const char **)data)[2] is the TS 27.007 service class bit vector of
  1037.  *                           services to query
  1038.  *
  1039.  * "response" is an int *
  1040.  * ((const int *)response) 0 is the TS 27.007 service class bit vector of
  1041.  *                           services for which the specified barring facility 
  1042.  *                           is active. "0" means "disabled for all"
  1043.  * 
  1044.  *
  1045.  * Valid errors:
  1046.  *  SUCCESS
  1047.  *  RADIO_NOT_AVAILABLE
  1048.  *  GENERIC_FAILURE
  1049.  *
  1050.  */
  1051. #define RIL_REQUEST_QUERY_FACILITY_LOCK 42
  1052. /**
  1053.  * RIL_REQUEST_SET_FACILITY_LOCK
  1054.  *
  1055.  * Enable/disable one facility lock
  1056.  *
  1057.  * "data" is const char **
  1058.  *
  1059.  * ((const char **)data)[0] = facility string code from TS 27.007 7.4
  1060.  * (eg "AO" for BAOC)
  1061.  * ((const char **)data)[1] = "0" for "unlock" and "1" for "lock"
  1062.  * ((const char **)data)[2] = password
  1063.  * ((const char **)data)[3] = string representation of decimal TS 27.007
  1064.  *                            service class bit vector. Eg, the string
  1065.  *                            "1" means "set this facility for voice services"
  1066.  *
  1067.  * "response" is NULL 
  1068.  *
  1069.  * Valid errors:
  1070.  *  SUCCESS
  1071.  *  RADIO_NOT_AVAILABLE
  1072.  *  GENERIC_FAILURE
  1073.  *
  1074.  */
  1075. #define RIL_REQUEST_SET_FACILITY_LOCK 43
  1076. /**
  1077.  * RIL_REQUEST_CHANGE_BARRING_PASSWORD
  1078.  *
  1079.  * Change call barring facility password
  1080.  *
  1081.  * "data" is const char **
  1082.  *
  1083.  * ((const char **)data)[0] = facility string code from TS 27.007 7.4
  1084.  * (eg "AO" for BAOC)
  1085.  * ((const char **)data)[1] = old password
  1086.  * ((const char **)data)[2] = new password
  1087.  *
  1088.  * "response" is NULL 
  1089.  *
  1090.  * Valid errors:
  1091.  *  SUCCESS
  1092.  *  RADIO_NOT_AVAILABLE
  1093.  *  GENERIC_FAILURE
  1094.  *
  1095.  */
  1096. #define RIL_REQUEST_CHANGE_BARRING_PASSWORD 44
  1097. /**
  1098.  * RIL_REQUEST_QUERY_NETWORK_SELECTION_MODE
  1099.  *
  1100.  * Query current network selectin mode
  1101.  *
  1102.  * "data" is NULL
  1103.  *
  1104.  * "response" is int *
  1105.  * ((const int *)response)[0] is
  1106.  *     0 for automatic selection
  1107.  *     1 for manual selection
  1108.  *
  1109.  * Valid errors:
  1110.  *  SUCCESS
  1111.  *  RADIO_NOT_AVAILABLE
  1112.  *  GENERIC_FAILURE
  1113.  *
  1114.  */
  1115. #define RIL_REQUEST_QUERY_NETWORK_SELECTION_MODE 45
  1116. /**
  1117.  * RIL_REQUEST_SET_NETWORK_SELECTION_AUTOMATIC
  1118.  *
  1119.  * Specify that the network should be selected automatically
  1120.  *
  1121.  * "data" is NULL
  1122.  * "response" is NULL
  1123.  *
  1124.  * This request must not respond until the new operator is selected 
  1125.  * and registered
  1126.  *
  1127.  * Valid errors:
  1128.  *  SUCCESS
  1129.  *  RADIO_NOT_AVAILABLE
  1130.  *  GENERIC_FAILURE
  1131.  *
  1132.  */
  1133. #define RIL_REQUEST_SET_NETWORK_SELECTION_AUTOMATIC 46
  1134. /**
  1135.  * RIL_REQUEST_SET_NETWORK_SELECTION_MANUAL
  1136.  *
  1137.  * Manually select a specified network.
  1138.  *
  1139.  * The radio baseband/RIL implementation is expected to fall back to 
  1140.  * automatic selection mode if the manually selected network should go
  1141.  * out of range in the future.
  1142.  *
  1143.  * "data" is const char * specifying MCCMNC of network to select (eg "310170")
  1144.  * "response" is NULL
  1145.  *
  1146.  * This request must not respond until the new operator is selected 
  1147.  * and registered
  1148.  *
  1149.  * Valid errors:
  1150.  *  SUCCESS
  1151.  *  RADIO_NOT_AVAILABLE
  1152.  *  GENERIC_FAILURE
  1153.  *
  1154.  */
  1155. #define RIL_REQUEST_SET_NETWORK_SELECTION_MANUAL 47
  1156. /**
  1157.  * RIL_REQUEST_QUERY_AVAILABLE_NETWORKS
  1158.  *
  1159.  * Scans for available networks
  1160.  *
  1161.  * "data" is NULL
  1162.  * "response" is const char ** that should be an array of n*4 strings, where
  1163.  *    n is the number of available networks
  1164.  * For each available network:
  1165.  *
  1166.  * ((const char **)response)[n+0] is long alpha ONS or EONS 
  1167.  * ((const char **)response)[n+1] is short alpha ONS or EONS 
  1168.  * ((const char **)response)[n+2] is 5 or 6 digit numeric code (MCC + MNC)
  1169.  * ((const char **)response)[n+3] is a string value of the status:
  1170.  *           "unknown"
  1171.  *           "available"
  1172.  *           "current"
  1173.  *           "forbidden"
  1174.  *
  1175.  * This request must not respond until the new operator is selected 
  1176.  * and registered
  1177.  *
  1178.  * Valid errors:
  1179.  *  SUCCESS
  1180.  *  RADIO_NOT_AVAILABLE
  1181.  *  GENERIC_FAILURE
  1182.  *
  1183.  */
  1184. #define RIL_REQUEST_QUERY_AVAILABLE_NETWORKS 48
  1185. /**
  1186.  * RIL_REQUEST_DTMF_START
  1187.  *
  1188.  * Start playing a DTMF tone. Continue playing DTMF tone until 
  1189.  * RIL_REQUEST_DTMF_STOP is received 
  1190.  *
  1191.  * If a RIL_REQUEST_DTMF_START is received while a tone is currently playing,
  1192.  * it should cancel the previous tone and play the new one.
  1193.  * 
  1194.  * "data" is a char *
  1195.  * ((char *)data)[0] is a single character with one of 12 values: 0-9,*,#
  1196.  * "response" is NULL
  1197.  * 
  1198.  * Valid errors:
  1199.  *  SUCCESS
  1200.  *  RADIO_NOT_AVAILABLE
  1201.  *  GENERIC_FAILURE
  1202.  *
  1203.  * See also: RIL_REQUEST_DTMF, RIL_REQUEST_DTMF_STOP
  1204.  */
  1205. #define RIL_REQUEST_DTMF_START 49
  1206. /**
  1207.  * RIL_REQUEST_DTMF_STOP
  1208.  *
  1209.  * Stop playing a currently playing DTMF tone.
  1210.  * 
  1211.  * "data" is NULL
  1212.  * "response" is NULL
  1213.  * 
  1214.  * Valid errors:
  1215.  *  SUCCESS
  1216.  *  RADIO_NOT_AVAILABLE
  1217.  *  GENERIC_FAILURE
  1218.  *
  1219.  * See also: RIL_REQUEST_DTMF, RIL_REQUEST_DTMF_START
  1220.  */
  1221. #define RIL_REQUEST_DTMF_STOP 50
  1222. /**
  1223.  * RIL_REQUEST_BASEBAND_VERSION
  1224.  *
  1225.  * Return string value indicating baseband version, eg
  1226.  * response from AT+CGMR
  1227.  * 
  1228.  * "data" is NULL
  1229.  * "response" is const char * containing version string for log reporting
  1230.  * 
  1231.  * Valid errors:
  1232.  *  SUCCESS
  1233.  *  RADIO_NOT_AVAILABLE
  1234.  *  GENERIC_FAILURE
  1235.  *
  1236.  */
  1237. #define RIL_REQUEST_BASEBAND_VERSION 51
  1238. /**
  1239.  * RIL_REQUEST_SEPARATE_CONNECTION
  1240.  *
  1241.  * Separate a party from a multiparty call placing the multiparty call
  1242.  * (less the specified party) on hold and leaving the specified party 
  1243.  * as the only other member of the current (active) call
  1244.  *
  1245.  * Like AT+CHLD=2x
  1246.  *
  1247.  * See TS 22.084 1.3.8.2 (iii)
  1248.  * TS 22.030 6.5.5 "Entering "2X followed by send"
  1249.  * TS 27.007 "AT+CHLD=2x"
  1250.  * 
  1251.  * "data" is an int * 
  1252.  * (int *)data)[0] contains GSM call index (value of 'x' in CHLD above)
  1253.  * "response" is NULL
  1254.  *
  1255.  * Valid errors:
  1256.  *  SUCCESS 
  1257.  *  RADIO_NOT_AVAILABLE (radio resetting)
  1258.  *  GENERIC_FAILURE
  1259.  */
  1260. #define RIL_REQUEST_SEPARATE_CONNECTION 52
  1261. /**
  1262.  * RIL_REQUEST_SET_MUTE
  1263.  *
  1264.  * Turn on or off uplink (microphone) mute.
  1265.  *
  1266.  * Will only be sent while voice call is active.
  1267.  * Will always be reset to "disable mute" when a new voice call is initiated
  1268.  *
  1269.  * "data" is an int *
  1270.  * (int *)data)[0] is 1 for "enable mute" and 0 for "disable mute"
  1271.  *
  1272.  * "response" is NULL
  1273.  *
  1274.  * Valid errors:
  1275.  *  SUCCESS 
  1276.  *  RADIO_NOT_AVAILABLE (radio resetting)
  1277.  *  GENERIC_FAILURE
  1278.  */
  1279. #define RIL_REQUEST_SET_MUTE 53
  1280. /**
  1281.  * RIL_REQUEST_GET_MUTE
  1282.  *
  1283.  * Queries the current state of the uplink mute setting
  1284.  *
  1285.  * "data" is NULL
  1286.  * "response" is an int *
  1287.  * (int *)response)[0] is 1 for "mute enabled" and 0 for "mute disabled"
  1288.  *
  1289.  * Valid errors:
  1290.  *  SUCCESS 
  1291.  *  RADIO_NOT_AVAILABLE (radio resetting)
  1292.  *  GENERIC_FAILURE
  1293.  */
  1294. #define RIL_REQUEST_GET_MUTE 54
  1295. /**
  1296.  * RIL_REQUEST_QUERY_CLIP
  1297.  *
  1298.  * Queries the status of the CLIP supplementary service
  1299.  *
  1300.  * (for MMI code "*#30#")
  1301.  *
  1302.  * "data" is NULL
  1303.  * "response" is an int *
  1304.  * (int *)response)[0] is 1 for "CLIP provisioned" 
  1305.  *                           and 0 for "CLIP not provisioned"
  1306.  *                           and 2 for "unknown, e.g. no network etc" 
  1307.  *
  1308.  * Valid errors:
  1309.  *  SUCCESS 
  1310.  *  RADIO_NOT_AVAILABLE (radio resetting)
  1311.  *  GENERIC_FAILURE
  1312.  */
  1313. #define RIL_REQUEST_QUERY_CLIP 55
  1314. /**
  1315.  * RIL_REQUEST_LAST_PDP_FAIL_CAUSE
  1316.  * 
  1317.  * Requests the failure cause code for the most recently failed PDP 
  1318.  * context activate
  1319.  *
  1320.  * "data" is NULL
  1321.  *
  1322.  * "response" is a "int *"
  1323.  * ((int *)response)[0] is an integer cause code defined in TS 24.008
  1324.  *   section 6.1.3.1.3 or close approximation
  1325.  *
  1326.  * If the implementation does not have access to the exact cause codes,
  1327.  * then it should return one of the values listed in 
  1328.  * RIL_LastPDPActivateFailCause, as the UI layer needs to distinguish these 
  1329.  * cases for error notification
  1330.  * and potential retries.
  1331.  *
  1332.  * Valid errors:
  1333.  *  SUCCESS
  1334.  *  RADIO_NOT_AVAILABLE
  1335.  *  GENERIC_FAILURE
  1336.  *
  1337.  * See also: RIL_REQUEST_LAST_CALL_FAIL_CAUSE
  1338.  *  
  1339.  */ 
  1340. #define RIL_REQUEST_LAST_PDP_FAIL_CAUSE 56
  1341. /**
  1342.  * RIL_REQUEST_PDP_CONTEXT_LIST
  1343.  *
  1344.  * Queries the status of PDP contexts, returning for each
  1345.  * its CID, whether or not it is active, and its PDP type,
  1346.  * APN, and PDP adddress.
  1347.  *
  1348.  * "data" is NULL
  1349.  * "response" is an array of RIL_PDP_Context_Response
  1350.  *
  1351.  * Valid errors:
  1352.  *  SUCCESS 
  1353.  *  RADIO_NOT_AVAILABLE (radio resetting)
  1354.  *  GENERIC_FAILURE
  1355.  */
  1356. #define RIL_REQUEST_PDP_CONTEXT_LIST 57
  1357. /**
  1358.  * RIL_REQUEST_RESET_RADIO
  1359.  *
  1360.  * Request a radio reset. The RIL implementation may postpone
  1361.  * the reset until after this request is responded to if the baseband
  1362.  * is presently busy.
  1363.  *
  1364.  * "data" is NULL
  1365.  * "response" is NULL
  1366.  *
  1367.  * The reset action could be delayed for a while
  1368.  * in case baseband modem is just busy.
  1369.  *
  1370.  * Valid errors:
  1371.  *  SUCCESS 
  1372.  *  RADIO_NOT_AVAILABLE (radio resetting)
  1373.  *  GENERIC_FAILURE
  1374.  */
  1375. #define RIL_REQUEST_RESET_RADIO 58
  1376. /**
  1377.  * RIL_REQUEST_OEM_HOOK_RAW
  1378.  *
  1379.  * This request reserved for OEM-specific uses. It passes raw byte arrays
  1380.  * back and forth.
  1381.  *
  1382.  * It can be invoked on the Java side from 
  1383.  * com.android.internal.telephony.Phone.invokeOemRilRequestRaw()
  1384.  *
  1385.  * "data" is a char * of bytes copied from the byte[] data argument in java
  1386.  * "response" is a char * of bytes that will returned via the
  1387.  * caller's "response" Message here: 
  1388.  * (byte[])(((AsyncResult)response.obj).result)
  1389.  *
  1390.  * An error response here will result in 
  1391.  * (((AsyncResult)response.obj).result) == null and 
  1392.  * (((AsyncResult)response.obj).exception) being an instance of
  1393.  * com.android.internal.telephony.gsm.CommandException
  1394.  *
  1395.  * Valid errors:
  1396.  *  All
  1397.  */
  1398. #define RIL_REQUEST_OEM_HOOK_RAW 59
  1399. /**
  1400.  * RIL_REQUEST_OEM_HOOK_STRINGS
  1401.  *
  1402.  * This request reserved for OEM-specific uses. It passes strings
  1403.  * back and forth.
  1404.  *
  1405.  * It can be invoked on the Java side from 
  1406.  * com.android.internal.telephony.Phone.invokeOemRilRequestStrings()
  1407.  *
  1408.  * "data" is a const char **, representing an array of null-terminated UTF-8
  1409.  * strings copied from the "String[] strings" argument to
  1410.  * invokeOemRilRequestStrings()
  1411.  *
  1412.  * "response" is a const char **, representing an array of null-terminated UTF-8
  1413.  * stings that will be returned via the caller's response message here:
  1414.  *
  1415.  * (String[])(((AsyncResult)response.obj).result)
  1416.  *
  1417.  * An error response here will result in 
  1418.  * (((AsyncResult)response.obj).result) == null and 
  1419.  * (((AsyncResult)response.obj).exception) being an instance of
  1420.  * com.android.internal.telephony.gsm.CommandException
  1421.  *
  1422.  * Valid errors:
  1423.  *  All
  1424.  */
  1425. #define RIL_REQUEST_OEM_HOOK_STRINGS 60
  1426. /**
  1427.  * RIL_REQUEST_SCREEN_STATE
  1428.  *
  1429.  * Indicates the current state of the screen.  When the screen is off, the
  1430.  * RIL should notify the baseband to suppress certain notifications (eg,
  1431.  * signal strength and changes in LAC or CID) in an effort to conserve power.
  1432.  * These notifications should resume when the screen is on.
  1433.  *
  1434.  * "data" is int *
  1435.  * ((int *)data)[0] is == 1 for "Screen On"
  1436.  * ((int *)data)[0] is == 0 for "Screen Off"
  1437.  *
  1438.  * "response" is NULL
  1439.  *
  1440.  * Valid errors:
  1441.  *  SUCCESS
  1442.  *  GENERIC_FAILURE
  1443.  */
  1444. #define RIL_REQUEST_SCREEN_STATE 61
  1445. /**
  1446.  * RIL_REQUEST_SET_SUPP_SVC_NOTIFICATION
  1447.  *
  1448.  * Enables/disables supplementary service related notifications
  1449.  * from the network.
  1450.  *
  1451.  * Notifications are reported via RIL_UNSOL_SUPP_SVC_NOTIFICATION.
  1452.  *
  1453.  * "data" is int *
  1454.  * ((int *)data)[0] is == 1 for notifications enabled
  1455.  * ((int *)data)[0] is == 0 for notifications disabled
  1456.  *
  1457.  * "response" is NULL
  1458.  *
  1459.  * Valid errors:
  1460.  *  SUCCESS
  1461.  *  RADIO_NOT_AVAILABLE
  1462.  *  GENERIC_FAILURE
  1463.  *
  1464.  * See also: RIL_UNSOL_SUPP_SVC_NOTIFICATION.
  1465.  */
  1466. #define RIL_REQUEST_SET_SUPP_SVC_NOTIFICATION 62
  1467. /**
  1468.  * RIL_REQUEST_WRITE_SMS_TO_SIM
  1469.  *
  1470.  * Stores a SMS message to SIM memory.
  1471.  *
  1472.  * "data" is RIL_SMS_WriteArgs *
  1473.  *
  1474.  * "response" is int *
  1475.  * ((const int *)response)[0] is the record index where the message is stored.
  1476.  *
  1477.  * Valid errors:
  1478.  *  SUCCESS
  1479.  *  GENERIC_FAILURE
  1480.  *
  1481.  */
  1482. #define RIL_REQUEST_WRITE_SMS_TO_SIM 63
  1483. /**
  1484.  * RIL_REQUEST_DELETE_SMS_ON_SIM
  1485.  *
  1486.  * Deletes a SMS message from SIM memory.
  1487.  *
  1488.  * "data" is int  *
  1489.  * ((int *)data)[0] is the record index of the message to delete.
  1490.  *
  1491.  * "response" is NULL
  1492.  *
  1493.  * Valid errors:
  1494.  *  SUCCESS
  1495.  *  GENERIC_FAILURE
  1496.  *
  1497.  */
  1498. #define RIL_REQUEST_DELETE_SMS_ON_SIM 64
  1499. /**
  1500.  * RIL_REQUEST_SET_BAND_MODE
  1501.  *
  1502.  * Assign a specified band for RF configuration.
  1503.  *
  1504.  * "data" is int *
  1505.  * ((int *)data)[0] is == 0 for "unspecified" (selected by baseband automatically)
  1506.  * ((int *)data)[0] is == 1 for "EURO band" (GSM-900 / DCS-1800 / WCDMA-IMT-2000)
  1507.  * ((int *)data)[0] is == 2 for "US band" (GSM-850 / PCS-1900 / WCDMA-850 / WCDMA-PCS-1900)
  1508.  * ((int *)data)[0] is == 3 for "JPN band" (WCDMA-800 / WCDMA-IMT-2000)
  1509.  * ((int *)data)[0] is == 4 for "AUS band" (GSM-900 / DCS-1800 / WCDMA-850 / WCDMA-IMT-2000)
  1510.  * ((int *)data)[0] is == 5 for "AUS band 2" (GSM-900 / DCS-1800 / WCDMA-850)
  1511.  *
  1512.  * "response" is NULL
  1513.  *
  1514.  * Valid errors:
  1515.  *  SUCCESS
  1516.  *  RADIO_NOT_AVAILABLE
  1517.  *  GENERIC_FAILURE
  1518.  */
  1519. #define RIL_REQUEST_SET_BAND_MODE 65
  1520. /**
  1521.  * RIL_REQUEST_QUERY_AVAILABLE_BAND_MODE
  1522.  *
  1523.  * Query the list of band mode supported by RF.
  1524.  *
  1525.  * "data" is NULL
  1526.  *
  1527.  * "response" is int *
  1528.  * "response" points to an array of int's, the int[0] is the size of array, reset is one for
  1529.  * each available band mode.
  1530.  *
  1531.  *  0 for "unspecified" (selected by baseband automatically)
  1532.  *  1 for "EURO band" (GSM-900 / DCS-1800 / WCDMA-IMT-2000)
  1533.  *  2 for "US band" (GSM-850 / PCS-1900 / WCDMA-850 / WCDMA-PCS-1900)
  1534.  *  3 for "JPN band" (WCDMA-800 / WCDMA-IMT-2000)
  1535.  *  4 for "AUS band" (GSM-900 / DCS-1800 / WCDMA-850 / WCDMA-IMT-2000)
  1536.  *  5 for "AUS band 2" (GSM-900 / DCS-1800 / WCDMA-850)
  1537.  *
  1538.  * Valid errors:
  1539.  *  SUCCESS
  1540.  *  RADIO_NOT_AVAILABLE
  1541.  *  GENERIC_FAILURE
  1542.  *
  1543.  * See also: RIL_REQUEST_SET_BAND_MODE
  1544.  */
  1545. #define RIL_REQUEST_QUERY_AVAILABLE_BAND_MODE 66
  1546. /**
  1547.  * RIL_REQUEST_STK_GET_PROFILE
  1548.  *
  1549.  * Requests the profile of SIM tool kit.
  1550.  * The profile indicates the SAT/USAT features supported by ME.
  1551.  * The SAT/USAT features refer to 3GPP TS 11.14 and 3GPP TS 31.111
  1552.  *
  1553.  * "data" is NULL
  1554.  *
  1555.  * "response" is a const char * containing SAT/USAT profile
  1556.  * in hexadecimal format string starting with first byte of terminal profile
  1557.  *
  1558.  * Valid errors:
  1559.  *  RIL_E_SUCCESS
  1560.  *  RIL_E_RADIO_NOT_AVAILABLE (radio resetting)
  1561.  *  RIL_E_GENERIC_FAILURE
  1562.  */
  1563. #define RIL_REQUEST_STK_GET_PROFILE 67
  1564. /**
  1565.  * RIL_REQUEST_STK_SET_PROFILE
  1566.  *
  1567.  * Download the STK terminal profile as part of SIM initialization
  1568.  * procedure
  1569.  *
  1570.  * "data" is a const char * containing SAT/USAT profile
  1571.  * in hexadecimal format string starting with first byte of terminal profile
  1572.  *
  1573.  * "response" is NULL
  1574.  *
  1575.  * Valid errors:
  1576.  *  RIL_E_SUCCESS
  1577.  *  RIL_E_RADIO_NOT_AVAILABLE (radio resetting)
  1578.  *  RIL_E_GENERIC_FAILURE
  1579.  */
  1580. #define RIL_REQUEST_STK_SET_PROFILE 68
  1581. /**
  1582.  * RIL_REQUEST_STK_SEND_ENVELOPE_COMMAND
  1583.  *
  1584.  * Requests to send a SAT/USAT envelope command to SIM.
  1585.  * The SAT/USAT envelope command refers to 3GPP TS 11.14 and 3GPP TS 31.111
  1586.  *
  1587.  * "data" is a const char * containing SAT/USAT command
  1588.  * in hexadecimal format string starting with command tag
  1589.  *
  1590.  * "response" is a const char * containing SAT/USAT response
  1591.  * in hexadecimal format string starting with first byte of response
  1592.  * (May be NULL)
  1593.  *
  1594.  * Valid errors:
  1595.  *  RIL_E_SUCCESS
  1596.  *  RIL_E_RADIO_NOT_AVAILABLE (radio resetting)
  1597.  *  RIL_E_GENERIC_FAILURE
  1598.  */
  1599. #define RIL_REQUEST_STK_SEND_ENVELOPE_COMMAND 69
  1600. /**
  1601.  * RIL_REQUEST_STK_SEND_TERMINAL_RESPONSE
  1602.  *
  1603.  * Requests to send a terminal response to SIM for a received
  1604.  * proactive command
  1605.  *
  1606.  * "data" is a const char * containing SAT/USAT response
  1607.  * in hexadecimal format string starting with first byte of response data
  1608.  *
  1609.  * "response" is NULL
  1610.  *
  1611.  * Valid errors:
  1612.  *  RIL_E_SUCCESS
  1613.  *  RIL_E_RADIO_NOT_AVAILABLE (radio resetting)
  1614.  *  RIL_E_GENERIC_FAILURE
  1615.  */
  1616. #define RIL_REQUEST_STK_SEND_TERMINAL_RESPONSE 70
  1617. /**
  1618.  * RIL_REQUEST_STK_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM
  1619.  *
  1620.  * When STK application gets RIL_UNSOL_STK_CALL_SETUP, the call actually has
  1621.  * been initialized by ME already. (We could see the call has been in the 'call
  1622.  * list') So, STK application needs to accept/reject the call according as user
  1623.  * operations.
  1624.  *
  1625.  * "data" is int *
  1626.  * ((int *)data)[0] is > 0 for "accept" the call setup
  1627.  * ((int *)data)[0] is == 0 for "reject" the call setup
  1628.  *
  1629.  * "response" is NULL
  1630.  *
  1631.  * Valid errors:
  1632.  *  RIL_E_SUCCESS
  1633.  *  RIL_E_RADIO_NOT_AVAILABLE (radio resetting)
  1634.  *  RIL_E_GENERIC_FAILURE
  1635.  */
  1636. #define RIL_REQUEST_STK_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM 71
  1637. /**
  1638.  * RIL_REQUEST_EXPLICIT_CALL_TRANSFER
  1639.  *
  1640.  * Connects the two calls and disconnects the subscriber from both calls.
  1641.  * 
  1642.  * "data" is NULL
  1643.  * "response" is NULL
  1644.  *
  1645.  * Valid errors:
  1646.  *  SUCCESS 
  1647.  *  RADIO_NOT_AVAILABLE (radio resetting)
  1648.  *  GENERIC_FAILURE
  1649.  */
  1650. #define RIL_REQUEST_EXPLICIT_CALL_TRANSFER 72
  1651. /**
  1652.  * RIL_REQUEST_SET_PREFERRED_NETWORK_TYPE
  1653.  *
  1654.  * Requests to set the preferred network type for searching and registering
  1655.  * (CS/PS domain, RAT, and operation mode)
  1656.  *
  1657.  * "data" is int *
  1658.  * ((int *)data)[0] is == 0 for WCDMA preferred (auto mode)
  1659.  * ((int *)data)[0] is == 1 for GSM only
  1660.  * ((int *)data)[0] is == 2 for WCDMA only
  1661.  *
  1662.  * "response" is NULL
  1663.  *
  1664.  * Valid errors:
  1665.  *  RIL_E_SUCCESS
  1666.  *  RIL_E_RADIO_NOT_AVAILABLE (radio resetting)
  1667.  *  RIL_E_GENERIC_FAILURE
  1668.  */
  1669. #define RIL_REQUEST_SET_PREFERRED_NETWORK_TYPE 73
  1670. /**
  1671.  * RIL_REQUEST_GET_PREFERRED_NETWORK_TYPE
  1672.  *
  1673.  * Query the preferred network type (CS/PS domain, RAT, and operation mode)
  1674.  * for searching and registering
  1675.  *
  1676.  * "data" is NULL
  1677.  *
  1678.  * "response" is int *
  1679.  * ((int *)response)[0] is == 0 for WCDMA preferred (auto mode)
  1680.  * ((int *)response)[0] is == 1 for GSM only
  1681.  * ((int *)response)[0] is == 2 for WCDMA only
  1682.  *
  1683.  * Valid errors:
  1684.  *  SUCCESS
  1685.  *  RADIO_NOT_AVAILABLE
  1686.  *  GENERIC_FAILURE
  1687.  *
  1688.  * See also: RIL_REQUEST_SET_PREFERRED_NETWORK_TYPE
  1689.  */
  1690. #define RIL_REQUEST_GET_PREFERRED_NETWORK_TYPE 74
  1691. /**
  1692.  * RIL_REQUEST_NEIGHBORING_CELL_IDS
  1693.  *
  1694.  * Request neighboring cell id in GSM network
  1695.  *
  1696.  * "data" is NULL
  1697.  * "response" must be a " const RIL_NeighboringCell** "
  1698.  *
  1699.  * Valid errors:
  1700.  *  SUCCESS
  1701.  *  RADIO_NOT_AVAILABLE
  1702.  *  GENERIC_FAILURE
  1703.  */
  1704. #define RIL_REQUEST_GET_NEIGHBORING_CELL_IDS 75
  1705. /**
  1706.  * RIL_REQUEST_SET_LOCATION_UPDATES
  1707.  *
  1708.  * Enables/disables network state change notifications due to changes in
  1709.  * LAC and/or CID (basically, +CREG=2 vs. +CREG=1).  
  1710.  *
  1711.  * Note:  The RIL implementation should default to "updates enabled"
  1712.  * when the screen is on and "updates disabled" when the screen is off.
  1713.  *
  1714.  * "data" is int *
  1715.  * ((int *)data)[0] is == 1 for updates enabled (+CREG=2)
  1716.  * ((int *)data)[0] is == 0 for updates disabled (+CREG=1)
  1717.  *
  1718.  * "response" is NULL
  1719.  *
  1720.  * Valid errors:
  1721.  *  SUCCESS
  1722.  *  RADIO_NOT_AVAILABLE
  1723.  *  GENERIC_FAILURE
  1724.  *
  1725.  * See also: RIL_REQUEST_SCREEN_STATE, RIL_UNSOL_RESPONSE_NETWORK_STATE_CHANGED
  1726.  */
  1727. #define RIL_REQUEST_SET_LOCATION_UPDATES 76
  1728. /***********************************************************************/
  1729. #define RIL_UNSOL_RESPONSE_BASE 1000
  1730. /**
  1731.  * RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED
  1732.  *
  1733.  * Indicate when value of RIL_RadioState has changed.
  1734.  *
  1735.  * Callee will invoke RIL_RadioStateRequest method on main thread
  1736.  *
  1737.  * "data" is NULL
  1738.  */
  1739. #define RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED 1000
  1740. /**
  1741.  * RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED
  1742.  *
  1743.  * Indicate when call state has changed
  1744.  *
  1745.  * Callee will invoke RIL_REQUEST_GET_CURRENT_CALLS on main thread
  1746.  *
  1747.  * "data" is NULL
  1748.  *
  1749.  * Response should be invoked on, for example, 
  1750.  * "RING", "BUSY", "NO CARRIER", and also call state
  1751.  * transitions (DIALING->ALERTING ALERTING->ACTIVE)
  1752.  *
  1753.  * Redundent or extraneous invocations are tolerated
  1754.  */
  1755. #define RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED 1001
  1756. /**
  1757.  * RIL_UNSOL_RESPONSE_NETWORK_STATE_CHANGED 
  1758.  *
  1759.  * Called when network state, operator name, or GPRS state has changed
  1760.  * Basically on, +CREG and +CGREG
  1761.  *
  1762.  * Callee will invoke the following requests on main thread:
  1763.  *
  1764.  * RIL_REQUEST_REGISTRATION_STATE
  1765.  * RIL_REQUEST_GPRS_REGISTRATION_STATE
  1766.  * RIL_REQUEST_OPERATOR
  1767.  *
  1768.  * "data" is NULL
  1769.  *
  1770.  * FIXME should this happen when SIM records are loaded? (eg, for
  1771.  * EONS)
  1772.  */
  1773. #define RIL_UNSOL_RESPONSE_NETWORK_STATE_CHANGED 1002
  1774. /**
  1775.  * RIL_UNSOL_RESPONSE_NEW_SMS
  1776.  *
  1777.  * Called when new SMS is received.
  1778.  * 
  1779.  * "data" is const char *
  1780.  * This is a pointer to a string containing the PDU of an SMS-DELIVER
  1781.  * as an ascii string of hex digits. The PDU starts with the SMSC address
  1782.  * per TS 27.005 (+CMT:)
  1783.  *
  1784.  * Callee will subsequently confirm the receipt of thei SMS with a
  1785.  * RIL_REQUEST_SMS_ACKNOWLEDGE
  1786.  *
  1787.  * No new RIL_UNSOL_RESPONSE_NEW_SMS 
  1788.  * or RIL_UNSOL_RESPONSE_NEW_SMS_STATUS_REPORT messages should be sent until a
  1789.  * RIL_REQUEST_SMS_ACKNOWLEDGE has been received
  1790.  */
  1791. #define RIL_UNSOL_RESPONSE_NEW_SMS 1003
  1792. /**
  1793.  * RIL_UNSOL_RESPONSE_NEW_SMS_STATUS_REPORT
  1794.  *
  1795.  * Called when new SMS Status Report is received.
  1796.  * 
  1797.  * "data" is const char *
  1798.  * This is a pointer to a string containing the PDU of an SMS-STATUS-REPORT
  1799.  * as an ascii string of hex digits. The PDU starts with the SMSC address
  1800.  * per TS 27.005 (+CDS:).
  1801.  *
  1802.  * Callee will subsequently confirm the receipt of the SMS with a
  1803.  * RIL_REQUEST_SMS_ACKNOWLEDGE
  1804.  *
  1805.  * No new RIL_UNSOL_RESPONSE_NEW_SMS 
  1806.  * or RIL_UNSOL_RESPONSE_NEW_SMS_STATUS_REPORT messages should be sent until a
  1807.  * RIL_REQUEST_SMS_ACKNOWLEDGE has been received
  1808.  */
  1809. #define RIL_UNSOL_RESPONSE_NEW_SMS_STATUS_REPORT 1004
  1810. /**
  1811.  * RIL_UNSOL_RESPONSE_NEW_SMS_ON_SIM
  1812.  *
  1813.  * Called when new SMS has been stored on SIM card
  1814.  * 
  1815.  * "data" is const int *
  1816.  * ((const int *)data)[0] contains the slot index on the SIM that contains
  1817.  * the new message
  1818.  */
  1819. #define RIL_UNSOL_RESPONSE_NEW_SMS_ON_SIM 1005
  1820. /**
  1821.  * RIL_UNSOL_ON_USSD
  1822.  *
  1823.  * Called when a new USSD message is received.
  1824.  *
  1825.  * "data" is const char **
  1826.  * ((const char **)data)[0] points to a type code, which is 
  1827.  *  one of these string values:
  1828.  *      "0"   USSD-Notify -- text in ((const char **)data)[1]
  1829.  *      "1"   USSD-Request -- text in ((const char **)data)[1]
  1830.  *      "2"   Session terminated by network
  1831.  *      "3"   other local client (eg, SIM Toolkit) has responded
  1832.  *      "4"   Operation not supported
  1833.  *      "5"   Network timeout
  1834.  *
  1835.  * The USSD session is assumed to persist if the type code is "1", otherwise
  1836.  * the current session (if any) is assumed to have terminated.
  1837.  *
  1838.  * ((const char **)data)[1] points to a message string if applicable, which
  1839.  * should always be in UTF-8.
  1840.  */
  1841. #define RIL_UNSOL_ON_USSD 1006
  1842. /* Previously #define RIL_UNSOL_ON_USSD_NOTIFY 1006   */
  1843. /**
  1844.  * RIL_UNSOL_ON_USSD_REQUEST
  1845.  *
  1846.  * Obsolete. Send via RIL_UNSOL_ON_USSD
  1847.  */
  1848. #define RIL_UNSOL_ON_USSD_REQUEST 1007 
  1849. /**
  1850.  * RIL_UNSOL_NITZ_TIME_RECEIVED
  1851.  *
  1852.  * Called when radio has received a NITZ time message
  1853.  *
  1854.  * "data" is const char * pointing to NITZ time string
  1855.  * in the form "yy/mm/dd,hh:mm:ss(+/-)tz,dt"
  1856.  */
  1857. #define RIL_UNSOL_NITZ_TIME_RECEIVED  1008
  1858. /**
  1859.  * RIL_UNSOL_SIGNAL_STRENGTH
  1860.  *
  1861.  * Radio may report signal strength rather han have it polled.
  1862.  *
  1863.  * "data" is an "int *"
  1864.  * ((int *)response)[0] is received signal strength (0-31, 99)
  1865.  * ((int *)response)[1] is bit error rate (0-7, 99)
  1866.  *  as defined in TS 27.007 8.5
  1867.  *  Other values (eg -1) are not legal
  1868.  */
  1869. #define RIL_UNSOL_SIGNAL_STRENGTH  1009
  1870. /**
  1871.  * RIL_UNSOL_PDP_CONTEXT_LIST_CHANGED
  1872.  *
  1873.  * Indicate a PDP context state has changed, or a new context
  1874.  * has been activated or deactivated
  1875.  *
  1876.  * "data" is an array of RIL_PDP_Context_Response identical to that
  1877.  * returned by RIL_REQUEST_PDP_CONTEXT_LIST
  1878.  *
  1879.  * See also: RIL_REQUEST_PDP_CONTEXT_LIST
  1880.  */
  1881. #define RIL_UNSOL_PDP_CONTEXT_LIST_CHANGED 1010
  1882. /**
  1883.  * RIL_UNSOL_SUPP_SVC_NOTIFICATION
  1884.  *
  1885.  * Reports supplementary service related notification from the network.
  1886.  *
  1887.  * "data" is a const RIL_SuppSvcNotification *
  1888.  *
  1889.  */
  1890. #define RIL_UNSOL_SUPP_SVC_NOTIFICATION 1011
  1891. /**
  1892.  * RIL_UNSOL_STK_SESSION_END
  1893.  *
  1894.  * Indicate when STK session is terminated by SIM.
  1895.  *
  1896.  * "data" is NULL
  1897.  */
  1898. #define RIL_UNSOL_STK_SESSION_END 1012
  1899. /**
  1900.  * RIL_UNSOL_STK_PROACTIVE_COMMAND
  1901.  *
  1902.  * Indicate when SIM issue a STK proactive command to applications
  1903.  *
  1904.  * "data" is a const char * containing SAT/USAT proactive command
  1905.  * in hexadecimal format string starting with command tag
  1906.  *
  1907.  */
  1908. #define RIL_UNSOL_STK_PROACTIVE_COMMAND 1013
  1909. /**
  1910.  * RIL_UNSOL_STK_EVENT_NOTIFY
  1911.  *
  1912.  * Indicate when SIM notifies applcations some event happens.
  1913.  * Generally, application does not need to have any feedback to
  1914.  * SIM but shall be able to indicate appropriate messages to users.
  1915.  *
  1916.  * "data" is a const char * containing SAT/USAT commands or responses
  1917.  * sent by ME to SIM or commands handled by ME, in hexadecimal format string
  1918.  * starting with first byte of response data or command tag
  1919.  *
  1920.  */
  1921. #define RIL_UNSOL_STK_EVENT_NOTIFY 1014
  1922. /**
  1923.  * RIL_UNSOL_STK_CALL_SETUP
  1924.  *
  1925.  * Indicate when SIM wants application to setup a voice call.
  1926.  *
  1927.  * "data" is const int *
  1928.  * ((const int *)data)[0] contains timeout value (in milliseconds)
  1929.  */
  1930. #define RIL_UNSOL_STK_CALL_SETUP 1015
  1931. /**
  1932.  * RIL_UNSOL_SIM_SMS_STORAGE_FULL
  1933.  *
  1934.  * Indicates that SMS storage on the SIM is full.  Sent when the network
  1935.  * attempts to deliver a new SMS message.  Messages cannot be saved on the
  1936.  * SIM until space is freed.  In particular, incoming Class 2 messages
  1937.  * cannot be stored.
  1938.  *
  1939.  * "data" is null
  1940.  *
  1941.  */
  1942. #define RIL_UNSOL_SIM_SMS_STORAGE_FULL 1016
  1943. /**
  1944.  * RIL_UNSOL_SIM_REFRESH
  1945.  *
  1946.  * Indicates that file(s) on the SIM have been updated, or the SIM
  1947.  * has been reinitialized.
  1948.  *
  1949.  * "data" is an int *
  1950.  * ((int *)data)[0] is a RIL_SimRefreshResult.
  1951.  * ((int *)data)[1] is the EFID of the updated file if the result is
  1952.  * SIM_FILE_UPDATE or NULL for any other result.
  1953.  *
  1954.  * Note: If the radio state changes as a result of the SIM refresh (eg,
  1955.  * SIM_READY -> SIM_LOCKED_OR_ABSENT), RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED
  1956.  * should be sent.
  1957.  */
  1958. #define RIL_UNSOL_SIM_REFRESH 1017
  1959. /**
  1960.  * RIL_UNSOL_CALL_RING
  1961.  *
  1962.  * Ring indication for an incoming call (eg, RING or CRING event).
  1963.  *
  1964.  * "data" is null
  1965.  */
  1966. #define RIL_UNSOL_CALL_RING 1018
  1967. /***********************************************************************/
  1968. /**
  1969.  * RIL_Request Function pointer
  1970.  *
  1971.  * @param request is one of RIL_REQUEST_*
  1972.  * @param data is pointer to data defined for that RIL_REQUEST_*
  1973.  *        data is owned by caller, and should not be modified or freed by callee
  1974.  * @param t should be used in subsequent call to RIL_onResponse
  1975.  * @param datalen the length of data
  1976.  *
  1977.  */
  1978. typedef void (*RIL_RequestFunc) (int request, void *data, 
  1979.                                     size_t datalen, RIL_Token t);
  1980. /**
  1981.  * This function should return the current radio state synchronously
  1982.  */
  1983. typedef RIL_RadioState (*RIL_RadioStateRequest)();
  1984. /**
  1985.  * This function returns "1" if the specified RIL_REQUEST code is
  1986.  * supported and 0 if it is not
  1987.  *
  1988.  * @param requestCode is one of RIL_REQUEST codes
  1989.  */
  1990. typedef int (*RIL_Supports)(int requestCode);
  1991. /**
  1992.  * This function is called from a separate thread--not the 
  1993.  * thread that calls RIL_RequestFunc--and indicates that a pending
  1994.  * request should be cancelled.
  1995.  * 
  1996.  * On cancel, the callee should do its best to abandon the request and
  1997.  * call RIL_onRequestComplete with RIL_Errno CANCELLED at some later point.
  1998.  *
  1999.  * Subsequent calls to  RIL_onRequestComplete for this request with
  2000.  * other results will be tolerated but ignored. (That is, it is valid
  2001.  * to ignore the cancellation request)
  2002.  *
  2003.  * RIL_Cancel calls should return immediately, and not wait for cancellation
  2004.  *
  2005.  * Please see ITU v.250 5.6.1 for how one might implement this on a TS 27.007 
  2006.  * interface
  2007.  *
  2008.  * @param t token wants to be canceled
  2009.  */
  2010. typedef void (*RIL_Cancel)(RIL_Token t);
  2011. typedef void (*RIL_TimedCallback) (void *param);
  2012. /**
  2013.  * Return a version string for your RIL implementation
  2014.  */
  2015. typedef const char * (*RIL_GetVersion) (void);
  2016. typedef struct {
  2017.     int version;        /* set to RIL_VERSION */
  2018.     RIL_RequestFunc onRequest;
  2019.     RIL_RadioStateRequest onStateRequest;
  2020.     RIL_Supports supports;
  2021.     RIL_Cancel onCancel;
  2022.     RIL_GetVersion getVersion;
  2023. } RIL_RadioFunctions;
  2024. #ifdef RIL_SHLIB
  2025. struct RIL_Env {
  2026.     /**
  2027.      * "t" is parameter passed in on previous call to RIL_Notification
  2028.      * routine.
  2029.      *
  2030.      * If "e" != SUCCESS, then response can be null/is ignored
  2031.      *
  2032.      * "response" is owned by caller, and should not be modified or 
  2033.      * freed by callee
  2034.      *
  2035.      * RIL_onRequestComplete will return as soon as possible
  2036.      */
  2037.     void (*OnRequestComplete)(RIL_Token t, RIL_Errno e, 
  2038.                            void *response, size_t responselen);
  2039.     /**
  2040.      * "unsolResponse" is one of RIL_UNSOL_RESPONSE_*
  2041.      * "data" is pointer to data defined for that RIL_UNSOL_RESPONSE_*
  2042.      *
  2043.      * "data" is owned by caller, and should not be modified or freed by callee
  2044.      */
  2045.     void (*OnUnsolicitedResponse)(int unsolResponse, const void *data, 
  2046.                                     size_t datalen);
  2047.     /**
  2048.      * Call user-specifed "callback" function on on the same thread that 
  2049.      * RIL_RequestFunc is called. If "relativeTime" is specified, then it specifies
  2050.      * a relative time value at which the callback is invoked. If relativeTime is
  2051.      * NULL or points to a 0-filled structure, the callback will be invoked as
  2052.      * soon as possible
  2053.      */
  2054.     void (*RequestTimedCallback) (RIL_TimedCallback callback, 
  2055.                                    void *param, const struct timeval *relativeTime);   
  2056. };
  2057. /** 
  2058.  *  RIL implementations must defined RIL_Init 
  2059.  *  argc and argv will be command line arguments intended for the RIL implementation
  2060.  *  Return NULL on error
  2061.  *
  2062.  * @param env is environment point defined as RIL_Env
  2063.  * @param argc number of arguments
  2064.  * @param argv list fo arguments
  2065.  *
  2066.  */
  2067. const RIL_RadioFunctions *RIL_Init(const struct RIL_Env *env, int argc, char **argv);
  2068. #else /* RIL_SHLIB */
  2069. /**
  2070.  * Call this once at startup to register notification routine
  2071.  *
  2072.  * @param callbacks user-specifed callback function
  2073.  */
  2074. void RIL_register (const RIL_RadioFunctions *callbacks);
  2075. /**
  2076.  *
  2077.  * RIL_onRequestComplete will return as soon as possible
  2078.  *
  2079.  * @param t is parameter passed in on previous call to RIL_Notification
  2080.  *          routine.
  2081.  * @param e error code
  2082.  *          if "e" != SUCCESS, then response can be null/is ignored
  2083.  * @param response is owned by caller, and should not be modified or
  2084.  *                 freed by callee
  2085.  * @param responselen the length of response in byte
  2086.  */
  2087. void RIL_onRequestComplete(RIL_Token t, RIL_Errno e, 
  2088.                            void *response, size_t responselen);
  2089. /**
  2090.  * @param unsolResponse is one of RIL_UNSOL_RESPONSE_*
  2091.  * @param data is pointer to data defined for that RIL_UNSOL_RESPONSE_*
  2092.  *     "data" is owned by caller, and should not be modified or freed by callee
  2093.  * @param datalen the length of data in byte
  2094.  */
  2095. void RIL_onUnsolicitedResponse(int unsolResponse, const void *data, 
  2096.                                 size_t datalen);
  2097. /**
  2098.  * Call user-specifed "callback" function on on the same thread that 
  2099.  * RIL_RequestFunc is called. If "relativeTime" is specified, then it specifies
  2100.  * a relative time value at which the callback is invoked. If relativeTime is
  2101.  * NULL or points to a 0-filled structure, the callback will be invoked as
  2102.  * soon as possible
  2103.  *
  2104.  * @param callback user-specifed callback function
  2105.  * @param param parameter list
  2106.  * @param relativeTime a relative time value at which the callback is invoked
  2107.  */
  2108. void RIL_requestTimedCallback (RIL_TimedCallback callback, 
  2109.                                void *param, const struct timeval *relativeTime);
  2110. #endif /* RIL_SHLIB */
  2111. #ifdef __cplusplus
  2112. }
  2113. #endif
  2114. #endif /*ANDROID_RIL_H*/