Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Minor
-
Resolution: Incomplete
-
Affects Version/s: 1.0.7
-
Fix Version/s: None
-
Component/s: Bounty
-
Labels:None
-
Environment:Linux, Mac, Windows
-
Platform:Linux x86/gcc
-
Uname:Linux version 2.6.32-71.el6.x86_64 (mockbuild@c6b6.centos.org)
-
CPU Info:Hideprocessor : 0 - 15
vendor_id : GenuineIntel
cpu family : 6
model : 26
model name : Intel(R) Xeon(R) CPU E5530 @ 2.40GHz
stepping : 5
cpu MHz : 2393.996
cache size : 8192 KB
physical id : 1
siblings : 8
core id : 0
cpu cores : 4
apicid : 16
initial apicid : 16
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 sse4_2 popcnt lahf_lm ida tpr_shadow vnmi flexpriority ept vpid
bogomips : 4787.99
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:Showprocessor : 0 - 15 vendor_id : GenuineIntel cpu family : 6 model : 26 model name : Intel(R) Xeon(R) CPU E5530 @ 2.40GHz stepping : 5 cpu MHz : 2393.996 cache size : 8192 KB physical id : 1 siblings : 8 core id : 0 cpu cores : 4 apicid : 16 initial apicid : 16 fpu : yes fpu_exception : yes cpuid level : 11 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts rep_good xtopology nonstop_tsc aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 sse4_2 popcnt lahf_lm ida tpr_shadow vnmi flexpriority ept vpid bogomips : 4787.99 clflush size : 64 cache_alignment : 64 address sizes : 40 bits physical, 48 bits virtual power management: -
GCC Version:gcc version 4.4.4 20100726 (Red Hat 4.4.4-13) (GCC)
-
FreeSWITCH GIT Revision:FreeSWITCH Version 1.0.head (git-08b25a8 2011-11-09 10-29-42 -0600)
-
Reproduced with GIT HEAD?:yes
-
lsb_release:HideLSB Version: :core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: CentOS
Description: CentOS Linux release 6.0 (Final)
Release: 6.0
Codename: FinalShowLSB Version: :core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch Distributor ID: CentOS Description: CentOS Linux release 6.0 (Final) Release: 6.0 Codename: Final -
Target Version:
Description
We're having an issue with calls placed from Flash Player, where audio coming in to Flash Player from FS is getting very choppy. It appears that it happens mostly when listening to recorded audio like hold music, as when a call first connects, the IVR voice prompts usually sound ok, but as soon as the call is placed on hold and the hold music begins playing, and the audio becomes very choppy.
One thing we have noticed is that during the times the incoming audio is choppy, we can see when capturing packets in Wireshark there seems to be a lot of extra network activity going on from FS to Flash. If we set the bufferTime on the incoming stream .1 (anything other than 0), we receive a steady stream of alternating "buffer empty" / "buffer full" events that correspond to the choppy audio. Additionally, the longer the duration of the call through Flex client, the higher the chance of media distortion becomes.
We have VAD disabled, and have tried various tweaks to the mod_rtmp settings, none of which seemed to really make a difference:
BUFFER-LEN to 50 , 100 , 25 , 200
CHUNK SIZE to 128, 512, 1024, 2048 and 65536.
On the flash side, the only setting that appeared to make any difference was setting the Microphone.silenceLevel higher than 0, but that only helped up to a point, as the higher the silence level got, the higher the more the audio would get distorted again.
Note that this distortion in media is not observed when a call is placed through a VoIP phone.
You can test the Flex app at: http://216.52.221.154/freeswitchlatest/
- All clients connect to mod_rtmp on the default profile.
- Fill in the details and press 'Call Button'.
- The inbound leg is bridged to Outgoing leg with the details filled in the client.
- FS Outbound Event Socket( Java ) is used to bridge the inbound and outbound legs.
You can control the mic's silenceLevel property by changing the "silence=20" query param.
Additional test phone #'s:
919885098850 - VodaFone India
18004339014 - Dell Help center
18884521505 - TollFreeForwarding
Looking to get this resolved and will pay any bounty required.
One thing we have noticed is that during the times the incoming audio is choppy, we can see when capturing packets in Wireshark there seems to be a lot of extra network activity going on from FS to Flash. If we set the bufferTime on the incoming stream .1 (anything other than 0), we receive a steady stream of alternating "buffer empty" / "buffer full" events that correspond to the choppy audio. Additionally, the longer the duration of the call through Flex client, the higher the chance of media distortion becomes.
We have VAD disabled, and have tried various tweaks to the mod_rtmp settings, none of which seemed to really make a difference:
BUFFER-LEN to 50 , 100 , 25 , 200
CHUNK SIZE to 128, 512, 1024, 2048 and 65536.
On the flash side, the only setting that appeared to make any difference was setting the Microphone.silenceLevel higher than 0, but that only helped up to a point, as the higher the silence level got, the higher the more the audio would get distorted again.
Note that this distortion in media is not observed when a call is placed through a VoIP phone.
You can test the Flex app at: http://216.52.221.154/freeswitchlatest/
- All clients connect to mod_rtmp on the default profile.
- Fill in the details and press 'Call Button'.
- The inbound leg is bridged to Outgoing leg with the details filled in the client.
- FS Outbound Event Socket( Java ) is used to bridge the inbound and outbound legs.
You can control the mic's silenceLevel property by changing the "silence=20" query param.
Additional test phone #'s:
919885098850 - VodaFone India
18004339014 - Dell Help center
18884521505 - TollFreeForwarding
Looking to get this resolved and will pay any bounty required.
-
- rtmp_profile_config_details.txt
- 01/Dec/11 7:44 PM
- 2 kB
- Rich Rodecker
-
- Songbird8kHz64kbpsMono.mp3
- 06/Dec/11 2:05 AM
- 637 kB
- Travis May
-
Hide
- TFF_CallButton.zip
- 01/Dec/11 7:45 PM
- 2.85 MB
- Rich Rodecker
-
- TFF_CallButton/.actionScriptProperties 3 kB
- TFF_CallButton/.DS_Store 6 kB
- TFF_CallButton/.flexProperties 0.2 kB
- TFF_CallButton/.project 0.4 kB
- TFF_CallButton/.../com.adobe.flexbuilder.project.prefs 0.1 kB
- TFF_CallButton/.../FlexPrettyPrintCommand.prefs 17 kB
- TFF_CallButton/.../org.eclipse.core.resources.prefs 0.1 kB
- TFF_CallButton/bin-debug/ba-debug.js 8 kB
- TFF_CallButton/bin-debug/call.html 5 kB
- TFF_CallButton/.../framework_4.5.1.21328.swf 527 kB
- TFF_CallButton/bin-debug/.../border.png 0.2 kB
- TFF_CallButton/bin-debug/.../controls.png 2 kB
- TFF_CallButton/bin-debug/.../loading.gif 9 kB
- TFF_CallButton/.../loading_background.png 0.2 kB
- TFF_CallButton/bin-debug/index.html 2 kB
- TFF_CallButton/.../spark_4.5.1.21328.swf 732 kB
- TFF_CallButton/bin-debug/swfobject.js 25 kB
- TFF_CallButton/.../textLayout_2.0.0.232.swf 305 kB
- TFF_CallButton/.../TFF_CallButton.html 6 kB
- TFF_CallButton/.../TFF_CallButton.swf 109 kB
- TFF_CallButton/.../framework_4.5.1.21328.swz 318 kB
- TFF_CallButton/.../spark_4.5.1.21328.swz 456 kB
- TFF_CallButton/bin-release/swfobject.js 25 kB
- TFF_CallButton/.../textLayout_2.0.0.232.swz 182 kB
- TFF_CallButton/.../TFF_CallButton.html 6 kB
- TFF_CallButton/.../TFF_CallButton.swf 61 kB
- TFF_CallButton/.../index.template.html 6 kB
- TFF_CallButton/.../swfobject.js 25 kB
- TFF_CallButton/libs/IFN_Net_Lib.swc 23 kB
- TFF_CallButton/.../EncryptionKeyGenerator.as 12 kB
Activity
Hide
Permalink
Rich Rodecker
added a comment -
rtmp profile, config, and FS multi-home details.
Show
Rich Rodecker
added a comment - rtmp profile, config, and FS multi-home details.
Show
Rich Rodecker
added a comment - Flex application source.
Hide
Brian West
added a comment -
Does this behave the same if you use our included example client?
/b
/b
Show
Brian West
added a comment - Does this behave the same if you use our included example client?
/b
Show
Rich Rodecker
added a comment - Yes, same issue.
Hide
Anthony Minessale II
added a comment -
what about when you connect to http://conference.freeswitch.org ?
Show
Anthony Minessale II
added a comment - what about when you connect to http://conference.freeswitch.org ?
Hide
Travis May
added a comment -
The best destination to test to has continuous music: 4151595@services.sip.is (press 2 after connect)
By testing this from our SWF and BLINK using speex only, you will see this is not a transcoding issue.
BLINK will have perfect audio
SWF will have choppy audio
Both of the following will go through our FS server and be transcoded from Speex to g711uLaw
FROM BLINK: 4151595@216.52.221.166
will forward to 4151595@services.sip.is
FROM TFF SWF: 4151595@services.sip.is
http://216.52.221.154/freeswitchlatest/
replace ringTo with 4151595@services.sip.is
Travis May
By testing this from our SWF and BLINK using speex only, you will see this is not a transcoding issue.
BLINK will have perfect audio
SWF will have choppy audio
Both of the following will go through our FS server and be transcoded from Speex to g711uLaw
FROM BLINK: 4151595@216.52.221.166
will forward to 4151595@services.sip.is
FROM TFF SWF: 4151595@services.sip.is
http://216.52.221.154/freeswitchlatest/
replace ringTo with 4151595@services.sip.is
Travis May
Show
Travis May
added a comment - The best destination to test to has continuous music: 4151595@services.sip.is (press 2 after connect)
By testing this from our SWF and BLINK using speex only, you will see this is not a transcoding issue.
BLINK will have perfect audio
SWF will have choppy audio
Both of the following will go through our FS server and be transcoded from Speex to g711uLaw
FROM BLINK: 4151595@216.52.221.166
will forward to 4151595@services.sip.is
FROM TFF SWF: 4151595@services.sip.is
http://216.52.221.154/freeswitchlatest/
replace ringTo with 4151595@services.sip.is
Travis May
Hide
Rich Rodecker
added a comment -
It seems I get similar choppiness just by going to http://conference.freeswitch.org in two different browser windows, calling in to the conference, and reloading one of the browser windows and calling back in again. It's not breaking up to the extent as we're experiencing, maybe because of the duration of the audio?
Show
Rich Rodecker
added a comment - It seems I get similar choppiness just by going to http://conference.freeswitch.org in two different browser windows, calling in to the conference, and reloading one of the browser windows and calling back in again. It's not breaking up to the extent as we're experiencing, maybe because of the duration of the audio?
Hide
Travis May
added a comment -
In our test to 4151595@services.sip.is, the choppiness varies. Sometimes it is so bad it is unusabe, other times the chop is still present and detectable, but less severe.
This is why I think tests through our FS to 4151595@services.sip.is demonstrates the issue very well.
This is why I think tests through our FS to 4151595@services.sip.is demonstrates the issue very well.
Show
Travis May
added a comment - In our test to 4151595@services.sip.is , the choppiness varies. Sometimes it is so bad it is unusabe, other times the chop is still present and detectable, but less severe.
This is why I think tests through our FS to 4151595@services.sip.is demonstrates the issue very well.
Hide
Travis May
added a comment -
We have tried the following, but no better:
1. Increased the buffer length
<param name="buffer-len" value="100" /> ( Current )
<param name="buffer-len" value="50" /> ( Old )
2. Changes to rtmp.c
if (rsession->tech_pvt->maxlen && switch_buffer_inuse(rsession->tech_pvt->readbuf) > rsession->tech_pvt->maxlen * 3) [ Old ]
if (rsession->tech_pvt->maxlen && switch_buffer_inuse(rsession->tech_pvt->readbuf) > rsession->tech_pvt->maxlen * 20) [ Current ]
fprintf(rsession->io_debug_in, "[chunk_stream=%d type=0x%x ts=%d stream_id=0x%x] FLUSH BUFFER [exceeded %u]\n", rsession->amfnumber, state->type, (int)state->ts, state->stream_id, rsession->tech_pvt->maxlen * 3); [Old]
fprintf(rsession->io_debug_in, "[chunk_stream=%d type=0x%x ts=%d stream_id=0x%x] FLUSH BUFFER [exceeded %u]\n", rsession->amfnumber, state->type, (int)state->ts, state->stream_id, rsession->tech_pvt->maxlen * 20); [Current]
1. Increased the buffer length
<param name="buffer-len" value="100" /> ( Current )
<param name="buffer-len" value="50" /> ( Old )
2. Changes to rtmp.c
if (rsession->tech_pvt->maxlen && switch_buffer_inuse(rsession->tech_pvt->readbuf) > rsession->tech_pvt->maxlen * 3) [ Old ]
if (rsession->tech_pvt->maxlen && switch_buffer_inuse(rsession->tech_pvt->readbuf) > rsession->tech_pvt->maxlen * 20) [ Current ]
fprintf(rsession->io_debug_in, "[chunk_stream=%d type=0x%x ts=%d stream_id=0x%x] FLUSH BUFFER [exceeded %u]\n", rsession->amfnumber, state->type, (int)state->ts, state->stream_id, rsession->tech_pvt->maxlen * 3); [Old]
fprintf(rsession->io_debug_in, "[chunk_stream=%d type=0x%x ts=%d stream_id=0x%x] FLUSH BUFFER [exceeded %u]\n", rsession->amfnumber, state->type, (int)state->ts, state->stream_id, rsession->tech_pvt->maxlen * 20); [Current]
Show
Travis May
added a comment - We have tried the following, but no better:
1. Increased the buffer length
<param name="buffer-len" value="100" /> ( Current )
<param name="buffer-len" value="50" /> ( Old )
2. Changes to rtmp.c
if (rsession->tech_pvt->maxlen && switch_buffer_inuse(rsession->tech_pvt->readbuf) > rsession->tech_pvt->maxlen * 3) [ Old ]
if (rsession->tech_pvt->maxlen && switch_buffer_inuse(rsession->tech_pvt->readbuf) > rsession->tech_pvt->maxlen * 20) [ Current ]
fprintf(rsession->io_debug_in, "[chunk_stream=%d type=0x%x ts=%d stream_id=0x%x] FLUSH BUFFER [exceeded %u]\n", rsession->amfnumber, state->type, (int)state->ts, state->stream_id, rsession->tech_pvt->maxlen * 3); [Old]
fprintf(rsession->io_debug_in, "[chunk_stream=%d type=0x%x ts=%d stream_id=0x%x] FLUSH BUFFER [exceeded %u]\n", rsession->amfnumber, state->type, (int)state->ts, state->stream_id, rsession->tech_pvt->maxlen * 20); [Current]
Hide
Travis May
added a comment -
*** BOUNTY = $5,000 --> 2% PACKET LOSS MUST BE UNNOTICEABLE ***
**** EASILY REPLICATE ON YOUR OWN SYSTEM ***
**** DISREGARD ALL OF THE ABOVE ABOUT OUR CODE AND SERVERS ****
This issue can be replicated on the original Flex client provided by FS and any FS server.
Issue appears to be caused by very minor packet loss <1%. In my 10 years of VoIP experience up to and beyond 2% packet loss is normally handled well by PLC (Packet Loss Concealment) mechanisms within the codec. However, since this is running over TCP, the retransmissions and DUP ACKs seem to be overwhelming the conversation.
Steps to replicate:
1. Use default Flex Client (we have placed one at http://216.52.221.154/freeswitchorig/)
2. Send calls to any FS with mod_rtmp enabled.
a. rtmp_url: 'rtmp://216.52.221.166/default'
3. Call sip:4151595@services.sip.is
4. Enable Wireshark or other packet capture on client or server
5. Watch for NetStream.Buffer.Empty
a. See wireshark for DUP ACK, TCP Retransmission, and Malformed Packet
b. Cause some packet loss, in windows "ping -t -l 65000 216.52.221.166"
Is sip:4151595@services.sip.is causing the problem ?
No, the audio is perfect when called from other client, using Speex or any other codec between client and FS.
PROVE: Call sip:4151595@services.sip.is directly using Blink or any other SIP client, you will not hear the choppy audio regardless of codec used.
Is the outbound leg causing the problem?
No, this problem is witnessed even when playing looped audio file directly from FS.
PROVE: Put any audio into infinite loop and call it from the default flex client (Songbird8kHz64kbpsMono.mp3 attached)
Call “sip:songbird” from http://216.52.221.154/freeswitchorig/
You will still see the Buffer.Empty and hear the choppy audio after some time.
Is Speex codec the problem?
No, the exact same behavior is witnessed when using ULAW.
http://216.52.221.154/freeswitchULAW/
Call: sip:songbird
Is packet loss causing the problem ?
Probably, but it should be more tolerant. In other VoIP systems/phones/clients, packet loss in VoIP of up to 2% is not noticeable in g711uLaw, g729, g726, or other major codecs. Our tests have a fraction of 1 percent packet loss. It is possible that minor packet loss is causing significant retransmissions and/or processor overhead on the server side. Therefore exacerbating the problem.
Also, when using mod_rtmp, we sometimes notice an overall slowdown of the FS server as witnessed by a slowdown in log/debuggging response with only 1-2 rtmp calls open. This is very difficult to reproduce but only happens when mod_rtmp calls are in progress. This same server can do hundreds of non-rtmp calls and never displays such behavior.
**** EASILY REPLICATE ON YOUR OWN SYSTEM ***
**** DISREGARD ALL OF THE ABOVE ABOUT OUR CODE AND SERVERS ****
This issue can be replicated on the original Flex client provided by FS and any FS server.
Issue appears to be caused by very minor packet loss <1%. In my 10 years of VoIP experience up to and beyond 2% packet loss is normally handled well by PLC (Packet Loss Concealment) mechanisms within the codec. However, since this is running over TCP, the retransmissions and DUP ACKs seem to be overwhelming the conversation.
Steps to replicate:
1. Use default Flex Client (we have placed one at http://216.52.221.154/freeswitchorig/)
2. Send calls to any FS with mod_rtmp enabled.
a. rtmp_url: 'rtmp://216.52.221.166/default'
3. Call sip:4151595@services.sip.is
4. Enable Wireshark or other packet capture on client or server
5. Watch for NetStream.Buffer.Empty
a. See wireshark for DUP ACK, TCP Retransmission, and Malformed Packet
b. Cause some packet loss, in windows "ping -t -l 65000 216.52.221.166"
Is sip:4151595@services.sip.is causing the problem ?
No, the audio is perfect when called from other client, using Speex or any other codec between client and FS.
PROVE: Call sip:4151595@services.sip.is directly using Blink or any other SIP client, you will not hear the choppy audio regardless of codec used.
Is the outbound leg causing the problem?
No, this problem is witnessed even when playing looped audio file directly from FS.
PROVE: Put any audio into infinite loop and call it from the default flex client (Songbird8kHz64kbpsMono.mp3 attached)
Call “sip:songbird” from http://216.52.221.154/freeswitchorig/
You will still see the Buffer.Empty and hear the choppy audio after some time.
Is Speex codec the problem?
No, the exact same behavior is witnessed when using ULAW.
http://216.52.221.154/freeswitchULAW/
Call: sip:songbird
Is packet loss causing the problem ?
Probably, but it should be more tolerant. In other VoIP systems/phones/clients, packet loss in VoIP of up to 2% is not noticeable in g711uLaw, g729, g726, or other major codecs. Our tests have a fraction of 1 percent packet loss. It is possible that minor packet loss is causing significant retransmissions and/or processor overhead on the server side. Therefore exacerbating the problem.
Also, when using mod_rtmp, we sometimes notice an overall slowdown of the FS server as witnessed by a slowdown in log/debuggging response with only 1-2 rtmp calls open. This is very difficult to reproduce but only happens when mod_rtmp calls are in progress. This same server can do hundreds of non-rtmp calls and never displays such behavior.
Show
Travis May
added a comment - *** BOUNTY = $5,000 --> 2% PACKET LOSS MUST BE UNNOTICEABLE ***
**** EASILY REPLICATE ON YOUR OWN SYSTEM ***
**** DISREGARD ALL OF THE ABOVE ABOUT OUR CODE AND SERVERS ****
This issue can be replicated on the original Flex client provided by FS and any FS server.
Issue appears to be caused by very minor packet loss <1%. In my 10 years of VoIP experience up to and beyond 2% packet loss is normally handled well by PLC (Packet Loss Concealment) mechanisms within the codec. However, since this is running over TCP, the retransmissions and DUP ACKs seem to be overwhelming the conversation.
Steps to replicate:
1. Use default Flex Client (we have placed one at http://216.52.221.154/freeswitchorig/)
2. Send calls to any FS with mod_rtmp enabled.
a. rtmp_url: ' rtmp://216.52.221.166/default'
3. Call sip: 4151595@services.sip.is
4. Enable Wireshark or other packet capture on client or server
5. Watch for NetStream.Buffer.Empty
a. See wireshark for DUP ACK, TCP Retransmission, and Malformed Packet
b. Cause some packet loss, in windows "ping -t -l 65000 216.52.221.166"
Is sip: 4151595@services.sip.is causing the problem ?
No, the audio is perfect when called from other client, using Speex or any other codec between client and FS.
PROVE: Call sip: 4151595@services.sip.is directly using Blink or any other SIP client, you will not hear the choppy audio regardless of codec used.
Is the outbound leg causing the problem?
No, this problem is witnessed even when playing looped audio file directly from FS.
PROVE: Put any audio into infinite loop and call it from the default flex client (Songbird8kHz64kbpsMono.mp3 attached)
Call “sip:songbird” from http://216.52.221.154/freeswitchorig/
You will still see the Buffer.Empty and hear the choppy audio after some time.
Is Speex codec the problem?
No, the exact same behavior is witnessed when using ULAW.
http://216.52.221.154/freeswitchULAW/
Call: sip:songbird
Is packet loss causing the problem ?
Probably, but it should be more tolerant. In other VoIP systems/phones/clients, packet loss in VoIP of up to 2% is not noticeable in g711uLaw, g729, g726, or other major codecs. Our tests have a fraction of 1 percent packet loss. It is possible that minor packet loss is causing significant retransmissions and/or processor overhead on the server side. Therefore exacerbating the problem.
Also, when using mod_rtmp, we sometimes notice an overall slowdown of the FS server as witnessed by a slowdown in log/debuggging response with only 1-2 rtmp calls open. This is very difficult to reproduce but only happens when mod_rtmp calls are in progress. This same server can do hundreds of non-rtmp calls and never displays such behavior.
Hide
Travis May
added a comment -
Note that we receive those NetStream.Buffer.Empty events because the incoming stream has a 0.2 second buffer applied to it in the original SWF app. If we set the buffer to 0, we get the same issues without any NETSTREAM.BUFFER.EMPTY events.
Show
Travis May
added a comment - Note that we receive those NetStream.Buffer.Empty events because the incoming stream has a 0.2 second buffer applied to it in the original SWF app. If we set the buffer to 0, we get the same issues without any NETSTREAM.BUFFER.EMPTY events.
Hide
Git
added a comment -
Repository: freeswitch
Branch: refs/heads/master
Commit: f1d5120 http://fisheye.freeswitch.org/changelog/freeswitch.git/?cs=f1d5120
Updated By: anthm@freeswitch.org
Comment:
FS-3735
FreeSWITCH Support Contracts and Consulting Services available!
Contact us:
Email: consulting@freeswitch.org
Web: http://www.freeswitch.org
Phone: +1-918-420-9266
Tollfree: +1-877-742-2583
Fax: +1-918-420-9267
iNum: +883 5100 1420 9266
Come To ClueCon in August to learn more about FreeSWITCH and Internet Telephony!
http://www.cluecon.com
Branch: refs/heads/master
Commit: f1d5120 http://fisheye.freeswitch.org/changelog/freeswitch.git/?cs=f1d5120
Updated By: anthm@freeswitch.org
Comment:
FreeSWITCH Support Contracts and Consulting Services available!
Contact us:
Email: consulting@freeswitch.org
Web: http://www.freeswitch.org
Phone: +1-918-420-9266
Tollfree: +1-877-742-2583
Fax: +1-918-420-9267
iNum: +883 5100 1420 9266
Come To ClueCon in August to learn more about FreeSWITCH and Internet Telephony!
http://www.cluecon.com
Show
Git
added a comment - Repository: freeswitch
Branch: refs/heads/master
Commit: f1d5120 http://fisheye.freeswitch.org/changelog/freeswitch.git/?cs=f1d5120
Updated By: anthm@freeswitch.org
Comment:
FS-3735
FreeSWITCH Support Contracts and Consulting Services available!
Contact us:
Email: consulting@freeswitch.org
Web: http://www.freeswitch.org
Phone: +1-918-420-9266
Tollfree: +1-877-742-2583
Fax: +1-918-420-9267
iNum: +883 5100 1420 9266
Come To ClueCon in August to learn more about FreeSWITCH and Internet Telephony!
http://www.cluecon.com
Hide
Matt Stockton
added a comment -
I've been playing around with this update, and I'm trying to understand what the implications of the multiplier on rsession->tech_pvt->maxlen is.
When I use the multipler in the git head commit ( * 5), I have a bunch of buffering issues from MacOSx flash player, as evidenced by a lot of these logs in fs_cli:
2011-12-07 15:35:05.246833 [DEBUG] rtmp.c:896 rtmp/default/55555 buffer > 265 for 10 consecutive packets... Flushing buffer
When I change the multiplier from 5 to something like 40:
if (rsession->tech_pvt->maxlen && switch_buffer_inuse(rsession->tech_pvt->readbuf) > rsession->tech_pvt->maxlen * 40)
I don't seem to have any problems at all. Audio being sent from flash player to FS is fine. However, I'm failing to understand the full implications of changing this multiplier. What are the side-effects of this?
When I use the multipler in the git head commit ( * 5), I have a bunch of buffering issues from MacOSx flash player, as evidenced by a lot of these logs in fs_cli:
2011-12-07 15:35:05.246833 [DEBUG] rtmp.c:896 rtmp/default/55555 buffer > 265 for 10 consecutive packets... Flushing buffer
When I change the multiplier from 5 to something like 40:
if (rsession->tech_pvt->maxlen && switch_buffer_inuse(rsession->tech_pvt->readbuf) > rsession->tech_pvt->maxlen * 40)
I don't seem to have any problems at all. Audio being sent from flash player to FS is fine. However, I'm failing to understand the full implications of changing this multiplier. What are the side-effects of this?
Show
Matt Stockton
added a comment - I've been playing around with this update, and I'm trying to understand what the implications of the multiplier on rsession->tech_pvt->maxlen is.
When I use the multipler in the git head commit ( * 5), I have a bunch of buffering issues from MacOSx flash player, as evidenced by a lot of these logs in fs_cli:
2011-12-07 15:35:05.246833 [DEBUG] rtmp.c:896 rtmp/default/55555 buffer > 265 for 10 consecutive packets... Flushing buffer
When I change the multiplier from 5 to something like 40:
if (rsession->tech_pvt->maxlen && switch_buffer_inuse(rsession->tech_pvt->readbuf) > rsession->tech_pvt->maxlen * 40)
I don't seem to have any problems at all. Audio being sent from flash player to FS is fine. However, I'm failing to understand the full implications of changing this multiplier. What are the side-effects of this?
Hide
Git
added a comment -
Repository: freeswitch
Branch: refs/heads/master
Commit: edcb132 http://fisheye.freeswitch.org/changelog/freeswitch.git/?cs=edcb132
Updated By: anthm@freeswitch.org
Comment:
FS-3735 that is a resonable figure, if that works we can set it to this. can we close out this bounty then?
FreeSWITCH Support Contracts and Consulting Services available!
Contact us:
Email: consulting@freeswitch.org
Web: http://www.freeswitch.org
Phone: +1-918-420-9266
Tollfree: +1-877-742-2583
Fax: +1-918-420-9267
iNum: +883 5100 1420 9266
Come To ClueCon in August to learn more about FreeSWITCH and Internet Telephony!
http://www.cluecon.com
Branch: refs/heads/master
Commit: edcb132 http://fisheye.freeswitch.org/changelog/freeswitch.git/?cs=edcb132
Updated By: anthm@freeswitch.org
Comment:
FreeSWITCH Support Contracts and Consulting Services available!
Contact us:
Email: consulting@freeswitch.org
Web: http://www.freeswitch.org
Phone: +1-918-420-9266
Tollfree: +1-877-742-2583
Fax: +1-918-420-9267
iNum: +883 5100 1420 9266
Come To ClueCon in August to learn more about FreeSWITCH and Internet Telephony!
http://www.cluecon.com
Show
Git
added a comment - Repository: freeswitch
Branch: refs/heads/master
Commit: edcb132 http://fisheye.freeswitch.org/changelog/freeswitch.git/?cs=edcb132
Updated By: anthm@freeswitch.org
Comment:
FS-3735 that is a resonable figure, if that works we can set it to this. can we close out this bounty then?
FreeSWITCH Support Contracts and Consulting Services available!
Contact us:
Email: consulting@freeswitch.org
Web: http://www.freeswitch.org
Phone: +1-918-420-9266
Tollfree: +1-877-742-2583
Fax: +1-918-420-9267
iNum: +883 5100 1420 9266
Come To ClueCon in August to learn more about FreeSWITCH and Internet Telephony!
http://www.cluecon.com
Hide
Matt Stockton
added a comment -
I still see these fairly frequently on my Mac flash player:
rtmp.c:896 rtmp/default/55555 buffer > 2120 for 10 consecutive packets... Flushing buffer
Must be something weird about the Mac flash player that's causing issues. Doing some research online, haven't found much but came across this:
http://code.google.com/p/red5phone/issues/detail?id=45
Setting the outgoing buffer time didn't seem to help me though....will continue to investigate
rtmp.c:896 rtmp/default/55555 buffer > 2120 for 10 consecutive packets... Flushing buffer
Must be something weird about the Mac flash player that's causing issues. Doing some research online, haven't found much but came across this:
http://code.google.com/p/red5phone/issues/detail?id=45
Setting the outgoing buffer time didn't seem to help me though....will continue to investigate
Show
Matt Stockton
added a comment - I still see these fairly frequently on my Mac flash player:
rtmp.c:896 rtmp/default/55555 buffer > 2120 for 10 consecutive packets... Flushing buffer
Must be something weird about the Mac flash player that's causing issues. Doing some research online, haven't found much but came across this:
http://code.google.com/p/red5phone/issues/detail?id=45
Setting the outgoing buffer time didn't seem to help me though....will continue to investigate
Hide
Anthony Minessale II
added a comment -
Its latency from the fact that its a TCP connection and possibly poor timing in the flash.
We could opt to not flush the buffers but who knows how far behind you may fall.
You could comment out the line that does the switch_buffer_zero and replace it with a debug line to see the size of the buffer on each read and see how bad it gets.
On a side note, I have a mac too and i am not getting that problem.
I look forward to some day having an alternative to this using webrtc.
We could opt to not flush the buffers but who knows how far behind you may fall.
You could comment out the line that does the switch_buffer_zero and replace it with a debug line to see the size of the buffer on each read and see how bad it gets.
On a side note, I have a mac too and i am not getting that problem.
I look forward to some day having an alternative to this using webrtc.
Show
Anthony Minessale II
added a comment - Its latency from the fact that its a TCP connection and possibly poor timing in the flash.
We could opt to not flush the buffers but who knows how far behind you may fall.
You could comment out the line that does the switch_buffer_zero and replace it with a debug line to see the size of the buffer on each read and see how bad it gets.
On a side note, I have a mac too and i am not getting that problem.
I look forward to some day having an alternative to this using webrtc.
Hide
Travis May
added a comment -
I am out of the office this week. The initial feedback from my developers is that "there is improvement, but it's still not up to expectations".
The bounty requirement was "unnoticeable" and even my initial test had a number of audio drops.
For $5,000 I expect a fundamental fix, not a patch that sort-of works.
Our intention is to use this worldwide and as the latency increases this problem will be worse.
The bounty requirement was "unnoticeable" and even my initial test had a number of audio drops.
For $5,000 I expect a fundamental fix, not a patch that sort-of works.
Our intention is to use this worldwide and as the latency increases this problem will be worse.
Show
Travis May
added a comment - I am out of the office this week. The initial feedback from my developers is that "there is improvement, but it's still not up to expectations".
The bounty requirement was "unnoticeable" and even my initial test had a number of audio drops.
For $5,000 I expect a fundamental fix, not a patch that sort-of works.
Our intention is to use this worldwide and as the latency increases this problem will be worse.
Hide
Travis May
added a comment -
I hired a well-known network analyst to provide feedback on this issue, here is that feedback.
#2 below is a great question, does RTMP require an ACK for every single packet? We all know VoIP should not go over TCP, so we should concentrate on streamlining the TCP/RTMP connection.
Hi Travis,
I took traces to both sites from both a Mac/Safari and a Windows7/IE host. You are right – super choppy audio. There is no way I could understand it. I can hear the pause between packets and my screen filled with Buffer.Empty then Buffer.Full then Buffer.Empty messages. They were populating with the same frequency as the incoming packets in Wireshark.
I don’t think packet loss is your issue. I had minimal loss in the http conversations which I could not detect as the user. For the RTMP streams on port 1935, I had zero packet loss.
When I focused on the RTMP streams, I noticed that there was never more than either 47 or 94 bytes of audio sent at a time, yet the Set Chunk Size is 512 in packet 26 of “IE to freeswitchorig – very choppy audio.pcap”. In the Safari traces, the chunk size is set to 1024. I don’t know enough about RTMP to know why the server is only sending a single packet and then waiting for a TCP ack, but it is. It is not streaming. When you look at the delta times between each of the sent RTMP packets from the server, they correlate directly to the TCP handshake time i.e. the round trip time.
So your two issues are:
1. small packet size (this may be due to me completely misunderstanding what Chunk Size is, I think it is to negotiate how much data in each packet, but when I read http://p2p-sip.blogspot.com/2009/06/problems-in-rtmp.html it goes down a completely different path). There is no reason in TCP to be doing this, both sides negotiate an MSS of 1460.
2. Server not queuing multiple packets to send to the client. The pattern should be audio/audio/audio/audio….audio/ack not audio/ack/audio/ack. There is no reason in TCP to be doing this, both sides have Window Scaling enabled and have window sizes in excess of 64k each.
I would recommend having the developers review the trace files to help them isolate the issue. Make sure they are using the latest version of Wireshark 1.6.4 to ensure they have dissectors for RTMP. (If they have a really old version, the packets might not decode)
#2 below is a great question, does RTMP require an ACK for every single packet? We all know VoIP should not go over TCP, so we should concentrate on streamlining the TCP/RTMP connection.
Hi Travis,
I took traces to both sites from both a Mac/Safari and a Windows7/IE host. You are right – super choppy audio. There is no way I could understand it. I can hear the pause between packets and my screen filled with Buffer.Empty then Buffer.Full then Buffer.Empty messages. They were populating with the same frequency as the incoming packets in Wireshark.
I don’t think packet loss is your issue. I had minimal loss in the http conversations which I could not detect as the user. For the RTMP streams on port 1935, I had zero packet loss.
When I focused on the RTMP streams, I noticed that there was never more than either 47 or 94 bytes of audio sent at a time, yet the Set Chunk Size is 512 in packet 26 of “IE to freeswitchorig – very choppy audio.pcap”. In the Safari traces, the chunk size is set to 1024. I don’t know enough about RTMP to know why the server is only sending a single packet and then waiting for a TCP ack, but it is. It is not streaming. When you look at the delta times between each of the sent RTMP packets from the server, they correlate directly to the TCP handshake time i.e. the round trip time.
So your two issues are:
1. small packet size (this may be due to me completely misunderstanding what Chunk Size is, I think it is to negotiate how much data in each packet, but when I read http://p2p-sip.blogspot.com/2009/06/problems-in-rtmp.html it goes down a completely different path). There is no reason in TCP to be doing this, both sides negotiate an MSS of 1460.
2. Server not queuing multiple packets to send to the client. The pattern should be audio/audio/audio/audio….audio/ack not audio/ack/audio/ack. There is no reason in TCP to be doing this, both sides have Window Scaling enabled and have window sizes in excess of 64k each.
I would recommend having the developers review the trace files to help them isolate the issue. Make sure they are using the latest version of Wireshark 1.6.4 to ensure they have dissectors for RTMP. (If they have a really old version, the packets might not decode)
Show
Travis May
added a comment - I hired a well-known network analyst to provide feedback on this issue, here is that feedback.
#2 below is a great question, does RTMP require an ACK for every single packet? We all know VoIP should not go over TCP, so we should concentrate on streamlining the TCP/RTMP connection.
Hi Travis,
I took traces to both sites from both a Mac/Safari and a Windows7/IE host. You are right – super choppy audio. There is no way I could understand it. I can hear the pause between packets and my screen filled with Buffer.Empty then Buffer.Full then Buffer.Empty messages. They were populating with the same frequency as the incoming packets in Wireshark.
I don’t think packet loss is your issue. I had minimal loss in the http conversations which I could not detect as the user. For the RTMP streams on port 1935, I had zero packet loss.
When I focused on the RTMP streams, I noticed that there was never more than either 47 or 94 bytes of audio sent at a time, yet the Set Chunk Size is 512 in packet 26 of “IE to freeswitchorig – very choppy audio.pcap”. In the Safari traces, the chunk size is set to 1024. I don’t know enough about RTMP to know why the server is only sending a single packet and then waiting for a TCP ack, but it is. It is not streaming. When you look at the delta times between each of the sent RTMP packets from the server, they correlate directly to the TCP handshake time i.e. the round trip time.
So your two issues are:
1. small packet size (this may be due to me completely misunderstanding what Chunk Size is, I think it is to negotiate how much data in each packet, but when I read http://p2p-sip.blogspot.com/2009/06/problems-in-rtmp.html it goes down a completely different path). There is no reason in TCP to be doing this, both sides negotiate an MSS of 1460.
2. Server not queuing multiple packets to send to the client. The pattern should be audio/audio/audio/audio….audio/ack not audio/ack/audio/ack. There is no reason in TCP to be doing this, both sides have Window Scaling enabled and have window sizes in excess of 64k each.
I would recommend having the developers review the trace files to help them isolate the issue. Make sure they are using the latest version of Wireshark 1.6.4 to ensure they have dissectors for RTMP. (If they have a really old version, the packets might not decode)
Hide
Travis May
added a comment -
I agree on WebRTC.
Unfortunately, WebRTC will not have 90%+ penetration for 24-36 months at the earliest and FreeSwitch is on the upswing now.
I believe mod_rtmp is CRUCIAL to the future success of FreeSwitch.
Travis
Unfortunately, WebRTC will not have 90%+ penetration for 24-36 months at the earliest and FreeSwitch is on the upswing now.
I believe mod_rtmp is CRUCIAL to the future success of FreeSwitch.
Travis
Show
Travis May
added a comment - I agree on WebRTC.
Unfortunately, WebRTC will not have 90%+ penetration for 24-36 months at the earliest and FreeSwitch is on the upswing now.
I believe mod_rtmp is CRUCIAL to the future success of FreeSwitch.
Travis
Hide
Anthony Minessale II
added a comment -
That comment is actually very insulting. I tried to shake it off but after nearly 16 hours it's still annoying me so I feel the need to comment:
So basically you are saying that mod_rtmp is CRUCIAL to the future success of FreeSWITCH?
So it is utterly doomed without RTMP? Since lacking a CRUCIAL component would just cause the whole project to fade into the abyss?
It's success has nothing to do with the countless hours we pour into making sure its up to date and running and all the other work we do?
None of the providers who use it care about RTMP nor anyone using a PBX, it's cool to have RTMP and maybe a niche market might even be out there to make a few web based things with it.....
However,
I disagree with your statement since I believe that once flash is dead on mobile devices it won't be long before its all the way dead.
http://www.guardian.co.uk/technology/2011/nov/09/adobe-flash-mobile-dead
Plus its FreeSWITCH not FreeSwitch......
Anyway,
That does not mean your findings are not correct on the RTMP module so I will have a look at the points made by your analyst.
So basically you are saying that mod_rtmp is CRUCIAL to the future success of FreeSWITCH?
So it is utterly doomed without RTMP? Since lacking a CRUCIAL component would just cause the whole project to fade into the abyss?
It's success has nothing to do with the countless hours we pour into making sure its up to date and running and all the other work we do?
None of the providers who use it care about RTMP nor anyone using a PBX, it's cool to have RTMP and maybe a niche market might even be out there to make a few web based things with it.....
However,
I disagree with your statement since I believe that once flash is dead on mobile devices it won't be long before its all the way dead.
http://www.guardian.co.uk/technology/2011/nov/09/adobe-flash-mobile-dead
Plus its FreeSWITCH not FreeSwitch......
Anyway,
That does not mean your findings are not correct on the RTMP module so I will have a look at the points made by your analyst.
Show
Anthony Minessale II
added a comment - That comment is actually very insulting. I tried to shake it off but after nearly 16 hours it's still annoying me so I feel the need to comment:
So basically you are saying that mod_rtmp is CRUCIAL to the future success of FreeSWITCH?
So it is utterly doomed without RTMP? Since lacking a CRUCIAL component would just cause the whole project to fade into the abyss?
It's success has nothing to do with the countless hours we pour into making sure its up to date and running and all the other work we do?
None of the providers who use it care about RTMP nor anyone using a PBX, it's cool to have RTMP and maybe a niche market might even be out there to make a few web based things with it.....
However,
I disagree with your statement since I believe that once flash is dead on mobile devices it won't be long before its all the way dead.
http://www.guardian.co.uk/technology/2011/nov/09/adobe-flash-mobile-dead
Plus its FreeSWITCH not FreeSwitch......
Anyway,
That does not mean your findings are not correct on the RTMP module so I will have a look at the points made by your analyst.
Hide
Anthony Minessale II
added a comment -
Has this been tested by the analyst and the others before or after my most recent commit?
I am currently sitting here with both my mac pro desktop pc and samsung i5 win7 laptop calling into our conference server running latest HEAD
I am calling the milliwatt tone extension and both are emitting a solid tone. I was doing a ping -t to the conference server from the windows box at the same time. one time in like 10 minutes the windows pc had an audio blip and the pings also failed during that time.
The mac on the same network never skipped a beat.
This is with the default values in rtmp.conf.xml besides the auth disabled.
Please try the box at http://conference.freeswitch.org/flex its already set by default to call 9997
9997 - milliwatt
9996 - echo
1235 - imperial march
888 - public conference
I am currently sitting here with both my mac pro desktop pc and samsung i5 win7 laptop calling into our conference server running latest HEAD
I am calling the milliwatt tone extension and both are emitting a solid tone. I was doing a ping -t to the conference server from the windows box at the same time. one time in like 10 minutes the windows pc had an audio blip and the pings also failed during that time.
The mac on the same network never skipped a beat.
This is with the default values in rtmp.conf.xml besides the auth disabled.
Please try the box at http://conference.freeswitch.org/flex its already set by default to call 9997
9997 - milliwatt
9996 - echo
1235 - imperial march
888 - public conference
Show
Anthony Minessale II
added a comment - Has this been tested by the analyst and the others before or after my most recent commit?
I am currently sitting here with both my mac pro desktop pc and samsung i5 win7 laptop calling into our conference server running latest HEAD
I am calling the milliwatt tone extension and both are emitting a solid tone. I was doing a ping -t to the conference server from the windows box at the same time. one time in like 10 minutes the windows pc had an audio blip and the pings also failed during that time.
The mac on the same network never skipped a beat.
This is with the default values in rtmp.conf.xml besides the auth disabled.
Please try the box at http://conference.freeswitch.org/flex its already set by default to call 9997
9997 - milliwatt
9996 - echo
1235 - imperial march
888 - public conference
Hide
Marc Olivier Chouinard
added a comment -
Flash does support other protocol more adapt for voip communication (udp), but it require someone to take the time to implement it. In the mean time, with tcp packet lost are retransmit and any more up to date data will be put on hold, so there is a limit on how good it possible to be made, also there might have limitation into the flash client code itself we can't fix.
I do not beleive FS depend on flash client at all... But it does make a really neat addition.
I do not beleive FS depend on flash client at all... But it does make a really neat addition.
Show
Marc Olivier Chouinard
added a comment - Flash does support other protocol more adapt for voip communication (udp), but it require someone to take the time to implement it. In the mean time, with tcp packet lost are retransmit and any more up to date data will be put on hold, so there is a limit on how good it possible to be made, also there might have limitation into the flash client code itself we can't fix.
I do not beleive FS depend on flash client at all... But it does make a really neat addition.
Hide
Travis May
added a comment -
Hi Marc Olivier,
Can you expand on the UDP protocol that flash supports? I may be willing to hire someone to implement that.
Do you know anyone willing to do this on a contract basis?
Thanks,
Travis
Can you expand on the UDP protocol that flash supports? I may be willing to hire someone to implement that.
Do you know anyone willing to do this on a contract basis?
Thanks,
Travis
Show
Travis May
added a comment - Hi Marc Olivier,
Can you expand on the UDP protocol that flash supports? I may be willing to hire someone to implement that.
Do you know anyone willing to do this on a contract basis?
Thanks,
Travis
Hide
Anthony Minessale II
added a comment -
consulting@freeswitch.org is the contact address for contract work.
That and other contact info appears in several of the notes on this bug already.
I was expecting a response about my last posting with the demo server and questions etc.
That and other contact info appears in several of the notes on this bug already.
I was expecting a response about my last posting with the demo server and questions etc.
Show
Anthony Minessale II
added a comment - consulting@freeswitch.org is the contact address for contract work.
That and other contact info appears in several of the notes on this bug already.
I was expecting a response about my last posting with the demo server and questions etc.
Hide
Marc Olivier Chouinard
added a comment -
Protocol is : RTMFP It also allow P2P communication between 2 flash player
Show
Marc Olivier Chouinard
added a comment - Protocol is : RTMFP It also allow P2P communication between 2 flash player
Hide
Auto Admin
added a comment -
Due to a long period of inactivity (13 or more days), this issue is due to be automatically close within 24 hours.
If this issue is not actually resolved, please reopen it and add appropriate comments to help developers fix the issue.
Thanks,
Jira Admin
If this issue is not actually resolved, please reopen it and add appropriate comments to help developers fix the issue.
Thanks,
Jira Admin
Show
Auto Admin
added a comment - Due to a long period of inactivity (13 or more days), this issue is due to be automatically close within 24 hours.
If this issue is not actually resolved, please reopen it and add appropriate comments to help developers fix the issue.
Thanks,
Jira Admin
Hide
Auto Admin
added a comment -
Since there has been no change to the status of this issue, it is being closed for inactivity
Thanks,
Jira Admin
FreeSWITCH Support Contracts and Consulting Services available!
Contact us:
Email: consulting@freeswitch.org
Web: http://www.freeswitch.org
Phone: +1-918-420-9266
Tollfree: +1-877-742-2583
Fax: +1-918-420-9267
iNum: +883 5100 1420 9266
Come To ClueCon in August to learn more about FreeSWITCH and Internet Telephony!
http://www.cluecon.com
Thanks,
Jira Admin
FreeSWITCH Support Contracts and Consulting Services available!
Contact us:
Email: consulting@freeswitch.org
Web: http://www.freeswitch.org
Phone: +1-918-420-9266
Tollfree: +1-877-742-2583
Fax: +1-918-420-9267
iNum: +883 5100 1420 9266
Come To ClueCon in August to learn more about FreeSWITCH and Internet Telephony!
http://www.cluecon.com
Show
Auto Admin
added a comment - Since there has been no change to the status of this issue, it is being closed for inactivity
Thanks,
Jira Admin
FreeSWITCH Support Contracts and Consulting Services available!
Contact us:
Email: consulting@freeswitch.org
Web: http://www.freeswitch.org
Phone: +1-918-420-9266
Tollfree: +1-877-742-2583
Fax: +1-918-420-9267
iNum: +883 5100 1420 9266
Come To ClueCon in August to learn more about FreeSWITCH and Internet Telephony!
http://www.cluecon.com