From aec46b99f529f02d4d1604c33d1aa4b0856d3909 Mon Sep 17 00:00:00 2001
From: Paul Cadach <paul@odt.east.telecom.kz>
Date: Sun, 24 Sep 2006 18:19:56 +0000
Subject: [PATCH] Define Cisco RTP capability

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43573 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 channels/h323/caps_h323.cxx | 24 ++++++++++++++++++++++++
 channels/h323/caps_h323.h   | 29 +++++++++++++++++++++++++++++
 2 files changed, 53 insertions(+)

diff --git a/channels/h323/caps_h323.cxx b/channels/h323/caps_h323.cxx
index 32dac01f1a..1a14e23378 100644
--- a/channels/h323/caps_h323.cxx
+++ b/channels/h323/caps_h323.cxx
@@ -344,3 +344,27 @@ PString AST_CiscoG726Capability::GetFormatName() const
 {
 	return PString(CISCO_G726r32);
 }
+
+/*
+ * Capability: Cisco RTP DTMF Relay
+ */
+AST_CiscoDtmfCapability::AST_CiscoDtmfCapability()
+	: H323NonStandardDataCapability(0, 181, 0, 18, (const BYTE *)"RtpDtmfRelay", 0)
+{
+	rtpPayloadType = (RTP_DataFrame::PayloadTypes)121;
+}
+
+PObject *AST_CiscoDtmfCapability::Clone() const
+{
+	return new AST_CiscoDtmfCapability(*this);
+}
+
+H323Codec *AST_CiscoDtmfCapability::CreateCodec(H323Codec::Direction direction) const
+{
+	return NULL;
+}
+
+PString AST_CiscoDtmfCapability::GetFormatName() const
+{
+	return PString(CISCO_DTMF_RELAY);
+}
diff --git a/channels/h323/caps_h323.h b/channels/h323/caps_h323.h
index 3238dd5c6b..8058054db9 100644
--- a/channels/h323/caps_h323.h
+++ b/channels/h323/caps_h323.h
@@ -140,4 +140,33 @@ public:
 	/* Get the name of the media data format this class represents. */
 	virtual PString GetFormatName() const;
 };
+
+#define CISCO_DTMF_RELAY "UserInput/RtpDtmfRelay"
+
+class AST_CiscoDtmfCapability : public H323NonStandardDataCapability
+{
+	PCLASSINFO(AST_CiscoDtmfCapability, H323NonStandardDataCapability);
+
+public:
+	/* Create a new Cisco RTP DTMF Relay capability */
+	AST_CiscoDtmfCapability();
+
+	/* Create a copy of the object. */	
+	virtual PObject *Clone() const;
+
+	/* Create the codec instance, allocating resources as required. */
+	virtual H323Codec * CreateCodec(H323Codec::Direction direction) const;
+
+	/* Get the name of the media data format this class represents. */
+	virtual PString GetFormatName() const;
+	
+	virtual H323Channel *CreateChannel(H323Connection &,
+										H323Channel::Directions,
+										unsigned,
+										const H245_H2250LogicalChannelParameters *) const
+	{
+		return NULL;
+	}
+};
+
 #endif /* __AST_H323CAPS_H */
-- 
GitLab