Other Parts Discussed in Thread: CC2564, TP3094,
Hello,
We are using Bluetopia stack and HFP profile version 1.6 . Our device is hands free device and it does not have a speaker. So we don't want to set up an audio connection with a remote device. Whenever an audio request comes we release the audio.
We want to connect remote AG device and activate voice recognition system (SIRI) over HFP using stack API "HFRE_Set_Remote_Voice_Recognition_Activation()". So we have called this API to activate voice recognition (SIRI) over iphone and it gets activated successfully on IOS version 7 to 13.
But the recently released IOS version 14 shows different behaviour. When we call the API to activate SIRI , the SIRI gets activated after 20 seconds from call to API. I observed the debug logs for both IOS 12 and IOS 14. PFA logs. The initial procedure is the same in both the logs as in the below image.
But confirmation for voice recognition comes late for IOS 14. Also after confirmation IOS 14 sends call active indications though no call is active on the phone. There are multiple features added into IOS 14 SIRi. Also we have doubt that IOS 14 uses the latest version of HFP 1.8. So our concern is how to solve this problem with IOS 14.
*** SDP querry result = 4 HCI Mode Change Event, Status: 0x00, Connection Handle: 1, Mode: Active, Interval: 0 SDP Service Search Attribute Response Received (Size = 0x0010) Service Record: 1: Attribute ID 0x0000 Attribute ID 0x0001 Attribute ID 0x0002 Attribute ID 0x0004 Attribute ID 4 index = 3 desequence Element Length : 2 desequence Element Length : 1 Type: UUID_16 = 0x0100 desequence Element Length : 2 Type: UUID_16 = 0x0003 Type: Unsigned Int = 0x08 SDPQuerry : PORT ID : 0x0C Attribute ID 0x0005 Attribute ID 0x0006 Attribute ID 0x0008 Attribute ID 0x0009 Attribute ID 0x0100 Attribute ID 0x0301 Attribute ID 0x0311 ***** PortId: 8 ***** HFRE Open Port Confirmation, ID: 0x0005, Board: 0x000000000000. Open Port confirmation : ServerPortIndex : 0 OpenPortConfirmation: Number of active connections: 1 etHFRE_Control_Indicator_Status_Confirmation: Serverportindex : 0 HFRE Control Indicator Status Confirmation, ID: 0x0005 Description: SERVICE Value : TRUE. ServerPortIndex : 5. IsConnected : TRUE. IsCallWaiting : FALSE. IsCallOnHold : FALSE. IsInActiveCall : FALSE. IsInActiveSCO : FALSE. IsInActiveAudio : TRUE. etHFRE_Control_Indicator_Status_Confirmation: Serverportindex : 0 HFRE Control Indicator Status Confirmation, ID: 0x0005 Description: CALL Value : FALSE. ServerPortIndex : 5. IsConnected : TRUE. IsCallWaiting : FALSE. IsCallOnHold : FALSE. IsInActiveCall : FALSE. IsInActiveSCO : FALSE. IsInActiveAudio : TRUE. etHFRE_Control_Indicator_Status_Confirmation: Serverportindex : 0 HFRE Control Indicator Status Confirmation, ID: 0x0005 Description: CALLSETUP Value : 0. ServerPortIndex : 5. IsConnected : TRUE. IsCallWaiting : FALSE. IsCallOnHold : FALSE. IsInActiveCall : FALSE. IsInActiveSCO : FALSE. IsInActiveAudio : TRUE. etHFRE_Control_Indicator_Status_Confirmation: Serverportindex : 0 HFRE Control Indicator Status Confirmation, ID: 0x0005 Description: BATTCHG Value : 4. ServerPortIndex : 5. IsConnected : TRUE. IsCallWaiting : FALSE. IsCallOnHold : FALSE. IsInActiveCall : FALSE. IsInActiveSCO : FALSE. IsInActiveAudio : TRUE. etHFRE_Control_Indicator_Status_Confirmation: Serverportindex : 0 HFRE Control Indicator Status Confirmation, ID: 0x0005 Description: SIGNAL Value : 4. ServerPortIndex : 5. IsConnected : TRUE. IsCallWaiting : FALSE. IsCallOnHold : FALSE. IsInActiveCall : FALSE. IsInActiveSCO : FALSE. IsInActiveAudio : TRUE. etHFRE_Control_Indicator_Status_Confirmation: Serverportindex : 0 HFRE Control Indicator Status Confirmation, ID: 0x0005 Description: ROAM Value : FALSE. ServerPortIndex : 5. IsConnected : TRUE. IsCallWaiting : FALSE. IsCallOnHold : FALSE. IsInActiveCall : FALSE. IsInActiveSCO : FALSE. IsInActiveAudio : TRUE. HFRE Open Service Level Connection Indication, ID: 0x0005 RemoteSupportedFeaturesValid : TRUE RemoteSupportedFeatures : 0x000003EF RemoteCallHoldMultipartySupport : 0x0000006F HFRE Enable Call Line Identification 0 HFRE Enable Remote Call Waiting Notification HFRE_Set_Remote_Voice_Recognition_Activation 0. StatusResult 0 ServerPortIndex : 5. IsConnected : TRUE. IsCallWaiting : FALSE. IsCallOnHold : FALSE. IsInActiveCall : FALSE. IsInActiveSCO : FALSE. IsInActiveAudio : TRUE. HFRE Command Result, ID: 0x0005 Type 0 Code 0. HFRE Command Result, ID: 0x0005 Type 0 Code 0. HFRE Command Result, ID: 0x0005 Type 0 Code 0. etHFRE_Codec_Select_Indication, ID: 0x0005 Codec ID: 2. SelectedCodecID 2 HFRE_Send_Select_Codec 2 0 WBS_Connected_Port_ID: 0 HFRE Command Result, ID: 0x0005 Type 0 Code 0. HFRE Audio Connection Indication, SCO/eSCO handle: 0x101 HFP ID: 0x0005, Status: 0x0000. Audio already active on this port index 1 - return without re-routing the audio ServerPortIndex : 5. IsConnected : TRUE. IsCallWaiting : FALSE. IsCallOnHold : FALSE. IsInActiveCall : FALSE. IsInActiveSCO : TRUE. IsInActiveAudio : TRUE. HFRE_release_Audio_Connection: Function Successful. etHFRE_Voice_Recognition_Notification_Indication, ID : 0x0005 voice status : 0x0 HFRE Control Indicator Status Indication, ID: 0x0005 Description: CALLSETUP Value : 2 ServerPortIndex : 5. IsConnected : TRUE. IsCallWaiting : TRUE. IsCallOnHold : FALSE. IsInActiveCall : FALSE. IsInActiveSCO : FALSE. IsInActiveAudio : TRUE. WBS_Connected_Port_ID: 0 NumberOfAnsweredCalls: 0 HFRE Control Indicator Status Indication, ID: 0x0005 Description: CALL Value : TRUE. NumberOfAnsweredCalls++ServerPortIndex : 5. IsConnected : TRUE. IsCallWaiting : FALSE. IsCallOnHold : FALSE. IsInActiveCall : TRUE. IsInActiveSCO : FALSE. IsInActiveAudio : TRUE. WBS_Connected_Port_ID: 0 NumberOfAnsweredCalls: 1 HFRE Control Indicator Status Indication, ID: 0x0005 Description: CALLSETUP Value : 0 ServerPortIndex : 5. IsConnected : TRUE. IsCallWaiting : FALSE. IsCallOnHold : FALSE. IsInActiveCall : TRUE. IsInActiveSCO : FALSE. IsInActiveAudio : TRUE. WBS_Connected_Port_ID: 0 NumberOfAnsweredCalls: 1 etHFRE_Codec_Select_Indication, ID: 0x0005 Codec ID: 2. SelectedCodecID 2 HFRE_Send_Select_Codec 2 0 WBS_Connected_Port_ID: 0 HFRE Command Result, ID: 0x0005 Type 0 Code 0. HFRE Audio Connection Indication, SCO/eSCO handle: 0x101 HFP ID: 0x0005, Status: 0x0000. Second SCO/eSCO channel opened with handle=0x101 Audio already active on port index 1 - return without routing the audio ServerPortIndex : 5. IsConnected : TRUE. IsCallWaiting : FALSE. IsCallOnHold : FALSE. IsInActiveCall : TRUE. IsInActiveSCO : TRUE. IsInActiveAudio : TRUE. HFRE_release_Audio_Connection: Function Successful. HFRE Control Indicator Status Indication, ID: 0x0005 Description: CALL Value : FALSE. ServerPortIndex : 5. IsConnected : TRUE. IsCallWaiting : FALSE. IsCallOnHold : FALSE. IsInActiveCall : FALSE. IsInActiveSCO : FALSE. IsInActiveAudio : TRUE. WBS_Connected_Port_ID: 0 NumberOfAnsweredCalls: 0 HFRE Control Indicator Status Indication, ID: 0x0005 Description: CALLSETUP Value : 2 ServerPortIndex : 5. IsConnected : TRUE. IsCallWaiting : TRUE. IsCallOnHold : FALSE. IsInActiveCall : FALSE. IsInActiveSCO : FALSE. IsInActiveAudio : TRUE. WBS_Connected_Port_ID: 0 NumberOfAnsweredCalls: 0 HFRE Control Indicator Status Indication, ID: 0x0005 Description: CALL Value : TRUE. NumberOfAnsweredCalls++ServerPortIndex : 5. IsConnected : TRUE. IsCallWaiting : FALSE. IsCallOnHold : FALSE. IsInActiveCall : TRUE. IsInActiveSCO : FALSE. IsInActiveAudio : TRUE. WBS_Connected_Port_ID: 0 NumberOfAnsweredCalls: 1 HFRE Control Indicator Status Indication, ID: 0x0005 Description: CALLSETUP Value : 0 ServerPortIndex : 5. IsConnected : TRUE. IsCallWaiting : FALSE. IsCallOnHold : FALSE. IsInActiveCall : TRUE. IsInActiveSCO : FALSE. IsInActiveAudio : TRUE. WBS_Connected_Port_ID: 0 NumberOfAnsweredCalls: 1 etHFRE_Codec_Select_Indication, ID: 0x0005 Codec ID: 2. SelectedCodecID 2 HFRE_Send_Select_Codec 2 0 WBS_Connected_Port_ID: 0 HFRE Command Result, ID: 0x0005 Type 0 Code 0. HFRE Audio Connection Indication, SCO/eSCO handle: 0x101 HFP ID: 0x0005, Status: 0x0000. Second SCO/eSCO channel opened with handle=0x101 Audio already active on port index 1 - return without routing the audio ServerPortIndex : 5. IsConnected : TRUE. IsCallWaiting : FALSE. IsCallOnHold : FALSE. IsInActiveCall : TRUE. IsInActiveSCO : TRUE. IsInActiveAudio : TRUE. HFRE_release_Audio_Connection: Function Successful. HFRE Control Indicator Status Indication, ID: 0x0005 Description: CALL Value : FALSE. ServerPortIndex : 5. IsConnected : TRUE. IsCallWaiting : FALSE. IsCallOnHold : FALSE. IsInActiveCall : FALSE. IsInActiveSCO : FALSE. IsInActiveAudio : TRUE. WBS_Connected_Port_ID: 0 NumberOfAnsweredCalls: 0
*** SDP querry result = 5 SDP Service Search Attribute Response Received (Size = 0x0010) Service Record: 1: Attribute ID 0x0000 Attribute ID 0x0001 Attribute ID 0x0002 Attribute ID 0x0004 Attribute ID 4 index = 3 desequence Element Length : 2 desequence Element Length : 1 Type: UUID_16 = 0x0100 desequence Element Length : 2 Type: UUID_16 = 0x0003 Type: Unsigned Int = 0x08 SDPQuerry : PORT ID : 0x0C Attribute ID 0x0005 Attribute ID 0x0006 Attribute ID 0x0008 Attribute ID 0x0009 Attribute ID 0x0100 Attribute ID 0x0301 Attribute ID 0x0311 ***** PortId: 8 ***** HFRE Open Port Confirmation, ID: 0x0006, Board: 0x000000000000. Open Port confirmation : ServerPortIndex : 0 OpenPortConfirmation: Number of active connections: 1 etHFRE_Control_Indicator_Status_Confirmation: Serverportindex : 0 HFRE Control Indicator Status Confirmation, ID: 0x0006 Description: SERVICE Value : FALSE. ServerPortIndex : 6. IsConnected : TRUE. IsCallWaiting : FALSE. IsCallOnHold : FALSE. IsInActiveCall : FALSE. IsInActiveSCO : FALSE. IsInActiveAudio : TRUE. etHFRE_Control_Indicator_Status_Confirmation: Serverportindex : 0 HFRE Control Indicator Status Confirmation, ID: 0x0006 Description: CALL Value : FALSE. ServerPortIndex : 6. IsConnected : TRUE. IsCallWaiting : FALSE. IsCallOnHold : FALSE. IsInActiveCall : FALSE. IsInActiveSCO : FALSE. IsInActiveAudio : TRUE. etHFRE_Control_Indicator_Status_Confirmation: Serverportindex : 0 HFRE Control Indicator Status Confirmation, ID: 0x0006 Description: CALLSETUP Value : 0. ServerPortIndex : 6. IsConnected : TRUE. IsCallWaiting : FALSE. IsCallOnHold : FALSE. IsInActiveCall : FALSE. IsInActiveSCO : FALSE. IsInActiveAudio : TRUE. etHFRE_Control_Indicator_Status_Confirmation: Serverportindex : 0 HFRE Control Indicator Status Confirmation, ID: 0x0006 Description: BATTCHG Value : 3. ServerPortIndex : 6. IsConnected : TRUE. IsCallWaiting : FALSE. IsCallOnHold : FALSE. IsInActiveCall : FALSE. IsInActiveSCO : FALSE. IsInActiveAudio : TRUE. etHFRE_Control_Indicator_Status_Confirmation: Serverportindex : 0 HFRE Control Indicator Status Confirmation, ID: 0x0006 Description: SIGNAL Value : 1. ServerPortIndex : 6. IsConnected : TRUE. IsCallWaiting : FALSE. IsCallOnHold : FALSE. IsInActiveCall : FALSE. IsInActiveSCO : FALSE. IsInActiveAudio : TRUE. etHFRE_Control_Indicator_Status_Confirmation: Serverportindex : 0 HFRE Control Indicator Status Confirmation, ID: 0x0006 Description: ROAM Value : FALSE. ServerPortIndex : 6. IsConnected : TRUE. IsCallWaiting : FALSE. IsCallOnHold : FALSE. IsInActiveCall : FALSE. IsInActiveSCO : FALSE. IsInActiveAudio : TRUE. HFRE Open Service Level Connection Indication, ID: 0x0006 RemoteSupportedFeaturesValid : TRUE RemoteSupportedFeatures : 0x000007EF RemoteCallHoldMultipartySupport : 0x0000006F HFRE Enable Call Line Identification 0 HFRE Enable Remote Call Waiting Notification HFRE_Set_Remote_Voice_Recognition_Activation 0. StatusResult 0 ServerPortIndex : 6. IsConnected : TRUE. IsCallWaiting : FALSE. IsCallOnHold : FALSE. IsInActiveCall : FALSE. IsInActiveSCO : FALSE. IsInActiveAudio : TRUE. HFRE Command Result, ID: 0x0006 Type 0 Code 0. HFRE Command Result, ID: 0x0006 Type 0 Code 0. HFRE Command Result, ID: 0x0006 Type 0 Code 0. etHFRE_Codec_Select_Indication, ID: 0x0006 Codec ID: 2. SelectedCodecID 2 HFRE_Send_Select_Codec 2 0 WBS_Connected_Port_ID: 0 HFRE Command Result, ID: 0x0006 Type 0 Code 0. HFRE Audio Connection Indication, SCO/eSCO handle: 0x101 HFP ID: 0x0006, Status: 0x0000. Audio already active on this port index 1 - return without re-routing the audio ServerPortIndex : 6. IsConnected : TRUE. IsCallWaiting : FALSE. IsCallOnHold : FALSE. IsInActiveCall : FALSE. IsInActiveSCO : TRUE. IsInActiveAudio : TRUE. HFRE_release_Audio_Connection: Function Successful. etHFRE_Voice_Recognition_Notification_Indication, ID : 0x0006 voice status : 0x0