Advanced User Guide for Signaling Beta

Introduction

This document describes how to implement the functions by accessing the Agora Signaling System in either of the following ways:

  • SDK Access
  • Server API Access
  • SIP Gateway Access

For the detailed function description, refer to Signaling Function Overview Beta.

Requirements

Required Development Environments

When the users access the Agora signaling system using the Agora Signaling SDK, the system and the network requirements are listed as follows:

Platform System Requirement Network Requirement
OS X 10.6: “Snow Leopard” or later Port: HTTP 80 ,TCP 8181

Required Documents

You will need to consult the following documents from time to time when implementing the signaling function using the Agora Signaling SDK for Mac.

  • Signaling Function Overview Beta: describes the detailed functions for Agora Signaling System.
  • Signaling API - Mac Beta: includes all the API description and usage for implementing the functions when accessing the Agora Signaling System using the Agora Signaling SDK.
  • Server API (Deprecated): includes all the API description and usage for implementing the functions when accessing the Agora Signaling System using Server API.
  • Error and Warning Messages: includes the error or warning message when the Agora Signaling SDK calls API or during runtime.

Required SDK

The Agora Signaling SDK is available from downloads, or contact sales-us@agora.io.

SDK Access

The following functions are supported:

  • Account Information System
    • Login:use the generated Signaling Key to login. For how to obtain and use the Signaling Key, refer to Agora Keys User Guide.
    • Point-to-Point messaging
  • Call System
  • Channel System

For how to implement the mentioned functions, refer to Signaling API - Mac Beta.

Server API Access

The following functions are supported:

  • Account Information System:
  • Server API: no logins required
  • Query the user status
  • Subscribe the changes of user status and attributes
  • Send messages to users
  • Channel System:
  • Query the channel users
  • Call System:
  • Subscribe the calling events
  • Initiate a call

For how to implement the mentioned functions, refer to Server API (Deprecated).

SIP Gateway

SIP Gateway is used to connect the external systems, including:

  • Signaling: turn the private signaling to SIP protocol
  • Media: turn the private media to RTP protocol

The following functions are supported currently:

  • Calling function
  • Call parameters customization

Note

Contact support@agora.io to enable the SIP gateway access to the Agora Signaling System if required.

Integrating and Initializing SDK

Android

  1. Add the libraries under libs/signal/ to the client.

  2. Initialize the code:

    m_agoraAPI = AgoraAPI.getInstance(this, appId);
    m_agoraMedia = RtcEngine.create(this, appId, null);
    
  3. Save the uid upon a successful login.

    public void onLoginSuccess(int uid, int fd) {
    my_uid = uid;
    }
    
  4. The media and signaling channels must join or leave the channel simultaneously.

    m_agoraAPI.channelJoin(channelName);
    m_agoraMedia.joinChannel(appId, channelName, "", my_uid);
    

Note

Refer to the demo included the Agora Signaling SDK package for detailed codes.

iOS

  1. Add the libraries under libs/nomedia/ to the client.

  2. Initialize the code:

    inst =  [AgoraAPI getInstanceWithoutMedia:appId];
    instMedia = [AgoraRtcEngineKit sharedEngineWithappId:appId delegate:nil];
    
  3. Save the uid upon a successful login.

    inst.onLoginSuccess = ^(uint32_t uid, int fd){
      my_uid = uid;
      };
    
  4. The media and signaling channels must join or leave the channel simultaneously.

    [inst channelJoin:self.txtChannel.text];
    [instMedia joinChannelByKey:appId channelName:self.txtChannel.text info:nil uid:my_uid joinSuccess:nil];
    

Note

Refer to the demo included in the Agora Signaling SDK package for detailed codes.

Mac

  1. Add the libraries under libs/nomedia/ to the client.

  2. Initialize the code:

    inst =  [AgoraAPI getInstanceWithoutMedia:appId];
    instMedia = [AgoraRtcEngineKit sharedEngineWithappId:appId delegate:nil];
    
  3. Save the uid upon a successful login.

    inst.onLoginSuccess = ^(uint32_t uid, int fd){
      my_uid = uid;
      };
    
  4. The media and signaling channels must join or leave the channel simultaneously.

    [inst channelJoin:self.txtChannel.text];
    [instMedia joinChannelByKey:appId channelName:self.txtChannel.text info:nil uid:my_uid joinSuccess:nil];
    

Note

Refer to the demo included in the Agora Signaling SDK package for detailed codes.