h450pdu.h
Go to the documentation of this file.
/*
* h450pdu.h
*
* H.450 Helper functions
*
* Open H323 Library
*
* Copyright (c) 2001 Norwood Systems Pty. 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 H323 Library.
*
* The Initial Developer of the Original Code is Equivalence Pty. Ltd.
*
* Contributor(s): ______________________________________.
*
* $Revision: 24178 $
* $Author: rjongbloed $
* $Date: 2010-04-05 19:10:56 -0500 (Mon, 05 Apr 2010) $
*/
#ifndef OPAL_H323_H450PDU_H
#define OPAL_H323_H450PDU_H
#ifdef P_USE_PRAGMA
#pragma interface
#endif
#include <opal/buildopts.h>
#if OPAL_H450
#include <asn/x880.h>
#include <asn/h4501.h>
#include <asn/h4502.h>
#include <asn/h4507.h>
class H323EndPoint;
class H323Connection;
class H323TransportAddress;
class H323SignalPDU;
class H4501_EndpointAddress;
class H4501_InterpretationApdu;
class H450ServiceAPDU : public X880_ROS
{
public:
X880_Invoke& BuildInvoke(int invokeId, int operation);
X880_ReturnResult& BuildReturnResult(int invokeId);
X880_ReturnError& BuildReturnError(int invokeId, int error);
X880_Reject& BuildReject(int invokeId);
void BuildCallTransferInitiate(int invokeId,
const PString & callIdentity,
const PString & alias,
const H323TransportAddress & address);
void BuildCallTransferIdentify(int invokeId);
void BuildCallTransferAbandon(int invokeId);
void BuildCallTransferSetup(int invokeId,
const PString & callIdentity);
void BuildCallWaiting(int invokeId, int numCallsWaiting);
void BuildMessageWaiting(int invokeId,
H4507_H323_MWI_Operations &mwiOp,
PASN_Sequence &argument);
void BuildInterrogateResult(int invokeId,
H4507_MWIInterrogateRes &interrogateResult);
void BuildCallIntrusionForcedRelease(int invokeId, int CICL);
X880_ReturnResult& BuildCallIntrusionForcedReleaseResult(int invokeId);
void BuildCallIntrusionForcedReleaseError();
void BuildCallIntrusionGetCIPL(int invokeId);
void BuildCallIntrusionImpending(int invokeId);
void BuildCallIntrusionForceRelesed(int invokeId);
void AttachSupplementaryServiceAPDU(H323SignalPDU & pdu);
PBoolean WriteFacilityPDU(
H323Connection & connection
);
static void ParseEndpointAddress(H4501_EndpointAddress & address,
PString & party);
};
class H450xDispatcher;
class H450xHandler : public PObject
{
PCLASSINFO(H450xHandler, PObject);
public:
H450xHandler(
H323Connection & connection,
H450xDispatcher & dispatcher
);
virtual void AttachToSetup(
H323SignalPDU & pdu
);
virtual void AttachToAlerting(
H323SignalPDU & pdu
);
virtual void AttachToConnect(
H323SignalPDU & pdu
);
virtual void AttachToReleaseComplete(
H323SignalPDU & pdu
);
virtual PBoolean OnReceivedInvoke(
int opcode,
int invokeId,
int linkedId,
PASN_OctetString * argument
) = 0;
virtual PBoolean OnReceivedReturnResult(
X880_ReturnResult & returnResult
);
virtual PBoolean OnReceivedReturnError(
int errorCode,
X880_ReturnError & returnError
);
virtual PBoolean OnReceivedReject(
int problemType,
int problemNumber
);
void SendReturnError(int returnError);
void SendGeneralReject(int problem);
void SendInvokeReject(int problem);
void SendReturnResultReject(int problem);
void SendReturnErrorReject(int problem);
PBoolean DecodeArguments(
PASN_OctetString * argString,
PASN_Object & argObject,
int absentErrorCode
);
unsigned GetInvokeId() const { return currentInvokeId; }
protected:
H323EndPoint & endpoint;
H323Connection & connection;
H450xDispatcher & dispatcher;
unsigned currentInvokeId;
};
PARRAY(H450xHandlerArray, H450xHandler);
PDICTIONARY(H450xHandlerDict, POrdinalKey, H450xHandler);
class H450xDispatcher : public PObject
{
PCLASSINFO(H450xDispatcher, PObject);
public:
H450xDispatcher(
H323Connection & connection
);
void AddOpCode(
unsigned opcode,
H450xHandler * handler
);
virtual void AttachToSetup(
H323SignalPDU & pdu
);
virtual void AttachToAlerting(
H323SignalPDU & pdu
);
virtual void AttachToConnect(
H323SignalPDU & pdu
);
virtual void AttachToReleaseComplete(
H323SignalPDU & pdu
);
virtual PBoolean HandlePDU(
const H323SignalPDU & pdu
);
virtual PBoolean OnReceivedInvoke(X880_Invoke& invoke, H4501_InterpretationApdu& interpretation);
virtual PBoolean OnReceivedReturnResult(X880_ReturnResult& returnResult);
virtual PBoolean OnReceivedReturnError(X880_ReturnError& returnError);
virtual PBoolean OnReceivedReject(X880_Reject& reject);
void SendReturnError(int invokeId, int returnError);
void SendGeneralReject(int invokeId, int problem);
void SendInvokeReject(int invokeId, int problem);
void SendReturnResultReject(int invokeId, int problem);
void SendReturnErrorReject(int invokeId, int problem);
unsigned GetNextInvokeId() const { return ++nextInvokeId; }
protected:
H323Connection & connection;
H450xHandlerArray handlers;
H450xHandlerDict opcodeHandler;
mutable unsigned nextInvokeId; // Next available invoke ID for H450 operations
};
class H4502Handler : public H450xHandler
{
PCLASSINFO(H4502Handler, H450xHandler);
public:
H4502Handler(
H323Connection & connection,
H450xDispatcher & dispatcher
);
virtual void AttachToSetup(
H323SignalPDU & pdu
);
virtual void AttachToAlerting(
H323SignalPDU & pdu
);
virtual void AttachToConnect(
H323SignalPDU & pdu
);
virtual void AttachToReleaseComplete(
H323SignalPDU & pdu
);
virtual PBoolean OnReceivedInvoke(
int opcode,
int invokeId,
int linkedId,
PASN_OctetString * argument
);
virtual void OnReceivedCallTransferIdentify(
int linkedId
);
virtual void OnReceivedCallTransferAbandon(
int linkedId
);
virtual void OnReceivedCallTransferInitiate(
int linkedId,
PASN_OctetString * argument
);
virtual void OnReceivedCallTransferSetup(
int linkedId,
PASN_OctetString * argument
);
virtual void OnReceivedCallTransferUpdate(
int linkedId,
PASN_OctetString * argument
);
virtual void OnReceivedSubaddressTransfer(
int linkedId,
PASN_OctetString * argument
);
virtual void OnReceivedCallTransferComplete(
int linkedId,
PASN_OctetString * argument
);
virtual void OnReceivedCallTransferActive(
int linkedId,
PASN_OctetString * argument
);
virtual PBoolean OnReceivedReturnResult(
X880_ReturnResult & returnResult
);
void OnReceivedInitiateReturnResult();
void OnReceivedSetupReturnResult();
void OnReceivedIdentifyReturnResult(X880_ReturnResult &returnResult);
virtual PBoolean OnReceivedReturnError(
int errorCode,
X880_ReturnError & returnError
);
void OnReceivedInitiateReturnError(
const bool timerExpiry = false
);
void OnReceivedSetupReturnError(
int errorCode,
const bool timerExpiry = false
);
void OnReceivedIdentifyReturnError(
const bool timerExpiry = false
);
bool TransferCall(
const PString & remoteParty,
const PString & callIdentity
);
void ConsultationTransfer(
const PString & primaryCallToken
);
void HandleConsultationTransfer(
const PString & callIdentity,
H323Connection& incoming
);
void AwaitSetupResponse(
const PString & token,
const PString & identity
);
enum State {
e_ctIdle,
e_ctAwaitIdentifyResponse,
e_ctAwaitInitiateResponse,
e_ctAwaitSetupResponse,
e_ctAwaitSetup,
e_ctAwaitConnect
};
State GetState() const { return ctState; }
virtual void onReceivedAdmissionReject(const int returnError);
void HandleCallTransferFailure(
const int returnError
);
void StartctTimer(const PTimeInterval value) { ctTimer = value; }
void StopctTimer();
PBoolean IsctTimerRunning() { return ctTimer.IsRunning(); }
PDECLARE_NOTIFIER(PTimer, H4502Handler, OnCallTransferTimeOut);
const H323Connection& getAssociatedConnection() const { return connection; }
void SetAssociatedCallToken(const PString& token) { CallToken = token; }
const PString& getTransferringCallToken() const { return transferringCallToken; }
void SetConsultationTransferSuccess() { consultationTransfer = true; }
PBoolean isConsultationTransferSuccess() { return consultationTransfer; }
protected:
PString transferringCallToken; // Stores the call token for the transferring connection (if there is one)
PString transferringCallIdentity; // Stores the call identity for the transferring call (if there is one)
State ctState; // Call Transfer state of the conneciton
PBoolean ctResponseSent; // Has a callTransferSetupReturnResult been sent?
PTimer ctTimer; // Call Transfer Timer - Handles all four timers CT-T1,
PString CallToken; // Call Token of the associated connection
// (used during a consultation transfer).
PBoolean consultationTransfer; // Flag used to indicate whether an incoming call is involved in
// a transfer through consultation.
};
class H4504Handler : public H450xHandler
{
PCLASSINFO(H4504Handler, H450xHandler);
public:
H4504Handler(
H323Connection & connection,
H450xDispatcher & dispatcher
);
virtual PBoolean OnReceivedInvoke(
int opcode,
int invokeId,
int linkedId,
PASN_OctetString * argument
);
virtual void OnReceivedLocalCallHold(
int linkedId
);
virtual void OnReceivedLocalCallRetrieve(
int linkedId
);
virtual void OnReceivedRemoteCallHold(
int linkedId
);
virtual void OnReceivedRemoteCallRetrieve(
int linkedId
);
bool HoldCall(
PBoolean localHold
);
bool RetrieveCall();
enum State {
e_ch_Idle,
e_ch_NE_Held,
e_ch_RE_Requested,
e_ch_RE_Held,
e_ch_RE_Retrieve_Req
};
State GetState() const { return holdState; }
protected:
State holdState; // Call Hold state of this connection
};
class H4506Handler : public H450xHandler
{
PCLASSINFO(H4506Handler, H450xHandler);
public:
H4506Handler(
H323Connection & connection,
H450xDispatcher & dispatcher
);
virtual PBoolean OnReceivedInvoke(
int opcode,
int invokeId,
int linkedId,
PASN_OctetString * argument
);
virtual void OnReceivedCallWaitingIndication(
int linkedId,
PASN_OctetString *argument
);
virtual void AttachToAlerting(
H323SignalPDU & pdu,
unsigned numberOfCallsWaiting = 0
);
enum State {
e_cw_Idle,
e_cw_Invoked
};
State GetState() const { return cwState; }
protected:
State cwState; // Call Waiting state of this connection
};
class H4507Handler : public H450xHandler
{
PCLASSINFO(H4507Handler, H450xHandler);
public:
H4507Handler(
H323Connection & connection,
H450xDispatcher & dispatcher
);
virtual PBoolean OnReceivedInvoke(
int opcode,
int invokeId,
int linkedId,
PASN_OctetString * argument
);
virtual void AttachToSetup(H323SignalPDU & setupPDU,
H4507_H323_MWI_Operations &mwiOp,
PASN_Sequence &argument);
virtual void AttachInterrogateResultToPdu(H323SignalPDU & pdu,
H4507_MWIInterrogateRes &interrogateResult);
virtual void AttachErrorToPdu(H323SignalPDU & pdu,
H4507_MessageWaitingIndicationErrors error);
enum State {
e_mwi_Idle,
e_mwi_Invoked
};
State GetState() const { return mwiState; }
protected:
State mwiState; // Message waiting state of this connection
};
class H45011Handler : public H450xHandler
{
PCLASSINFO(H45011Handler, H450xHandler);
public:
H45011Handler(
H323Connection & connection,
H450xDispatcher & dispatcher
);
virtual void AttachToSetup(
H323SignalPDU & pdu
);
virtual void AttachToAlerting(
H323SignalPDU & pdu
);
virtual void AttachToConnect(
H323SignalPDU & pdu
);
virtual void AttachToReleaseComplete(
H323SignalPDU & pdu
);
virtual PBoolean OnReceivedInvoke(
int opcode,
int invokeId,
int linkedId,
PASN_OctetString * argument
);
virtual void OnReceivedCallIntrusionRequest(
int linkedId,
PASN_OctetString *argument
);
virtual void OnReceivedCallIntrusionGetCIPL(
int linkedId,
PASN_OctetString *argument
);
virtual void OnReceivedCallIntrusionIsolate(
int linkedId,
PASN_OctetString *argument
);
virtual PBoolean OnReceivedCallIntrusionForcedRelease(
int linkedId,
PASN_OctetString *argument
);
virtual void OnReceivedCallIntrusionWOBRequest(
int linkedId,
PASN_OctetString *argument
);
virtual void OnReceivedCallIntrusionSilentMonitor(
int linkedId,
PASN_OctetString *argument
);
virtual void OnReceivedCallIntrusionNotification(
int linkedId,
PASN_OctetString *argument
);
virtual void OnReceivedCfbOverride(
int linkedId,
PASN_OctetString *argument
);
virtual void OnReceivedRemoteUserAlerting(
int linkedId,
PASN_OctetString *argument
);
virtual void OnReceivedCallWaiting(
int linkedId,
PASN_OctetString *argument
);
virtual PBoolean OnReceivedReturnResult(
X880_ReturnResult & returnResult
);
void OnReceivedCIRequestResult(/*X880_ReturnResult & returnResult*/);
virtual PBoolean OnReceivedReturnError(
int errorCode,
X880_ReturnError & returnError
);
PBoolean OnReceivedInvokeReturnError (
int errorCode,
const bool timerExpiry = false
);
void OnReceivedCIGetCIPLResult(
X880_ReturnResult & returnResult
);
PBoolean OnReceivedGetCIPLReturnError(
int errorCode,
const bool timerExpiry = false
);
void IntrudeCall(int CICL );
void AwaitSetupResponse(
const PString & token,
const PString & identity
);
PBoolean GetRemoteCallIntrusionProtectionLevel(
const PString & intrusionCallToken,
unsigned intrusionCICL
);
void SetIntrusionImpending();
void SetForcedReleaseAccepted();
void SetIntrusionNotAuthorized();
virtual PBoolean OnReceivedReject(
int problemType,
int problemNumber
);
enum State {
e_ci_Idle,
e_ci_WaitAck,
e_ci_GetCIPL,
e_ci_OrigInvoked,
e_ci_OrigIsolated,
e_ci_DestNotify,
e_ci_DestInvoked,
e_ci_DestIsolated,
e_ci_DestWOB,
e_ci_IsolationRequest,
e_ci_ForcedReleaseRequest,
e_ci_WOBRequest
};
enum Generate{
e_ci_gIdle,
e_ci_gConferenceRequest,
e_ci_gHeldRequest,
e_ci_gSilentMonitorRequest,
e_ci_gIsolationRequest,
e_ci_gForcedReleaseRequest,
e_ci_gWOBRequest
};
enum SendState{
e_ci_sIdle,
e_ci_sAttachToSetup,
e_ci_sAttachToAlerting,
e_ci_sAttachToConnect,
e_ci_sAttachToReleseComplete
};
enum ReturnState{
e_ci_rIdle,
e_ci_rCallIntrusionImpending,
e_ci_rCallIntruded,
e_ci_rCallIsolated,
e_ci_rCallForceReleased,
e_ci_rCallForceReleaseResult,
e_ci_rCallIntrusionComplete,
e_ci_rCallIntrusionEnd,
e_ci_rNotBusy,
e_ci_rTempUnavailable,
e_ci_rNotAuthorized
};
State GetState() const { return ciState; }
void StartciTimer(const PTimeInterval value) { ciTimer = value; }
void StopciTimer();
PBoolean IsctTimerRunning() { return ciTimer.IsRunning(); }
PDECLARE_NOTIFIER(PTimer, H45011Handler, OnCallIntrudeTimeOut);
protected:
State ciState; // Call state of this connection
PTimer ciTimer; // Call Intrusion Timer - Handles all six timers CI-T1 to CI-T6,
PString intrudingCallToken;
PString intrudingCallIdentity;
PString activeCallToken;
ReturnState ciReturnState;
SendState ciSendState;
Generate ciGenerateState;
int ciCICL;
unsigned intrudingCallCICL;
};
#endif // OPAL_H450
#endif // OPAL_H323_H450PDU_H
H4502Handler::transferringCallToken
PString transferringCallToken
Definition: h450pdu.h:510
H4502Handler::AttachToSetup
virtual void AttachToSetup(H323SignalPDU &pdu)
H4502Handler::AttachToAlerting
virtual void AttachToAlerting(H323SignalPDU &pdu)
H45011Handler::e_ci_DestWOB
Definition: h450pdu.h:850
H450ServiceAPDU::BuildInterrogateResult
void BuildInterrogateResult(int invokeId, H4507_MWIInterrogateRes &interrogateResult)
H4502Handler::OnReceivedInvoke
virtual PBoolean OnReceivedInvoke(int opcode, int invokeId, int linkedId, PASN_OctetString *argument)
H450ServiceAPDU::BuildMessageWaiting
void BuildMessageWaiting(int invokeId, H4507_H323_MWI_Operations &mwiOp, PASN_Sequence &argument)
H450ServiceAPDU::WriteFacilityPDU
PBoolean WriteFacilityPDU(H323Connection &connection)
H4502Handler::OnReceivedCallTransferComplete
virtual void OnReceivedCallTransferComplete(int linkedId, PASN_OctetString *argument)
H45011Handler::SendState
SendState
Definition: h450pdu.h:868
H4506Handler::e_cw_Idle
Definition: h450pdu.h:630
PDICTIONARY
PDICTIONARY(H450xHandlerDict, POrdinalKey, H450xHandler)
H4502Handler::OnReceivedCallTransferIdentify
virtual void OnReceivedCallTransferIdentify(int linkedId)
PARRAY
PARRAY(H450xHandlerArray, H450xHandler)
H450xDispatcher::SendInvokeReject
void SendInvokeReject(int invokeId, int problem)
H4502Handler::ctTimer
PTimer ctTimer
Definition: h450pdu.h:514
H450xHandler::SendReturnError
void SendReturnError(int returnError)
H45011Handler::OnReceivedReject
virtual PBoolean OnReceivedReject(int problemType, int problemNumber)
H4502Handler::OnReceivedReturnError
virtual PBoolean OnReceivedReturnError(int errorCode, X880_ReturnError &returnError)
H4507Handler::OnReceivedInvoke
virtual PBoolean OnReceivedInvoke(int opcode, int invokeId, int linkedId, PASN_OctetString *argument)
H45011Handler::e_ci_sAttachToAlerting
Definition: h450pdu.h:871
H450xDispatcher::OnReceivedInvoke
virtual PBoolean OnReceivedInvoke(X880_Invoke &invoke, H4501_InterpretationApdu &interpretation)
H4502Handler::e_ctAwaitSetupResponse
Definition: h450pdu.h:447
H450xHandler::dispatcher
H450xDispatcher & dispatcher
Definition: h450pdu.h:175
H45011Handler::activeCallToken
PString activeCallToken
Definition: h450pdu.h:916
H4504Handler::GetState
State GetState() const
Definition: h450pdu.h:586
H4502Handler::ctResponseSent
PBoolean ctResponseSent
Definition: h450pdu.h:513
H450xDispatcher::AttachToAlerting
virtual void AttachToAlerting(H323SignalPDU &pdu)
H45011Handler::e_ci_rIdle
Definition: h450pdu.h:878
H45011Handler::IsctTimerRunning
PBoolean IsctTimerRunning()
Definition: h450pdu.h:905
H450ServiceAPDU::AttachSupplementaryServiceAPDU
void AttachSupplementaryServiceAPDU(H323SignalPDU &pdu)
H45011Handler::e_ci_WOBRequest
Definition: h450pdu.h:853
H450xDispatcher::H450xDispatcher
H450xDispatcher(H323Connection &connection)
H450ServiceAPDU::ParseEndpointAddress
static void ParseEndpointAddress(H4501_EndpointAddress &address, PString &party)
H4507Handler::mwiState
State mwiState
Definition: h450pdu.h:685
H45011Handler::e_ci_DestInvoked
Definition: h450pdu.h:848
H450xDispatcher
Definition: h450pdu.h:183
H45011Handler::e_ci_gIdle
Definition: h450pdu.h:858
H4506Handler::AttachToAlerting
virtual void AttachToAlerting(H323SignalPDU &pdu, unsigned numberOfCallsWaiting=0)
H45011Handler::State
State
Definition: h450pdu.h:841
H45011Handler::OnReceivedCIRequestResult
void OnReceivedCIRequestResult()
H323SignalPDU
Definition: h323pdu.h:70
buildopts.h
H45011Handler::e_ci_rCallIntrusionComplete
Definition: h450pdu.h:884
H4507Handler::H4507Handler
H4507Handler(H323Connection &connection, H450xDispatcher &dispatcher)
H450xDispatcher::opcodeHandler
H450xHandlerDict opcodeHandler
Definition: h450pdu.h:266
H45011Handler::IntrudeCall
void IntrudeCall(int CICL)
H4507Handler::e_mwi_Idle
Definition: h450pdu.h:677
H4504Handler::holdState
State holdState
Definition: h450pdu.h:590
H45011Handler::e_ci_gIsolationRequest
Definition: h450pdu.h:862
H45011Handler::AttachToReleaseComplete
virtual void AttachToReleaseComplete(H323SignalPDU &pdu)
H45011Handler::SetForcedReleaseAccepted
void SetForcedReleaseAccepted()
H4502Handler::getAssociatedConnection
const H323Connection & getAssociatedConnection() const
Definition: h450pdu.h:491
H4504Handler::OnReceivedInvoke
virtual PBoolean OnReceivedInvoke(int opcode, int invokeId, int linkedId, PASN_OctetString *argument)
H45011Handler::e_ci_DestNotify
Definition: h450pdu.h:847
H450xDispatcher::SendGeneralReject
void SendGeneralReject(int invokeId, int problem)
H450xDispatcher::OnReceivedReturnError
virtual PBoolean OnReceivedReturnError(X880_ReturnError &returnError)
H45011Handler::e_ci_sAttachToReleseComplete
Definition: h450pdu.h:873
H45011Handler::intrudingCallToken
PString intrudingCallToken
Definition: h450pdu.h:914
H45011Handler::OnReceivedCallIntrusionForcedRelease
virtual PBoolean OnReceivedCallIntrusionForcedRelease(int linkedId, PASN_OctetString *argument)
H4504Handler::e_ch_Idle
Definition: h450pdu.h:579
H450xDispatcher::AttachToReleaseComplete
virtual void AttachToReleaseComplete(H323SignalPDU &pdu)
H4502Handler::CallToken
PString CallToken
Definition: h450pdu.h:515
H4502Handler::e_ctAwaitIdentifyResponse
Definition: h450pdu.h:445
H45011Handler::AttachToAlerting
virtual void AttachToAlerting(H323SignalPDU &pdu)
H4502Handler::AttachToReleaseComplete
virtual void AttachToReleaseComplete(H323SignalPDU &pdu)
H4502Handler::consultationTransfer
PBoolean consultationTransfer
Definition: h450pdu.h:517
H450ServiceAPDU::BuildCallIntrusionImpending
void BuildCallIntrusionImpending(int invokeId)
H45011Handler::OnReceivedCallIntrusionRequest
virtual void OnReceivedCallIntrusionRequest(int linkedId, PASN_OctetString *argument)
H45011Handler::e_ci_ForcedReleaseRequest
Definition: h450pdu.h:852
H4502Handler
Definition: h450pdu.h:271
H4502Handler::PDECLARE_NOTIFIER
PDECLARE_NOTIFIER(PTimer, H4502Handler, OnCallTransferTimeOut)
H4504Handler::e_ch_RE_Retrieve_Req
Definition: h450pdu.h:583
H4502Handler::HandleCallTransferFailure
void HandleCallTransferFailure(const int returnError)
H45011Handler::OnReceivedGetCIPLReturnError
PBoolean OnReceivedGetCIPLReturnError(int errorCode, const bool timerExpiry=false)
H4502Handler::IsctTimerRunning
PBoolean IsctTimerRunning()
Definition: h450pdu.h:483
H45011Handler::OnReceivedCIGetCIPLResult
void OnReceivedCIGetCIPLResult(X880_ReturnResult &returnResult)
H4502Handler::OnReceivedSubaddressTransfer
virtual void OnReceivedSubaddressTransfer(int linkedId, PASN_OctetString *argument)
H4502Handler::OnReceivedIdentifyReturnError
void OnReceivedIdentifyReturnError(const bool timerExpiry=false)
H450xDispatcher::AddOpCode
void AddOpCode(unsigned opcode, H450xHandler *handler)
H4502Handler::H4502Handler
H4502Handler(H323Connection &connection, H450xDispatcher &dispatcher)
H450xHandler::DecodeArguments
PBoolean DecodeArguments(PASN_OctetString *argString, PASN_Object &argObject, int absentErrorCode)
H450ServiceAPDU::BuildCallTransferInitiate
void BuildCallTransferInitiate(int invokeId, const PString &callIdentity, const PString &alias, const H323TransportAddress &address)
H4506Handler::H4506Handler
H4506Handler(H323Connection &connection, H450xDispatcher &dispatcher)
H45011Handler::e_ci_rNotBusy
Definition: h450pdu.h:886
H45011Handler::e_ci_WaitAck
Definition: h450pdu.h:843
H45011Handler::StartciTimer
void StartciTimer(const PTimeInterval value)
Definition: h450pdu.h:897
H4506Handler::OnReceivedCallWaitingIndication
virtual void OnReceivedCallWaitingIndication(int linkedId, PASN_OctetString *argument)
H45011Handler::OnReceivedCallIntrusionNotification
virtual void OnReceivedCallIntrusionNotification(int linkedId, PASN_OctetString *argument)
H4506Handler::e_cw_Invoked
Definition: h450pdu.h:631
H45011Handler::e_ci_rCallIntrusionEnd
Definition: h450pdu.h:885
H45011Handler::ciCICL
int ciCICL
Definition: h450pdu.h:920
H450ServiceAPDU::BuildCallTransferIdentify
void BuildCallTransferIdentify(int invokeId)
H4507Handler
Definition: h450pdu.h:644
H4502Handler::ConsultationTransfer
void ConsultationTransfer(const PString &primaryCallToken)
H4502Handler::isConsultationTransferSuccess
PBoolean isConsultationTransferSuccess()
Definition: h450pdu.h:507
H4506Handler::GetState
State GetState() const
Definition: h450pdu.h:634
H4507Handler::AttachErrorToPdu
virtual void AttachErrorToPdu(H323SignalPDU &pdu, H4507_MessageWaitingIndicationErrors error)
H45011Handler::OnReceivedReturnResult
virtual PBoolean OnReceivedReturnResult(X880_ReturnResult &returnResult)
H45011Handler::OnReceivedCfbOverride
virtual void OnReceivedCfbOverride(int linkedId, PASN_OctetString *argument)
H4504Handler::OnReceivedRemoteCallHold
virtual void OnReceivedRemoteCallHold(int linkedId)
H45011Handler::e_ci_rCallIntruded
Definition: h450pdu.h:880
H45011Handler::e_ci_gHeldRequest
Definition: h450pdu.h:860
H4506Handler::State
State
Definition: h450pdu.h:629
H45011Handler::e_ci_rCallForceReleased
Definition: h450pdu.h:882
H45011Handler::e_ci_rCallIntrusionImpending
Definition: h450pdu.h:879
H45011Handler::e_ci_OrigInvoked
Definition: h450pdu.h:845
H4504Handler::e_ch_NE_Held
Definition: h450pdu.h:580
H4502Handler::transferringCallIdentity
PString transferringCallIdentity
Definition: h450pdu.h:511
H4502Handler::OnReceivedCallTransferInitiate
virtual void OnReceivedCallTransferInitiate(int linkedId, PASN_OctetString *argument)
H4502Handler::OnReceivedInitiateReturnError
void OnReceivedInitiateReturnError(const bool timerExpiry=false)
H4504Handler::OnReceivedLocalCallHold
virtual void OnReceivedLocalCallHold(int linkedId)
H450xDispatcher::connection
H323Connection & connection
Definition: h450pdu.h:264
H450ServiceAPDU::BuildCallIntrusionForcedReleaseResult
X880_ReturnResult & BuildCallIntrusionForcedReleaseResult(int invokeId)
H45011Handler::intrudingCallIdentity
PString intrudingCallIdentity
Definition: h450pdu.h:915
H45011Handler::e_ci_gSilentMonitorRequest
Definition: h450pdu.h:861
H4502Handler::ctState
State ctState
Definition: h450pdu.h:512
H4502Handler::SetAssociatedCallToken
void SetAssociatedCallToken(const PString &token)
Definition: h450pdu.h:495
H4504Handler::e_ch_RE_Requested
Definition: h450pdu.h:581
H45011Handler::OnReceivedCallIntrusionGetCIPL
virtual void OnReceivedCallIntrusionGetCIPL(int linkedId, PASN_OctetString *argument)
H450xDispatcher::SendReturnErrorReject
void SendReturnErrorReject(int invokeId, int problem)
H4502Handler::e_ctAwaitConnect
Definition: h450pdu.h:449
H4502Handler::SetConsultationTransferSuccess
void SetConsultationTransferSuccess()
Definition: h450pdu.h:503
H45011Handler::ciTimer
PTimer ciTimer
Definition: h450pdu.h:913
H450xHandler::SendInvokeReject
void SendInvokeReject(int problem)
H4502Handler::OnReceivedCallTransferAbandon
virtual void OnReceivedCallTransferAbandon(int linkedId)
H4502Handler::e_ctIdle
Definition: h450pdu.h:444
H45011Handler::ciReturnState
ReturnState ciReturnState
Definition: h450pdu.h:917
H45011Handler::SetIntrusionImpending
void SetIntrusionImpending()
H45011Handler::GetState
State GetState() const
Definition: h450pdu.h:893
H450ServiceAPDU::BuildCallIntrusionForcedReleaseError
void BuildCallIntrusionForcedReleaseError()
H45011Handler::e_ci_sAttachToSetup
Definition: h450pdu.h:870
H4502Handler::StopctTimer
void StopctTimer()
H450xDispatcher::HandlePDU
virtual PBoolean HandlePDU(const H323SignalPDU &pdu)
H4502Handler::OnReceivedReturnResult
virtual PBoolean OnReceivedReturnResult(X880_ReturnResult &returnResult)
H450ServiceAPDU::BuildCallIntrusionForceRelesed
void BuildCallIntrusionForceRelesed(int invokeId)
H4502Handler::OnReceivedIdentifyReturnResult
void OnReceivedIdentifyReturnResult(X880_ReturnResult &returnResult)
H450xHandler::AttachToConnect
virtual void AttachToConnect(H323SignalPDU &pdu)
H45011Handler::e_ci_rCallForceReleaseResult
Definition: h450pdu.h:883
H450xHandler::SendReturnResultReject
void SendReturnResultReject(int problem)
H45011Handler::OnReceivedInvoke
virtual PBoolean OnReceivedInvoke(int opcode, int invokeId, int linkedId, PASN_OctetString *argument)
H4504Handler::HoldCall
bool HoldCall(PBoolean localHold)
H4504Handler::State
State
Definition: h450pdu.h:578
H450xHandler::OnReceivedReturnResult
virtual PBoolean OnReceivedReturnResult(X880_ReturnResult &returnResult)
H45011Handler::e_ci_rTempUnavailable
Definition: h450pdu.h:887
H4504Handler::OnReceivedRemoteCallRetrieve
virtual void OnReceivedRemoteCallRetrieve(int linkedId)
H45011Handler::e_ci_GetCIPL
Definition: h450pdu.h:844
H45011Handler::SetIntrusionNotAuthorized
void SetIntrusionNotAuthorized()
H45011Handler::e_ci_DestIsolated
Definition: h450pdu.h:849
H323Connection
Definition: h323con.h:130
H4502Handler::OnReceivedCallTransferActive
virtual void OnReceivedCallTransferActive(int linkedId, PASN_OctetString *argument)
H4502Handler::AwaitSetupResponse
void AwaitSetupResponse(const PString &token, const PString &identity)
H4502Handler::OnReceivedCallTransferSetup
virtual void OnReceivedCallTransferSetup(int linkedId, PASN_OctetString *argument)
H45011Handler::intrudingCallCICL
unsigned intrudingCallCICL
Definition: h450pdu.h:921
H4502Handler::OnReceivedSetupReturnError
void OnReceivedSetupReturnError(int errorCode, const bool timerExpiry=false)
H450xDispatcher::SendReturnResultReject
void SendReturnResultReject(int invokeId, int problem)
H450xDispatcher::AttachToConnect
virtual void AttachToConnect(H323SignalPDU &pdu)
H450xHandler::AttachToSetup
virtual void AttachToSetup(H323SignalPDU &pdu)
H450xHandler::AttachToReleaseComplete
virtual void AttachToReleaseComplete(H323SignalPDU &pdu)
H45011Handler::e_ci_rCallIsolated
Definition: h450pdu.h:881
H45011Handler::OnReceivedCallIntrusionIsolate
virtual void OnReceivedCallIntrusionIsolate(int linkedId, PASN_OctetString *argument)
H450xHandler::H450xHandler
H450xHandler(H323Connection &connection, H450xDispatcher &dispatcher)
H450xDispatcher::SendReturnError
void SendReturnError(int invokeId, int returnError)
H450ServiceAPDU::BuildCallWaiting
void BuildCallWaiting(int invokeId, int numCallsWaiting)
H450ServiceAPDU::BuildCallIntrusionForcedRelease
void BuildCallIntrusionForcedRelease(int invokeId, int CICL)
H4504Handler::e_ch_RE_Held
Definition: h450pdu.h:582
H4506Handler::OnReceivedInvoke
virtual PBoolean OnReceivedInvoke(int opcode, int invokeId, int linkedId, PASN_OctetString *argument)
H4507Handler::State
State
Definition: h450pdu.h:676
H450xHandler::OnReceivedInvoke
virtual PBoolean OnReceivedInvoke(int opcode, int invokeId, int linkedId, PASN_OctetString *argument)=0
H4502Handler::OnReceivedCallTransferUpdate
virtual void OnReceivedCallTransferUpdate(int linkedId, PASN_OctetString *argument)
H450ServiceAPDU::BuildCallIntrusionGetCIPL
void BuildCallIntrusionGetCIPL(int invokeId)
H45011Handler::e_ci_IsolationRequest
Definition: h450pdu.h:851
H45011Handler::AttachToConnect
virtual void AttachToConnect(H323SignalPDU &pdu)
H45011Handler::ciGenerateState
Generate ciGenerateState
Definition: h450pdu.h:919
H450ServiceAPDU::BuildCallTransferAbandon
void BuildCallTransferAbandon(int invokeId)
H4507Handler::GetState
State GetState() const
Definition: h450pdu.h:681
H450ServiceAPDU::BuildInvoke
X880_Invoke & BuildInvoke(int invokeId, int operation)
H45011Handler::PDECLARE_NOTIFIER
PDECLARE_NOTIFIER(PTimer, H45011Handler, OnCallIntrudeTimeOut)
H450xHandler
Definition: h450pdu.h:105
H4502Handler::AttachToConnect
virtual void AttachToConnect(H323SignalPDU &pdu)
H45011Handler::StopciTimer
void StopciTimer()
H45011Handler::OnReceivedCallWaiting
virtual void OnReceivedCallWaiting(int linkedId, PASN_OctetString *argument)
H450ServiceAPDU
Definition: h450pdu.h:61
H45011Handler::AwaitSetupResponse
void AwaitSetupResponse(const PString &token, const PString &identity)
H45011Handler::Generate
Generate
Definition: h450pdu.h:857
H450xHandler::OnReceivedReject
virtual PBoolean OnReceivedReject(int problemType, int problemNumber)
H4506Handler::cwState
State cwState
Definition: h450pdu.h:638
H45011Handler::e_ci_sAttachToConnect
Definition: h450pdu.h:872
H45011Handler::OnReceivedReturnError
virtual PBoolean OnReceivedReturnError(int errorCode, X880_ReturnError &returnError)
H450xDispatcher::OnReceivedReturnResult
virtual PBoolean OnReceivedReturnResult(X880_ReturnResult &returnResult)
H450ServiceAPDU::BuildCallTransferSetup
void BuildCallTransferSetup(int invokeId, const PString &callIdentity)
H4502Handler::OnReceivedSetupReturnResult
void OnReceivedSetupReturnResult()
H450xHandler::AttachToAlerting
virtual void AttachToAlerting(H323SignalPDU &pdu)
H45011Handler::e_ci_sIdle
Definition: h450pdu.h:869
H4506Handler
Definition: h450pdu.h:594
H4504Handler::RetrieveCall
bool RetrieveCall()
H45011Handler::e_ci_OrigIsolated
Definition: h450pdu.h:846
H4502Handler::OnReceivedInitiateReturnResult
void OnReceivedInitiateReturnResult()
H4502Handler::HandleConsultationTransfer
void HandleConsultationTransfer(const PString &callIdentity, H323Connection &incoming)
H4502Handler::e_ctAwaitInitiateResponse
Definition: h450pdu.h:446
H45011Handler::H45011Handler
H45011Handler(H323Connection &connection, H450xDispatcher &dispatcher)
H450xDispatcher::nextInvokeId
unsigned nextInvokeId
Definition: h450pdu.h:267
H4502Handler::GetState
State GetState() const
Definition: h450pdu.h:454
H4502Handler::StartctTimer
void StartctTimer(const PTimeInterval value)
Definition: h450pdu.h:475
H45011Handler::ReturnState
ReturnState
Definition: h450pdu.h:877
H45011Handler::e_ci_gConferenceRequest
Definition: h450pdu.h:859
H323EndPoint
Definition: h323ep.h:85
H450xDispatcher::AttachToSetup
virtual void AttachToSetup(H323SignalPDU &pdu)
H4504Handler::OnReceivedLocalCallRetrieve
virtual void OnReceivedLocalCallRetrieve(int linkedId)
H450ServiceAPDU::BuildReturnError
X880_ReturnError & BuildReturnError(int invokeId, int error)
H4504Handler
Definition: h450pdu.h:522
H4502Handler::getTransferringCallToken
const PString & getTransferringCallToken() const
Definition: h450pdu.h:499
H4507Handler::AttachInterrogateResultToPdu
virtual void AttachInterrogateResultToPdu(H323SignalPDU &pdu, H4507_MWIInterrogateRes &interrogateResult)
H4502Handler::e_ctAwaitSetup
Definition: h450pdu.h:448
H45011Handler::OnReceivedCallIntrusionSilentMonitor
virtual void OnReceivedCallIntrusionSilentMonitor(int linkedId, PASN_OctetString *argument)
H450ServiceAPDU::BuildReturnResult
X880_ReturnResult & BuildReturnResult(int invokeId)
H323TransportAddress
Definition: transaddr.h:66
H45011Handler::e_ci_gWOBRequest
Definition: h450pdu.h:864
H4502Handler::State
State
Definition: h450pdu.h:443
H45011Handler::OnReceivedRemoteUserAlerting
virtual void OnReceivedRemoteUserAlerting(int linkedId, PASN_OctetString *argument)
H45011Handler::AttachToSetup
virtual void AttachToSetup(H323SignalPDU &pdu)
H450xHandler::SendReturnErrorReject
void SendReturnErrorReject(int problem)
H450xHandler::endpoint
H323EndPoint & endpoint
Definition: h450pdu.h:173
H45011Handler::ciState
State ciState
Definition: h450pdu.h:912
H45011Handler
Definition: h450pdu.h:689
H4502Handler::onReceivedAdmissionReject
virtual void onReceivedAdmissionReject(const int returnError)
H450xHandler::OnReceivedReturnError
virtual PBoolean OnReceivedReturnError(int errorCode, X880_ReturnError &returnError)
H450xHandler::SendGeneralReject
void SendGeneralReject(int problem)
H45011Handler::GetRemoteCallIntrusionProtectionLevel
PBoolean GetRemoteCallIntrusionProtectionLevel(const PString &intrusionCallToken, unsigned intrusionCICL)
H45011Handler::ciSendState
SendState ciSendState
Definition: h450pdu.h:918
H450xDispatcher::handlers
H450xHandlerArray handlers
Definition: h450pdu.h:265
H450xHandler::currentInvokeId
unsigned currentInvokeId
Definition: h450pdu.h:176
H450xDispatcher::OnReceivedReject
virtual PBoolean OnReceivedReject(X880_Reject &reject)
H45011Handler::e_ci_rNotAuthorized
Definition: h450pdu.h:888
H4507Handler::AttachToSetup
virtual void AttachToSetup(H323SignalPDU &setupPDU, H4507_H323_MWI_Operations &mwiOp, PASN_Sequence &argument)
H450xHandler::connection
H323Connection & connection
Definition: h450pdu.h:174
H450xHandler::GetInvokeId
unsigned GetInvokeId() const
Definition: h450pdu.h:169
H45011Handler::e_ci_Idle
Definition: h450pdu.h:842
H450xDispatcher::GetNextInvokeId
unsigned GetNextInvokeId() const
Definition: h450pdu.h:261
H4502Handler::TransferCall
bool TransferCall(const PString &remoteParty, const PString &callIdentity)
H450ServiceAPDU::BuildReject
X880_Reject & BuildReject(int invokeId)
H45011Handler::OnReceivedCallIntrusionWOBRequest
virtual void OnReceivedCallIntrusionWOBRequest(int linkedId, PASN_OctetString *argument)
H45011Handler::OnReceivedInvokeReturnError
PBoolean OnReceivedInvokeReturnError(int errorCode, const bool timerExpiry=false)
H4504Handler::H4504Handler
H4504Handler(H323Connection &connection, H450xDispatcher &dispatcher)
H4507Handler::e_mwi_Invoked
Definition: h450pdu.h:678
H45011Handler::e_ci_gForcedReleaseRequest
Definition: h450pdu.h:863