Upload
others
View
11
Download
0
Embed Size (px)
Citation preview
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 @ {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":"[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
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
REST APISSending SMS
• curl “http://localhost:3000/messagings?format=json&messaging%5buser_id%5d=1&messaging%5btext%5d=yoururlencodedtext&token=yourpersistenttoken&messaging%5bto%5d=destinationnumber”
Sunday, June 6, 2010
REST APISPlacing outbound call
•curl “http://localhost:3000/outgoing_calls?format=json&user_id=1&token=persistenttoken&outgoing_call%5bcallee_number%5d=recipientnumber”
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