Benoit Panizzon
2018-Feb-02 14:37 UTC
[asterisk-users] Weird 'hairpin' call rtp audio problem
Hello List Asterisk 13.14.1 in use with pjsip stack. On the remote side is a SBC which performs some 'nat' detection. I suppose this means the SBC listens from where it is getting RTP data and then replies to that ip. As long as the asterisk is initiating the call this is fine, the asterisk start sending RTP to the media IP of the SBC and the SBC is sending media back. Now I want to do a hairpin call, simulating call forward on no answer (yes this is the situation I observed the problem first) So incoming AND outgoing calls are via SBC. exten => destination,1,Progress() exten => same,n,Playtones(ring) exten => same,n,Wait(5) exten => same,n,Dial(PJSIP/sip:external at sbc) What I now observe when I dissect this call via Wireshark (and set rtp debug on etc). Call to destination is established, up to the Wait(5) we have two way RTP audio between the SBC and the Asterisk. The external destination picks up the call. From what I see the media ip addresses and ports are correct, no direct media is attempted. So asterisk should 'simple bridge' oder 'native bridge' the call localy. But for some reason, the asterisk server is NOT forwarding any rtp, nor is the SBC forwarding any rtp it is getting from it's remote side which is definitely sending rtp data. (yes I have access to the SBC and did sniff both sides). I fear, that both, the asterisk side and the sbc side are attempting the same kind of nat detection and do not forward rtp until they receive any packets. I did probably try all possible permutations of: direct_media=no rtp_symmetric=yes force_rport=yes But still no audio. Any hints on how to force asterisk to send the first rtp packet? Mit freundlichen Gr?ssen -Beno?t Panizzon- -- I m p r o W a r e A G - Leiter Commerce Kunden ______________________________________________________ Zurlindenstrasse 29 Tel +41 61 826 93 00 CH-4133 Pratteln Fax +41 61 826 93 01 Schweiz Web http://www.imp.ch ______________________________________________________
On Fri, Feb 2, 2018, at 10:37 AM, Benoit Panizzon wrote:> Hello List > > Asterisk 13.14.1 in use with pjsip stack. > > On the remote side is a SBC which performs some 'nat' detection. I > suppose this means the SBC listens from where it is getting RTP data > and then replies to that ip. > > As long as the asterisk is initiating the call this is fine, the > asterisk start sending RTP to the media IP of the SBC and the SBC is > sending media back. > > Now I want to do a hairpin call, simulating call forward on no answer > (yes this is the situation I observed the problem first) > > So incoming AND outgoing calls are via SBC. > > exten => destination,1,Progress() > exten => same,n,Playtones(ring) > exten => same,n,Wait(5) > exten => same,n,Dial(PJSIP/sip:external at sbc) > > What I now observe when I dissect this call via Wireshark (and set rtp > debug on etc). > > Call to destination is established, up to the Wait(5) we have two way > RTP audio between the SBC and the Asterisk. > > The external destination picks up the call. From what I see the media > ip addresses and ports are correct, no direct media is attempted. So > asterisk should 'simple bridge' oder 'native bridge' the call localy. > > But for some reason, the asterisk server is NOT forwarding any rtp, nor > is the SBC forwarding any rtp it is getting from it's remote side which > is definitely sending rtp data. (yes I have access to the SBC and did > sniff both sides). > > I fear, that both, the asterisk side and the sbc side are attempting > the same kind of nat detection and do not forward rtp until they > receive any packets. > > I did probably try all possible permutations of: > > direct_media=no > rtp_symmetric=yes > force_rport=yes > > But still no audio. > > Any hints on how to force asterisk to send the first rtp packet?The "rtp_keepalive" option can be used to have the RTP stack send an RTP packet out. Try that and see what happens. -- Joshua Colp Digium, Inc. | Senior Software Developer 445 Jan Davis Drive NW - Huntsville, AL 35806 - US Check us out at: www.digium.com & www.asterisk.org
Benoit Panizzon
2018-Feb-02 15:15 UTC
[asterisk-users] Weird 'hairpin' call rtp audio problem
Hi Joshua> The "rtp_keepalive" option can be used to have the RTP stack send an > RTP packet out. Try that and see what happens.Once again 'bullseye' that fixed the problem. Thank you! Mit freundlichen Gr?ssen -Beno?t Panizzon- -- I m p r o W a r e A G - Leiter Commerce Kunden ______________________________________________________ Zurlindenstrasse 29 Tel +41 61 826 93 00 CH-4133 Pratteln Fax +41 61 826 93 01 Schweiz Web http://www.imp.ch ______________________________________________________