/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 2.0.10
 *
 * Do not make changes to this file unless you know what you are doing--modify
 * the SWIG interface file instead.
 * ----------------------------------------------------------------------------- */

package org.doubango.tinyWRAP;

public class CallSession extends InviteSession {
  private long swigCPtr;

  protected CallSession(long cPtr, boolean cMemoryOwn) {
    super(tinyWRAPJNI.CallSession_SWIGUpcast(cPtr), cMemoryOwn);
    swigCPtr = cPtr;
  }

  protected static long getCPtr(CallSession obj) {
    return (obj == null) ? 0 : obj.swigCPtr;
  }

  protected void finalize() {
    delete();
  }

  public synchronized void delete() {
    if (swigCPtr != 0) {
      if (swigCMemOwn) {
        swigCMemOwn = false;
        tinyWRAPJNI.delete_CallSession(swigCPtr);
      }
      swigCPtr = 0;
    }
    super.delete();
  }

  public CallSession(SipStack pStack) {
    this(tinyWRAPJNI.new_CallSession(SipStack.getCPtr(pStack), pStack), true);
  }

  public boolean callAudio(String remoteUriString, ActionConfig config) {
    return tinyWRAPJNI.CallSession_callAudio__SWIG_0(swigCPtr, this, remoteUriString, ActionConfig.getCPtr(config), config);
  }

  public boolean callAudio(String remoteUriString) {
    return tinyWRAPJNI.CallSession_callAudio__SWIG_1(swigCPtr, this, remoteUriString);
  }

  public boolean callAudio(SipUri remoteUri, ActionConfig config) {
    return tinyWRAPJNI.CallSession_callAudio__SWIG_2(swigCPtr, this, SipUri.getCPtr(remoteUri), remoteUri, ActionConfig.getCPtr(config), config);
  }

  public boolean callAudio(SipUri remoteUri) {
    return tinyWRAPJNI.CallSession_callAudio__SWIG_3(swigCPtr, this, SipUri.getCPtr(remoteUri), remoteUri);
  }

  public boolean callAudioVideo(String remoteUriString, ActionConfig config) {
    return tinyWRAPJNI.CallSession_callAudioVideo__SWIG_0(swigCPtr, this, remoteUriString, ActionConfig.getCPtr(config), config);
  }

  public boolean callAudioVideo(String remoteUriString) {
    return tinyWRAPJNI.CallSession_callAudioVideo__SWIG_1(swigCPtr, this, remoteUriString);
  }

  public boolean callAudioVideo(SipUri remoteUri, ActionConfig config) {
    return tinyWRAPJNI.CallSession_callAudioVideo__SWIG_2(swigCPtr, this, SipUri.getCPtr(remoteUri), remoteUri, ActionConfig.getCPtr(config), config);
  }

  public boolean callAudioVideo(SipUri remoteUri) {
    return tinyWRAPJNI.CallSession_callAudioVideo__SWIG_3(swigCPtr, this, SipUri.getCPtr(remoteUri), remoteUri);
  }

  public boolean callVideo(String remoteUriString, ActionConfig config) {
    return tinyWRAPJNI.CallSession_callVideo__SWIG_0(swigCPtr, this, remoteUriString, ActionConfig.getCPtr(config), config);
  }

  public boolean callVideo(String remoteUriString) {
    return tinyWRAPJNI.CallSession_callVideo__SWIG_1(swigCPtr, this, remoteUriString);
  }

  public boolean callVideo(SipUri remoteUri, ActionConfig config) {
    return tinyWRAPJNI.CallSession_callVideo__SWIG_2(swigCPtr, this, SipUri.getCPtr(remoteUri), remoteUri, ActionConfig.getCPtr(config), config);
  }

  public boolean callVideo(SipUri remoteUri) {
    return tinyWRAPJNI.CallSession_callVideo__SWIG_3(swigCPtr, this, SipUri.getCPtr(remoteUri), remoteUri);
  }

  public boolean call(String remoteUriString, twrap_media_type_t media, boolean answer_mode_auto, ActionConfig config) {
    return tinyWRAPJNI.CallSession_call__SWIG_0(swigCPtr, this, remoteUriString, media.swigValue(), answer_mode_auto, ActionConfig.getCPtr(config), config);
  }

