D:/Storage/CVS_Head/h323plus/src/h225_1.cxx

00001 //
00002 // h225_1.cxx
00003 //
00004 // Code automatically generated by asnparse.
00005 //
00006 
00007 #ifdef P_USE_PRAGMA
00008 #pragma implementation "h225.h"
00009 #endif
00010 
00011 #include <ptlib.h>
00012 #include "h225.h"
00013 
00014 #define new PNEW
00015 
00016 
00017 #if ! H323_DISABLE_H225
00018 
00019 #include "h235_t.cxx"
00020 
00021 
00022 
00023 #ifndef PASN_NOPRINTON
00024 const static PASN_Names Names_H225_ReleaseCompleteReason[]={
00025       {"noBandwidth",0}
00026      ,{"gatekeeperResources",1}
00027      ,{"unreachableDestination",2}
00028      ,{"destinationRejection",3}
00029      ,{"invalidRevision",4}
00030      ,{"noPermission",5}
00031      ,{"unreachableGatekeeper",6}
00032      ,{"gatewayResources",7}
00033      ,{"badFormatAddress",8}
00034      ,{"adaptiveBusy",9}
00035      ,{"inConf",10}
00036      ,{"undefinedReason",11}
00037      ,{"facilityCallDeflection",12}
00038      ,{"securityDenied",13}
00039      ,{"calledPartyNotRegistered",14}
00040      ,{"callerNotRegistered",15}
00041      ,{"newConnectionNeeded",16}
00042      ,{"nonStandardReason",17}
00043      ,{"replaceWithConferenceInvite",18}
00044      ,{"genericDataReason",19}
00045      ,{"neededFeatureNotSupported",20}
00046      ,{"tunnelledSignallingRejected",21}
00047      ,{"invalidCID",22}
00048      ,{"securityError",23}
00049      ,{"hopCountExceeded",24}
00050 };
00051 #endif
00052 //
00053 // ReleaseCompleteReason
00054 //
00055 
00056 H225_ReleaseCompleteReason::H225_ReleaseCompleteReason(unsigned tag, PASN_Object::TagClass tagClass)
00057   : PASN_Choice(tag, tagClass, 12, TRUE
00058 #ifndef PASN_NOPRINTON
00059     ,(const PASN_Names *)Names_H225_ReleaseCompleteReason,25
00060 #endif
00061 )
00062 {
00063 }
00064 
00065 
00066 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00067 H225_ReleaseCompleteReason::operator H225_NonStandardParameter &() const
00068 #else
00069 H225_ReleaseCompleteReason::operator H225_NonStandardParameter &()
00070 {
00071 #ifndef PASN_LEANANDMEAN
00072   PAssert(PIsDescendant(PAssertNULL(choice), H225_NonStandardParameter), PInvalidCast);
00073 #endif
00074   return *(H225_NonStandardParameter *)choice;
00075 }
00076 
00077 
00078 H225_ReleaseCompleteReason::operator const H225_NonStandardParameter &() const
00079 #endif
00080 {
00081 #ifndef PASN_LEANANDMEAN
00082   PAssert(PIsDescendant(PAssertNULL(choice), H225_NonStandardParameter), PInvalidCast);
00083 #endif
00084   return *(H225_NonStandardParameter *)choice;
00085 }
00086 
00087 
00088 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00089 H225_ReleaseCompleteReason::operator H225_ConferenceIdentifier &() const
00090 #else
00091 H225_ReleaseCompleteReason::operator H225_ConferenceIdentifier &()
00092 {
00093 #ifndef PASN_LEANANDMEAN
00094   PAssert(PIsDescendant(PAssertNULL(choice), H225_ConferenceIdentifier), PInvalidCast);
00095 #endif
00096   return *(H225_ConferenceIdentifier *)choice;
00097 }
00098 
00099 
00100 H225_ReleaseCompleteReason::operator const H225_ConferenceIdentifier &() const
00101 #endif
00102 {
00103 #ifndef PASN_LEANANDMEAN
00104   PAssert(PIsDescendant(PAssertNULL(choice), H225_ConferenceIdentifier), PInvalidCast);
00105 #endif
00106   return *(H225_ConferenceIdentifier *)choice;
00107 }
00108 
00109 
00110 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00111 H225_ReleaseCompleteReason::operator H225_SecurityErrors &() const
00112 #else
00113 H225_ReleaseCompleteReason::operator H225_SecurityErrors &()
00114 {
00115 #ifndef PASN_LEANANDMEAN
00116   PAssert(PIsDescendant(PAssertNULL(choice), H225_SecurityErrors), PInvalidCast);
00117 #endif
00118   return *(H225_SecurityErrors *)choice;
00119 }
00120 
00121 
00122 H225_ReleaseCompleteReason::operator const H225_SecurityErrors &() const
00123 #endif
00124 {
00125 #ifndef PASN_LEANANDMEAN
00126   PAssert(PIsDescendant(PAssertNULL(choice), H225_SecurityErrors), PInvalidCast);
00127 #endif
00128   return *(H225_SecurityErrors *)choice;
00129 }
00130 
00131 
00132 BOOL H225_ReleaseCompleteReason::CreateObject()
00133 {
00134   switch (tag) {
00135     case e_noBandwidth :
00136     case e_gatekeeperResources :
00137     case e_unreachableDestination :
00138     case e_destinationRejection :
00139     case e_invalidRevision :
00140     case e_noPermission :
00141     case e_unreachableGatekeeper :
00142     case e_gatewayResources :
00143     case e_badFormatAddress :
00144     case e_adaptiveBusy :
00145     case e_inConf :
00146     case e_undefinedReason :
00147     case e_facilityCallDeflection :
00148     case e_securityDenied :
00149     case e_calledPartyNotRegistered :
00150     case e_callerNotRegistered :
00151     case e_newConnectionNeeded :
00152     case e_genericDataReason :
00153     case e_neededFeatureNotSupported :
00154     case e_tunnelledSignallingRejected :
00155     case e_invalidCID :
00156     case e_hopCountExceeded :
00157       choice = new PASN_Null();
00158       return TRUE;
00159     case e_nonStandardReason :
00160       choice = new H225_NonStandardParameter();
00161       return TRUE;
00162     case e_replaceWithConferenceInvite :
00163       choice = new H225_ConferenceIdentifier();
00164       return TRUE;
00165     case e_securityError :
00166       choice = new H225_SecurityErrors();
00167       return TRUE;
00168   }
00169 
00170   choice = NULL;
00171   return FALSE;
00172 }
00173 
00174 
00175 PObject * H225_ReleaseCompleteReason::Clone() const
00176 {
00177 #ifndef PASN_LEANANDMEAN
00178   PAssert(IsClass(H225_ReleaseCompleteReason::Class()), PInvalidCast);
00179 #endif
00180   return new H225_ReleaseCompleteReason(*this);
00181 }
00182 
00183 
00184 
00185 #ifndef PASN_NOPRINTON
00186 const static PASN_Names Names_H225_ScnConnectionType[]={
00187       {"unknown",0}
00188      ,{"bChannel",1}
00189      ,{"hybrid2x64",2}
00190      ,{"hybrid384",3}
00191      ,{"hybrid1536",4}
00192      ,{"hybrid1920",5}
00193      ,{"multirate",6}
00194 };
00195 #endif
00196 //
00197 // ScnConnectionType
00198 //
00199 
00200 H225_ScnConnectionType::H225_ScnConnectionType(unsigned tag, PASN_Object::TagClass tagClass)
00201   : PASN_Choice(tag, tagClass, 7, TRUE
00202 #ifndef PASN_NOPRINTON
00203     ,(const PASN_Names *)Names_H225_ScnConnectionType,7
00204 #endif
00205 )
00206 {
00207 }
00208 
00209 
00210 BOOL H225_ScnConnectionType::CreateObject()
00211 {
00212   choice = (tag <= e_multirate) ? new PASN_Null() : NULL;
00213   return choice != NULL;
00214 }
00215 
00216 
00217 PObject * H225_ScnConnectionType::Clone() const
00218 {
00219 #ifndef PASN_LEANANDMEAN
00220   PAssert(IsClass(H225_ScnConnectionType::Class()), PInvalidCast);
00221 #endif
00222   return new H225_ScnConnectionType(*this);
00223 }
00224 
00225 
00226 
00227 #ifndef PASN_NOPRINTON
00228 const static PASN_Names Names_H225_ScnConnectionAggregation[]={
00229       {"auto",0}
00230      ,{"none",1}
00231      ,{"h221",2}
00232      ,{"bonded_mode1",3}
00233      ,{"bonded_mode2",4}
00234      ,{"bonded_mode3",5}
00235 };
00236 #endif
00237 //
00238 // ScnConnectionAggregation
00239 //
00240 
00241 H225_ScnConnectionAggregation::H225_ScnConnectionAggregation(unsigned tag, PASN_Object::TagClass tagClass)
00242   : PASN_Choice(tag, tagClass, 6, TRUE
00243 #ifndef PASN_NOPRINTON
00244     ,(const PASN_Names *)Names_H225_ScnConnectionAggregation,6
00245 #endif
00246 )
00247 {
00248 }
00249 
00250 
00251 BOOL H225_ScnConnectionAggregation::CreateObject()
00252 {
00253   choice = (tag <= e_bonded_mode3) ? new PASN_Null() : NULL;
00254   return choice != NULL;
00255 }
00256 
00257 
00258 PObject * H225_ScnConnectionAggregation::Clone() const
00259 {
00260 #ifndef PASN_LEANANDMEAN
00261   PAssert(IsClass(H225_ScnConnectionAggregation::Class()), PInvalidCast);
00262 #endif
00263   return new H225_ScnConnectionAggregation(*this);
00264 }
00265 
00266 
00267 
00268 #ifndef PASN_NOPRINTON
00269 const static PASN_Names Names_H225_PresentationIndicator[]={
00270       {"presentationAllowed",0}
00271      ,{"presentationRestricted",1}
00272      ,{"addressNotAvailable",2}
00273 };
00274 #endif
00275 //
00276 // PresentationIndicator
00277 //
00278 
00279 H225_PresentationIndicator::H225_PresentationIndicator(unsigned tag, PASN_Object::TagClass tagClass)
00280   : PASN_Choice(tag, tagClass, 3, TRUE
00281 #ifndef PASN_NOPRINTON
00282     ,(const PASN_Names *)Names_H225_PresentationIndicator,3
00283 #endif
00284 )
00285 {
00286 }
00287 
00288 
00289 BOOL H225_PresentationIndicator::CreateObject()
00290 {
00291   choice = (tag <= e_addressNotAvailable) ? new PASN_Null() : NULL;
00292   return choice != NULL;
00293 }
00294 
00295 
00296 PObject * H225_PresentationIndicator::Clone() const
00297 {
00298 #ifndef PASN_LEANANDMEAN
00299   PAssert(IsClass(H225_PresentationIndicator::Class()), PInvalidCast);
00300 #endif
00301   return new H225_PresentationIndicator(*this);
00302 }
00303 
00304 
00305 #ifndef PASN_NOPRINTON
00306 const static PASN_Names Names_H225_ScreeningIndicator[]={
00307         {"userProvidedNotScreened",0}
00308        ,{"userProvidedVerifiedAndPassed",1}
00309        ,{"userProvidedVerifiedAndFailed",2}
00310        ,{"networkProvided",3}
00311 };
00312 #endif
00313 //
00314 // ScreeningIndicator
00315 //
00316 
00317 H225_ScreeningIndicator::H225_ScreeningIndicator(unsigned tag, PASN_Object::TagClass tagClass)
00318   : PASN_Enumeration(tag, tagClass, 3, TRUE
00319 #ifndef PASN_NOPRINTON
00320     ,(const PASN_Names *)Names_H225_ScreeningIndicator,4
00321 #endif
00322     )
00323 {
00324 }
00325 
00326 
00327 H225_ScreeningIndicator & H225_ScreeningIndicator::operator=(unsigned v)
00328 {
00329   SetValue(v);
00330   return *this;
00331 }
00332 
00333 
00334 PObject * H225_ScreeningIndicator::Clone() const
00335 {
00336 #ifndef PASN_LEANANDMEAN
00337   PAssert(IsClass(H225_ScreeningIndicator::Class()), PInvalidCast);
00338 #endif
00339   return new H225_ScreeningIndicator(*this);
00340 }
00341 
00342 
00343 
00344 #ifndef PASN_NOPRINTON
00345 const static PASN_Names Names_H225_FacilityReason[]={
00346       {"routeCallToGatekeeper",0}
00347      ,{"callForwarded",1}
00348      ,{"routeCallToMC",2}
00349      ,{"undefinedReason",3}
00350      ,{"conferenceListChoice",4}
00351      ,{"startH245",5}
00352      ,{"noH245",6}
00353      ,{"newTokens",7}
00354      ,{"featureSetUpdate",8}
00355      ,{"forwardedElements",9}
00356      ,{"transportedInformation",10}
00357 };
00358 #endif
00359 //
00360 // FacilityReason
00361 //
00362 
00363 H225_FacilityReason::H225_FacilityReason(unsigned tag, PASN_Object::TagClass tagClass)
00364   : PASN_Choice(tag, tagClass, 4, TRUE
00365 #ifndef PASN_NOPRINTON
00366     ,(const PASN_Names *)Names_H225_FacilityReason,11
00367 #endif
00368 )
00369 {
00370 }
00371 
00372 
00373 BOOL H225_FacilityReason::CreateObject()
00374 {
00375   choice = (tag <= e_transportedInformation) ? new PASN_Null() : NULL;
00376   return choice != NULL;
00377 }
00378 
00379 
00380 PObject * H225_FacilityReason::Clone() const
00381 {
00382 #ifndef PASN_LEANANDMEAN
00383   PAssert(IsClass(H225_FacilityReason::Class()), PInvalidCast);
00384 #endif
00385   return new H225_FacilityReason(*this);
00386 }
00387 
00388 
00389 
00390 #ifndef PASN_NOPRINTON
00391 const static PASN_Names Names_H225_TransportAddress[]={
00392       {"ipAddress",0}
00393      ,{"ipSourceRoute",1}
00394      ,{"ipxAddress",2}
00395      ,{"ip6Address",3}
00396      ,{"netBios",4}
00397      ,{"nsap",5}
00398      ,{"nonStandardAddress",6}
00399 };
00400 #endif
00401 //
00402 // TransportAddress
00403 //
00404 
00405 H225_TransportAddress::H225_TransportAddress(unsigned tag, PASN_Object::TagClass tagClass)
00406   : PASN_Choice(tag, tagClass, 7, TRUE
00407 #ifndef PASN_NOPRINTON
00408     ,(const PASN_Names *)Names_H225_TransportAddress,7
00409 #endif
00410 )
00411 {
00412 }
00413 
00414 
00415 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00416 H225_TransportAddress::operator H225_TransportAddress_ipAddress &() const
00417 #else
00418 H225_TransportAddress::operator H225_TransportAddress_ipAddress &()
00419 {
00420 #ifndef PASN_LEANANDMEAN
00421   PAssert(PIsDescendant(PAssertNULL(choice), H225_TransportAddress_ipAddress), PInvalidCast);
00422 #endif
00423   return *(H225_TransportAddress_ipAddress *)choice;
00424 }
00425 
00426 
00427 H225_TransportAddress::operator const H225_TransportAddress_ipAddress &() const
00428 #endif
00429 {
00430 #ifndef PASN_LEANANDMEAN
00431   PAssert(PIsDescendant(PAssertNULL(choice), H225_TransportAddress_ipAddress), PInvalidCast);
00432 #endif
00433   return *(H225_TransportAddress_ipAddress *)choice;
00434 }
00435 
00436 
00437 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00438 H225_TransportAddress::operator H225_TransportAddress_ipSourceRoute &() const
00439 #else
00440 H225_TransportAddress::operator H225_TransportAddress_ipSourceRoute &()
00441 {
00442 #ifndef PASN_LEANANDMEAN
00443   PAssert(PIsDescendant(PAssertNULL(choice), H225_TransportAddress_ipSourceRoute), PInvalidCast);
00444 #endif
00445   return *(H225_TransportAddress_ipSourceRoute *)choice;
00446 }
00447 
00448 
00449 H225_TransportAddress::operator const H225_TransportAddress_ipSourceRoute &() const
00450 #endif
00451 {
00452 #ifndef PASN_LEANANDMEAN
00453   PAssert(PIsDescendant(PAssertNULL(choice), H225_TransportAddress_ipSourceRoute), PInvalidCast);
00454 #endif
00455   return *(H225_TransportAddress_ipSourceRoute *)choice;
00456 }
00457 
00458 
00459 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00460 H225_TransportAddress::operator H225_TransportAddress_ipxAddress &() const
00461 #else
00462 H225_TransportAddress::operator H225_TransportAddress_ipxAddress &()
00463 {
00464 #ifndef PASN_LEANANDMEAN
00465   PAssert(PIsDescendant(PAssertNULL(choice), H225_TransportAddress_ipxAddress), PInvalidCast);
00466 #endif
00467   return *(H225_TransportAddress_ipxAddress *)choice;
00468 }
00469 
00470 
00471 H225_TransportAddress::operator const H225_TransportAddress_ipxAddress &() const
00472 #endif
00473 {
00474 #ifndef PASN_LEANANDMEAN
00475   PAssert(PIsDescendant(PAssertNULL(choice), H225_TransportAddress_ipxAddress), PInvalidCast);
00476 #endif
00477   return *(H225_TransportAddress_ipxAddress *)choice;
00478 }
00479 
00480 
00481 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00482 H225_TransportAddress::operator H225_TransportAddress_ip6Address &() const
00483 #else
00484 H225_TransportAddress::operator H225_TransportAddress_ip6Address &()
00485 {
00486 #ifndef PASN_LEANANDMEAN
00487   PAssert(PIsDescendant(PAssertNULL(choice), H225_TransportAddress_ip6Address), PInvalidCast);
00488 #endif
00489   return *(H225_TransportAddress_ip6Address *)choice;
00490 }
00491 
00492 
00493 H225_TransportAddress::operator const H225_TransportAddress_ip6Address &() const
00494 #endif
00495 {
00496 #ifndef PASN_LEANANDMEAN
00497   PAssert(PIsDescendant(PAssertNULL(choice), H225_TransportAddress_ip6Address), PInvalidCast);
00498 #endif
00499   return *(H225_TransportAddress_ip6Address *)choice;
00500 }
00501 
00502 
00503 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00504 H225_TransportAddress::operator H225_NonStandardParameter &() const
00505 #else
00506 H225_TransportAddress::operator H225_NonStandardParameter &()
00507 {
00508 #ifndef PASN_LEANANDMEAN
00509   PAssert(PIsDescendant(PAssertNULL(choice), H225_NonStandardParameter), PInvalidCast);
00510 #endif
00511   return *(H225_NonStandardParameter *)choice;
00512 }
00513 
00514 
00515 H225_TransportAddress::operator const H225_NonStandardParameter &() const
00516 #endif
00517 {
00518 #ifndef PASN_LEANANDMEAN
00519   PAssert(PIsDescendant(PAssertNULL(choice), H225_NonStandardParameter), PInvalidCast);
00520 #endif
00521   return *(H225_NonStandardParameter *)choice;
00522 }
00523 
00524 
00525 BOOL H225_TransportAddress::CreateObject()
00526 {
00527   switch (tag) {
00528     case e_ipAddress :
00529       choice = new H225_TransportAddress_ipAddress();
00530       return TRUE;
00531     case e_ipSourceRoute :
00532       choice = new H225_TransportAddress_ipSourceRoute();
00533       return TRUE;
00534     case e_ipxAddress :
00535       choice = new H225_TransportAddress_ipxAddress();
00536       return TRUE;
00537     case e_ip6Address :
00538       choice = new H225_TransportAddress_ip6Address();
00539       return TRUE;
00540     case e_netBios :
00541       choice = new PASN_OctetString();
00542       choice->SetConstraints(PASN_Object::FixedConstraint, 16);
00543       return TRUE;
00544     case e_nsap :
00545       choice = new PASN_OctetString();
00546       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 20);
00547       return TRUE;
00548     case e_nonStandardAddress :
00549       choice = new H225_NonStandardParameter();
00550       return TRUE;
00551   }
00552 
00553   choice = NULL;
00554   return FALSE;
00555 }
00556 
00557 
00558 PObject * H225_TransportAddress::Clone() const
00559 {
00560 #ifndef PASN_LEANANDMEAN
00561   PAssert(IsClass(H225_TransportAddress::Class()), PInvalidCast);
00562 #endif
00563   return new H225_TransportAddress(*this);
00564 }
00565 
00566 
00567 
00568 #ifndef PASN_NOPRINTON
00569 const static PASN_Names Names_H225_SupportedProtocols[]={
00570       {"nonStandardData",0}
00571      ,{"h310",1}
00572      ,{"h320",2}
00573      ,{"h321",3}
00574      ,{"h322",4}
00575      ,{"h323",5}
00576      ,{"h324",6}
00577      ,{"voice",7}
00578      ,{"t120_only",8}
00579      ,{"nonStandardProtocol",9}
00580      ,{"t38FaxAnnexbOnly",10}
00581      ,{"sip",11}
00582 };
00583 #endif
00584 //
00585 // SupportedProtocols
00586 //
00587 
00588 H225_SupportedProtocols::H225_SupportedProtocols(unsigned tag, PASN_Object::TagClass tagClass)
00589   : PASN_Choice(tag, tagClass, 9, TRUE
00590 #ifndef PASN_NOPRINTON
00591     ,(const PASN_Names *)Names_H225_SupportedProtocols,12
00592 #endif
00593 )
00594 {
00595 }
00596 
00597 
00598 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00599 H225_SupportedProtocols::operator H225_NonStandardParameter &() const
00600 #else
00601 H225_SupportedProtocols::operator H225_NonStandardParameter &()
00602 {
00603 #ifndef PASN_LEANANDMEAN
00604   PAssert(PIsDescendant(PAssertNULL(choice), H225_NonStandardParameter), PInvalidCast);
00605 #endif
00606   return *(H225_NonStandardParameter *)choice;
00607 }
00608 
00609 
00610 H225_SupportedProtocols::operator const H225_NonStandardParameter &() const
00611 #endif
00612 {
00613 #ifndef PASN_LEANANDMEAN
00614   PAssert(PIsDescendant(PAssertNULL(choice), H225_NonStandardParameter), PInvalidCast);
00615 #endif
00616   return *(H225_NonStandardParameter *)choice;
00617 }
00618 
00619 
00620 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00621 H225_SupportedProtocols::operator H225_H310Caps &() const
00622 #else
00623 H225_SupportedProtocols::operator H225_H310Caps &()
00624 {
00625 #ifndef PASN_LEANANDMEAN
00626   PAssert(PIsDescendant(PAssertNULL(choice), H225_H310Caps), PInvalidCast);
00627 #endif
00628   return *(H225_H310Caps *)choice;
00629 }
00630 
00631 
00632 H225_SupportedProtocols::operator const H225_H310Caps &() const
00633 #endif
00634 {
00635 #ifndef PASN_LEANANDMEAN
00636   PAssert(PIsDescendant(PAssertNULL(choice), H225_H310Caps), PInvalidCast);
00637 #endif
00638   return *(H225_H310Caps *)choice;
00639 }
00640 
00641 
00642 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00643 H225_SupportedProtocols::operator H225_H320Caps &() const
00644 #else
00645 H225_SupportedProtocols::operator H225_H320Caps &()
00646 {
00647 #ifndef PASN_LEANANDMEAN
00648   PAssert(PIsDescendant(PAssertNULL(choice), H225_H320Caps), PInvalidCast);
00649 #endif
00650   return *(H225_H320Caps *)choice;
00651 }
00652 
00653 
00654 H225_SupportedProtocols::operator const H225_H320Caps &() const
00655 #endif
00656 {
00657 #ifndef PASN_LEANANDMEAN
00658   PAssert(PIsDescendant(PAssertNULL(choice), H225_H320Caps), PInvalidCast);
00659 #endif
00660   return *(H225_H320Caps *)choice;
00661 }
00662 
00663 
00664 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00665 H225_SupportedProtocols::operator H225_H321Caps &() const
00666 #else
00667 H225_SupportedProtocols::operator H225_H321Caps &()
00668 {
00669 #ifndef PASN_LEANANDMEAN
00670   PAssert(PIsDescendant(PAssertNULL(choice), H225_H321Caps), PInvalidCast);
00671 #endif
00672   return *(H225_H321Caps *)choice;
00673 }
00674 
00675 
00676 H225_SupportedProtocols::operator const H225_H321Caps &() const
00677 #endif
00678 {
00679 #ifndef PASN_LEANANDMEAN
00680   PAssert(PIsDescendant(PAssertNULL(choice), H225_H321Caps), PInvalidCast);
00681 #endif
00682   return *(H225_H321Caps *)choice;
00683 }
00684 
00685 
00686 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00687 H225_SupportedProtocols::operator H225_H322Caps &() const
00688 #else
00689 H225_SupportedProtocols::operator H225_H322Caps &()
00690 {
00691 #ifndef PASN_LEANANDMEAN
00692   PAssert(PIsDescendant(PAssertNULL(choice), H225_H322Caps), PInvalidCast);
00693 #endif
00694   return *(H225_H322Caps *)choice;
00695 }
00696 
00697 
00698 H225_SupportedProtocols::operator const H225_H322Caps &() const
00699 #endif
00700 {
00701 #ifndef PASN_LEANANDMEAN
00702   PAssert(PIsDescendant(PAssertNULL(choice), H225_H322Caps), PInvalidCast);
00703 #endif
00704   return *(H225_H322Caps *)choice;
00705 }
00706 
00707 
00708 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00709 H225_SupportedProtocols::operator H225_H323Caps &() const
00710 #else
00711 H225_SupportedProtocols::operator H225_H323Caps &()
00712 {
00713 #ifndef PASN_LEANANDMEAN
00714   PAssert(PIsDescendant(PAssertNULL(choice), H225_H323Caps), PInvalidCast);
00715 #endif
00716   return *(H225_H323Caps *)choice;
00717 }
00718 
00719 
00720 H225_SupportedProtocols::operator const H225_H323Caps &() const
00721 #endif
00722 {
00723 #ifndef PASN_LEANANDMEAN
00724   PAssert(PIsDescendant(PAssertNULL(choice), H225_H323Caps), PInvalidCast);
00725 #endif
00726   return *(H225_H323Caps *)choice;
00727 }
00728 
00729 
00730 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00731 H225_SupportedProtocols::operator H225_H324Caps &() const
00732 #else
00733 H225_SupportedProtocols::operator H225_H324Caps &()
00734 {
00735 #ifndef PASN_LEANANDMEAN
00736   PAssert(PIsDescendant(PAssertNULL(choice), H225_H324Caps), PInvalidCast);
00737 #endif
00738   return *(H225_H324Caps *)choice;
00739 }
00740 
00741 
00742 H225_SupportedProtocols::operator const H225_H324Caps &() const
00743 #endif
00744 {
00745 #ifndef PASN_LEANANDMEAN
00746   PAssert(PIsDescendant(PAssertNULL(choice), H225_H324Caps), PInvalidCast);
00747 #endif
00748   return *(H225_H324Caps *)choice;
00749 }
00750 
00751 
00752 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00753 H225_SupportedProtocols::operator H225_VoiceCaps &() const
00754 #else
00755 H225_SupportedProtocols::operator H225_VoiceCaps &()
00756 {
00757 #ifndef PASN_LEANANDMEAN
00758   PAssert(PIsDescendant(PAssertNULL(choice), H225_VoiceCaps), PInvalidCast);
00759 #endif
00760   return *(H225_VoiceCaps *)choice;
00761 }
00762 
00763 
00764 H225_SupportedProtocols::operator const H225_VoiceCaps &() const
00765 #endif
00766 {
00767 #ifndef PASN_LEANANDMEAN
00768   PAssert(PIsDescendant(PAssertNULL(choice), H225_VoiceCaps), PInvalidCast);
00769 #endif
00770   return *(H225_VoiceCaps *)choice;
00771 }
00772 
00773 
00774 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00775 H225_SupportedProtocols::operator H225_T120OnlyCaps &() const
00776 #else
00777 H225_SupportedProtocols::operator H225_T120OnlyCaps &()
00778 {
00779 #ifndef PASN_LEANANDMEAN
00780   PAssert(PIsDescendant(PAssertNULL(choice), H225_T120OnlyCaps), PInvalidCast);
00781 #endif
00782   return *(H225_T120OnlyCaps *)choice;
00783 }
00784 
00785 
00786 H225_SupportedProtocols::operator const H225_T120OnlyCaps &() const
00787 #endif
00788 {
00789 #ifndef PASN_LEANANDMEAN
00790   PAssert(PIsDescendant(PAssertNULL(choice), H225_T120OnlyCaps), PInvalidCast);
00791 #endif
00792   return *(H225_T120OnlyCaps *)choice;
00793 }
00794 
00795 
00796 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00797 H225_SupportedProtocols::operator H225_NonStandardProtocol &() const
00798 #else
00799 H225_SupportedProtocols::operator H225_NonStandardProtocol &()
00800 {
00801 #ifndef PASN_LEANANDMEAN
00802   PAssert(PIsDescendant(PAssertNULL(choice), H225_NonStandardProtocol), PInvalidCast);
00803 #endif
00804   return *(H225_NonStandardProtocol *)choice;
00805 }
00806 
00807 
00808 H225_SupportedProtocols::operator const H225_NonStandardProtocol &() const
00809 #endif
00810 {
00811 #ifndef PASN_LEANANDMEAN
00812   PAssert(PIsDescendant(PAssertNULL(choice), H225_NonStandardProtocol), PInvalidCast);
00813 #endif
00814   return *(H225_NonStandardProtocol *)choice;
00815 }
00816 
00817 
00818 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00819 H225_SupportedProtocols::operator H225_T38FaxAnnexbOnlyCaps &() const
00820 #else
00821 H225_SupportedProtocols::operator H225_T38FaxAnnexbOnlyCaps &()
00822 {
00823 #ifndef PASN_LEANANDMEAN
00824   PAssert(PIsDescendant(PAssertNULL(choice), H225_T38FaxAnnexbOnlyCaps), PInvalidCast);
00825 #endif
00826   return *(H225_T38FaxAnnexbOnlyCaps *)choice;
00827 }
00828 
00829 
00830 H225_SupportedProtocols::operator const H225_T38FaxAnnexbOnlyCaps &() const
00831 #endif
00832 {
00833 #ifndef PASN_LEANANDMEAN
00834   PAssert(PIsDescendant(PAssertNULL(choice), H225_T38FaxAnnexbOnlyCaps), PInvalidCast);
00835 #endif
00836   return *(H225_T38FaxAnnexbOnlyCaps *)choice;
00837 }
00838 
00839 
00840 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
00841 H225_SupportedProtocols::operator H225_SIPCaps &() const
00842 #else
00843 H225_SupportedProtocols::operator H225_SIPCaps &()
00844 {
00845 #ifndef PASN_LEANANDMEAN
00846   PAssert(PIsDescendant(PAssertNULL(choice), H225_SIPCaps), PInvalidCast);
00847 #endif
00848   return *(H225_SIPCaps *)choice;
00849 }
00850 
00851 
00852 H225_SupportedProtocols::operator const H225_SIPCaps &() const
00853 #endif
00854 {
00855 #ifndef PASN_LEANANDMEAN
00856   PAssert(PIsDescendant(PAssertNULL(choice), H225_SIPCaps), PInvalidCast);
00857 #endif
00858   return *(H225_SIPCaps *)choice;
00859 }
00860 
00861 
00862 BOOL H225_SupportedProtocols::CreateObject()
00863 {
00864   switch (tag) {
00865     case e_nonStandardData :
00866       choice = new H225_NonStandardParameter();
00867       return TRUE;
00868     case e_h310 :
00869       choice = new H225_H310Caps();
00870       return TRUE;
00871     case e_h320 :
00872       choice = new H225_H320Caps();
00873       return TRUE;
00874     case e_h321 :
00875       choice = new H225_H321Caps();
00876       return TRUE;
00877     case e_h322 :
00878       choice = new H225_H322Caps();
00879       return TRUE;
00880     case e_h323 :
00881       choice = new H225_H323Caps();
00882       return TRUE;
00883     case e_h324 :
00884       choice = new H225_H324Caps();
00885       return TRUE;
00886     case e_voice :
00887       choice = new H225_VoiceCaps();
00888       return TRUE;
00889     case e_t120_only :
00890       choice = new H225_T120OnlyCaps();
00891       return TRUE;
00892     case e_nonStandardProtocol :
00893       choice = new H225_NonStandardProtocol();
00894       return TRUE;
00895     case e_t38FaxAnnexbOnly :
00896       choice = new H225_T38FaxAnnexbOnlyCaps();
00897       return TRUE;
00898     case e_sip :
00899       choice = new H225_SIPCaps();
00900       return TRUE;
00901   }
00902 
00903   choice = NULL;
00904   return FALSE;
00905 }
00906 
00907 
00908 PObject * H225_SupportedProtocols::Clone() const
00909 {
00910 #ifndef PASN_LEANANDMEAN
00911   PAssert(IsClass(H225_SupportedProtocols::Class()), PInvalidCast);
00912 #endif
00913   return new H225_SupportedProtocols(*this);
00914 }
00915 
00916 
00917 //
00918 // H221NonStandard
00919 //
00920 
00921 H225_H221NonStandard::H225_H221NonStandard(unsigned tag, PASN_Object::TagClass tagClass)
00922   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
00923 {
00924   m_t35CountryCode.SetConstraints(PASN_Object::FixedConstraint, 0, 255);
00925   m_t35Extension.SetConstraints(PASN_Object::FixedConstraint, 0, 255);
00926   m_manufacturerCode.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
00927 }
00928 
00929 
00930 #ifndef PASN_NOPRINTON
00931 void H225_H221NonStandard::PrintOn(ostream & strm) const
00932 {
00933   int indent = strm.precision() + 2;
00934   strm << "{\n";
00935   strm << setw(indent+17) << "t35CountryCode = " << setprecision(indent) << m_t35CountryCode << '\n';
00936   strm << setw(indent+15) << "t35Extension = " << setprecision(indent) << m_t35Extension << '\n';
00937   strm << setw(indent+19) << "manufacturerCode = " << setprecision(indent) << m_manufacturerCode << '\n';
00938   strm << setw(indent-1) << setprecision(indent-2) << "}";
00939 }
00940 #endif
00941 
00942 
00943 PObject::Comparison H225_H221NonStandard::Compare(const PObject & obj) const
00944 {
00945 #ifndef PASN_LEANANDMEAN
00946   PAssert(PIsDescendant(&obj, H225_H221NonStandard), PInvalidCast);
00947 #endif
00948   const H225_H221NonStandard & other = (const H225_H221NonStandard &)obj;
00949 
00950   Comparison result;
00951 
00952   if ((result = m_t35CountryCode.Compare(other.m_t35CountryCode)) != EqualTo)
00953     return result;
00954   if ((result = m_t35Extension.Compare(other.m_t35Extension)) != EqualTo)
00955     return result;
00956   if ((result = m_manufacturerCode.Compare(other.m_manufacturerCode)) != EqualTo)
00957     return result;
00958 
00959   return PASN_Sequence::Compare(other);
00960 }
00961 
00962 
00963 PINDEX H225_H221NonStandard::GetDataLength() const
00964 {
00965   PINDEX length = 0;
00966   length += m_t35CountryCode.GetObjectLength();
00967   length += m_t35Extension.GetObjectLength();
00968   length += m_manufacturerCode.GetObjectLength();
00969   return length;
00970 }
00971 
00972 
00973 BOOL H225_H221NonStandard::Decode(PASN_Stream & strm)
00974 {
00975   if (!PreambleDecode(strm))
00976     return FALSE;
00977 
00978   if (!m_t35CountryCode.Decode(strm))
00979     return FALSE;
00980   if (!m_t35Extension.Decode(strm))
00981     return FALSE;
00982   if (!m_manufacturerCode.Decode(strm))
00983     return FALSE;
00984 
00985   return UnknownExtensionsDecode(strm);
00986 }
00987 
00988 
00989 void H225_H221NonStandard::Encode(PASN_Stream & strm) const
00990 {
00991   PreambleEncode(strm);
00992 
00993   m_t35CountryCode.Encode(strm);
00994   m_t35Extension.Encode(strm);
00995   m_manufacturerCode.Encode(strm);
00996 
00997   UnknownExtensionsEncode(strm);
00998 }
00999 
01000 
01001 PObject * H225_H221NonStandard::Clone() const
01002 {
01003 #ifndef PASN_LEANANDMEAN
01004   PAssert(IsClass(H225_H221NonStandard::Class()), PInvalidCast);
01005 #endif
01006   return new H225_H221NonStandard(*this);
01007 }
01008 
01009 
01010 //
01011 // TunnelledProtocolAlternateIdentifier
01012 //
01013 
01014 H225_TunnelledProtocolAlternateIdentifier::H225_TunnelledProtocolAlternateIdentifier(unsigned tag, PASN_Object::TagClass tagClass)
01015   : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
01016 {
01017   m_protocolType.SetConstraints(PASN_Object::FixedConstraint, 1, 64);
01018   m_protocolVariant.SetConstraints(PASN_Object::FixedConstraint, 1, 64);
01019 }
01020 
01021 
01022 #ifndef PASN_NOPRINTON
01023 void H225_TunnelledProtocolAlternateIdentifier::PrintOn(ostream & strm) const
01024 {
01025   int indent = strm.precision() + 2;
01026   strm << "{\n";
01027   strm << setw(indent+15) << "protocolType = " << setprecision(indent) << m_protocolType << '\n';
01028   if (HasOptionalField(e_protocolVariant))
01029     strm << setw(indent+18) << "protocolVariant = " << setprecision(indent) << m_protocolVariant << '\n';
01030   strm << setw(indent-1) << setprecision(indent-2) << "}";
01031 }
01032 #endif
01033 
01034 
01035 PObject::Comparison H225_TunnelledProtocolAlternateIdentifier::Compare(const PObject & obj) const
01036 {
01037 #ifndef PASN_LEANANDMEAN
01038   PAssert(PIsDescendant(&obj, H225_TunnelledProtocolAlternateIdentifier), PInvalidCast);
01039 #endif
01040   const H225_TunnelledProtocolAlternateIdentifier & other = (const H225_TunnelledProtocolAlternateIdentifier &)obj;
01041 
01042   Comparison result;
01043 
01044   if ((result = m_protocolType.Compare(other.m_protocolType)) != EqualTo)
01045     return result;
01046   if ((result = m_protocolVariant.Compare(other.m_protocolVariant)) != EqualTo)
01047     return result;
01048 
01049   return PASN_Sequence::Compare(other);
01050 }
01051 
01052 
01053 PINDEX H225_TunnelledProtocolAlternateIdentifier::GetDataLength() const
01054 {
01055   PINDEX length = 0;
01056   length += m_protocolType.GetObjectLength();
01057   if (HasOptionalField(e_protocolVariant))
01058     length += m_protocolVariant.GetObjectLength();
01059   return length;
01060 }
01061 
01062 
01063 BOOL H225_TunnelledProtocolAlternateIdentifier::Decode(PASN_Stream & strm)
01064 {
01065   if (!PreambleDecode(strm))
01066     return FALSE;
01067 
01068   if (!m_protocolType.Decode(strm))
01069     return FALSE;
01070   if (HasOptionalField(e_protocolVariant) && !m_protocolVariant.Decode(strm))
01071     return FALSE;
01072 
01073   return UnknownExtensionsDecode(strm);
01074 }
01075 
01076 
01077 void H225_TunnelledProtocolAlternateIdentifier::Encode(PASN_Stream & strm) const
01078 {
01079   PreambleEncode(strm);
01080 
01081   m_protocolType.Encode(strm);
01082   if (HasOptionalField(e_protocolVariant))
01083     m_protocolVariant.Encode(strm);
01084 
01085   UnknownExtensionsEncode(strm);
01086 }
01087 
01088 
01089 PObject * H225_TunnelledProtocolAlternateIdentifier::Clone() const
01090 {
01091 #ifndef PASN_LEANANDMEAN
01092   PAssert(IsClass(H225_TunnelledProtocolAlternateIdentifier::Class()), PInvalidCast);
01093 #endif
01094   return new H225_TunnelledProtocolAlternateIdentifier(*this);
01095 }
01096 
01097 
01098 
01099 #ifndef PASN_NOPRINTON
01100 const static PASN_Names Names_H225_NonStandardIdentifier[]={
01101       {"object",0}
01102      ,{"h221NonStandard",1}
01103 };
01104 #endif
01105 //
01106 // NonStandardIdentifier
01107 //
01108 
01109 H225_NonStandardIdentifier::H225_NonStandardIdentifier(unsigned tag, PASN_Object::TagClass tagClass)
01110   : PASN_Choice(tag, tagClass, 2, TRUE
01111 #ifndef PASN_NOPRINTON
01112     ,(const PASN_Names *)Names_H225_NonStandardIdentifier,2
01113 #endif
01114 )
01115 {
01116 }
01117 
01118 
01119 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01120 H225_NonStandardIdentifier::operator H225_H221NonStandard &() const
01121 #else
01122 H225_NonStandardIdentifier::operator H225_H221NonStandard &()
01123 {
01124 #ifndef PASN_LEANANDMEAN
01125   PAssert(PIsDescendant(PAssertNULL(choice), H225_H221NonStandard), PInvalidCast);
01126 #endif
01127   return *(H225_H221NonStandard *)choice;
01128 }
01129 
01130 
01131 H225_NonStandardIdentifier::operator const H225_H221NonStandard &() const
01132 #endif
01133 {
01134 #ifndef PASN_LEANANDMEAN
01135   PAssert(PIsDescendant(PAssertNULL(choice), H225_H221NonStandard), PInvalidCast);
01136 #endif
01137   return *(H225_H221NonStandard *)choice;
01138 }
01139 
01140 
01141 BOOL H225_NonStandardIdentifier::CreateObject()
01142 {
01143   switch (tag) {
01144     case e_object :
01145       choice = new PASN_ObjectId();
01146       return TRUE;
01147     case e_h221NonStandard :
01148       choice = new H225_H221NonStandard();
01149       return TRUE;
01150   }
01151 
01152   choice = NULL;
01153   return FALSE;
01154 }
01155 
01156 
01157 PObject * H225_NonStandardIdentifier::Clone() const
01158 {
01159 #ifndef PASN_LEANANDMEAN
01160   PAssert(IsClass(H225_NonStandardIdentifier::Class()), PInvalidCast);
01161 #endif
01162   return new H225_NonStandardIdentifier(*this);
01163 }
01164 
01165 
01166 
01167 #ifndef PASN_NOPRINTON
01168 const static PASN_Names Names_H225_AliasAddress[]={
01169       {"dialedDigits",0}
01170      ,{"h323_ID",1}
01171      ,{"url_ID",2}
01172      ,{"transportID",3}
01173      ,{"email_ID",4}
01174      ,{"partyNumber",5}
01175      ,{"mobileUIM",6}
01176      ,{"isupNumber",7}
01177 };
01178 #endif
01179 //
01180 // AliasAddress
01181 //
01182 
01183 H225_AliasAddress::H225_AliasAddress(unsigned tag, PASN_Object::TagClass tagClass)
01184   : PASN_Choice(tag, tagClass, 2, TRUE
01185 #ifndef PASN_NOPRINTON
01186     ,(const PASN_Names *)Names_H225_AliasAddress,8
01187 #endif
01188 )
01189 {
01190 }
01191 
01192 
01193 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01194 H225_AliasAddress::operator H225_TransportAddress &() const
01195 #else
01196 H225_AliasAddress::operator H225_TransportAddress &()
01197 {
01198 #ifndef PASN_LEANANDMEAN
01199   PAssert(PIsDescendant(PAssertNULL(choice), H225_TransportAddress), PInvalidCast);
01200 #endif
01201   return *(H225_TransportAddress *)choice;
01202 }
01203 
01204 
01205 H225_AliasAddress::operator const H225_TransportAddress &() const
01206 #endif
01207 {
01208 #ifndef PASN_LEANANDMEAN
01209   PAssert(PIsDescendant(PAssertNULL(choice), H225_TransportAddress), PInvalidCast);
01210 #endif
01211   return *(H225_TransportAddress *)choice;
01212 }
01213 
01214 
01215 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01216 H225_AliasAddress::operator H225_PartyNumber &() const
01217 #else
01218 H225_AliasAddress::operator H225_PartyNumber &()
01219 {
01220 #ifndef PASN_LEANANDMEAN
01221   PAssert(PIsDescendant(PAssertNULL(choice), H225_PartyNumber), PInvalidCast);
01222 #endif
01223   return *(H225_PartyNumber *)choice;
01224 }
01225 
01226 
01227 H225_AliasAddress::operator const H225_PartyNumber &() const
01228 #endif
01229 {
01230 #ifndef PASN_LEANANDMEAN
01231   PAssert(PIsDescendant(PAssertNULL(choice), H225_PartyNumber), PInvalidCast);
01232 #endif
01233   return *(H225_PartyNumber *)choice;
01234 }
01235 
01236 
01237 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01238 H225_AliasAddress::operator H225_MobileUIM &() const
01239 #else
01240 H225_AliasAddress::operator H225_MobileUIM &()
01241 {
01242 #ifndef PASN_LEANANDMEAN
01243   PAssert(PIsDescendant(PAssertNULL(choice), H225_MobileUIM), PInvalidCast);
01244 #endif
01245   return *(H225_MobileUIM *)choice;
01246 }
01247 
01248 
01249 H225_AliasAddress::operator const H225_MobileUIM &() const
01250 #endif
01251 {
01252 #ifndef PASN_LEANANDMEAN
01253   PAssert(PIsDescendant(PAssertNULL(choice), H225_MobileUIM), PInvalidCast);
01254 #endif
01255   return *(H225_MobileUIM *)choice;
01256 }
01257 
01258 
01259 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01260 H225_AliasAddress::operator H225_IsupNumber &() const
01261 #else
01262 H225_AliasAddress::operator H225_IsupNumber &()
01263 {
01264 #ifndef PASN_LEANANDMEAN
01265   PAssert(PIsDescendant(PAssertNULL(choice), H225_IsupNumber), PInvalidCast);
01266 #endif
01267   return *(H225_IsupNumber *)choice;
01268 }
01269 
01270 
01271 H225_AliasAddress::operator const H225_IsupNumber &() const
01272 #endif
01273 {
01274 #ifndef PASN_LEANANDMEAN
01275   PAssert(PIsDescendant(PAssertNULL(choice), H225_IsupNumber), PInvalidCast);
01276 #endif
01277   return *(H225_IsupNumber *)choice;
01278 }
01279 
01280 
01281 BOOL H225_AliasAddress::CreateObject()
01282 {
01283   switch (tag) {
01284     case e_dialedDigits :
01285       choice = new PASN_IA5String();
01286       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 128);
01287       choice->SetCharacterSet(PASN_Object::FixedConstraint, "0123456789#*,");
01288       return TRUE;
01289     case e_h323_ID :
01290       choice = new PASN_BMPString();
01291       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 256);
01292       return TRUE;
01293     case e_url_ID :
01294       choice = new PASN_IA5String();
01295       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 512);
01296       return TRUE;
01297     case e_transportID :
01298       choice = new H225_TransportAddress();
01299       return TRUE;
01300     case e_email_ID :
01301       choice = new PASN_IA5String();
01302       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 512);
01303       return TRUE;
01304     case e_partyNumber :
01305       choice = new H225_PartyNumber();
01306       return TRUE;
01307     case e_mobileUIM :
01308       choice = new H225_MobileUIM();
01309       return TRUE;
01310     case e_isupNumber :
01311       choice = new H225_IsupNumber();
01312       return TRUE;
01313   }
01314 
01315   choice = NULL;
01316   return FALSE;
01317 }
01318 
01319 
01320 PObject * H225_AliasAddress::Clone() const
01321 {
01322 #ifndef PASN_LEANANDMEAN
01323   PAssert(IsClass(H225_AliasAddress::Class()), PInvalidCast);
01324 #endif
01325   return new H225_AliasAddress(*this);
01326 }
01327 
01328 
01329 
01330 #ifndef PASN_NOPRINTON
01331 const static PASN_Names Names_H225_AddressPattern[]={
01332       {"wildcard",0}
01333      ,{"range",1}
01334 };
01335 #endif
01336 //
01337 // AddressPattern
01338 //
01339 
01340 H225_AddressPattern::H225_AddressPattern(unsigned tag, PASN_Object::TagClass tagClass)
01341   : PASN_Choice(tag, tagClass, 2, TRUE
01342 #ifndef PASN_NOPRINTON
01343     ,(const PASN_Names *)Names_H225_AddressPattern,2
01344 #endif
01345 )
01346 {
01347 }
01348 
01349 
01350 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01351 H225_AddressPattern::operator H225_AliasAddress &() const
01352 #else
01353 H225_AddressPattern::operator H225_AliasAddress &()
01354 {
01355 #ifndef PASN_LEANANDMEAN
01356   PAssert(PIsDescendant(PAssertNULL(choice), H225_AliasAddress), PInvalidCast);
01357 #endif
01358   return *(H225_AliasAddress *)choice;
01359 }
01360 
01361 
01362 H225_AddressPattern::operator const H225_AliasAddress &() const
01363 #endif
01364 {
01365 #ifndef PASN_LEANANDMEAN
01366   PAssert(PIsDescendant(PAssertNULL(choice), H225_AliasAddress), PInvalidCast);
01367 #endif
01368   return *(H225_AliasAddress *)choice;
01369 }
01370 
01371 
01372 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01373 H225_AddressPattern::operator H225_AddressPattern_range &() const
01374 #else
01375 H225_AddressPattern::operator H225_AddressPattern_range &()
01376 {
01377 #ifndef PASN_LEANANDMEAN
01378   PAssert(PIsDescendant(PAssertNULL(choice), H225_AddressPattern_range), PInvalidCast);
01379 #endif
01380   return *(H225_AddressPattern_range *)choice;
01381 }
01382 
01383 
01384 H225_AddressPattern::operator const H225_AddressPattern_range &() const
01385 #endif
01386 {
01387 #ifndef PASN_LEANANDMEAN
01388   PAssert(PIsDescendant(PAssertNULL(choice), H225_AddressPattern_range), PInvalidCast);
01389 #endif
01390   return *(H225_AddressPattern_range *)choice;
01391 }
01392 
01393 
01394 BOOL H225_AddressPattern::CreateObject()
01395 {
01396   switch (tag) {
01397     case e_wildcard :
01398       choice = new H225_AliasAddress();
01399       return TRUE;
01400     case e_range :
01401       choice = new H225_AddressPattern_range();
01402       return TRUE;
01403   }
01404 
01405   choice = NULL;
01406   return FALSE;
01407 }
01408 
01409 
01410 PObject * H225_AddressPattern::Clone() const
01411 {
01412 #ifndef PASN_LEANANDMEAN
01413   PAssert(IsClass(H225_AddressPattern::Class()), PInvalidCast);
01414 #endif
01415   return new H225_AddressPattern(*this);
01416 }
01417 
01418 
01419 
01420 #ifndef PASN_NOPRINTON
01421 const static PASN_Names Names_H225_PartyNumber[]={
01422       {"e164Number",0}
01423      ,{"dataPartyNumber",1}
01424      ,{"telexPartyNumber",2}
01425      ,{"privateNumber",3}
01426      ,{"nationalStandardPartyNumber",4}
01427 };
01428 #endif
01429 //
01430 // PartyNumber
01431 //
01432 
01433 H225_PartyNumber::H225_PartyNumber(unsigned tag, PASN_Object::TagClass tagClass)
01434   : PASN_Choice(tag, tagClass, 5, TRUE
01435 #ifndef PASN_NOPRINTON
01436     ,(const PASN_Names *)Names_H225_PartyNumber,5
01437 #endif
01438 )
01439 {
01440 }
01441 
01442 
01443 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01444 H225_PartyNumber::operator H225_PublicPartyNumber &() const
01445 #else
01446 H225_PartyNumber::operator H225_PublicPartyNumber &()
01447 {
01448 #ifndef PASN_LEANANDMEAN
01449   PAssert(PIsDescendant(PAssertNULL(choice), H225_PublicPartyNumber), PInvalidCast);
01450 #endif
01451   return *(H225_PublicPartyNumber *)choice;
01452 }
01453 
01454 
01455 H225_PartyNumber::operator const H225_PublicPartyNumber &() const
01456 #endif
01457 {
01458 #ifndef PASN_LEANANDMEAN
01459   PAssert(PIsDescendant(PAssertNULL(choice), H225_PublicPartyNumber), PInvalidCast);
01460 #endif
01461   return *(H225_PublicPartyNumber *)choice;
01462 }
01463 
01464 
01465 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01466 H225_PartyNumber::operator H225_NumberDigits &() const
01467 #else
01468 H225_PartyNumber::operator H225_NumberDigits &()
01469 {
01470 #ifndef PASN_LEANANDMEAN
01471   PAssert(PIsDescendant(PAssertNULL(choice), H225_NumberDigits), PInvalidCast);
01472 #endif
01473   return *(H225_NumberDigits *)choice;
01474 }
01475 
01476 
01477 H225_PartyNumber::operator const H225_NumberDigits &() const
01478 #endif
01479 {
01480 #ifndef PASN_LEANANDMEAN
01481   PAssert(PIsDescendant(PAssertNULL(choice), H225_NumberDigits), PInvalidCast);
01482 #endif
01483   return *(H225_NumberDigits *)choice;
01484 }
01485 
01486 
01487 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01488 H225_PartyNumber::operator H225_PrivatePartyNumber &() const
01489 #else
01490 H225_PartyNumber::operator H225_PrivatePartyNumber &()
01491 {
01492 #ifndef PASN_LEANANDMEAN
01493   PAssert(PIsDescendant(PAssertNULL(choice), H225_PrivatePartyNumber), PInvalidCast);
01494 #endif
01495   return *(H225_PrivatePartyNumber *)choice;
01496 }
01497 
01498 
01499 H225_PartyNumber::operator const H225_PrivatePartyNumber &() const
01500 #endif
01501 {
01502 #ifndef PASN_LEANANDMEAN
01503   PAssert(PIsDescendant(PAssertNULL(choice), H225_PrivatePartyNumber), PInvalidCast);
01504 #endif
01505   return *(H225_PrivatePartyNumber *)choice;
01506 }
01507 
01508 
01509 BOOL H225_PartyNumber::CreateObject()
01510 {
01511   switch (tag) {
01512     case e_e164Number :
01513       choice = new H225_PublicPartyNumber();
01514       return TRUE;
01515     case e_dataPartyNumber :
01516     case e_telexPartyNumber :
01517     case e_nationalStandardPartyNumber :
01518       choice = new H225_NumberDigits();
01519       return TRUE;
01520     case e_privateNumber :
01521       choice = new H225_PrivatePartyNumber();
01522       return TRUE;
01523   }
01524 
01525   choice = NULL;
01526   return FALSE;
01527 }
01528 
01529 
01530 PObject * H225_PartyNumber::Clone() const
01531 {
01532 #ifndef PASN_LEANANDMEAN
01533   PAssert(IsClass(H225_PartyNumber::Class()), PInvalidCast);
01534 #endif
01535   return new H225_PartyNumber(*this);
01536 }
01537 
01538 
01539 //
01540 // NumberDigits
01541 //
01542 
01543 H225_NumberDigits::H225_NumberDigits(unsigned tag, PASN_Object::TagClass tagClass)
01544   : PASN_IA5String(tag, tagClass)
01545 {
01546   SetConstraints(PASN_Object::FixedConstraint, 1, 128);
01547   SetCharacterSet(PASN_Object::FixedConstraint, "0123456789#*,");
01548 }
01549 
01550 
01551 H225_NumberDigits & H225_NumberDigits::operator=(const char * v)
01552 {
01553   SetValue(v);
01554   return *this;
01555 }
01556 
01557 
01558 H225_NumberDigits & H225_NumberDigits::operator=(const PString & v)
01559 {
01560   SetValue(v);
01561   return *this;
01562 }
01563 
01564 
01565 PObject * H225_NumberDigits::Clone() const
01566 {
01567 #ifndef PASN_LEANANDMEAN
01568   PAssert(IsClass(H225_NumberDigits::Class()), PInvalidCast);
01569 #endif
01570   return new H225_NumberDigits(*this);
01571 }
01572 
01573 
01574 
01575 #ifndef PASN_NOPRINTON
01576 const static PASN_Names Names_H225_PublicTypeOfNumber[]={
01577       {"unknown",0}
01578      ,{"internationalNumber",1}
01579      ,{"nationalNumber",2}
01580      ,{"networkSpecificNumber",3}
01581      ,{"subscriberNumber",4}
01582      ,{"abbreviatedNumber",5}
01583 };
01584 #endif
01585 //
01586 // PublicTypeOfNumber
01587 //
01588 
01589 H225_PublicTypeOfNumber::H225_PublicTypeOfNumber(unsigned tag, PASN_Object::TagClass tagClass)
01590   : PASN_Choice(tag, tagClass, 6, TRUE
01591 #ifndef PASN_NOPRINTON
01592     ,(const PASN_Names *)Names_H225_PublicTypeOfNumber,6
01593 #endif
01594 )
01595 {
01596 }
01597 
01598 
01599 BOOL H225_PublicTypeOfNumber::CreateObject()
01600 {
01601   choice = (tag <= e_abbreviatedNumber) ? new PASN_Null() : NULL;
01602   return choice != NULL;
01603 }
01604 
01605 
01606 PObject * H225_PublicTypeOfNumber::Clone() const
01607 {
01608 #ifndef PASN_LEANANDMEAN
01609   PAssert(IsClass(H225_PublicTypeOfNumber::Class()), PInvalidCast);
01610 #endif
01611   return new H225_PublicTypeOfNumber(*this);
01612 }
01613 
01614 
01615 
01616 #ifndef PASN_NOPRINTON
01617 const static PASN_Names Names_H225_PrivateTypeOfNumber[]={
01618       {"unknown",0}
01619      ,{"level2RegionalNumber",1}
01620      ,{"level1RegionalNumber",2}
01621      ,{"pISNSpecificNumber",3}
01622      ,{"localNumber",4}
01623      ,{"abbreviatedNumber",5}
01624 };
01625 #endif
01626 //
01627 // PrivateTypeOfNumber
01628 //
01629 
01630 H225_PrivateTypeOfNumber::H225_PrivateTypeOfNumber(unsigned tag, PASN_Object::TagClass tagClass)
01631   : PASN_Choice(tag, tagClass, 6, TRUE
01632 #ifndef PASN_NOPRINTON
01633     ,(const PASN_Names *)Names_H225_PrivateTypeOfNumber,6
01634 #endif
01635 )
01636 {
01637 }
01638 
01639 
01640 BOOL H225_PrivateTypeOfNumber::CreateObject()
01641 {
01642   choice = (tag <= e_abbreviatedNumber) ? new PASN_Null() : NULL;
01643   return choice != NULL;
01644 }
01645 
01646 
01647 PObject * H225_PrivateTypeOfNumber::Clone() const
01648 {
01649 #ifndef PASN_LEANANDMEAN
01650   PAssert(IsClass(H225_PrivateTypeOfNumber::Class()), PInvalidCast);
01651 #endif
01652   return new H225_PrivateTypeOfNumber(*this);
01653 }
01654 
01655 
01656 
01657 #ifndef PASN_NOPRINTON
01658 const static PASN_Names Names_H225_MobileUIM[]={
01659       {"ansi_41_uim",0}
01660      ,{"gsm_uim",1}
01661 };
01662 #endif
01663 //
01664 // MobileUIM
01665 //
01666 
01667 H225_MobileUIM::H225_MobileUIM(unsigned tag, PASN_Object::TagClass tagClass)
01668   : PASN_Choice(tag, tagClass, 2, TRUE
01669 #ifndef PASN_NOPRINTON
01670     ,(const PASN_Names *)Names_H225_MobileUIM,2
01671 #endif
01672 )
01673 {
01674 }
01675 
01676 
01677 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01678 H225_MobileUIM::operator H225_ANSI_41_UIM &() const
01679 #else
01680 H225_MobileUIM::operator H225_ANSI_41_UIM &()
01681 {
01682 #ifndef PASN_LEANANDMEAN
01683   PAssert(PIsDescendant(PAssertNULL(choice), H225_ANSI_41_UIM), PInvalidCast);
01684 #endif
01685   return *(H225_ANSI_41_UIM *)choice;
01686 }
01687 
01688 
01689 H225_MobileUIM::operator const H225_ANSI_41_UIM &() const
01690 #endif
01691 {
01692 #ifndef PASN_LEANANDMEAN
01693   PAssert(PIsDescendant(PAssertNULL(choice), H225_ANSI_41_UIM), PInvalidCast);
01694 #endif
01695   return *(H225_ANSI_41_UIM *)choice;
01696 }
01697 
01698 
01699 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01700 H225_MobileUIM::operator H225_GSM_UIM &() const
01701 #else
01702 H225_MobileUIM::operator H225_GSM_UIM &()
01703 {
01704 #ifndef PASN_LEANANDMEAN
01705   PAssert(PIsDescendant(PAssertNULL(choice), H225_GSM_UIM), PInvalidCast);
01706 #endif
01707   return *(H225_GSM_UIM *)choice;
01708 }
01709 
01710 
01711 H225_MobileUIM::operator const H225_GSM_UIM &() const
01712 #endif
01713 {
01714 #ifndef PASN_LEANANDMEAN
01715   PAssert(PIsDescendant(PAssertNULL(choice), H225_GSM_UIM), PInvalidCast);
01716 #endif
01717   return *(H225_GSM_UIM *)choice;
01718 }
01719 
01720 
01721 BOOL H225_MobileUIM::CreateObject()
01722 {
01723   switch (tag) {
01724     case e_ansi_41_uim :
01725       choice = new H225_ANSI_41_UIM();
01726       return TRUE;
01727     case e_gsm_uim :
01728       choice = new H225_GSM_UIM();
01729       return TRUE;
01730   }
01731 
01732   choice = NULL;
01733   return FALSE;
01734 }
01735 
01736 
01737 PObject * H225_MobileUIM::Clone() const
01738 {
01739 #ifndef PASN_LEANANDMEAN
01740   PAssert(IsClass(H225_MobileUIM::Class()), PInvalidCast);
01741 #endif
01742   return new H225_MobileUIM(*this);
01743 }
01744 
01745 
01746 //
01747 // TBCD-STRING
01748 //
01749 
01750 H225_TBCD_STRING::H225_TBCD_STRING(unsigned tag, PASN_Object::TagClass tagClass)
01751   : PASN_IA5String(tag, tagClass)
01752 {
01753   SetCharacterSet(PASN_Object::FixedConstraint, "0123456789#*abc");
01754 }
01755 
01756 
01757 H225_TBCD_STRING & H225_TBCD_STRING::operator=(const char * v)
01758 {
01759   SetValue(v);
01760   return *this;
01761 }
01762 
01763 
01764 H225_TBCD_STRING & H225_TBCD_STRING::operator=(const PString & v)
01765 {
01766   SetValue(v);
01767   return *this;
01768 }
01769 
01770 
01771 PObject * H225_TBCD_STRING::Clone() const
01772 {
01773 #ifndef PASN_LEANANDMEAN
01774   PAssert(IsClass(H225_TBCD_STRING::Class()), PInvalidCast);
01775 #endif
01776   return new H225_TBCD_STRING(*this);
01777 }
01778 
01779 
01780 //
01781 // GSM-UIM
01782 //
01783 
01784 H225_GSM_UIM::H225_GSM_UIM(unsigned tag, PASN_Object::TagClass tagClass)
01785   : PASN_Sequence(tag, tagClass, 6, TRUE, 0)
01786 {
01787   m_imsi.SetConstraints(PASN_Object::FixedConstraint, 3, 16);
01788   m_tmsi.SetConstraints(PASN_Object::FixedConstraint, 1, 4);
01789   m_msisdn.SetConstraints(PASN_Object::FixedConstraint, 3, 16);
01790   m_imei.SetConstraints(PASN_Object::FixedConstraint, 15, 16);
01791   m_hplmn.SetConstraints(PASN_Object::FixedConstraint, 1, 4);
01792   m_vplmn.SetConstraints(PASN_Object::FixedConstraint, 1, 4);
01793 }
01794 
01795 
01796 #ifndef PASN_NOPRINTON
01797 void H225_GSM_UIM::PrintOn(ostream & strm) const
01798 {
01799   int indent = strm.precision() + 2;
01800   strm << "{\n";
01801   if (HasOptionalField(e_imsi))
01802     strm << setw(indent+7) << "imsi = " << setprecision(indent) << m_imsi << '\n';
01803   if (HasOptionalField(e_tmsi))
01804     strm << setw(indent+7) << "tmsi = " << setprecision(indent) << m_tmsi << '\n';
01805   if (HasOptionalField(e_msisdn))
01806     strm << setw(indent+9) << "msisdn = " << setprecision(indent) << m_msisdn << '\n';
01807   if (HasOptionalField(e_imei))
01808     strm << setw(indent+7) << "imei = " << setprecision(indent) << m_imei << '\n';
01809   if (HasOptionalField(e_hplmn))
01810     strm << setw(indent+8) << "hplmn = " << setprecision(indent) << m_hplmn << '\n';
01811   if (HasOptionalField(e_vplmn))
01812     strm << setw(indent+8) << "vplmn = " << setprecision(indent) << m_vplmn << '\n';
01813   strm << setw(indent-1) << setprecision(indent-2) << "}";
01814 }
01815 #endif
01816 
01817 
01818 PObject::Comparison H225_GSM_UIM::Compare(const PObject & obj) const
01819 {
01820 #ifndef PASN_LEANANDMEAN
01821   PAssert(PIsDescendant(&obj, H225_GSM_UIM), PInvalidCast);
01822 #endif
01823   const H225_GSM_UIM & other = (const H225_GSM_UIM &)obj;
01824 
01825   Comparison result;
01826 
01827   if ((result = m_imsi.Compare(other.m_imsi)) != EqualTo)
01828     return result;
01829   if ((result = m_tmsi.Compare(other.m_tmsi)) != EqualTo)
01830     return result;
01831   if ((result = m_msisdn.Compare(other.m_msisdn)) != EqualTo)
01832     return result;
01833   if ((result = m_imei.Compare(other.m_imei)) != EqualTo)
01834     return result;
01835   if ((result = m_hplmn.Compare(other.m_hplmn)) != EqualTo)
01836     return result;
01837   if ((result = m_vplmn.Compare(other.m_vplmn)) != EqualTo)
01838     return result;
01839 
01840   return PASN_Sequence::Compare(other);
01841 }
01842 
01843 
01844 PINDEX H225_GSM_UIM::GetDataLength() const
01845 {
01846   PINDEX length = 0;
01847   if (HasOptionalField(e_imsi))
01848     length += m_imsi.GetObjectLength();
01849   if (HasOptionalField(e_tmsi))
01850     length += m_tmsi.GetObjectLength();
01851   if (HasOptionalField(e_msisdn))
01852     length += m_msisdn.GetObjectLength();
01853   if (HasOptionalField(e_imei))
01854     length += m_imei.GetObjectLength();
01855   if (HasOptionalField(e_hplmn))
01856     length += m_hplmn.GetObjectLength();
01857   if (HasOptionalField(e_vplmn))
01858     length += m_vplmn.GetObjectLength();
01859   return length;
01860 }
01861 
01862 
01863 BOOL H225_GSM_UIM::Decode(PASN_Stream & strm)
01864 {
01865   if (!PreambleDecode(strm))
01866     return FALSE;
01867 
01868   if (HasOptionalField(e_imsi) && !m_imsi.Decode(strm))
01869     return FALSE;
01870   if (HasOptionalField(e_tmsi) && !m_tmsi.Decode(strm))
01871     return FALSE;
01872   if (HasOptionalField(e_msisdn) && !m_msisdn.Decode(strm))
01873     return FALSE;
01874   if (HasOptionalField(e_imei) && !m_imei.Decode(strm))
01875     return FALSE;
01876   if (HasOptionalField(e_hplmn) && !m_hplmn.Decode(strm))
01877     return FALSE;
01878   if (HasOptionalField(e_vplmn) && !m_vplmn.Decode(strm))
01879     return FALSE;
01880 
01881   return UnknownExtensionsDecode(strm);
01882 }
01883 
01884 
01885 void H225_GSM_UIM::Encode(PASN_Stream & strm) const
01886 {
01887   PreambleEncode(strm);
01888 
01889   if (HasOptionalField(e_imsi))
01890     m_imsi.Encode(strm);
01891   if (HasOptionalField(e_tmsi))
01892     m_tmsi.Encode(strm);
01893   if (HasOptionalField(e_msisdn))
01894     m_msisdn.Encode(strm);
01895   if (HasOptionalField(e_imei))
01896     m_imei.Encode(strm);
01897   if (HasOptionalField(e_hplmn))
01898     m_hplmn.Encode(strm);
01899   if (HasOptionalField(e_vplmn))
01900     m_vplmn.Encode(strm);
01901 
01902   UnknownExtensionsEncode(strm);
01903 }
01904 
01905 
01906 PObject * H225_GSM_UIM::Clone() const
01907 {
01908 #ifndef PASN_LEANANDMEAN
01909   PAssert(IsClass(H225_GSM_UIM::Class()), PInvalidCast);
01910 #endif
01911   return new H225_GSM_UIM(*this);
01912 }
01913 
01914 
01915 
01916 #ifndef PASN_NOPRINTON
01917 const static PASN_Names Names_H225_IsupNumber[]={
01918       {"e164Number",0}
01919      ,{"dataPartyNumber",1}
01920      ,{"telexPartyNumber",2}
01921      ,{"privateNumber",3}
01922      ,{"nationalStandardPartyNumber",4}
01923 };
01924 #endif
01925 //
01926 // IsupNumber
01927 //
01928 
01929 H225_IsupNumber::H225_IsupNumber(unsigned tag, PASN_Object::TagClass tagClass)
01930   : PASN_Choice(tag, tagClass, 5, TRUE
01931 #ifndef PASN_NOPRINTON
01932     ,(const PASN_Names *)Names_H225_IsupNumber,5
01933 #endif
01934 )
01935 {
01936 }
01937 
01938 
01939 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01940 H225_IsupNumber::operator H225_IsupPublicPartyNumber &() const
01941 #else
01942 H225_IsupNumber::operator H225_IsupPublicPartyNumber &()
01943 {
01944 #ifndef PASN_LEANANDMEAN
01945   PAssert(PIsDescendant(PAssertNULL(choice), H225_IsupPublicPartyNumber), PInvalidCast);
01946 #endif
01947   return *(H225_IsupPublicPartyNumber *)choice;
01948 }
01949 
01950 
01951 H225_IsupNumber::operator const H225_IsupPublicPartyNumber &() const
01952 #endif
01953 {
01954 #ifndef PASN_LEANANDMEAN
01955   PAssert(PIsDescendant(PAssertNULL(choice), H225_IsupPublicPartyNumber), PInvalidCast);
01956 #endif
01957   return *(H225_IsupPublicPartyNumber *)choice;
01958 }
01959 
01960 
01961 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01962 H225_IsupNumber::operator H225_IsupDigits &() const
01963 #else
01964 H225_IsupNumber::operator H225_IsupDigits &()
01965 {
01966 #ifndef PASN_LEANANDMEAN
01967   PAssert(PIsDescendant(PAssertNULL(choice), H225_IsupDigits), PInvalidCast);
01968 #endif
01969   return *(H225_IsupDigits *)choice;
01970 }
01971 
01972 
01973 H225_IsupNumber::operator const H225_IsupDigits &() const
01974 #endif
01975 {
01976 #ifndef PASN_LEANANDMEAN
01977   PAssert(PIsDescendant(PAssertNULL(choice), H225_IsupDigits), PInvalidCast);
01978 #endif
01979   return *(H225_IsupDigits *)choice;
01980 }
01981 
01982 
01983 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
01984 H225_IsupNumber::operator H225_IsupPrivatePartyNumber &() const
01985 #else
01986 H225_IsupNumber::operator H225_IsupPrivatePartyNumber &()
01987 {
01988 #ifndef PASN_LEANANDMEAN
01989   PAssert(PIsDescendant(PAssertNULL(choice), H225_IsupPrivatePartyNumber), PInvalidCast);
01990 #endif
01991   return *(H225_IsupPrivatePartyNumber *)choice;
01992 }
01993 
01994 
01995 H225_IsupNumber::operator const H225_IsupPrivatePartyNumber &() const
01996 #endif
01997 {
01998 #ifndef PASN_LEANANDMEAN
01999   PAssert(PIsDescendant(PAssertNULL(choice), H225_IsupPrivatePartyNumber), PInvalidCast);
02000 #endif
02001   return *(H225_IsupPrivatePartyNumber *)choice;
02002 }
02003 
02004 
02005 BOOL H225_IsupNumber::CreateObject()
02006 {
02007   switch (tag) {
02008     case e_e164Number :
02009       choice = new H225_IsupPublicPartyNumber();
02010       return TRUE;
02011     case e_dataPartyNumber :
02012     case e_telexPartyNumber :
02013     case e_nationalStandardPartyNumber :
02014       choice = new H225_IsupDigits();
02015       return TRUE;
02016     case e_privateNumber :
02017       choice = new H225_IsupPrivatePartyNumber();
02018       return TRUE;
02019   }
02020 
02021   choice = NULL;
02022   return FALSE;
02023 }
02024 
02025 
02026 PObject * H225_IsupNumber::Clone() const
02027 {
02028 #ifndef PASN_LEANANDMEAN
02029   PAssert(IsClass(H225_IsupNumber::Class()), PInvalidCast);
02030 #endif
02031   return new H225_IsupNumber(*this);
02032 }
02033 
02034 
02035 
02036 #ifndef PASN_NOPRINTON
02037 const static PASN_Names Names_H225_NatureOfAddress[]={
02038       {"unknown",0}
02039      ,{"subscriberNumber",1}
02040      ,{"nationalNumber",2}
02041      ,{"internationalNumber",3}
02042      ,{"networkSpecificNumber",4}
02043      ,{"routingNumberNationalFormat",5}
02044      ,{"routingNumberNetworkSpecificFormat",6}
02045      ,{"routingNumberWithCalledDirectoryNumber",7}
02046 };
02047 #endif
02048 //
02049 // NatureOfAddress
02050 //
02051 
02052 H225_NatureOfAddress::H225_NatureOfAddress(unsigned tag, PASN_Object::TagClass tagClass)
02053   : PASN_Choice(tag, tagClass, 8, TRUE
02054 #ifndef PASN_NOPRINTON
02055     ,(const PASN_Names *)Names_H225_NatureOfAddress,8
02056 #endif
02057 )
02058 {
02059 }
02060 
02061 
02062 BOOL H225_NatureOfAddress::CreateObject()
02063 {
02064   choice = (tag <= e_routingNumberWithCalledDirectoryNumber) ? new PASN_Null() : NULL;
02065   return choice != NULL;
02066 }
02067 
02068 
02069 PObject * H225_NatureOfAddress::Clone() const
02070 {
02071 #ifndef PASN_LEANANDMEAN
02072   PAssert(IsClass(H225_NatureOfAddress::Class()), PInvalidCast);
02073 #endif
02074   return new H225_NatureOfAddress(*this);
02075 }
02076 
02077 
02078 //
02079 // IsupDigits
02080 //
02081 
02082 H225_IsupDigits::H225_IsupDigits(unsigned tag, PASN_Object::TagClass tagClass)
02083   : PASN_IA5String(tag, tagClass)
02084 {
02085   SetConstraints(PASN_Object::FixedConstraint, 1, 128);
02086   SetCharacterSet(PASN_Object::FixedConstraint, "0123456789ABCDE");
02087 }
02088 
02089 
02090 H225_IsupDigits & H225_IsupDigits::operator=(const char * v)
02091 {
02092   SetValue(v);
02093   return *this;
02094 }
02095 
02096 
02097 H225_IsupDigits & H225_IsupDigits::operator=(const PString & v)
02098 {
02099   SetValue(v);
02100   return *this;
02101 }
02102 
02103 
02104 PObject * H225_IsupDigits::Clone() const
02105 {
02106 #ifndef PASN_LEANANDMEAN
02107   PAssert(IsClass(H225_IsupDigits::Class()), PInvalidCast);
02108 #endif
02109   return new H225_IsupDigits(*this);
02110 }
02111 
02112 
02113 //
02114 // ExtendedAliasAddress
02115 //
02116 
02117 H225_ExtendedAliasAddress::H225_ExtendedAliasAddress(unsigned tag, PASN_Object::TagClass tagClass)
02118   : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
02119 {
02120 }
02121 
02122 
02123 #ifndef PASN_NOPRINTON
02124 void H225_ExtendedAliasAddress::PrintOn(ostream & strm) const
02125 {
02126   int indent = strm.precision() + 2;
02127   strm << "{\n";
02128   strm << setw(indent+10) << "address = " << setprecision(indent) << m_address << '\n';
02129   if (HasOptionalField(e_presentationIndicator))
02130     strm << setw(indent+24) << "presentationIndicator = " << setprecision(indent) << m_presentationIndicator << '\n';
02131   if (HasOptionalField(e_screeningIndicator))
02132     strm << setw(indent+21) << "screeningIndicator = " << setprecision(indent) << m_screeningIndicator << '\n';
02133   strm << setw(indent-1) << setprecision(indent-2) << "}";
02134 }
02135 #endif
02136 
02137 
02138 PObject::Comparison H225_ExtendedAliasAddress::Compare(const PObject & obj) const
02139 {
02140 #ifndef PASN_LEANANDMEAN
02141   PAssert(PIsDescendant(&obj, H225_ExtendedAliasAddress), PInvalidCast);
02142 #endif
02143   const H225_ExtendedAliasAddress & other = (const H225_ExtendedAliasAddress &)obj;
02144 
02145   Comparison result;
02146 
02147   if ((result = m_address.Compare(other.m_address)) != EqualTo)
02148     return result;
02149   if ((result = m_presentationIndicator.Compare(other.m_presentationIndicator)) != EqualTo)
02150     return result;
02151   if ((result = m_screeningIndicator.Compare(other.m_screeningIndicator)) != EqualTo)
02152     return result;
02153 
02154   return PASN_Sequence::Compare(other);
02155 }
02156 
02157 
02158 PINDEX H225_ExtendedAliasAddress::GetDataLength() const
02159 {
02160   PINDEX length = 0;
02161   length += m_address.GetObjectLength();
02162   if (HasOptionalField(e_presentationIndicator))
02163     length += m_presentationIndicator.GetObjectLength();
02164   if (HasOptionalField(e_screeningIndicator))
02165     length += m_screeningIndicator.GetObjectLength();
02166   return length;
02167 }
02168 
02169 
02170 BOOL H225_ExtendedAliasAddress::Decode(PASN_Stream & strm)
02171 {
02172   if (!PreambleDecode(strm))
02173     return FALSE;
02174 
02175   if (!m_address.Decode(strm))
02176     return FALSE;
02177   if (HasOptionalField(e_presentationIndicator) && !m_presentationIndicator.Decode(strm))
02178     return FALSE;
02179   if (HasOptionalField(e_screeningIndicator) && !m_screeningIndicator.Decode(strm))
02180     return FALSE;
02181 
02182   return UnknownExtensionsDecode(strm);
02183 }
02184 
02185 
02186 void H225_ExtendedAliasAddress::Encode(PASN_Stream & strm) const
02187 {
02188   PreambleEncode(strm);
02189 
02190   m_address.Encode(strm);
02191   if (HasOptionalField(e_presentationIndicator))
02192     m_presentationIndicator.Encode(strm);
02193   if (HasOptionalField(e_screeningIndicator))
02194     m_screeningIndicator.Encode(strm);
02195 
02196   UnknownExtensionsEncode(strm);
02197 }
02198 
02199 
02200 PObject * H225_ExtendedAliasAddress::Clone() const
02201 {
02202 #ifndef PASN_LEANANDMEAN
02203   PAssert(IsClass(H225_ExtendedAliasAddress::Class()), PInvalidCast);
02204 #endif
02205   return new H225_ExtendedAliasAddress(*this);
02206 }
02207 
02208 
02209 
02210 #ifndef PASN_NOPRINTON
02211 const static PASN_Names Names_H225_UseSpecifiedTransport[]={
02212       {"tcp",0}
02213      ,{"annexE",1}
02214      ,{"sctp",2}
02215 };
02216 #endif
02217 //
02218 // UseSpecifiedTransport
02219 //
02220 
02221 H225_UseSpecifiedTransport::H225_UseSpecifiedTransport(unsigned tag, PASN_Object::TagClass tagClass)
02222   : PASN_Choice(tag, tagClass, 2, TRUE
02223 #ifndef PASN_NOPRINTON
02224     ,(const PASN_Names *)Names_H225_UseSpecifiedTransport,3
02225 #endif
02226 )
02227 {
02228 }
02229 
02230 
02231 BOOL H225_UseSpecifiedTransport::CreateObject()
02232 {
02233   choice = (tag <= e_sctp) ? new PASN_Null() : NULL;
02234   return choice != NULL;
02235 }
02236 
02237 
02238 PObject * H225_UseSpecifiedTransport::Clone() const
02239 {
02240 #ifndef PASN_LEANANDMEAN
02241   PAssert(IsClass(H225_UseSpecifiedTransport::Class()), PInvalidCast);
02242 #endif
02243   return new H225_UseSpecifiedTransport(*this);
02244 }
02245 
02246 
02247 
02248 #ifndef PASN_NOPRINTON
02249 const static PASN_Names Names_H225_SecurityServiceMode[]={
02250       {"nonStandard",0}
02251      ,{"none",1}
02252      ,{"default",2}
02253 };
02254 #endif
02255 //
02256 // SecurityServiceMode
02257 //
02258 
02259 H225_SecurityServiceMode::H225_SecurityServiceMode(unsigned tag, PASN_Object::TagClass tagClass)
02260   : PASN_Choice(tag, tagClass, 3, TRUE
02261 #ifndef PASN_NOPRINTON
02262     ,(const PASN_Names *)Names_H225_SecurityServiceMode,3
02263 #endif
02264 )
02265 {
02266 }
02267 
02268 
02269 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02270 H225_SecurityServiceMode::operator H225_NonStandardParameter &() const
02271 #else
02272 H225_SecurityServiceMode::operator H225_NonStandardParameter &()
02273 {
02274 #ifndef PASN_LEANANDMEAN
02275   PAssert(PIsDescendant(PAssertNULL(choice), H225_NonStandardParameter), PInvalidCast);
02276 #endif
02277   return *(H225_NonStandardParameter *)choice;
02278 }
02279 
02280 
02281 H225_SecurityServiceMode::operator const H225_NonStandardParameter &() const
02282 #endif
02283 {
02284 #ifndef PASN_LEANANDMEAN
02285   PAssert(PIsDescendant(PAssertNULL(choice), H225_NonStandardParameter), PInvalidCast);
02286 #endif
02287   return *(H225_NonStandardParameter *)choice;
02288 }
02289 
02290 
02291 BOOL H225_SecurityServiceMode::CreateObject()
02292 {
02293   switch (tag) {
02294     case e_nonStandard :
02295       choice = new H225_NonStandardParameter();
02296       return TRUE;
02297     case e_none :
02298     case e_default :
02299       choice = new PASN_Null();
02300       return TRUE;
02301   }
02302 
02303   choice = NULL;
02304   return FALSE;
02305 }
02306 
02307 
02308 PObject * H225_SecurityServiceMode::Clone() const
02309 {
02310 #ifndef PASN_LEANANDMEAN
02311   PAssert(IsClass(H225_SecurityServiceMode::Class()), PInvalidCast);
02312 #endif
02313   return new H225_SecurityServiceMode(*this);
02314 }
02315 
02316 
02317 
02318 #ifndef PASN_NOPRINTON
02319 const static PASN_Names Names_H225_SecurityErrors[]={
02320       {"securityWrongSyncTime",0}
02321      ,{"securityReplay",1}
02322      ,{"securityWrongGeneralID",2}
02323      ,{"securityWrongSendersID",3}
02324      ,{"securityIntegrityFailed",4}
02325      ,{"securityWrongOID",5}
02326      ,{"securityDHmismatch",6}
02327      ,{"securityCertificateExpired",7}
02328      ,{"securityCertificateDateInvalid",8}
02329      ,{"securityCertificateRevoked",9}
02330      ,{"securityCertificateNotReadable",10}
02331      ,{"securityCertificateSignatureInvalid",11}
02332      ,{"securityCertificateMissing",12}
02333      ,{"securityCertificateIncomplete",13}
02334      ,{"securityUnsupportedCertificateAlgOID",14}
02335      ,{"securityUnknownCA",15}
02336 };
02337 #endif
02338 //
02339 // SecurityErrors
02340 //
02341 
02342 H225_SecurityErrors::H225_SecurityErrors(unsigned tag, PASN_Object::TagClass tagClass)
02343   : PASN_Choice(tag, tagClass, 16, TRUE
02344 #ifndef PASN_NOPRINTON
02345     ,(const PASN_Names *)Names_H225_SecurityErrors,16
02346 #endif
02347 )
02348 {
02349 }
02350 
02351 
02352 BOOL H225_SecurityErrors::CreateObject()
02353 {
02354   choice = (tag <= e_securityUnknownCA) ? new PASN_Null() : NULL;
02355   return choice != NULL;
02356 }
02357 
02358 
02359 PObject * H225_SecurityErrors::Clone() const
02360 {
02361 #ifndef PASN_LEANANDMEAN
02362   PAssert(IsClass(H225_SecurityErrors::Class()), PInvalidCast);
02363 #endif
02364   return new H225_SecurityErrors(*this);
02365 }
02366 
02367 
02368 
02369 #ifndef PASN_NOPRINTON
02370 const static PASN_Names Names_H225_SecurityErrors2[]={
02371       {"securityWrongSyncTime",0}
02372      ,{"securityReplay",1}
02373      ,{"securityWrongGeneralID",2}
02374      ,{"securityWrongSendersID",3}
02375      ,{"securityIntegrityFailed",4}
02376      ,{"securityWrongOID",5}
02377 };
02378 #endif
02379 //
02380 // SecurityErrors2
02381 //
02382 
02383 H225_SecurityErrors2::H225_SecurityErrors2(unsigned tag, PASN_Object::TagClass tagClass)
02384   : PASN_Choice(tag, tagClass, 6, TRUE
02385 #ifndef PASN_NOPRINTON
02386     ,(const PASN_Names *)Names_H225_SecurityErrors2,6
02387 #endif
02388 )
02389 {
02390 }
02391 
02392 
02393 BOOL H225_SecurityErrors2::CreateObject()
02394 {
02395   choice = (tag <= e_securityWrongOID) ? new PASN_Null() : NULL;
02396   return choice != NULL;
02397 }
02398 
02399 
02400 PObject * H225_SecurityErrors2::Clone() const
02401 {
02402 #ifndef PASN_LEANANDMEAN
02403   PAssert(IsClass(H225_SecurityErrors2::Class()), PInvalidCast);
02404 #endif
02405   return new H225_SecurityErrors2(*this);
02406 }
02407 
02408 
02409 
02410 #ifndef PASN_NOPRINTON
02411 const static PASN_Names Names_H225_H245Security[]={
02412       {"nonStandard",0}
02413      ,{"noSecurity",1}
02414      ,{"tls",2}
02415      ,{"ipsec",3}
02416 };
02417 #endif
02418 //
02419 // H245Security
02420 //
02421 
02422 H225_H245Security::H225_H245Security(unsigned tag, PASN_Object::TagClass tagClass)
02423   : PASN_Choice(tag, tagClass, 4, TRUE
02424 #ifndef PASN_NOPRINTON
02425     ,(const PASN_Names *)Names_H225_H245Security,4
02426 #endif
02427 )
02428 {
02429 }
02430 
02431 
02432 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02433 H225_H245Security::operator H225_NonStandardParameter &() const
02434 #else
02435 H225_H245Security::operator H225_NonStandardParameter &()
02436 {
02437 #ifndef PASN_LEANANDMEAN
02438   PAssert(PIsDescendant(PAssertNULL(choice), H225_NonStandardParameter), PInvalidCast);
02439 #endif
02440   return *(H225_NonStandardParameter *)choice;
02441 }
02442 
02443 
02444 H225_H245Security::operator const H225_NonStandardParameter &() const
02445 #endif
02446 {
02447 #ifndef PASN_LEANANDMEAN
02448   PAssert(PIsDescendant(PAssertNULL(choice), H225_NonStandardParameter), PInvalidCast);
02449 #endif
02450   return *(H225_NonStandardParameter *)choice;
02451 }
02452 
02453 
02454 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
02455 H225_H245Security::operator H225_SecurityCapabilities &() const
02456 #else
02457 H225_H245Security::operator H225_SecurityCapabilities &()
02458 {
02459 #ifndef PASN_LEANANDMEAN
02460   PAssert(PIsDescendant(PAssertNULL(choice), H225_SecurityCapabilities), PInvalidCast);
02461 #endif
02462   return *(H225_SecurityCapabilities *)choice;
02463 }
02464 
02465 
02466 H225_H245Security::operator const H225_SecurityCapabilities &() const
02467 #endif
02468 {
02469 #ifndef PASN_LEANANDMEAN
02470   PAssert(PIsDescendant(PAssertNULL(choice), H225_SecurityCapabilities), PInvalidCast);
02471 #endif
02472   return *(H225_SecurityCapabilities *)choice;
02473 }
02474 
02475 
02476 BOOL H225_H245Security::CreateObject()
02477 {
02478   switch (tag) {
02479     case e_nonStandard :
02480       choice = new H225_NonStandardParameter();
02481       return TRUE;
02482     case e_noSecurity :
02483       choice = new PASN_Null();
02484       return TRUE;
02485     case e_tls :
02486     case e_ipsec :
02487       choice = new H225_SecurityCapabilities();
02488       return TRUE;
02489   }
02490 
02491   choice = NULL;
02492   return FALSE;
02493 }
02494 
02495 
02496 PObject * H225_H245Security::Clone() const
02497 {
02498 #ifndef PASN_LEANANDMEAN
02499   PAssert(IsClass(H225_H245Security::Class()), PInvalidCast);
02500 #endif
02501   return new H225_H245Security(*this);
02502 }
02503 
02504 
02505 //
02506 // Q954Details
02507 //
02508 
02509 H225_Q954Details::H225_Q954Details(unsigned tag, PASN_Object::TagClass tagClass)
02510   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
02511 {
02512 }
02513 
02514 
02515 #ifndef PASN_NOPRINTON
02516 void H225_Q954Details::PrintOn(ostream & strm) const
02517 {
02518   int indent = strm.precision() + 2;
02519   strm << "{\n";
02520   strm << setw(indent+20) << "conferenceCalling = " << setprecision(indent) << m_conferenceCalling << '\n';
02521   strm << setw(indent+20) << "threePartyService = " << setprecision(indent) << m_threePartyService << '\n';
02522   strm << setw(indent-1) << setprecision(indent-2) << "}";
02523 }
02524 #endif
02525 
02526 
02527 PObject::Comparison H225_Q954Details::Compare(const PObject & obj) const
02528 {
02529 #ifndef PASN_LEANANDMEAN
02530   PAssert(PIsDescendant(&obj, H225_Q954Details), PInvalidCast);
02531 #endif
02532   const H225_Q954Details & other = (const H225_Q954Details &)obj;
02533 
02534   Comparison result;
02535 
02536   if ((result = m_conferenceCalling.Compare(other.m_conferenceCalling)) != EqualTo)
02537     return result;
02538   if ((result = m_threePartyService.Compare(other.m_threePartyService)) != EqualTo)
02539     return result;
02540 
02541   return PASN_Sequence::Compare(other);
02542 }
02543 
02544 
02545 PINDEX H225_Q954Details::GetDataLength() const
02546 {
02547   PINDEX length = 0;
02548   length += m_conferenceCalling.GetObjectLength();
02549   length += m_threePartyService.GetObjectLength();
02550   return length;
02551 }
02552 
02553 
02554 BOOL H225_Q954Details::Decode(PASN_Stream & strm)
02555 {
02556   if (!PreambleDecode(strm))
02557     return FALSE;
02558 
02559   if (!m_conferenceCalling.Decode(strm))
02560     return FALSE;
02561   if (!m_threePartyService.Decode(strm))
02562     return FALSE;
02563 
02564   return UnknownExtensionsDecode(strm);
02565 }
02566 
02567 
02568 void H225_Q954Details::Encode(PASN_Stream & strm) const
02569 {
02570   PreambleEncode(strm);
02571 
02572   m_conferenceCalling.Encode(strm);
02573   m_threePartyService.Encode(strm);
02574 
02575   UnknownExtensionsEncode(strm);
02576 }
02577 
02578 
02579 PObject * H225_Q954Details::Clone() const
02580 {
02581 #ifndef PASN_LEANANDMEAN
02582   PAssert(IsClass(H225_Q954Details::Class()), PInvalidCast);
02583 #endif
02584   return new H225_Q954Details(*this);
02585 }
02586 
02587 
02588 //
02589 // GloballyUniqueID
02590 //
02591 
02592 H225_GloballyUniqueID::H225_GloballyUniqueID(unsigned tag, PASN_Object::TagClass tagClass)
02593   : PASN_OctetString(tag, tagClass)
02594 {
02595   SetConstraints(PASN_Object::FixedConstraint, 16);
02596 }
02597 
02598 
02599 H225_GloballyUniqueID::H225_GloballyUniqueID(const char * v)
02600 {
02601   SetValue(v);
02602 }
02603 
02604 
02605 H225_GloballyUniqueID::H225_GloballyUniqueID(const PString & v)
02606 {
02607   SetValue(v);
02608 }
02609 
02610 
02611 H225_GloballyUniqueID::H225_GloballyUniqueID(const PBYTEArray & v)
02612 {
02613   SetValue(v);
02614 }
02615 
02616 
02617 H225_GloballyUniqueID & H225_GloballyUniqueID::operator=(const char * v)
02618 {
02619   SetValue(v);
02620   return *this;
02621 }
02622 
02623 
02624 H225_GloballyUniqueID & H225_GloballyUniqueID::operator=(const PString & v)
02625 {
02626   SetValue(v);
02627   return *this;
02628 }
02629 
02630 
02631 H225_GloballyUniqueID & H225_GloballyUniqueID::operator=(const PBYTEArray & v)
02632 {
02633   SetValue(v);
02634   return *this;
02635 }
02636 
02637 
02638 PObject * H225_GloballyUniqueID::Clone() const
02639 {
02640 #ifndef PASN_LEANANDMEAN
02641   PAssert(IsClass(H225_GloballyUniqueID::Class()), PInvalidCast);
02642 #endif
02643   return new H225_GloballyUniqueID(*this);
02644 }
02645 
02646 
02647 //
02648 // ConferenceIdentifier
02649 //
02650 
02651 H225_ConferenceIdentifier::H225_ConferenceIdentifier(unsigned tag, PASN_Object::TagClass tagClass)
02652   : H225_GloballyUniqueID(tag, tagClass)
02653 {
02654 }
02655 
02656 
02657 H225_ConferenceIdentifier::H225_ConferenceIdentifier(const char * v)
02658 {
02659   SetValue(v);
02660 }
02661 
02662 
02663 H225_ConferenceIdentifier::H225_ConferenceIdentifier(const PString & v)
02664 {
02665   SetValue(v);
02666 }
02667 
02668 
02669 H225_ConferenceIdentifier::H225_ConferenceIdentifier(const PBYTEArray & v)
02670 {
02671   SetValue(v);
02672 }
02673 
02674 
02675 H225_ConferenceIdentifier & H225_ConferenceIdentifier::operator=(const char * v)
02676 {
02677   SetValue(v);
02678   return *this;
02679 }
02680 
02681 
02682 H225_ConferenceIdentifier & H225_ConferenceIdentifier::operator=(const PString & v)
02683 {
02684   SetValue(v);
02685   return *this;
02686 }
02687 
02688 
02689 H225_ConferenceIdentifier & H225_ConferenceIdentifier::operator=(const PBYTEArray & v)
02690 {
02691   SetValue(v);
02692   return *this;
02693 }
02694 
02695 
02696 PObject * H225_ConferenceIdentifier::Clone() const
02697 {
02698 #ifndef PASN_LEANANDMEAN
02699   PAssert(IsClass(H225_ConferenceIdentifier::Class()), PInvalidCast);
02700 #endif
02701   return new H225_ConferenceIdentifier(*this);
02702 }
02703 
02704 
02705 //
02706 // RequestSeqNum
02707 //
02708 
02709 H225_RequestSeqNum::H225_RequestSeqNum(unsigned tag, PASN_Object::TagClass tagClass)
02710   : PASN_Integer(tag, tagClass)
02711 {
02712   SetConstraints(PASN_Object::FixedConstraint, 1, 65535);
02713 }
02714 
02715 
02716 H225_RequestSeqNum & H225_RequestSeqNum::operator=(int v)
02717 {
02718   SetValue(v);
02719   return *this;
02720 }
02721 
02722 
02723 H225_RequestSeqNum & H225_RequestSeqNum::operator=(unsigned v)
02724 {
02725   SetValue(v);
02726   return *this;
02727 }
02728 
02729 
02730 PObject * H225_RequestSeqNum::Clone() const
02731 {
02732 #ifndef PASN_LEANANDMEAN
02733   PAssert(IsClass(H225_RequestSeqNum::Class()), PInvalidCast);
02734 #endif
02735   return new H225_RequestSeqNum(*this);
02736 }
02737 
02738 
02739 //
02740 // GatekeeperIdentifier
02741 //
02742 
02743 H225_GatekeeperIdentifier::H225_GatekeeperIdentifier(unsigned tag, PASN_Object::TagClass tagClass)
02744   : PASN_BMPString(tag, tagClass)
02745 {
02746   SetConstraints(PASN_Object::FixedConstraint, 1, 128);
02747 }
02748 
02749 
02750 H225_GatekeeperIdentifier & H225_GatekeeperIdentifier::operator=(const char * v)
02751 {
02752   SetValue(v);
02753   return *this;
02754 }
02755 
02756 
02757 H225_GatekeeperIdentifier & H225_GatekeeperIdentifier::operator=(const PString & v)
02758 {
02759   SetValue(v);
02760   return *this;
02761 }
02762 
02763 
02764 H225_GatekeeperIdentifier & H225_GatekeeperIdentifier::operator=(const PWORDArray & v)
02765 {
02766   SetValue(v);
02767   return *this;
02768 }
02769 
02770 
02771 H225_GatekeeperIdentifier & H225_GatekeeperIdentifier::operator=(const PASN_BMPString & v)
02772 {
02773   SetValue(v);
02774   return *this;
02775 }
02776 
02777 
02778 PObject * H225_GatekeeperIdentifier::Clone() const
02779 {
02780 #ifndef PASN_LEANANDMEAN
02781   PAssert(IsClass(H225_GatekeeperIdentifier::Class()), PInvalidCast);
02782 #endif
02783   return new H225_GatekeeperIdentifier(*this);
02784 }
02785 
02786 
02787 //
02788 // BandWidth
02789 //
02790 
02791 H225_BandWidth::H225_BandWidth(unsigned tag, PASN_Object::TagClass tagClass)
02792   : PASN_Integer(tag, tagClass)
02793 {
02794   SetConstraints(PASN_Object::FixedConstraint, 0, 4294967295U);
02795 }
02796 
02797 
02798 H225_BandWidth & H225_BandWidth::operator=(int v)
02799 {
02800   SetValue(v);
02801   return *this;
02802 }
02803 
02804 
02805 H225_BandWidth & H225_BandWidth::operator=(unsigned v)
02806 {
02807   SetValue(v);
02808   return *this;
02809 }
02810 
02811 
02812 PObject * H225_BandWidth::Clone() const
02813 {
02814 #ifndef PASN_LEANANDMEAN
02815   PAssert(IsClass(H225_BandWidth::Class()), PInvalidCast);
02816 #endif
02817   return new H225_BandWidth(*this);
02818 }
02819 
02820 
02821 //
02822 // CallReferenceValue
02823 //
02824 
02825 H225_CallReferenceValue::H225_CallReferenceValue(unsigned tag, PASN_Object::TagClass tagClass)
02826   : PASN_Integer(tag, tagClass)
02827 {
02828   SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
02829 }
02830 
02831 
02832 H225_CallReferenceValue & H225_CallReferenceValue::operator=(int v)
02833 {
02834   SetValue(v);
02835   return *this;
02836 }
02837 
02838 
02839 H225_CallReferenceValue & H225_CallReferenceValue::operator=(unsigned v)
02840 {
02841   SetValue(v);
02842   return *this;
02843 }
02844 
02845 
02846 PObject * H225_CallReferenceValue::Clone() const
02847 {
02848 #ifndef PASN_LEANANDMEAN
02849   PAssert(IsClass(H225_CallReferenceValue::Class()), PInvalidCast);
02850 #endif
02851   return new H225_CallReferenceValue(*this);
02852 }
02853 
02854 
02855 //
02856 // EndpointIdentifier
02857 //
02858 
02859 H225_EndpointIdentifier::H225_EndpointIdentifier(unsigned tag, PASN_Object::TagClass tagClass)
02860   : PASN_BMPString(tag, tagClass)
02861 {
02862   SetConstraints(PASN_Object::FixedConstraint, 1, 128);
02863 }
02864 
02865 
02866 H225_EndpointIdentifier & H225_EndpointIdentifier::operator=(const char * v)
02867 {
02868   SetValue(v);
02869   return *this;
02870 }
02871 
02872 
02873 H225_EndpointIdentifier & H225_EndpointIdentifier::operator=(const PString & v)
02874 {
02875   SetValue(v);
02876   return *this;
02877 }
02878 
02879 
02880 H225_EndpointIdentifier & H225_EndpointIdentifier::operator=(const PWORDArray & v)
02881 {
02882   SetValue(v);
02883   return *this;
02884 }
02885 
02886 
02887 H225_EndpointIdentifier & H225_EndpointIdentifier::operator=(const PASN_BMPString & v)
02888 {
02889   SetValue(v);
02890   return *this;
02891 }
02892 
02893 
02894 PObject * H225_EndpointIdentifier::Clone() const
02895 {
02896 #ifndef PASN_LEANANDMEAN
02897   PAssert(IsClass(H225_EndpointIdentifier::Class()), PInvalidCast);
02898 #endif
02899   return new H225_EndpointIdentifier(*this);
02900 }
02901 
02902 
02903 //
02904 // ProtocolIdentifier
02905 //
02906 
02907 H225_ProtocolIdentifier::H225_ProtocolIdentifier(unsigned tag, PASN_Object::TagClass tagClass)
02908   : PASN_ObjectId(tag, tagClass)
02909 {
02910 }
02911 
02912 
02913 PObject * H225_ProtocolIdentifier::Clone() const
02914 {
02915 #ifndef PASN_LEANANDMEAN
02916   PAssert(IsClass(H225_ProtocolIdentifier::Class()), PInvalidCast);
02917 #endif
02918   return new H225_ProtocolIdentifier(*this);
02919 }
02920 
02921 
02922 //
02923 // TimeToLive
02924 //
02925 
02926 H225_TimeToLive::H225_TimeToLive(unsigned tag, PASN_Object::TagClass tagClass)
02927   : PASN_Integer(tag, tagClass)
02928 {
02929   SetConstraints(PASN_Object::FixedConstraint, 1, 4294967295U);
02930 }
02931 
02932 
02933 H225_TimeToLive & H225_TimeToLive::operator=(int v)
02934 {
02935   SetValue(v);
02936   return *this;
02937 }
02938 
02939 
02940 H225_TimeToLive & H225_TimeToLive::operator=(unsigned v)
02941 {
02942   SetValue(v);
02943   return *this;
02944 }
02945 
02946 
02947 PObject * H225_TimeToLive::Clone() const
02948 {
02949 #ifndef PASN_LEANANDMEAN
02950   PAssert(IsClass(H225_TimeToLive::Class()), PInvalidCast);
02951 #endif
02952   return new H225_TimeToLive(*this);
02953 }
02954 
02955 
02956 //
02957 // H248PackagesDescriptor
02958 //
02959 
02960 H225_H248PackagesDescriptor::H225_H248PackagesDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
02961   : PASN_OctetString(tag, tagClass)
02962 {
02963 }
02964 
02965 
02966 H225_H248PackagesDescriptor::H225_H248PackagesDescriptor(const char * v)
02967 {
02968   SetValue(v);
02969 }
02970 
02971 
02972 H225_H248PackagesDescriptor::H225_H248PackagesDescriptor(const PString & v)
02973 {
02974   SetValue(v);
02975 }
02976 
02977 
02978 H225_H248PackagesDescriptor::H225_H248PackagesDescriptor(const PBYTEArray & v)
02979 {
02980   SetValue(v);
02981 }
02982 
02983 
02984 H225_H248PackagesDescriptor & H225_H248PackagesDescriptor::operator=(const char * v)
02985 {
02986   SetValue(v);
02987   return *this;
02988 }
02989 
02990 
02991 H225_H248PackagesDescriptor & H225_H248PackagesDescriptor::operator=(const PString & v)
02992 {
02993   SetValue(v);
02994   return *this;
02995 }
02996 
02997 
02998 H225_H248PackagesDescriptor & H225_H248PackagesDescriptor::operator=(const PBYTEArray & v)
02999 {
03000   SetValue(v);
03001   return *this;
03002 }
03003 
03004 
03005 PObject * H225_H248PackagesDescriptor::Clone() const
03006 {
03007 #ifndef PASN_LEANANDMEAN
03008   PAssert(IsClass(H225_H248PackagesDescriptor::Class()), PInvalidCast);
03009 #endif
03010   return new H225_H248PackagesDescriptor(*this);
03011 }
03012 
03013 
03014 //
03015 // H248SignalsDescriptor
03016 //
03017 
03018 H225_H248SignalsDescriptor::H225_H248SignalsDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
03019   : PASN_OctetString(tag, tagClass)
03020 {
03021 }
03022 
03023 
03024 H225_H248SignalsDescriptor::H225_H248SignalsDescriptor(const char * v)
03025 {
03026   SetValue(v);
03027 }
03028 
03029 
03030 H225_H248SignalsDescriptor::H225_H248SignalsDescriptor(const PString & v)
03031 {
03032   SetValue(v);
03033 }
03034 
03035 
03036 H225_H248SignalsDescriptor::H225_H248SignalsDescriptor(const PBYTEArray & v)
03037 {
03038   SetValue(v);
03039 }
03040 
03041 
03042 H225_H248SignalsDescriptor & H225_H248SignalsDescriptor::operator=(const char * v)
03043 {
03044   SetValue(v);
03045   return *this;
03046 }
03047 
03048 
03049 H225_H248SignalsDescriptor & H225_H248SignalsDescriptor::operator=(const PString & v)
03050 {
03051   SetValue(v);
03052   return *this;
03053 }
03054 
03055 
03056 H225_H248SignalsDescriptor & H225_H248SignalsDescriptor::operator=(const PBYTEArray & v)
03057 {
03058   SetValue(v);
03059   return *this;
03060 }
03061 
03062 
03063 PObject * H225_H248SignalsDescriptor::Clone() const
03064 {
03065 #ifndef PASN_LEANANDMEAN
03066   PAssert(IsClass(H225_H248SignalsDescriptor::Class()), PInvalidCast);
03067 #endif
03068   return new H225_H248SignalsDescriptor(*this);
03069 }
03070 
03071 
03072 //
03073 // CallIdentifier
03074 //
03075 
03076 H225_CallIdentifier::H225_CallIdentifier(unsigned tag, PASN_Object::TagClass tagClass)
03077   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
03078 {
03079 }
03080 
03081 
03082 #ifndef PASN_NOPRINTON
03083 void H225_CallIdentifier::PrintOn(ostream & strm) const
03084 {
03085   int indent = strm.precision() + 2;
03086   strm << "{\n";
03087   strm << setw(indent+7) << "guid = " << setprecision(indent) << m_guid << '\n';
03088   strm << setw(indent-1) << setprecision(indent-2) << "}";
03089 }
03090 #endif
03091 
03092 
03093 PObject::Comparison H225_CallIdentifier::Compare(const PObject & obj) const
03094 {
03095 #ifndef PASN_LEANANDMEAN
03096   PAssert(PIsDescendant(&obj, H225_CallIdentifier), PInvalidCast);
03097 #endif
03098   const H225_CallIdentifier & other = (const H225_CallIdentifier &)obj;
03099 
03100   Comparison result;
03101 
03102   if ((result = m_guid.Compare(other.m_guid)) != EqualTo)
03103     return result;
03104 
03105   return PASN_Sequence::Compare(other);
03106 }
03107 
03108 
03109 PINDEX H225_CallIdentifier::GetDataLength() const
03110 {
03111   PINDEX length = 0;
03112   length += m_guid.GetObjectLength();
03113   return length;
03114 }
03115 
03116 
03117 BOOL H225_CallIdentifier::Decode(PASN_Stream & strm)
03118 {
03119   if (!PreambleDecode(strm))
03120     return FALSE;
03121 
03122   if (!m_guid.Decode(strm))
03123     return FALSE;
03124 
03125   return UnknownExtensionsDecode(strm);
03126 }
03127 
03128 
03129 void H225_CallIdentifier::Encode(PASN_Stream & strm) const
03130 {
03131   PreambleEncode(strm);
03132 
03133   m_guid.Encode(strm);
03134 
03135   UnknownExtensionsEncode(strm);
03136 }
03137 
03138 
03139 PObject * H225_CallIdentifier::Clone() const
03140 {
03141 #ifndef PASN_LEANANDMEAN
03142   PAssert(IsClass(H225_CallIdentifier::Class()), PInvalidCast);
03143 #endif
03144   return new H225_CallIdentifier(*this);
03145 }
03146 
03147 
03148 
03149 #ifndef PASN_NOPRINTON
03150 const static PASN_Names Names_H225_EncryptIntAlg[]={
03151       {"nonStandard",0}
03152      ,{"isoAlgorithm",1}
03153 };
03154 #endif
03155 //
03156 // EncryptIntAlg
03157 //
03158 
03159 H225_EncryptIntAlg::H225_EncryptIntAlg(unsigned tag, PASN_Object::TagClass tagClass)
03160   : PASN_Choice(tag, tagClass, 2, TRUE
03161 #ifndef PASN_NOPRINTON
03162     ,(const PASN_Names *)Names_H225_EncryptIntAlg,2
03163 #endif
03164 )
03165 {
03166 }
03167 
03168 
03169 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03170 H225_EncryptIntAlg::operator H225_NonStandardParameter &() const
03171 #else
03172 H225_EncryptIntAlg::operator H225_NonStandardParameter &()
03173 {
03174 #ifndef PASN_LEANANDMEAN
03175   PAssert(PIsDescendant(PAssertNULL(choice), H225_NonStandardParameter), PInvalidCast);
03176 #endif
03177   return *(H225_NonStandardParameter *)choice;
03178 }
03179 
03180 
03181 H225_EncryptIntAlg::operator const H225_NonStandardParameter &() const
03182 #endif
03183 {
03184 #ifndef PASN_LEANANDMEAN
03185   PAssert(PIsDescendant(PAssertNULL(choice), H225_NonStandardParameter), PInvalidCast);
03186 #endif
03187   return *(H225_NonStandardParameter *)choice;
03188 }
03189 
03190 
03191 BOOL H225_EncryptIntAlg::CreateObject()
03192 {
03193   switch (tag) {
03194     case e_nonStandard :
03195       choice = new H225_NonStandardParameter();
03196       return TRUE;
03197     case e_isoAlgorithm :
03198       choice = new PASN_ObjectId();
03199       return TRUE;
03200   }
03201 
03202   choice = NULL;
03203   return FALSE;
03204 }
03205 
03206 
03207 PObject * H225_EncryptIntAlg::Clone() const
03208 {
03209 #ifndef PASN_LEANANDMEAN
03210   PAssert(IsClass(H225_EncryptIntAlg::Class()), PInvalidCast);
03211 #endif
03212   return new H225_EncryptIntAlg(*this);
03213 }
03214 
03215 
03216 
03217 #ifndef PASN_NOPRINTON
03218 const static PASN_Names Names_H225_NonIsoIntegrityMechanism[]={
03219       {"hMAC_MD5",0}
03220      ,{"hMAC_iso10118_2_s",1}
03221      ,{"hMAC_iso10118_2_l",2}
03222      ,{"hMAC_iso10118_3",3}
03223 };
03224 #endif
03225 //
03226 // NonIsoIntegrityMechanism
03227 //
03228 
03229 H225_NonIsoIntegrityMechanism::H225_NonIsoIntegrityMechanism(unsigned tag, PASN_Object::TagClass tagClass)
03230   : PASN_Choice(tag, tagClass, 4, TRUE
03231 #ifndef PASN_NOPRINTON
03232     ,(const PASN_Names *)Names_H225_NonIsoIntegrityMechanism,4
03233 #endif
03234 )
03235 {
03236 }
03237 
03238 
03239 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03240 H225_NonIsoIntegrityMechanism::operator H225_EncryptIntAlg &() const
03241 #else
03242 H225_NonIsoIntegrityMechanism::operator H225_EncryptIntAlg &()
03243 {
03244 #ifndef PASN_LEANANDMEAN
03245   PAssert(PIsDescendant(PAssertNULL(choice), H225_EncryptIntAlg), PInvalidCast);
03246 #endif
03247   return *(H225_EncryptIntAlg *)choice;
03248 }
03249 
03250 
03251 H225_NonIsoIntegrityMechanism::operator const H225_EncryptIntAlg &() const
03252 #endif
03253 {
03254 #ifndef PASN_LEANANDMEAN
03255   PAssert(PIsDescendant(PAssertNULL(choice), H225_EncryptIntAlg), PInvalidCast);
03256 #endif
03257   return *(H225_EncryptIntAlg *)choice;
03258 }
03259 
03260 
03261 BOOL H225_NonIsoIntegrityMechanism::CreateObject()
03262 {
03263   switch (tag) {
03264     case e_hMAC_MD5 :
03265       choice = new PASN_Null();
03266       return TRUE;
03267     case e_hMAC_iso10118_2_s :
03268     case e_hMAC_iso10118_2_l :
03269       choice = new H225_EncryptIntAlg();
03270       return TRUE;
03271     case e_hMAC_iso10118_3 :
03272       choice = new PASN_ObjectId();
03273       return TRUE;
03274   }
03275 
03276   choice = NULL;
03277   return FALSE;
03278 }
03279 
03280 
03281 PObject * H225_NonIsoIntegrityMechanism::Clone() const
03282 {
03283 #ifndef PASN_LEANANDMEAN
03284   PAssert(IsClass(H225_NonIsoIntegrityMechanism::Class()), PInvalidCast);
03285 #endif
03286   return new H225_NonIsoIntegrityMechanism(*this);
03287 }
03288 
03289 
03290 
03291 #ifndef PASN_NOPRINTON
03292 const static PASN_Names Names_H225_IntegrityMechanism[]={
03293       {"nonStandard",0}
03294      ,{"digSig",1}
03295      ,{"iso9797",2}
03296      ,{"nonIsoIM",3}
03297 };
03298 #endif
03299 //
03300 // IntegrityMechanism
03301 //
03302 
03303 H225_IntegrityMechanism::H225_IntegrityMechanism(unsigned tag, PASN_Object::TagClass tagClass)
03304   : PASN_Choice(tag, tagClass, 4, TRUE
03305 #ifndef PASN_NOPRINTON
03306     ,(const PASN_Names *)Names_H225_IntegrityMechanism,4
03307 #endif
03308 )
03309 {
03310 }
03311 
03312 
03313 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03314 H225_IntegrityMechanism::operator H225_NonStandardParameter &() const
03315 #else
03316 H225_IntegrityMechanism::operator H225_NonStandardParameter &()
03317 {
03318 #ifndef PASN_LEANANDMEAN
03319   PAssert(PIsDescendant(PAssertNULL(choice), H225_NonStandardParameter), PInvalidCast);
03320 #endif
03321   return *(H225_NonStandardParameter *)choice;
03322 }
03323 
03324 
03325 H225_IntegrityMechanism::operator const H225_NonStandardParameter &() const
03326 #endif
03327 {
03328 #ifndef PASN_LEANANDMEAN
03329   PAssert(PIsDescendant(PAssertNULL(choice), H225_NonStandardParameter), PInvalidCast);
03330 #endif
03331   return *(H225_NonStandardParameter *)choice;
03332 }
03333 
03334 
03335 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03336 H225_IntegrityMechanism::operator H225_NonIsoIntegrityMechanism &() const
03337 #else
03338 H225_IntegrityMechanism::operator H225_NonIsoIntegrityMechanism &()
03339 {
03340 #ifndef PASN_LEANANDMEAN
03341   PAssert(PIsDescendant(PAssertNULL(choice), H225_NonIsoIntegrityMechanism), PInvalidCast);
03342 #endif
03343   return *(H225_NonIsoIntegrityMechanism *)choice;
03344 }
03345 
03346 
03347 H225_IntegrityMechanism::operator const H225_NonIsoIntegrityMechanism &() const
03348 #endif
03349 {
03350 #ifndef PASN_LEANANDMEAN
03351   PAssert(PIsDescendant(PAssertNULL(choice), H225_NonIsoIntegrityMechanism), PInvalidCast);
03352 #endif
03353   return *(H225_NonIsoIntegrityMechanism *)choice;
03354 }
03355 
03356 
03357 BOOL H225_IntegrityMechanism::CreateObject()
03358 {
03359   switch (tag) {
03360     case e_nonStandard :
03361       choice = new H225_NonStandardParameter();
03362       return TRUE;
03363     case e_digSig :
03364       choice = new PASN_Null();
03365       return TRUE;
03366     case e_iso9797 :
03367       choice = new PASN_ObjectId();
03368       return TRUE;
03369     case e_nonIsoIM :
03370       choice = new H225_NonIsoIntegrityMechanism();
03371       return TRUE;
03372   }
03373 
03374   choice = NULL;
03375   return FALSE;
03376 }
03377 
03378 
03379 PObject * H225_IntegrityMechanism::Clone() const
03380 {
03381 #ifndef PASN_LEANANDMEAN
03382   PAssert(IsClass(H225_IntegrityMechanism::Class()), PInvalidCast);
03383 #endif
03384   return new H225_IntegrityMechanism(*this);
03385 }
03386 
03387 
03388 //
03389 // ICV
03390 //
03391 
03392 H225_ICV::H225_ICV(unsigned tag, PASN_Object::TagClass tagClass)
03393   : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
03394 {
03395 }
03396 
03397 
03398 #ifndef PASN_NOPRINTON
03399 void H225_ICV::PrintOn(ostream & strm) const
03400 {
03401   int indent = strm.precision() + 2;
03402   strm << "{\n";
03403   strm << setw(indent+15) << "algorithmOID = " << setprecision(indent) << m_algorithmOID << '\n';
03404   strm << setw(indent+6) << "icv = " << setprecision(indent) << m_icv << '\n';
03405   strm << setw(indent-1) << setprecision(indent-2) << "}";
03406 }
03407 #endif
03408 
03409 
03410 PObject::Comparison H225_ICV::Compare(const PObject & obj) const
03411 {
03412 #ifndef PASN_LEANANDMEAN
03413   PAssert(PIsDescendant(&obj, H225_ICV), PInvalidCast);
03414 #endif
03415   const H225_ICV & other = (const H225_ICV &)obj;
03416 
03417   Comparison result;
03418 
03419   if ((result = m_algorithmOID.Compare(other.m_algorithmOID)) != EqualTo)
03420     return result;
03421   if ((result = m_icv.Compare(other.m_icv)) != EqualTo)
03422     return result;
03423 
03424   return PASN_Sequence::Compare(other);
03425 }
03426 
03427 
03428 PINDEX H225_ICV::GetDataLength() const
03429 {
03430   PINDEX length = 0;
03431   length += m_algorithmOID.GetObjectLength();
03432   length += m_icv.GetObjectLength();
03433   return length;
03434 }
03435 
03436 
03437 BOOL H225_ICV::Decode(PASN_Stream & strm)
03438 {
03439   if (!PreambleDecode(strm))
03440     return FALSE;
03441 
03442   if (!m_algorithmOID.Decode(strm))
03443     return FALSE;
03444   if (!m_icv.Decode(strm))
03445     return FALSE;
03446 
03447   return UnknownExtensionsDecode(strm);
03448 }
03449 
03450 
03451 void H225_ICV::Encode(PASN_Stream & strm) const
03452 {
03453   PreambleEncode(strm);
03454 
03455   m_algorithmOID.Encode(strm);
03456   m_icv.Encode(strm);
03457 
03458   UnknownExtensionsEncode(strm);
03459 }
03460 
03461 
03462 PObject * H225_ICV::Clone() const
03463 {
03464 #ifndef PASN_LEANANDMEAN
03465   PAssert(IsClass(H225_ICV::Class()), PInvalidCast);
03466 #endif
03467   return new H225_ICV(*this);
03468 }
03469 
03470 
03471 //
03472 // FastStartToken
03473 //
03474 
03475 H225_FastStartToken::H225_FastStartToken(unsigned tag, PASN_Object::TagClass tagClass)
03476   : H235_ClearToken(tag, tagClass)
03477 {
03478   IncludeOptionalField(e_generalID);
03479   IncludeOptionalField(e_dhkey);
03480   IncludeOptionalField(e_timeStamp);
03481 }
03482 
03483 
03484 PObject * H225_FastStartToken::Clone() const
03485 {
03486 #ifndef PASN_LEANANDMEAN
03487   PAssert(IsClass(H225_FastStartToken::Class()), PInvalidCast);
03488 #endif
03489   return new H225_FastStartToken(*this);
03490 }
03491 
03492 
03493 //
03494 // EncodedFastStartToken
03495 //
03496 
03497 H225_EncodedFastStartToken::H225_EncodedFastStartToken(unsigned tag, PASN_Object::TagClass tagClass)
03498   : PASN_OctetString(tag, tagClass)
03499 {
03500 }
03501 
03502 
03503 PObject * H225_EncodedFastStartToken::Clone() const
03504 {
03505 #ifndef PASN_LEANANDMEAN
03506   PAssert(IsClass(H225_EncodedFastStartToken::Class()), PInvalidCast);
03507 #endif
03508   return new H225_EncodedFastStartToken(*this);
03509 }
03510 
03511 
03512 
03513 #ifndef PASN_NOPRINTON
03514 const static PASN_Names Names_H225_CryptoH323Token[]={
03515       {"cryptoEPPwdHash",0}
03516      ,{"cryptoGKPwdHash",1}
03517      ,{"cryptoEPPwdEncr",2}
03518      ,{"cryptoGKPwdEncr",3}
03519      ,{"cryptoEPCert",4}
03520      ,{"cryptoGKCert",5}
03521      ,{"cryptoFastStart",6}
03522      ,{"nestedcryptoToken",7}
03523 };
03524 #endif
03525 //
03526 // CryptoH323Token
03527 //
03528 
03529 H225_CryptoH323Token::H225_CryptoH323Token(unsigned tag, PASN_Object::TagClass tagClass)
03530   : PASN_Choice(tag, tagClass, 8, TRUE
03531 #ifndef PASN_NOPRINTON
03532     ,(const PASN_Names *)Names_H225_CryptoH323Token,8
03533 #endif
03534 )
03535 {
03536 }
03537 
03538 
03539 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03540 H225_CryptoH323Token::operator H225_CryptoH323Token_cryptoEPPwdHash &() const
03541 #else
03542 H225_CryptoH323Token::operator H225_CryptoH323Token_cryptoEPPwdHash &()
03543 {
03544 #ifndef PASN_LEANANDMEAN
03545   PAssert(PIsDescendant(PAssertNULL(choice), H225_CryptoH323Token_cryptoEPPwdHash), PInvalidCast);
03546 #endif
03547   return *(H225_CryptoH323Token_cryptoEPPwdHash *)choice;
03548 }
03549 
03550 
03551 H225_CryptoH323Token::operator const H225_CryptoH323Token_cryptoEPPwdHash &() const
03552 #endif
03553 {
03554 #ifndef PASN_LEANANDMEAN
03555   PAssert(PIsDescendant(PAssertNULL(choice), H225_CryptoH323Token_cryptoEPPwdHash), PInvalidCast);
03556 #endif
03557   return *(H225_CryptoH323Token_cryptoEPPwdHash *)choice;
03558 }
03559 
03560 
03561 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03562 H225_CryptoH323Token::operator H225_CryptoH323Token_cryptoGKPwdHash &() const
03563 #else
03564 H225_CryptoH323Token::operator H225_CryptoH323Token_cryptoGKPwdHash &()
03565 {
03566 #ifndef PASN_LEANANDMEAN
03567   PAssert(PIsDescendant(PAssertNULL(choice), H225_CryptoH323Token_cryptoGKPwdHash), PInvalidCast);
03568 #endif
03569   return *(H225_CryptoH323Token_cryptoGKPwdHash *)choice;
03570 }
03571 
03572 
03573 H225_CryptoH323Token::operator const H225_CryptoH323Token_cryptoGKPwdHash &() const
03574 #endif
03575 {
03576 #ifndef PASN_LEANANDMEAN
03577   PAssert(PIsDescendant(PAssertNULL(choice), H225_CryptoH323Token_cryptoGKPwdHash), PInvalidCast);
03578 #endif
03579   return *(H225_CryptoH323Token_cryptoGKPwdHash *)choice;
03580 }
03581 
03582 
03583 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03584 H225_CryptoH323Token::operator H235_ENCRYPTED<H235_EncodedPwdCertToken> &() const
03585 #else
03586 H225_CryptoH323Token::operator H235_ENCRYPTED<H235_EncodedPwdCertToken> &()
03587 {
03588 #ifndef PASN_LEANANDMEAN
03589   PAssert(PIsDescendant(PAssertNULL(choice), H235_ENCRYPTED<H235_EncodedPwdCertToken>), PInvalidCast);
03590 #endif
03591   return *(H235_ENCRYPTED<H235_EncodedPwdCertToken> *)choice;
03592 }
03593 
03594 
03595 H225_CryptoH323Token::operator const H235_ENCRYPTED<H235_EncodedPwdCertToken> &() const
03596 #endif
03597 {
03598 #ifndef PASN_LEANANDMEAN
03599   PAssert(PIsDescendant(PAssertNULL(choice), H235_ENCRYPTED<H235_EncodedPwdCertToken>), PInvalidCast);
03600 #endif
03601   return *(H235_ENCRYPTED<H235_EncodedPwdCertToken> *)choice;
03602 }
03603 
03604 
03605 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03606 H225_CryptoH323Token::operator H235_SIGNED<H235_EncodedPwdCertToken> &() const
03607 #else
03608 H225_CryptoH323Token::operator H235_SIGNED<H235_EncodedPwdCertToken> &()
03609 {
03610 #ifndef PASN_LEANANDMEAN
03611   PAssert(PIsDescendant(PAssertNULL(choice), H235_SIGNED<H235_EncodedPwdCertToken>), PInvalidCast);
03612 #endif
03613   return *(H235_SIGNED<H235_EncodedPwdCertToken> *)choice;
03614 }
03615 
03616 
03617 H225_CryptoH323Token::operator const H235_SIGNED<H235_EncodedPwdCertToken> &() const
03618 #endif
03619 {
03620 #ifndef PASN_LEANANDMEAN
03621   PAssert(PIsDescendant(PAssertNULL(choice), H235_SIGNED<H235_EncodedPwdCertToken>), PInvalidCast);
03622 #endif
03623   return *(H235_SIGNED<H235_EncodedPwdCertToken> *)choice;
03624 }
03625 
03626 
03627 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03628 H225_CryptoH323Token::operator H235_SIGNED<H225_EncodedFastStartToken> &() const
03629 #else
03630 H225_CryptoH323Token::operator H235_SIGNED<H225_EncodedFastStartToken> &()
03631 {
03632 #ifndef PASN_LEANANDMEAN
03633   PAssert(PIsDescendant(PAssertNULL(choice), H235_SIGNED<H225_EncodedFastStartToken>), PInvalidCast);
03634 #endif
03635   return *(H235_SIGNED<H225_EncodedFastStartToken> *)choice;
03636 }
03637 
03638 
03639 H225_CryptoH323Token::operator const H235_SIGNED<H225_EncodedFastStartToken> &() const
03640 #endif
03641 {
03642 #ifndef PASN_LEANANDMEAN
03643   PAssert(PIsDescendant(PAssertNULL(choice), H235_SIGNED<H225_EncodedFastStartToken>), PInvalidCast);
03644 #endif
03645   return *(H235_SIGNED<H225_EncodedFastStartToken> *)choice;
03646 }
03647 
03648 
03649 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03650 H225_CryptoH323Token::operator H235_CryptoToken &() const
03651 #else
03652 H225_CryptoH323Token::operator H235_CryptoToken &()
03653 {
03654 #ifndef PASN_LEANANDMEAN
03655   PAssert(PIsDescendant(PAssertNULL(choice), H235_CryptoToken), PInvalidCast);
03656 #endif
03657   return *(H235_CryptoToken *)choice;
03658 }
03659 
03660 
03661 H225_CryptoH323Token::operator const H235_CryptoToken &() const
03662 #endif
03663 {
03664 #ifndef PASN_LEANANDMEAN
03665   PAssert(PIsDescendant(PAssertNULL(choice), H235_CryptoToken), PInvalidCast);
03666 #endif
03667   return *(H235_CryptoToken *)choice;
03668 }
03669 
03670 
03671 BOOL H225_CryptoH323Token::CreateObject()
03672 {
03673   switch (tag) {
03674     case e_cryptoEPPwdHash :
03675       choice = new H225_CryptoH323Token_cryptoEPPwdHash();
03676       return TRUE;
03677     case e_cryptoGKPwdHash :
03678       choice = new H225_CryptoH323Token_cryptoGKPwdHash();
03679       return TRUE;
03680     case e_cryptoEPPwdEncr :
03681     case e_cryptoGKPwdEncr :
03682       choice = new H235_ENCRYPTED<H235_EncodedPwdCertToken>();
03683       return TRUE;
03684     case e_cryptoEPCert :
03685     case e_cryptoGKCert :
03686       choice = new H235_SIGNED<H235_EncodedPwdCertToken>();
03687       return TRUE;
03688     case e_cryptoFastStart :
03689       choice = new H235_SIGNED<H225_EncodedFastStartToken>();
03690       return TRUE;
03691     case e_nestedcryptoToken :
03692       choice = new H235_CryptoToken();
03693       return TRUE;
03694   }
03695 
03696   choice = NULL;
03697   return FALSE;
03698 }
03699 
03700 
03701 PObject * H225_CryptoH323Token::Clone() const
03702 {
03703 #ifndef PASN_LEANANDMEAN
03704   PAssert(IsClass(H225_CryptoH323Token::Class()), PInvalidCast);
03705 #endif
03706   return new H225_CryptoH323Token(*this);
03707 }
03708 
03709 
03710 //
03711 // CallLinkage
03712 //
03713 
03714 H225_CallLinkage::H225_CallLinkage(unsigned tag, PASN_Object::TagClass tagClass)
03715   : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
03716 {
03717 }
03718 
03719 
03720 #ifndef PASN_NOPRINTON
03721 void H225_CallLinkage::PrintOn(ostream & strm) const
03722 {
03723   int indent = strm.precision() + 2;
03724   strm << "{\n";
03725   if (HasOptionalField(e_globalCallId))
03726     strm << setw(indent+15) << "globalCallId = " << setprecision(indent) << m_globalCallId << '\n';
03727   if (HasOptionalField(e_threadId))
03728     strm << setw(indent+11) << "threadId = " << setprecision(indent) << m_threadId << '\n';
03729   strm << setw(indent-1) << setprecision(indent-2) << "}";
03730 }
03731 #endif
03732 
03733 
03734 PObject::Comparison H225_CallLinkage::Compare(const PObject & obj) const
03735 {
03736 #ifndef PASN_LEANANDMEAN
03737   PAssert(PIsDescendant(&obj, H225_CallLinkage), PInvalidCast);
03738 #endif
03739   const H225_CallLinkage & other = (const H225_CallLinkage &)obj;
03740 
03741   Comparison result;
03742 
03743   if ((result = m_globalCallId.Compare(other.m_globalCallId)) != EqualTo)
03744     return result;
03745   if ((result = m_threadId.Compare(other.m_threadId)) != EqualTo)
03746     return result;
03747 
03748   return PASN_Sequence::Compare(other);
03749 }
03750 
03751 
03752 PINDEX H225_CallLinkage::GetDataLength() const
03753 {
03754   PINDEX length = 0;
03755   if (HasOptionalField(e_globalCallId))
03756     length += m_globalCallId.GetObjectLength();
03757   if (HasOptionalField(e_threadId))
03758     length += m_threadId.GetObjectLength();
03759   return length;
03760 }
03761 
03762 
03763 BOOL H225_CallLinkage::Decode(PASN_Stream & strm)
03764 {
03765   if (!PreambleDecode(strm))
03766     return FALSE;
03767 
03768   if (HasOptionalField(e_globalCallId) && !m_globalCallId.Decode(strm))
03769     return FALSE;
03770   if (HasOptionalField(e_threadId) && !m_threadId.Decode(strm))
03771     return FALSE;
03772 
03773   return UnknownExtensionsDecode(strm);
03774 }
03775 
03776 
03777 void H225_CallLinkage::Encode(PASN_Stream & strm) const
03778 {
03779   PreambleEncode(strm);
03780 
03781   if (HasOptionalField(e_globalCallId))
03782     m_globalCallId.Encode(strm);
03783   if (HasOptionalField(e_threadId))
03784     m_threadId.Encode(strm);
03785 
03786   UnknownExtensionsEncode(strm);
03787 }
03788 
03789 
03790 PObject * H225_CallLinkage::Clone() const
03791 {
03792 #ifndef PASN_LEANANDMEAN
03793   PAssert(IsClass(H225_CallLinkage::Class()), PInvalidCast);
03794 #endif
03795   return new H225_CallLinkage(*this);
03796 }
03797 
03798 
03799 //
03800 // CapacityReportingCapability
03801 //
03802 
03803 H225_CapacityReportingCapability::H225_CapacityReportingCapability(unsigned tag, PASN_Object::TagClass tagClass)
03804   : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
03805 {
03806 }
03807 
03808 
03809 #ifndef PASN_NOPRINTON
03810 void H225_CapacityReportingCapability::PrintOn(ostream & strm) const
03811 {
03812   int indent = strm.precision() + 2;
03813   strm << "{\n";
03814   strm << setw(indent+24) << "canReportCallCapacity = " << setprecision(indent) << m_canReportCallCapacity << '\n';
03815   strm << setw(indent-1) << setprecision(indent-2) << "}";
03816 }
03817 #endif
03818 
03819 
03820 PObject::Comparison H225_CapacityReportingCapability::Compare(const PObject & obj) const
03821 {
03822 #ifndef PASN_LEANANDMEAN
03823   PAssert(PIsDescendant(&obj, H225_CapacityReportingCapability), PInvalidCast);
03824 #endif
03825   const H225_CapacityReportingCapability & other = (const H225_CapacityReportingCapability &)obj;
03826 
03827   Comparison result;
03828 
03829   if ((result = m_canReportCallCapacity.Compare(other.m_canReportCallCapacity)) != EqualTo)
03830     return result;
03831 
03832   return PASN_Sequence::Compare(other);
03833 }
03834 
03835 
03836 PINDEX H225_CapacityReportingCapability::GetDataLength() const
03837 {
03838   PINDEX length = 0;
03839   length += m_canReportCallCapacity.GetObjectLength();
03840   return length;
03841 }
03842 
03843 
03844 BOOL H225_CapacityReportingCapability::Decode(PASN_Stream & strm)
03845 {
03846   if (!PreambleDecode(strm))
03847     return FALSE;
03848 
03849   if (!m_canReportCallCapacity.Decode(strm))
03850     return FALSE;
03851 
03852   return UnknownExtensionsDecode(strm);
03853 }
03854 
03855 
03856 void H225_CapacityReportingCapability::Encode(PASN_Stream & strm) const
03857 {
03858   PreambleEncode(strm);
03859 
03860   m_canReportCallCapacity.Encode(strm);
03861 
03862   UnknownExtensionsEncode(strm);
03863 }
03864 
03865 
03866 PObject * H225_CapacityReportingCapability::Clone() const
03867 {
03868 #ifndef PASN_LEANANDMEAN
03869   PAssert(IsClass(H225_CapacityReportingCapability::Class()), PInvalidCast);
03870 #endif
03871   return new H225_CapacityReportingCapability(*this);
03872 }
03873 
03874 
03875 //
03876 // CarrierInfo
03877 //
03878 
03879 H225_CarrierInfo::H225_CarrierInfo(unsigned tag, PASN_Object::TagClass tagClass)
03880   : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
03881 {
03882   m_carrierIdentificationCode.SetConstraints(PASN_Object::FixedConstraint, 3, 4);
03883   m_carrierName.SetConstraints(PASN_Object::FixedConstraint, 1, 128);
03884 }
03885 
03886 
03887 #ifndef PASN_NOPRINTON
03888 void H225_CarrierInfo::PrintOn(ostream & strm) const
03889 {
03890   int indent = strm.precision() + 2;
03891   strm << "{\n";
03892   if (HasOptionalField(e_carrierIdentificationCode))
03893     strm << setw(indent+28) << "carrierIdentificationCode = " << setprecision(indent) << m_carrierIdentificationCode << '\n';
03894   if (HasOptionalField(e_carrierName))
03895     strm << setw(indent+14) << "carrierName = " << setprecision(indent) << m_carrierName << '\n';
03896   strm << setw(indent-1) << setprecision(indent-2) << "}";
03897 }
03898 #endif
03899 
03900 
03901 PObject::Comparison H225_CarrierInfo::Compare(const PObject & obj) const
03902 {
03903 #ifndef PASN_LEANANDMEAN
03904   PAssert(PIsDescendant(&obj, H225_CarrierInfo), PInvalidCast);
03905 #endif
03906   const H225_CarrierInfo & other = (const H225_CarrierInfo &)obj;
03907 
03908   Comparison result;
03909 
03910   if ((result = m_carrierIdentificationCode.Compare(other.m_carrierIdentificationCode)) != EqualTo)
03911     return result;
03912   if ((result = m_carrierName.Compare(other.m_carrierName)) != EqualTo)
03913     return result;
03914 
03915   return PASN_Sequence::Compare(other);
03916 }
03917 
03918 
03919 PINDEX H225_CarrierInfo::GetDataLength() const
03920 {
03921   PINDEX length = 0;
03922   if (HasOptionalField(e_carrierIdentificationCode))
03923     length += m_carrierIdentificationCode.GetObjectLength();
03924   if (HasOptionalField(e_carrierName))
03925     length += m_carrierName.GetObjectLength();
03926   return length;
03927 }
03928 
03929 
03930 BOOL H225_CarrierInfo::Decode(PASN_Stream & strm)
03931 {
03932   if (!PreambleDecode(strm))
03933     return FALSE;
03934 
03935   if (HasOptionalField(e_carrierIdentificationCode) && !m_carrierIdentificationCode.Decode(strm))
03936     return FALSE;
03937   if (HasOptionalField(e_carrierName) && !m_carrierName.Decode(strm))
03938     return FALSE;
03939 
03940   return UnknownExtensionsDecode(strm);
03941 }
03942 
03943 
03944 void H225_CarrierInfo::Encode(PASN_Stream & strm) const
03945 {
03946   PreambleEncode(strm);
03947 
03948   if (HasOptionalField(e_carrierIdentificationCode))
03949     m_carrierIdentificationCode.Encode(strm);
03950   if (HasOptionalField(e_carrierName))
03951     m_carrierName.Encode(strm);
03952 
03953   UnknownExtensionsEncode(strm);
03954 }
03955 
03956 
03957 PObject * H225_CarrierInfo::Clone() const
03958 {
03959 #ifndef PASN_LEANANDMEAN
03960   PAssert(IsClass(H225_CarrierInfo::Class()), PInvalidCast);
03961 #endif
03962   return new H225_CarrierInfo(*this);
03963 }
03964 
03965 
03966 
03967 #ifndef PASN_NOPRINTON
03968 const static PASN_Names Names_H225_ServiceControlDescriptor[]={
03969       {"url",0}
03970      ,{"signal",1}
03971      ,{"nonStandard",2}
03972      ,{"callCreditServiceControl",3}
03973 };
03974 #endif
03975 //
03976 // ServiceControlDescriptor
03977 //
03978 
03979 H225_ServiceControlDescriptor::H225_ServiceControlDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
03980   : PASN_Choice(tag, tagClass, 4, TRUE
03981 #ifndef PASN_NOPRINTON
03982     ,(const PASN_Names *)Names_H225_ServiceControlDescriptor,4
03983 #endif
03984 )
03985 {
03986 }
03987 
03988 
03989 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
03990 H225_ServiceControlDescriptor::operator H225_H248SignalsDescriptor &() const
03991 #else
03992 H225_ServiceControlDescriptor::operator H225_H248SignalsDescriptor &()
03993 {
03994 #ifndef PASN_LEANANDMEAN
03995   PAssert(PIsDescendant(PAssertNULL(choice), H225_H248SignalsDescriptor), PInvalidCast);
03996 #endif
03997   return *(H225_H248SignalsDescriptor *)choice;
03998 }
03999 
04000 
04001 H225_ServiceControlDescriptor::operator const H225_H248SignalsDescriptor &() const
04002 #endif
04003 {
04004 #ifndef PASN_LEANANDMEAN
04005   PAssert(PIsDescendant(PAssertNULL(choice), H225_H248SignalsDescriptor), PInvalidCast);
04006 #endif
04007   return *(H225_H248SignalsDescriptor *)choice;
04008 }
04009 
04010 
04011 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
04012 H225_ServiceControlDescriptor::operator H225_NonStandardParameter &() const
04013 #else
04014 H225_ServiceControlDescriptor::operator H225_NonStandardParameter &()
04015 {
04016 #ifndef PASN_LEANANDMEAN
04017   PAssert(PIsDescendant(PAssertNULL(choice), H225_NonStandardParameter), PInvalidCast);
04018 #endif
04019   return *(H225_NonStandardParameter *)choice;
04020 }
04021 
04022 
04023 H225_ServiceControlDescriptor::operator const H225_NonStandardParameter &() const
04024 #endif
04025 {
04026 #ifndef PASN_LEANANDMEAN
04027   PAssert(PIsDescendant(PAssertNULL(choice), H225_NonStandardParameter), PInvalidCast);
04028 #endif
04029   return *(H225_NonStandardParameter *)choice;
04030 }
04031 
04032 
04033 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
04034 H225_ServiceControlDescriptor::operator H225_CallCreditServiceControl &() const
04035 #else
04036 H225_ServiceControlDescriptor::operator H225_CallCreditServiceControl &()
04037 {
04038 #ifndef PASN_LEANANDMEAN
04039   PAssert(PIsDescendant(PAssertNULL(choice), H225_CallCreditServiceControl), PInvalidCast);
04040 #endif
04041   return *(H225_CallCreditServiceControl *)choice;
04042 }
04043 
04044 
04045 H225_ServiceControlDescriptor::operator const H225_CallCreditServiceControl &() const
04046 #endif
04047 {
04048 #ifndef PASN_LEANANDMEAN
04049   PAssert(PIsDescendant(PAssertNULL(choice), H225_CallCreditServiceControl), PInvalidCast);
04050 #endif
04051   return *(H225_CallCreditServiceControl *)choice;
04052 }
04053 
04054 
04055 BOOL H225_ServiceControlDescriptor::CreateObject()
04056 {
04057   switch (tag) {
04058     case e_url :
04059       choice = new PASN_IA5String();
04060       choice->SetConstraints(PASN_Object::FixedConstraint, 0, 512);
04061       return TRUE;
04062     case e_signal :
04063       choice = new H225_H248SignalsDescriptor();
04064       return TRUE;
04065     case e_nonStandard :
04066       choice = new H225_NonStandardParameter();
04067       return TRUE;
04068     case e_callCreditServiceControl :
04069       choice = new H225_CallCreditServiceControl();
04070       return TRUE;
04071   }
04072 
04073   choice = NULL;
04074   return FALSE;
04075 }
04076 
04077 
04078 PObject * H225_ServiceControlDescriptor::Clone() const
04079 {
04080 #ifndef PASN_LEANANDMEAN
04081   PAssert(IsClass(H225_ServiceControlDescriptor::Class()), PInvalidCast);
04082 #endif
04083   return new H225_ServiceControlDescriptor(*this);
04084 }
04085 
04086 
04087 
04088 #ifndef PASN_NOPRINTON
04089 const static PASN_Names Names_H225_CallTerminationCause[]={
04090       {"releaseCompleteReason",0}
04091      ,{"releaseCompleteCauseIE",1}
04092 };
04093 #endif
04094 //
04095 // CallTerminationCause
04096 //
04097 
04098 H225_CallTerminationCause::H225_CallTerminationCause(unsigned tag, PASN_Object::TagClass tagClass)
04099   : PASN_Choice(tag, tagClass, 2, TRUE
04100 #ifndef PASN_NOPRINTON
04101     ,(const PASN_Names *)Names_H225_CallTerminationCause,2
04102 #endif
04103 )
04104 {
04105 }
04106 
04107 
04108 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
04109 H225_CallTerminationCause::operator H225_ReleaseCompleteReason &() const
04110 #else
04111 H225_CallTerminationCause::operator H225_ReleaseCompleteReason &()
04112 {
04113 #ifndef PASN_LEANANDMEAN
04114   PAssert(PIsDescendant(PAssertNULL(choice), H225_ReleaseCompleteReason), PInvalidCast);
04115 #endif
04116   return *(H225_ReleaseCompleteReason *)choice;
04117 }
04118 
04119 
04120 H225_CallTerminationCause::operator const H225_ReleaseCompleteReason &() const
04121 #endif
04122 {
04123 #ifndef PASN_LEANANDMEAN
04124   PAssert(PIsDescendant(PAssertNULL(choice), H225_ReleaseCompleteReason), PInvalidCast);
04125 #endif
04126   return *(H225_ReleaseCompleteReason *)choice;
04127 }
04128 
04129 
04130 BOOL H225_CallTerminationCause::CreateObject()
04131 {
04132   switch (tag) {
04133     case e_releaseCompleteReason :
04134       choice = new H225_ReleaseCompleteReason();
04135       return TRUE;
04136     case e_releaseCompleteCauseIE :
04137       choice = new PASN_OctetString();
04138       choice->SetConstraints(PASN_Object::FixedConstraint, 2, 32);
04139       return TRUE;
04140   }
04141 
04142   choice = NULL;
04143   return FALSE;
04144 }
04145 
04146 
04147 PObject * H225_CallTerminationCause::Clone() const
04148 {
04149 #ifndef PASN_LEANANDMEAN
04150   PAssert(IsClass(H225_CallTerminationCause::Class()), PInvalidCast);
04151 #endif
04152   return new H225_CallTerminationCause(*this);
04153 }
04154 
04155 
04156 //
04157 // CallCreditCapability
04158 //
04159 
04160 H225_CallCreditCapability::H225_CallCreditCapability(unsigned tag, PASN_Object::TagClass tagClass)
04161   : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
04162 {
04163 }
04164 
04165 
04166 #ifndef PASN_NOPRINTON
04167 void H225_CallCreditCapability::PrintOn(ostream & strm) const
04168 {
04169   int indent = strm.precision() + 2;
04170   strm << "{\n";
04171   if (HasOptionalField(e_canDisplayAmountString))
04172     strm << setw(indent+25) << "canDisplayAmountString = " << setprecision(indent) << m_canDisplayAmountString << '\n';
04173   if (HasOptionalField(e_canEnforceDurationLimit))
04174     strm << setw(indent+26) << "canEnforceDurationLimit = " << setprecision(indent) << m_canEnforceDurationLimit << '\n';
04175   strm << setw(indent-1) << setprecision(indent-2) << "}";
04176 }
04177 #endif
04178 
04179 
04180 PObject::Comparison H225_CallCreditCapability::Compare(const PObject & obj) const
04181 {
04182 #ifndef PASN_LEANANDMEAN
04183   PAssert(PIsDescendant(&obj, H225_CallCreditCapability), PInvalidCast);
04184 #endif
04185   const H225_CallCreditCapability & other = (const H225_CallCreditCapability &)obj;
04186 
04187   Comparison result;
04188 
04189   if ((result = m_canDisplayAmountString.Compare(other.m_canDisplayAmountString)) != EqualTo)
04190     return result;
04191   if ((result = m_canEnforceDurationLimit.Compare(other.m_canEnforceDurationLimit)) != EqualTo)
04192     return result;
04193 
04194   return PASN_Sequence::Compare(other);
04195 }
04196 
04197 
04198 PINDEX H225_CallCreditCapability::GetDataLength() const
04199 {
04200   PINDEX length = 0;
04201   if (HasOptionalField(e_canDisplayAmountString))
04202     length += m_canDisplayAmountString.GetObjectLength();
04203   if (HasOptionalField(e_canEnforceDurationLimit))
04204     length += m_canEnforceDurationLimit.GetObjectLength();
04205   return length;
04206 }
04207 
04208 
04209 BOOL H225_CallCreditCapability::Decode(PASN_Stream & strm)
04210 {
04211   if (!PreambleDecode(strm))
04212     return FALSE;
04213 
04214   if (HasOptionalField(e_canDisplayAmountString) && !m_canDisplayAmountString.Decode(strm))
04215     return FALSE;
04216   if (HasOptionalField(e_canEnforceDurationLimit) && !m_canEnforceDurationLimit.Decode(strm))
04217     return FALSE;
04218 
04219   return UnknownExtensionsDecode(strm);
04220 }
04221 
04222 
04223 void H225_CallCreditCapability::Encode(PASN_Stream & strm) const
04224 {
04225   PreambleEncode(strm);
04226 
04227   if (HasOptionalField(e_canDisplayAmountString))
04228     m_canDisplayAmountString.Encode(strm);
04229   if (HasOptionalField(e_canEnforceDurationLimit))
04230     m_canEnforceDurationLimit.Encode(strm);
04231 
04232   UnknownExtensionsEncode(strm);
04233 }
04234 
04235 
04236 PObject * H225_CallCreditCapability::Clone() const
04237 {
04238 #ifndef PASN_LEANANDMEAN
04239   PAssert(IsClass(H225_CallCreditCapability::Class()), PInvalidCast);
04240 #endif
04241   return new H225_CallCreditCapability(*this);
04242 }
04243 
04244 
04245 
04246 #ifndef PASN_NOPRINTON
04247 const static PASN_Names Names_H225_GenericIdentifier[]={
04248       {"standard",0}
04249      ,{"oid",1}
04250      ,{"nonStandard",2}
04251 };
04252 #endif
04253 //
04254 // GenericIdentifier
04255 //
04256 
04257 H225_GenericIdentifier::H225_GenericIdentifier(unsigned tag, PASN_Object::TagClass tagClass)
04258   : PASN_Choice(tag, tagClass, 3, TRUE
04259 #ifndef PASN_NOPRINTON
04260     ,(const PASN_Names *)Names_H225_GenericIdentifier,3
04261 #endif
04262 )
04263 {
04264 }
04265 
04266 
04267 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
04268 H225_GenericIdentifier::operator H225_GloballyUniqueID &() const
04269 #else
04270 H225_GenericIdentifier::operator H225_GloballyUniqueID &()
04271 {
04272 #ifndef PASN_LEANANDMEAN
04273   PAssert(PIsDescendant(PAssertNULL(choice), H225_GloballyUniqueID), PInvalidCast);
04274 #endif
04275   return *(H225_GloballyUniqueID *)choice;
04276 }
04277 
04278 
04279 H225_GenericIdentifier::operator const H225_GloballyUniqueID &() const
04280 #endif
04281 {
04282 #ifndef PASN_LEANANDMEAN
04283   PAssert(PIsDescendant(PAssertNULL(choice), H225_GloballyUniqueID), PInvalidCast);
04284 #endif
04285   return *(H225_GloballyUniqueID *)choice;
04286 }
04287 
04288 
04289 BOOL H225_GenericIdentifier::CreateObject()
04290 {
04291   switch (tag) {
04292     case e_standard :
04293       choice = new PASN_Integer();
04294       choice->SetConstraints(PASN_Object::ExtendableConstraint, 0, 16383);
04295       return TRUE;
04296     case e_oid :
04297       choice = new PASN_ObjectId();
04298       return TRUE;
04299     case e_nonStandard :
04300       choice = new H225_GloballyUniqueID();
04301       return TRUE;
04302   }
04303 
04304   choice = NULL;
04305   return FALSE;
04306 }
04307 
04308 
04309 PObject * H225_GenericIdentifier::Clone() const
04310 {
04311 #ifndef PASN_LEANANDMEAN
04312   PAssert(IsClass(H225_GenericIdentifier::Class()), PInvalidCast);
04313 #endif
04314   return new H225_GenericIdentifier(*this);
04315 }
04316 
04317 
04318 
04319 #ifndef PASN_NOPRINTON
04320 const static PASN_Names Names_H225_Content[]={
04321       {"raw",0}
04322      ,{"text",1}
04323      ,{"unicode",2}
04324      ,{"bool",3}
04325      ,{"number8",4}
04326      ,{"number16",5}
04327      ,{"number32",6}
04328      ,{"id",7}
04329      ,{"alias",8}
04330      ,{"transport",9}
04331      ,{"compound",10}
04332      ,{"nested",11}
04333 };
04334 #endif
04335 //
04336 // Content
04337 //
04338 
04339 H225_Content::H225_Content(unsigned tag, PASN_Object::TagClass tagClass)
04340   : PASN_Choice(tag, tagClass, 12, TRUE
04341 #ifndef PASN_NOPRINTON
04342     ,(const PASN_Names *)Names_H225_Content,12
04343 #endif
04344 )
04345 {
04346 }
04347 
04348 
04349 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
04350 H225_Content::operator H225_GenericIdentifier &() const
04351 #else
04352 H225_Content::operator H225_GenericIdentifier &()
04353 {
04354 #ifndef PASN_LEANANDMEAN
04355   PAssert(PIsDescendant(PAssertNULL(choice), H225_GenericIdentifier), PInvalidCast);
04356 #endif
04357   return *(H225_GenericIdentifier *)choice;
04358 }
04359 
04360 
04361 H225_Content::operator const H225_GenericIdentifier &() const
04362 #endif
04363 {
04364 #ifndef PASN_LEANANDMEAN
04365   PAssert(PIsDescendant(PAssertNULL(choice), H225_GenericIdentifier), PInvalidCast);
04366 #endif
04367   return *(H225_GenericIdentifier *)choice;
04368 }
04369 
04370 
04371 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
04372 H225_Content::operator H225_AliasAddress &() const
04373 #else
04374 H225_Content::operator H225_AliasAddress &()
04375 {
04376 #ifndef PASN_LEANANDMEAN
04377   PAssert(PIsDescendant(PAssertNULL(choice), H225_AliasAddress), PInvalidCast);
04378 #endif
04379   return *(H225_AliasAddress *)choice;
04380 }
04381 
04382 
04383 H225_Content::operator const H225_AliasAddress &() const
04384 #endif
04385 {
04386 #ifndef PASN_LEANANDMEAN
04387   PAssert(PIsDescendant(PAssertNULL(choice), H225_AliasAddress), PInvalidCast);
04388 #endif
04389   return *(H225_AliasAddress *)choice;
04390 }
04391 
04392 
04393 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
04394 H225_Content::operator H225_TransportAddress &() const
04395 #else
04396 H225_Content::operator H225_TransportAddress &()
04397 {
04398 #ifndef PASN_LEANANDMEAN
04399   PAssert(PIsDescendant(PAssertNULL(choice), H225_TransportAddress), PInvalidCast);
04400 #endif
04401   return *(H225_TransportAddress *)choice;
04402 }
04403 
04404 
04405 H225_Content::operator const H225_TransportAddress &() const
04406 #endif
04407 {
04408 #ifndef PASN_LEANANDMEAN
04409   PAssert(PIsDescendant(PAssertNULL(choice), H225_TransportAddress), PInvalidCast);
04410 #endif
04411   return *(H225_TransportAddress *)choice;
04412 }
04413 
04414 
04415 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
04416 H225_Content::operator H225_ArrayOf_EnumeratedParameter &() const
04417 #else
04418 H225_Content::operator H225_ArrayOf_EnumeratedParameter &()
04419 {
04420 #ifndef PASN_LEANANDMEAN
04421   PAssert(PIsDescendant(PAssertNULL(choice), H225_ArrayOf_EnumeratedParameter), PInvalidCast);
04422 #endif
04423   return *(H225_ArrayOf_EnumeratedParameter *)choice;
04424 }
04425 
04426 
04427 H225_Content::operator const H225_ArrayOf_EnumeratedParameter &() const
04428 #endif
04429 {
04430 #ifndef PASN_LEANANDMEAN
04431   PAssert(PIsDescendant(PAssertNULL(choice), H225_ArrayOf_EnumeratedParameter), PInvalidCast);
04432 #endif
04433   return *(H225_ArrayOf_EnumeratedParameter *)choice;
04434 }
04435 
04436 
04437 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
04438 H225_Content::operator H225_ArrayOf_GenericData &() const
04439 #else
04440 H225_Content::operator H225_ArrayOf_GenericData &()
04441 {
04442 #ifndef PASN_LEANANDMEAN
04443   PAssert(PIsDescendant(PAssertNULL(choice), H225_ArrayOf_GenericData), PInvalidCast);
04444 #endif
04445   return *(H225_ArrayOf_GenericData *)choice;
04446 }
04447 
04448 
04449 H225_Content::operator const H225_ArrayOf_GenericData &() const
04450 #endif
04451 {
04452 #ifndef PASN_LEANANDMEAN
04453   PAssert(PIsDescendant(PAssertNULL(choice), H225_ArrayOf_GenericData), PInvalidCast);
04454 #endif
04455   return *(H225_ArrayOf_GenericData *)choice;
04456 }
04457 
04458 
04459 BOOL H225_Content::CreateObject()
04460 {
04461   switch (tag) {
04462     case e_raw :
04463       choice = new PASN_OctetString();
04464       return TRUE;
04465     case e_text :
04466       choice = new PASN_IA5String();
04467       return TRUE;
04468     case e_unicode :
04469       choice = new PASN_BMPString();
04470       return TRUE;
04471     case e_bool :
04472       choice = new PASN_Boolean();
04473       return TRUE;
04474     case e_number8 :
04475       choice = new PASN_Integer();
04476       choice->SetConstraints(PASN_Object::FixedConstraint, 0, 255);
04477       return TRUE;
04478     case e_number16 :
04479       choice = new PASN_Integer();
04480       choice->SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
04481       return TRUE;
04482     case e_number32 :
04483       choice = new PASN_Integer();
04484       choice->SetConstraints(PASN_Object::FixedConstraint, 0, 4294967295U);
04485       return TRUE;
04486     case e_id :
04487       choice = new H225_GenericIdentifier();
04488       return TRUE;
04489     case e_alias :
04490       choice = new H225_AliasAddress();
04491       return TRUE;
04492     case e_transport :
04493       choice = new H225_TransportAddress();
04494       return TRUE;
04495     case e_compound :
04496       choice = new H225_ArrayOf_EnumeratedParameter();
04497       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 512);
04498       return TRUE;
04499     case e_nested :
04500       choice = new H225_ArrayOf_GenericData();
04501       choice->SetConstraints(PASN_Object::FixedConstraint, 1, 16);
04502       return TRUE;
04503   }
04504 
04505   choice = NULL;
04506   return FALSE;
04507 }
04508 
04509 
04510 PObject * H225_Content::Clone() const
04511 {
04512 #ifndef PASN_LEANANDMEAN
04513   PAssert(IsClass(H225_Content::Class()), PInvalidCast);
04514 #endif
04515   return new H225_Content(*this);
04516 }
04517 
04518 
04519 //
04520 // TransportChannelInfo
04521 //
04522 
04523 H225_TransportChannelInfo::H225_TransportChannelInfo(unsigned tag, PASN_Object::TagClass tagClass)
04524   : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
04525 {
04526 }
04527 
04528 
04529 #ifndef PASN_NOPRINTON
04530 void H225_TransportChannelInfo::PrintOn(ostream & strm) const
04531 {
04532   int indent = strm.precision() + 2;
04533   strm << "{\n";
04534   if (HasOptionalField(e_sendAddress))
04535     strm << setw(indent+14) << "sendAddress = " << setprecision(indent) << m_sendAddress << '\n';
04536   if (HasOptionalField(e_recvAddress))
04537     strm << setw(indent+14) << "recvAddress = " << setprecision(indent) << m_recvAddress << '\n';
04538   strm << setw(indent-1) << setprecision(indent-2) << "}";
04539 }
04540 #endif
04541 
04542 
04543 PObject::Comparison H225_TransportChannelInfo::Compare(const PObject & obj) const
04544 {
04545 #ifndef PASN_LEANANDMEAN
04546   PAssert(PIsDescendant(&obj, H225_TransportChannelInfo), PInvalidCast);
04547 #endif
04548   const H225_TransportChannelInfo & other = (const H225_TransportChannelInfo &)obj;
04549 
04550   Comparison result;
04551 
04552   if ((result = m_sendAddress.Compare(other.m_sendAddress)) != EqualTo)
04553     return result;
04554   if ((result = m_recvAddress.Compare(other.m_recvAddress)) != EqualTo)
04555     return result;
04556 
04557   return PASN_Sequence::Compare(other);
04558 }
04559 
04560 
04561 PINDEX H225_TransportChannelInfo::GetDataLength() const
04562 {
04563   PINDEX length = 0;
04564   if (HasOptionalField(e_sendAddress))
04565     length += m_sendAddress.GetObjectLength();
04566   if (HasOptionalField(e_recvAddress))
04567     length += m_recvAddress.GetObjectLength();
04568   return length;
04569 }
04570 
04571 
04572 BOOL H225_TransportChannelInfo::Decode(PASN_Stream & strm)
04573 {
04574   if (!PreambleDecode(strm))
04575     return FALSE;
04576 
04577   if (HasOptionalField(e_sendAddress) && !m_sendAddress.Decode(strm))
04578     return FALSE;
04579   if (HasOptionalField(e_recvAddress) && !m_recvAddress.Decode(strm))
04580     return FALSE;
04581 
04582   return UnknownExtensionsDecode(strm);
04583 }
04584 
04585 
04586 void H225_TransportChannelInfo::Encode(PASN_Stream & strm) const
04587 {
04588   PreambleEncode(strm);
04589 
04590   if (HasOptionalField(e_sendAddress))
04591     m_sendAddress.Encode(strm);
04592   if (HasOptionalField(e_recvAddress))
04593     m_recvAddress.Encode(strm);
04594 
04595   UnknownExtensionsEncode(strm);
04596 }
04597 
04598 
04599 PObject * H225_TransportChannelInfo::Clone() const
04600 {
04601 #ifndef PASN_LEANANDMEAN
04602   PAssert(IsClass(H225_TransportChannelInfo::Class()), PInvalidCast);
04603 #endif
04604   return new H225_TransportChannelInfo(*this);
04605 }
04606 
04607 
04608 
04609 #ifndef PASN_NOPRINTON
04610 const static PASN_Names Names_H225_RehomingModel[]={
04611       {"gatekeeperBased",0}
04612      ,{"endpointBased",1}
04613 };
04614 #endif
04615 //
04616 // RehomingModel
04617 //
04618 
04619 H225_RehomingModel::H225_RehomingModel(unsigned tag, PASN_Object::TagClass tagClass)
04620   : PASN_Choice(tag, tagClass, 2, FALSE
04621 #ifndef PASN_NOPRINTON
04622     ,(const PASN_Names *)Names_H225_RehomingModel,2
04623 #endif
04624 )
04625 {
04626 }
04627 
04628 
04629 BOOL H225_RehomingModel::CreateObject()
04630 {
04631   choice = (tag <= e_endpointBased) ? new PASN_Null() : NULL;
04632   return choice != NULL;
04633 }
04634 
04635 
04636 PObject * H225_RehomingModel::Clone() const
04637 {
04638 #ifndef PASN_LEANANDMEAN
04639   PAssert(IsClass(H225_RehomingModel::Class()), PInvalidCast);
04640 #endif
04641   return new H225_RehomingModel(*this);
04642 }
04643 
04644 
04645 
04646 #ifndef PASN_NOPRINTON
04647 const static PASN_Names Names_H225_RasMessage[]={
04648       {"gatekeeperRequest",0}
04649      ,{"gatekeeperConfirm",1}
04650      ,{"gatekeeperReject",2}
04651      ,{"registrationRequest",3}
04652      ,{"registrationConfirm",4}
04653      ,{"registrationReject",5}
04654      ,{"unregistrationRequest",6}
04655      ,{"unregistrationConfirm",7}
04656      ,{"unregistrationReject",8}
04657      ,{"admissionRequest",9}
04658      ,{"admissionConfirm",10}
04659      ,{"admissionReject",11}
04660      ,{"bandwidthRequest",12}
04661      ,{"bandwidthConfirm",13}
04662      ,{"bandwidthReject",14}
04663      ,{"disengageRequest",15}
04664      ,{"disengageConfirm",16}
04665      ,{"disengageReject",17}
04666      ,{"locationRequest",18}
04667      ,{"locationConfirm",19}
04668      ,{"locationReject",20}
04669      ,{"infoRequest",21}
04670      ,{"infoRequestResponse",22}
04671      ,{"nonStandardMessage",23}
04672      ,{"unknownMessageResponse",24}
04673      ,{"requestInProgress",25}
04674      ,{"resourcesAvailableIndicate",26}
04675      ,{"resourcesAvailableConfirm",27}
04676      ,{"infoRequestAck",28}
04677      ,{"infoRequestNak",29}
04678      ,{"serviceControlIndication",30}
04679      ,{"serviceControlResponse",31}
04680      ,{"admissionConfirmSequence",32}
04681 };
04682 #endif
04683 //
04684 // RasMessage
04685 //
04686 
04687 H225_RasMessage::H225_RasMessage(unsigned tag, PASN_Object::TagClass tagClass)
04688   : PASN_Choice(tag, tagClass, 25, TRUE
04689 #ifndef PASN_NOPRINTON
04690     ,(const PASN_Names *)Names_H225_RasMessage,33
04691 #endif
04692 )
04693 {
04694 }
04695 
04696 
04697 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
04698 H225_RasMessage::operator H225_GatekeeperRequest &() const
04699 #else
04700 H225_RasMessage::operator H225_GatekeeperRequest &()
04701 {
04702 #ifndef PASN_LEANANDMEAN
04703   PAssert(PIsDescendant(PAssertNULL(choice), H225_GatekeeperRequest), PInvalidCast);
04704 #endif
04705   return *(H225_GatekeeperRequest *)choice;
04706 }
04707 
04708 
04709 H225_RasMessage::operator const H225_GatekeeperRequest &() const
04710 #endif
04711 {
04712 #ifndef PASN_LEANANDMEAN
04713   PAssert(PIsDescendant(PAssertNULL(choice), H225_GatekeeperRequest), PInvalidCast);
04714 #endif
04715   return *(H225_GatekeeperRequest *)choice;
04716 }
04717 
04718 
04719 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
04720 H225_RasMessage::operator H225_GatekeeperConfirm &() const
04721 #else
04722 H225_RasMessage::operator H225_GatekeeperConfirm &()
04723 {
04724 #ifndef PASN_LEANANDMEAN
04725   PAssert(PIsDescendant(PAssertNULL(choice), H225_GatekeeperConfirm), PInvalidCast);
04726 #endif
04727   return *(H225_GatekeeperConfirm *)choice;
04728 }
04729 
04730 
04731 H225_RasMessage::operator const H225_GatekeeperConfirm &() const
04732 #endif
04733 {
04734 #ifndef PASN_LEANANDMEAN
04735   PAssert(PIsDescendant(PAssertNULL(choice), H225_GatekeeperConfirm), PInvalidCast);
04736 #endif
04737   return *(H225_GatekeeperConfirm *)choice;
04738 }
04739 
04740 
04741 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
04742 H225_RasMessage::operator H225_GatekeeperReject &() const
04743 #else
04744 H225_RasMessage::operator H225_GatekeeperReject &()
04745 {
04746 #ifndef PASN_LEANANDMEAN
04747   PAssert(PIsDescendant(PAssertNULL(choice), H225_GatekeeperReject), PInvalidCast);
04748 #endif
04749   return *(H225_GatekeeperReject *)choice;
04750 }
04751 
04752 
04753 H225_RasMessage::operator const H225_GatekeeperReject &() const
04754 #endif
04755 {
04756 #ifndef PASN_LEANANDMEAN
04757   PAssert(PIsDescendant(PAssertNULL(choice), H225_GatekeeperReject), PInvalidCast);
04758 #endif
04759   return *(H225_GatekeeperReject *)choice;
04760 }
04761 
04762 
04763 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
04764 H225_RasMessage::operator H225_RegistrationRequest &() const
04765 #else
04766 H225_RasMessage::operator H225_RegistrationRequest &()
04767 {
04768 #ifndef PASN_LEANANDMEAN
04769   PAssert(PIsDescendant(PAssertNULL(choice), H225_RegistrationRequest), PInvalidCast);
04770 #endif
04771   return *(H225_RegistrationRequest *)choice;
04772 }
04773 
04774 
04775 H225_RasMessage::operator const H225_RegistrationRequest &() const
04776 #endif
04777 {
04778 #ifndef PASN_LEANANDMEAN
04779   PAssert(PIsDescendant(PAssertNULL(choice), H225_RegistrationRequest), PInvalidCast);
04780 #endif
04781   return *(H225_RegistrationRequest *)choice;
04782 }
04783 
04784 
04785 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
04786 H225_RasMessage::operator H225_RegistrationConfirm &() const
04787 #else
04788 H225_RasMessage::operator H225_RegistrationConfirm &()
04789 {
04790 #ifndef PASN_LEANANDMEAN
04791   PAssert(PIsDescendant(PAssertNULL(choice), H225_RegistrationConfirm), PInvalidCast);
04792 #endif
04793   return *(H225_RegistrationConfirm *)choice;
04794 }
04795 
04796 
04797 H225_RasMessage::operator const H225_RegistrationConfirm &() const
04798 #endif
04799 {
04800 #ifndef PASN_LEANANDMEAN
04801   PAssert(PIsDescendant(PAssertNULL(choice), H225_RegistrationConfirm), PInvalidCast);
04802 #endif
04803   return *(H225_RegistrationConfirm *)choice;
04804 }
04805 
04806 
04807 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
04808 H225_RasMessage::operator H225_RegistrationReject &() const
04809 #else
04810 H225_RasMessage::operator H225_RegistrationReject &()
04811 {
04812 #ifndef PASN_LEANANDMEAN
04813   PAssert(PIsDescendant(PAssertNULL(choice), H225_RegistrationReject), PInvalidCast);
04814 #endif
04815   return *(H225_RegistrationReject *)choice;
04816 }
04817 
04818 
04819 H225_RasMessage::operator const H225_RegistrationReject &() const
04820 #endif
04821 {
04822 #ifndef PASN_LEANANDMEAN
04823   PAssert(PIsDescendant(PAssertNULL(choice), H225_RegistrationReject), PInvalidCast);
04824 #endif
04825   return *(H225_RegistrationReject *)choice;
04826 }
04827 
04828 
04829 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
04830 H225_RasMessage::operator H225_UnregistrationRequest &() const
04831 #else
04832 H225_RasMessage::operator H225_UnregistrationRequest &()
04833 {
04834 #ifndef PASN_LEANANDMEAN
04835   PAssert(PIsDescendant(PAssertNULL(choice), H225_UnregistrationRequest), PInvalidCast);
04836 #endif
04837   return *(H225_UnregistrationRequest *)choice;
04838 }
04839 
04840 
04841 H225_RasMessage::operator const H225_UnregistrationRequest &() const
04842 #endif
04843 {
04844 #ifndef PASN_LEANANDMEAN
04845   PAssert(PIsDescendant(PAssertNULL(choice), H225_UnregistrationRequest), PInvalidCast);
04846 #endif
04847   return *(H225_UnregistrationRequest *)choice;
04848 }
04849 
04850 
04851 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
04852 H225_RasMessage::operator H225_UnregistrationConfirm &() const
04853 #else
04854 H225_RasMessage::operator H225_UnregistrationConfirm &()
04855 {
04856 #ifndef PASN_LEANANDMEAN
04857   PAssert(PIsDescendant(PAssertNULL(choice), H225_UnregistrationConfirm), PInvalidCast);
04858 #endif
04859   return *(H225_UnregistrationConfirm *)choice;
04860 }
04861 
04862 
04863 H225_RasMessage::operator const H225_UnregistrationConfirm &() const
04864 #endif
04865 {
04866 #ifndef PASN_LEANANDMEAN
04867   PAssert(PIsDescendant(PAssertNULL(choice), H225_UnregistrationConfirm), PInvalidCast);
04868 #endif
04869   return *(H225_UnregistrationConfirm *)choice;
04870 }
04871 
04872 
04873 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
04874 H225_RasMessage::operator H225_UnregistrationReject &() const
04875 #else
04876 H225_RasMessage::operator H225_UnregistrationReject &()
04877 {
04878 #ifndef PASN_LEANANDMEAN
04879   PAssert(PIsDescendant(PAssertNULL(choice), H225_UnregistrationReject), PInvalidCast);
04880 #endif
04881   return *(H225_UnregistrationReject *)choice;
04882 }
04883 
04884 
04885 H225_RasMessage::operator const H225_UnregistrationReject &() const
04886 #endif
04887 {
04888 #ifndef PASN_LEANANDMEAN
04889   PAssert(PIsDescendant(PAssertNULL(choice), H225_UnregistrationReject), PInvalidCast);
04890 #endif
04891   return *(H225_UnregistrationReject *)choice;
04892 }
04893 
04894 
04895 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
04896 H225_RasMessage::operator H225_AdmissionRequest &() const
04897 #else
04898 H225_RasMessage::operator H225_AdmissionRequest &()
04899 {
04900 #ifndef PASN_LEANANDMEAN
04901   PAssert(PIsDescendant(PAssertNULL(choice), H225_AdmissionRequest), PInvalidCast);
04902 #endif
04903   return *(H225_AdmissionRequest *)choice;
04904 }
04905 
04906 
04907 H225_RasMessage::operator const H225_AdmissionRequest &() const
04908 #endif
04909 {
04910 #ifndef PASN_LEANANDMEAN
04911   PAssert(PIsDescendant(PAssertNULL(choice), H225_AdmissionRequest), PInvalidCast);
04912 #endif
04913   return *(H225_AdmissionRequest *)choice;
04914 }
04915 
04916 
04917 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
04918 H225_RasMessage::operator H225_AdmissionConfirm &() const
04919 #else
04920 H225_RasMessage::operator H225_AdmissionConfirm &()
04921 {
04922 #ifndef PASN_LEANANDMEAN
04923   PAssert(PIsDescendant(PAssertNULL(choice), H225_AdmissionConfirm), PInvalidCast);
04924 #endif
04925   return *(H225_AdmissionConfirm *)choice;
04926 }
04927 
04928 
04929 H225_RasMessage::operator const H225_AdmissionConfirm &() const
04930 #endif
04931 {
04932 #ifndef PASN_LEANANDMEAN
04933   PAssert(PIsDescendant(PAssertNULL(choice), H225_AdmissionConfirm), PInvalidCast);
04934 #endif
04935   return *(H225_AdmissionConfirm *)choice;
04936 }
04937 
04938 
04939 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
04940 H225_RasMessage::operator H225_AdmissionReject &() const
04941 #else
04942 H225_RasMessage::operator H225_AdmissionReject &()
04943 {
04944 #ifndef PASN_LEANANDMEAN
04945   PAssert(PIsDescendant(PAssertNULL(choice), H225_AdmissionReject), PInvalidCast);
04946 #endif
04947   return *(H225_AdmissionReject *)choice;
04948 }
04949 
04950 
04951 H225_RasMessage::operator const H225_AdmissionReject &() const
04952 #endif
04953 {
04954 #ifndef PASN_LEANANDMEAN
04955   PAssert(PIsDescendant(PAssertNULL(choice), H225_AdmissionReject), PInvalidCast);
04956 #endif
04957   return *(H225_AdmissionReject *)choice;
04958 }
04959 
04960 
04961 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
04962 H225_RasMessage::operator H225_BandwidthRequest &() const
04963 #else
04964 H225_RasMessage::operator H225_BandwidthRequest &()
04965 {
04966 #ifndef PASN_LEANANDMEAN
04967   PAssert(PIsDescendant(PAssertNULL(choice), H225_BandwidthRequest), PInvalidCast);
04968 #endif
04969   return *(H225_BandwidthRequest *)choice;
04970 }
04971 
04972 
04973 H225_RasMessage::operator const H225_BandwidthRequest &() const
04974 #endif
04975 {
04976 #ifndef PASN_LEANANDMEAN
04977   PAssert(PIsDescendant(PAssertNULL(choice), H225_BandwidthRequest), PInvalidCast);
04978 #endif
04979   return *(H225_BandwidthRequest *)choice;
04980 }
04981 
04982 
04983 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
04984 H225_RasMessage::operator H225_BandwidthConfirm &() const
04985 #else
04986 H225_RasMessage::operator H225_BandwidthConfirm &()
04987 {
04988 #ifndef PASN_LEANANDMEAN
04989   PAssert(PIsDescendant(PAssertNULL(choice), H225_BandwidthConfirm), PInvalidCast);
04990 #endif
04991   return *(H225_BandwidthConfirm *)choice;
04992 }
04993 
04994 
04995 H225_RasMessage::operator const H225_BandwidthConfirm &() const
04996 #endif
04997 {
04998 #ifndef PASN_LEANANDMEAN
04999   PAssert(PIsDescendant(PAssertNULL(choice), H225_BandwidthConfirm), PInvalidCast);
05000 #endif
05001   return *(H225_BandwidthConfirm *)choice;
05002 }
05003 
05004 
05005 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
05006 H225_RasMessage::operator H225_BandwidthReject &() const
05007 #else
05008 H225_RasMessage::operator H225_BandwidthReject &()
05009 {
05010 #ifndef PASN_LEANANDMEAN
05011   PAssert(PIsDescendant(PAssertNULL(choice), H225_BandwidthReject), PInvalidCast);
05012 #endif
05013   return *(H225_BandwidthReject *)choice;
05014 }
05015 
05016 
05017 H225_RasMessage::operator const H225_BandwidthReject &() const
05018 #endif
05019 {
05020 #ifndef PASN_LEANANDMEAN
05021   PAssert(PIsDescendant(PAssertNULL(choice), H225_BandwidthReject), PInvalidCast);
05022 #endif
05023   return *(H225_BandwidthReject *)choice;
05024 }
05025 
05026 
05027 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
05028 H225_RasMessage::operator H225_DisengageRequest &() const
05029 #else
05030 H225_RasMessage::operator H225_DisengageRequest &()
05031 {
05032 #ifndef PASN_LEANANDMEAN
05033   PAssert(PIsDescendant(PAssertNULL(choice), H225_DisengageRequest), PInvalidCast);
05034 #endif
05035   return *(H225_DisengageRequest *)choice;
05036 }
05037 
05038 
05039 H225_RasMessage::operator const H225_DisengageRequest &() const
05040 #endif
05041 {
05042 #ifndef PASN_LEANANDMEAN
05043   PAssert(PIsDescendant(PAssertNULL(choice), H225_DisengageRequest), PInvalidCast);
05044 #endif
05045   return *(H225_DisengageRequest *)choice;
05046 }
05047 
05048 
05049 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
05050 H225_RasMessage::operator H225_DisengageConfirm &() const
05051 #else
05052 H225_RasMessage::operator H225_DisengageConfirm &()
05053 {
05054 #ifndef PASN_LEANANDMEAN
05055   PAssert(PIsDescendant(PAssertNULL(choice), H225_DisengageConfirm), PInvalidCast);
05056 #endif
05057   return *(H225_DisengageConfirm *)choice;
05058 }
05059 
05060 
05061 H225_RasMessage::operator const H225_DisengageConfirm &() const
05062 #endif
05063 {
05064 #ifndef PASN_LEANANDMEAN
05065   PAssert(PIsDescendant(PAssertNULL(choice), H225_DisengageConfirm), PInvalidCast);
05066 #endif
05067   return *(H225_DisengageConfirm *)choice;
05068 }
05069 
05070 
05071 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
05072 H225_RasMessage::operator H225_DisengageReject &() const
05073 #else
05074 H225_RasMessage::operator H225_DisengageReject &()
05075 {
05076 #ifndef PASN_LEANANDMEAN
05077   PAssert(PIsDescendant(PAssertNULL(choice), H225_DisengageReject), PInvalidCast);
05078 #endif
05079   return *(H225_DisengageReject *)choice;
05080 }
05081 
05082 
05083 H225_RasMessage::operator const H225_DisengageReject &() const
05084 #endif
05085 {
05086 #ifndef PASN_LEANANDMEAN
05087   PAssert(PIsDescendant(PAssertNULL(choice), H225_DisengageReject), PInvalidCast);
05088 #endif
05089   return *(H225_DisengageReject *)choice;
05090 }
05091 
05092 
05093 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
05094 H225_RasMessage::operator H225_LocationRequest &() const
05095 #else
05096 H225_RasMessage::operator H225_LocationRequest &()
05097 {
05098 #ifndef PASN_LEANANDMEAN
05099   PAssert(PIsDescendant(PAssertNULL(choice), H225_LocationRequest), PInvalidCast);
05100 #endif
05101   return *(H225_LocationRequest *)choice;
05102 }
05103 
05104