diff options
Diffstat (limited to 'bindings/_common/SipStack.h')
-rw-r--r-- | bindings/_common/SipStack.h | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/bindings/_common/SipStack.h b/bindings/_common/SipStack.h new file mode 100644 index 0000000..1f41096 --- /dev/null +++ b/bindings/_common/SipStack.h @@ -0,0 +1,123 @@ +/* +* Copyright (C) 2010-2011 Mamadou Diop. +* +* Contact: Mamadou Diop <diopmamadou(at)doubango.org> +* +* This file is part of Open Source Doubango Framework. +* +* DOUBANGO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DOUBANGO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DOUBANGO. +* +*/ +#ifndef TINYWRAP_SIPSTACK_H +#define TINYWRAP_SIPSTACK_H + +#include "tinyWRAP_config.h" + +#include "SipCallback.h" +#include "SafeObject.h" + +#include "tinydav/tdav.h" +#include "tinysip.h" +#include "tinyhttp.h" + +class DDebugCallback; + +class TINYWRAP_API SipStack: public SafeObject +{ +public: /* ctor() and dtor() */ + SipStack(SipCallback* pCallback, const char* realm_uri, const char* impi_uri, const char* impu_uri); + ~SipStack(); + +public: /* API functions */ + bool start(); + bool setDebugCallback(DDebugCallback* pCallback); + bool setDisplayName(const char* display_name); + bool setRealm(const char* realm_uri); + bool setIMPI(const char* impi); + bool setIMPU(const char* impu_uri); + bool setPassword(const char* password); + bool setAMF(const char* amf); + bool setOperatorId(const char* opid); + bool setProxyCSCF(const char* fqdn, unsigned short port, const char* transport, const char* ipversion); + bool setLocalIP(const char* ip, const char* transport=tsk_null); + bool setLocalPort(unsigned short port, const char* transport=tsk_null); + bool setEarlyIMS(bool enabled); + bool addHeader(const char* name, const char* value); + bool removeHeader(const char* name); + bool addDnsServer(const char* ip); + bool setDnsDiscovery(bool enabled); + bool setAoR(const char* ip, int port); +#if !defined(SWIG) + bool setMode(enum tsip_stack_mode_e mode); +#endif + + bool setSigCompParams(unsigned dms, unsigned sms, unsigned cpb, bool enablePresDict); + bool addSigCompCompartment(const char* compId); + bool removeSigCompCompartment(const char* compId); + + bool setSTUNEnabledForICE(bool enabled); // @deprecated + bool setSTUNServer(const char* hostname, unsigned short port); // @deprecated + bool setSTUNCred(const char* login, const char* password); // @deprecated + bool setSTUNEnabled(bool enabled); + + bool setTLSSecAgree(bool enabled); + bool setSSLCertificates(const char* privKey, const char* pubKey, const char* caKey, bool verify = false); + bool setSSLCretificates(const char* privKey, const char* pubKey, const char* caKey, bool verify = false); /*@deprecated: typo */ + bool setIPSecSecAgree(bool enabled); + bool setIPSecParameters(const char* algo, const char* ealgo, const char* mode, const char* proto); + + char* dnsENUM(const char* service, const char* e164num, const char* domain); + char* dnsNaptrSrv(const char* domain, const char* service, unsigned short *OUTPUT); + char* dnsSrv(const char* service, unsigned short* OUTPUT); + + bool setMaxFDs(unsigned max_fds); + + char* getLocalIPnPort(const char* protocol, unsigned short* OUTPUT); + + char* getPreferredIdentity(); + + bool isValid(); + bool stop(); + + static bool initialize(); + static bool deInitialize(); + static void setCodecs(tdav_codec_id_t codecs); + static void setCodecs_2(int64_t codecs); // For stupid languages + static bool setCodecPriority(tdav_codec_id_t codec_id, int priority); + static bool setCodecPriority_2(int codec, int priority);// For stupid languages + static bool isCodecSupported(tdav_codec_id_t codec_id); + static bool isIPSecSupported(); + +public: /* Public helper function */ +#if !defined(SWIG) + inline tsip_stack_handle_t* getHandle()const{ + return m_pHandle; + } + inline SipCallback* getCallback()const{ + return m_pCallback; + } + inline DDebugCallback* getDebugCallback() const{ + return m_pDebugCallback; + } +#endif + +private: + SipCallback* m_pCallback; + DDebugCallback* m_pDebugCallback; + tsip_stack_handle_t* m_pHandle; + + static bool g_bInitialized; +}; + +#endif /* TINYWRAP_SIPSTACK_H */ |