* the password for APN, or NULL
* @param authType
* the PAP / CHAP auth type. Values is one of SETUP_DATA_AUTH_*
+ * @param protocol
+ * one of the PDP_type values in TS 27.007 section 10.1.1.
+ * For example, "IP", "IPV6", "IPV4V6", or "PPP".
* @param result
* Callback message
*/
- public void setupDataCall(String radioTechnology, String profile, String apn,
- String user, String password, String authType, Message result);
+ public void setupDataCall(String radioTechnology, String profile,
+ String apn, String user, String password, String authType,
+ String protocol, Message result);
/**
* Deactivate packet data connection
: RILConstants.SETUP_DATA_AUTH_NONE;
setupDataCall(Integer.toString(radioTechnology), profile, apn, user,
- password, Integer.toString(authType), result);
+ password, Integer.toString(authType),
+ RILConstants.SETUP_DATA_PROTOCOL_IP, result);
}
deactivateDataCall(cid, result);
}
- /**
- * The preferred new alternative to setupDefaultPDP that is
- * CDMA-compatible.
- *
- */
public void
setupDataCall(String radioTechnology, String profile, String apn,
- String user, String password, String authType, Message result) {
+ String user, String password, String authType, String protocol,
+ Message result) {
RILRequest rr
= RILRequest.obtain(RIL_REQUEST_SETUP_DATA_CALL, result);
- rr.mp.writeInt(6);
+ rr.mp.writeInt(7);
rr.mp.writeString(radioTechnology);
rr.mp.writeString(profile);
rr.mp.writeString(user);
rr.mp.writeString(password);
rr.mp.writeString(authType);
+ rr.mp.writeString(protocol);
if (RILJ_LOGD) riljLog(rr.serialString() + "> "
+ requestToString(rr.mRequest) + " " + radioTechnology + " "
+ profile + " " + apn + " " + user + " "
- + password + " " + authType);
+ + password + " " + authType + " " + protocol);
send(rr);
}
dataCall.active = p.readInt();
dataCall.type = p.readString();
dataCall.apn = p.readString();
- dataCall.address = p.readString();
+ String address = p.readString();
+ if (address != null) {
+ address = address.split(" ")[0];
+ }
+ dataCall.address = address;
response.add(dataCall);
}
/* Setup a packet data connection. See ril.h RIL_REQUEST_SETUP_DATA_CALL */
int SETUP_DATA_TECH_CDMA = 0;
int SETUP_DATA_TECH_GSM = 1;
+
int SETUP_DATA_AUTH_NONE = 0;
int SETUP_DATA_AUTH_PAP = 1;
int SETUP_DATA_AUTH_CHAP = 2;
int SETUP_DATA_AUTH_PAP_CHAP = 3;
+ String SETUP_DATA_PROTOCOL_IP = "IP";
+ String SETUP_DATA_PROTOCOL_IPV6 = "IPV6";
+ String SETUP_DATA_PROTOCOL_IPV4V6 = "IPV4V6";
+
/*
cat include/telephony/ril.h | \
egrep '^#define' | \
// msg.obj will be returned in AsyncResult.userObj;
Message msg = obtainMessage(EVENT_SETUP_DATA_CONNECTION_DONE, cp);
msg.obj = cp;
- phone.mCM.setupDataCall(Integer.toString(RILConstants.SETUP_DATA_TECH_CDMA),
- Integer.toString(dataProfile), null, null,
- null, Integer.toString(RILConstants.SETUP_DATA_AUTH_PAP_CHAP), msg);
+ phone.mCM.setupDataCall(
+ Integer.toString(RILConstants.SETUP_DATA_TECH_CDMA),
+ Integer.toString(dataProfile),
+ null, null, null,
+ Integer.toString(RILConstants.SETUP_DATA_AUTH_PAP_CHAP),
+ RILConstants.SETUP_DATA_PROTOCOL_IP, msg);
}
@Override
authType = (apn.user != null) ? RILConstants.SETUP_DATA_AUTH_PAP_CHAP :
RILConstants.SETUP_DATA_AUTH_NONE;
}
- phone.mCM.setupDataCall(Integer.toString(RILConstants.SETUP_DATA_TECH_GSM),
- Integer.toString(RILConstants.DATA_PROFILE_DEFAULT), apn.apn, apn.user,
- apn.password, Integer.toString(authType), msg);
+ phone.mCM.setupDataCall(
+ Integer.toString(RILConstants.SETUP_DATA_TECH_GSM),
+ Integer.toString(RILConstants.DATA_PROFILE_DEFAULT),
+ apn.apn, apn.user, apn.password, Integer.toString(authType),
+ RILConstants.SETUP_DATA_PROTOCOL_IP, msg);
}
@Override
public void setupDataCall(String radioTechnology, String profile,
String apn, String user, String password, String authType,
- Message result) {
+ String protcol, Message result) {
}
public void deactivateDataCall(int cid, Message result) {
unimplemented(result);
}
- public void setupDataCall(String radioTechnology, String profile, String apn, String user,
- String password, String authType, Message result) {
+ public void setupDataCall(String radioTechnology, String profile,
+ String apn, String user, String password, String authType,
+ String protocol, Message result) {
unimplemented(result);
}