  public boolean call(String remoteUriString, twrap_media_type_t media, boolean answer_mode_auto) {
    return tinyWRAPJNI.CallSession_call__SWIG_1(swigCPtr, this, remoteUriString, media.swigValue(), answer_mode_auto);
  }

  public boolean call(SipUri remoteUri, twrap_media_type_t media, boolean answer_mode_auto, ActionConfig config) {
    return tinyWRAPJNI.CallSession_call__SWIG_2(swigCPtr, this, SipUri.getCPtr(remoteUri), remoteUri, media.swigValue(), answer_mode_auto, ActionConfig.getCPtr(config), config);
  }

  public boolean call(SipUri remoteUri, twrap_media_type_t media, boolean answer_mode_auto) {
    return tinyWRAPJNI.CallSession_call__SWIG_3(swigCPtr, this, SipUri.getCPtr(remoteUri), remoteUri, media.swigValue(), answer_mode_auto);
  }

  public boolean callEmergency(String remoteUriString, twrap_media_type_t media, boolean answerMode, String emergencyType, int levelEmergency, ActionConfig config) {
    return tinyWRAPJNI.CallSession_callEmergency__SWIG_0(swigCPtr, this, remoteUriString, media.swigValue(), answerMode, emergencyType, levelEmergency, ActionConfig.getCPtr(config), config);
  }

  public boolean callEmergency(String remoteUriString, twrap_media_type_t media, boolean answerMode, String emergencyType, int levelEmergency) {
    return tinyWRAPJNI.CallSession_callEmergency__SWIG_1(swigCPtr, this, remoteUriString, media.swigValue(), answerMode, emergencyType, levelEmergency);
  }

  public boolean callEmergency(SipUri remoteUri, twrap_media_type_t media, boolean answerMode, String emergencyType, int levelEmergency, ActionConfig config) {
    return tinyWRAPJNI.CallSession_callEmergency__SWIG_2(swigCPtr, this, SipUri.getCPtr(remoteUri), remoteUri, media.swigValue(), answerMode, emergencyType, levelEmergency, ActionConfig.getCPtr(config), config);
  }

  public boolean callEmergency(SipUri remoteUri, twrap_media_type_t media, boolean answerMode, String emergencyType, int levelEmergency) {
    return tinyWRAPJNI.CallSession_callEmergency__SWIG_3(swigCPtr, this, SipUri.getCPtr(remoteUri), remoteUri, media.swigValue(), answerMode, emergencyType, levelEmergency);
  }

  public boolean callGroup(SWIGTYPE_p_p_char user_list, int user_count, twrap_media_type_t media, ActionConfig config) {
    return tinyWRAPJNI.CallSession_callGroup(swigCPtr, this, SWIGTYPE_p_p_char.getCPtr(user_list), user_count, media.swigValue(), ActionConfig.getCPtr(config), config);
  }

  public boolean setSessionTimer(long timeout, String refresher) {
    return tinyWRAPJNI.CallSession_setSessionTimer(swigCPtr, this, timeout, refresher);
  }

  public boolean set100rel(boolean enabled) {
    return tinyWRAPJNI.CallSession_set100rel(swigCPtr, this, enabled);
  }

  public boolean setRtcp(boolean enabled) {
    return tinyWRAPJNI.CallSession_setRtcp(swigCPtr, this, enabled);
  }

  public boolean setRtcpMux(boolean enabled) {
    return tinyWRAPJNI.CallSession_setRtcpMux(swigCPtr, this, enabled);
  }

  public boolean setSRtpMode(tmedia_srtp_mode_t mode) {
    return tinyWRAPJNI.CallSession_setSRtpMode(swigCPtr, this, mode.swigValue());
  }

  public boolean setAvpfMode(tmedia_mode_t mode) {
    return tinyWRAPJNI.CallSession_setAvpfMode(swigCPtr, this, mode.swigValue());
  }

  public boolean setICE(boolean enabled) {
    return tinyWRAPJNI.CallSession_setICE(swigCPtr, this, enabled);
  }

