diff options
author | Richard Mudgett <rmudgett@digium.com> | 2013-08-14 23:20:02 +0000 |
---|---|---|
committer | Richard Mudgett <rmudgett@digium.com> | 2013-08-14 23:20:02 +0000 |
commit | 04885c2ca0409128e5e5f2e19cc6dbba567e73c5 (patch) | |
tree | acce30526b8130bdec8fd3340e8a7f798387b003 /channels/chan_iax2.c | |
parent | 92d0a2e1ee59e5b80920a877325e3ef8d7216d2f (diff) |
chan_iax2: Conditionally remove native support for now.
(issue ASTERISK-21944)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@396710 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/chan_iax2.c')
-rw-r--r-- | channels/chan_iax2.c | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c index faad641bb..1c53da7c6 100644 --- a/channels/chan_iax2.c +++ b/channels/chan_iax2.c @@ -39,6 +39,18 @@ * \verbinclude iax.conf.sample */ +/*! + * \todo XXX The IAX2 channel driver needs its native bridge + * code converted to the new bridge technology scheme. + * + * \note The chan_dahdi native bridge code can be used as an + * example. It also appears that chan_iax2 also has a native + * transfer check like chan_dahdi to eliminate tromboned calls. + * + * \note The existing native bridge code is marked with the + * IAX2_NATIVE_BRIDGING conditional. + */ + /*** MODULEINFO <use type="external">crypto</use> <support_level>core</support_level> @@ -1213,7 +1225,6 @@ static void __attribute__((format(printf, 1, 2))) jb_debug_output(const char *fm ast_verbose("%s", buf); } -static enum ast_bridge_result iax2_bridge(struct ast_channel *c0, struct ast_channel *c1, int flags, struct ast_frame **fo, struct ast_channel **rc, int timeoutms); static int expire_registry(const void *data); static int iax2_answer(struct ast_channel *c); static int iax2_call(struct ast_channel *c, const char *dest, int timeout); @@ -1263,7 +1274,6 @@ static void sched_delay_remove(struct sockaddr_in *sin, callno_entry entry); static void network_change_stasis_cb(void *data, struct stasis_subscription *sub, struct stasis_topic *topic, struct stasis_message *message); static void acl_change_stasis_cb(void *data, struct stasis_subscription *sub, struct stasis_topic *topic, struct stasis_message *message); -/* BUGBUG The IAX2 channel driver needs its own native bridge technology. */ static struct ast_channel_tech iax2_tech = { .type = "IAX2", .description = tdesc, @@ -1284,7 +1294,6 @@ static struct ast_channel_tech iax2_tech = { .indicate = iax2_indicate, .setoption = iax2_setoption, .queryoption = iax2_queryoption, - .bridge = iax2_bridge, .transfer = iax2_transfer, .fixup = iax2_fixup, .func_channel_read = acf_channel_read, @@ -5326,6 +5335,7 @@ static int iax2_key_rotate(const void *vpvt) return res; } +#if defined(IAX2_NATIVE_BRIDGING) static int iax2_start_transfer(unsigned short callno0, unsigned short callno1, int mediaonly) { int res; @@ -5360,7 +5370,9 @@ static int iax2_start_transfer(unsigned short callno0, unsigned short callno1, i iaxs[callno1]->transferring = mediaonly ? TRANSFER_MBEGIN : TRANSFER_BEGIN; return 0; } +#endif /* defined(IAX2_NATIVE_BRIDGING) */ +#if defined(IAX2_NATIVE_BRIDGING) static void lock_both(unsigned short callno0, unsigned short callno1) { ast_mutex_lock(&iaxsl[callno0]); @@ -5368,13 +5380,17 @@ static void lock_both(unsigned short callno0, unsigned short callno1) DEADLOCK_AVOIDANCE(&iaxsl[callno0]); } } +#endif /* defined(IAX2_NATIVE_BRIDGING) */ +#if defined(IAX2_NATIVE_BRIDGING) static void unlock_both(unsigned short callno0, unsigned short callno1) { ast_mutex_unlock(&iaxsl[callno1]); ast_mutex_unlock(&iaxsl[callno0]); } +#endif /* defined(IAX2_NATIVE_BRIDGING) */ +#if defined(IAX2_NATIVE_BRIDGING) static enum ast_bridge_result iax2_bridge(struct ast_channel *c0, struct ast_channel *c1, int flags, struct ast_frame **fo, struct ast_channel **rc, int timeoutms) { struct ast_channel *cs[3]; @@ -5539,6 +5555,7 @@ static enum ast_bridge_result iax2_bridge(struct ast_channel *c0, struct ast_cha unlock_both(callno0, callno1); return res; } +#endif /* defined(IAX2_NATIVE_BRIDGING) */ static int iax2_answer(struct ast_channel *c) { |