File: CpGatewayManager.h

package info (click to toggle)
sipxtapi 3.3.0~test18%2Bdfsg.1-0.1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 55,892 kB
  • sloc: cpp: 435,979; ansic: 14,207; makefile: 2,491; java: 2,264; sh: 1,310; perl: 844; xml: 225; awk: 5
file content (122 lines) | stat: -rw-r--r-- 5,841 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
//
// Copyright (C) 2004-2006 SIPfoundry Inc.
// Licensed by SIPfoundry under the LGPL license.
//
// Copyright (C) 2004-2006 Pingtel Corp.  All rights reserved.
// Licensed to SIPfoundry under a Contributor Agreement.
//
// $$
///////////////////////////////////////////////////////////////////////////////


#ifndef _CpGatewayManager_h_
#define _CpGatewayManager_h_

// SYSTEM INCLUDES
//#include <...>

// APPLICATION INCLUDES
#include <os/OsServerTask.h>

// DEFINES
// MACROS
// EXTERNAL FUNCTIONS
// EXTERNAL VARIABLES
// CONSTANTS
// STRUCTS
// TYPEDEFS
// FORWARD DECLARATIONS
class PtGatewayInterface;

//:Class short description which may consist of multiple lines (note the ':')
// Class detailed description which may extend to multiple lines
class CpGatewayManager : public OsServerTask
{
/* //////////////////////////// PUBLIC //////////////////////////////////// */
public:

/* ============================ CREATORS ================================== */

   CpGatewayManager();
     //:Default constructor

   CpGatewayManager(const CpGatewayManager& rCpGatewayManager);
     //:Copy constructor

   virtual
   ~CpGatewayManager();
     //:Destructor

/* ============================ MANIPULATORS ============================== */

   static CpGatewayManager* getCpGatewayManager();
    //: Singleton constructor/accessor
    // Note: this class does not need to be a singleton.  The only method that
    // assumes singleton is getCpGatewayManager.

   CpGatewayManager& operator=(const CpGatewayManager& rhs);
     //:Assignment operator

   OsStatus setGatewayInterface(const char* terminalName, 
       PtGatewayInterface* pInterface);
   //: Add a PtGatewayInterface call back object for media setup on the named 
   //: terminal.
   // Note this method does not validate the terminal name in any way.  One
   // validate the terminal name and be sure that it is registered with the 
   // provider (i.e. proxy server) if calls are to work with the provider.
   //! param: (in) terminalName - the terminalName with which the interface is to work.
   //! param: (in) pInterface - interface object to be called for media setup information for calls on the geteway terminal.
   //! retcode: OS_SUCCESS - the interface was registered for the named terminal.

   void getNewCallId(UtlString& callId);
   //: Get a valid callId with which to create a new call
   //  The callId is needed to call methods (i.e. <I>dialUrl</I>) requiring 
   // a callId to create a new call.

   OsStatus connect(const char* callId, 
                    const char* fromAddressUrl,
                    const char* fromTerminalName,
                    const char* toAddressUrl);
   //: Create a call if one does not exist and setup a connection between
   //: the to and from addresses originating on the given terminal.
   //! param: (in) callId - must refer to an existing call or a valid callId from <I>getNewCallId</I>.  In the latter case a new call will be created.
   //! param: (in) fromAddressUrl - the originating terminal url.  Note: this should be validated if it is used in conjuction with the provider or proxy server.
   //! param: (in) fromTerminalname - this should be a valid gateway terminal having a registered (via <I>setGatewayInterface</I>) PtGatewayInterface.
   //! param: (in) toAddressUrl - destination url.  Note: in general this cannot be validated as the call may be to an address which is outside the domain of the provider.
   //! retcode: OS_SUCCESS - the callId is valid and an attempt will be made to connect the call.  This does not indicate that the connect was successful or completed.
   //! retcode: OS_INVALID_ARGUMENT - the call indicated by callId previously existed, but was in an invalid state to connect a call.

   OsStatus answer(const char* callId, const char* terminalName);
   //: Answer an incoming call on the given terminal.
   //! param: callId - identifies an existing incomming call.
   //! param: terminalName - this should be a valid gateway terminal having a registered (via <I>setGatewayInterface</I>) PtGatewayInterface having the address of the destination of the incoming call.
   //! retcode: OS_SUCCESS - the callId is valid and an attempt will be made to answer the call.  This does not indicate that the answer was successful or completed.
   //! retcode: OS_INVALID_ARGUMENT - the call indicated by callId or the terminalName indicated does not exist.

   OsStatus disconnectConnection(const char* callId, 
                                 const char* connectionAddressUrl);
   //: Disconnects the indicated connection in the given call.
   //! param: (in) callId - the handle indicating which call contains the connection to disconnect.
   //! param: (in) connectionAddressUrl - indicates which leg of the call is to be disconnected.
   //! retcode: OS_SUCCESS - the callId and connectionAddressUrl are valid and an attempt will be made to disconnect the connection.  This does not indicate that the disconnect was successful or completed.
   //! retcode: OS_INVALID_ARGUMENT - the call indicated by callId or the connection indicated by connectionAddressUrl does not exist.

/* ============================ ACCESSORS ================================= */

   UtlBoolean gatewayInterfaceExists(const char* terminalName);
   //: Checks if the named terminal has a registered gateway interface.
   // Note: this does not validate that the terminal name is valid with respect to the provider or proxy.

/* ============================ INQUIRY =================================== */

/* //////////////////////////// PROTECTED ///////////////////////////////// */
protected:

/* //////////////////////////// PRIVATE /////////////////////////////////// */
private:

};

/* ============================ INLINE METHODS ============================ */

#endif  // _CpGatewayManager_h_