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
This commit is contained in:
Jonathan Rose
2012-05-24 18:56:43 +00:00
parent d0ed332750
commit bdaecbb66b
3 changed files with 105 additions and 15 deletions

View File

@@ -404,11 +404,26 @@ struct ast_rtp_glue {
* \note This function increases the reference count on the returned RTP instance.
*/
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.