package im.actor.core.providers;
import com.google.j2objc.annotations.ObjectiveCName;
import org.jetbrains.annotations.NotNull;
import im.actor.core.Messenger;
/**
* WebRTC provider. Used for providing Calls support.
* All methods except init are called in background call management actor.
* IMPORTANT: Right after "onCallEnd" called you need to stop sending any signaling messages.
* Between onIncomingCall/onOutgoingCall and onCallEnd all methods are called with the same call id.
*/
public interface CallsProvider {
/**
* Call event. This doesn't mean that call is started.
*
* @param callId Unique Call Id
*/
@ObjectiveCName("onCallStartWithCallId:")
void onCallStart(long callId);
/**
* Call Answered Event
*
* @param callId Unique Call Id
*/
@ObjectiveCName("onCallAnsweredWithCallId:")
void onCallAnswered(long callId);
/**
* Call End event
*
* @param callId Unique Call Id
*/
@ObjectiveCName("onCallEndWithCallId:")
void onCallEnd(long callId);
/**
* Event When outgoing beep need to start
*/
@ObjectiveCName("startOutgoingBeep")
void startOutgoingBeep();
/**
* Event when outgoing beep need to stop
*/
@ObjectiveCName("stopOutgoingBeep")
void stopOutgoingBeep();
}