Q931 Class Reference

#include <q931.h>

List of all members.

Public Types

enum  MsgTypes {
  NationalEscapeMsg = 0x00, AlertingMsg = 0x01, CallProceedingMsg = 0x02, ConnectMsg = 0x07,
  ConnectAckMsg = 0x0f, ProgressMsg = 0x03, SetupMsg = 0x05, SetupAckMsg = 0x0d,
  ResumeMsg = 0x26, ResumeAckMsg = 0x2e, ResumeRejectMsg = 0x22, SuspendMsg = 0x25,
  SuspendAckMsg = 0x2d, SuspendRejectMsg = 0x21, UserInformationMsg = 0x20, DisconnectMsg = 0x45,
  ReleaseMsg = 0x4d, ReleaseCompleteMsg = 0x5a, RestartMsg = 0x46, RestartAckMsg = 0x4e,
  SegmentMsg = 0x60, CongestionCtrlMsg = 0x79, InformationMsg = 0x7b, NotifyMsg = 0x6e,
  StatusMsg = 0x7d, StatusEnquiryMsg = 0x75, FacilityMsg = 0x62
}
enum  InformationElementCodes {
  BearerCapabilityIE = 0x04, CauseIE = 0x08, ChannelIdentificationIE = 0x18, FacilityIE = 0x1c,
  ProgressIndicatorIE = 0x1e, CallStateIE = 0x14, DisplayIE = 0x28, KeypadIE = 0x2c,
  SignalIE = 0x34, ConnectedNumberIE = 0x4c, CallingPartyNumberIE = 0x6c, CalledPartyNumberIE = 0x70,
  RedirectingNumberIE = 0x74, UserUserIE = 0x7e
}
enum  InformationTransferCapability {
  TransferSpeech, TransferUnrestrictedDigital = 8, TransferRestrictedDigital = 9, Transfer3_1kHzAudio = 16,
  TrasnferUnrestrictedDigitalWithTones = 17, TransferVideo = 24
}
enum  CauseValues {
  UnknownCauseIE = 0, UnallocatedNumber = 1, NoRouteToNetwork = 2, NoRouteToDestination = 3,
  SendSpecialTone = 4, MisdialledTrunkPrefix = 5, ChannelUnacceptable = 6, NormalCallClearing = 16,
  UserBusy = 17, NoResponse = 18, NoAnswer = 19, SubscriberAbsent = 20,
  CallRejected = 21, NumberChanged = 22, Redirection = 23, ExchangeRoutingError = 25,
  NonSelectedUserClearing = 26, DestinationOutOfOrder = 27, InvalidNumberFormat = 28, FacilityRejected = 29,
  StatusEnquiryResponse = 30, NormalUnspecified = 31, NoCircuitChannelAvailable = 34, NetworkOutOfOrder = 38,
  TemporaryFailure = 41, Congestion = 42, RequestedCircuitNotAvailable = 44, ResourceUnavailable = 47,
  ServiceOptionNotAvailable = 63, InvalidCallReference = 81, ClearedRequestedCallIdentity = 86, IncompatibleDestination = 88,
  IENonExistantOrNotImplemented = 99, TimerExpiry = 102, ProtocolErrorUnspecified = 111, InterworkingUnspecified = 127,
  ErrorInCauseIE = 0x100
}
enum  CallStates {
  CallState_Null = 0, CallState_CallInitiated = 1, CallState_OverlapSending = 2, CallState_OutgoingCallProceeding = 3,
  CallState_CallDelivered = 4, CallState_CallPresent = 6, CallState_CallReceived = 7, CallState_ConnectRequest = 8,
  CallState_IncomingCallProceeding = 9, CallState_Active = 10, CallState_DisconnectRequest = 11, CallState_DisconnectIndication = 12,
  CallState_SuspendRequest = 15, CallState_ResumeRequest = 17, CallState_ReleaseRequest = 19, CallState_OverlapReceiving = 25,
  CallState_ErrorInIE = 0x100
}
enum  SignalInfo {
  SignalDialToneOn, SignalRingBackToneOn, SignalInterceptToneOn, SignalNetworkCongestionToneOn,
  SignalBusyToneOn, SignalConfirmToneOn, SignalAnswerToneOn, SignalCallWaitingTone,
  SignalOffhookWarningTone, SignalPreemptionToneOn, SignalTonesOff = 0x3f, SignalAlertingPattern0 = 0x40,
  SignalAlertingPattern1, SignalAlertingPattern2, SignalAlertingPattern3, SignalAlertingPattern4,
  SignalAlertingPattern5, SignalAlertingPattern6, SignalAlertingPattern7, SignalAlertingOff = 0x4f,
  SignalErrorInIE = 0x100
}
enum  ProgressIndication {
  ProgressNotEndToEndISDN = 1, ProgressDestinationNonISDN = 2, ProgressOriginNotISDN = 3, ProgressReturnedToISDN = 4,
  ProgressServiceChange = 5, ProgressInbandInformationAvailable = 8
}
enum  NumberingPlanCodes {
  UnknownPlan = 0x00, ISDNPlan = 0x01, DataPlan = 0x03, TelexPlan = 0x04,
  NationalStandardPlan = 0x08, PrivatePlan = 0x09, ReservedPlan = 0x0f
}
enum  TypeOfNumberCodes {
  UnknownType = 0x00, InternationalType = 0x01, NationalType = 0x02, NetworkSpecificType = 0x03,
  SubscriberType = 0x04, AbbreviatedType = 0x06, ReservedType = 0x07
}

