|
|
Q.931 ISDN Layer 3 message
enum Type { Alerting = 0x01, Proceeding = 0x02, Connect = 0x07, ConnectAck = 0x0f, Progress = 0x03, Setup = 0x05, SetupAck = 0x0d, Resume = 0x26, ResumeAck = 0x2e, ResumeRej = 0x22, Suspend = 0x25, SuspendAck = 0x2d, SuspendRej = 0x21, UserInfo = 0x20, Disconnect = 0x45, Release = 0x4d, ReleaseComplete = 0x5a, Restart = 0x46, RestartAck = 0x4e, Segment = 0x60, CongestionCtrl = 0x79, Info = 0x7b, Notify = 0x6e, Status = 0x7d, StatusEnquiry = 0x75, } | Type |
Message type enumeration
ISDNQ931Message (Type type, bool initiator, u_int32_t callRef, u_int8_t callRefLen)
| ISDNQ931Message |
Constructor Constructs a message from given data. Used for incoming messages
Parameters:
type | Message type |
initiator | The call initiator flag: True: this is the initiator |
callRef | The call reference |
callRefLen | The call reference length |
ISDNQ931Message (Type type)
| ISDNQ931Message |
Constructor Constructs a message with dummy call reference
Parameters:
type | Message type |
ISDNQ931Message (Type type, ISDNQ931Call* call)
| ISDNQ931Message |
Constructor Constructs a message for a given call. Used for outgoing messages
Parameters:
type | Message type |
call | The call this message belongs to |
~ISDNQ931Message ()
| ~ISDNQ931Message |
[virtual]
Destructor
inline Type type ()
| type |
[const]
Get the type of this message
Returns: The type of this message as enumeration
inline bool initiator ()
| initiator |
[const]
Check if the sender of this message is the call initiator
Returns: True if the sender of this message is the call initiator
inline u_int32_t callRef ()
| callRef |
[const]
Get the id of the call this message belongs to
Returns: The call reference
inline u_int8_t callRefLen ()
| callRefLen |
[const]
Get the length of the call reference
Returns: The length of the call reference
inline bool dummyCallRef ()
| dummyCallRef |
[const]
Check if this message has a dummy call reference
Returns: True if this message has a dummy call reference
inline bool unknownMandatory ()
| unknownMandatory |
[const]
Check if this message contains unknown mandatory IE(s)
Returns: True if this message contains unknown mandatory IE(s)
inline void setUnknownMandatory ()
| setUnknownMandatory |
Set the unknown mandatory IE(s) flag
inline ObjList* ieList ()
| ieList |
Get the IE list of this message
Returns: A valid pointer to the list of this message's IEs
ISDNQ931IE* getIE (ISDNQ931IE::Type type, ISDNQ931IE* base = 0)
| getIE |
Get a pointer to the first IE with the given type
Parameters:
type | Requested IE's type |
base | Optional search starting element. If 0, search is started from the first IE following base |
Returns: Pointer to the IE or 0 if not found
ISDNQ931IE* removeIE (ISDNQ931IE::Type type, ISDNQ931IE* base = 0)
| removeIE |
Remove an IE from list without destroying it
Parameters:
type | Requested IE's type |
base | Optional search starting element. If 0, search is started from the first IE following base |
Returns: Pointer to the IE or 0 if not found
inline const char* getIEValue (ISDNQ931IE::Type type, const char* param,
const char* defVal = 0)
| getIEValue |
Get the value of a given parameter of a given IE
Parameters:
type | Requested IE's type |
param | Requested IE's parameter. Set to 0 to use IE's name |
defVal | Default value to return if IE is missing or the parameter is missing |
Returns: Pointer to the requested value or 0
inline ISDNQ931IE* appendIEValue (ISDNQ931IE::Type type, const char* param,
const char* value)
| appendIEValue |
Append an IE with a given parameter
Parameters:
type | IE's type |
param | IE's parameter. Set to 0 to use IE's name |
value | IE parameter's value |
Returns: Pointer to the requested value or 0
inline bool append (ISDNQ931IE* ie)
| append |
Append an information element to this message
Parameters:
ie | Information element to add |
Returns: True if the IE was added or replaced, false if it was invalid
bool appendSafe (ISDNQ931IE* ie)
| appendSafe |
Append/insert an information element to this message. Check the IE list consistency The given IE is 'consumed': deleted or appended to the list
Parameters:
ie | Information element to add |
Returns: True if the IE was added or replaced, false if it was invalid
void toString (String& dest, bool extendedDebug, const char* indent = 0)
| toString |
[const]
Put this message into a string for debug purposes
Parameters:
dest | The destination string |
extendedDebug | True to add the content of IEs and dump data. If false, only the IE name is added to the destination string |
indent | The line indent |
Reimplemented from GenObject.
void* getObject (const String& name)
| getObject |
[const virtual]
Get a pointer to a data member or this message
Parameters:
name | Object name |
Returns: The requested pointer or 0 if not exists
Reimplemented from RefObject.
u_int8_t encode (ISDNQ931ParserData& parserData, ObjList& dest)
| encode |
Encode this message If message segmentation is allowed and the message is longer then maximum allowed, split it into Segment messages
Parameters:
parserData | The parser settings |
dest | The destination list. If 1 is returned the list contains a DataBuffer with this message. If more then 1 is returned, the list is filled with data buffers with Segment messages |
Returns: The number of segments on success or 0 on failure.
ISDNQ931Message* parse (ISDNQ931ParserData& parserData,
const DataBlock& buffer, DataBlock* segData)
| parse |
[static]
Parse received data If the message type is Segment, decode only the header and the first IE If valid, fills the given buffer with the rest of the message. If segData is 0, drop the message.
Parameters:
parserData | The parser settings |
buffer | The received data |
segData | Segment message data. If 0, received segmented messages will be dropped |
Returns: Valid ISDNQ931Message pointer on success or 0
inline const char* typeName (int t)
| typeName |
[static]
Get the string associated with a given message type
Parameters:
t | The message type whose string we want to get |
Returns: Pointer to the string associated with the given message type or 0
static const TokenDict s_type[] | s_type[] |
DataBlock m_buffer | m_buffer |
Generated by: paulc on bussard on Sun Oct 20 21:06:06 2013, using kdoc 2.0a54. |