/**
   * Receive a new image sharing invitation
   *
   * @param session Image sharing session
   */
  public void receiveImageSharingInvitation(ImageTransferSession session) {
    if (logger.isActivated()) {
      logger.info("Receive image sharing invitation from " + session.getRemoteContact());
    }

    // Extract number from contact
    String number = PhoneUtils.extractNumberFromUri(session.getRemoteContact());

    // Update rich call history
    RichCall.getInstance()
        .addCall(
            number,
            session.getSessionID(),
            RichCallData.EVENT_INCOMING,
            session.getContent(),
            RichCallData.STATUS_STARTED);

    // Add session in the list
    ImageSharingSession sessionApi = new ImageSharingSession(session);
    addImageSharingSession(sessionApi);

    // Broadcast intent related to the received invitation
    Intent intent = new Intent(RichCallApiIntents.IMAGE_SHARING_INVITATION);
    intent.putExtra("contact", number);
    intent.putExtra("contactDisplayname", session.getRemoteDisplayName());
    intent.putExtra("sessionId", session.getSessionID());
    intent.putExtra("filename", session.getContent().getName());
    intent.putExtra("filesize", session.getContent().getSize());
    intent.putExtra("filetype", session.getContent().getEncoding());
    intent.putExtra("thumbnail", session.getThumbnail());
    AndroidFactory.getApplicationContext().sendBroadcast(intent);
  }