Wideband Audio Conferencing with Asterisk

29
AG Projects ICE: the ultimate way of beating NAT in SIP The SIP Infrastructure Experts AstriCon 2010 Wideband Audio Conferencing with Asterisk Saúl Ibarra Corretgé | AG Projects Because G711 is not enough

Transcript of Wideband Audio Conferencing with Asterisk

Page 1: Wideband Audio Conferencing with Asterisk

AG Projects ICE: the ultimate way of beating NAT in SIPThe SIP Infrastructure Experts

AstriCon 2010

Wideband Audio Conferencing with AsteriskSaúl Ibarra Corretgé | AG Projects

Because G711 is not enough

Page 2: Wideband Audio Conferencing with Asterisk

AG Projects Wideband Audio Conferencing with AsteriskThe SIP Infrastructure Experts

AstriCon 2010

Index

● What is Wideband voice?● Should I use Wideband anyway?● Asterisk wideband capabilities● Conference calls with Asterisk● Testing and results

Page 3: Wideband Audio Conferencing with Asterisk

AG Projects Wideband Audio Conferencing with AsteriskThe SIP Infrastructure Experts

AstriCon 2010

What is Wideband voice?

● Higher quality voice● Higher detailed voice● Richer sound

Nothing new! G722 is from 1988!

Page 4: Wideband Audio Conferencing with Asterisk

AG Projects Wideband Audio Conferencing with AsteriskThe SIP Infrastructure Experts

AstriCon 2010

What is Wideband voice? (II)

● Human voice ranges from 30 to 18000 Hz● The more frequencies we transmit the

richer the voice is

Page 5: Wideband Audio Conferencing with Asterisk

AG Projects Wideband Audio Conferencing with AsteriskThe SIP Infrastructure Experts

AstriCon 2010

What is Wideband voice? (III)

● Nyquist sampling theorem● If we want to transmit X amount of frequencies

they need to be sampled at 2X sample rate

● G711● ~50 – 4000 Hz -> 8000 Hz sample rate

● G722● ~0 – 7000 Hz -> 16000 Hz sample rate

Page 6: Wideband Audio Conferencing with Asterisk

AG Projects Wideband Audio Conferencing with AsteriskThe SIP Infrastructure Experts

AstriCon 2010

What is Wideband voice? (IV)

How can G711 and G722 use same bitrate (64 kbps) then?

● G711● Uses PCM. 8 bits per sample * 8000 samples =

64 kbps● G722

● Uses SB-ADPCM– 48 kbps for the lower band– 16 kbps for the higher band

Page 7: Wideband Audio Conferencing with Asterisk

AG Projects Wideband Audio Conferencing with AsteriskThe SIP Infrastructure Experts

AstriCon 2010

What is Wideband voice? (V)

Page 8: Wideband Audio Conferencing with Asterisk

AG Projects Wideband Audio Conferencing with AsteriskThe SIP Infrastructure Experts

AstriCon 2010

Should I use Wideband anyway?

Short answer: yes.Long(er) answer: yes, of course.

● “Cleaner” sound● Easier way to identify voices● Clearer diference between close sounds: “sailing” vs “failing”,

etc.● Just don't say “what?” ever again.

25% of calls at SIP2SIP.info use wideband

Only 2% did use wideband same period last year

Page 9: Wideband Audio Conferencing with Asterisk

AG Projects Wideband Audio Conferencing with AsteriskThe SIP Infrastructure Experts

AstriCon 2010

Asterisk codec capabilities

Narrowband codecs● G711● GSM● G729● iLBC● G723.1● G726● ...

Wideband codecs● G722● G722.1 (Siren 7 and Siren

14)● Speex 16 KHz (new in 1.8!)● G719 passthrough (new in

1.8!)

Page 10: Wideband Audio Conferencing with Asterisk

AG Projects Wideband Audio Conferencing with AsteriskThe SIP Infrastructure Experts

AstriCon 2010

Conferencing

Multiple callers involved in a single call

Page 11: Wideband Audio Conferencing with Asterisk

AG Projects Wideband Audio Conferencing with AsteriskThe SIP Infrastructure Experts

AstriCon 2010

Conferencing (II)

● Client side

● Server side

● Hosted service

Page 12: Wideband Audio Conferencing with Asterisk

AG Projects Wideband Audio Conferencing with AsteriskThe SIP Infrastructure Experts

AstriCon 2010

Asterisk conferencing capabilities

Asterisk supports several channel independent applications for conferencing:

● MeetMe● It's been around since forever● Mixing is done in DAHDI really● No wideband support (mixing is done in

DAHDI at 8 Khz)

Page 13: Wideband Audio Conferencing with Asterisk

AG Projects Wideband Audio Conferencing with AsteriskThe SIP Infrastructure Experts

AstriCon 2010

Asterisk conferencing capabilities (II)

● ConfBridge● New as of Asterisk 1.6.2● Uses “new” Brdging API● No DAHDI needed● Wideband capable!● Can do mixing at 16 Khz or 8 Khz, but not both● Not as many options as MeetMe... yet!

Page 14: Wideband Audio Conferencing with Asterisk

AG Projects Wideband Audio Conferencing with AsteriskThe SIP Infrastructure Experts

AstriCon 2010

Asterisk conferencing capabilities (III)

● AppKonference● Third party application● Fork of AppConference, around since Asterisk

1.0.x● No DAHDI required● Wideband capable!● Video capable!● Not working with Asterisk 1.8 yet

Page 15: Wideband Audio Conferencing with Asterisk

AG Projects Wideband Audio Conferencing with AsteriskThe SIP Infrastructure Experts

AstriCon 2010

A note on timing sources

● Full explanation on doc/timing.txt● Asterisk supports several sources which can be used to

provide internal timing● res_timing_timerfd

– Only available on Linux systems with Kernel >= 2.6.25 & glibc >= 2.8

– Very reliable source of timing

● res_timing_kqueue– Only available on BSD systems (yes, also works on the Mac)

● res_timing_dahdi– Uses DAHDI to provide timing

● res_timing_pthread– Uses the pthread library to provide timing

– Least efective, but more portable

Page 16: Wideband Audio Conferencing with Asterisk

AG Projects Wideband Audio Conferencing with AsteriskThe SIP Infrastructure Experts

AstriCon 2010

ConfBridge

● No confguration fle● Smart bridging: 2 party and multiparty mixing● Be careful, you can't mix diferent sample rates● Inbound codec can't be forced● Not as complete as MeetMe...● ... I'm sure patches would be welcome :-)

exten => _*7XXXX,1,NoOp(Entering conference ${EXTEN:4})same => n,Answersame => n,ConfBridge(${EXTEN:4},M)

Page 17: Wideband Audio Conferencing with Asterisk

AG Projects Wideband Audio Conferencing with AsteriskThe SIP Infrastructure Experts

AstriCon 2010

AppKonference

● No confguration fle● Inbound codec can't be forced● Minimize encoding/decoding

● One speaker: frames sent directly to each participant. Frames transcoded once per codec type

● Two speakers: each speaker gets the other speakers frames. The two speakers frames are then mixed and transcoded once per codec type

exten => _*7XXXX,1,NoOp(Entering conference ${EXTEN:4})same => n,Answersame => n,Konference(${EXTEN:4},H)

Page 18: Wideband Audio Conferencing with Asterisk

AG Projects Wideband Audio Conferencing with AsteriskThe SIP Infrastructure Experts

AstriCon 2010

Testing

● See how diferent options perform in terms of CPU usage● AppKonference● ConfBridge (with TimerFD timing)● ConfBridge (with Pthreads timing)

● Test scenarios (always 50 users)● 1 speaker● 2 speakers● Everyone speaking, madness!

Page 19: Wideband Audio Conferencing with Asterisk

AG Projects Wideband Audio Conferencing with AsteriskThe SIP Infrastructure Experts

AstriCon 2010

Tools

● pcapsipdump: capture SIP + RTP in PCAP format discarding everything else

● Wireshark: edit captured PCAP● SIPp: SIP + RTP trafc generation● sysstat: system stats generation● OpenOfce: graphics. It sucks, btw.● Human hear

● Hardware● Code2Duo desktop computer with 8GB of DDR3 RAM● Gigabit Ethernet

Page 20: Wideband Audio Conferencing with Asterisk

AG Projects Wideband Audio Conferencing with AsteriskThe SIP Infrastructure Experts

AstriCon 2010

Tools: Asterisk versions

● ConfBridge tests● Asterisk SVN branch 1.8 r292230

● AppKonference tests● Asterisk 1.6.2.14-rc1

Page 21: Wideband Audio Conferencing with Asterisk

AG Projects Wideband Audio Conferencing with AsteriskThe SIP Infrastructure Experts

AstriCon 2010

Results: 1 Speaker

1 2 3 4 5 6 7 8 9 101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960

0

5

10

15

20

25

30

