OPAL  Version 3.18.8
Q931 Class Reference

#include <q931.h>

Inherits PObject.

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,
  TransferUnrestrictedDigitalWithTones = 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, PBoolean fromDest)
 
void BuildInformation (int callRef, PBoolean fromDest)
 
void BuildProgress (int callRef, PBoolean fromDest, unsigned description, unsigned codingStandard=0, unsigned location=0)
 
void BuildNotify (int callRef, PBoolean 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, PBoolean fromDest)
 
void BuildStatusEnquiry (int callRef, PBoolean fromDest)
 
void BuildReleaseComplete (int callRef, PBoolean fromDest)
 
PBoolean Decode (const PBYTEArray &data)
 
PBoolean Encode (PBYTEArray &data) const
 
void PrintOn (ostream &strm) const
 
PString GetMessageTypeName () const
 
unsigned GetCallReference () const
 
PBoolean IsFromDestination () const
 
MsgTypes GetMessageType () const
 
PBoolean HasIE (InformationElementCodes ie) const
 
PBYTEArray GetIE (InformationElementCodes ie, PINDEX idx=0) const
 
void SetIE (InformationElementCodes ie, const PBYTEArray &userData, bool append=FALSE)
 
void RemoveIE (InformationElementCodes ie)
 
void SetBearerCapabilities (InformationTransferCapability capability, unsigned transferRate, unsigned codingStandard=0, unsigned userInfoLayer1=5)
 
void SetBearerCapabilities (const PString &caps)
 
PBoolean GetBearerCapabilities (InformationTransferCapability &capability, unsigned &transferRate, unsigned *codingStandard=NULL, unsigned *userInfoLayer1=NULL) const
 
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)
 
PBoolean 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)
 
PBoolean GetCallingPartyNumber (PString &number, unsigned *plan=NULL, unsigned *type=NULL, unsigned *presentation=NULL, unsigned *screening=NULL, unsigned defPresentation=0, unsigned defScreening=0) const
 
PString GetCallingPartyNumber () const
 
void SetCalledPartyNumber (const PString &number, unsigned plan=1, unsigned type=0)
 
PBoolean GetCalledPartyNumber (PString &number, unsigned *plan=NULL, unsigned *type=NULL) const
 
PString GetCalledPartyNumber () const
 
void SetRedirectingNumber (const PString &number, unsigned plan=1, unsigned type=0, int presentation=-1, int screening=-1, int reason=-1)
 
PBoolean 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)
 
PBoolean 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)
 
PBoolean GetChannelIdentification (unsigned *interfaceType=NULL, unsigned *preferredOrExclusive=NULL, int *channelNumber=NULL) const
 

Static Public Member Functions

static unsigned GenerateCallReference ()
 

Protected Member Functions

 PARRAY (InternalInformationElement, PBYTEArray)
 
 PDICTIONARY (InternalInformationElements, POrdinalKey, InternalInformationElement)
 

Protected Attributes

unsigned callReference
 
PBoolean 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

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 
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 
Enumerator
BearerCapabilityIE 
CauseIE 
ChannelIdentificationIE 
FacilityIE 
ProgressIndicatorIE 
CallStateIE 
DisplayIE 
KeypadIE 
SignalIE 
ConnectedNumberIE 
CallingPartyNumberIE 
CalledPartyNumberIE 
RedirectingNumberIE 
UserUserIE 
Enumerator
TransferSpeech 
TransferUnrestrictedDigital 
TransferRestrictedDigital 
Transfer3_1kHzAudio 
TransferUnrestrictedDigitalWithTones 
TransferVideo 
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 
Enumerator
UnknownPlan 
ISDNPlan 
DataPlan 
TelexPlan 
NationalStandardPlan 
PrivatePlan 
ReservedPlan 
Enumerator
ProgressNotEndToEndISDN 
ProgressDestinationNonISDN 
ProgressOriginNotISDN 
ProgressReturnedToISDN 
ProgressServiceChange 
ProgressInbandInformationAvailable 
Enumerator
SignalDialToneOn 
SignalRingBackToneOn 
SignalInterceptToneOn 
SignalNetworkCongestionToneOn 
SignalBusyToneOn 
SignalConfirmToneOn 
SignalAnswerToneOn 
SignalCallWaitingTone 
SignalOffhookWarningTone 
SignalPreemptionToneOn 
SignalTonesOff 
SignalAlertingPattern0 
SignalAlertingPattern1 
SignalAlertingPattern2 
SignalAlertingPattern3 
SignalAlertingPattern4 
SignalAlertingPattern5 
SignalAlertingPattern6 
SignalAlertingPattern7 
SignalAlertingOff 
SignalErrorInIE 
Enumerator
UnknownType 
InternationalType 
NationalType 
NetworkSpecificType 
SubscriberType 
AbbreviatedType 
ReservedType 