  public boolean setICEStun(boolean enabled) {
    return tinyWRAPJNI.CallSession_setICEStun(swigCPtr, this, enabled);
  }

  public boolean setICETurn(boolean enabled) {
    return tinyWRAPJNI.CallSession_setICETurn(swigCPtr, this, enabled);
  }

  public boolean setSTUNServer(String hostname, int port) {
    return tinyWRAPJNI.CallSession_setSTUNServer(swigCPtr, this, hostname, port);
  }

  public boolean setSTUNCred(String username, String password) {
    return tinyWRAPJNI.CallSession_setSTUNCred(swigCPtr, this, username, password);
  }

  public boolean setVideoFps(int fps) {
    return tinyWRAPJNI.CallSession_setVideoFps(swigCPtr, this, fps);
  }

  public boolean setVideoBandwidthUploadMax(int max) {
    return tinyWRAPJNI.CallSession_setVideoBandwidthUploadMax(swigCPtr, this, max);
  }

  public boolean setVideoBandwidthDownloadMax(int max) {
    return tinyWRAPJNI.CallSession_setVideoBandwidthDownloadMax(swigCPtr, this, max);
  }

  public boolean setVideoPrefSize(tmedia_pref_video_size_t pref_video_size) {
    return tinyWRAPJNI.CallSession_setVideoPrefSize(swigCPtr, this, pref_video_size.swigValue());
  }

  public boolean setQoS(tmedia_qos_stype_t type, tmedia_qos_strength_t strength) {
    return tinyWRAPJNI.CallSession_setQoS(swigCPtr, this, type.swigValue(), strength.swigValue());
  }

  public boolean setPoCQoE(tmedia_poc_qoe_profile_t profile, tmedia_poc_qoe_profile_strength_t strength) {
    return tinyWRAPJNI.CallSession_setPoCQoE(swigCPtr, this, profile.swigValue(), strength.swigValue());
  }

  public boolean hold(ActionConfig config) {
    return tinyWRAPJNI.CallSession_hold__SWIG_0(swigCPtr, this, ActionConfig.getCPtr(config), config);
  }

  public boolean hold() {
    return tinyWRAPJNI.CallSession_hold__SWIG_1(swigCPtr, this);
  }

  public boolean resume(ActionConfig config) {
    return tinyWRAPJNI.CallSession_resume__SWIG_0(swigCPtr, this, ActionConfig.getCPtr(config), config);
  }

  public boolean resume() {
    return tinyWRAPJNI.CallSession_resume__SWIG_1(swigCPtr, this);
  }

  public boolean transfer(String referToUriString, ActionConfig config) {
    return tinyWRAPJNI.CallSession_transfer__SWIG_0(swigCPtr, this, referToUriString, ActionConfig.getCPtr(config), config);
  }

  public boolean transfer(String referToUriString) {
    return tinyWRAPJNI.CallSession_transfer__SWIG_1(swigCPtr, this, referToUriString);
  }

  public boolean acceptTransfer(ActionConfig config) {
    return tinyWRAPJNI.CallSession_acceptTransfer__SWIG_0(swigCPtr, this, ActionConfig.getCPtr(config), config);
  }

  public boolean acceptTransfer() {
    return tinyWRAPJNI.CallSession_acceptTransfer__SWIG_1(swigCPtr, this);
  }

  public boolean rejectTransfer(ActionConfig config) {
    return tinyWRAPJNI.CallSession_rejectTransfer__SWIG_0(swigCPtr, this, ActionConfig.getCPtr(config), config);
  }

  public boolean rejectTransfer() {
    return tinyWRAPJNI.CallSession_rejectTransfer__SWIG_1(swigCPtr, this);
  }

  public boolean sendDTMF(int number) {
    return tinyWRAPJNI.CallSession_sendDTMF(swigCPtr, this, number);
  }

  public long getSessionTransferId() {
    return tinyWRAPJNI.CallSession_getSessionTransferId(swigCPtr, this);
  }

  public boolean sendT140Data(tmedia_t140_data_type_t data_type, java.nio.ByteBuffer data_ptr, long data_size) {
    return tinyWRAPJNI.CallSession_sendT140Data__SWIG_0(swigCPtr, this, data_type.swigValue(), data_ptr, data_size);
  }

