/usr/include/opal/iax2/causecode.h is in libopal-dev 3.10.10~dfsg2-2+b2.
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 | /*
*
* Inter Asterisk Exchange 2
*
* Open Phone Abstraction Library (OPAL)
*
* List of the defines which enumerate the reason why calls end.
*
* Copyright (c) 2005 Indranet Technologies Ltd.
*
* The contents of this file are subject to the Mozilla Public License
* Version 1.0 (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.
*
* The Original Code is Open Phone Abstraction Library.
*
* The Initial Developer of the Original Code is Indranet Technologies Ltd.
*
* The author of this code is Derek J Smithies
*
* $Revision: 24606 $
* $Author: dereksmithies $
* $Date: 2010-07-28 22:51:05 -0500 (Wed, 28 Jul 2010) $
*/
#ifndef OPAL_IAX2_CAUSECODE_H
#define OPAL_IAX2_CAUSECODE_H
#include <opal/buildopts.h>
#if OPAL_IAX2
#include <iax2/ies.h>
///////////////////////////////////////////////////////////////////////
/**An Information Element that contains the hangup cause code*/
class IAX2IeCauseCode : public IAX2IeByte
{
PCLASSINFO(IAX2IeCauseCode, IAX2IeByte);
public:
/**Enums to specify why this call failed */
enum CauseCodes {
Unallocated = 1, /*!< */
NoRouteTransitNet = 2, /*!< */
NoRouteDestination = 3, /*!< */
ChannelUnacceptable = 6, /*!< */
CallAwardedDelivered = 7, /*!< */
NormalClearing = 16, /*!< */
UserBusy = 17, /*!< */
NoUserResponse = 18, /*!< */
NoAnswer = 19, /*!< */
CallRejected = 21, /*!< */
NumberChanged = 22, /*!< */
DestinationOutOfOrder = 27, /*!< */
InvalidNumberFormat = 28, /*!< */
FacilityRejected = 29, /*!< */
ResponseToStatusEnquiry = 30, /*!< */
NormalUnspecified = 31, /*!< */
NormalCircuitCongestion = 34, /*!< */
NetworkOutOfOrder = 38, /*!< */
NormalTemporaryFailure = 41, /*!< */
SwitchCongestion = 42, /*!< */
AccessInfoDiscarded = 43, /*!< */
RequestedChanUnavail = 44, /*!< */
PreEmpted = 45, /*!< */
FacilityNotSubscribed = 50, /*!< */
OutgoingCallBarred = 52, /*!< */
IncomingCallBarred = 54, /*!< */
BearerCapabilityNotauth = 57, /*!< */
BearerCapabilityNotAvail = 58, /*!< No agreement on a common codec to use. Happens at call setup. */
BearerCapabilityNotimpl = 65, /*!< */
ChanNotImplemented = 66, /*!< */
FacilityNotImplemented = 69, /*!< */
InvalidCallReference = 81, /*!< */
IncompatibleDestination = 88, /*!< */
InvalidMsgUnspecified = 95, /*!< */
MandatoryIeMissing = 96, /*!< */
MessageTypeNonexist = 97, /*!< */
WrongMessage = 98, /*!< */
IeNonexist = 99, /*!< */
InvalidIeContents = 100, /*!< */
WrpngCallState = 101, /*!< */
RecoveryOnTimerExpire = 102, /*!< */
MandatoryIeLengthError = 103, /*!< */
ProtocolError = 111, /*!< */
Interworking = 127, /*!< */
/* Special Asterisk aliases */
Busy = UserBusy, /*!< */
Failure = NetworkOutOfOrder, /*!< */
Normal = NormalClearing, /*!< */
Congestion = NormalCircuitCongestion, /*!< */
Unregistered = NoRouteDestination, /*!< */
NotDefined = 0, /*!< */
NoSuchDriver = ChanNotImplemented, /*!< */
};
/** Constructor from data read from the network.
Contents are undefined if the network data is bogus/invalid */
IAX2IeCauseCode(BYTE length, BYTE *srcData) : IAX2IeByte(length, srcData) { };
/**Construct with a predefined value (Typically used prior to transmission)*/
IAX2IeCauseCode(BYTE newValue) : IAX2IeByte(newValue) { }
/**Get the key value for this particular Information Element class */
virtual BYTE GetKeyValue() const { return ie_causeCode; }
/**print this class (nicely) to the designated stream*/
void PrintOn(ostream & str) const;
/** Take the data from this Ie, and copy it into the IeData structure.
This is done on processing an incoming frame which contains Ie in the data section. */
virtual void StoreDataIn(IAX2IeData &res) { res.causeCode = dataValue; }
};
#endif // OPAL_IAX2
#endif // OPAL_IAX2_CAUSECODE_H
/* The comment below is magic for those who use emacs to edit this file.
* With the comment below, the tab key does auto indent to 2 spaces.
*
* Local Variables:
* mode:c
* c-basic-offset:2
* End:
*/
|