The below is a story informing the integration of Jitsi, DruCall, and DS.
The current intent/method of integration is that the existing legend bar will normally just be the doorbell with a flap or tip for expansion to display the full bar.
Ordinary ringer state, like a backlit doorbell, ready to accept or originate call. Blinking indicates incoming call (slow) or conference (rapid). Double click toggles to BUSY. Single click answers moving to IN CALL.
All subscribers start in this state and may move to it by personal selection or involuntarily due to network events. Single click moves to ATTENTION, double focuses CALL/PAGE input and moved to that state.
A subscriber controlled state which blocks ATTENTION requests until the subscriber click toggles to ATTENTION or double clicks to OFFHOOK.
- IN CALL
A subscriber moves to this state after connecting to a call assuming no event, such as their or the network having set a different state preventing same.
A network controlled state which indicates incoming events for the subscriber. It is normal for some such events not to result in actual incoming as for example when the remote subscriber cancels a message before sending it. The control is inhibited if it is solidly this color .
A state in which the subscriber has initiated a call, or lookup of a remote subscriber or group. Entered as a result of data entry in UI and subsequent network events determine which state results.
Visual cues, such as blinking, frame highlighring, fade-in/out indicate attention/opportunity or operation in progress.
The overall Ft GUI operates with elements such as the taskbar, main screen, and conferees array with elements in modal focus to constrain which subscriber pairs are involved and which gestures the subscriber has available. For example single click on a call state prompts for a subscriber lookup, whereas double click when paired with a selected subscriber initiates a call/page. Similary a device and state dependent gesture will determine the scope of an action, a single pair, the whole conference or a selected proper subgroup.
A distinguished subscriber in a conference call at any one time is the moderator, with overall control. A special case is the second joiner to a call after the initiator who is implicitly a co-moderator without the ability to transfer moderation (unless the user becomes moderator). Initially it is the initiator, the first caller but thereafter it may be transferred to any party to the call who will then have the following functions available:
- Join another conference creating or enlarging a global conference.
- Terminate the conference
- Stream a service to a set of conferees, all or a group.
- Mute, Call, or Disconnect any other conferee
- Make the co-moderator an ordinary conferee.
- Transfer moderation to another user. If the moderator disconnects from the call and goes OFFHOOK, without transferring moderation, the call/conference is automatically ended.
Conferences may have asides of up to four subscribers and these may survive the conference call. A global conference is a special case of a general conference with limitations, e.g. asides and subgroups are limited to local conferences and there is no moderation distinct from that of the local conferences. The moderator of the first local conference in a global one can disconnect any local conference, but otherwise each local conference has the same limited access to the global one. The network itself is not a global conference.