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

Post on 13-Oct-2020

14 views 0 download

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

OPENVOICE Zhao Lu, myopenvoice.org

Sunday, June 6, 2010

ABOUT ME

•Living in San Francisco

•Working for Orange Labs

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

• zlu@me.com

• zlu @ {twitter, github, gitorious}

Sunday, June 6, 2010

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

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

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

DEMO

Sunday, June 6, 2010

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

DEMO

Sunday, June 6, 2010

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":"zlu@me.com"}},"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":"zlu@me.com"}}}

Sunday, June 6, 2010

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

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

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

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