Your SlideShare is downloading. ×
0
droidcon_voip_android
droidcon_voip_android
droidcon_voip_android
droidcon_voip_android
droidcon_voip_android
droidcon_voip_android
droidcon_voip_android
droidcon_voip_android
droidcon_voip_android
droidcon_voip_android
droidcon_voip_android
droidcon_voip_android
droidcon_voip_android
droidcon_voip_android
droidcon_voip_android
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

droidcon_voip_android

1,959

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,959
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. VoIP on Android Wednesday 7 April 2010
  • 2. Johan Cloetens @belgianwaves • background interest since start • huge android fan since oct. 2008 • free applications on Android Market: SipAgent, ShootMe/PicMe, OnAir, ... • professional android consultant since feb. 2009 • Escaux, Philips, Cherry, ... Wednesday 7 April 2010
  • 3. VoIP why should i care? • isn’t this boring? • break free / save costs • market trends • bringing voice in the network allows enriched experiences • Android is the ideal platform Wednesday 7 April 2010
  • 4. Android (overview) Wednesday 7 April 2010
  • 5. Android (ipc) • Intents • Services • loose coupling • tight coupling • asynchronous • synchronous • hash-like messages • aidl / corba-like Wednesday 7 April 2010
  • 6. Android (audio) AudioTrack App AudioRecord MediaServer Wednesday 7 April 2010
  • 7. Android (audio) APPLICATIONS Audio Apps APP FRAMEWORK AudioTrack / MediaPlayer / AudioRecord Recorder Class RUNTIME -> NATIVE JNI NATIVE LIBRARIES Media Library IPC binding MediaPlayer Audio Flinger Service (Native) (Native) PV OpenCore Player/ Author Engine IPC binding HAL of Audio PV Audio Enc/ PV Media Dec Node In/Out Node PV MIO I/F Alsa user Lib Android Audio I/O Wrapper LINUX KERNEL Alsa Driver Wednesday 7 April 2010
  • 8. AudioTrack AudioTrack t = new AudioTrack(AudioManager.STREAM_VOICE_CALL, 8000, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, bufferSizeOut(), AudioTrack.MODE_STREAM); t.play(); byte buffer[] = new byte[BUFFER_SIZE]; while (!stopped()) { int read = fetchIn(buffer); if (read > 0) { t.write(buffer, 0, read); } } t.stop(); Wednesday 7 April 2010
  • 9. AudioRecord AudioRecord r = new AudioRecord(MediaRecorder.AudioSource.MIC, 8000, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, bufferSizeIn()); r.startRecording(); byte buffer[] = new byte[BUFFER_SIZE]; while(!stopped()) { int read = r.read(buffer, 0, BUFFER_SIZE); if (read > 0) { pushOut(buffer, read); } } r.stop(); Wednesday 7 April 2010
  • 10. It’s easy ;-) choices left • compliancy to protocols (sip & iax) • codecs (ulaw, alaw, gsm, g729, ...) • java versus native • to silo or not to silo... • gotcha’s Wednesday 7 April 2010
  • 11. Gotchas • fragmentation • room for interpretation api’s • hardware dependency / buffer hints • latency • bugs • floating point support Wednesday 7 April 2010
  • 12. Demos Wednesday 7 April 2010
  • 13. To silo or not to silo that is the question... • basic functionality easier to integrate • enriched experience asks for silo • how to blend experience / look & feel? • ( what has Google in the pipe? ) Wednesday 7 April 2010
  • 14. Conclusion • VoIP on Android is a reality • could be easier • will improve • enriched communication experience only limited by your imagination • Android is platform of choice, plenty of options Wednesday 7 April 2010
  • 15. Feedback belgianwaves@gmail.com Wednesday 7 April 2010

×