/usr/include/sipxtapi/ptapi/PtAddressForwarding.h is in libsipxtapi-dev 3.3.0~test17-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 | //
// 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 _PtAddressForwarding_h_
#define _PtAddressForwarding_h_
// SYSTEM INCLUDES
// APPLICATION INCLUDES
#include "os/OsDefs.h"
#include "ptapi/PtDefs.h"
#include "tao/TaoAddressAdaptor.h"
#include "cp/CpCallManager.h"
// DEFINES
// MACROS
// EXTERNAL FUNCTIONS
// EXTERNAL VARIABLES
// CONSTANTS
// STRUCTS
// TYPEDEFS
// FORWARD DECLARATIONS
//:The PtAddressForwarding class represents a forwarding instruction.
// This instruction indicates how the phone system should forward
// incoming telephone calls to a specific address. The attributes
// of a forwarding instruction are:
// <p>
// <ul><li>
// The forwarding instruction's <b>type</b> tells the phone
// system when to forward the call. Currently, three types are
// supported: always forward incoming calls, forward incoming calls
// when the address is busy, and forward incoming calls when no
// one answers.</li>
// <br>
// <li>
// The forwarding instruction's <b>filter</b> identifies the set
// of incoming calls to which it applies. A forwarding instruction
// can apply to all calls, to external calls only, to internal calls
// only, or to calls from a specific calling address. </li>
// </ul>
class PtAddressForwarding
{
friend class PtAddress;
friend class CpCallManager;
friend TaoStatus TaoAddressAdaptor::addressSetForwarding(TaoMessage& rMsg);
/* //////////////////////////// PUBLIC //////////////////////////////////// */
public:
enum ForwardingType
{
FORWARD_UNCONDITIONALLY = 1,
FORWARD_ON_BUSY = 2,
FORWARD_ON_NOANSWER = 3
};
//!enumcode: FORWARD_UNCONDITIONALLY - Forward calls unconditionally
//!enumcode: FORWARD_ON_BUSY - Forward calls on busy
//!enumcode: FORWARD_ON_NOANSWER - Forward calls on no answer
enum FilterType
{
ALL_CALLS = 1,
INTERNAL_CALLS = 2,
EXTERNAL_CALLS = 3,
SPECIFIC_ADDRESS = 4
};
//!enumcode: ALL_CALLS - Apply forwarding instruction to all incoming calls
//!enumcode: INTERNAL_CALLS - Apply instruction to calls originating within the provider's domain
//!enumcode: EXTERNAL_CALLS - Apply instruction to calls originating from outside the provider's domain
//!enumcode: SPECIFIC_ADDRESS - Apply instruction to calls originating from a specific address
/* ============================ CREATORS ================================== */
PtAddressForwarding();
//:Default constructor
PtAddressForwarding(const char* destinationURL,
int type=FORWARD_UNCONDITIONALLY,
int noAnswerTimeout = 0);
//:Constructor variant #1
// Creates a forwarding instruction that forwards all calls of the
// indicated type to the <i>destinationURL</i> address.
//!param: destinationURL - Destination address URL for the call forwarding operation
//!param: type - Forwarding instruction type
//!param: noAnswerTimeout - Timeout value for forwarding on no answer default 0 means 24 seconds
// Returns a newly created PtAddressForwarding object
PtAddressForwarding(const char* destinationURL, int type,
PtBoolean internalCalls, int noAnswerTimeout);
//:Constructor variant #2
// Creates a forwarding instruction that forwards calls of the
// indicated type to the <i>destinationURL</i> address. Depending
// on the value of the <i>internalCalls</i> flag, this instruction
// will affect either just internal or just external calls.
//!param: destinationURL - Destination address URL for the call forwarding operation
//!param: type - Forwarding instruction type
//!param: internalCalls - If TRUE, forward only internal calls, otherwise forward only external calls
//!param: noAnswerTimeout - Timeout value for forwarding on no answer
// Returns a newly created PtAddressForwarding object
PtAddressForwarding(const char* destinationURL, int type, const char* callerURL, int noAnswerTimeout);
//:Constructor variant #3
// Creates a forwarding instruction that applies only to incoming
// calls from the indicated <i>callerURL</i>.
//!param: destinationURL - Destination address URL for the call forwarding operation
//!param: type - Forwarding instruction type
//!param: callerURL - The URL for the incoming caller address that this forward operation affects
//!param: noAnswerTimeout - Timeout value for forwarding on no answer
// Returns a newly created PtAddressForwarding object
PtAddressForwarding(const char* destinationURL, int type,
int filterType, const char* callerURL, int noAnswerTimeout);
//:Constructor variant #4
// Creates a forwarding instruction that forwards calls of the
// indicated type to the <i>destinationURL</i> address.
//!param: destinationURL - Destination address URL for the call forwarding operation
//!param: type - Forwarding instruction type
//!param: filterType - Forwarding filter type
//!param: callerURL - The URL for the incoming caller address that this forward operation affects
//!param: noAnswerTimeout - Timeout value for forwarding on no answer
// Returns a newly created PtAddressForwarding object
PtAddressForwarding(const PtAddressForwarding& rPtAddressForwarding);
//:Copy constructor
virtual
~PtAddressForwarding();
//:Destructor
/* ============================ MANIPULATORS ============================== */
PtAddressForwarding& operator=(const PtAddressForwarding& rhs);
//:Assignment operator
PtBoolean operator==(const PtAddressForwarding &rhs);
//:equal operator
/* ============================ ACCESSORS ================================= */
PtStatus getDestinationAddress(char* address, int len);
//:Returns the destination URL associated with this forwarding
//:instruction.
PtStatus getFilter(int& filterType);
//:Returns the filter type of this forwarding instruction.
PtStatus getSpecificCaller(char* address, int len);
//:Returns the specific incoming caller address associated with this
//:forwarding instruction.
// If the filter type for this forwarding instruction is
// <i>SPECIFIC_ADDRESS</i>, then this method returns the
// calling address URL to which this filter applies. Otherwise, this
// method returns an empty string.
PtStatus getType(int& type);
//:Returns the type of this forwarding instruction.
// The forwarding type indicates whether the forwarding instruction
// applies unconditionally, upon no answer, or upon busy.
PtStatus getNoAnswerTimeout(int& time);
//:Returns the no-answer-timeout value.
/* ============================ INQUIRY =================================== */
/* //////////////////////////// PROTECTED ///////////////////////////////// */
protected:
/* //////////////////////////// PRIVATE /////////////////////////////////// */
private:
int mForwardingType;
int mNoAnswerTimeout;
int mFilterType;
UtlString mDestinationUrl;
UtlString mCallerUrl;
};
/* ============================ INLINE METHODS ============================ */
#endif // _PtAddressForwarding_h_
|