Constructor & Destructor Documentation

Q931::Q931 ( )
Q931::Q931 ( const Q931 other)

Member Function Documentation

void Q931::BuildAlerting ( int  callRef)
void Q931::BuildCallProceeding ( int  callRef)
void Q931::BuildConnect ( int  callRef)
void Q931::BuildFacility ( int  callRef,
PBoolean  fromDest 
)
void Q931::BuildInformation ( int  callRef,
PBoolean  fromDest 
)
void Q931::BuildNotify ( int  callRef,
PBoolean  fromDest 
)
void Q931::BuildProgress ( int  callRef,
PBoolean  fromDest,
unsigned  description,
unsigned  codingStandard = 0,
unsigned  location = 0 
)
void Q931::BuildReleaseComplete ( int  callRef,
PBoolean  fromDest 
)
void Q931::BuildSetup ( int  callRef = -1)
void Q931::BuildSetupAcknowledge ( int  callRef)
void Q931::BuildStatus ( int  callRef,
PBoolean  fromDest 
)
void Q931::BuildStatusEnquiry ( int  callRef,
PBoolean  fromDest 
)
PBoolean Q931::Decode ( const PBYTEArray &  data)
PBoolean Q931::Encode ( PBYTEArray &  data) const
static unsigned Q931::GenerateCallReference ( )
static
PBoolean Q931::GetBearerCapabilities ( InformationTransferCapability capability,
unsigned &  transferRate,
unsigned *  codingStandard = NULL,
unsigned *  userInfoLayer1 = NULL 
) const
Parameters
capabilityBearer cability enum
transferRateNumber of 64k B channels
codingStandard0 = ITU-T standardized coding
userInfoLayer15 = Recommendations H.221 and H.242
PBoolean Q931::GetCalledPartyNumber ( PString &  number,
unsigned *  plan = NULL,
unsigned *  type = NULL 
) const
Parameters
numberNumber string
planISDN/Telephony numbering system
typeNumber type
PString Q931::GetCalledPartyNumber ( ) const
PBoolean Q931::GetCallingPartyNumber ( PString &  number,
unsigned *  plan = NULL,
unsigned *  type = NULL,
unsigned *  presentation = NULL,
unsigned *  screening = NULL,
unsigned  defPresentation = 0,
unsigned  defScreening = 0 
) const
Parameters
numberNumber string
planISDN/Telephony numbering system
typeNumber type
presentationPresentation indicator
screeningScreening indicator
defPresentationDefault value if octet3a not present
defScreeningDefault value if octet3a not present
PString Q931::GetCallingPartyNumber ( ) const
unsigned Q931::GetCallReference ( ) const
inline

References callReference.

CallStates Q931::GetCallState ( unsigned *  standard = NULL) const
Parameters
standard0 = ITU-T standardized coding
CauseValues Q931::GetCause ( unsigned *  standard = NULL,
unsigned *  location = NULL 
) const
Parameters
standard0 = ITU-T standardized coding
location0 = User
PBoolean Q931::GetChannelIdentification ( unsigned *  interfaceType = NULL,
unsigned *  preferredOrExclusive = NULL,
int *  channelNumber = NULL 
) const

Get the limitations to ChannelIdentification.

Parameters
interfaceTypeInterface type
preferredOrExclusiveChannel negotiation preference
channelNumberChannel number
PBoolean 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
numberNumber string
planISDN/Telephony numbering system
typeNumber type
presentationPresentation indicator
screeningScreening indicator
reasonReason for redirection
defPresentationDefault value if octet3a not present
defScreeningDefault value if octet3a not present
defReasonDefault value if octet 3b not present
PString Q931::GetDisplayName ( ) const
PBYTEArray Q931::GetIE ( InformationElementCodes  ie,
PINDEX  idx = 0 
) const
PString Q931::GetKeypad ( ) const
MsgTypes Q931::GetMessageType ( ) const
inline

References messageType.

PString Q931::GetMessageTypeName ( ) const
PBoolean Q931::GetProgressIndicator ( unsigned &  description,
unsigned *  codingStandard = NULL,
unsigned *  location = NULL 
) const
PBoolean 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
numberNumber string
planISDN/Telephony numbering system
typeNumber type
presentationPresentation indicator
screeningScreening indicator
reasonReason for redirection
defPresentationDefault value if octet3a not present
defScreeningDefault value if octet3a not present
defReasonDefault value if octet 3b not present
SignalInfo Q931::GetSignalInfo ( ) const
PBoolean Q931::HasIE ( InformationElementCodes  ie) const
PBoolean Q931::IsFromDestination ( ) const
inline

