BQB认证中HFP常见的failed case TC_AG_TCA_BV_05_I
时间:10-02
整理:3721RD
点击:
[DESCRIPTION]
实验室过BQB认证时,会遇到这个HFP常见的failed case:
TC_AG_TCA_BV_05_I:
测试目的:To verify, following the proper procedure that the AG in the presence of an
incoming waiting call, terminates the active call upon receiving AT+CHUP command fROM
the HF device.
Fail log:
- SDP Service record for PTS: 'Handsfree HF' successfully registered
- The IUT claims support for the following eSCO LMP packet types: EV3, EV4, EV5, 2-EV3,
3-EV3,
- AT: SPP connect succeeded
- AT: Service Level Connection established
- AT: post SLC command sequence complete
- AT: RING
- AT: Received +CLIP: "075582734899",129
- AT: Incoming call established
- HCI: Audio Connection enabled
- AT: Received +CCWA: "075582714640",129
-FATAL ERROR (AT): (callsetup=0) received when there is still a waiting call, and there
is no pending CHLD action to disable that waiting call, and when there has been no
indication the waiting call has been made held or active.
- MTC received unexpected EXIT message from AT component
- AT: Call terminated
- HCI: Audio Connection disabled
- AT: SPP disconnect succeeded
- MTC: Test case ended
Final Verdict : Inconclusive
[SOLUTION]
PTS对 AT+CHUP 定义较严格, 只能挂掉Active call, mtk的处理方式是 "挂掉Active call, 接起Waiting call",
此时会多送一个 +CIEV: 3, 0, 便会被PTS是为错误,但是有符合SIG规范中testcase的要求,对比SAMSUNG S3,或者是GALAXY nexus, 也是会发生相同的error,目前的做法是请实验室室抓取此case的sniffer log供BQE审核即可。
若一定希望看到沒有FAIL的TEST REPORT的话, 可以有辦法修改,但是会造成 1A1W时, 接起Active, Waiting call 不会被接起,虽然这样就符合PTS要求, 但是是用者体验可能会有差异。
可以跑pass的修改方案:
将bluetoothHandsfree.Java (packages\apps\phone\src\com\mediatek\blueangel)中的函数
private void initializeHandsfreeAtParser() 中的语句parser.register("+CHUP", new
AtCommandHandler()中的
if (isVirtualCallInProgress()) {
terminateScoUsingVirtualVoiceCall();
} else {
if (mCM.hasActiveFgCall()) {
//PhoneUtils.hangupActiveCall(mCM.getActiveFgCall());
// We don't want to accept other calls after active call is hangedup
try {
Call fgCall = mCM.getActiveFgCall();
if(fgCall != null){
fgCall.hangup();
}else{
logWarn("mCM.getActiveFgCall return null");
}
}catch(CallStateException e){
logErr("mCM.hangupActiveCall failed");
}
}
修改为
if (isVirtualCallInProgress()) {
terminateScoUsingVirtualVoiceCall();
} else {
if (mCM.hasActiveFgCall()) {
//PhoneUtils.hangupActiveCall(mCM.getActiveFgCall());
// We don't want to accept other calls after active call is hangedup
try {
Call fgCall = mCM.getActiveFgCall();
if(fgCall != null){
mCM.hangupActiveCall(fgCall);
}else{
logWarn("mCM.getActiveFgCall return null");
}
}catch(CallStateException e){
logErr("mCM.hangupActiveCall failed");
}
}
实验室过BQB认证时,会遇到这个HFP常见的failed case:
TC_AG_TCA_BV_05_I:
测试目的:To verify, following the proper procedure that the AG in the presence of an
incoming waiting call, terminates the active call upon receiving AT+CHUP command fROM
the HF device.
Fail log:
- SDP Service record for PTS: 'Handsfree HF' successfully registered
- The IUT claims support for the following eSCO LMP packet types: EV3, EV4, EV5, 2-EV3,
3-EV3,
- AT: SPP connect succeeded
- AT: Service Level Connection established
- AT: post SLC command sequence complete
- AT: RING
- AT: Received +CLIP: "075582734899",129
- AT: Incoming call established
- HCI: Audio Connection enabled
- AT: Received +CCWA: "075582714640",129
-FATAL ERROR (AT): (callsetup=0) received when there is still a waiting call, and there
is no pending CHLD action to disable that waiting call, and when there has been no
indication the waiting call has been made held or active.
- MTC received unexpected EXIT message from AT component
- AT: Call terminated
- HCI: Audio Connection disabled
- AT: SPP disconnect succeeded
- MTC: Test case ended
Final Verdict : Inconclusive
[SOLUTION]
PTS对 AT+CHUP 定义较严格, 只能挂掉Active call, mtk的处理方式是 "挂掉Active call, 接起Waiting call",
此时会多送一个 +CIEV: 3, 0, 便会被PTS是为错误,但是有符合SIG规范中testcase的要求,对比SAMSUNG S3,或者是GALAXY nexus, 也是会发生相同的error,目前的做法是请实验室室抓取此case的sniffer log供BQE审核即可。
若一定希望看到沒有FAIL的TEST REPORT的话, 可以有辦法修改,但是会造成 1A1W时, 接起Active, Waiting call 不会被接起,虽然这样就符合PTS要求, 但是是用者体验可能会有差异。
可以跑pass的修改方案:
将bluetoothHandsfree.Java (packages\apps\phone\src\com\mediatek\blueangel)中的函数
private void initializeHandsfreeAtParser() 中的语句parser.register("+CHUP", new
AtCommandHandler()中的
if (isVirtualCallInProgress()) {
terminateScoUsingVirtualVoiceCall();
} else {
if (mCM.hasActiveFgCall()) {
//PhoneUtils.hangupActiveCall(mCM.getActiveFgCall());
// We don't want to accept other calls after active call is hangedup
try {
Call fgCall = mCM.getActiveFgCall();
if(fgCall != null){
fgCall.hangup();
}else{
logWarn("mCM.getActiveFgCall return null");
}
}catch(CallStateException e){
logErr("mCM.hangupActiveCall failed");
}
}
修改为
if (isVirtualCallInProgress()) {
terminateScoUsingVirtualVoiceCall();
} else {
if (mCM.hasActiveFgCall()) {
//PhoneUtils.hangupActiveCall(mCM.getActiveFgCall());
// We don't want to accept other calls after active call is hangedup
try {
Call fgCall = mCM.getActiveFgCall();
if(fgCall != null){
mCM.hangupActiveCall(fgCall);
}else{
logWarn("mCM.getActiveFgCall return null");
}
}catch(CallStateException e){
logErr("mCM.hangupActiveCall failed");
}
}
