sdp: Add support for T.38

This change adds a T.38 format which can be used in a stream
topology to specify that a UDPTL stream needs to be created.
The SDP API has been changed to understand T.38 and create
the UDPTL session, add the attributes, and parse the attributes.

This change does not change the boundary of the T.38 state
machine. It is still up to the channel driver to implement and
act on it (such as queueing control frames or reacting to them).

ASTERISK-26949

Change-Id: If28956762ccb8ead562ac6c03d162d3d6014f2c7
This commit is contained in:
Joshua Colp
2017-04-14 10:21:13 +00:00
committed by Richard Mudgett
parent 32b3e36c68
commit 19a79ae12c
10 changed files with 623 additions and 47 deletions

View File

@@ -230,6 +230,11 @@ struct ast_format *ast_format_t140;
*/
struct ast_format *ast_format_t140_red;
/*!
* \brief Built-in cached T.38 format.
*/
struct ast_format *ast_format_t38;
/*!
* \brief Built-in "null" format.
*/
@@ -342,6 +347,7 @@ static void format_cache_shutdown(void)
ao2_replace(ast_format_vp8, NULL);
ao2_replace(ast_format_t140_red, NULL);
ao2_replace(ast_format_t140, NULL);
ao2_replace(ast_format_t38, NULL);
ao2_replace(ast_format_none, NULL);
ao2_replace(ast_format_silk8, NULL);
ao2_replace(ast_format_silk12, NULL);
@@ -442,6 +448,8 @@ static void set_cached_format(const char *name, struct ast_format *format)
ao2_replace(ast_format_t140_red, format);
} else if (!strcmp(name, "t140")) {
ao2_replace(ast_format_t140, format);
} else if (!strcmp(name, "t38")) {
ao2_replace(ast_format_t38, format);
} else if (!strcmp(name, "none")) {
ao2_replace(ast_format_none, format);
} else if (!strcmp(name, "silk8")) {