OPENVOICE - files.meetup.com · INTRODUCING OPENVOICE •Open-source Rails telephony framework,...

15
OPENVOICE Zhao Lu, myopenvoice.org Sunday, June 6, 2010

Transcript of OPENVOICE - files.meetup.com · INTRODUCING OPENVOICE •Open-source Rails telephony framework,...

Page 1: OPENVOICE - files.meetup.com · INTRODUCING OPENVOICE •Open-source Rails telephony framework, implemented on top of Tropo •Supports followme, call screen, caller announcement,

OPENVOICE Zhao Lu, myopenvoice.org

Sunday, June 6, 2010

Page 2: OPENVOICE - files.meetup.com · INTRODUCING OPENVOICE •Open-source Rails telephony framework, implemented on top of Tropo •Supports followme, call screen, caller announcement,

ABOUT ME

•Living in San Francisco

•Working for Orange Labs

•Loves open-source, yoga, arduino, personal private cloud

[email protected]

• zlu @ {twitter, github, gitorious}

Sunday, June 6, 2010

Page 3: OPENVOICE - files.meetup.com · INTRODUCING OPENVOICE •Open-source Rails telephony framework, implemented on top of Tropo •Supports followme, call screen, caller announcement,

GOOGLE VOICEMotivations for OpenVoice

•Great consumer product for US market, almost free and low cost international calls

•Close-source

•No API

•Poor SIP support - Gizmo only

•Only available in US

•Where does my data go?

Sunday, June 6, 2010

Page 4: OPENVOICE - files.meetup.com · INTRODUCING OPENVOICE •Open-source Rails telephony framework, implemented on top of Tropo •Supports followme, call screen, caller announcement,

INTRODUCING OPENVOICE

• Open-source Rails telephony framework, implemented on top of Tropo

• Supports followme, call screen, caller announcement, voicemail transcription, call recording, and more

• Supports SIP, Skype, SMS, and IM

• Web interface and Android client

• A fork that runs on GoogleApp engine

Sunday, June 6, 2010

Page 5: OPENVOICE - files.meetup.com · INTRODUCING OPENVOICE •Open-source Rails telephony framework, implemented on top of Tropo •Supports followme, call screen, caller announcement,

WEB INTERFACE

•Messaging: view, send, receive SMS and IM

•Call: view inbound and outbound call log, place outbound calls

•Voicemail: view voicemail transcription and playback

•Phone numbers: register multiple phone numbers to follow, set forwarding numbers, set default number

•Setting: server URL

Sunday, June 6, 2010

Page 6: OPENVOICE - files.meetup.com · INTRODUCING OPENVOICE •Open-source Rails telephony framework, implemented on top of Tropo •Supports followme, call screen, caller announcement,

DEMO

Sunday, June 6, 2010

Page 7: OPENVOICE - files.meetup.com · INTRODUCING OPENVOICE •Open-source Rails telephony framework, implemented on top of Tropo •Supports followme, call screen, caller announcement,

ANDROID CLIENT

•Auto registration for phone number

•User authentication

•Server configuration

•Message view, outbound SMS

• Inbound and outbound call log, placing outbound call

•Voicemail management, view transcription, playback

Sunday, June 6, 2010

Page 8: OPENVOICE - files.meetup.com · INTRODUCING OPENVOICE •Open-source Rails telephony framework, implemented on top of Tropo •Supports followme, call screen, caller announcement,

DEMO

Sunday, June 6, 2010

Page 9: OPENVOICE - files.meetup.com · INTRODUCING OPENVOICE •Open-source Rails telephony framework, implemented on top of Tropo •Supports followme, call screen, caller announcement,

REST APISUser authentication

• curl "http://localhost:3000/user_sessions/create?user_session%5blogin%5d=username&user_session%5bpassword%5d=secretpassword&format=json"

