DTMF Event Sub-API on VoIP API

Added VoipDtmf in VoipEngine as a sub-API to provide DTMF related interfaces; also added relevant unit tests.

Bug: webrtc:11802
Change-Id: Ie9832aebe075a48ae1207be142361b73646673ca
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/180225
Reviewed-by: Karl Wiberg <kwiberg@webrtc.org>
Reviewed-by: Tim Na <natim@webrtc.org>
Reviewed-by: Per Ã…hgren <peah@webrtc.org>
Commit-Queue: Tim Na <natim@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#31974}
diff --git a/api/voip/voip_engine.h b/api/voip/voip_engine.h
index 81c97c0..bff261f 100644
--- a/api/voip/voip_engine.h
+++ b/api/voip/voip_engine.h
@@ -16,6 +16,7 @@
 class VoipBase;
 class VoipCodec;
 class VoipNetwork;
+class VoipDtmf;
 
 // VoipEngine is the main interface serving as the entry point for all VoIP
 // APIs. A single instance of VoipEngine should suffice the most of the need for
@@ -80,6 +81,9 @@
 
   // VoipCodec provides codec configuration APIs for encoder and decoders.
   virtual VoipCodec& Codec() = 0;
+
+  // VoipDtmf provides DTMF event APIs to register and send DTMF events.
+  virtual VoipDtmf& Dtmf() = 0;
 };
 
 }  // namespace webrtc