[asterisk-bugs] [JIRA] (ASTERISK-24979) Webrtc client audio output is consistently skipping or missing non-continuous audio

r mundkowsky (JIRA) noreply at issues.asterisk.org
Fri May 15 08:45:33 CDT 2015


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

r mundkowsky edited comment on ASTERISK-24979 at 5/15/15 8:44 AM:
------------------------------------------------------------------

FYI, audio that is 3.7 seconds or shorter is dropped where as 3.8 seconds works well.  

Few other notes:
1) We tried webrtc clients with Chrome and Firefox (<= v36, since v37 killed webrtc support).
2) A call from webrtc to webrtc via Asterisk seems to work fine, problem only seems to be webrtc to SIP/RTP system

The sipml5 settings:

 private id: 6003
 public  ip: sip:6003@<asterisk extern IP>:5060
 realm:<asterisk extern IP>
 call: sip:4000@<asterisk extern IP>:5060
 Disable Video: true
 websocket: ws://<asterisk extern IP>:8088/ws
 Enable RTCWeb Breaker: true or false, tried both
 ICE Servers: [] , but also tried with a valid google server
 Max bandwidth (kbps)
 Cache the media stream: false

The JSSIP settings:
 enable video: false
 uri: "sip:6003@<asterisk extern IP>:5060",
 ws_servers: "ws://54.173.240.119:8088/ws",
 authorization_user: "6003",
 register: true,
 hack_ip_in_contact: true,
 hack_via_ws: true




was (Author: rmundkowsky):
FYI, audio that is 3.7 seconds or shorter is dropped where as 3.8 seconds works well.  

Also note we tried webrtc clients with Chrome and Firefox (< v37, since v37 killed webrtc support).

The sipml5 settings:

 private id: 6003
 public  ip: sip:6003@<asterisk extern IP>:5060
 realm:<asterisk extern IP>
 call: sip:4000@<asterisk extern IP>:5060
 Disable Video: true
 websocket: ws://<asterisk extern IP>:8088/ws
 Enable RTCWeb Breaker: true or false, tried both
 ICE Servers: [] , but also tried with a valid google server
 Max bandwidth (kbps)
 Cache the media stream: false

The JSSIP settings:
 enable video: false
 uri: "sip:6003@<asterisk extern IP>:5060",
 ws_servers: "ws://54.173.240.119:8088/ws",
 authorization_user: "6003",
 register: true,
 hack_ip_in_contact: true,
 hack_via_ws: true



