#if !defined( calltoContext_h ) #define calltoContext_h //--------------------------------------------------------------------------// //--------------------------------------------------------------------------// // Application Header Files. // //--------------------------------------------------------------------------// #include "callto.h" #include "SDKInternal.h" //--------------------------------------------------------------------------// // interface IUIContext. // //--------------------------------------------------------------------------// class IUIContext { protected: // protected constructors --------------------------------// IUIContext(){}; public: // public destructor ------------------------------------// virtual ~IUIContext(){}; public: // public methods ----------------------------------------// virtual HRESULT disambiguate ( ICalltoCollection * const calltoCollection, ICallto * const emptyCallto, const ICallto ** const selectedCallto ) = 0; }; // End of interface IUIContext. //--------------------------------------------------------------------------// // interface IMutableUIContext. // //--------------------------------------------------------------------------// class IMutableUIContext { protected: // protected constructors --------------------------------// IMutableUIContext(){}; public: // public destructor ------------------------------------// virtual ~IMutableUIContext(){}; public: // public methods ----------------------------------------// virtual void set_parentWindow ( const HWND window ) = 0; virtual void set_callFlags ( const DWORD callFlags ) = 0; }; // End of interface IMutableUIContext. //--------------------------------------------------------------------------// // class CUIContext. // //--------------------------------------------------------------------------// class CUIContext: public IUIContext, public IMutableUIContext { public: // public constructors ------------------------------------// CUIContext(); public: // public destructor ------------------------------------// virtual ~CUIContext(); public: // public methods (IUIContext) ------------------------// virtual HRESULT disambiguate ( ICalltoCollection * const calltoCollection, ICallto * const emptyCallto, const ICallto ** const callto ); public: // public methods (IMutableUIContext) --------------------// virtual void set_parentWindow ( const HWND window ); virtual void set_callFlags ( const DWORD callFlags ); private: // private members ----------------------------------------// HWND m_parent; DWORD m_callFlags; }; // End of class CUIContext. //--------------------------------------------------------------------------// // interface IGatekeeperContext. // //--------------------------------------------------------------------------// class IGatekeeperContext { protected: // protected constructors --------------------------------// IGatekeeperContext(){}; public: // public destructor ------------------------------------// virtual ~IGatekeeperContext(){}; public: // public methods ----------------------------------------// virtual bool isEnabled(void) const = 0; virtual const TCHAR * get_ipAddress(void) const = 0; }; // End of interface IGatekeeperContext. //--------------------------------------------------------------------------// // interface IMutableGatekeeperContext. // //--------------------------------------------------------------------------// class IMutableGatekeeperContext { protected: // protected constructors --------------------------------// IMutableGatekeeperContext(){}; public: // public destructor ------------------------------------// virtual ~IMutableGatekeeperContext(){}; public: // public methods ----------------------------------------// virtual void set_enabled ( const bool enabled ) = 0; virtual HRESULT set_gatekeeperName ( const TCHAR * const gatekeeperName ) = 0; }; // End of interface IMutableGatekeeperContext. //--------------------------------------------------------------------------// // class CGatekeeperContext. // //--------------------------------------------------------------------------// class CGatekeeperContext: public IGatekeeperContext, public IMutableGatekeeperContext { public: // public constructors ------------------------------------// CGatekeeperContext(); public: // public destructor ------------------------------------// virtual ~CGatekeeperContext(); public: // public methods (IGatekeeperContext) ----------------// virtual bool isEnabled(void) const; virtual const TCHAR * get_ipAddress(void) const; public: // public methods (IMutableGatekeeperContext) ------------// virtual void set_enabled ( const bool enabled ); virtual HRESULT set_gatekeeperName ( const TCHAR * const gatekeeperName ); private: // private methods ------------------------------------// virtual HRESULT set_ipAddress ( const TCHAR * const ipAddress ); private: // private members ----------------------------------------// bool m_enabled; TCHAR * m_ipAddress; }; // End of class CGatekeeperContext. //--------------------------------------------------------------------------// // interface IGatewayContext. // //--------------------------------------------------------------------------// class IGatewayContext { protected: // protected constructors --------------------------------// IGatewayContext(){}; public: // public destructor ------------------------------------// virtual ~IGatewayContext(){}; public: // public methods ----------------------------------------// virtual bool isEnabled(void) const = 0; virtual const TCHAR * get_ipAddress(void) const = 0; }; // End of interface IGatewayContext. //--------------------------------------------------------------------------// // interface IMutableGatewayContext. // //--------------------------------------------------------------------------// class IMutableGatewayContext { protected: // protected constructors --------------------------------// IMutableGatewayContext(){}; public: // public destructor ------------------------------------// virtual ~IMutableGatewayContext(){}; public: // public methods ----------------------------------------// virtual void set_enabled ( const bool enabled ) = 0; virtual HRESULT set_gatewayName ( const TCHAR * const gatewayName ) = 0; }; // End of interface IMutableGatewayContext. //--------------------------------------------------------------------------// // class CGatewayContext. // //--------------------------------------------------------------------------// class CGatewayContext: public IGatewayContext, public IMutableGatewayContext { public: // public constructors ------------------------------------// CGatewayContext(); public: // public destructor ------------------------------------// virtual ~CGatewayContext(); public: // public methods (IGatewayContext) --------------------// virtual bool isEnabled(void) const; virtual const TCHAR * get_ipAddress(void) const; public: // public methods (IMutableGatewayContext) ------------// virtual void set_enabled ( const bool enabled ); virtual HRESULT set_gatewayName ( const TCHAR * const gatewayName ); private: // private methods ----------------------------------------// virtual HRESULT set_ipAddress ( const TCHAR * const ipAddress ); private: // private members ----------------------------------------// bool m_enabled; TCHAR * m_ipAddress; }; // End of class CGatewayContext. //--------------------------------------------------------------------------// // interface IILSContext. // //--------------------------------------------------------------------------// class IILSContext { protected: // protected constructors --------------------------------// IILSContext(){}; public: // public destructor ------------------------------------// virtual ~IILSContext(){}; public: // public methods ----------------------------------------// virtual bool isEnabled(void) const = 0; virtual const TCHAR * get_ipAddress(void) const = 0; virtual const TCHAR * const get_ilsName(void) const = 0; }; // End of interface IILSContext. //--------------------------------------------------------------------------// // interface IMutableILSContext. // //--------------------------------------------------------------------------// class IMutableILSContext { protected: // protected constructors --------------------------------// IMutableILSContext(){}; public: // public destructor ------------------------------------// virtual ~IMutableILSContext(){}; public: // public methods ----------------------------------------// virtual void set_enabled ( const bool enabled ) = 0; virtual HRESULT set_ilsName ( const TCHAR * const ilsName ) = 0; }; // End of interface IMutableILSContext. //--------------------------------------------------------------------------// // class CILSContext. // //--------------------------------------------------------------------------// class CILSContext: public IILSContext, public IMutableILSContext { public: // public constructors ------------------------------------// CILSContext ( const TCHAR * const ilsServer = NULL ); public: // public destructor ------------------------------------// virtual ~CILSContext(); public: // public methods (IILSContext) ------------------------// virtual bool isEnabled(void) const; virtual const TCHAR * get_ipAddress(void) const; virtual const TCHAR * const get_ilsName(void) const; public: // public methods (IMutableILSContext) ----------------// virtual void set_enabled ( const bool enabled ); virtual HRESULT set_ilsName ( const TCHAR * const ilsName ); private: // private methods ----------------------------------------// virtual HRESULT set_ipAddress ( const TCHAR * const ipAddress ); private: // private members ----------------------------------------// bool m_enabled; TCHAR * m_ipAddress; TCHAR * m_ilsName; }; // End of class CILSContext. //--------------------------------------------------------------------------// // interface ICalltoContext. // //--------------------------------------------------------------------------// class ICalltoContext { protected: // protected constructors --------------------------------// ICalltoContext(){}; public: // public destructor ------------------------------------// virtual ~ICalltoContext(){} public: // public methods ----------------------------------------// virtual HRESULT callto ( const ICalltoProperties * const calltoProperties, INmCall** ppInternalCall ) = 0; virtual const IGatekeeperContext * const get_gatekeeperContext(void) const = 0; virtual const IGatewayContext * const get_gatewayContext(void) const = 0; virtual const IILSContext * const get_ilsContext(void) const = 0; }; // End of interface ICalltoContext. //--------------------------------------------------------------------------// // interface IMutableCalltoContext. // //--------------------------------------------------------------------------// class IMutableCalltoContext { protected: // protected constructors --------------------------------// IMutableCalltoContext(){}; public: // public destructor ------------------------------------// virtual ~IMutableCalltoContext(){} public: // public methods ----------------------------------------// virtual IMutableUIContext * const get_mutableUIContext(void) const = 0; virtual IMutableGatekeeperContext * const get_mutableGatekeeperContext(void) const = 0; virtual IMutableGatewayContext * const get_mutableGatewayContext(void) const = 0; virtual IMutableILSContext * const get_mutableIlsContext(void) const = 0; }; // End of interface IMutableCalltoContext. //--------------------------------------------------------------------------// // class CCalltoContext. // //--------------------------------------------------------------------------// class CCalltoContext: public ICalltoContext, public IMutableCalltoContext, public CUIContext, public CGatekeeperContext, public CGatewayContext, public CILSContext { public: // public constructors ------------------------------------// CCalltoContext(); public: // public destructor ------------------------------------// virtual ~CCalltoContext(); public: // public methods (ICalltoContext) --------------------// virtual HRESULT callto ( const ICalltoProperties * const calltoProperties, INmCall** ppInternalCall ); virtual const IGatekeeperContext * const get_gatekeeperContext(void) const; virtual const IGatewayContext * const get_gatewayContext(void) const; virtual const IILSContext * const get_ilsContext(void) const; public: // public methods (IMutableCalltoContext) ----------------// virtual IMutableUIContext * const get_mutableUIContext(void) const; virtual IMutableGatekeeperContext * const get_mutableGatekeeperContext(void) const; virtual IMutableGatewayContext * const get_mutableGatewayContext(void) const; virtual IMutableILSContext * const get_mutableIlsContext(void) const; public: // public static methods ------------------------------------// static bool isPhoneNumber ( const TCHAR * phone ); static bool toE164 ( const TCHAR * phone, TCHAR * base10, int size ); static bool isIPAddress ( const TCHAR * const ipAddress ); static HRESULT get_ipAddressFromName ( const TCHAR * const name, TCHAR * buffer, int length ); static HRESULT get_ipAddressFromILSEmail ( const TCHAR * const ilsServer, const TCHAR * const ilsPort, const TCHAR * const email, TCHAR * const ipAddress, const int size ); }; // End of class CCalltoContext. //--------------------------------------------------------------------------// #endif // !defined( calltoContext_h )