h4502resarg.h
上传用户:hnnddl
上传日期:2007-01-06
资源大小:3580k
文件大小:23k
源码类别:

IP电话/视频会议

开发平台:

WINDOWS

  1. //@DELB
  2. /*
  3.  * $Revision: 1.4 $
  4.  * $Date: 1998/12/21 16:51:46 $
  5.  */
  6. ////////////////////////////////////////////////////////////////
  7. //           Copyright (c) 1996 Lucent Technologies           //
  8. //                   All Rights Reserved                      //
  9. //                                                            //
  10. //                   THIS IS UNPUBLISHED                      //
  11. //                   PROPRIETARY SOURCE                       //
  12. //               CODE OF Lucent Technologies                  //
  13. //                       AND elemedia                         //
  14. //                                                            //
  15. //      The copyright notice above does not evidence any      //
  16. //     actual or intended publication of such source code     //
  17. ////////////////////////////////////////////////////////////////
  18. ////////////////////////////////////////////////////////////////
  19. // File : h4502resarg.h                                       //
  20. //                                                            //
  21. // This file defines the 2 different classes for the          //
  22. // RESULTS (ResultType) field and the 7 different classes     //
  23. // for the ARGUMENT (ArgumentType) fields that are used in    //
  24. // H.450.2 Call Transfer Operations.                          //
  25. //                                                            //
  26. // History:                                                   //
  27. //  22 July 1998 Created                                      //
  28. //                                                            //
  29. //                                                            //
  30. ////////////////////////////////////////////////////////////////
  31. #if (!defined(__H4502RESARG_H__))
  32. #define __H4502RESARG_H__
  33. // Forward declarations
  34. class H450Arg;
  35. class H450Res;
  36. class ItemExt;
  37. class ItemCallId; 
  38. class ItemNumber; 
  39. class ItemInfo; 
  40. class ItemElements; 
  41. class H4502DummyRes;
  42. class H4502CTIdentifyRes;
  43. class H4502DummyArg;
  44. class H4502CTInitiateArg;
  45. class H4502CTSetupArg;
  46. class H4502CTUpdateArg;
  47. class H4502CTSubaddressArg;
  48. class H4502CTCompleteArg;
  49. class H4502CTActiveArg;
  50. struct EmCallTransferOperationsExtensionSeq;
  51. struct EmNonStandardParameter;
  52. struct EmEndpointAddress;
  53. struct EmBMPString128;
  54. struct EmH225InformationElement;
  55. struct EmCallTransferExtension;
  56. struct EmCTIdentifyRes;
  57. struct EmCTInitiateArg;
  58. struct EmCTSetupArg;
  59. struct EmCTUpdateArg;
  60. struct EmSubaddressTransferArg;
  61. struct EmCTCompleteArg;
  62. struct EmCTActiveArg;
  63. //@DELE
  64. // -  enum Extension Type
  65. // @See:
  66. // - ItemExt
  67. enum H4501ExtensionType
  68. {
  69. EXTT_INVALID = 0, // invalid selection
  70. EXTT_EXTENSION_SEQUENCE, // the CHOICE is extensionSeq
  71. EXTT_NON_STANDARD_DATA // the CHOICE is nonStandardData
  72. };
  73. // -  enum Argument type 
  74. // @See:
  75. // - H450Arg
  76. enum H450ArgumentType
  77. {
  78. ARGT_INVALID = 0, // invalid selection
  79. // H.450.2
  80. ARGT_DUMMY, // DummyArg
  81. ARGT_INITIATE, // CTInitiateArg
  82. ARGT_SETUP, // CTSetupArg
  83. ARGT_UPDATE, // CTUpdateArg
  84. ARGT_SUBADDRESS, // subaddressTransferArg
  85. ARGT_COMPLETE, // CTCompleteArg
  86. ARGT_ACTIVE, // CTActiveArg
  87. // H.450.3
  88. ARGT_ACTIVATEDIVQ, // CDActivateDiversionQArg
  89. ARGT_DEACTIVATEDIVQ, // CDDeactivateDiversionQArg
  90. ARGT_INTERROGATEDIVQ, // CDInterrogateDiversionQArg
  91. ARGT_CHECKRESTRICTION, // CDCheckRestrictionArg
  92. ARGT_CALLREROUTING, // CDCallReroutingArg
  93. ARGT_DIVLEGINFO1, // CDDivertingLegInformation1Arg
  94. ARGT_DIVLEGINFO2, // CDDivertingLegInformation2Arg
  95. ARGT_DIVLEGINFO3, // CDDivertingLegInformation3Arg
  96. ARGT_DIVLEGINFO4, // CDDivertingLegInformation4Arg
  97. ARGT_CFNRDIVLEGFAILED, // CDCfnrDivertedLegFailedArg
  98. ARGT_MAXIMUM // CDused for range checking
  99. };
  100. // -  enum Result type 
  101. // @See:
  102. // - H450Res
  103. enum H450ResultType
  104. {
  105. REST_INVALID = 0, // invalid selection
  106. // H.450.2
  107. REST_DUMMY, // DummyRes
  108. REST_IDENTIFY, // CTIdentifyRes
  109. // H.450.3
  110. REST_ACTIVATEDIVQ, // CDActivateDiversionQRes
  111. REST_DEACTIVATEDIVQ, // CDDeactivateDiversionQRes
  112. REST_INTERROGATEDIVQ, // CDInterrogateDiversionQRes
  113. REST_CHECKRESTRICTION, // CDCheckRestrictionRes
  114. REST_CALLREROUTING, // CDCallReroutingRes
  115. REST_MAXIMUM // used for range checking
  116. };
  117. // -  enum End type 
  118. // @See:
  119. // - H4502CTCompleteArg
  120. enum H4502EndType 
  121. {
  122. ETP_INVALID = -1, // invalid selection
  123. ETP_PRIMARY_END = 0,
  124. ETP_SECONDARY_END = 1,
  125. ETP_MAXIMUM // used for range checking
  126. };
  127. // -  enum Call Status type 
  128. // @See:
  129. // - H4502CTCompleteArg
  130. enum H4502CallStatusType
  131. {
  132. CST_INVALID = -1, // invalid selection
  133. CST_ANSWERED = 0,
  134. CST_ALERTING = 1,
  135. CST_MAXIMUM // used for range checking
  136. };
  137. /* 
  138.  *  This is a base class for the argumentExtension and resultExtension field.
  139.  *  It is used in all of the argument classes and result classes.
  140.  *
  141.  * This class abstracts the:
  142.  *<PRE>
  143.  * *Extension CHOICE
  144.  * {
  145.  *      extensionSeq        ExtensionSeq,
  146.  *      nonStandardData     NonStandardParameter
  147.  * }
  148.  *</PRE>
  149.  *  field which is common to DummyArg, DummyRes, CTInitiateArg,
  150.  *  CTSetupArg, CTIdentifyRes, CTUpdateArg, SubaddressTransferArg,
  151.  *  and CTActiveArg ASN.1 definitions.  
  152.  *
  153.  *  The resultExtension CHOICE is mandatory when used in DummyRes
  154.  *  but optional in CTIdentifyRes
  155.  *  The argumentExtension CHOICE is mandatory when used in DummyArg 
  156.  *  but optional in CTInitiateArg, CTSetupArg, CTUpdateArg,
  157.  *  CTSubaddressArg, CTCompleteArg, and CTActiveArg.
  158.  *
  159.  * The GetNumExtensions(), GetExtensionSeq() and GetNonStdData() 
  160.  * methods will return a H450_INCONSISTENT_TYPES error if used 
  161.  * on the wrong extension type.
  162.  * @Caveats:
  163.  * For incoming arguments and result objects, use the GetType()
  164.  * method first, then the approprite Get method.
  165.  *
  166.  * @See:
  167.  * - Used in H4502DummyRes H4502CTIdentifyRes H4502DummyArg
  168.  * H4502CTInitiateArg H4502CTSetupArg H4502CTUpdateArg
  169.  * H4502CTSubaddressArg H4502CTCompleteArg 
  170.  * H4502CTActiveArg
  171.  */
  172. class DLLEXPORT ItemExt
  173. {
  174.     protected:
  175. // Constructor
  176. ItemExt();
  177. public:
  178. // Destructor
  179. virtual ~ItemExt();
  180. // This is to get the *Extension type.
  181. //
  182. // A SetType method is not provided because both the
  183. // AddExtension() and SetNonStdData() methods below set the
  184.          // extension choice prior to setting the specific field.
  185. // @See:
  186. // - enum H4501ExtensionType
  187. virtual int GetType();
  188.          // This adds an argumentExtension or resultExtension
  189. // to the call transfer argument or result.
  190. virtual ProtReturnCode AddExtension(H4501Extension &ext);
  191.          // This gets the the number of extensions
  192. // in the call transfer arguments or results.
  193. virtual ProtReturnCode GetNumExtensions(int &count);
  194.          // This gets the a list of extensions
  195. // from the call transfer arguments or results.
  196. // @Caveats:
  197. // Use GetNumExtensions() first
  198. virtual ProtReturnCode GetExtensions(H4501Extension list[], int &count);
  199. // This sets the nonStandardData.
  200. // @Caveats:
  201. // Note that the name H450NonStdParam will change to 
  202. // H225CSNonStdParameter in a future release of the stack
  203. virtual ProtReturnCode SetNonStdData(H450NonStdParam &nsp);
  204. // This gets the nonStandardData.
  205. virtual ProtReturnCode GetNonStdData(H450NonStdParam &nsp);
  206. //@DELB
  207. protected:
  208. EmCallTransferOperationsExtensionSeq *mExtSeqPtr;
  209. EmNonStandardParameter *mNonStdPtr;
  210. void Attach(EmCallTransferExtension *);
  211. unsigned short *mExtType;
  212. int mIsValid;
  213. //@DELE
  214. };
  215. /*
  216.  *  This is a base class for the callIdentity field.
  217.  *  It is in the CTInitiateArg, CTSetupArg and CTIdentifyRes ASN.1
  218.  *  definitions.
  219.  *
  220.  * @See:
  221.  * - Used in H4502CTIdentifyRes H4502CTInitiateArg H4502CTSetupArg
  222.  */
  223. class DLLEXPORT ItemCallId 
  224. {
  225.     protected:
  226. // Constructor
  227. ItemCallId();
  228. public:
  229. // Destructor
  230. virtual ~ItemCallId();
  231. // Mandatory - this sets the callIdentity field.
  232. // It has a maximum length is 5, size 0 means empty.
  233. virtual ProtReturnCode SetCallID(char *, int len);
  234. // Mandatory - this gets the callIdentity field.
  235. virtual ProtReturnCode GetCallID(char *&, int &len);
  236. //@DELB
  237. // protected sections are for protocol internal use.
  238. protected:
  239. char *mId;
  240. void Attach(char *);
  241. int mIsValid;
  242. //@DELE
  243. };
  244. /*
  245.  *  This is a base class for the *Number field.
  246.  *  It is the redirectionNumber in CTUpdateArg and CTCompleteArg;
  247.  *  the reroutingNumber field in CTInitiate and CTIdentifyRes;
  248.  *  the transferingNumber in CTSetupArg;
  249.  *  and the connectedAddress field is in CTActiveArg.
  250.  *
  251.  * @See:
  252.  * - Used in H4502CTIdentifyRes H4502CTInitiateArg H4502CTSetupArg 
  253.  * H4502CTUpdateArg H4502CTCompleteArg H4502CTActiveArg 
  254.  */
  255. class DLLEXPORT ItemNumber 
  256. {
  257.     protected:
  258. // Constructor
  259. ItemNumber();
  260. public:
  261. // Destructor
  262. virtual ~ItemNumber();
  263. // Mandatory - this sets the endpointAddress field
  264. virtual ProtReturnCode SetNumber(H4501EndpointAddr &);
  265. // Mandatory - this gets the endpointAddress field
  266. virtual ProtReturnCode GetNumber(H4501EndpointAddr &);
  267. //@DELB
  268. // protected sections are for protocol internal use.
  269. protected:
  270. EmEndpointAddress *mEpAddrPtr;
  271. void Attach(EmEndpointAddress *);
  272. int mIsValid;
  273. //@DELE
  274. };
  275. /*
  276.  *  This is a base class for the *Info field.
  277.  *  It is redirectionInfo in CTUpdateArg and CTCompleteArg;
  278.  *  and the connectedInfo field is in CTActiveArg.
  279.  *
  280.  * @See:
  281.  * - Used in H4502CTUpdateArg H4502CTCompleteArg H4502CTActiveArg 
  282.  */
  283. class DLLEXPORT ItemInfo 
  284. {
  285.     protected:
  286. // Constructor
  287. ItemInfo();
  288. public:
  289. // Destructor
  290. virtual ~ItemInfo();
  291. // Optional - this sets the redirectionInfo/connectedInfo field.
  292. // It is a BMPString with a maximum length of 128.
  293. virtual ProtReturnCode SetInfo(unsigned short *, int len);
  294. // Optional - this gets the redirectionInfo/connectedInfo field
  295. virtual ProtReturnCode GetInfo(unsigned short *&, int &len);
  296. //@DELB
  297. // protected sections are for protocol internal use.
  298. protected:
  299. EmBMPString128 *mStrPtr;
  300. void Attach(EmBMPString128 *);
  301. int mIsValid;
  302. //@DELE
  303. };
  304. /*
  305.  *  This is a base class for the basicCallInfoElements field.
  306.  *  It is in CTUpdateArg, CTCompleteArg and CTActiveArg.
  307.  *
  308.  * @See:
  309.  * - Used in H4502CTUpdateArg H4502CTCompleteArg H4502CTActiveArg 
  310.  */
  311. class DLLEXPORT ItemElements 
  312. {
  313.     protected:
  314. // Constructor
  315. ItemElements();
  316. public:
  317. // Destructor
  318. virtual ~ItemElements();
  319. // Optional - this sets the basicCallInfoElements
  320. virtual ProtReturnCode SetH225IE(H4501H225IE &);
  321. // Optional - this gets the basicCallInfoElements
  322. virtual ProtReturnCode GetH225IE(H4501H225IE &);
  323. //@DELB
  324. // protected sections are for protocol internal use.
  325. protected:
  326. EmH225InformationElement *mIEPtr;
  327. void Attach(EmH225InformationElement *);
  328. int mIsValid;
  329. //@DELE
  330. };
  331. /*
  332.  *  This is the super class for the seven argument classes.
  333.  *  The classes are H4502DummyArg, H4502CTInitiateArg, H4502CTSetupArg,
  334.  *  H4502CTUpdate, H4502CTSubaddress, H4502CTCompleteArg,
  335.  *  and H4502CTActiveArg.
  336.  *
  337.  * @See:
  338.  * - Used in H4501Invoke H4502DummyArg H4502CTInitiateArg 
  339.  * H4502CTSetupArg H4502CTUpdateArg H4502CTSubaddressArg
  340.  * H4502CTCompleteArg H4502CTActiveArg
  341.  */
  342. class DLLEXPORT H450Arg
  343. {
  344.     public:
  345. // Constructor
  346. H450Arg(int type);
  347. // Destructor
  348. virtual ~H450Arg();
  349. // This gets the Argument type.
  350. // @See:
  351. // - enum H450ArgumentType
  352. int GetArgType();
  353. // This factory method creates the appropriate argument
  354. // of the specified type
  355. static ProtReturnCode Factory(H450Arg *&, int type);
  356. // Determines if the class has been sufficiently created
  357. virtual boolean Valid() = 0;
  358. //@DELB
  359.         // For protocol internal use.
  360.         virtual void *GetPriv() = 0;
  361.         virtual ProtReturnCode SetPriv(void *) = 0;
  362. protected:
  363. EmCallTransferExtension *mArgExtPtr;
  364. int mArgumentType;
  365. //@DELE
  366. };
  367. /*
  368.  *  This is the super class for the two result classes.
  369.  *  The classes are H4502DummyRes and H4502CTIdentifyRes.
  370.  *
  371.  * @See:
  372.  * - Used in H4501ReturnResult H4502DummyRes H4502CTIdentifyRes 
  373.  */
  374. class DLLEXPORT H450Res
  375. {
  376.     public:
  377. // Constructor
  378. H450Res(int type);
  379. // Destructor
  380. virtual ~H450Res();
  381. // This gets the Result type.
  382. // @See:
  383. //  - enum H450ResultType
  384. int GetResType();
  385. // This factory method creates the appropriate result
  386. // of the specified type
  387. static ProtReturnCode Factory(H450Res *&, int type);
  388. // Determines if the class has been sufficiently created
  389. virtual boolean Valid() = 0;
  390. //@DELB
  391.         // For protocol internal use.
  392.         virtual void *GetPriv() = 0;
  393.         virtual ProtReturnCode SetPriv(void *) = 0;
  394. protected:
  395. EmCallTransferExtension *mResExtPtr;
  396. int mResultType;
  397. //@DELE
  398. };
  399. /* 
  400.  *  This defines the DummyRes result.
  401.  *  It is used in the RESULT field of the callTransferInitiate
  402.  *  and callTransferSetup H.450.2 Operations.
  403.  *
  404.  * Mandatory - use the methods from the base ItemExt 
  405.  * class for the single ASN.1 CHOICE field. 
  406.  *
  407.  * @See:
  408.  * - Used in H4501ReturnResult
  409.  */
  410. class DLLEXPORT H4502DummyRes : public H450Res, public ItemExt
  411. {
  412.     public:
  413. // Constructor
  414. H4502DummyRes();
  415. H4502DummyRes(H4502DummyRes &);
  416. // Destructor
  417. ~H4502DummyRes();
  418.         H4502DummyRes & operator=(H4502DummyRes &);
  419. // Determines if the class has been sufficiently created
  420.         boolean Valid();
  421. //@DELB
  422.         // For protocol internal use.
  423.         void *GetPriv();
  424.         ProtReturnCode SetPriv(void *);
  425. private:
  426. void Init();
  427. EmCallTransferExtension *mDumResPtr;
  428. //int mIsValid;
  429. //@DELE
  430. };
  431. /*  
  432.  *  This defines the CTIdentifyRes result.
  433.  *  It is used in the RESULT field of the callTransferIdentify
  434.  *  H.450.2 Operation.
  435.  *
  436.  * Mandatory - use the methods from the base ItemCallId class 
  437.  * for the callIdentity field. 
  438.  *
  439.  * Mandatory - use the methods from the base ItemNumber class 
  440.  * for the reroutingNumber field. 
  441.  *
  442.  * Optional - use the methods from the base ItemExt 
  443.  * class for the resultExtension field. 
  444.  *
  445.  * @See:
  446.  * - Used in H4501ReturnResult
  447.  */
  448. class DLLEXPORT H4502CTIdentifyRes : public H450Res, public ItemCallId,
  449.                                      public ItemNumber, public ItemExt
  450. {
  451.     public:
  452. // Constructor
  453. H4502CTIdentifyRes();
  454. H4502CTIdentifyRes(H4502CTIdentifyRes &);
  455. // Destructor
  456. ~H4502CTIdentifyRes();
  457.         H4502CTIdentifyRes & operator=(H4502CTIdentifyRes &);
  458. // Determines if the class has been sufficiently created
  459.         boolean Valid();
  460. //@DELB
  461.         // For protocol internal use.
  462.         void *GetPriv();
  463.         ProtReturnCode SetPriv(void *);
  464. private:
  465. void Init();
  466. EmCTIdentifyRes *mIdResPtr;
  467. //@DELE
  468. };
  469. /*  
  470.  *  This defines the DummyArg argument.
  471.  *  It is used in the ARGUMENT field of the callTransferIdentify and the 
  472.  *  CallTransferAbandon H.450.2 Operations.
  473.  *
  474.  * Mandatory - use the methods from the base ItemExt 
  475.  * class for the single ASN.1 CHOICE field. 
  476.  *
  477.  * @See:
  478.  * - Used in H4501Invoke
  479.  */
  480. class DLLEXPORT H4502DummyArg : public H450Arg, public ItemExt
  481. {
  482.     public:
  483. // Constructor
  484. H4502DummyArg();
  485. H4502DummyArg(H4502DummyArg &);
  486. // Destructor
  487. ~H4502DummyArg();
  488.         H4502DummyArg & operator=(H4502DummyArg &);
  489. // Determines if the class has been sufficiently created
  490.         boolean Valid();
  491. //@DELB
  492.         // For protocol internal use.
  493.         void *GetPriv();
  494.         ProtReturnCode SetPriv(void *);
  495. private:
  496. void Init();
  497. EmCallTransferExtension *mDumArgPtr;
  498. int mIsValid;
  499. //@DELE
  500. };
  501. /*  
  502.  *  This defines the CTInitiateArg argument.
  503.  *  It is used in the ARGUMENT field of the callTransferInitiate
  504.  *  H.450.2 Operation.
  505.  *
  506.  * Mandatory - use the methods from the base ItemCallId class 
  507.  * for the callIdentity field. 
  508.  *
  509.  * Mandatory - use the methods from the base ItemNumber class 
  510.  * for the reroutingNumber field. 
  511.  *
  512.  * Optional - use the methods from the base ItemExt 
  513.  * class for the argumentExtension field. 
  514.  *
  515.  * @See:
  516.  * - Used in H4501Invoke
  517.  */
  518. class DLLEXPORT H4502CTInitiateArg : public H450Arg, public ItemCallId, 
  519.                                      public ItemNumber, public ItemExt
  520. {
  521.     public:
  522. // Constructor
  523. H4502CTInitiateArg();
  524. H4502CTInitiateArg(H4502CTInitiateArg &);
  525. // Destructor
  526. ~H4502CTInitiateArg();
  527.         H4502CTInitiateArg & operator=(H4502CTInitiateArg &);
  528. // Determines if the class has been sufficiently created
  529.         boolean Valid();
  530. //@DELB
  531.         // For protocol internal use.
  532.         void *GetPriv();
  533.         ProtReturnCode SetPriv(void *);
  534. private:
  535. void Init();
  536. EmCTInitiateArg *mInArgPtr;
  537. //@DELE
  538. };
  539. /*  
  540.  *  This defines the CTSetupArg argument.
  541.  *  It is used in the ARGUMENT field of the callTransferSetup
  542.  *  H.450.2 Operation.
  543.  *
  544.  * Mandatory - use the methods from the base ItemCallId class 
  545.  * for the callIdentity field. 
  546.  *
  547.  * Optional - use the methods from the base ItemNumber class 
  548.  * for the transferingNumber field. 
  549.  *
  550.  * Optional - use the methods from the base ItemExt 
  551.  * class for the argumentExtension field. 
  552.  *
  553.  * @See:
  554.  * - Used in H4501Invoke
  555.  */
  556. class DLLEXPORT H4502CTSetupArg : public H450Arg, public ItemCallId, 
  557.                                   public ItemNumber, public ItemExt
  558. {
  559.     public:
  560. // Constructor
  561. H4502CTSetupArg();
  562. H4502CTSetupArg(H4502CTSetupArg &);
  563. // Destructor
  564. ~H4502CTSetupArg();
  565.         H4502CTSetupArg & operator=(H4502CTSetupArg &);
  566. // Determines if the class has been sufficiently created
  567.         boolean Valid();
  568. //@DELB
  569.         // For protocol internal use.
  570.         void *GetPriv();
  571.         ProtReturnCode SetPriv(void *);
  572. private:
  573. void Init();
  574. EmCTSetupArg *mSetArgPtr;
  575. //@DELE
  576. };
  577. /*  
  578.  *  This defines the CTUpdateArg argument.
  579.  *  It is used in the ARGUMENT field of the callTransferUpdate
  580.  *  H.450.2 Operation.
  581.  *
  582.  * Mandatory - use the methods from the base ItemNumber class 
  583.  * for the redirectionNumber field. 
  584.  *
  585.  * Optional - use the methods from the base ItemInfo class 
  586.  * for the redirectionInfo field. 
  587.  *
  588.  * Optional - use the methods from the base ItemElements class 
  589.  * for the basicCallInfoElements field. 
  590.  *
  591.  * Optional - use the methods from the base ItemExt 
  592.  * class for the argumentExtension field. 
  593.  *
  594.  * @See:
  595.  * - Used in H4501Invoke
  596.  */
  597. class DLLEXPORT H4502CTUpdateArg : public H450Arg, public ItemNumber,
  598.                                    public ItemInfo, public ItemElements,
  599.                                    public ItemExt
  600. {
  601.     public:
  602. // Constructor
  603. H4502CTUpdateArg();
  604. H4502CTUpdateArg(H4502CTUpdateArg &);
  605. // Destructor
  606. ~H4502CTUpdateArg();
  607.         H4502CTUpdateArg & operator=(H4502CTUpdateArg &);
  608. // Determines if the class has been sufficiently created
  609.         boolean Valid();
  610. //@DELB
  611.         // For protocol internal use.
  612.         void *GetPriv();
  613.         ProtReturnCode SetPriv(void *);
  614. private:
  615. void Init();
  616. EmCTUpdateArg *mUpPtr;
  617. //@DELE
  618. };
  619. /*  
  620.  *  This defines the subaddressTransferArg argument.
  621.  *  It is used in the ARGUMENT field of the subaddressTransfer
  622.  *  H.450.2 Operation.
  623.  *
  624.  * Optional - use the methods from the base ItemExt 
  625.  * class for the argumentExtension field. 
  626.  *
  627.  * @See:
  628.  * - Used in H4501Invoke
  629.  */
  630. class DLLEXPORT H4502CTSubaddressArg : public H450Arg, public ItemExt
  631. {
  632.     public:
  633. // Constructor
  634. H4502CTSubaddressArg();
  635. H4502CTSubaddressArg(H4502CTSubaddressArg &);
  636. // Destructor
  637. ~H4502CTSubaddressArg();
  638. // Mandatory - this sets the redirectionSubaddress field.
  639. ProtReturnCode SetRedirection(H4501PartySubaddress &);
  640. // Mandatory - this gets the redirectionSubaddress field.
  641. ProtReturnCode GetRedirection(H4501PartySubaddress &);
  642.         H4502CTSubaddressArg & operator=(H4502CTSubaddressArg &);
  643. // Determines if the class has been sufficiently created
  644.         boolean Valid();
  645. //@DELB
  646.         // For protocol internal use.
  647.         void *GetPriv();
  648.         ProtReturnCode SetPriv(void *);
  649. private:
  650. void Init();
  651. EmSubaddressTransferArg *mSubPtr;
  652. int mIsValid;
  653. //@DELE
  654. };
  655. /*  
  656.  *  This defines the CTCompleteArg argument. 
  657.  *  It is used in the ARGUMENT field of the callTransferComplete 
  658.  *  H.450.2 Operation.
  659.  *
  660.  * Mandatory - use the methods from the base ItemNumber class 
  661.  * for the redirectionNumber field. 
  662.  *
  663.  * Optional - use the methods from the base ItemElements class 
  664.  * for the basicCallInfoElements field. 
  665.  *
  666.  * Optional - use the methods from the base ItemInfo class 
  667.  * for the redirectionInfo field. 
  668.  *
  669.  * Optional - use the methods from the base ItemExt 
  670.  * class for the argumentExtension field. 
  671.  *
  672.  * @See:
  673.  * - Used in H4501Invoke
  674.  */
  675. class DLLEXPORT H4502CTCompleteArg : public H450Arg, public ItemNumber,
  676.                                      public ItemElements, public ItemInfo,
  677.                                      public ItemExt
  678. {
  679.     public:
  680. // Constructor
  681. H4502CTCompleteArg();
  682. H4502CTCompleteArg(H4502CTCompleteArg &);
  683. // Destructor
  684. ~H4502CTCompleteArg();
  685. // Mandatory - this sets the endDesignation field 
  686. // @See:
  687. // - enum H4502EndType
  688. ProtReturnCode SetEndType(int);
  689. // Mandatory - this gets the endDesignation field 
  690. // @See:
  691. // - enum H4502EndType
  692. ProtReturnCode GetEndType(int &);
  693. // Optional - this sets the callStatus field.
  694. //
  695. // Using this method is optional because a default 
  696. // is specified by the H.450.2 specification. 
  697. //
  698. // The default is CST_ANSWERED.
  699. // @See:
  700. // - enum H4502CallStatusType
  701. ProtReturnCode SetCallStatus(int);
  702. // Optional - this gets the callStatus field.
  703. // @See:
  704. // - enum H4502CallStatusType
  705. ProtReturnCode GetCallStatus(int &);
  706.         H4502CTCompleteArg & operator=(H4502CTCompleteArg &);
  707. // Determines if the class has been sufficiently created
  708.         boolean Valid();
  709. //@DELB
  710.         // For protocol internal use.
  711.         void *GetPriv();
  712.         ProtReturnCode SetPriv(void *);
  713. private:
  714. void Init();
  715. EmCTCompleteArg *mComPtr;
  716. int mEndSet;
  717. int mStatusSet;
  718. //@DELE
  719. };
  720. /*  
  721.  *  This defines the CTActiveArg argument.
  722.  *  It is used in the ARGUMENT field of the callTransferActive 
  723.  *  H.450.2 Operation.
  724.  *
  725.  * Mandatory - use the methods from the base ItemNumber class 
  726.  * for the connectedAddress field. 
  727.  *
  728.  * Optional - use the methods from the base ItemElements class 
  729.  * for the basicCallInfoElements field. 
  730.  *
  731.  * Optional - use the methods from the base ItemInfo class 
  732.  * for the connectedInfo field. 
  733.  *
  734.  * Optional - use the methods from the base ItemExt 
  735.  * class for the argumentExtension field. 
  736.  *
  737.  * @See:
  738.  * - Used in H4501Invoke
  739.  */
  740. class DLLEXPORT H4502CTActiveArg : public H450Arg, public ItemNumber,
  741.                                    public ItemElements, public ItemInfo,
  742.                                    public ItemExt
  743. {
  744.     public:
  745. // Constructor
  746. H4502CTActiveArg();
  747. H4502CTActiveArg(H4502CTActiveArg &);
  748. // Destructor
  749. ~H4502CTActiveArg();
  750.         H4502CTActiveArg & operator=(H4502CTActiveArg &);
  751. // Determines if the class has been sufficiently created
  752.         boolean Valid();
  753. //@DELB
  754.         // For protocol internal use.
  755.         void *GetPriv();
  756.         ProtReturnCode SetPriv(void *);
  757. private:
  758. void Init();
  759. EmCTActiveArg *mActPtr;
  760. //@DELE
  761. };
  762. //@DELB
  763. #endif //  __H4502RESARG_H__
  764. //@DELE