OPAL  Version 3.18.8
h450pdu.h
Go to the documentation of this file.
1 /*
2  * h450pdu.h
3  *
4  * H.450 Helper functions
5  *
6  * Open H323 Library
7  *
8  * Copyright (c) 2001 Norwood Systems Pty. Ltd.
9  *
10  * The contents of this file are subject to the Mozilla Public License
11  * Version 1.0 (the "License"); you may not use this file except in
12  * compliance with the License. You may obtain a copy of the License at
13  * http://www.mozilla.org/MPL/
14  *
15  * Software distributed under the License is distributed on an "AS IS"
16  * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
17  * the License for the specific language governing rights and limitations
18  * under the License.
19  *
20  * The Original Code is Open H323 Library.
21  *
22  * The Initial Developer of the Original Code is Equivalence Pty. Ltd.
23  *
24  * Contributor(s): ______________________________________.
25  */
26 
27 #ifndef OPAL_H323_H450PDU_H
28 #define OPAL_H323_H450PDU_H
29 
30 #ifdef P_USE_PRAGMA
31 #pragma interface
32 #endif
33 
34 #include <opal_config.h>
35 
36 #if OPAL_H450
37 
38 #include <asn/x880.h>
39 #include <asn/h4501.h>
40 #include <asn/h4502.h>
41 
42 #include <asn/h4507.h>
43 
44 class H323EndPoint;
45 class H323Connection;
47 class H323SignalPDU;
48 
49 class H4501_EndpointAddress;
50 class H4501_InterpretationApdu;
51 
52 
54 
57 class H450ServiceAPDU : public X880_ROS
58 {
59  public:
60  X880_Invoke& BuildInvoke(int invokeId, int operation);
61  X880_ReturnResult& BuildReturnResult(int invokeId);
62  X880_ReturnError& BuildReturnError(int invokeId, int error);
63  X880_Reject& BuildReject(int invokeId);
64 
65  void BuildCallTransferInitiate(int invokeId,
66  const PString & callIdentity,
67  const PString & alias,
68  const H323TransportAddress & address);
69 
70  void BuildCallTransferIdentify(int invokeId);
71  void BuildCallTransferAbandon(int invokeId);
72  void BuildCallTransferSetup(int invokeId,
73  const PString & callIdentity);
74 
75  void BuildCallWaiting(int invokeId, int numCallsWaiting);
76  void BuildMessageWaiting(int invokeId,
77  H4507_H323_MWI_Operations &mwiOp,
78  PASN_Sequence &argument);
79  void BuildInterrogateResult(int invokeId,
80  H4507_MWIInterrogateRes &interrogateResult);
81 
82  void BuildCallIntrusionForcedRelease(int invokeId, int CICL);
83  X880_ReturnResult& BuildCallIntrusionForcedReleaseResult(int invokeId);
85  void BuildCallIntrusionGetCIPL(int invokeId);
86  void BuildCallIntrusionImpending(int invokeId);
87  void BuildCallIntrusionForceRelesed(int invokeId);
88 
90  PBoolean WriteFacilityPDU(
91  H323Connection & connection
92  );
93 
94  static void ParseEndpointAddress(H4501_EndpointAddress & address,
95  PString & party);
96 };
97 
98 
99 class H450xDispatcher;
100 
101 class H450xHandler : public PObject
102 {
103  PCLASSINFO(H450xHandler, PObject);
104  public:
105  H450xHandler(
108  );
109 
110  virtual void AttachToSetup(
111  H323SignalPDU & pdu
112  );
113 
114  virtual void AttachToAlerting(
115  H323SignalPDU & pdu
116  );
117 
118  virtual void AttachToConnect(
119  H323SignalPDU & pdu
120  );
121 
122  virtual void AttachToReleaseComplete(
123  H323SignalPDU & pdu
124  );
125 
126  virtual PBoolean OnReceivedInvoke(
127  int opcode,
128  int invokeId,
129  int linkedId,
130  PASN_OctetString * argument
131  ) = 0;
132 
133  virtual PBoolean OnReceivedReturnResult(
134  X880_ReturnResult & returnResult
135  );
136 
137  virtual PBoolean OnReceivedReturnError(
138  int errorCode,
139  X880_ReturnError & returnError
140  );
141 
142  virtual PBoolean OnReceivedReject(
143  int problemType,
144  int problemNumber
145  );
146 
149  void SendReturnError(int returnError);
150 
151  void SendGeneralReject(int problem);
152 
153  void SendInvokeReject(int problem);
154 
155  void SendReturnResultReject(int problem);
156 
157  void SendReturnErrorReject(int problem);
158 
159  PBoolean DecodeArguments(
160  PASN_OctetString * argString,
161  PASN_Object & argObject,
162  int absentErrorCode
163  );
164 
165  unsigned GetInvokeId() const { return currentInvokeId; }
166 
167 
168  protected:
172  unsigned currentInvokeId;
173 };
174 
175 PARRAY(H450xHandlerArray, H450xHandler);
176 PDICTIONARY(H450xHandlerDict, POrdinalKey, H450xHandler);
177 
178 
179 class H450xDispatcher : public PObject
180 {
181  PCLASSINFO(H450xDispatcher, PObject);
182  public:
185  );
186 
189  void AddOpCode(
190  unsigned opcode,
191  H450xHandler * handler
192  );
193 
194  virtual void AttachToSetup(
195  H323SignalPDU & pdu
196  );
197 
198  virtual void AttachToAlerting(
199  H323SignalPDU & pdu
200  );
201 
202  virtual void AttachToConnect(
203  H323SignalPDU & pdu
204  );
205 
206  virtual void AttachToReleaseComplete(
207  H323SignalPDU & pdu
208  );
209 
212  virtual PBoolean HandlePDU(
213  const H323SignalPDU & pdu
214  );
215 
220  virtual PBoolean OnReceivedInvoke(X880_Invoke& invoke, H4501_InterpretationApdu& interpretation);
221 
227  virtual PBoolean OnReceivedReturnResult(X880_ReturnResult& returnResult);
228 
234  virtual PBoolean OnReceivedReturnError(X880_ReturnError& returnError);
235 
241  virtual PBoolean OnReceivedReject(X880_Reject& reject);
242 
245  void SendReturnError(int invokeId, int returnError);
246 
247  void SendGeneralReject(int invokeId, int problem);
248 
249  void SendInvokeReject(int invokeId, int problem);
250 
251  void SendReturnResultReject(int invokeId, int problem);
252 
253  void SendReturnErrorReject(int invokeId, int problem);
254 
257  unsigned GetNextInvokeId() const { return ++nextInvokeId; }
258 
259  protected:
261  H450xHandlerArray handlers;
262  H450xHandlerDict opcodeHandler;
263  mutable unsigned nextInvokeId; // Next available invoke ID for H450 operations
264 };
265 
266 
268 {
269  PCLASSINFO(H4502Handler, H450xHandler);
270  public:
271  H4502Handler(
274  );
275 
276  virtual void AttachToSetup(
277  H323SignalPDU & pdu
278  );
279 
280  virtual void AttachToAlerting(
281  H323SignalPDU & pdu
282  );
283 
284  virtual void AttachToConnect(
285  H323SignalPDU & pdu
286  );
287 
288  virtual void AttachToReleaseComplete(
289  H323SignalPDU & pdu
290  );
291 
292  virtual PBoolean OnReceivedInvoke(
293  int opcode,
294  int invokeId,
295  int linkedId,
296  PASN_OctetString * argument
297  );
298 
301  virtual void OnReceivedCallTransferIdentify(
302  int linkedId
303  );
304 
307  virtual void OnReceivedCallTransferAbandon(
308  int linkedId
309  );
310 
313  virtual void OnReceivedCallTransferInitiate(
314  int linkedId,
315  PASN_OctetString * argument
316  );
317 
320  virtual void OnReceivedCallTransferSetup(
321  int linkedId,
322  PASN_OctetString * argument
323  );
324 
327  virtual void OnReceivedCallTransferUpdate(
328  int linkedId,
329  PASN_OctetString * argument
330  );
331 
334  virtual void OnReceivedSubaddressTransfer(
335  int linkedId,
336  PASN_OctetString * argument
337  );
338 
341  virtual void OnReceivedCallTransferComplete(
342  int linkedId,
343  PASN_OctetString * argument
344  );
345 
348  virtual void OnReceivedCallTransferActive(
349  int linkedId,
350  PASN_OctetString * argument
351  );
352 
353  virtual PBoolean OnReceivedReturnResult(
354  X880_ReturnResult & returnResult
355  );
356 
362 
369 
374  void OnReceivedIdentifyReturnResult(X880_ReturnResult &returnResult);
375 
376  virtual PBoolean OnReceivedReturnError(
377  int errorCode,
378  X880_ReturnError & returnError
379  );
380 
386  const bool timerExpiry = false
387  );
388 
396  int errorCode,
397  const bool timerExpiry = false
398  );
399 
405  const bool timerExpiry = false
406  );
407 
412  bool TransferCall(
413  const PString & remoteParty,
414  const PString & callIdentity
415  );
416 
422  const PString & primaryCallToken
423  );
424 
428  const PString & callIdentity,
429  H323Connection& incoming
430  );
431 
432  void AwaitSetupResponse(
433  const PString & token,
434  const PString & identity
435  );
436 
439  enum State {
446  };
447 
450  State GetState() const { return ctState; }
451 
461  virtual void onReceivedAdmissionReject(const int returnError);
462 
466  const int returnError
467  );
468 
471  void StartctTimer(const PTimeInterval value) { ctTimer = value; }
472 
475  void StopctTimer();
476 
479  PBoolean IsctTimerRunning() { return ctTimer.IsRunning(); }
480 
483  PDECLARE_NOTIFIER(PTimer, H4502Handler, OnCallTransferTimeOut);
484 
488 
491  void SetAssociatedCallToken(const PString& token) { CallToken = token; }
492 
495  const PString& getTransferringCallToken() const { return transferringCallToken; }
496 
500 
504 
505  protected:
506  PString transferringCallToken; // Stores the call token for the transferring connection (if there is one)
507  PString transferringCallIdentity; // Stores the call identity for the transferring call (if there is one)
508  State ctState; // Call Transfer state of the conneciton
509  PBoolean ctResponseSent; // Has a callTransferSetupReturnResult been sent?
510  PTimer ctTimer; // Call Transfer Timer - Handles all four timers CT-T1,
511  PString CallToken; // Call Token of the associated connection
512  // (used during a consultation transfer).
513  PBoolean consultationTransfer; // Flag used to indicate whether an incoming call is involved in
514  // a transfer through consultation.
515 };
516 
517 
519 {
520  PCLASSINFO(H4504Handler, H450xHandler);
521  public:
522  H4504Handler(
525  );
526 
527  virtual PBoolean OnReceivedInvoke(
528  int opcode,
529  int invokeId,
530  int linkedId,
531  PASN_OctetString * argument
532  );
533 
536  virtual void OnReceivedLocalCallHold(
537  int linkedId
538  );
539 
542  virtual void OnReceivedLocalCallRetrieve(
543  int linkedId
544  );
545 
549  virtual void OnReceivedRemoteCallHold(
550  int linkedId
551  );
552 
556  virtual void OnReceivedRemoteCallRetrieve(
557  int linkedId
558  );
559 
563  bool HoldCall(
564  PBoolean localHold
565  );
566 
570  bool RetrieveCall();
571 
574  enum State {
580  };
581 
582  State GetState() const { return holdState; }
583 
584 
585  protected:
586  State holdState; // Call Hold state of this connection
587 };
588 
589 
591 {
592  PCLASSINFO(H4506Handler, H450xHandler);
593  public:
594  H4506Handler(
597  );
598 
599  virtual PBoolean OnReceivedInvoke(
600  int opcode,
601  int invokeId,
602  int linkedId,
603  PASN_OctetString * argument
604  );
605 
608  virtual void OnReceivedCallWaitingIndication(
609  int linkedId,
610  PASN_OctetString *argument
611  );
612 
618  virtual void AttachToAlerting(
619  H323SignalPDU & pdu,
620  unsigned numberOfCallsWaiting = 0
621  );
622 
625  enum State {
628  };
629 
630  State GetState() const { return cwState; }
631 
632 
633  protected:
634  State cwState; // Call Waiting state of this connection
635 };
636 
641 {
642  PCLASSINFO(H4507Handler, H450xHandler);
643  public:
644  H4507Handler(
647  );
648 
649  virtual PBoolean OnReceivedInvoke(
650  int opcode,
651  int invokeId,
652  int linkedId,
653  PASN_OctetString * argument
654  );
655 
656 
660  virtual void AttachToSetup(H323SignalPDU & setupPDU,
661  H4507_H323_MWI_Operations &mwiOp,
662  PASN_Sequence &argument);
663 
666  virtual void AttachInterrogateResultToPdu(H323SignalPDU & pdu,
667  H4507_MWIInterrogateRes &interrogateResult);
668  virtual void AttachErrorToPdu(H323SignalPDU & pdu,
669  H4507_MessageWaitingIndicationErrors error);
672  enum State {
675  };
676 
677  State GetState() const { return mwiState; }
678 
679 
680  protected:
681  State mwiState; // Message waiting state of this connection
682 };
683 
684 
686 {
687  PCLASSINFO(H45011Handler, H450xHandler);
688  public:
692  );
693 
694  virtual void AttachToSetup(
695  H323SignalPDU & pdu
696  );
697 
698  virtual void AttachToAlerting(
699  H323SignalPDU & pdu
700  );
701 
702  virtual void AttachToConnect(
703  H323SignalPDU & pdu
704  );
705 
706  virtual void AttachToReleaseComplete(
707  H323SignalPDU & pdu
708  );
709 
710  virtual PBoolean OnReceivedInvoke(
711  int opcode,
712  int invokeId,
713  int linkedId,
714  PASN_OctetString * argument
715  );
716 
719  virtual void OnReceivedCallIntrusionRequest(
720  int linkedId,
721  PASN_OctetString *argument
722  );
723 
726  virtual void OnReceivedCallIntrusionGetCIPL(
727  int linkedId,
728  PASN_OctetString *argument
729  );
730 
733  virtual void OnReceivedCallIntrusionIsolate(
734  int linkedId,
735  PASN_OctetString *argument
736  );
737 
740  virtual PBoolean OnReceivedCallIntrusionForcedRelease(
741  int linkedId,
742  PASN_OctetString *argument
743  );
744 
748  int linkedId,
749  PASN_OctetString *argument
750  );
751 
755  int linkedId,
756  PASN_OctetString *argument
757  );
758 
762  int linkedId,
763  PASN_OctetString *argument
764  );
765 
768  virtual void OnReceivedCfbOverride(
769  int linkedId,
770  PASN_OctetString *argument
771  );
772 
775  virtual void OnReceivedRemoteUserAlerting(
776  int linkedId,
777  PASN_OctetString *argument
778  );
779 
782  virtual void OnReceivedCallWaiting(
783  int linkedId,
784  PASN_OctetString *argument
785  );
786 
787  virtual PBoolean OnReceivedReturnResult(
788  X880_ReturnResult & returnResult
789  );
790 
791  void OnReceivedCIRequestResult(/*X880_ReturnResult & returnResult*/);
792 
793  virtual PBoolean OnReceivedReturnError(
794  int errorCode,
795  X880_ReturnError & returnError
796  );
797 
798  PBoolean OnReceivedInvokeReturnError (
799  int errorCode,
800  const bool timerExpiry = false
801  );
802 
804  X880_ReturnResult & returnResult
805  );
806 
808  int errorCode,
809  const bool timerExpiry = false
810  );
811 
812  void IntrudeCall(int CICL );
813 
814  void AwaitSetupResponse(
815  const PString & token,
816  const PString & identity
817  );
818 
820  const PString & intrusionCallToken,
821  unsigned intrusionCICL
822  );
823 
824  void SetIntrusionImpending();
825 
827 
829 
830  virtual PBoolean OnReceivedReject(
831  int problemType,
832  int problemNumber
833  );
834 
837  enum State {
850  };
851 
853  enum Generate{
861  };
862 
864  enum SendState{
870  };
871 
885  };
886 
889  State GetState() const { return ciState; }
890 
893  void StartciTimer(const PTimeInterval value) { ciTimer = value; }
894 
897  void StopciTimer();
898 
901  PBoolean IsctTimerRunning() { return ciTimer.IsRunning(); }
902 
905  PDECLARE_NOTIFIER(PTimer, H45011Handler, OnCallIntrudeTimeOut);
906 
907  protected:
908  State ciState; // Call state of this connection
909  PTimer ciTimer; // Call Intrusion Timer - Handles all six timers CI-T1 to CI-T6,
916  int ciCICL;
918 };
919 
920 
921 #endif // OPAL_H450
922 
923 #endif // OPAL_H323_H450PDU_H
924 
925 
PString transferringCallToken
Definition: h450pdu.h:506
virtual void AttachToSetup(H323SignalPDU &pdu)
virtual void AttachToAlerting(H323SignalPDU &pdu)
Definition: h450pdu.h:846
void BuildInterrogateResult(int invokeId, H4507_MWIInterrogateRes &interrogateResult)
virtual PBoolean OnReceivedInvoke(int opcode, int invokeId, int linkedId, PASN_OctetString *argument)
void BuildMessageWaiting(int invokeId, H4507_H323_MWI_Operations &mwiOp, PASN_Sequence &argument)
PBoolean WriteFacilityPDU(H323Connection &connection)
virtual void OnReceivedCallTransferComplete(int linkedId, PASN_OctetString *argument)
SendState
Definition: h450pdu.h:864
Definition: h450pdu.h:626
virtual void OnReceivedCallTransferIdentify(int linkedId)
void SendInvokeReject(int invokeId, int problem)
PTimer ctTimer
Definition: h450pdu.h:510
void SendReturnError(int returnError)
virtual PBoolean OnReceivedReject(int problemType, int problemNumber)
virtual PBoolean OnReceivedReturnError(int errorCode, X880_ReturnError &returnError)
virtual PBoolean OnReceivedInvoke(int opcode, int invokeId, int linkedId, PASN_OctetString *argument)
Definition: h450pdu.h:867
virtual PBoolean OnReceivedInvoke(X880_Invoke &invoke, H4501_InterpretationApdu &interpretation)
Definition: h450pdu.h:443
H450xDispatcher & dispatcher
Definition: h450pdu.h:171
PString activeCallToken
Definition: h450pdu.h:912
State GetState() const
Definition: h450pdu.h:582
PBoolean ctResponseSent
Definition: h450pdu.h:509
virtual void AttachToAlerting(H323SignalPDU &pdu)
Definition: h450pdu.h:874
PBoolean IsctTimerRunning()
Definition: h450pdu.h:901
void AttachSupplementaryServiceAPDU(H323SignalPDU &pdu)
Definition: h450pdu.h:849
H450xDispatcher(H323Connection &connection)
static void ParseEndpointAddress(H4501_EndpointAddress &address, PString &party)
State mwiState
Definition: h450pdu.h:681
Definition: h450pdu.h:844
Definition: h450pdu.h:179
Definition: h450pdu.h:854
virtual void AttachToAlerting(H323SignalPDU &pdu, unsigned numberOfCallsWaiting=0)
State
Definition: h450pdu.h:837
void OnReceivedCIRequestResult()
Definition: h323pdu.h:66
H4507Handler(H323Connection &connection, H450xDispatcher &dispatcher)
H450xHandlerDict opcodeHandler
Definition: h450pdu.h:262
void IntrudeCall(int CICL)
Definition: h450pdu.h:673
State holdState
Definition: h450pdu.h:586
Definition: h450pdu.h:858
virtual void AttachToReleaseComplete(H323SignalPDU &pdu)
void SetForcedReleaseAccepted()
const H323Connection & getAssociatedConnection() const
Definition: h450pdu.h:487
virtual PBoolean OnReceivedInvoke(int opcode, int invokeId, int linkedId, PASN_OctetString *argument)
Definition: h450pdu.h:843
void SendGeneralReject(int invokeId, int problem)
virtual PBoolean OnReceivedReturnError(X880_ReturnError &returnError)
PString intrudingCallToken
Definition: h450pdu.h:910
virtual PBoolean OnReceivedCallIntrusionForcedRelease(int linkedId, PASN_OctetString *argument)
Definition: h450pdu.h:575
virtual void AttachToReleaseComplete(H323SignalPDU &pdu)
PString CallToken
Definition: h450pdu.h:511
virtual void AttachToAlerting(H323SignalPDU &pdu)
virtual void AttachToReleaseComplete(H323SignalPDU &pdu)
PBoolean consultationTransfer
Definition: h450pdu.h:513
void BuildCallIntrusionImpending(int invokeId)
virtual void OnReceivedCallIntrusionRequest(int linkedId, PASN_OctetString *argument)
Definition: h450pdu.h:267
PDECLARE_NOTIFIER(PTimer, H4502Handler, OnCallTransferTimeOut)
Definition: h450pdu.h:579
void HandleCallTransferFailure(const int returnError)
PBoolean OnReceivedGetCIPLReturnError(int errorCode, const bool timerExpiry=false)
PBoolean IsctTimerRunning()
Definition: h450pdu.h:479
void OnReceivedCIGetCIPLResult(X880_ReturnResult &returnResult)
virtual void OnReceivedSubaddressTransfer(int linkedId, PASN_OctetString *argument)
void OnReceivedIdentifyReturnError(const bool timerExpiry=false)
void AddOpCode(unsigned opcode, H450xHandler *handler)
H4502Handler(H323Connection &connection, H450xDispatcher &dispatcher)
PBoolean DecodeArguments(PASN_OctetString *argString, PASN_Object &argObject, int absentErrorCode)
void BuildCallTransferInitiate(int invokeId, const PString &callIdentity, const PString &alias, const H323TransportAddress &address)
H4506Handler(H323Connection &connection, H450xDispatcher &dispatcher)
Definition: h450pdu.h:882
Definition: h450pdu.h:839
void StartciTimer(const PTimeInterval value)
Definition: h450pdu.h:893
virtual void OnReceivedCallWaitingIndication(int linkedId, PASN_OctetString *argument)
virtual void OnReceivedCallIntrusionNotification(int linkedId, PASN_OctetString *argument)
Definition: h450pdu.h:627
Definition: h450pdu.h:881
int ciCICL
Definition: h450pdu.h:916
void BuildCallTransferIdentify(int invokeId)
Definition: h450pdu.h:640
void ConsultationTransfer(const PString &primaryCallToken)
PBoolean isConsultationTransferSuccess()
Definition: h450pdu.h:503
State GetState() const
Definition: h450pdu.h:630
virtual void AttachErrorToPdu(H323SignalPDU &pdu, H4507_MessageWaitingIndicationErrors error)
virtual PBoolean OnReceivedReturnResult(X880_ReturnResult &returnResult)
virtual void OnReceivedCfbOverride(int linkedId, PASN_OctetString *argument)
virtual void OnReceivedRemoteCallHold(int linkedId)
Definition: h450pdu.h:876
Definition: h450pdu.h:856
State
Definition: h450pdu.h:625
Definition: h450pdu.h:841
Definition: h450pdu.h:576
PString transferringCallIdentity
Definition: h450pdu.h:507
virtual void OnReceivedCallTransferInitiate(int linkedId, PASN_OctetString *argument)
void OnReceivedInitiateReturnError(const bool timerExpiry=false)
virtual void OnReceivedLocalCallHold(int linkedId)
H323Connection & connection
Definition: h450pdu.h:260
X880_ReturnResult & BuildCallIntrusionForcedReleaseResult(int invokeId)
PString intrudingCallIdentity
Definition: h450pdu.h:911
State ctState
Definition: h450pdu.h:508
void SetAssociatedCallToken(const PString &token)
Definition: h450pdu.h:491
Definition: h450pdu.h:577
virtual void OnReceivedCallIntrusionGetCIPL(int linkedId, PASN_OctetString *argument)
void SendReturnErrorReject(int invokeId, int problem)
Definition: h450pdu.h:445
void SetConsultationTransferSuccess()
Definition: h450pdu.h:499
PTimer ciTimer
Definition: h450pdu.h:909
void SendInvokeReject(int problem)
virtual void OnReceivedCallTransferAbandon(int linkedId)
Definition: h450pdu.h:440
ReturnState ciReturnState
Definition: h450pdu.h:913
void SetIntrusionImpending()
State GetState() const
Definition: h450pdu.h:889
void BuildCallIntrusionForcedReleaseError()
Definition: h450pdu.h:866
void StopctTimer()
virtual PBoolean HandlePDU(const H323SignalPDU &pdu)
virtual PBoolean OnReceivedReturnResult(X880_ReturnResult &returnResult)
void BuildCallIntrusionForceRelesed(int invokeId)
void OnReceivedIdentifyReturnResult(X880_ReturnResult &returnResult)
virtual void AttachToConnect(H323SignalPDU &pdu)
void SendReturnResultReject(int problem)
virtual PBoolean OnReceivedInvoke(int opcode, int invokeId, int linkedId, PASN_OctetString *argument)
bool HoldCall(PBoolean localHold)
State
Definition: h450pdu.h:574
virtual PBoolean OnReceivedReturnResult(X880_ReturnResult &returnResult)
Definition: h450pdu.h:883
virtual void OnReceivedRemoteCallRetrieve(int linkedId)
Definition: h450pdu.h:840
void SetIntrusionNotAuthorized()
Definition: h450pdu.h:845
Definition: h323con.h:137
virtual void OnReceivedCallTransferActive(int linkedId, PASN_OctetString *argument)
void AwaitSetupResponse(const PString &token, const PString &identity)
virtual void OnReceivedCallTransferSetup(int linkedId, PASN_OctetString *argument)
unsigned intrudingCallCICL
Definition: h450pdu.h:917
void OnReceivedSetupReturnError(int errorCode, const bool timerExpiry=false)
void SendReturnResultReject(int invokeId, int problem)
virtual void AttachToConnect(H323SignalPDU &pdu)
virtual void AttachToSetup(H323SignalPDU &pdu)
virtual void AttachToReleaseComplete(H323SignalPDU &pdu)
Definition: h450pdu.h:877
virtual void OnReceivedCallIntrusionIsolate(int linkedId, PASN_OctetString *argument)
H450xHandler(H323Connection &connection, H450xDispatcher &dispatcher)
void SendReturnError(int invokeId, int returnError)
void BuildCallWaiting(int invokeId, int numCallsWaiting)
void BuildCallIntrusionForcedRelease(int invokeId, int CICL)
Definition: h450pdu.h:578
virtual PBoolean OnReceivedInvoke(int opcode, int invokeId, int linkedId, PASN_OctetString *argument)
State
Definition: h450pdu.h:672
virtual PBoolean OnReceivedInvoke(int opcode, int invokeId, int linkedId, PASN_OctetString *argument)=0
virtual void OnReceivedCallTransferUpdate(int linkedId, PASN_OctetString *argument)
void BuildCallIntrusionGetCIPL(int invokeId)
PARRAY(H323CapabilitiesList, H323Capability)
Definition: h450pdu.h:847
virtual void AttachToConnect(H323SignalPDU &pdu)
Generate ciGenerateState
Definition: h450pdu.h:915
void BuildCallTransferAbandon(int invokeId)
State GetState() const
Definition: h450pdu.h:677
X880_Invoke & BuildInvoke(int invokeId, int operation)
PDECLARE_NOTIFIER(PTimer, H45011Handler, OnCallIntrudeTimeOut)
Definition: h450pdu.h:101
virtual void AttachToConnect(H323SignalPDU &pdu)
void StopciTimer()
virtual void OnReceivedCallWaiting(int linkedId, PASN_OctetString *argument)
Definition: h450pdu.h:57
PDICTIONARY(H323CallIdentityDict, PString, H323Connection)
void AwaitSetupResponse(const PString &token, const PString &identity)
Generate
Definition: h450pdu.h:853
virtual PBoolean OnReceivedReject(int problemType, int problemNumber)
State cwState
Definition: h450pdu.h:634
Definition: h450pdu.h:868
virtual PBoolean OnReceivedReturnError(int errorCode, X880_ReturnError &returnError)
virtual PBoolean OnReceivedReturnResult(X880_ReturnResult &returnResult)
void BuildCallTransferSetup(int invokeId, const PString &callIdentity)
void OnReceivedSetupReturnResult()
virtual void AttachToAlerting(H323SignalPDU &pdu)
Definition: h450pdu.h:865
Definition: h450pdu.h:590
bool RetrieveCall()
Definition: h450pdu.h:842
void OnReceivedInitiateReturnResult()
void HandleConsultationTransfer(const PString &callIdentity, H323Connection &incoming)
H45011Handler(H323Connection &connection, H450xDispatcher &dispatcher)
unsigned nextInvokeId
Definition: h450pdu.h:263
State GetState() const
Definition: h450pdu.h:450
void StartctTimer(const PTimeInterval value)
Definition: h450pdu.h:471
ReturnState
Definition: h450pdu.h:873
Definition: h323ep.h:82
virtual void AttachToSetup(H323SignalPDU &pdu)
virtual void OnReceivedLocalCallRetrieve(int linkedId)
X880_ReturnError & BuildReturnError(int invokeId, int error)
Definition: h450pdu.h:518
const PString & getTransferringCallToken() const
Definition: h450pdu.h:495
virtual void AttachInterrogateResultToPdu(H323SignalPDU &pdu, H4507_MWIInterrogateRes &interrogateResult)
Definition: h450pdu.h:444
virtual void OnReceivedCallIntrusionSilentMonitor(int linkedId, PASN_OctetString *argument)
X880_ReturnResult & BuildReturnResult(int invokeId)
Definition: transaddr.h:62
Definition: h450pdu.h:860
State
Definition: h450pdu.h:439
virtual void OnReceivedRemoteUserAlerting(int linkedId, PASN_OctetString *argument)
virtual void AttachToSetup(H323SignalPDU &pdu)
void SendReturnErrorReject(int problem)
H323EndPoint & endpoint
Definition: h450pdu.h:169
State ciState
Definition: h450pdu.h:908
Definition: h450pdu.h:685
virtual void onReceivedAdmissionReject(const int returnError)
virtual PBoolean OnReceivedReturnError(int errorCode, X880_ReturnError &returnError)
void SendGeneralReject(int problem)
PBoolean GetRemoteCallIntrusionProtectionLevel(const PString &intrusionCallToken, unsigned intrusionCICL)
SendState ciSendState
Definition: h450pdu.h:914
H450xHandlerArray handlers
Definition: h450pdu.h:261
unsigned currentInvokeId
Definition: h450pdu.h:172
virtual PBoolean OnReceivedReject(X880_Reject &reject)
Definition: h450pdu.h:884
virtual void AttachToSetup(H323SignalPDU &setupPDU, H4507_H323_MWI_Operations &mwiOp, PASN_Sequence &argument)
H323Connection & connection
Definition: h450pdu.h:170
unsigned GetInvokeId() const
Definition: h450pdu.h:165
Definition: h450pdu.h:838
unsigned GetNextInvokeId() const
Definition: h450pdu.h:257
bool TransferCall(const PString &remoteParty, const PString &callIdentity)
X880_Reject & BuildReject(int invokeId)
virtual void OnReceivedCallIntrusionWOBRequest(int linkedId, PASN_OctetString *argument)
PBoolean OnReceivedInvokeReturnError(int errorCode, const bool timerExpiry=false)
H4504Handler(H323Connection &connection, H450xDispatcher &dispatcher)
Definition: h450pdu.h:674