Here is what I had to do to make it work. Not sure if we can get a
patched Asterisk as part of the standard release as we need to
re-package Asterisk.
Right now we just take the default Asterisk package and drop the
app_konference.so into the modules dir of Asterisk. Not sure if we
can do that
for the Speex support.
Let me know if the instructions below work for you. Or if there are
anything you can do to improve it.
Richard
===
Checkout AsteriskAudioKonf
=====================
cd
mkdir dev/app_konf/
git clone git://github.com/jthomerson/AsteriskAudioKonf.git
cd AsteriskAudioKonf/
cd asterisk-patches/
more README
Download and patch Asterisk 1.6.2.5
===========================
cd
mkdir asterisk-1.6.2.5
wget http://downloads.asterisk.org/pub/telephony/asterisk/old-releases/asterisk-1.6.2.5.tar.gz
tar zxvf asterisk-1.6.2.5.tar.gz
mv asterisk-1.6.2.5 asterisk-1.6.2.5.orig
cp ~/dev/app_konf/AsteriskAudioKonf/asterisk-patches/asterisk-1.6.2.5-speex16.patch
./
patch -p0 < asterisk-1.6.2.5-speex16.patch
Install Asterisk dependencies
======================
sudo apt-get -y install linux-headers-$(uname -r) build-essential
automake autoconf bison flex libtool libncurses5-dev libssl-dev
subversion svn-buildpackage
sudo apt-get install libspeex-dev libspeex1 libspeexdsp-dev libspeexdsp1
apt-get install libresample1 libresample1-dev
Build Asterisk
===========
cd asterisk-1.6.2.5.orig
./configure --disable-xmldoc
make
sudo make install
Build AsteriskAudioKonf
======================
cd ~/dev/app_konf/AsteriskAudioKonf/konference/
make clean
make
sudo make install
sudo /etc/init.d/asterisk stop
sudo /etc/init.d/asterisk start
sudo asterisk -vvvvvvvr
Edit bbb_sip.conf to use speex wideband
==============================
sudo vi /etc/asterisk/bbb_sip.conf
[bbbuser]
type=friend
username=bbbuser
insecure=very
qualify=no
nat=yes
host=dynamic
canreinvite=no
context=bbb-voip
disallow=all
allow=speex16,ulaw
Edit /etc/asterisk/codecs.conf to configure for speex WB
=========================================
[speex]
- Hide quoted text -
; CBR encoding quality [0..10]
; used only when vbr = false
quality => 5
; codec complexity [0..10]
; tradeoff between cpu/quality
complexity => 5
; perceptual enhancement [true / false]
; improves clarity of decoded speech
enhancement => true
; voice activity detection [true / false]
; reduces bitrate when no voice detected, used only for CBR
; (implicit in VBR/ABR)
vad => false
; variable bit rate [true / false]
; uses bit rate proportionate to voice complexity
vbr => false
; available bit rate [bps, 0 = off]
; encoding quality modulated to match this target bit rate
; not recommended with dtx or pp_vad - may cause bandwidth spikes
abr => 0
; VBR encoding quality [0-10]
; floating-point values allowed
vbr_quality => 9
; discontinuous transmission [true / false]
; stops transmitting completely when silence is detected
; pp_vad is far more effective but more CPU intensive
dtx => false
; preprocessor configuration
; these options only affect Speex v1.1.8 or newer
; enable preprocessor [true / false]
; allows dsp functionality below but incurs CPU overhead
preprocess => false
; preproc voice activity detection [true / false]
; more advanced equivalent of DTX, based on voice frequencies
pp_vad => false
; preproc automatic gain control [true / false]
pp_agc => false
pp_agc_level => 8000
; preproc denoiser [true / false]
pp_denoise => false
; preproc dereverb [true / false]
pp_dereverb => false
pp_dereverb_decay => 0.4
pp_dereverb_level => 0.3
[plc]
; for all codecs which do not support native PLC
; this determines whether to perform generic PLC
; there is a minor performance penalty for this
genericplc => true
=====
> --
> You received this message because you are subscribed to the Google Groups "BigBlueButton-dev" group.
> To post to this group, send email to bigblueb...@googlegroups.com.
> To unsubscribe from this group, send email to bigbluebutton-...@googlegroups.com.
> For more options, visit this group at http://groups.google.com/group/bigbluebutton-dev?hl=en.
>
>
--
---
BigBlueButton
http://www.bigbluebutton.org
http://code.google.com/p/bigbluebutton
My answers inline....
On Wed, Sep 22, 2010 at 1:18 PM, HostBBB.com <sd...@207me.com> wrote:
> Richard, Getting close, have successfully patched and compiled
> asterisk and konference and got BBB .71dev to connect to conference
> using Konference....
>
> But bbb client log mentions PCMu nelly moser and SPEEX..
>
> See below, looks like speex is there but callback is PCM? I have added
> allow speex16 in sip... is this running speex or pcm? Not sure,
> need to look at asterisk cli closer to see if call is speex on both
> legs but im 90% sure client is still 8bit with Nelly Moser.
>
> 9/22/2010 12:59:21.330 [DEBUG] Joining voice conference
> 9/22/2010 12:59:23.126 [DEBUG] codec=SPEEX,framesPerPacket=1,rate=16
The client initializes the microphone to use speex by default but
waits from the server what to really use based on codec negotiation
between Red5 and Asterisk.
> 9/22/2010 12:59:23.501 [DEBUG] Phone Module Connection Status: SUCCESS
> 9/22/2010 12:59:23.502 [DEBUG] Dialing....73320
> 9/22/2010 12:59:23.502 [DEBUG] Calling 73320
> 9/22/2010 12:59:23.712 [DEBUG]
> successfullyJoinedVoiceConferenceCallback microphone_1285174765589 :
> speaker_1285174765588 : PCMU
> 9/22/2010 12:59:23.713 [DEBUG] Call connected...
> 9/22/2010 12:59:23.715 [DEBUG] codec=NELLYMOSER,rate=8
Both Asterisk and Red5 (BBB-Voice) agree to use Ulaw. This negotiation
is really driven by what Asterisk is setup to accept. if you have the
following in bbb_sip.conf
disallow=all
allow=speex16,ulaw
and still speex doesn't work, it may mean that there are dependencies
missing in Asterisk.
There might be a step missing on the instructions I sent. When
compiling Asterisk, try doing the following:
./configure --disable-xmldoc
make menuselect
- make sure the codec_speex is selected.
make
sudo make install
After starting asterisk, in the cli console, type "core show
translation" to display the different codecs and how much time it
takes to translate between codecs. You should see speex16 there.
Richard
- Please recompile the module with AC_USE_SPEEX16 defined (uncomment the
corresponding line in konference/Makefile before compilation).
Don't have my Asterisk setup yet so I can't tell you what the values
for the translations are. But IIRC it was also big.
Richard
> --
> You received this message because you are subscribed to the Google Groups "BigBlueButton-dev" group.
> To post to this group, send email to bigblueb...@googlegroups.com.
> To unsubscribe from this group, send email to bigbluebutton-...@googlegroups.com.
We tested on EC2 with FreeSWITCH and it seems like Ulaw is better than
Speex. Speex eats up a lot of CPU.
In Speex, we get between 20-30 VOIP users and we get choppy audio. For
Ulaw, we can get up to around 100.
We're still doing more testing with different scenarios and
combinations (video, deskshare, etc.).
Richard
We have internal tools to simulate N users on a BigBluebutton server,
but the *real* testing occurs when our community members try
BigBlueButton and share their results.
Thanks for sharing your findings so far ... we're still working on
0.71. When we enter our testing phase (soon!), we certainly want to
get broad feedback and do another community-wide stress test like we
did for the previous release.
http://groups.google.com/group/bigbluebutton-users/browse_thread/thread/307a9878fcf07ebe#
Regards,... Fred