Have a question for us?

What is the process when our app users want to establish a call?

The following example shows a general process if A calls B

  1. Person A initiates a call request to the signaling server.

  2. The signaling server checks whether B is online:

    • If B is not online, it returns an error to A indicating B is offline.

    • If B is online, the signaling server generates a channel name and returns to A. Meanwhile, it sends call signaling to B.

  3. A receives the channel name returned by the signaling server, and prepares to join the audio channel. To speed up the process of joining the channel, A can join the channel on standby in advance:

    a)  A calls muteLocalAudioStream(true) and muteLocalVideoStream(true) (If the video function is enabled) to stop sending any video or audio data.

    b)  Call joinChannel to join the channel.

  4. B receives the call request sent by the signaling server from A:

    a)  B rings.
    To speed up the process of joining the channel, B can join the channel on standby in advance.

    b)  B calls muteLocalAudioStream(true) and muteLocalVideoStream(true) (If the video function is enabled) to stop sending any video or audio data.

  5. A calls joinChannel to join the channel:

    a)  If B rejects the request:

    • B calls leaveChannel to leave the channel.

    • B sends a rejection message to the signaling server.

    • The signaling server returns the rejection from B to A.

    • A calls leaveChannel to leave the channel.

    b)  If B accepts the request:

    • B calls muteLocalAudioStream(false) and muteLocalVideoStream(false) to send audio or/and video data.

    • B sends an accept message to the signaling server.

    • A calls muteLocalAudioStream(false) and muteLocalVideoStream(false) to send audio or/and video data.

The diagram below shows a simplified sequence. Basically the signaling server manages the traffic among the callers.

Have more questions? Submit a request

Comments