• {"scope":{},"remember_me":false,"invalid_password":false,"new_session":false,"attempted_record":{"user":{"name":"zhao","single_access_token":"fkLOnwWtYlDEMfrb9qM2","last_request_at":"2010-05-30T07:42:50Z","crypted_password":"e6f740db509e681baf1543a9d90e17ae6cebce026903ca924a0b6a9a0ee1e04dffd3d01c48115b758562c201905cfaac1d2eb0bb3af592949271a957e27324e7","perishable_token":"sg0qx4yV82Mq94-h5db0","id":1,"failed_login_count":0,"current_login_ip":"127.0.0.1","password_salt":"3msFhqdDAp-NiQSCkCS6","current_login_at":"2010-05-30T07:42:50Z","persistence_token":"354214f571c474ada84d4674119acc6624f477a8d4d8cb83e9e896c24c6d2b14821b0b11be779d0bfe3217516ef23ff5b29150503f6e1c8b4fef08a428d1d9b3","login_count":18,"last_login_ip":"127.0.0.1","login":"zlu","last_login_at":"2010-05-28T21:23:03Z","email":"[email protected]"}},"errors":[],"record":{"user":{"name":"zhao","single_access_token":"fkLOnwWtYlDEMfrb9qM2","last_request_at":"2010-05-30T07:42:50Z","crypted_password":"e6f740db509e681baf1543a9d90e17ae6cebce026903ca924a0b6a9a0ee1e04dffd3d01c48115b758562c201905cfaac1d2eb0bb3af592949271a957e27324e7","perishable_token":"sg0qx4yV82Mq94-h5db0","id":1,"failed_login_count":0,"current_login_ip":"127.0.0.1","password_salt":"3msFhqdDAp-NiQSCkCS6","current_login_at":"2010-05-30T07:42:50Z","persistence_token":"354214f571c474ada84d4674119acc6624f477a8d4d8cb83e9e896c24c6d2b14821b0b11be779d0bfe3217516ef23ff5b29150503f6e1c8b4fef08a428d1d9b3","login_count":18,"last_login_ip":"127.0.0.1","login":"zlu","last_login_at":"2010-05-28T21:23:03Z","email":"[email protected]"}}}

Sunday, June 6, 2010

Page 10: OPENVOICE - files.meetup.com · INTRODUCING OPENVOICE •Open-source Rails telephony framework, implemented on top of Tropo •Supports followme, call screen, caller announcement,

REST APISMessage retrieval

• curl "http://localhost:3000/users/1/messagings?format=json&token=354214f571c474ada84d4674119acc6624f477a8d4d8cb83e9e896c24c6d2b14821b0b11be779d0bfe3217516ef23ff5b29150503f6e1c8b4fef08a428d1d9b3"

• [{"messaging":{"created_at":"Fri, May 07","from_name":null,"updated_at":"2010-05-07T17:40:01Z","outgoing":false,"from":"16508983130","text":"Hello, what are you doing?","to":"14085059096","id":11,"user_id":1}}]

Sunday, June 6, 2010

Page 13: OPENVOICE - files.meetup.com · INTRODUCING OPENVOICE •Open-source Rails telephony framework, implemented on top of Tropo •Supports followme, call screen, caller announcement,

LOCAL DEVELOPMENT

•Git clone

• Start rails server

• Reverse ssh tunnel

•Create user and login

• Add one or more phone numbers

•Create Tropo application

•Manual provision

Sunday, June 6, 2010

Page 14: OPENVOICE - files.meetup.com · INTRODUCING OPENVOICE •Open-source Rails telephony framework, implemented on top of Tropo •Supports followme, call screen, caller announcement,

THE FUTUREShort-list

•Multiple back-ends: FreeSwitch, Asterisk, Moho

• Rails 3.x, MongoDB

•Native iPhone/iPad client

•Qt client for nokia n900 and Meego devices

• Server-side: provisioning, conferencing, adding participants to conference

• Twitter support

Sunday, June 6, 2010

Page 15: OPENVOICE - files.meetup.com · INTRODUCING OPENVOICE •Open-source Rails telephony framework, implemented on top of Tropo •Supports followme, call screen, caller announcement,

MORE INFORMATION

•Code: http://github.com/openvoice (rails, gae, android)

•Blog: http://blog.myopenvoice.org/?p=93

•Tropo blog: http://blog.tropo.com/2010/05/19/introducing-openvoice-your-number-open-source/

Sunday, June 6, 2010