  public boolean sendT140Data(tmedia_t140_data_type_t data_type, java.nio.ByteBuffer data_ptr) {
    return tinyWRAPJNI.CallSession_sendT140Data__SWIG_1(swigCPtr, this, data_type.swigValue(), data_ptr);
  }

  public boolean sendT140Data(tmedia_t140_data_type_t data_type) {
    return tinyWRAPJNI.CallSession_sendT140Data__SWIG_2(swigCPtr, this, data_type.swigValue());
  }

  public boolean setT140Callback(T140Callback pT140Callback) {
    return tinyWRAPJNI.CallSession_setT140Callback(swigCPtr, this, T140Callback.getCPtr(pT140Callback), pT140Callback);
  }

  public boolean setMcpttCallback(McpttCallback pMcpttCallback) {
    return tinyWRAPJNI.CallSession_setMcpttCallback(swigCPtr, this, McpttCallback.getCPtr(pMcpttCallback), pMcpttCallback);
  }

  public boolean setMcpttMbmsCallback(McpttMbmsCallback pMcpttMbmsCallback) {
    return tinyWRAPJNI.CallSession_setMcpttMbmsCallback(swigCPtr, this, McpttMbmsCallback.getCPtr(pMcpttMbmsCallback), pMcpttMbmsCallback);
  }

  public boolean requestMcpttToken(ActionConfig config) {
    return tinyWRAPJNI.CallSession_requestMcpttToken__SWIG_0(swigCPtr, this, ActionConfig.getCPtr(config), config);
  }

  public boolean requestMcpttToken() {
    return tinyWRAPJNI.CallSession_requestMcpttToken__SWIG_1(swigCPtr, this);
  }

  public boolean releaseMcpttToken(ActionConfig config) {
    return tinyWRAPJNI.CallSession_releaseMcpttToken__SWIG_0(swigCPtr, this, ActionConfig.getCPtr(config), config);
  }

  public boolean releaseMcpttToken() {
    return tinyWRAPJNI.CallSession_releaseMcpttToken__SWIG_1(swigCPtr, this);
  }

  public boolean startMbmsManager(ActionConfig config, String remoteIP, int remotePort, String localIface, int localIfaceIdx) {
    return tinyWRAPJNI.CallSession_startMbmsManager(swigCPtr, this, ActionConfig.getCPtr(config), config, remoteIP, remotePort, localIface, localIfaceIdx);
  }

  public boolean stopMbmsManager(ActionConfig config) {
    return tinyWRAPJNI.CallSession_stopMbmsManager(swigCPtr, this, ActionConfig.getCPtr(config), config);
  }

  public boolean startMbmsMedia(ActionConfig config, String mediaIP, int mediaPort, int mediaCtrlPort) {
    return tinyWRAPJNI.CallSession_startMbmsMedia(swigCPtr, this, ActionConfig.getCPtr(config), config, mediaIP, mediaPort, mediaCtrlPort);
  }

  public String getPTTMcpttGroupIdentity() {
    return tinyWRAPJNI.CallSession_getPTTMcpttGroupIdentity(swigCPtr, this);
  }

  public int getPTTMcpttGroupMembers() {
    return tinyWRAPJNI.CallSession_getPTTMcpttGroupMembers(swigCPtr, this);
  }

  public String getPTTMcpttGroupMemberAtPosition(int pos) {
    return tinyWRAPJNI.CallSession_getPTTMcpttGroupMemberAtPosition(swigCPtr, this, pos);
  }

  public String getPttMcpttEmergencyResourcePriorityString() {
    return tinyWRAPJNI.CallSession_getPttMcpttEmergencyResourcePriorityString(swigCPtr, this);
  }

  public int getPttMcpttEmergencyResourcePriority() {
    return tinyWRAPJNI.CallSession_getPttMcpttEmergencyResourcePriority(swigCPtr, this);
  }

  public String getSipPartyUri() {
    return tinyWRAPJNI.CallSession_getSipPartyUri(swigCPtr, this);
  }

}
