Loop/Try Loop
Loop is a two way audio video application that uses webRTC to communicate.
Here's a diagram of how it works:
Contents
Clients
User Experience
- generally this is a 1 to 1 audio/video. The call endpoint creator will be in Firefox/App hosted environment and the receiver of the call link will be running in the standalone-client which is embedded in the page. A circle of connections can be created between multiple users but this isn't a recommended configuration.
- Currently working: Desktop to desktop, phone to phone
Firefox OS Loop Client
src: https://github.com/mozilla-b2g/firefoxos-loop-client
Installing Loop Client on device
- flash fxos 2.0 to your phone
- make sure phone has settings > adb and devtools access and remote debugging turned on.
- tether phone to computer
- git clone https://github.com/mozilla-b2g/firefoxos-loop-client.git
- open Fx nightly to about:app-manager [more info]
- click connect to device with device id (random 8 character id)
- phone should display allow to connect dialog, click yes
- In Apps tab, click add packaged app
- browse dialog to the firefoxos-loop-client repo location
- click 'update' button
- loop should be installed on phone
- open loop client - follow menu to use
Some notes about the FxOS Loop Client behavior
Logging-in You need to login either with FxAccounts or using your phone number.
- For FxAccounts you just need to follow the same flow that is used for any other service using it.
- For Phone Number you need to enter the phone number you would like to use, you will receive a PIN and with that PIN you can login to Loop.
Calling another user
- You can just call other Loop registered users, otherwise, you will be given the option to share a URL so non-Loop users can click on it and callback you.
There are three ways to call a user with Loop:
- Via Loop call log, this option is not available at the start as the Call Log should be empty. It works in the same way the regular dialer, clicking on an entry just redials to the call log entry.
- Via Loop contact picker: click on the “contact” icon on main loop screen, that will take you (via an activity) to the contacts application, where you can select the contact you would like to call to.
- Via FirefoxOS Contacts Application: Open contacts application, in every contact detail with an e-mail address or phone number user will have the option to start a Loop call (video and audio buttons). NOTE: Showing the button does not imply the contact details correspond to a Loop user, i.e. Clicking on the button might open the Loop app but just for sharing a callback URL.
Loop Settings In Loop settings, you have the option to change the default call mode (audio or video – only applies to calls made via the Loop contact picker) and the default camera to be used.
IxD/Wireframes for Loop FxOS 1.1 version
http://app.uxpin.com/461ae4b0f38a12ab4c3c8e1523cd2fdbe3160938/
Desktop Firefox Loop Client
- Get Firefox Nightly
- click on the smiling face in the talk bubble in the navigation bar
- copy URL and open it on another device (another person or device)
- click allow when prompted to use cam/mic
Standalone Loop Client and Client Tests
There's a web page that creates the webRTC peer-2-peer call. You can test that here in any browser:
- https://github.com/edmoz/loop-standalone (out of date - see mozilla-central for head revision)
full instructions are here:
Client Debugging
FxOS
- push these gecko prefs:
user_pref("identity.fxaccounts.loglevel", "Debug"); user_pref("services.mobileid.loglevel", "Debug");
you should see traces like such in logcat:
I/Gecko (11667): 1406135778375 MobileId DEBUG getMobileIdAssertion
Desktop
- about:webrtc
- Browser Console with
loop.debug.loglevel
= Debug - Terminal output with
identity.fxaccounts.loglevel
= Debug andservices.hawk.loglevel
= Debug - Web Console for link clicker UI
MSISDN
- SMS is sent via Nexmo
- https://github.com/ferjm/msisdn-verifier-client
- MSISDN for USA: 1650xxxyyyy
- MCC: 310 (for USA)
- MNC: 070 (for ATT)
- current bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1042866
Standalone Loop Client
Snapshot of mozilla-central src:
Servers
There are four servers involved:
- Loop-server (call)
- MSISDN gateway
- Firefox Accounts via OAuth
- TokBox TURN server
How to run Tests