SightCall Developer Center

Account Login Support

Attend a Waiting Room

The SightCall platform is primarily designed to perform one-to-one calls, from any type of client to any type of client (plugin to webrtc, plugin to mobile, webrtc to mobile, etc.). Once connected and authenticated, SightCall clients can call another connected and authenticated client based on the uid he/she connected with. The callee SDK is notified of an incoming call and can pick up the call (audio video, audio only) or decline it.

During the call, any peer can also start a screen share to share his/her desktop or any window (desktop client: plugin or webRtc) or any view (mobile client: android or iOS).

Requesting to join

To attend a multi-party call, an attendee uses the meeting point id. The user requests to join the conference:

rtcc.joinConfCall(meetingPointId,"Bob");
[[Rtcc instance] meetingPointRequestJoin:@"meetingPointId"];
Rtcc.instance().meetingPointRequestJoin("meetingPointId")
/**
 * @param mpid Meeting point identifier, send by data channel for instance 
 */
public void join(String mpid) {
    MeetingPoint meetingPoint = Rtcc.instance().getMeetingPoint(mpid);
    meetingPoint.join();
}

The attendee will then be notified of the status of his/her request.

As for hosting a meeting point, a desktop client automatically enters the call as oppose to mobile clients that need to manually join.

    function onAttendeePending(mpa){
        meetingPointAttendee=mpa;
        console.log('Waiting for host approval');
    }
    rtcc.on('meetingpoint.attendee.pending',onAttendeePending);

    function onAttendeeAccepted(mpa){
        console.log('You have been accepted');
    }
    rtcc.on('meetingpoint.attendee.accept',onAttendeeAccepted);

    function onAttendeeDenied(mpa){
        console.log('You have been rejected');
    }
    rtcc.on('meetingpoint.attendee.deny',onAttendeeDenied);

    function onAttendeeError{
        console.log('Something went wrong');
    }
    rtcc.on('meetingpoint.attendee.error',onAttendeeError);
}
//In RtccAttendeeDelegate
- (void)rtccAttendeeAcceptance:(mpAttendeeStatus_t)status toMeeting:(NSString *)mpID
{
    //CAUTION: status will be mpAtt_pending and mpID will be nil
}
func rtccAttendeeAcceptance:(mpAttendeeStatus_t)status toMeeting:(NSString *)mpID {
    //CAUTION: status will be mpAtt_pending and mpID will be nil
}
@RtccEventListener
public void onRequestEvent(final RequestEvent event) {
    switch (event.getType()) {
    case PENDING:
        /** 
         * The call is not yet started. 
         * Or the call is started and the host has been notified and will answer to the request.
         */
        break;
    case ACCEPTED:
        /**
         * The host approved the request.
         * Or the Meeting Point is in AUTO_ACCEPT mode.
         */
        event.getMeetingPoint().call();
        break;
    case DENIED:
        /**
         * The host rejected the request.
         * Or the Meeting Point is in LOCK mode.
         */
        break;
    }
}

Receiving an Invite

    function onAttendeeInvited(mpa){
        MPAttendee = mpa;
        console.log('You have invited to a meeting identified as' + mpa.hostDisplayName);
    }
    rtcc.on('meetingpoint.attendee.invite',onAttendeeInvited);
- (void)rtccAttendeeWasInvitedToMeeting:(NSString *)mpID
{
    //respond NO to refuse the invite.
    [[Rtcc instance] meetingPoint:mpID attendeeRespondToInvite:YES];
}
func rtccAttendeeWasInvitedToMeeting(mpID: String!) {
    //respond NO to refuse the invite.
    Rtcc.instance().meetingPoint(mpID, attendeeRespondToInvite: true)
}
@RtccEventListener
public void onRequestEvent(final RequestEvent event) {
    switch (event.getType()) {
    case INVITED:
        event.getMeetingPoint().accept(event.getUid());
        /* event.getMeetingPoint().deny(event.getUid()); */
        break;
    }
}

The attendee can then accept and join the conference or refuse.

    MPAttendee.accept();
//    MPAttendee.deny();
    [[Rtcc instance] meetingPointAttendeeJoinConference:mpID];
    Rtcc.instance().meetingPointAttendeeJoinConference(mpID)
event.getMeetingPoint().accept(event.getUid());
/* event.getMeetingPoint().deny(event.getUid()); */