Public Member Functions

 Q931 ()
 Q931 (const Q931 &other)
Q931operator= (const Q931 &other)
void BuildFacility (int callRef, BOOL fromDest)
void BuildInformation (int callRef, BOOL fromDest)
void BuildProgress (int callRef, BOOL fromDest, unsigned description, unsigned codingStandard=0, unsigned location=0)
void BuildNotify (int callRef, BOOL fromDest)
void BuildCallProceeding (int callRef)
void BuildSetupAcknowledge (int callRef)
void BuildAlerting (int callRef)
void BuildSetup (int callRef=-1)
void BuildConnect (int callRef)
void BuildStatus (int callRef, BOOL fromDest)
void BuildStatusEnquiry (int callRef, BOOL fromDest)
void BuildReleaseComplete (int callRef, BOOL fromDest)
BOOL Decode (const PBYTEArray &data)
BOOL Encode (PBYTEArray &data) const
void PrintOn (ostream &strm) const
PString GetMessageTypeName () const
unsigned GetCallReference () const
BOOL IsFromDestination () const
MsgTypes GetMessageType () const
BOOL HasIE (InformationElementCodes ie) const
PBYTEArray GetIE (InformationElementCodes ie) const
void SetIE (InformationElementCodes ie, const PBYTEArray &userData)
void RemoveIE (InformationElementCodes ie)
void SetBearerCapabilities (InformationTransferCapability capability, unsigned transferRate, unsigned codingStandard=0, unsigned userInfoLayer1=5)
BOOL GetBearerCapabilities (InformationTransferCapability &capability, unsigned &transferRate, unsigned *codingStandard=NULL, unsigned *userInfoLayer1=NULL)
void SetCause (CauseValues value, unsigned standard=0, unsigned location=0)
CauseValues GetCause (unsigned *standard=NULL, unsigned *location=NULL) const
void SetCallState (CallStates value, unsigned standard=0)
CallStates GetCallState (unsigned *standard=NULL) const
void SetSignalInfo (SignalInfo value)
SignalInfo GetSignalInfo () const
void SetKeypad (const PString &digits)
PString GetKeypad () const
void SetProgressIndicator (unsigned description, unsigned codingStandard=0, unsigned location=0)
BOOL GetProgressIndicator (unsigned &description, unsigned *codingStandard=NULL, unsigned *location=NULL) const
void SetDisplayName (const PString &name)
PString GetDisplayName () const
void SetCallingPartyNumber (const PString &number, unsigned plan=1, unsigned type=0, int presentation=-1, int screening=-1)
BOOL GetCallingPartyNumber (PString &number, unsigned *plan=NULL, unsigned *type=NULL, unsigned *presentation=NULL, unsigned *screening=NULL, unsigned defPresentation=0, unsigned defScreening=0) const
void SetCalledPartyNumber (const PString &number, unsigned plan=1, unsigned type=0)
BOOL GetCalledPartyNumber (PString &number, unsigned *plan=NULL, unsigned *type=NULL) const
void SetRedirectingNumber (const PString &number, unsigned plan=1, unsigned type=0, int presentation=-1, int screening=-1, int reason=-1)
BOOL GetRedirectingNumber (PString &number, unsigned *plan=NULL, unsigned *type=NULL, unsigned *presentation=NULL, unsigned *screening=NULL, unsigned *reason=NULL, unsigned defPresentation=0, unsigned defScreening=0, unsigned defReason=0) const
void SetConnectedNumber (const PString &number, unsigned plan=1, unsigned type=0, int presentation=-1, int screening=-1, int reason=-1)
BOOL GetConnectedNumber (PString &number, unsigned *plan=NULL, unsigned *type=NULL, unsigned *presentation=NULL, unsigned *screening=NULL, unsigned *reason=NULL, unsigned defPresentation=0, unsigned defScreening=0, unsigned defReason=0) const
void SetChannelIdentification (unsigned interfaceType=0, unsigned preferredOrExclusive=0, int channelNumber=1)
BOOL GetChannelIdentification (unsigned *interfaceType=NULL, unsigned *preferredOrExclusive=NULL, int *channelNumber=NULL) const

