The recipe includes the three steps that are a part of performing a call in Skylight:
1) Creating a session for the call. This step is technically not required; if a session id isn't provided in the skylight.startVideoCall method, Skylight will create a session for you and return it as a part of the method.
2) Join the call using skylight.startVideoCall, specifying the session id if a session was created earlier.
3) After everyone has left the call, end the session when appropriate. Theoretically a session can exist indefinitely after everyone has left the call, so this step is also optional. The best practice is to close the session when the session is no longer needed (for calling purposes or otherwise).
In this recipe, the User and Developer roles are given access to view and modify all sessions, regardless of being a participant of the session. This is to make it easier for users to see the same session and join the call for the session.
In most use cases, the User and Developer roles should only be able to view and modify sessions of which they are a participant.
How does calling work in Skylight?
Every Skylight session has a call room associated with it, which any user that has a role that can view the session can join. The session is just like any other Skylight session and can be used as such, with updates to and bindings on the session data.
As such, calls in Skylight exist with a context (the session). Examples of these contexts are:
the workflow that the user is going through
the item that is currently being picked by the user
the wiring harness that is currently being assembled
the location that is currently being audited
Media that is captured during a call (screenshots and photo captures) are saved to the session's media.