diff options
Diffstat (limited to 'testing/asterisk-dongle/issue46.patch')
-rw-r--r-- | testing/asterisk-dongle/issue46.patch | 238 |
1 files changed, 0 insertions, 238 deletions
diff --git a/testing/asterisk-dongle/issue46.patch b/testing/asterisk-dongle/issue46.patch deleted file mode 100644 index 1bc0056e9d..0000000000 --- a/testing/asterisk-dongle/issue46.patch +++ /dev/null @@ -1,238 +0,0 @@ -Issue 46 from asterisk-chan-dongle bug tracker - -Fixes to build with Asterisk 10+ - -http://asterisk-chan-dongle.googlecode.com/issues/attachment?aid=460006000&name=patch3.patch.txt&token=VQW7Irk8LNc422UzWgcczezUNaY%3A1341828783939 - ---- a/chan_dongle_o.c 2011-11-23 14:04:57.270633822 +0200 -+++ b/chan_dongle.c 2011-11-23 14:07:05.740251209 +0200 -@@ -43,6 +43,7 @@ - #include <asterisk.h> - ASTERISK_FILE_VERSION(__FILE__, "$Rev: " PACKAGE_REVISION " $") - -+#include <asterisk/version.h> - #include <asterisk/stringfields.h> /* AST_DECLARE_STRING_FIELDS for asterisk/manager.h */ - #include <asterisk/manager.h> - #include <asterisk/dsp.h> -@@ -71,6 +72,8 @@ - - EXPORT_DEF const char * const dev_state_strs[4] = { "stop", "restart", "remove", "start" }; - EXPORT_DEF public_state_t * gpublic; -+EXPORT_DEF struct ast_format chan_dongle_format; -+EXPORT_DEF struct ast_format_cap * chan_dongle_format_cap; - - - static int public_state_init(struct public_state * state); -@@ -1640,6 +1643,16 @@ - rv = AST_MODULE_LOAD_FAILURE; - if(discovery_restart(state) == 0) - { -+#if ASTERISK_VERSION_NUM >= 100000 /* 10+ */ -+ /* set preferred capabilities */ -+ ast_format_set(&chan_dongle_format, AST_FORMAT_SLINEAR, 0); -+ if (!(channel_tech.capabilities = ast_format_cap_alloc())) { -+ return AST_MODULE_LOAD_FAILURE; -+ } -+ ast_format_cap_add(channel_tech.capabilities, &chan_dongle_format); -+ chan_dongle_format_cap = channel_tech.capabilities; -+#endif -+ - /* register our channel type */ - if(ast_channel_register(&channel_tech) == 0) - { -@@ -1652,6 +1665,9 @@ - } - else - { -+#if ASTERISK_VERSION_NUM >= 100000 /* 10+ */ -+ channel_tech.capabilities = ast_format_cap_destroy(channel_tech.capabilities); -+#endif - ast_log (LOG_ERROR, "Unable to register channel class %s\n", channel_tech.type); - } - discovery_stop(state); -@@ -1679,6 +1695,9 @@ - { - /* First, take us out of the channel loop */ - ast_channel_unregister (&channel_tech); -+#if ASTERISK_VERSION_NUM >= 100000 /* 10+ */ -+ channel_tech.capabilities = ast_format_cap_destroy(channel_tech.capabilities); -+#endif - - /* Unregister the CLI & APP & MANAGER */ - ---- a/han_dongle_o.h 2011-11-23 14:05:35.031639222 +0200 -+++ b/chan_dongle.h 2011-11-23 14:06:24.608334634 +0200 -@@ -33,6 +33,9 @@ - return enum2str(state, states, ITEMS_OF(states)); - } - -+/* Only linear is allowed */ -+EXPORT_DECL struct ast_format chan_dongle_format; -+EXPORT_DECL struct ast_format_cap * chan_dongle_format_cap; - - typedef enum { - RESTATE_TIME_NOW = 0, ---- a/channel_o.c 2011-11-23 14:05:08.279344414 +0200 -+++ b/channel.c 2011-11-23 14:06:24.610334645 +0200 -@@ -95,20 +95,24 @@ - return 0; - } - --#if ASTERISK_VERSION_NUM >= 10800 -+#if ASTERISK_VERSION_NUM >= 100000 /* 10+ */ -+ -+static struct ast_channel * channel_request (attribute_unused const char * type, struct ast_format_cap * cap, const struct ast_channel *requestor, void * data, int * cause) -+ -+#elif ASTERISK_VERSION_NUM >= 10800 /* 1.8+ */ - // TODO: simplify by move common code to functions - static struct ast_channel * channel_request (attribute_unused const char * type, format_t format, const struct ast_channel * requestor, void * data, int * cause) - --#else /* #if ASTERISK_VERSION_NUM >= 10800 */ -+#else /* 1.8- */ - /* TODO: add check when request 'holdother' what requestor is not on same device for 1.6 */ - - static struct ast_channel * channel_request (attribute_unused const char * type, int format, void * data, int * cause) - --#endif /* #if ASTERISK_VERSION_NUM >= 10800 */ -+#endif - { --#if ASTERISK_VERSION_NUM >= 10800 -+#if ASTERISK_VERSION_NUM >= 10800 && ASTERISK_VERSION_NUM < 100000 /* 1.8+ .. 10- */ - format_t oldformat; --#else -+#elif ASTERISK_VERSION_NUM < 10800 /* 1.8- */ - int oldformat; - const struct ast_channel * requestor = NULL; - #endif -@@ -126,11 +130,18 @@ - return NULL; - } - -+#if ASTERISK_VERSION_NUM >= 100000 /* 10+ */ -+ if (!ast_format_cap_iscompatible(cap, &chan_dongle_format)) -+#else - oldformat = format; - format &= AST_FORMAT_SLINEAR; - if (!format) -+#endif - { --#if ASTERISK_VERSION_NUM >= 10800 -+#if ASTERISK_VERSION_NUM >= 100000 /* 10+ */ -+ char buf[255]; -+ ast_log (LOG_WARNING, "Asked to get a channel of unsupported format '%s'\n", ast_getformatname_multiple (buf, 255, cap)); -+#elif ASTERISK_VERSION_NUM >= 10800 /* 1.8+ */ - ast_log (LOG_WARNING, "Asked to get a channel of unsupported format '%s'\n", ast_getformatname (oldformat)); - #else - ast_log (LOG_WARNING, "Asked to get a channel of unsupported format '%d'\n", oldformat); -@@ -571,10 +582,12 @@ - - } - --#if ASTERISK_VERSION_NUM >= 10800 -+#if ASTERISK_VERSION_NUM >= 100000 /* 10+ */ -+#define subclass_integer subclass.integer -+#elif ASTERISK_VERSION_NUM >= 10800 /* 1.8+ */ - #define subclass_codec subclass.codec - #define subclass_integer subclass.integer --#else -+#else /* 1.8- */ - #define subclass_codec subclass - #define subclass_integer subclass - #endif -@@ -618,7 +631,11 @@ - memset (&cpvt->a_read_frame, 0, sizeof (cpvt->a_read_frame)); - - cpvt->a_read_frame.frametype = AST_FRAME_VOICE; -- cpvt->a_read_frame.subclass_codec= AST_FORMAT_SLINEAR; -+#if ASTERISK_VERSION_NUM >= 100000 /* 10+ */ -+ ast_format_copy(&cpvt->a_read_frame.subclass.format, &chan_dongle_format); -+#else -+ cpvt->a_read_frame.subclass_codec = AST_FORMAT_SLINEAR; -+#endif - cpvt->a_read_frame.data.ptr = cpvt->a_read_buf + AST_FRIENDLY_OFFSET; - cpvt->a_read_frame.offset = AST_FRIENDLY_OFFSET; - cpvt->a_read_frame.src = AST_MODULE; -@@ -732,7 +749,11 @@ - size_t count; - int gains[2]; - -+#if ASTERISK_VERSION_NUM >= 100000 /* 10+ */ -+ if (f->frametype != AST_FRAME_VOICE || f->subclass.format.id != AST_FORMAT_SLINEAR) -+#else /* 10- */ - if (f->frametype != AST_FRAME_VOICE || f->subclass_codec != AST_FORMAT_SLINEAR) -+#endif - { - return 0; - } -@@ -1148,9 +1169,15 @@ - - channel->tech_pvt = cpvt; - channel->tech = &channel_tech; -+#if ASTERISK_VERSION_NUM >= 100000 /* 10+ */ -+ ast_format_cap_add(channel->nativeformats, &chan_dongle_format); -+ ast_format_copy(&channel->writeformat, &chan_dongle_format); -+ ast_format_copy(&channel->readformat, &chan_dongle_format); -+#else /* 10- */ - channel->nativeformats = AST_FORMAT_SLINEAR; - channel->writeformat = AST_FORMAT_SLINEAR; - channel->readformat = AST_FORMAT_SLINEAR; -+#endif - - if (ast_state == AST_STATE_RING) - { -@@ -1238,9 +1265,11 @@ - - snprintf (channel_name, sizeof (channel_name), "%s@%s", exten, CONF_SHARED(pvt, context)); - --#if ASTERISK_VERSION_NUM >= 10800 -+#if ASTERISK_VERSION_NUM >= 100000 /* 10+ */ -+ channel = ast_request ("Local", chan_dongle_format_cap, NULL, channel_name, &cause); -+#elif ASTERISK_VERSION_NUM >= 10800 /* 1.8+ */ - channel = ast_request ("Local", AST_FORMAT_AUDIO_MASK, NULL, channel_name, &cause); --#else -+#else /* 1.8- */ - channel = ast_request ("Local", AST_FORMAT_AUDIO_MASK, channel_name, &cause); - #endif - if (channel) -@@ -1314,7 +1343,6 @@ - static int channel_func_write(struct ast_channel* channel, const char* function, char* data, const char* value) - { - struct cpvt* cpvt = channel->tech_pvt; -- struct pvt* pvt; - call_state_t newstate, oldstate; - int ret = 0; - -@@ -1323,7 +1351,6 @@ - ast_log (LOG_WARNING, "call on unreferenced %s\n", channel->name); - return -1; - } -- pvt = cpvt->pvt; - - if (!strcasecmp(data, "callstate")) - { -@@ -1366,11 +1393,13 @@ - return ret; - } - --EXPORT_DEF const struct ast_channel_tech channel_tech = -+EXPORT_DEF struct ast_channel_tech channel_tech = - { - .type = "Dongle", - .description = MODULE_DESCRIPTION, -+#if ASTERISK_VERSION_NUM < 100000 /* 10- */ - .capabilities = AST_FORMAT_SLINEAR, -+#endif - .requester = channel_request, - .call = channel_call, - .hangup = channel_hangup, ---- a/channel_o.h 2011-11-23 14:05:43.206424916 +0200 -+++ b/channel.h 2011-11-23 14:06:24.611334658 +0200 -@@ -19,7 +19,7 @@ - struct pvt; - struct cpvt; - --EXPORT_DECL const struct ast_channel_tech channel_tech; -+EXPORT_DECL struct ast_channel_tech channel_tech; - - EXPORT_DECL struct ast_channel* new_channel (struct pvt * pvt, int ast_state, const char * cid_num, int call_idx, unsigned dir, unsigned state, const char * exten, const struct ast_channel * requestor); - EXPORT_DECL int queue_control_channel (struct cpvt * cpvt, enum ast_control_frame_type control); |