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

IP电话/视频会议

开发平台:

WINDOWS

  1. //@DELB
  2. /*
  3.  * $Revision: 1.1 $
  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. ////////////////////////////////////////////////////////////////
  20. // File : h4503items.h                                        //
  21. //                                                            //
  22. // This file defines the classes for the Item classes used    // 
  23. // for H.450.3 Call Diversion Supplementary Service           // 
  24. //                                                            //
  25. // History:                                                   //
  26. //  09_Nov_1998 Created                                       //
  27. //                                                            //
  28. //                                                            //
  29. ////////////////////////////////////////////////////////////////
  30. #if (!defined(__H4503ITEM_H__))
  31. #define __H4503ITEM_H__
  32. #define BMPSTRING_MAX 128
  33. // Forward declarations
  34. class ItemBasicService;
  35. class ItemCallingInfo;
  36. class ItemDiversionCounter;
  37. class ItemDiversionReason;
  38. class ItemDivertedToAddress;
  39. class ItemNominatedInfo;
  40. class ItemNominatedNr;
  41. class ItemOriginalCalledInfo;
  42. class ItemOriginalCalledNr;
  43. class ItemProcedure;
  44. class ItemRedirectingInfo;
  45. class ItemServedUserNr;
  46. class ItemSubscriptionOption;
  47. struct EmCallDiversionExtension;
  48. struct EmCallDiversionOperationsExtensionSeq;
  49. struct EmActivateDiversionQArg;
  50. struct EmDeactivateDiversionQArg;
  51. struct EmInterrogateDiversionQArg;
  52. struct EmCheckRestrictionArg;
  53. struct EmCallReroutingArg;
  54. struct EmDivertingLegInformation1Arg;
  55. struct EmDivertingLegInformation2Arg;
  56. struct EmDivertingLegInformation3Arg;
  57. struct EmDivertingLegInformation4Arg;
  58. struct EmIntResult;
  59. struct EmIntResultList;
  60. struct EmCallDiversionUnspecifiedParameter;
  61. //@DELE
  62. //////////////////////////////////////////////////////
  63. //  Item Classes
  64. //{///////////////////////////////////////////////////
  65. /* 
  66.  *  This is a base class for the Call Diversion argumentExtension
  67.  *  and resultExtension field.
  68.  *  @Name: ItemCDExt
  69.  *  @Description:
  70.  * This base class is derived by most of the H.450.3 argument
  71.  * and result classes.  It used to access the extension field
  72.  *      in those classes.
  73.  *
  74.  * The GetNumExtensions(), GetExtensionSeq() and GetNonStdData() 
  75.  * methods will return a H450_INCONSISTENT_TYPES error if used 
  76.  * on the wrong extension type.
  77.  * @Caveats:
  78.  * For incoming arguments and result objects, use the GetType()
  79.  * method first, then the approprite Get method.
  80.  *
  81.  * @See:
  82.  * - most H.450.3 argument & result classes
  83.  */
  84. class DLLEXPORT ItemCDExt
  85. {
  86.     protected:
  87. // Constructor
  88. ItemCDExt();
  89. public:
  90. // Destructor
  91. virtual ~ItemCDExt();
  92. // This is to get the extension type.
  93. // @Name: GetType
  94. // @Description:
  95. // Gets the type used in the extension field.
  96. //  A SetType method is not provided because both the
  97. // AddExtension() and SetNonStdData() methods below set the
  98.          // extension choice prior to setting the specific field.
  99. // @Returns:
  100. // -type
  101. // @See:
  102. // - enum H4501ExtensionType
  103. virtual int GetType();
  104.          // This adds an H4501Extension to the call diversion
  105. // extensionSeq field of the extension.
  106. // @Name: AddExtension
  107. // @Description:
  108. // Add an H4501Extension to the extensionSeq field in
  109. // the extension.
  110. // @Arguments:
  111. // -reference to H4501Extension class with extensionSet data
  112. // @Returns:
  113. // -ProtReturnCode:
  114. // -H450_SUCCESS -success
  115. // -H450_MEM_ALLOC_FAILED  -set failed
  116. // -H450_INVALID_PARAM     -incorrect input parameter
  117. virtual ProtReturnCode AddExtension(H4501Extension &ext);
  118.          // This gets the the number of H4501Extensions in the extension
  119. // field
  120. // @Name: GetNumExtensions
  121. // @Description:
  122. // Gets the number of H4501Extensions in the call diversion
  123. // extensionSeq field of the extension.
  124. // @Arguments:
  125. // -reference to int for the list length
  126. // @Returns:
  127. // -number of H4501Extensions in the list
  128. // -ProtReturnCode:
  129. // -H450_SUCCESS -success
  130. // -H450_ITEM_NOT_PRESENT -item was not set
  131. virtual ProtReturnCode GetNumExtensions(int &count);
  132.          // This gets the a list of extensions in the extension field
  133. // @Name: GetExtensions
  134. // @Description:
  135. // Gets the list of H4501Extensions in the call diversion
  136. // extensionSeq field of the extension.
  137. // @Arguments:
  138. // -reference to int for the list length
  139. // @Returns:
  140. // -list of H4501Extensions
  141. // -number of H4501Extensions copied into the list
  142. // -ProtReturnCode:
  143. // -H450_SUCCESS -success
  144. // -H450_ITEM_NOT_PRESENT -item was not set
  145. // -H450_INCONSISTENT_TYPES -not H4501Extensions
  146. // @Caveats:
  147. //  Use GetNumExtensions() first
  148. virtual ProtReturnCode GetExtensions(H4501Extension list[], int &count);
  149. // This sets the nonStandardData.
  150. // @Name: SetNonStdData
  151. // @Description:
  152. // Sets the H450NonStdParam in the call diversion
  153. // extension.
  154. // @Arguments:
  155. // -reference to H450NonStdParam
  156. // @Returns:
  157. // -ProtReturnCode:
  158. // -H450_SUCCESS -success
  159. // -H450_MEM_ALLOC_FAILED  -set failed
  160. // -H450_INVALID_PARAM     -incorrect input parameter
  161. // @Caveats:
  162. // Note that the name H450NonStdParam will change to 
  163. // H225CSNonStdParameter in a future release of the stack
  164. virtual ProtReturnCode SetNonStdData(H450NonStdParam &nsp);
  165. // This gets the nonStandardData.
  166. // @Name: GetNonStdData
  167. // @Description:
  168. // Gets the H450NonStdParam from the call diversion
  169. // extension.
  170. // @Arguments:
  171. // -reference to H450NonStdParam
  172. // @Returns:
  173. // -H450NonStdParam
  174. // -ProtReturnCode:
  175. // -H450_SUCCESS -success
  176. // -H450_MEM_ALLOC_FAILED -set failed
  177. // -H450_INCONSISTENT_TYPES -not H450NonStdParam
  178. virtual ProtReturnCode GetNonStdData(H450NonStdParam &nsp);
  179. //@DELB
  180. protected:
  181. EmCallDiversionOperationsExtensionSeq *mExtSeqPtr;
  182. EmNonStandardParameter *mNonStdPtr;
  183. void Attach(EmCallDiversionExtension *);
  184. unsigned short *mExtType;
  185. int mIsValid;
  186. //@DELE
  187. };
  188. /*
  189.  *   This is the base class for the basicService field.
  190.  * @Name: ItemBasicService
  191.  *  @Description:
  192.  * Base class for setting and getting the basicService field
  193.  * as specified in H.450.3
  194.  * @Arguments:
  195.  * set takes a int
  196.  * get takes a reference to a int
  197.  * @See:
  198.  * - enum H4503BasicService
  199.  * - H4503IntResult, H4503CDActivateDiversionQArg,
  200.  *   H4503CDDeactivateDiversionQArg, H4503CDInterrogateDiversionQArg,
  201.  *   H4503CDCheckRestrictionArg
  202.  */
  203. class DLLEXPORT ItemBasicService
  204. {
  205. protected:
  206. // Constructor
  207. ItemBasicService();
  208. public:
  209. // Destructor
  210. virtual ~ItemBasicService();
  211. // This sets the basicService field.
  212. // @Name: SetBasicService
  213. // @Description:
  214. // Sets the basicService field
  215. // @Arguments:
  216. // -int with basicService value
  217. // @Returns:
  218. // -ProtReturnCode:
  219. // -H450_SUCCESS -success.
  220. // -H450_MEM_ALLOC_FAILED -set failed
  221. // @See:
  222. // - enum H4503BasicService
  223. virtual ProtReturnCode SetBasicService(int);
  224. // This gets the basicService field.
  225. // @Name: GetBasicService
  226. // @Description:
  227. // Gets the value of the basicService field
  228. // @Arguments:
  229. // -reference to int for basicService
  230. // @Returns:
  231. // -basicService
  232. // -ProtReturnCode:
  233. // -H450_SUCCESS -success.
  234. // -H450_MEM_ALLOC_FAILED -get failed
  235. // -H450_ITEM_NOT_PRESENT -item not present
  236. // @See:
  237. // - enum H4503BasicService
  238. virtual ProtReturnCode GetBasicService(int &);
  239. //@DELB
  240. // protected sections are for protocol internal use.
  241. protected:
  242. int    *mBasicServicePtr;
  243. // Call Attach in derived class constructor
  244. void Attach(int *);
  245. int mIsValid;
  246. //@DELE
  247. };
  248. /*
  249.  *   This is the base class for the callingInfo field.
  250.  * @Name: ItemCallingInfo
  251.  *  @Description:
  252.  * Base class for setting and getting the callingInfo field
  253.  * as specified in H.450.3
  254.  * @Arguments:
  255.  * set takes two args
  256.  * - unsigned short *value, and int length (max length = 128)
  257.  * get takes a reference to two args
  258.  * - unsigned short *&value, and int &length
  259.  * @See:
  260.  * - H4503CDCallReroutingArg, H4503CDDivertingLegInformation4Arg
  261.  */
  262. class DLLEXPORT ItemCallingInfo
  263. {
  264. protected:
  265. // Constructor
  266. ItemCallingInfo();
  267. public:
  268. // Destructor
  269. virtual ~ItemCallingInfo();
  270. // This sets the callingInfo field.
  271. // @Name: SetCallingInfo
  272. // @Description:
  273. // Sets the callingInfo field
  274. // @Arguments:
  275. // -pointer to unsigned short array
  276. // -array length
  277. // @Returns:
  278. // -ProtReturnCode:
  279. // -H450_SUCCESS -success.
  280. // -H450_MEM_ALLOC_FAILED -set failed
  281. // -H450_INVALID_PARAM -incorrect input parameter
  282. ProtReturnCode SetCallingInfo(unsigned short *, int);
  283. // This gets the callingInfo field.
  284. // @Name: GetCallingInfo
  285. // @Description:
  286. // Gets the array from the callingInfo field
  287. // @Arguments:
  288. // -reference to array pointer for callingInfo data
  289. // -reference to int for callingInfo length
  290. // @Returns:
  291. // -pointer to BMP string array and length
  292. // -ProtReturnCode:
  293. // -H450_SUCCESS -success.
  294. // -H450_ITEM_NOT_PRESENT -item not present
  295. ProtReturnCode GetCallingInfo(unsigned short *&, int &);
  296. //@DELB
  297. // protected sections are for protocol internal use.
  298. protected:
  299. EmBMPString128    *mCallingInfoPtr;
  300. // Call Attach in derived class constructor
  301. void Attach(EmBMPString128 *);
  302. int mIsValid;
  303. //@DELE
  304. };
  305. /*
  306.  *   This is the base class for the diversionCounter field.
  307.  * @Name: ItemDiversionCounter
  308.  *  @Description:
  309.  * Base class for setting and getting the diversionCounter field
  310.  * as specified in H.450.3
  311.  * @Arguments:
  312.  * set takes a unsigned short
  313.  * get takes a reference to a unsigned short
  314.  * @See:
  315.  * - H4503CDCallReroutingArg, H4503CDDivertingLegInformation2Arg
  316.  */
  317. class DLLEXPORT ItemDiversionCounter
  318. {
  319. protected:
  320. // Constructor
  321. ItemDiversionCounter();
  322. public:
  323. // Destructor
  324. virtual ~ItemDiversionCounter();
  325. // This sets the diversionCounter field.
  326. // @Name: SetDiversionCounter
  327. // @Description:
  328. // Sets the diversionCounter field
  329. // @Arguments:
  330. // -unsigned short with diversionCounter value
  331. // @Returns:
  332. // -ProtReturnCode:
  333. // -H450_SUCCESS -success.
  334. // -H450_MEM_ALLOC_FAILED -set failed
  335. virtual ProtReturnCode SetDiversionCounter(unsigned short);
  336. // This gets the diversionCounter field.
  337. // @Name: GetDiversionCounter
  338. // @Description:
  339. // Gets the value of the diversionCounter field
  340. // @Arguments:
  341. // -reference to unsigned short for diversionCounter
  342. // @Returns:
  343. // -diversionCounter
  344. // -ProtReturnCode:
  345. // -H450_SUCCESS -success.
  346. // -H450_MEM_ALLOC_FAILED -get failed
  347. // -H450_ITEM_NOT_PRESENT -item not present
  348. virtual ProtReturnCode GetDiversionCounter(unsigned short &);
  349. //@DELB
  350. // protected sections are for protocol internal use.
  351. protected:
  352. unsigned short    *mDiversionCounterPtr;
  353. // Call Attach in derived class constructor
  354. void Attach(unsigned short *);
  355. int mIsValid;
  356. //@DELE
  357. };
  358.  
  359. /*
  360.  *   This is the base class for the diversionReason field.
  361.  * @Name: ItemDiversionReason
  362.  *  @Description:
  363.  * Base class for setting and getting the diversionReason field
  364.  * as specified in H.450.3
  365.  * @Arguments:
  366.  * set takes a int
  367.  * get takes a reference to a int
  368.  * @See:
  369.  * - enum H4503Reason
  370.  * - H4503CDDivertingLegInformation1Arg,
  371.  *   H4503CDDivertingLegInformation2Arg,
  372.  *   H4503CDDivertingLegInformation4Arg
  373.  */
  374. class DLLEXPORT ItemDiversionReason
  375. {
  376. protected:
  377. // Constructor
  378. ItemDiversionReason();
  379. public:
  380. // Destructor
  381. virtual ~ItemDiversionReason();
  382. // This sets the diversionReason field.
  383. // @Name: SetDiversionReason
  384. // @Description:
  385. // Sets the diversionReason field
  386. // @Arguments:
  387. // -int with diversionReason value
  388. // @Returns:
  389. // -ProtReturnCode:
  390. // -H450_SUCCESS -success.
  391. // -H450_MEM_ALLOC_FAILED -set failed
  392. // @See:
  393. // - enum H4503Reason
  394. virtual ProtReturnCode SetDiversionReason(int);
  395. // This gets the diversionReason field.
  396. // @Name: GetDiversionReason
  397. // @Description:
  398. // Gets the value of the diversionReason field
  399. // @Arguments:
  400. // -reference to int for diversionReason
  401. // @Returns:
  402. // -diversionReason
  403. // -ProtReturnCode:
  404. // -H450_SUCCESS -success.
  405. // -H450_MEM_ALLOC_FAILED -get failed
  406. // -H450_ITEM_NOT_PRESENT -item not present
  407. // @See:
  408. // - enum H4503Reason
  409. virtual ProtReturnCode GetDiversionReason(int &);
  410. //@DELB
  411. // protected sections are for protocol internal use.
  412. protected:
  413. int    *mDiversionReasonPtr;
  414. // Call Attach in derived class constructor
  415. void Attach(int *);
  416. int mIsValid;
  417. //@DELE
  418. };
  419. /*
  420.  *   This is the base class for the divertedToAddress field.
  421.  * @Name: ItemDivertedToAddress
  422.  *  @Description:
  423.  * Base class for setting and getting the divertedToAddress field
  424.  * as specified in H.450.3
  425.  * @Arguments:
  426.  * Both set and get take a reference to a H4501EndpointAddr
  427.  * @See:
  428.  * - H4503IntResult, H4503CDActivateDiversionQArg
  429.  */
  430. class DLLEXPORT ItemDivertedToAddress
  431. {
  432. protected:
  433. // Constructor
  434. ItemDivertedToAddress();
  435. public:
  436. // Destructor
  437. virtual ~ItemDivertedToAddress();
  438. // This sets the divertedToAddress field.
  439. // @Name: SetDivertedToAddress
  440. // @Description:
  441. // Sets the divertedToAddress field with an H4501EndpointAddr class
  442. // @Arguments:
  443. // -reference to H4501EndpointAddr class with divertedToAddress data
  444. // @Returns:
  445. // -ProtReturnCode:
  446. // -H450_SUCCESS -success.
  447. // -H450_MEM_ALLOC_FAILED -set failed
  448. // -H450_INVALID_PARAM -incorrect input parameter
  449. virtual ProtReturnCode SetDivertedToAddress(H4501EndpointAddr &);
  450. // This gets the divertedToAddress field.
  451. // @Name: GetDivertedToAddress
  452. // @Description:
  453. // Gets an H4501EndpointAddr class from the divertedToAddress field
  454. // @Arguments:
  455. // -reference to H4501EndpointAddr class for divertedToAddress data
  456. // @Returns:
  457. // -H4501EndpointAddr with divertedToAddress data
  458. // -ProtReturnCode:
  459. // -H450_SUCCESS -success.
  460. // -H450_MEM_ALLOC_FAILED -get failed
  461. // -H450_ITEM_NOT_PRESENT -item not present
  462. // -H450_INVALID_PARAM -incorrect input parameter
  463. virtual ProtReturnCode GetDivertedToAddress(H4501EndpointAddr &);
  464. //@DELB
  465. // protected sections are for protocol internal use.
  466. protected:
  467. EmEndpointAddress    *mDivertedToAddressPtr;
  468. // Call Attach in derived class constructor
  469. void Attach(EmEndpointAddress *);
  470. int mIsValid;
  471. //@DELE
  472. };
  473. /*
  474.  *   This is the base class for the nominatedInfo field.
  475.  * @Name: ItemNominatedInfo
  476.  *  @Description:
  477.  * Base class for setting and getting the nominatedInfo field
  478.  * as specified in H.450.3
  479.  * @Arguments:
  480.  * set takes two args
  481.  * - unsigned short *value, and int length
  482.  * get takes a reference to two args
  483.  * - unsigned short *&value, and int &length
  484.  * @See:
  485.  * - H4503CDDivertingLegInformation1Arg,
  486.  *   H4503CDDivertingLegInformation4Arg
  487.  */
  488. class DLLEXPORT ItemNominatedInfo
  489. {
  490. protected:
  491. // Constructor
  492. ItemNominatedInfo();
  493. public:
  494. // Destructor
  495. virtual ~ItemNominatedInfo();
  496. // This sets the nominatedInfo field.
  497. // @Name: SetNominatedInfo
  498. // @Description:
  499. // Sets the nominatedInfo field
  500. // @Arguments:
  501. // -pointer to unsigned short array
  502. // -array length
  503. // @Returns:
  504. // -ProtReturnCode:
  505. // -H450_SUCCESS -success.
  506. // -H450_MEM_ALLOC_FAILED -set failed
  507. // -H450_INVALID_PARAM -incorrect input parameter
  508. ProtReturnCode SetNominatedInfo(unsigned short *, int);
  509. // This gets the nominatedInfo field.
  510. // @Name: GetNominatedInfo
  511. // @Description:
  512. // Gets the array from the nominatedInfo field
  513. // @Arguments:
  514. // -reference to array pointer for nominatedInfo data
  515. // -reference to int for nominatedInfo length
  516. // @Returns:
  517. // -pointer to BMP string array and length
  518. // -ProtReturnCode:
  519. // -H450_SUCCESS -success.
  520. // -H450_ITEM_NOT_PRESENT -item not present
  521. ProtReturnCode GetNominatedInfo(unsigned short *&, int &);
  522. //@DELB
  523. // protected sections are for protocol internal use.
  524. protected:
  525. EmBMPString128    *mNominatedInfoPtr;
  526. // Call Attach in derived class constructor
  527. void Attach(EmBMPString128 *);
  528. int mIsValid;
  529. //@DELE
  530. };
  531. /*
  532.  *   This is the base class for the nominatedNr field.
  533.  * @Name: ItemNominatedNr
  534.  *  @Description:
  535.  * Base class for setting and getting the nominatedNr field
  536.  * as specified in H.450.3
  537.  * @Arguments:
  538.  * Both set and get take a reference to a H4501EndpointAddr
  539.  * @See:
  540.  * - H4503CDDivertingLegInformation1Arg,
  541.  *   H4503CDDivertingLegInformation4Arg
  542.  */
  543. class DLLEXPORT ItemNominatedNr
  544. {
  545. protected:
  546. // Constructor
  547. ItemNominatedNr();
  548. public:
  549. // Destructor
  550. virtual ~ItemNominatedNr();
  551. // This sets the nominatedNr field.
  552. // @Name: SetNominatedNr
  553. // @Description:
  554. // Sets the nominatedNr field with an H4501EndpointAddr class
  555. // @Arguments:
  556. // -reference to H4501EndpointAddr class with nominatedNr data
  557. // @Returns:
  558. // -ProtReturnCode:
  559. // -H450_SUCCESS -success.
  560. // -H450_MEM_ALLOC_FAILED -set failed
  561. // -H450_INVALID_PARAM -incorrect input parameter
  562. virtual ProtReturnCode SetNominatedNr(H4501EndpointAddr &);
  563. // This gets the nominatedNr field.
  564. // @Name: GetNominatedNr
  565. // @Description:
  566. // Gets an H4501EndpointAddr class from the nominatedNr field
  567. // @Arguments:
  568. // -reference to H4501EndpointAddr class for nominatedNr data
  569. // @Returns:
  570. // -H4501EndpointAddr with nominatedNr data
  571. // -ProtReturnCode:
  572. // -H450_SUCCESS -success.
  573. // -H450_MEM_ALLOC_FAILED -get failed
  574. // -H450_ITEM_NOT_PRESENT -item not present
  575. // -H450_INVALID_PARAM -incorrect input parameter
  576. virtual ProtReturnCode GetNominatedNr(H4501EndpointAddr &);
  577. //@DELB
  578. // protected sections are for protocol internal use.
  579. protected:
  580. EmEndpointAddress    *mNominatedNrPtr;
  581. // Call Attach in derived class constructor
  582. void Attach(EmEndpointAddress *);
  583. int mIsValid;
  584. //@DELE
  585. };
  586.  
  587. /*
  588.  *   This is the base class for the originalCalledInfo field.
  589.  * @Name: ItemOriginalCalledInfo
  590.  *  @Description:
  591.  * Base class for setting and getting the originalCalledInfo field
  592.  * as specified in H.450.3
  593.  * @Arguments:
  594.  * set takes two args
  595.  * - unsigned short *value, and int length
  596.  * get takes a reference to two args
  597.  * - unsigned short *&value, and int &length
  598.  * @See:
  599.  * - H4503CDCallReroutingArg, H4503CDDivertingLegInformation2Arg
  600.  */
  601. class DLLEXPORT ItemOriginalCalledInfo
  602. {
  603. protected:
  604. // Constructor
  605. ItemOriginalCalledInfo();
  606. public:
  607. // Destructor
  608. virtual ~ItemOriginalCalledInfo();
  609. // This sets the originalCalledInfo field.
  610. // @Name: SetOriginalCalledInfo
  611. // @Description:
  612. // Sets the originalCalledInfo field
  613. // @Arguments:
  614. // -pointer to unsigned short array
  615. // -array length
  616. // @Returns:
  617. // -ProtReturnCode:
  618. // -H450_SUCCESS -success.
  619. // -H450_MEM_ALLOC_FAILED -set failed
  620. // -H450_INVALID_PARAM -incorrect input parameter
  621. ProtReturnCode SetOriginalCalledInfo(unsigned short *, int);
  622. // This gets the originalCalledInfo field.
  623. // @Name: GetOriginalCalledInfo
  624. // @Description:
  625. // Gets the array from the originalCalledInfo field
  626. // @Arguments:
  627. // -reference to array pointer for originalCalledInfo data
  628. // -reference to int for originalCalledInfo length
  629. // @Returns:
  630. // -pointer to BMP string array and length
  631. // -ProtReturnCode:
  632. // -H450_SUCCESS -success.
  633. // -H450_ITEM_NOT_PRESENT -item not present
  634. ProtReturnCode GetOriginalCalledInfo(unsigned short *&, int &);
  635. //@DELB
  636. // protected sections are for protocol internal use.
  637. protected:
  638. EmBMPString128    *mOriginalCalledInfoPtr;
  639. // Call Attach in derived class constructor
  640. void Attach(EmBMPString128 *);
  641. int mIsValid;
  642. //@DELE
  643. };
  644. /*
  645.  *   This is the base class for the originalCalledNr field.
  646.  * @Name: ItemOriginalCalledNr
  647.  *  @Description:
  648.  * Base class for setting and getting the originalCalledNr field
  649.  * as specified in H.450.3
  650.  * @Arguments:
  651.  * Both set and get take a reference to a H4501EndpointAddr
  652.  * @See:
  653.  * - H4503CDCallReroutingArg, H4503CDDivertingLegInformation2Arg
  654.  */
  655. class DLLEXPORT ItemOriginalCalledNr
  656. {
  657. protected:
  658. // Constructor
  659. ItemOriginalCalledNr();
  660. public:
  661. // Destructor
  662. virtual ~ItemOriginalCalledNr();
  663. // This sets the originalCalledNr field.
  664. // @Name: SetOriginalCalledNr
  665. // @Description:
  666. // Sets the originalCalledNr field with an H4501EndpointAddr class
  667. // @Arguments:
  668. // -reference to H4501EndpointAddr class with originalCalledNr data
  669. // @Returns:
  670. // -ProtReturnCode:
  671. // -H450_SUCCESS -success.
  672. // -H450_MEM_ALLOC_FAILED -set failed
  673. // -H450_INVALID_PARAM -incorrect input parameter
  674. virtual ProtReturnCode SetOriginalCalledNr(H4501EndpointAddr &);
  675. // This gets the originalCalledNr field.
  676. // @Name: GetOriginalCalledNr
  677. // @Description:
  678. // Gets an H4501EndpointAddr class from the originalCalledNr field
  679. // @Arguments:
  680. // -reference to H4501EndpointAddr class for originalCalledNr data
  681. // @Returns:
  682. // -H4501EndpointAddr with originalCalledNr data
  683. // -ProtReturnCode:
  684. // -H450_SUCCESS -success.
  685. // -H450_MEM_ALLOC_FAILED -get failed
  686. // -H450_ITEM_NOT_PRESENT -item not present
  687. // -H450_INVALID_PARAM -incorrect input parameter
  688. virtual ProtReturnCode GetOriginalCalledNr(H4501EndpointAddr &);
  689. //@DELB
  690. // protected sections are for protocol internal use.
  691. protected:
  692. EmEndpointAddress    *mOriginalCalledNrPtr;
  693. // Call Attach in derived class constructor
  694. void Attach(EmEndpointAddress *);
  695. int mIsValid;
  696. //@DELE
  697. };
  698. /*
  699.  *   This is the base class for the procedure field.
  700.  * @Name: ItemProcedure
  701.  *  @Description:
  702.  * Base class for setting and getting the procedure field
  703.  * as specified in H.450.3
  704.  * @Arguments:
  705.  * set takes a int
  706.  * get takes a reference to a int
  707.  * @See:
  708.  * - enum H4503Procedure
  709.  * - H4503IntResult, H4503CDActivateDiversionQArg, 
  710.  *   H4503CDDeactivateDiversionQArg, H4503CDInterrogateDiversionQArg
  711.  */
  712. class DLLEXPORT ItemProcedure
  713. {
  714. protected:
  715. // Constructor
  716. ItemProcedure();
  717. public:
  718. // Destructor
  719. virtual ~ItemProcedure();
  720. // This sets the procedure field.
  721. // @Name: SetProcedure
  722. // @Description:
  723. // Sets the procedure field
  724. // @Arguments:
  725. // -int with procedure value
  726. // @Returns:
  727. // -ProtReturnCode:
  728. // -H450_SUCCESS -success.
  729. // -H450_MEM_ALLOC_FAILED -set failed
  730. // @See:
  731. // - enum H4503Procedure
  732. virtual ProtReturnCode SetProcedure(int);
  733. // This gets the procedure field.
  734. // @Name: GetProcedure
  735. // @Description:
  736. // Gets the value of the procedure field
  737. // @Arguments:
  738. // -reference to int for procedure
  739. // @Returns:
  740. // -procedure
  741. // -ProtReturnCode:
  742. // -H450_SUCCESS -success.
  743. // -H450_MEM_ALLOC_FAILED -get failed
  744. // -H450_ITEM_NOT_PRESENT -item not present
  745. // @See:
  746. // - enum H4503Procedure
  747. virtual ProtReturnCode GetProcedure(int &);
  748. //@DELB
  749. // protected sections are for protocol internal use.
  750. protected:
  751. int    *mProcedurePtr;
  752. // Call Attach in derived class constructor
  753. void Attach(int *);
  754. int mIsValid;
  755. //@DELE
  756. };
  757.  
  758. /*
  759.  *   This is the base class for the redirectingInfo field.
  760.  * @Name: ItemRedirectingInfo
  761.  *  @Description:
  762.  * Base class for setting and getting the redirectingInfo field
  763.  * as specified in H.450.3
  764.  * @Arguments:
  765.  * set takes two args
  766.  * - unsigned short *value, and int length
  767.  * get takes a reference to two args
  768.  * - unsigned short *&value, and int &length
  769.  * @See:
  770.  * - H4503CDCallReroutingArg, H4503CDDivertingLegInformation1Arg,
  771.  *   H4503CDDivertingLegInformation2Arg
  772.  */
  773. class DLLEXPORT ItemRedirectingInfo
  774. {
  775. protected:
  776. // Constructor
  777. ItemRedirectingInfo();
  778. public:
  779. // Destructor
  780. virtual ~ItemRedirectingInfo();
  781. // This sets the redirectingInfo field.
  782. // @Name: SetRedirectingInfo
  783. // @Description:
  784. // Sets the redirectingInfo field
  785. // @Arguments:
  786. // -pointer to unsigned short array
  787. // -array length
  788. // @Returns:
  789. // -ProtReturnCode:
  790. // -H450_SUCCESS -success.
  791. // -H450_MEM_ALLOC_FAILED -set failed
  792. // -H450_INVALID_PARAM -incorrect input parameter
  793. ProtReturnCode SetRedirectingInfo(unsigned short *, int);
  794. // This gets the redirectingInfo field.
  795. // @Name: GetRedirectingInfo
  796. // @Description:
  797. // Gets the array from the redirectingInfo field
  798. // @Arguments:
  799. // -reference to array pointer for redirectingInfo data
  800. // -reference to int for redirectingInfo length
  801. // @Returns:
  802. // -pointer to BMP string array and length
  803. // -ProtReturnCode:
  804. // -H450_SUCCESS -success.
  805. // -H450_ITEM_NOT_PRESENT -item not present
  806. ProtReturnCode GetRedirectingInfo(unsigned short *&, int &);
  807. //@DELB
  808. // protected sections are for protocol internal use.
  809. protected:
  810. EmBMPString128    *mRedirectingInfoPtr;
  811. // Call Attach in derived class constructor
  812. void Attach(EmBMPString128 *);
  813. int mIsValid;
  814. //@DELE
  815. };
  816.   
  817. /*
  818.  *   This is the base class for the servedUserNr field.
  819.  * @Name: ItemServedUserNr
  820.  *  @Description:
  821.  * Base class for setting and getting the servedUserNr field
  822.  * as specified in H.450.3
  823.  * @Arguments:
  824.  * Both set and get take a reference to a H4501EndpointAddr
  825.  * @See:
  826.  * - H4503IntResult, H4503CDActivateDiversionQArg,
  827.  *   H4503CDDeactivateDiversionQArg, H4503CDInterrogateDiversionQArg,
  828.  *   H4503CDCheckRestrictionArg
  829.  */
  830. class DLLEXPORT ItemServedUserNr
  831. {
  832. protected:
  833. // Constructor
  834. ItemServedUserNr();
  835. public:
  836. // Destructor
  837. virtual ~ItemServedUserNr();
  838. // This sets the servedUserNr field.
  839. // @Name: SetServedUserNr
  840. // @Description:
  841. // Sets the servedUserNr field with an H4501EndpointAddr class
  842. // @Arguments:
  843. // -reference to H4501EndpointAddr class with servedUserNr data
  844. // @Returns:
  845. // -ProtReturnCode:
  846. // -H450_SUCCESS -success.
  847. // -H450_MEM_ALLOC_FAILED -set failed
  848. // -H450_INVALID_PARAM -incorrect input parameter
  849. virtual ProtReturnCode SetServedUserNr(H4501EndpointAddr &);
  850. // This gets the servedUserNr field.
  851. // @Name: GetServedUserNr
  852. // @Description:
  853. // Gets an H4501EndpointAddr class from the servedUserNr field
  854. // @Arguments:
  855. // -reference to H4501EndpointAddr class for servedUserNr data
  856. // @Returns:
  857. // -H4501EndpointAddr with servedUserNr data
  858. // -ProtReturnCode:
  859. // -H450_SUCCESS -success.
  860. // -H450_MEM_ALLOC_FAILED -get failed
  861. // -H450_ITEM_NOT_PRESENT -item not present
  862. // -H450_INVALID_PARAM -incorrect input parameter
  863. virtual ProtReturnCode GetServedUserNr(H4501EndpointAddr &);
  864. //@DELB
  865. // protected sections are for protocol internal use.
  866. protected:
  867. EmEndpointAddress    *mServedUserNrPtr;
  868. // Call Attach in derived class constructor
  869. void Attach(EmEndpointAddress *);
  870. int mIsValid;
  871. //@DELE
  872. };
  873. /*
  874.  *   This is the base class for the subscriptionOption field.
  875.  * @Name: ItemSubscriptionOption
  876.  *  @Description:
  877.  * Base class for setting and getting the subscriptionOption field
  878.  * as specified in H.450.3
  879.  * @Arguments:
  880.  * set takes a int
  881.  * get takes a reference to a int
  882.  * @See:
  883.  * - enum H4503SubscriptionOption
  884.  * - H4503CDCallReroutingArg, H4503CDDivertingLegInformation1Arg,
  885.  *   H4503CDDivertingLegInformation4Arg
  886.  */
  887. class DLLEXPORT ItemSubscriptionOption
  888. {
  889. protected:
  890. // Constructor
  891. ItemSubscriptionOption();
  892. public:
  893. // Destructor
  894. virtual ~ItemSubscriptionOption();
  895. // This sets the subscriptionOption field.
  896. // @Name: SetSubscriptionOption
  897. // @Description:
  898. // Sets the subscriptionOption field
  899. // @Arguments:
  900. // -int with subscriptionOption value
  901. // @Returns:
  902. // -ProtReturnCode:
  903. // -H450_SUCCESS -success.
  904. // -H450_MEM_ALLOC_FAILED -set failed
  905. // @See:
  906. // - enum H4503SubscriptionOption
  907. virtual ProtReturnCode SetSubscriptionOption(int);
  908. // This gets the subscriptionOption field.
  909. // @Name: GetSubscriptionOption
  910. // @Description:
  911. // Gets the value of the subscriptionOption field
  912. // @Arguments:
  913. // -reference to int for subscriptionOption
  914. // @Returns:
  915. // -subscriptionOption
  916. // -ProtReturnCode:
  917. // -H450_SUCCESS -success.
  918. // -H450_MEM_ALLOC_FAILED -get failed
  919. // -H450_ITEM_NOT_PRESENT -item not present
  920. // @See:
  921. // - enum H4503SubscriptionOption
  922. virtual ProtReturnCode GetSubscriptionOption(int &);
  923. //@DELB
  924. // protected sections are for protocol internal use.
  925. protected:
  926. int    *mSubscriptionOptionPtr;
  927. // Call Attach in derived class constructor
  928. void Attach(int *);
  929. int mIsValid;
  930. //@DELE
  931. };
  932. //}///////////////////////////////////////////////////
  933. #endif  /* __H4503ITEM_H__ */