35

40

45

Single Speaker

1 Speaker (AppKonference)1 Speaker (ConfBridge + TimerFD)1 Speaker (ConfBridge + Pthreads)

Page 22: Wideband Audio Conferencing with Asterisk

AG Projects Wideband Audio Conferencing with AsteriskThe SIP Infrastructure Experts

AstriCon 2010

Results: 2 Speakers

12

34

56

78

910

1112

1314

1516

1718

1920

2122

2324

2526

2728

2930

3132

3334

3536

3738

3940

4142

4344

4546

4748

4950

5152

5354

5556

5758

5960

0

10

20

30

40

50

60

70

2 Speakers

2 Speakers (ConfBridge + Pthreads)2 Speakers (ConfBridge + TimerFD)2 Speakers (AppKonference)

Page 23: Wideband Audio Conferencing with Asterisk

AG Projects Wideband Audio Conferencing with AsteriskThe SIP Infrastructure Experts

AstriCon 2010

Results: 50 Speakers!

12

34

56

78

910

1112

1314

1516

1718

1920

2122

2324

2526

2728

2930

3132

3334

3536

3738

3940

4142

4344

4546

4748

4950

5152

5354

5556

5758

5960

0

10

20

30

40

50

60

70

80

50 Speakers

50 Speakers (ConfBridge + Pthreads)50 Speakers (ConfBridge + TimerFD)50 Speakers (AppKonference)

Page 24: Wideband Audio Conferencing with Asterisk

AG Projects Wideband Audio Conferencing with AsteriskThe SIP Infrastructure Experts

AstriCon 2010

Results analysis

● AppKonference had more audio cuts (according to Human Hear TM)

● Short audio-loss when lots of calls were starting (ConfBridge)

● Overall TimerFD performed better than Pthread● AppKonference was tested on a diferent

release version● With 50 speakers AppKonference produces no

audio at all● ConfBridge doesn't have as many features as

good old MeetMe

Page 25: Wideband Audio Conferencing with Asterisk

AG Projects Wideband Audio Conferencing with AsteriskThe SIP Infrastructure Experts

AstriCon 2010

Recap

● Wideband can make our conference calls more understandable

● With G722 we use same bandwidth as G711● Asterisk provides all the necesary tools for a

nice and wideband conference call experience● ConfBridge looks like the way to go

● All hardware devices involved need to support wideband

Page 26: Wideband Audio Conferencing with Asterisk

AG Projects Wideband Audio Conferencing with AsteriskThe SIP Infrastructure Experts

AstriCon 2010

Spam!

● Join the VoIP Users Conference!● Every friday at 12:00 EDT

● Highly skilled speakers talking about VoIP● Anyone can join the conference!● In G722, of course!

http://vuc.me

Page 27: Wideband Audio Conferencing with Asterisk

AG Projects Wideband Audio Conferencing with AsteriskThe SIP Infrastructure Experts

AstriCon 2010

Questions?

Page 28: Wideband Audio Conferencing with Asterisk

AG Projects Wideband Audio Conferencing with AsteriskThe SIP Infrastructure Experts

AstriCon 2010

BYEBYE sip:[email protected] SIP/2.0

Via: SIP/2.0/UDP 192.168.99.23:49919;rport;branch=z9hG4bKPjDb30Dx0sH-ozn9QB.cCCboyU.atR97aMMax-Forwards: 70From: "saghul" <sip:[email protected]>;tag=UCpGKVZbQQx7BUKYtiuPEX668oa9jaU7To: <sip:[email protected]>;tag=as59aef35cCall-ID: DEWDfu63OACwYeQk7MrhmRhRq.1cqqisCSeq: 10633 BYERoute: <sip:81.23.228.129;lr;ftag=UCpGKVZbQQx7BUKYtiuPEX668oa9jaU7;did=641.a8a9c553>User-Agent: blink-0.20.2Content-Length: 0

[email protected]

sip:[email protected]

@saghul

Page 29: Wideband Audio Conferencing with Asterisk

AG Projects Wideband Audio Conferencing with AsteriskThe SIP Infrastructure Experts

AstriCon 2010

Images

http://www.fickr.com/photos/kigs/4991332361/sizes/l/in/photostream/

http://www.cisco.com/en/US/prod/collateral/voicesw/ps6788/phones/ps379/ps8537/prod_white_paper0900aecd806fa57a.html

http://www.fickr.com/photos/timdorr/2737609108/sizes/z/in/photostream/

http://www.trennum.net/hullabaloo/