diff options
author | Rakesh Raghava <rakeshraghava@google.com> | 2022-09-11 18:57:19 +0000 |
---|---|---|
committer | Rakesh Raghava <rakeshraghava@google.com> | 2022-09-13 02:43:42 +0000 |
commit | a6d6588617f585f4ce3fcf64862540166d952b95 (patch) | |
tree | a076b208d9773e856c1f5febfb3e2c25f9ad051d /framework/src/android | |
parent | 6931f607679c23cdb9702cc44f22c270f5f4b79d (diff) | |
download | ImsMedia-a6d6588617f585f4ce3fcf64862540166d952b95.tar.gz |
(ImsMedia) Added startDtmf() and stopDtmf() APIs
Bug: 236381818
Test: atest ImsMediaJavaUnitTests
Change-Id: Ieb04de0f170f1c517ce9cdd1db437bb7d7e7ca65
Diffstat (limited to 'framework/src/android')
-rw-r--r-- | framework/src/android/telephony/imsmedia/IImsAudioSession.aidl | 2 | ||||
-rw-r--r-- | framework/src/android/telephony/imsmedia/ImsAudioSession.java | 28 |
2 files changed, 30 insertions, 0 deletions
diff --git a/framework/src/android/telephony/imsmedia/IImsAudioSession.aidl b/framework/src/android/telephony/imsmedia/IImsAudioSession.aidl index 8013b6c5..58556bd8 100644 --- a/framework/src/android/telephony/imsmedia/IImsAudioSession.aidl +++ b/framework/src/android/telephony/imsmedia/IImsAudioSession.aidl @@ -33,6 +33,8 @@ interface IImsAudioSession { oneway void deleteConfig(in AudioConfig config); oneway void confirmConfig(in AudioConfig config); oneway void sendDtmf(char dtmfDigit, int duration); + oneway void startDtmf(char dtmfDigit); + oneway void stopDtmf(); oneway void sendHeaderExtension(in List<RtpHeaderExtension> extensions); oneway void setMediaQualityThreshold(in MediaQualityThreshold threshold); } diff --git a/framework/src/android/telephony/imsmedia/ImsAudioSession.java b/framework/src/android/telephony/imsmedia/ImsAudioSession.java index 08edde6e..360da834 100644 --- a/framework/src/android/telephony/imsmedia/ImsAudioSession.java +++ b/framework/src/android/telephony/imsmedia/ImsAudioSession.java @@ -20,6 +20,7 @@ import android.os.IBinder; import android.os.RemoteException; import android.telephony.ims.RtpHeaderExtension; import android.util.Log; + import java.util.List; /** @@ -150,6 +151,33 @@ public class ImsAudioSession implements ImsMediaSession { } /** + * Start sending DTMF digit until the stopDtmf() API is received. + * If the implementation is currently sending a DTMF tone for which + * stopDtmf() is not received yet, then that digit must be stopped first + * + * @param dtmfDigit single char having one of 12 values: 0-9, *, # + */ + public void startDtmf(final char dtmfDigit) { + try { + miSession.startDtmf(dtmfDigit); + } catch (RemoteException e) { + Log.e(TAG, "Failed to start DTMF: " + e); + } + } + + /** + * Stop sending the last DTMF digit started by startDtmf(). + * stopDtmf() without preceding startDtmf() must be ignored. + */ + public void stopDtmf() { + try { + miSession.stopDtmf(); + } catch (RemoteException e) { + Log.e(TAG, "Failed to stop DTMF: " + e); + } + } + + /** * Send RTP header extension to the other party in the next RTP packet. * * @param extensions List of RTP header extensions to be transmitted |