Static Public Member Functions

static unsigned GenerateCallReference ()

Protected Member Functions

 PDICTIONARY (InternalInformationElements, POrdinalKey, PBYTEArray)

Protected Attributes

unsigned callReference
BOOL fromDestination
unsigned protocolDiscriminator
MsgTypes messageType
InternalInformationElements informationElements

Friends

ostream & operator<< (ostream &strm, InformationElementCodes ie)
ostream & operator<< (ostream &strm, CauseValues cause)


Detailed Description

This class embodies a Q.931 Protocol Data Unit.


Member Enumeration Documentation

enum Q931::MsgTypes

Enumerator:
NationalEscapeMsg 
AlertingMsg 
CallProceedingMsg 
ConnectMsg 
ConnectAckMsg 
ProgressMsg 
SetupMsg 
SetupAckMsg 
ResumeMsg 
ResumeAckMsg 
ResumeRejectMsg 
SuspendMsg 
SuspendAckMsg 
SuspendRejectMsg 
UserInformationMsg 
DisconnectMsg 
ReleaseMsg 
ReleaseCompleteMsg 
RestartMsg 
RestartAckMsg 
SegmentMsg 
CongestionCtrlMsg 
InformationMsg 
NotifyMsg 
StatusMsg 
StatusEnquiryMsg 
FacilityMsg 

enum Q931::InformationElementCodes

Enumerator:
BearerCapabilityIE 
CauseIE 
ChannelIdentificationIE 
FacilityIE 
ProgressIndicatorIE 
CallStateIE 
DisplayIE 
KeypadIE 
SignalIE 
ConnectedNumberIE 
CallingPartyNumberIE 
CalledPartyNumberIE 
RedirectingNumberIE 
UserUserIE 

enum Q931::InformationTransferCapability

Enumerator:
TransferSpeech 
TransferUnrestrictedDigital 
TransferRestrictedDigital 
Transfer3_1kHzAudio 
TrasnferUnrestrictedDigitalWithTones 
TransferVideo 

enum Q931::CauseValues

