I am working on Q410 based custom board and using android 5.1.1 OS.
I am interfacing a GSM modem on UART. The HAL layer of RIL provided by vendor is working fine and I am able to make incoming and outgoing call through dialer application of android.
The problem I am facing is with voice communication. Modem’s I2S line is connected to dragon’s I2S line. If I apply mixer commands from terminal (using adb shell)and use "aplay | arec " then I am able to send voice captured on dragon board to other end device through GSM network and it is working fine.
Path : Mic (on PMIC8916) -> DSP -> SEC_MI2S -> GSM MODEM -> GSM Network
Now I am trying to doing the same using audio HAL. I have modified the mixer path for “voice-call” use case and I am creating a thread (when voice call use-case get started) that will capture audio sample from the MIC and will send to the MI2S. But I found that in hardware/qcom/audio/hal ,
err = str_parms_get_int(parms, AUDIO_PARAMETER_KEY_VSID, &value); is getting failure, so it is not updating the call status [by calling “ret = update_call_states(adev, vsid, call_state);” ]. Because of that I am always getting call status CALL_INACTIVE and it is not staring voice call usecase.
So how to set parameter AUDIO_PARAMETER_KEY_VSID (“vsid”) for voice call ?