git-svn-id: http://webrtc.googlecode.com/svn/trunk@4 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/interface/RTCWEB_API.h b/interface/RTCWEB_API.h
new file mode 100644
index 0000000..98aca74
--- /dev/null
+++ b/interface/RTCWEB_API.h
@@ -0,0 +1,57 @@
+#ifndef RTCWEB_H
+#define RTCWEB_H
+
+
+class StateNotifier
+{
+
+public:
+
+ // Called when the state of the session changes.
+ // INIT->SENT_OFFER->RECEIVED_ANSWER->INPROGRESS->TERMINATED
+ virtual void onStateChange(int newState, char * stateInfo)=0;
+};
+
+
+
+class Session
+{
+public:
+
+ static Session * create(char* id, StateNotifier & obj);
+
+
+ // generates a session description
+ virtual int generateLocalDescription(char * desc, int maxLen) = 0;
+
+ // configures the local media options
+ virtual int setLocalDescription(char * desc, int maxLenDesc, char * type, int maxLenType) = 0;
+
+ // configures the remote media options
+ virtual int setRemoteDescription(char * desc, int maxLenDesc, char * type, int maxLenType) = 0;
+
+ // Starts or stops sending/receiving media.
+ virtual int enable(bool enable) = 0;
+
+ // Mutes or unmutes the sending of media.
+ virtual int mute(char * media, int maxLen, bool mute) = 0;
+
+ // Sends a DTMF tone (for use telephony situations)
+ virtual int sendDTMF(int event) = 0;
+
+ // Adds an additional stream to the session (for multi-user)
+ virtual int addStream(char * media, int maxLen, int source) = 0;
+
+ // Removes a stream from the session.
+ virtual int removeStream(char * media, int maxLen, int source) = 0;
+
+ // Gets a URL for a given stream that can be used by
+ // <video> or another playout destination. The default
+ // stream can be obtained by passing 0.
+ virtual int getStreamURL(char * media, int maxLen, int source) = 0;
+
+};
+
+
+
+#endif // RTCWEB_H