Enumerator:
UnknownCauseIE 
UnallocatedNumber 
NoRouteToNetwork 
NoRouteToDestination 
SendSpecialTone 
MisdialledTrunkPrefix 
ChannelUnacceptable 
NormalCallClearing 
UserBusy 
NoResponse 
NoAnswer 
SubscriberAbsent 
CallRejected 
NumberChanged 
Redirection 
ExchangeRoutingError 
NonSelectedUserClearing 
DestinationOutOfOrder 
InvalidNumberFormat 
FacilityRejected 
StatusEnquiryResponse 
NormalUnspecified 
NoCircuitChannelAvailable 
NetworkOutOfOrder 
TemporaryFailure 
Congestion 
RequestedCircuitNotAvailable 
ResourceUnavailable 
ServiceOptionNotAvailable 
InvalidCallReference 
ClearedRequestedCallIdentity 
IncompatibleDestination 
IENonExistantOrNotImplemented 
TimerExpiry 
ProtocolErrorUnspecified 
InterworkingUnspecified 
ErrorInCauseIE 

enum Q931::CallStates

Enumerator:
CallState_Null 
CallState_CallInitiated 
CallState_OverlapSending 
CallState_OutgoingCallProceeding 
CallState_CallDelivered 
CallState_CallPresent 
CallState_CallReceived 
CallState_ConnectRequest 
CallState_IncomingCallProceeding 
CallState_Active 
CallState_DisconnectRequest 
CallState_DisconnectIndication 
CallState_SuspendRequest 
CallState_ResumeRequest 
CallState_ReleaseRequest 
CallState_OverlapReceiving 
CallState_ErrorInIE 

enum Q931::SignalInfo

Enumerator:
SignalDialToneOn 
SignalRingBackToneOn 
SignalInterceptToneOn 
SignalNetworkCongestionToneOn 
SignalBusyToneOn 
SignalConfirmToneOn 
SignalAnswerToneOn 
SignalCallWaitingTone 
SignalOffhookWarningTone 
SignalPreemptionToneOn 
SignalTonesOff 
SignalAlertingPattern0 
SignalAlertingPattern1 
SignalAlertingPattern2 
SignalAlertingPattern3 
SignalAlertingPattern4 
SignalAlertingPattern5 
SignalAlertingPattern6 
SignalAlertingPattern7 
SignalAlertingOff 
SignalErrorInIE 

enum Q931::ProgressIndication

Enumerator:
ProgressNotEndToEndISDN 
ProgressDestinationNonISDN 
ProgressOriginNotISDN 
ProgressReturnedToISDN 
ProgressServiceChange 
ProgressInbandInformationAvailable 

enum Q931::NumberingPlanCodes

Enumerator:
UnknownPlan 
ISDNPlan 
DataPlan 
TelexPlan 
NationalStandardPlan 
PrivatePlan 
ReservedPlan 

enum Q931::TypeOfNumberCodes

Enumerator:
UnknownType 
InternationalType 
NationalType 
NetworkSpecificType 
SubscriberType 
AbbreviatedType 
ReservedType 


Constructor & Destructor Documentation

Q931::Q931 (  ) 

Q931::Q931 ( const Q931 other  ) 


Member Function Documentation

Q931& Q931::operator= ( const Q931 other  ) 

void Q931::BuildFacility ( int  callRef,
BOOL  fromDest 
)

void Q931::BuildInformation ( int  callRef,
BOOL  fromDest 
)

void Q931::BuildProgress ( int  callRef,
BOOL  fromDest,
unsigned  description,
unsigned  codingStandard = 0,
unsigned  location = 0 
)

void Q931::BuildNotify ( int  callRef,
BOOL  fromDest 
)

void Q931::BuildCallProceeding ( int  callRef  ) 

void Q931::BuildSetupAcknowledge ( int  callRef  ) 

void Q931::BuildAlerting ( int  callRef  ) 

void Q931::BuildSetup ( int  callRef = -1  ) 

void Q931::BuildConnect ( int  callRef  ) 

void Q931::BuildStatus ( int  callRef,
BOOL  fromDest 
)

void Q931::BuildStatusEnquiry ( int  callRef,
BOOL  fromDest 
)

