diff options
author | Jonathan Rose <jrose@digium.com> | 2012-05-24 18:56:43 +0000 |
---|---|---|
committer | Jonathan Rose <jrose@digium.com> | 2012-05-24 18:56:43 +0000 |
commit | bdaecbb66b1d6f92f32d14e34fb399634bb5079a (patch) | |
tree | d5ca35238263604d3f34e52cd48e132677f2a8ee /include | |
parent | d0ed332750da99d21a83d6e247d6f4dddd7f0116 (diff) |
chan_sip: fix problem directmediapermit/deny uses the wrong address
When remotely bridging calls with directmedia, Asterisk would check
the address of the peers/users holding directmedia ACLs (set via
directmediapermit/directmediadeny) instead of the bridged peer. This
is similar to r366547, but trunk specific and involves changes to
the rtpengine instead of just chan_sip.
(closes issue AST-876)
review: https://reviewboard.asterisk.org/r/1924/
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@367640 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'include')
-rw-r--r-- | include/asterisk/rtp_engine.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/include/asterisk/rtp_engine.h b/include/asterisk/rtp_engine.h index 54fccb1de..e7eb306d1 100644 --- a/include/asterisk/rtp_engine.h +++ b/include/asterisk/rtp_engine.h @@ -405,11 +405,26 @@ struct ast_rtp_glue { */ enum ast_rtp_glue_result (*get_rtp_info)(struct ast_channel *chan, struct ast_rtp_instance **instance); /*! + * \brief Used to prevent two channels from remotely bridging audio rtp if the channel tech has a + * reason for prohibiting it based on qualities that need to be compared from both channels. + * \note This function should only be called with two channels of the same technology + * \note This function may be NULL for a given channel driver. This should be accounted for and if that is the case, function this is not used. + */ + int (*allow_rtp_remote)(struct ast_channel *chan1, struct ast_channel *chan2); + /*! * \brief Callback for retrieving the RTP instance carrying video * \note This function increases the reference count on the returned RTP instance. */ enum ast_rtp_glue_result (*get_vrtp_info)(struct ast_channel *chan, struct ast_rtp_instance **instance); /*! + * \brief Used to prevent two channels from remotely bridging video rtp if the channel tech has a + * reason for prohibiting it based on qualities that need to be compared from both channels. + * \note This function should only be called with two channels of the same technology + * \note This function may be NULL for a given channel driver. This should be accounted for and if that is the case, this function is not used. + */ + int (*allow_vrtp_remote)(struct ast_channel *chan1, struct ast_channel *chan2); + + /*! * \brief Callback for retrieving the RTP instance carrying text * \note This function increases the reference count on the returned RTP instance. */ |