00001
00002
00003
00004
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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