References fromDestination.

Q931& Q931::operator= ( const Q931 other)
Q931::PARRAY ( InternalInformationElement  ,
PBYTEArray   
)
protected
Q931::PDICTIONARY ( InternalInformationElements  ,
POrdinalKey  ,
InternalInformationElement   
)
protected
void Q931::PrintOn ( ostream &  strm) const
void Q931::RemoveIE ( InformationElementCodes  ie)
void Q931::SetBearerCapabilities ( InformationTransferCapability  capability,
unsigned  transferRate,
unsigned  codingStandard = 0,
unsigned  userInfoLayer1 = 5 
)
Parameters
capabilityBearer cability enum
transferRateNumber of 64k B channels
codingStandard0 = ITU-T standardized coding
userInfoLayer15 = Recommendations H.221 and H.242
void Q931::SetBearerCapabilities ( const PString &  caps)
Parameters
capsString of comma separated integers or hex for all cap bytes
void Q931::SetCalledPartyNumber ( const PString &  number,
unsigned  plan = 1,
unsigned  type = 0 
)
Parameters
numberNumber string
plan1 = ISDN/Telephony numbering system
type0 = Unknown number type
void Q931::SetCallingPartyNumber ( const PString &  number,
unsigned  plan = 1,
unsigned  type = 0,
int  presentation = -1,
int  screening = -1 
)
Parameters
numberNumber string
plan1 = ISDN/Telephony numbering system, see Q.931 Table 4-11 for more
type0 = Unknown number type
presentation0 = presentation allowed, 1 = presentation restricted, -1 = no octet3a
screening0 = user provided, not screened, -1 = no octet3a
void Q931::SetCallState ( CallStates  value,
unsigned  standard = 0 
)
Parameters
valueCall state code
standard0 = ITU-T standardized coding
void Q931::SetCause ( CauseValues  value,
unsigned  standard = 0,
unsigned  location = 0 
)
Parameters
valueCause code
standard0 = ITU-T standardized coding
location0 = User
void Q931::SetChannelIdentification ( unsigned  interfaceType = 0,
unsigned  preferredOrExclusive = 0,
int  channelNumber = 1 
)

Set the limitations to ChannelIdentification.

  • the interface identifier cannot be specified
  • channel in PRI can only be indicated by number and cannot be indicated by map
  • one and only one channel can be indicated
  • the coding standard is always ITU Q.931
Parameters
interfaceType0 = basic, 1 = other (e.g. primary)
preferredOrExclusive0 = preferred, 1 = exclusive
channelNumber-1 = any, 0 = none/D, 1 = channel 1/B1, etc. 1-15,17-31
void Q931::SetConnectedNumber ( const PString &  number,
unsigned  plan = 1,
unsigned  type = 0,
int  presentation = -1,
int  screening = -1,
int  reason = -1 
)
Parameters
numberNumber string
plan1 = ISDN/Telephony numbering system
type0 = Unknown number type
presentation0 = presentation allowed, -1 = no octet3a
screening0 = user provided, not screened
reason0 = Unknown reason , -1 = no octet 3b
void Q931::SetDisplayName ( const PString &  name)
void Q931::SetIE ( InformationElementCodes  ie,
const PBYTEArray &  userData,
bool  append = FALSE 
)
void Q931::SetKeypad ( const PString &  digits)
void Q931::SetProgressIndicator ( unsigned  description,
unsigned  codingStandard = 0,
unsigned  location = 0 
)
void Q931::SetRedirectingNumber ( const PString &  number,
unsigned  plan = 1,
unsigned  type = 0,
int  presentation = -1,
int  screening = -1,
int  reason = -1 
)
Parameters
numberNumber string
plan1 = ISDN/Telephony numbering system
type0 = Unknown number type
presentation0 = presentation allowed, -1 = no octet3a
screening0 = user provided, not screened
reason0 = Unknown reason , -1 = no octet 3b
void Q931::SetSignalInfo ( SignalInfo  value)

Friends And Related Function Documentation

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

Field Documentation

unsigned Q931::callReference
protected

Referenced by GetCallReference().

PBoolean Q931::fromDestination
protected

Referenced by IsFromDestination().

InternalInformationElements Q931::informationElements
protected
MsgTypes Q931::messageType
protected

Referenced by GetMessageType().

unsigned Q931::protocolDiscriminator
protected

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