summaryrefslogtreecommitdiff
path: root/framework/src/android
diff options
context:
space:
mode:
authorRakesh Raghava <rakeshraghava@google.com>2022-09-11 18:57:19 +0000
committerRakesh Raghava <rakeshraghava@google.com>2022-09-13 02:43:42 +0000
commita6d6588617f585f4ce3fcf64862540166d952b95 (patch)
treea076b208d9773e856c1f5febfb3e2c25f9ad051d /framework/src/android
parent6931f607679c23cdb9702cc44f22c270f5f4b79d (diff)
downloadImsMedia-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.aidl2
-rw-r--r--framework/src/android/telephony/imsmedia/ImsAudioSession.java28
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