@Override
 public void onStreamReceived(Session session, Stream stream) {
   Log.v(TAG, "Received stream from session " + session.getSessionId() + ": " + stream.getName());
   Log.v(TAG, "Starting to receive video from session " + session.getSessionId());
   videoInSubscriber = new Subscriber(context, stream);
   getSession().subscribe(videoInSubscriber);
   videoInViewGroup.addView(videoInSubscriber.getView());
 }
 @Override
 public void onConnected(Session session) {
   Log.v(TAG, "Connected to session " + session.getSessionId());
   Log.v(TAG, "Starting to publish video to session " + session.getSessionId());
   videoOutPublisher = new Publisher(context);
   videoOutPublisher
       .swapCamera(); // need a button to make this controlled by user, depending on phone
   videoOutPublisher.setPublisherListener(this);
   videoOutViewGroup.addView(videoOutPublisher.getView());
   getSession().publish(videoOutPublisher);
 }
 protected Session getSession() {
   if (recollSession == null) {
     recollSession = new Session(context, RecollConfig.API_KEY, RecollConfig.SESSION_ID);
     Log.v(TAG, "Created session " + recollSession.getSessionId());
   }
   return recollSession;
 }
 @Override
 public void onStreamDropped(Session session, Stream stream) {
   Log.v(
       TAG, "Stream dropped for from session " + session.getSessionId() + ": " + stream.getName());
   if (videoInSubscriber != null) {
     getSession().unsubscribe(videoInSubscriber);
   }
 }
 @Override
 public void onConnectionDestroyed(Session session, Connection connection) {
   Log.v(
       TAG,
       "Other client disconnected from session. SessionId="
           + session.getSessionId()
           + ": connectionId="
           + connection.getConnectionId());
 }
 @Override
 public void onConnectionCreated(Session session, Connection connection) {
   Log.v(
       TAG,
       "Other client connected to session. SessionId="
           + session.getSessionId()
           + ": connectionId="
           + connection.getConnectionId());
 }
 @Override
 public void onDisconnected(Session session) {
   Log.v(TAG, "Disconnected from session " + session.getSessionId());
 }
 @Override
 public void onError(Session session, OpentokError opentokError) {
   Log.v(TAG, "Error in session " + session.getSessionId() + ": " + opentokError.toString());
 }