# IAX2IeCauseCode Class Reference

`#include <causecode.h>`

Inheritance diagram for IAX2IeCauseCode:

[legend]
Collaboration diagram for IAX2IeCauseCode:
[legend]

## Public Types

| 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
| 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
| Busy = UserBusy
| Failure = NetworkOutOfOrder
| Normal = NormalClearing
| Congestion = NormalCircuitCongestion
| Unregistered = NoRouteDestination
| NotDefined = 0
| NoSuchDriver = ChanNotImplemented

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,
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,
Busy = UserBusy, Failure = NetworkOutOfOrder, Normal = NormalClearing, Congestion = NormalCircuitCongestion,
Unregistered = NoRouteDestination, NotDefined = 0, NoSuchDriver = ChanNotImplemented
}

## Public Member Functions

| IAX2IeCauseCode (BYTE length, BYTE *srcData)
| IAX2IeCauseCode (BYTE newValue)
virtual BYTE | GetKeyValue () const
void | PrintOn (ostream &str) const
virtual void | StoreDataIn (IAX2IeData &res)

## Detailed Description

An Information Element that contains the hangup cause code

## Member Enumeration Documentation

enum IAX2IeCauseCode::CauseCodes

Enums to specify why this call failed

Enumerator:

  Unallocated |
  NoRouteTransitNet |
  NoRouteDestination |
  ChannelUnacceptable |
  CallAwardedDelivered |
  NormalClearing |
  UserBusy |
  NoUserResponse |
  NoAnswer |
  CallRejected |
  NumberChanged |
  DestinationOutOfOrder |
  InvalidNumberFormat |
  FacilityRejected |
  ResponseToStatusEnquiry |
  NormalUnspecified |
  NormalCircuitCongestion |
  NetworkOutOfOrder |
  NormalTemporaryFailure |
  SwitchCongestion |
  AccessInfoDiscarded |
  RequestedChanUnavail |
  PreEmpted |
  FacilityNotSubscribed |
  OutgoingCallBarred |
  IncomingCallBarred |
  BearerCapabilityNotauth |
  BearerCapabilityNotAvail | No agreement on a common codec to use. Happens at call setup.
  BearerCapabilityNotimpl |
  ChanNotImplemented |
  FacilityNotImplemented |
  InvalidCallReference |
  IncompatibleDestination |
  InvalidMsgUnspecified |
  MandatoryIeMissing |
  MessageTypeNonexist |
  WrongMessage |
  IeNonexist |
  InvalidIeContents |
  WrpngCallState |
  RecoveryOnTimerExpire |
  MandatoryIeLengthError |
  ProtocolError |
  Interworking |
  Busy |
  Failure |
  Normal |
  Congestion |
  Unregistered |
  NotDefined |
  NoSuchDriver |

## Constructor & Destructor Documentation

IAX2IeCauseCode::IAX2IeCauseCode | ( | BYTE | length,
|  | BYTE * | srcData |
| ) |  |  | `[inline]`

Constructor from data read from the network.

Contents are undefined if the network data is bogus/invalid

IAX2IeCauseCode::IAX2IeCauseCode | ( | BYTE | newValue | ) | `[inline]`

Construct with a predefined value (Typically used prior to transmission)

## Member Function Documentation

virtual BYTE IAX2IeCauseCode::GetKeyValue | ( |  | ) | const`[inline, virtual]`

Get the key value for this particular Information Element class

Reimplemented from IAX2Ie.

void IAX2IeCauseCode::PrintOn | ( | ostream & | str | ) | const`[virtual]`

print this class (nicely) to the designated stream

Reimplemented from IAX2IeByte.

virtual void IAX2IeCauseCode::StoreDataIn | ( | IAX2IeData & | res | ) | `[inline, virtual]`

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.

Reimplemented from IAX2Ie.

The documentation for this class was generated from the following file:

- causecode.h