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

IP电话/视频会议

开发平台:

WINDOWS

  1. /*
  2.  * $Revision: 1.4 $
  3.  * $Date: 1999/03/30 21:55:44 $
  4.  */
  5. ////////////////////////////////////////////////////////////////
  6. //               Copyright (c) 1996,97 Lucent Technologies    //
  7. //                       All Rights Reserved                  //
  8. //                                                            //
  9. //                       THIS IS UNPUBLISHED                  //
  10. //                       PROPRIETARY SOURCE                   //
  11. //                   CODE OF Lucent Technologies              //
  12. //       AND elemedia    //
  13. //                                                            //
  14. //           The copyright notice above does not evidence any //
  15. //          actual or intended publication of such source code//
  16. ////////////////////////////////////////////////////////////////
  17. //
  18. /////////////////////////////////////////////////////////////////
  19. // File : h225ie.h        //
  20. //                                                             //
  21. //    //
  22. //    //
  23. // History:    //
  24. //    //
  25. //  26_Mar_1997 Created    //
  26. // 28_Apr_1997 Code Review PASS1, added Dump routines.    //
  27. // 29_Apr_1997 Code Review PASS2.    //
  28. //  08_Jul_1997 Merged Sun5 changes.    //
  29. //  03_Aug_1998 Added GetCodingStd() and SetCodingStd()        //
  30. //              to H225CSBearerCapabilityIE class              //
  31. //  03_Aug_1998 Added H225CSBCCodingStandard enum              //
  32. // 18_Mar_1999 Replaced CauseIE implementation to be inline   //
  33. // recommendation Q.850      //
  34. //    //
  35. /////////////////////////////////////////////////////////////////
  36. #if !defined(__H225IE_H__)
  37. #define __H225IE_H__
  38. #include "q931/q931ie.h"
  39. // Forward declaration.
  40. class Logger;
  41. // used in bearer capability information element.
  42. enum H225CSBCCodingStandard
  43. {
  44. BC_CS_ITUT = 0, // IUT-T/CCITT standardized coding
  45. BC_CS_ISO = 1 // other international standard 
  46. };
  47. // used in bearer capability information element.
  48. enum H225CSBCInfoTransferCap
  49. {
  50. BC_ITC_SPEECH = 0x00, // Speech
  51. BC_ITC_UNRES_DIG = 0x08, // unrestricted digital information
  52. BC_ITC_RES_DIG = 0x09, // restricted ditigal information
  53. BC_ITC_31 = 0x10 // 3.1 kHz audio
  54. };
  55. // used in bearer capability information element.
  56. enum H225CSBCInfoTransferRate
  57. {
  58. BC_ITR_PACKET  = 0x00, // Packet mode.
  59. BC_ITR_64     = 0x10, // 64 kbit/s
  60. BC_ITR_2x64    = 0x11, // 2 x 64 kbit/s
  61. BC_ITR_384     = 0x13, // 384 kbit/s
  62. BC_ITR_1536    = 0x15, // 1536 kbit/s
  63. BC_ITR_1920    = 0x17, // 1920 kbit/s
  64. BC_ITR_MULTIRATE = 0x18 // multirate 
  65. };
  66. // used in bearer capability information element.
  67. enum H225CSBCLayer1Prot
  68. {
  69. BC_L1P_ULAW = 0x02, // G744 ulaw
  70. BC_L1P_ALAW = 0x03, // G711 alaw
  71. BC_L1P_VID = 0x05  // H.221 and H.242
  72. };
  73. //
  74. // The progress indicatior information element.
  75. //
  76. class DLLEXPORT H225CSProgressIndicatorIE : public Q931IE
  77. {
  78. public:
  79. // loc and desc are values from the enums
  80. // Q931ProgressIndicatorLoc and
  81. // Q931ProgressDesc respectively.
  82. // The only allowed loc values are
  83. // LOC_USER, LOC_PRIV_NET_LOCAL_USER
  84. // and LOC_PRIV_NET_REMOTE_USER.
  85. H225CSProgressIndicatorIE(int loc, int desc);
  86. H225CSProgressIndicatorIE();
  87. ~H225CSProgressIndicatorIE();
  88. ProtReturnCode SetLoc(int loc);
  89. ProtReturnCode GetLoc(int& loc);
  90. ProtReturnCode SetDesc(int desc);
  91. ProtReturnCode GetDesc(int& desc);
  92. // Override base class Set method.
  93. ProtReturnCode Set(char *buf, int length);
  94. H225CSProgressIndicatorIE & operator=(H225CSProgressIndicatorIE &);
  95. // For protocol internal use..
  96. void Dump(Logger *logger);
  97. };
  98. //
  99. // The bearer capability information element.
  100. //
  101. class DLLEXPORT H225CSBearerCapabilityIE : public Q931IE
  102. {
  103. public:
  104. H225CSBearerCapabilityIE();
  105. ~H225CSBearerCapabilityIE();
  106. // std is from enum H225CSBCCodingStandard
  107. ProtReturnCode GetCodingStd(int &std);
  108. ProtReturnCode SetCodingStd(int std);
  109. // cap is from enum H225CSBCInfoTransferCap
  110. ProtReturnCode GetInfoTransferCap(int &cap);
  111. ProtReturnCode SetInfoTransferCap(int cap);
  112. // rate is from enum H225CSBCInfoTransferRate
  113. ProtReturnCode GetInfoTransferRate(int &rate);
  114. ProtReturnCode SetInfoTransferRate(int rate);
  115. // If multirate is specified as info transfer rate, 
  116. // then use this method to speficy the multiplier to 
  117. // the base rate.
  118. ProtReturnCode GetRateMultiplier(int &value);
  119. ProtReturnCode SetRateMultiplier(int value);
  120. // Set the Layer 1 protocol to Alaw, Mlaw, H221 or H242
  121. // value is from enum H225CSBCLayer1Prot.
  122. ProtReturnCode GetLayer1Prot(int &value);
  123. ProtReturnCode SetLayer1Prot(int value);
  124. H225CSBearerCapabilityIE & operator=(H225CSBearerCapabilityIE &);
  125. // For Protocol internal use.
  126. void Dump(Logger *logger);
  127. private:
  128. ProtReturnCode alloc(int is_multirate);
  129. };
  130. // This class encapsulates the Cause Information Element as specified in
  131. // recommendations Q.931,Q.850.
  132. // @See: 
  133. // -Q931CauseIE
  134. //
  135. // @Version: PX3230S Version 2.3.2 
  136. class DLLEXPORT H225CSCauseIE : public Q931CauseIE
  137. {
  138. public:
  139. H225CSCauseIE();
  140. H225CSCauseIE(unsigned char coding_std, unsigned char location, 
  141. unsigned char value);
  142. ~H225CSCauseIE();
  143. virtual ProtReturnCode SetCodingStd(unsigned char cause_code_std);
  144. virtual ProtReturnCode GetCodingStd(unsigned char& cause_code_std);
  145. virtual ProtReturnCode SetLocation(unsigned char cause_location);
  146. virtual ProtReturnCode GetLocation(unsigned char& cause_location);
  147. virtual ProtReturnCode SetCause(unsigned char cause_value);
  148. virtual ProtReturnCode GetCause(unsigned char& cause_value);
  149. H225CSCauseIE& operator=(H225CSCauseIE&);
  150. // For Protocol internal use..
  151. void  Dump(Logger *logger);
  152. };
  153. #endif //__H225IE_H__