]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
dos2unix
authorMichael Jerris <mike@jerris.com>
Wed, 27 May 2009 23:20:26 +0000 (23:20 +0000)
committerMichael Jerris <mike@jerris.com>
Wed, 27 May 2009 23:20:26 +0000 (23:20 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@13475 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/endpoints/mod_opal/mod_opal.h

index c4d5bbc872813151a378d2e3514c106835a8befc..9b609ce5cdd39f9015bae312c267597d96a7e99f 100644 (file)
-/* Opal endpoint interface for Freeswitch Modular Media Switching Software Library /\r
- * Soft-Switch Application\r
- *\r
- * Version: MPL 1.1\r
- *\r
- * Copyright (c) 2007 Tuyan Ozipek (tuyanozipek@gmail.com)\r
- *\r
- * The contents of this file are subject to the Mozilla Public License Version\r
- * 1.1 (the "License"); you may not use this file except in compliance with\r
- * the License. You may obtain a copy of the License at\r
- * http://www.mozilla.org/MPL/\r
- *\r
- * Software distributed under the License is distributed on an "AS IS" basis,\r
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License\r
- * for the specific language governing rights and limitations under the\r
- * License.\r
- *\r
- * Contributor(s):\r
- * Tuyan Ozipek   (tuyanozipek@gmail.com)\r
- * Lukasz Zwierko (lzwierko@gmail.com)\r
- * Robert Jongbloed (robertj@voxlucida.com.au)\r
- *\r
- */\r
-\r
-\r
-#ifndef __FREESWITCH_MOD_OPAL__\r
-#define __FREESWITCH_MOD_OPAL__\r
-\r
-#if defined(__GNUC__) && defined(HAVE_VISIBILITY)\r
-#pragma GCC visibility push(default)\r
-#endif\r
-\r
-#include <ptlib.h>\r
-#include <opal/manager.h>\r
-#include <opal/localep.h>\r
-#include <h323/h323ep.h>\r
-#include <iax2/iax2ep.h>\r
-\r
-#if defined(__GNUC__) && defined(HAVE_VISIBILITY)\r
-#pragma GCC visibility pop\r
-#endif\r
-\r
-#undef strcasecmp\r
-#undef strncasecmp\r
-\r
-#define HAVE_APR\r
-#include <switch.h>\r
-#include <switch_version.h>\r
-#define MODNAME "mod_opal"\r
-\r
-\r
-class FSEndPoint;\r
-class FSManager;\r
-\r
-\r
-struct mod_opal_globals {\r
-    int trace_level;\r
-    char *codec_string;\r
-    char *context;\r
-    char *dialplan;\r
-};\r
-\r
-extern struct mod_opal_globals mod_opal_globals;\r
-\r
-\r
-class FSProcess : public PLibraryProcess {\r
-    PCLASSINFO(FSProcess, PLibraryProcess);\r
-\r
- public:\r
-    FSProcess();\r
-    ~FSProcess();\r
-\r
-    bool Initialise(switch_loadable_module_interface_t *iface);\r
-\r
-    FSManager & GetManager() const { return *m_manager; }\r
-\r
-  protected:\r
-    FSManager * m_manager;\r
-};\r
-\r
-\r
-struct FSListener {\r
-    FSListener() {\r
-    }\r
-\r
-    PString name;\r
-    OpalTransportAddress listenAddress;\r
-    PString localUserName;\r
-    PString gatekeeper;\r
-};\r
-\r
-\r
-class FSCall : public OpalCall {\r
-    PCLASSINFO(FSCall, OpalCall);\r
-  public:\r
-    FSCall(OpalManager & manager);\r
-    virtual PBoolean OnSetUp(OpalConnection & connection);\r
-};\r
-\r
-\r
-class FSManager : public OpalManager {\r
-    PCLASSINFO(FSManager, OpalManager);\r
-\r
- public:\r
-    FSManager();\r
-\r
-    bool Initialise(switch_loadable_module_interface_t *iface);\r
-\r
-    switch_status_t ReadConfig(int reload);\r
-\r
-    switch_endpoint_interface_t *GetSwitchInterface() const {\r
-        return m_FreeSwitch;\r
-    }\r
-\r
-    virtual OpalCall * CreateCall(void * userData);\r
-\r
-  private:\r
-    switch_endpoint_interface_t *m_FreeSwitch;\r
-\r
-    H323EndPoint *m_h323ep;\r
-    IAX2EndPoint *m_iaxep;\r
-    FSEndPoint   *m_fsep;\r
-\r
-    PString m_gkAddress;\r
-    PString m_gkIdentifer;\r
-    PString m_gkInterface;\r
-\r
-    list < FSListener > m_listeners;\r
-};\r
-\r
-\r
-class FSConnection;\r
-typedef struct {\r
-    switch_timer_t read_timer;\r
-    switch_codec_t read_codec;\r
-    switch_codec_t write_codec;\r
-\r
-    switch_timer_t vid_read_timer;\r
-    switch_codec_t vid_read_codec;\r
-    switch_codec_t vid_write_codec;\r
-    FSConnection *me;\r
-} opal_private_t;\r
-\r
-\r
-class FSEndPoint:public OpalLocalEndPoint {\r
-    PCLASSINFO(FSEndPoint, OpalLocalEndPoint);\r
- public:\r
-    FSEndPoint(FSManager & manager);\r
-\r
-    virtual bool OnIncomingCall(OpalLocalConnection &);\r
-    virtual OpalLocalConnection *CreateConnection(OpalCall &, void *);\r
-};\r
-\r
-\r
-#define DECLARE_CALLBACK0(name)                           \\r
-    static switch_status_t name(switch_core_session_t *session) {       \\r
-        opal_private_t *tech_pvt = (opal_private_t *) switch_core_session_get_private(session); \\r
-        return tech_pvt && tech_pvt->me != NULL ? tech_pvt->me->name() : SWITCH_STATUS_FALSE; } \\r
-switch_status_t name()\r
-\r
-#define DECLARE_CALLBACK1(name, type1, name1)                           \\r
-    static switch_status_t name(switch_core_session_t *session, type1 name1) { \\r
-        opal_private_t *tech_pvt = (opal_private_t *) switch_core_session_get_private(session); \\r
-        return tech_pvt && tech_pvt->me != NULL ? tech_pvt->me->name(name1) : SWITCH_STATUS_FALSE; } \\r
-switch_status_t name(type1 name1)\r
-\r
-#define DECLARE_CALLBACK3(name, type1, name1, type2, name2, type3, name3) \\r
-    static switch_status_t name(switch_core_session_t *session, type1 name1, type2 name2, type3 name3) { \\r
-        opal_private_t *tech_pvt = (opal_private_t *) switch_core_session_get_private(session); \\r
-        return tech_pvt && tech_pvt->me != NULL ? tech_pvt->me->name(name1, name2, name3) : SWITCH_STATUS_FALSE; } \\r
-switch_status_t name(type1 name1, type2 name2, type3 name3)\r
-\r
-\r
-\r
-\r
-class FSConnection:public OpalLocalConnection {\r
-    PCLASSINFO(FSConnection, OpalLocalConnection)\r
-\r
-  public:\r
-    FSConnection(OpalCall & call,\r
-                 FSEndPoint & endpoint,\r
-                 switch_caller_profile_t *outbound_profile,\r
-                 switch_core_session_t *fsSession,\r
-                 switch_channel_t *fsChannel);\r
-\r
-    virtual bool OnIncoming();\r
-    virtual void OnReleased();\r
-    virtual PBoolean SetAlerting(const PString & calleeName, PBoolean withMedia);\r
-    virtual void OnAlerting();\r
-    virtual void OnEstablished();\r
-    virtual OpalMediaStream *CreateMediaStream(const OpalMediaFormat &, unsigned, PBoolean);\r
-    virtual PBoolean OnOpenMediaStream(OpalMediaStream & stream);\r
-    virtual OpalMediaFormatList GetMediaFormats() const;\r
-    virtual PBoolean SendUserInputTone(char tone, unsigned duration);\r
-    virtual PBoolean SendUserInputString(const PString & value);\r
-\r
-    void SetCodecs();\r
-\r
-    DECLARE_CALLBACK0(on_init);\r
-    DECLARE_CALLBACK0(on_routing);\r
-    DECLARE_CALLBACK0(on_execute);\r
-\r
-    DECLARE_CALLBACK0(on_exchange_media);\r
-    DECLARE_CALLBACK0(on_soft_execute);\r
-\r
-    DECLARE_CALLBACK1(kill_channel, int, sig);\r
-    DECLARE_CALLBACK1(send_dtmf, const switch_dtmf_t *, dtmf);\r
-    DECLARE_CALLBACK1(receive_message, switch_core_session_message_t *, msg);\r
-    DECLARE_CALLBACK1(receive_event, switch_event_t *, event);\r
-    DECLARE_CALLBACK0(state_change);\r
-    DECLARE_CALLBACK3(read_audio_frame, switch_frame_t **, frame, switch_io_flag_t, flags, int, stream_id);\r
-    DECLARE_CALLBACK3(write_audio_frame, switch_frame_t *, frame, switch_io_flag_t, flags, int, stream_id);\r
-    DECLARE_CALLBACK3(read_video_frame, switch_frame_t **, frame, switch_io_flag_t, flag, int, stream_id);\r
-    DECLARE_CALLBACK3(write_video_frame, switch_frame_t *, frame, switch_io_flag_t, flag, int, stream_id);\r
-\r
-    switch_status_t read_frame(const OpalMediaType & mediaType, switch_frame_t **frame, switch_io_flag_t flags);\r
-    switch_status_t write_frame(const OpalMediaType & mediaType, const switch_frame_t *frame, switch_io_flag_t flags);\r
-\r
-    switch_core_session_t *GetSession() const {\r
-        return m_fsSession;\r
-    }\r
-\r
-  private:\r
-    FSEndPoint & m_endpoint;\r
-    switch_core_session_t *m_fsSession;\r
-    switch_channel_t *m_fsChannel;\r
-    PSyncPoint m_rxAudioOpened;\r
-    PSyncPoint m_txAudioOpened;\r
-    OpalMediaFormatList m_switchMediaFormats;\r
-};\r
-\r
-\r
-class FSMediaStream:public OpalMediaStream {\r
-    PCLASSINFO(FSMediaStream, OpalMediaStream);\r
- public:\r
-    FSMediaStream(FSConnection & conn, const OpalMediaFormat & mediaFormat, ///<  Media format for stream\r
-                  unsigned sessionID,   ///<  Session number for stream\r
-                  bool isSource ///<  Is a source stream\r
-                  );\r
-\r
-    virtual PBoolean Open();\r
-    virtual PBoolean Close();\r
-    virtual PBoolean IsSynchronous() const;\r
-    virtual PBoolean RequiresPatchThread(OpalMediaStream *) const;\r
-\r
-    switch_status_t read_frame(switch_frame_t **frame, switch_io_flag_t flags);\r
-    switch_status_t write_frame(const switch_frame_t *frame, switch_io_flag_t flags);\r
-\r
- private:\r
-    switch_core_session_t *m_fsSession;\r
-    switch_channel_t *m_fsChannel;\r
-    switch_timer_t *m_switchTimer;\r
-    switch_codec_t *m_switchCodec;\r
-    switch_frame_t m_readFrame;\r
-    unsigned char m_buf[SWITCH_RECOMMENDED_BUFFER_SIZE];\r
-    RTP_DataFrame m_readRTP;\r
-    bool m_callOnStart;\r
-    uint32_t m_timeStamp;\r
-\r
-    bool CheckPatchAndLock();\r
-};\r
-\r
-\r
-#endif /* __FREESWITCH_MOD_OPAL__ */\r
-\r
-/* For Emacs:\r
- * Local Variables:\r
- * mode:c\r
- * indent-tabs-mode:nil\r
- * tab-width:4\r
- * c-basic-offset:4\r
- * End:\r
- * For VIM:\r
- * vim:set softtabstop=4 shiftwidth=4 tabstop=4: expandtabs:\r
- */\r
+/* Opal endpoint interface for Freeswitch Modular Media Switching Software Library /
+ * Soft-Switch Application
+ *
+ * Version: MPL 1.1
+ *
+ * Copyright (c) 2007 Tuyan Ozipek (tuyanozipek@gmail.com)
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * Contributor(s):
+ * Tuyan Ozipek   (tuyanozipek@gmail.com)
+ * Lukasz Zwierko (lzwierko@gmail.com)
+ * Robert Jongbloed (robertj@voxlucida.com.au)
+ *
+ */
+
+
+#ifndef __FREESWITCH_MOD_OPAL__
+#define __FREESWITCH_MOD_OPAL__
+
+#if defined(__GNUC__) && defined(HAVE_VISIBILITY)
+#pragma GCC visibility push(default)
+#endif
+
+#include <ptlib.h>
+#include <opal/manager.h>
+#include <opal/localep.h>
+#include <h323/h323ep.h>
+#include <iax2/iax2ep.h>
+
+#if defined(__GNUC__) && defined(HAVE_VISIBILITY)
+#pragma GCC visibility pop
+#endif
+
+#undef strcasecmp
+#undef strncasecmp
+
+#define HAVE_APR
+#include <switch.h>
+#include <switch_version.h>
+#define MODNAME "mod_opal"
+
+
+class FSEndPoint;
+class FSManager;
+
+
+struct mod_opal_globals {
+    int trace_level;
+    char *codec_string;
+    char *context;
+    char *dialplan;
+};
+
+extern struct mod_opal_globals mod_opal_globals;
+
+
+class FSProcess : public PLibraryProcess {
+    PCLASSINFO(FSProcess, PLibraryProcess);
+
+ public:
+    FSProcess();
+    ~FSProcess();
+
+    bool Initialise(switch_loadable_module_interface_t *iface);
+
+    FSManager & GetManager() const { return *m_manager; }
+
+  protected:
+    FSManager * m_manager;
+};
+
+
+struct FSListener {
+    FSListener() {
+    }
+
+    PString name;
+    OpalTransportAddress listenAddress;
+    PString localUserName;
+    PString gatekeeper;
+};
+
+
+class FSCall : public OpalCall {
+    PCLASSINFO(FSCall, OpalCall);
+  public:
+    FSCall(OpalManager & manager);
+    virtual PBoolean OnSetUp(OpalConnection & connection);
+};
+
+
+class FSManager : public OpalManager {
+    PCLASSINFO(FSManager, OpalManager);
+
+ public:
+    FSManager();
+
+    bool Initialise(switch_loadable_module_interface_t *iface);
+
+    switch_status_t ReadConfig(int reload);
+
+    switch_endpoint_interface_t *GetSwitchInterface() const {
+        return m_FreeSwitch;
+    }
+
+    virtual OpalCall * CreateCall(void * userData);
+
+  private:
+    switch_endpoint_interface_t *m_FreeSwitch;
+
+    H323EndPoint *m_h323ep;
+    IAX2EndPoint *m_iaxep;
+    FSEndPoint   *m_fsep;
+
+    PString m_gkAddress;
+    PString m_gkIdentifer;
+    PString m_gkInterface;
+
+    list < FSListener > m_listeners;
+};
+
+
+class FSConnection;
+typedef struct {
+    switch_timer_t read_timer;
+    switch_codec_t read_codec;
+    switch_codec_t write_codec;
+
+    switch_timer_t vid_read_timer;
+    switch_codec_t vid_read_codec;
+    switch_codec_t vid_write_codec;
+    FSConnection *me;
+} opal_private_t;
+
+
+class FSEndPoint:public OpalLocalEndPoint {
+    PCLASSINFO(FSEndPoint, OpalLocalEndPoint);
+ public:
+    FSEndPoint(FSManager & manager);
+
+    virtual bool OnIncomingCall(OpalLocalConnection &);
+    virtual OpalLocalConnection *CreateConnection(OpalCall &, void *);
+};
+
+
+#define DECLARE_CALLBACK0(name)                           \
+    static switch_status_t name(switch_core_session_t *session) {       \
+        opal_private_t *tech_pvt = (opal_private_t *) switch_core_session_get_private(session); \
+        return tech_pvt && tech_pvt->me != NULL ? tech_pvt->me->name() : SWITCH_STATUS_FALSE; } \
+switch_status_t name()
+
+#define DECLARE_CALLBACK1(name, type1, name1)                           \
+    static switch_status_t name(switch_core_session_t *session, type1 name1) { \
+        opal_private_t *tech_pvt = (opal_private_t *) switch_core_session_get_private(session); \
+        return tech_pvt && tech_pvt->me != NULL ? tech_pvt->me->name(name1) : SWITCH_STATUS_FALSE; } \
+switch_status_t name(type1 name1)
+
+#define DECLARE_CALLBACK3(name, type1, name1, type2, name2, type3, name3) \
+    static switch_status_t name(switch_core_session_t *session, type1 name1, type2 name2, type3 name3) { \
+        opal_private_t *tech_pvt = (opal_private_t *) switch_core_session_get_private(session); \
+        return tech_pvt && tech_pvt->me != NULL ? tech_pvt->me->name(name1, name2, name3) : SWITCH_STATUS_FALSE; } \
+switch_status_t name(type1 name1, type2 name2, type3 name3)
+
+
+
+
+class FSConnection:public OpalLocalConnection {
+    PCLASSINFO(FSConnection, OpalLocalConnection)
+
+  public:
+    FSConnection(OpalCall & call,
+                 FSEndPoint & endpoint,
+                 switch_caller_profile_t *outbound_profile,
+                 switch_core_session_t *fsSession,
+                 switch_channel_t *fsChannel);
+
+    virtual bool OnIncoming();
+    virtual void OnReleased();
+    virtual PBoolean SetAlerting(const PString & calleeName, PBoolean withMedia);
+    virtual void OnAlerting();
+    virtual void OnEstablished();
+    virtual OpalMediaStream *CreateMediaStream(const OpalMediaFormat &, unsigned, PBoolean);
+    virtual PBoolean OnOpenMediaStream(OpalMediaStream & stream);
+    virtual OpalMediaFormatList GetMediaFormats() const;
+    virtual PBoolean SendUserInputTone(char tone, unsigned duration);
+    virtual PBoolean SendUserInputString(const PString & value);
+
+    void SetCodecs();
+
+    DECLARE_CALLBACK0(on_init);
+    DECLARE_CALLBACK0(on_routing);
+    DECLARE_CALLBACK0(on_execute);
+
+    DECLARE_CALLBACK0(on_exchange_media);
+    DECLARE_CALLBACK0(on_soft_execute);
+
+    DECLARE_CALLBACK1(kill_channel, int, sig);
+    DECLARE_CALLBACK1(send_dtmf, const switch_dtmf_t *, dtmf);
+    DECLARE_CALLBACK1(receive_message, switch_core_session_message_t *, msg);
+    DECLARE_CALLBACK1(receive_event, switch_event_t *, event);
+    DECLARE_CALLBACK0(state_change);
+    DECLARE_CALLBACK3(read_audio_frame, switch_frame_t **, frame, switch_io_flag_t, flags, int, stream_id);
+    DECLARE_CALLBACK3(write_audio_frame, switch_frame_t *, frame, switch_io_flag_t, flags, int, stream_id);
+    DECLARE_CALLBACK3(read_video_frame, switch_frame_t **, frame, switch_io_flag_t, flag, int, stream_id);
+    DECLARE_CALLBACK3(write_video_frame, switch_frame_t *, frame, switch_io_flag_t, flag, int, stream_id);
+
+    switch_status_t read_frame(const OpalMediaType & mediaType, switch_frame_t **frame, switch_io_flag_t flags);
+    switch_status_t write_frame(const OpalMediaType & mediaType, const switch_frame_t *frame, switch_io_flag_t flags);
+
+    switch_core_session_t *GetSession() const {
+        return m_fsSession;
+    }
+
+  private:
+    FSEndPoint & m_endpoint;
+    switch_core_session_t *m_fsSession;
+    switch_channel_t *m_fsChannel;
+    PSyncPoint m_rxAudioOpened;
+    PSyncPoint m_txAudioOpened;
+    OpalMediaFormatList m_switchMediaFormats;
+};
+
+
+class FSMediaStream:public OpalMediaStream {
+    PCLASSINFO(FSMediaStream, OpalMediaStream);
+ public:
+    FSMediaStream(FSConnection & conn, const OpalMediaFormat & mediaFormat, ///<  Media format for stream
+                  unsigned sessionID,   ///<  Session number for stream
+                  bool isSource ///<  Is a source stream
+                  );
+
+    virtual PBoolean Open();
+    virtual PBoolean Close();
+    virtual PBoolean IsSynchronous() const;
+    virtual PBoolean RequiresPatchThread(OpalMediaStream *) const;
+
+    switch_status_t read_frame(switch_frame_t **frame, switch_io_flag_t flags);
+    switch_status_t write_frame(const switch_frame_t *frame, switch_io_flag_t flags);
+
+ private:
+    switch_core_session_t *m_fsSession;
+    switch_channel_t *m_fsChannel;
+    switch_timer_t *m_switchTimer;
+    switch_codec_t *m_switchCodec;
+    switch_frame_t m_readFrame;
+    unsigned char m_buf[SWITCH_RECOMMENDED_BUFFER_SIZE];
+    RTP_DataFrame m_readRTP;
+    bool m_callOnStart;
+    uint32_t m_timeStamp;
+
+    bool CheckPatchAndLock();
+};
+
+
+#endif /* __FREESWITCH_MOD_OPAL__ */
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4: expandtabs:
+ */