void Q931::BuildReleaseComplete ( int  callRef,
BOOL  fromDest 
)

BOOL Q931::Decode ( const PBYTEArray &  data  ) 

BOOL Q931::Encode ( PBYTEArray &  data  )  const

void Q931::PrintOn ( ostream &  strm  )  const

PString Q931::GetMessageTypeName (  )  const

static unsigned Q931::GenerateCallReference (  )  [static]

unsigned Q931::GetCallReference (  )  const [inline]

BOOL Q931::IsFromDestination (  )  const [inline]

MsgTypes Q931::GetMessageType (  )  const [inline]

BOOL Q931::HasIE ( InformationElementCodes  ie  )  const

PBYTEArray Q931::GetIE ( InformationElementCodes  ie  )  const

void Q931::SetIE ( InformationElementCodes  ie,
const PBYTEArray &  userData 
)

void Q931::RemoveIE ( InformationElementCodes  ie  ) 

void Q931::SetBearerCapabilities ( InformationTransferCapability  capability,
unsigned  transferRate,
unsigned  codingStandard = 0,
unsigned  userInfoLayer1 = 5 
)

Parameters:
transferRate  Number of 64k B channels
codingStandard  0 = ITU-T standardized coding
userInfoLayer1  5 = Recommendations H.221 and H.242

BOOL Q931::GetBearerCapabilities ( InformationTransferCapability capability,
unsigned &  transferRate,
unsigned *  codingStandard = NULL,
unsigned *  userInfoLayer1 = NULL 
)

Parameters:
transferRate  Number of 64k B channels

void Q931::SetCause ( CauseValues  value,
unsigned  standard = 0,
unsigned  location = 0 
)

Parameters:
standard  0 = ITU-T standardized coding
location  0 = User

CauseValues Q931::GetCause ( unsigned *  standard = NULL,
unsigned *  location = NULL 
) const

Parameters:
standard  0 = ITU-T standardized coding
location  0 = User

void Q931::SetCallState ( CallStates  value,
unsigned  standard = 0 
)

Parameters:
standard  0 = ITU-T standardized coding

CallStates Q931::GetCallState ( unsigned *  standard = NULL  )  const

Parameters:
standard  0 = ITU-T standardized coding

void Q931::SetSignalInfo ( SignalInfo  value  ) 

SignalInfo Q931::GetSignalInfo (  )  const

void Q931::SetKeypad ( const PString &  digits  ) 

PString Q931::GetKeypad (  )  const

void Q931::SetProgressIndicator ( unsigned  description,
unsigned  codingStandard = 0,
unsigned  location = 0 
)

BOOL Q931::GetProgressIndicator ( unsigned &  description,
unsigned *  codingStandard = NULL,
unsigned *  location = NULL 
) const

void Q931::SetDisplayName ( const PString &  name  ) 

PString Q931::GetDisplayName (  )  const

void Q931::SetCallingPartyNumber ( const PString &  number,
unsigned  plan = 1,
unsigned  type = 0,
int  presentation = -1,
int  screening = -1 
)

Parameters:
number  Number string
plan  1 = ISDN/Telephony numbering system
type  0 = Unknown number type
presentation  0 = presentation allowed, -1 = no octet3a
screening  0 = user provided, not screened

BOOL Q931::GetCallingPartyNumber ( PString &  number,
unsigned *  plan = NULL,
unsigned *  type = NULL,
unsigned *  presentation = NULL,
unsigned *  screening = NULL,
unsigned  defPresentation = 0,
unsigned  defScreening = 0 
) const

Parameters:
number  Number string
plan  ISDN/Telephony numbering system
type  Number type
presentation  Presentation indicator
screening  Screening indicator
defPresentation  Default value if octet3a not present
defScreening  Default value if octet3a not present

void Q931::SetCalledPartyNumber ( const PString &  number,
unsigned  plan = 1,
unsigned  type = 0 
)

Parameters:
number  Number string
plan  1 = ISDN/Telephony numbering system
type  0 = Unknown number type

