[asterisk-dev] [Code Review] 4216: res_pjsip: Direct Media calls within private network sometimes get one way audio

Joshua Colp reviewboard at asterisk.org
Mon Dec 1 06:51:08 CST 2014


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/4216/#review13852
-----------------------------------------------------------


Does chan_sip also have this problem? I'd assume so (just wondering)


branches/12/channels/chan_pjsip.c
<https://reviewboard.asterisk.org/r/4216/#comment24335>

    This is an incorrect assumption and won't work.
    
    Either side may be RTP capable - meaning there is no guarantee that both will be PJSIP.



branches/12/channels/chan_pjsip.c
<https://reviewboard.asterisk.org/r/4216/#comment24336>

    I also don't like that you are overloading the purpose of this callback. It's meant to determine if the two sides will allow a remote RTP or not.


I think this is too focused on chan_pjsip. Realistically this problem can happen with any channel driver that uses the RTP engine and res_rtp_asterisk. Something generic should be done instead, imo.

- Joshua Colp


On Nov. 26, 2014, 10:17 p.m., Kevin Harwell wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/4216/
> -----------------------------------------------------------
> 
> (Updated Nov. 26, 2014, 10:17 p.m.)
> 
> 
> Review request for Asterisk Developers and Joshua Colp.
> 
> 
> Bugs: ASTERISK-24563
>     https://issues.asterisk.org/jira/browse/ASTERISK-24563
> 
> 
> Repository: Asterisk
> 
> 
> Description
> -------
> 
> When endpoints with direct_media enabled, behind a firewall (Asterisk on a separate network) and were bridged sometimes Asterisk would send the ip address of the firewall in the sdp to one of the phones in the reinvite resulting in one way audio.  When sending the reinvite Asterisk will retrieve the media address from the associated rtp instance, but if frames were being read this can be overwritten with another address (in this case the firewall's).  This patch ensures that Asterisk uses the original device address when using direct media.
> 
> 
> Diffs
> -----
> 
>   branches/12/res/res_pjsip_sdp_rtp.c 428631 
>   branches/12/include/asterisk/rtp_engine.h 428631 
>   branches/12/include/asterisk/res_pjsip_session.h 428631 
>   branches/12/channels/chan_sip.c 428631 
>   branches/12/channels/chan_pjsip.c 428631 
>   branches/12/bridges/bridge_native_rtp.c 428631 
> 
> Diff: https://reviewboard.asterisk.org/r/4216/diff/
> 
> 
> Testing
> -------
> 
> Used a test bed of 3 phones on a private network behind a firewall with Asterisk on another network.  Enabled direct media on the endpoints and then had phone A call phone B.  Noted in the logged SIP reinvites that the correct address was now being used and also made sure audio flowed in both directions.
> 
> 
> Thanks,
> 
> Kevin Harwell
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20141201/5284b8e8/attachment.html>


More information about the asterisk-dev mailing list