diff --git a/asterisk.c b/asterisk.c index b2ab02461168b7e3966199fee145e7e38891e51a..7a5649b891aebbceabdb954687580470abe39242 100644 --- a/asterisk.c +++ b/asterisk.c @@ -100,6 +100,9 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #include "asterisk/pbx.h" #include "asterisk/enum.h" #include "asterisk/rtp.h" +#if defined(T38_SUPPORT) +#include "asterisk/udptl.h" +#endif #include "asterisk/app.h" #include "asterisk/lock.h" #include "asterisk/utils.h" @@ -2319,6 +2322,9 @@ int main(int argc, char *argv[]) exit(1); } ast_rtp_init(); +#if defined(T38_SUPPORT) + ast_udptl_init(); +#endif if (ast_image_init()) { printf(term_quit()); exit(1); diff --git a/channel.c b/channel.c index 54027e457ee27c65cf3ed5af97a9fa46ac31c474..14b95bc58222c390542443dee7dbb78138089836 100644 --- a/channel.c +++ b/channel.c @@ -3274,6 +3274,9 @@ static enum ast_bridge_result ast_generic_bridge(struct ast_channel *c0, struct (f->frametype == AST_FRAME_VIDEO) || (f->frametype == AST_FRAME_IMAGE) || (f->frametype == AST_FRAME_HTML) || +#if defined(T38_SUPPORT) + (f->frametype == AST_FRAME_MODEM) || +#endif (f->frametype == AST_FRAME_TEXT)) { if (f->frametype == AST_FRAME_DTMF) { if (((who == c0) && watch_c0_dtmf) || diff --git a/include/asterisk/frame.h b/include/asterisk/frame.h index ca8397e0ff8dfe189ca944ffbc86401d2fc0b915..7331746bb18d720fa6f9bcce6fba873c7e7ae614 100644 --- a/include/asterisk/frame.h +++ b/include/asterisk/frame.h @@ -145,8 +145,16 @@ struct ast_frame { /*! Comfort Noise frame (subclass is level of CNG in -dBov), body may include zero or more 8-bit quantization coefficients */ #define AST_FRAME_CNG 10 -/*! T.38 Fax-over-IP data stream */ -#define AST_FRAME_T38 11 +#if defined(T38_SUPPORT) +/*! Modem-over-IP data streams */ +#define AST_FRAME_MODEM 11 + +/* MODEM subclasses */ +/*! T.38 Fax-over-IP */ +#define AST_MODEM_T38 1 +/*! V.150 Modem-over-IP */ +#define AST_MODEM_V150 2 +#endif /* HTML subclasses */ /*! Sending a URL */