BOOL Q931::GetCalledPartyNumber ( PString &  number,
unsigned *  plan = NULL,
unsigned *  type = NULL 
) const

Parameters:
number  Number string
plan  ISDN/Telephony numbering system
type  Number type

void Q931::SetRedirectingNumber ( const PString &  number,
unsigned  plan = 1,
unsigned  type = 0,
int  presentation = -1,
int  screening = -1,
int  reason = -1 
)

Parameters:
number  Number string
plan  1 = ISDN/Telephony numbering system
type  0 = Unknown number type
presentation  0 = presentation allowed, -1 = no octet3a
screening  0 = user provided, not screened
reason  0 = Unknown reason , -1 = no octet 3b

BOOL Q931::GetRedirectingNumber ( PString &  number,
unsigned *  plan = NULL,
unsigned *  type = NULL,
unsigned *  presentation = NULL,
unsigned *  screening = NULL,
unsigned *  reason = NULL,
unsigned  defPresentation = 0,
unsigned  defScreening = 0,
unsigned  defReason = 0 
) const

Parameters:
number  Number string
plan  ISDN/Telephony numbering system
type  Number type
presentation  Presentation indicator
screening  Screening indicator
reason  Reason for redirection
defPresentation  Default value if octet3a not present
defScreening  Default value if octet3a not present
defReason  Default value if octet 3b not present

void Q931::SetConnectedNumber ( const PString &  number,
unsigned  plan = 1,
unsigned  type = 0,
int  presentation = -1,
int  screening = -1,
int  reason = -1 
)

Parameters:
number  Number string
plan  1 = ISDN/Telephony numbering system
type  0 = Unknown number type
presentation  0 = presentation allowed, -1 = no octet3a
screening  0 = user provided, not screened
reason  0 = Unknown reason , -1 = no octet 3b

BOOL Q931::GetConnectedNumber ( PString &  number,
unsigned *  plan = NULL,
unsigned *  type = NULL,
unsigned *  presentation = NULL,
unsigned *  screening = NULL,
unsigned *  reason = NULL,
unsigned  defPresentation = 0,
unsigned  defScreening = 0,
unsigned  defReason = 0 
) const

Parameters:
number  Number string
plan  ISDN/Telephony numbering system
type  Number type
presentation  Presentation indicator
screening  Screening indicator
reason  Reason for redirection
defPresentation  Default value if octet3a not present
defScreening  Default value if octet3a not present
defReason  Default value if octet 3b not present

void Q931::SetChannelIdentification ( unsigned  interfaceType = 0,
unsigned  preferredOrExclusive = 0,
int  channelNumber = 1 
)

Set the limitations to ChannelIdentification.

Parameters:
interfaceType  0 = basic, 1 = other (e.g. primary)
preferredOrExclusive  0 = preferred, 1 = exclusive
channelNumber  -1 = any, 0 = none/D, 1 = channel 1/B1, etc. 1-15,17-31

BOOL Q931::GetChannelIdentification ( unsigned *  interfaceType = NULL,
unsigned *  preferredOrExclusive = NULL,
int *  channelNumber = NULL 
) const

Get the limitations to ChannelIdentification.

Parameters:
interfaceType  Interface type
preferredOrExclusive  Channel negotiation preference
channelNumber  Channel number

Q931::PDICTIONARY ( InternalInformationElements  ,
POrdinalKey  ,
PBYTEArray   
) [protected]


Friends And Related Function Documentation

ostream& operator<< ( ostream &  strm,
InformationElementCodes  ie 
) [friend]

ostream& operator<< ( ostream &  strm,
CauseValues  cause 
) [friend]


Member Data Documentation

unsigned Q931::callReference [protected]

BOOL Q931::fromDestination [protected]

unsigned Q931::protocolDiscriminator [protected]

MsgTypes Q931::messageType [protected]

InternalInformationElements Q931::informationElements [protected]


The documentation for this class was generated from the following file:
Generated on Fri Mar 7 06:34:07 2008 for OPAL by  doxygen 1.5.1