> Webrtc client audio output is consistently skipping or missing non-continuous audio
> -----------------------------------------------------------------------------------
>
>                 Key: ASTERISK-24979
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-24979
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Channels/chan_sip/General, Resources/res_http_websocket
>    Affects Versions: 13.2.0, 13.3.2
>         Environment: Server: Ubuntu 14.04.1 LTS x86_64 
> web sockets server: Asterisk or webrtc2sip
> clients: sipml5 and jssip
>            Reporter: r mundkowsky
>            Assignee: r mundkowsky
>         Attachments: full-ips-removed.txt
>
>
> Steps that Cause error:
> 	
> webrtc client (WEBRTC_PUBLIC_IP using sipml5 or jssip via user 6002) makes audio call to extension 4000 on Asterisk (ASTRISK_PUBLIC_IP) via ws protocol directly or via webrtc2sip.  Asterisk answers, plays local audio file and dials SIP/4000 at JVXMLcloud1 peer (BROWSER_IP). SIP/4000 at JVXMLcloud1 peer then starts dialog with webrtc client. SIP/4000 at JVXMLcloud1 peer handles SIP traffic, but hands off RTP to sound server (SOUNDSRV_IP). webrtc client hangs up.
> Expected behavior:
> webrtc client has dialog with SIP/4000 at JVXMLcloud1 peer.  All audio sent from SIP/4000 at JVXMLcloud1 is heard by webrtc client.
> Actual behavior:
> webrtc client connects to Asterisk and hears Asterisk played audio file then hears some small parts of dialog that is expected from SIP/4000 at JVXMLcloud1 peer. webrtc client hangs-up before dialog is finished because no audio is heard after awhile.
> Notes:
> 1) The audio logs on Asterisk though have the complete audio to/from SIP/4000 at JVXMLcloud1, nothing is missing.  
> 2) Output audio sent to webrtc client is discontinuous (RTP send “hello”, pause (no RTP), …).  
> 3) Normal SIP/RTP clients (such as Noiper, Peers, PSTN/SIP) work correctly hearing full dialog from SIP/4000 at JVXMLcloud1 peer.  
> 4) Output to the webrtc client is fine if the webrtc client is called from a SIP/RTP client (such as Noiper, Peers) via Asterisk server.	
> sip.conf snippet:
> [6002]
> transport=ws
> defaultuser=6002
> host=dynamic
> secret=AAAAAAA
> type=friend
> encryption=yes
> avpf=yes
> force_avp=yes
> icesupport=yes
> directmedia=no
> hasiax=no
> hassip=yes
> disallow=all
> allow=ulaw
> allow=g729
> allow=g723
> allow=speex
> allow=ilbc
> allow=gsm
> dtlsenable=yes
> dtlsverify=fingerprint
> dtlscertfile=/export/Apps/asterisk/lib/asterisk/keys/asterisk.pem
> dtlscafile=/export/Apps/asterisk/lib/asterisk/keys/ca.crt
> dtlssetup=actpass
> [JVXMLcloud1]
> type=peer
> nat=no
> qualify=no
> host=BROWSER_IP
> port=5090
> dtmfmode=info
> canreinvite=no
> extensions.conf snippet:
> [system]
> exten => 4000,1,Answer()
> exten => 4000,n,Playback(/export/Apps/asterisk13-3-2/var/lib/asterisk/sounds/en/custom/transferring_with_record_warning)
> exten => 4000,n,NoOp(Caller ID: ${CALLERID(num)})
> exten => 4000,n,NoOp(SIP Headers:: From: ${SIP_HEADER(From)}, To: ${SIP_HEADER(To)})
> exten => 4000,n,NoOp(Unique ID: ${UNIQUEID}, Channel Name: ${CHANNEL}, SIP Call ID: ${SIPCALLID})
> exten => 4000,n,NoOp(The current group count : ${GROUP_COUNT(outgoing)})
> exten => 4000,n,GotoIf($[${GROUP_COUNT(outgoing)}>1]?ring)
> exten => 4000,n,Set(GLOBAL(current_timestamp_4000)=${STRFTIME(${EPOCH},GMT+1,%s)})
> exten => 4000,n,Set(GLOBAL(current_full_format_timestamp_4000)=${STRFTIME(${EPOCH},GMT-8,%d%m%Y_%H%M%S)})
> exten => 4000,n,NoOp(The current timestamp : ${current_timestamp_4000})
> exten => 4000,n,NoOp(The last timestamp : ${last_timestamp_4000})
> exten => 4000,n,GotoIf($[(${last_timestamp_4000}+20>${current_timestamp_4000})]?ring)
> exten => 4000,n,NoOp(All cases passed)
> exten => 4000,n(ring),Ringing()
> exten => 4000,n,Wait(2)
> exten => 4000,n,Monitor(wav,SYSTEM_audio_ext_4000_${current_full_format_timestamp_4000})
> exten => 4000,n,MixMonitor(SYSTEM_MixMonitor_audio_ext_4000_${current_full_format_timestamp_4000}.wav)
> exten => 4000,n,NoOp(The full call corresponding to SIP Call ID: ${SIPCALLID} and Caller ID: ${CALLERID(num)} was recorded to the file: SYSTEM_MixMonitor_audio_ext_4000_${current_full_format_timestamp_4000}.wav)
> exten => 4000,n,Dial(SIP/4000 at JVXMLcloud1,,XgF(default^4000^14))
> exten => 4000,n,Set(GLOBAL(last_timestamp_4000)=${STRFTIME(${EPOCH},GMT+1,%s)})
> exten => 4000,n,Hangup()
> exten => 4000,n,Ringing()
> exten => 4000,n,Wait(2)
> exten => 4000,n,Playback(/export/Apps/asterisk/lib/asterisk/sounds/custom/busy_later)
> exten => 4000,n,Wait(1)
> exten => 4000,n,Hangup()
> rtp.conf:
> [general]
> rtpstart=10000
> rtpend=20000
>                         ;(min 500, max 60000, default 5000)
> icesupport=true
> stunaddr=stun.l.google.com:19302
> http.conf:
> [general]
> enabled=yes
> bindaddr=0.0.0.0
> bindport=8088



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



More information about the asterisk-bugs mailing list