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

OpenVoice

3c568ede9e2cb4e22e25bb3362186a5c?s=47 zlu
June 15, 2010

 OpenVoice

OpenSource GoogleVoice Clone

3c568ede9e2cb4e22e25bb3362186a5c?s=128

zlu

June 15, 2010
Tweet

Transcript

  1. OPENVOICE Zhao Lu, myopenvoice.org Saturday, September 14, 13

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

    Orange Labs • Loves open-source, yoga, personal private cloud • zlu@me.com • zlu @ {twitter, github, gitorious} Saturday, September 14, 13
  3. 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
  4. 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
  5. 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
  6. DEMO Saturday, September 14, 13

  7. 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
  8. DEMO Saturday, September 14, 13

  9. 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":"zlu@me.com"}},"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":"zlu@me.com"}}} Saturday, September 14, 13
  10. 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
  11. REST APIS Sending SMS • curl “http://localhost:3000/messagings?format=json&messaging %5buser_id%5d=1&messaging%5btext %5d=yoururlencodedtext&token=yourpersistenttoken&messa ging%5bto%5d=destinationnumber”

    Saturday, September 14, 13
  12. REST APIS Placing outbound call • curl “http://localhost:3000/outgoing_calls? format=json&user_id=1&token=persistenttoken &outgoing_call%5bcallee_number

    %5d=recipientnumber” Saturday, September 14, 13
  13. 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
  14. 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
  15. 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