[asterisk-bugs] [JIRA] (ASTERISK-24146) [patch]No audio on WebRtc caller side when answer waiting time is more than ~7sec

Richard Mudgett (JIRA) noreply at issues.asterisk.org
Tue Sep 8 17:07:33 CDT 2015


    [ https://issues.asterisk.org/jira/browse/ASTERISK-24146?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=227369#comment-227369 ] 

Richard Mudgett edited comment on ASTERISK-24146 at 9/8/15 5:05 PM:
--------------------------------------------------------------------

For everyone who is using SIP.js. They have own reasons to dont push down remote description from 183 SDP, those reasons are not applied when asterisk is used, so in general they told that they won't fix this, but as workaround you can add such code to outgoing session invite:
{noformat}
            session.on('progress', function (response) {
                var session = this;
                if (response.status_code === 183 && response.body && session.hasOffer && !session.dialog) {
                    if (!response.hasHeader('require') || response.getHeader('require').indexOf('100rel') === -1) {
                        session.mediaHandler.setDescription(response.body).then(function onSuccess () {
                            session.status = SIP.Session.C.STATUS_EARLY_MEDIA;
                            session.mute();
                        }, function onFailure (e) {
                            session.logger.warn(e);
                            session.acceptAndTerminate(response, 488, 'Not Acceptable Here');
                            session.failed(response, SIP.C.causes.BAD_MEDIA_DESCRIPTION);
                        });
                    }
                }
            });
{noformat}
This will pushdown 183 SDP, and Early media is going to work.


was (Author: sarumjanuch):
For everyone who is using SIP.js. They have own reasons to dont push down remote description from 183 SDP, those reasons are not applied when asterisk is used, so in general they told that they won't fix this, but as workaround you can add such code to outgoing session invite:
            session.on('progress', function (response) {
                var session = this;
                if (response.status_code === 183 && response.body && session.hasOffer && !session.dialog) {
                    if (!response.hasHeader('require') || response.getHeader('require').indexOf('100rel') === -1) {
                        session.mediaHandler.setDescription(response.body).then(function onSuccess () {
                            session.status = SIP.Session.C.STATUS_EARLY_MEDIA;
                            session.mute();
                        }, function onFailure (e) {
                            session.logger.warn(e);
                            session.acceptAndTerminate(response, 488, 'Not Acceptable Here');
                            session.failed(response, SIP.C.causes.BAD_MEDIA_DESCRIPTION);
                        });
                    }
                }
            });
This will pushdown 183 SDP, and Early media is going to work.

> [patch]No audio on WebRtc caller side when answer waiting time is more than ~7sec
> ---------------------------------------------------------------------------------
>
>                 Key: ASTERISK-24146
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-24146
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Channels/chan_sip/WebSocket, Resources/res_rtp_asterisk
>    Affects Versions: 11.11.0, 12.4.0
>         Environment: Ubuntu 14.04
> Asterisk 12.4.0 compiled from tarball
> PJProject(https://github.com/asterisk/pjproject 06/JUN/14)
> --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr --with-external-srtp CFLAGS="-g -DNDEBUG" 
> chromium 35.0.1916.153(rev274914) (launch options: --use-fake-ui-for-media-stream --disable-webrtc-encryption)
> SIPml-api.js?svn=224
>            Reporter: Aleksei Kulakov
>         Attachments: badAsterDebug.log, bad_call_client_and_server.zip, badCall_filtered.pcapng, badChromeConsole.log, badChromeDebug.log, badChromeWebRtc.log, chan_sip.patch, debug.zip, logs_for_calls.zip, reproduce-confs.zip, res_rtp_asterisk.patch, sip.conf
>
>
> 1. WebRtc caller(354) dials callee(6001) of any type
> 2. Callee waits 10sec before answering the call.
> 3. No audio on WebRtc caller(354) side, although RTP is flowing in both directions and callee can hear audio from caller mic.
> There is some difference in output of 'rpt set debug on' in *bad* case(+answer wait time > 7sec+):
> {quote}
> Sent RTP P2P packet to 192.168.0.86:43911 (type 08, len 000160)
> Sent RTP P2P packet to 192.168.0.139:23506 (type 08, len 000160)
> Sent RTP P2P packet to 192.168.0.86:43911 (type 08, len 000160)
> Sent RTP P2P packet to 192.168.0.139:23506 (type 08, len 000160)
> {quote}
> and *good* case(+answer wait time <7sec+):
> {quote}
> Sent RTP P2P packet to 192.168.0.86:59092 (type 08, len 000160)
> Sent RTP P2P packet to 192.168.0.86:59092 (via ICE) (type 08, len 000160)
> Sent RTP P2P packet to 192.168.0.86:59092 (type 08, len 000160)
> Sent RTP P2P packet to 192.168.0.86:59092 (via ICE) (type 08, len 000160)
> {quote}
> Issue reproducible only with chan_sip. *Chan_pjsip IS NOT affected*



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list