diff options
author | oej <oej@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-12-05 10:52:53 +0000 |
---|---|---|
committer | oej <oej@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-12-05 10:52:53 +0000 |
commit | 1158861b78d4071b5bb6c3992b6eeef081bfe125 (patch) | |
tree | 7cab612091d9a2a9d351eb3ab073b6670653cf5f | |
parent | 99dfd35cae5ab2b6c02542c2a1fd8dbbc46c91f7 (diff) |
Reserving flags for coming code (currently in the "videocaps" branch)
implementing T.140 support in RTP.
T.140/RFC 4351 is TDD over IP - text telephony for hearing impaired.
It defines a realtime text chat, much like the old "talk" application
in Unix.
T.140 is character by character in real time. It's not
the same as our current MESSAGE format - that is more like IM, but
can be gatewayed to MESSAGE with a text "codec" if needed.
More patches will follow, as soon as we've separated this code from
the video capabilities functions in the videocaps branch.
Code by John Martin, Aupix (disclaimer on file)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@48258 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r-- | include/asterisk/frame.h | 6 | ||||
-rw-r--r-- | main/frame.c | 4 | ||||
-rw-r--r-- | main/rtp.c | 2 |
3 files changed, 11 insertions, 1 deletions
diff --git a/include/asterisk/frame.h b/include/asterisk/frame.h index 5e02e670d..475317a23 100644 --- a/include/asterisk/frame.h +++ b/include/asterisk/frame.h @@ -52,7 +52,7 @@ struct ast_codec_pref { \arg \b VIDEO: Video data, subclass is codec (AST_FORMAT_*) \arg \b DTMF: A DTMF digit, subclass is the digit \arg \b IMAGE: Image transport, mostly used in IAX - \arg \b TEXT: Text messages + \arg \b TEXT: Text messages and character by character (real time text) \arg \b HTML: URL's and web pages \arg \b MODEM: Modulated data encodings, such as T.38 and V.150 \arg \b IAX: Private frame type for the IAX protocol @@ -261,6 +261,10 @@ extern struct ast_frame ast_null_frame; /*! Maximum video format */ #define AST_FORMAT_MAX_VIDEO (1 << 24) #define AST_FORMAT_VIDEO_MASK (((1 << 25)-1) & ~(AST_FORMAT_AUDIO_MASK)) +/*! T.140 Text format - ITU T.140, RFC 4351*/ +#define AST_FORMAT_T140 (1 << 25) +#define AST_FORMAT_MAX_TEXT (1 << 26) +#define AST_FORMAT_TEXT_MASK (((1 << 25)-1) & ~(AST_FORMAT_AUDIO_MASK)) enum ast_control_frame_type { AST_CONTROL_HANGUP = 1, /*!< Other end has hungup */ diff --git a/main/frame.c b/main/frame.c index 681f36892..bac9340c7 100644 --- a/main/frame.c +++ b/main/frame.c @@ -130,6 +130,10 @@ static struct ast_format_list AST_FORMAT_LIST[] = { /*!< Bit number: comment { 0, 0, "nothing", "undefined" }, { 0, 0, "nothing", "undefined" }, { 0, AST_FORMAT_MAX_VIDEO, "maxvideo", "Maximum video format" }, + { 0, AST_FORMAT_T140, "t140", "Passthrough T.140 Realtime Text" }, + { 0, 0, "nothing", "undefined" }, + { 0, 0, "nothing", "undefined" }, + { 0, AST_FORMAT_MAX_TEXT, "maxtext", "Maximum text format" }, }; struct ast_frame ast_null_frame = { AST_FRAME_NULL, }; diff --git a/main/rtp.c b/main/rtp.c index 93c92a845..307ae1888 100644 --- a/main/rtp.c +++ b/main/rtp.c @@ -1408,6 +1408,7 @@ static struct { {{1, AST_FORMAT_H263}, "video", "H263"}, {{1, AST_FORMAT_H263_PLUS}, "video", "h263-1998"}, {{1, AST_FORMAT_H264}, "video", "H264"}, + {{1, AST_FORMAT_T140}, "text", "T140"}, }; /* Static (i.e., well-known) RTP payload types for our "AST_FORMAT..."s: @@ -1439,6 +1440,7 @@ static struct rtpPayloadType static_RTP_PT[MAX_RTP_PT] = { [97] = {1, AST_FORMAT_ILBC}, [99] = {1, AST_FORMAT_H264}, [101] = {0, AST_RTP_DTMF}, + [102] = {0, AST_FORMAT_T140}, /* Real time text chat */ [110] = {1, AST_FORMAT_SPEEX}, [111] = {1, AST_FORMAT_G726}, [112] = {1, AST_FORMAT_G726_AAL2}, |