tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

AppRTCClient.java (4064B)


      1 /*
      2 *  Copyright 2013 The WebRTC Project Authors. All rights reserved.
      3 *
      4 *  Use of this source code is governed by a BSD-style license
      5 *  that can be found in the LICENSE file in the root of the source
      6 *  tree. An additional intellectual property rights grant can be found
      7 *  in the file PATENTS.  All contributing project authors may
      8 *  be found in the AUTHORS file in the root of the source tree.
      9 */
     10 
     11 package org.appspot.apprtc;
     12 
     13 import org.webrtc.IceCandidate;
     14 import org.webrtc.PeerConnection;
     15 import org.webrtc.SessionDescription;
     16 
     17 import java.util.List;
     18 
     19 /**
     20 * AppRTCClient is the interface representing an AppRTC client.
     21 */
     22 public interface AppRTCClient {
     23  /**
     24   * Struct holding the connection parameters of an AppRTC room.
     25   */
     26  class RoomConnectionParameters {
     27    public final String roomUrl;
     28    public final String roomId;
     29    public final boolean loopback;
     30    public final String urlParameters;
     31    public RoomConnectionParameters(
     32        String roomUrl, String roomId, boolean loopback, String urlParameters) {
     33      this.roomUrl = roomUrl;
     34      this.roomId = roomId;
     35      this.loopback = loopback;
     36      this.urlParameters = urlParameters;
     37    }
     38    public RoomConnectionParameters(String roomUrl, String roomId, boolean loopback) {
     39      this(roomUrl, roomId, loopback, null /* urlParameters */);
     40    }
     41  }
     42 
     43  /**
     44   * Asynchronously connect to an AppRTC room URL using supplied connection
     45   * parameters. Once connection is established onConnectedToRoom()
     46   * callback with room parameters is invoked.
     47   */
     48  void connectToRoom(RoomConnectionParameters connectionParameters);
     49 
     50  /**
     51   * Send offer SDP to the other participant.
     52   */
     53  void sendOfferSdp(final SessionDescription sdp);
     54 
     55  /**
     56   * Send answer SDP to the other participant.
     57   */
     58  void sendAnswerSdp(final SessionDescription sdp);
     59 
     60  /**
     61   * Send Ice candidate to the other participant.
     62   */
     63  void sendLocalIceCandidate(final IceCandidate candidate);
     64 
     65  /**
     66   * Send removed ICE candidates to the other participant.
     67   */
     68  void sendLocalIceCandidateRemovals(final IceCandidate[] candidates);
     69 
     70  /**
     71   * Disconnect from room.
     72   */
     73  void disconnectFromRoom();
     74 
     75  /**
     76   * Struct holding the signaling parameters of an AppRTC room.
     77   */
     78  class SignalingParameters {
     79    public final List<PeerConnection.IceServer> iceServers;
     80    public final boolean initiator;
     81    public final String clientId;
     82    public final String wssUrl;
     83    public final String wssPostUrl;
     84    public final SessionDescription offerSdp;
     85    public final List<IceCandidate> iceCandidates;
     86 
     87    public SignalingParameters(List<PeerConnection.IceServer> iceServers, boolean initiator,
     88        String clientId, String wssUrl, String wssPostUrl, SessionDescription offerSdp,
     89        List<IceCandidate> iceCandidates) {
     90      this.iceServers = iceServers;
     91      this.initiator = initiator;
     92      this.clientId = clientId;
     93      this.wssUrl = wssUrl;
     94      this.wssPostUrl = wssPostUrl;
     95      this.offerSdp = offerSdp;
     96      this.iceCandidates = iceCandidates;
     97    }
     98  }
     99 
    100  /**
    101   * Callback interface for messages delivered on signaling channel.
    102   *
    103   * <p>Methods are guaranteed to be invoked on the UI thread of `activity`.
    104   */
    105  interface SignalingEvents {
    106    /**
    107     * Callback fired once the room's signaling parameters
    108     * SignalingParameters are extracted.
    109     */
    110    void onConnectedToRoom(final SignalingParameters params);
    111 
    112    /**
    113     * Callback fired once remote SDP is received.
    114     */
    115    void onRemoteDescription(final SessionDescription sdp);
    116 
    117    /**
    118     * Callback fired once remote Ice candidate is received.
    119     */
    120    void onRemoteIceCandidate(final IceCandidate candidate);
    121 
    122    /**
    123     * Callback fired once remote Ice candidate removals are received.
    124     */
    125    void onRemoteIceCandidatesRemoved(final IceCandidate[] candidates);
    126 
    127    /**
    128     * Callback fired once channel is closed.
    129     */
    130    void onChannelClose();
    131 
    132    /**
    133     * Callback fired once channel error happened.
    134     */
    135    void onChannelError(final String description);
    136  }
    137 }