Upgrade to Pro — share decks privately, control downloads, hide ads and more …

OpenVoice

Avatar for zlu zlu
June 15, 2010

 OpenVoice

OpenSource GoogleVoice Clone

Avatar for zlu

zlu

June 15, 2010
Tweet

More Decks by zlu

Other Decks in Technology

Transcript

  1. ABOUT ME • Living in San Francisco • Working for

    Orange Labs • Loves open-source, yoga, personal private cloud • [email protected] • zlu @ {twitter, github, gitorious} Saturday, September 14, 13
  2. GOOGLE VOICE Motivations for OpenVoice • Great consumer product for

    US market, almost free and low cost international calls • Close-source • No standard open API • Poor SIP support - Gizmo only • No Skype support • No IM support • Only available in US • Where does my data go? Saturday, September 14, 13
  3. INTRODUCING OPENVOICE • Open-source Rails telephony framework, implement 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 (demoed at google-io) Saturday, September 14, 13
  4. WEB INTERFACE • Profiles: provisioning information for Tropo and FreeSwitch

    (coming) • Phone numbers: register multiple phone numbers to follow, set forwarding numbers, set default number • Messaging: view, send, receive SMS and IM • Call: view inbound and outbound call log, place outbound calls • Voicemail: view voicemail transcription and playback • Addressbook: automatically add unknown caller Saturday, September 14, 13
  5. 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 Saturday, September 14, 13
  6. REST APIS User 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","crypt ed_password":"e6f740db509e681baf1543a9d90e17ae6cebce026903ca924a0b6a9a0ee1e04dffd3d01c48115b758 562c201905cfaac1d2eb0bb3af592949271a957e27324e7","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":"354214f571c474ada84d4674119ac c6624f477a8d4d8cb83e9e896c24c6d2b14821b0b11be779d0bfe3217516ef23ff5b29150503f6e1c8b4fef08a428d1 d9b3","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","crypt ed_password":"e6f740db509e681baf1543a9d90e17ae6cebce026903ca924a0b6a9a0ee1e04dffd3d01c48115b758 562c201905cfaac1d2eb0bb3af592949271a957e27324e7","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":"354214f571c474ada84 d4674119acc6624f477a8d4d8cb83e9e896c24c6d2b14821b0b11be779d0bfe3217516ef23ff5 b29150503f6e1c8b4fef08a428d1d9b3","login_count": 18,"last_login_ip":"127.0.0.1","login":"zlu","last_login_at":"2010-05-28T21:23:03Z","email":"[email protected]"}}} Saturday, September 14, 13
  7. REST APIS Message retrieval • curl "http://localhost:3000/users/1/messagings? format=json&token=354214f571c474ada84d4674119acc6624 f477a8d4d8cb83e9e896c24c6d2b14821b0b11be779d0bfe321 7516ef23ff5b29150503f6e1c8b4fef08a428d1d9b3"

    • [{"messaging":{"created_at":"Fri, May 07","from_name":null,"updated_at":"2010-05-07T17:40:01Z","ou tgoing":false,"from":"16508983130","text":"Hello, what are you doing?","to":"14085059096","id":11,"user_id":1}}] Saturday, September 14, 13
  8. 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 Saturday, September 14, 13
  9. THE FUTURE Short-list • Multiple back-ends: FreeSwitch, Asterisk, Moho •

    SIP proxy/registrar, PSTN gateway • Rails 3.x, MongoDB • Native iPhone/iPad client • Qt client for nokia n900 and Meego devices • Server-side: provisioning, conferencing, adding participants to conference, presence • Twitter support Saturday, September 14, 13
  10. 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/ • SF Telephony meetup: http://www.meetup.com/sftelephony • AdhearsionConf: http://adhearsionconf.eventbrite.com/ Saturday, September 14, 13