00001
00002
00003
00004
00005
00006
00007 #include <ptlib.h>
00008 #include "h225.h"
00009
00010 #define new PNEW
00011
00012
00013 #if ! H323_DISABLE_H225
00014
00015
00016
00017
00018
00019 H225_ArrayOf_EnumeratedParameter::H225_ArrayOf_EnumeratedParameter(unsigned tag, PASN_Object::TagClass tagClass)
00020 : PASN_Array(tag, tagClass)
00021 {
00022 }
00023
00024
00025 PASN_Object * H225_ArrayOf_EnumeratedParameter::CreateObject() const
00026 {
00027 return new H225_EnumeratedParameter;
00028 }
00029
00030
00031 H225_EnumeratedParameter & H225_ArrayOf_EnumeratedParameter::operator[](PINDEX i) const
00032 {
00033 return (H225_EnumeratedParameter &)array[i];
00034 }
00035
00036
00037 PObject * H225_ArrayOf_EnumeratedParameter::Clone() const
00038 {
00039 #ifndef PASN_LEANANDMEAN
00040 PAssert(IsClass(H225_ArrayOf_EnumeratedParameter::Class()), PInvalidCast);
00041 #endif
00042 return new H225_ArrayOf_EnumeratedParameter(*this);
00043 }
00044
00045
00046
00047
00048
00049
00050 H225_RTPSession_associatedSessionIds::H225_RTPSession_associatedSessionIds(unsigned tag, PASN_Object::TagClass tagClass)
00051 : PASN_Array(tag, tagClass)
00052 {
00053 }
00054
00055
00056 PASN_Object * H225_RTPSession_associatedSessionIds::CreateObject() const
00057 {
00058 PASN_Integer * obj = new PASN_Integer;
00059 obj->SetConstraints(PASN_Object::FixedConstraint, 1, 255);
00060 return obj;
00061 }
00062
00063
00064 PASN_Integer & H225_RTPSession_associatedSessionIds::operator[](PINDEX i) const
00065 {
00066 return (PASN_Integer &)array[i];
00067 }
00068
00069
00070 PObject * H225_RTPSession_associatedSessionIds::Clone() const
00071 {
00072 #ifndef PASN_LEANANDMEAN
00073 PAssert(IsClass(H225_RTPSession_associatedSessionIds::Class()), PInvalidCast);
00074 #endif
00075 return new H225_RTPSession_associatedSessionIds(*this);
00076 }
00077
00078
00079
00080
00081
00082
00083 H225_ArrayOf_AdmissionConfirm::H225_ArrayOf_AdmissionConfirm(unsigned tag, PASN_Object::TagClass tagClass)
00084 : PASN_Array(tag, tagClass)
00085 {
00086 }
00087
00088
00089 PASN_Object * H225_ArrayOf_AdmissionConfirm::CreateObject() const
00090 {
00091 return new H225_AdmissionConfirm;
00092 }
00093
00094
00095 H225_AdmissionConfirm & H225_ArrayOf_AdmissionConfirm::operator[](PINDEX i) const
00096 {
00097 return (H225_AdmissionConfirm &)array[i];
00098 }
00099
00100
00101 PObject * H225_ArrayOf_AdmissionConfirm::Clone() const
00102 {
00103 #ifndef PASN_LEANANDMEAN
00104 PAssert(IsClass(H225_ArrayOf_AdmissionConfirm::Class()), PInvalidCast);
00105 #endif
00106 return new H225_ArrayOf_AdmissionConfirm(*this);
00107 }
00108
00109
00110
00111
00112
00113
00114 H225_ArrayOf_Endpoint::H225_ArrayOf_Endpoint(unsigned tag, PASN_Object::TagClass tagClass)
00115 : PASN_Array(tag, tagClass)
00116 {
00117 }
00118
00119
00120 PASN_Object * H225_ArrayOf_Endpoint::CreateObject() const
00121 {
00122 return new H225_Endpoint;
00123 }
00124
00125
00126 H225_Endpoint & H225_ArrayOf_Endpoint::operator[](PINDEX i) const
00127 {
00128 return (H225_Endpoint &)array[i];
00129 }
00130
00131
00132 PObject * H225_ArrayOf_Endpoint::Clone() const
00133 {
00134 #ifndef PASN_LEANANDMEAN
00135 PAssert(IsClass(H225_ArrayOf_Endpoint::Class()), PInvalidCast);
00136 #endif
00137 return new H225_ArrayOf_Endpoint(*this);
00138 }
00139
00140
00141
00142
00143
00144
00145 H225_ArrayOf_AuthenticationMechanism::H225_ArrayOf_AuthenticationMechanism(unsigned tag, PASN_Object::TagClass tagClass)
00146 : PASN_Array(tag, tagClass)
00147 {
00148 }
00149
00150
00151 PASN_Object * H225_ArrayOf_AuthenticationMechanism::CreateObject() const
00152 {
00153 return new H235_AuthenticationMechanism;
00154 }
00155
00156
00157 H235_AuthenticationMechanism & H225_ArrayOf_AuthenticationMechanism::operator[](PINDEX i) const
00158 {
00159 return (H235_AuthenticationMechanism &)array[i];
00160 }
00161
00162
00163 PObject * H225_ArrayOf_AuthenticationMechanism::Clone() const
00164 {
00165 #ifndef PASN_LEANANDMEAN
00166 PAssert(IsClass(H225_ArrayOf_AuthenticationMechanism::Class()), PInvalidCast);
00167 #endif
00168 return new H225_ArrayOf_AuthenticationMechanism(*this);
00169 }
00170
00171
00172
00173
00174
00175
00176 H225_ArrayOf_PASN_ObjectId::H225_ArrayOf_PASN_ObjectId(unsigned tag, PASN_Object::TagClass tagClass)
00177 : PASN_Array(tag, tagClass)
00178 {
00179 }
00180
00181
00182 PASN_Object * H225_ArrayOf_PASN_ObjectId::CreateObject() const
00183 {
00184 return new PASN_ObjectId;
00185 }
00186
00187
00188 PASN_ObjectId & H225_ArrayOf_PASN_ObjectId::operator[](PINDEX i) const
00189 {
00190 return (PASN_ObjectId &)array[i];
00191 }
00192
00193
00194 PObject * H225_ArrayOf_PASN_ObjectId::Clone() const
00195 {
00196 #ifndef PASN_LEANANDMEAN
00197 PAssert(IsClass(H225_ArrayOf_PASN_ObjectId::Class()), PInvalidCast);
00198 #endif
00199 return new H225_ArrayOf_PASN_ObjectId(*this);
00200 }
00201
00202
00203
00204
00205
00206
00207 H225_ArrayOf_IntegrityMechanism::H225_ArrayOf_IntegrityMechanism(unsigned tag, PASN_Object::TagClass tagClass)
00208 : PASN_Array(tag, tagClass)
00209 {
00210 }
00211
00212
00213 PASN_Object * H225_ArrayOf_IntegrityMechanism::CreateObject() const
00214 {
00215 return new H225_IntegrityMechanism;
00216 }
00217
00218
00219 H225_IntegrityMechanism & H225_ArrayOf_IntegrityMechanism::operator[](PINDEX i) const
00220 {
00221 return (H225_IntegrityMechanism &)array[i];
00222 }
00223
00224
00225 PObject * H225_ArrayOf_IntegrityMechanism::Clone() const
00226 {
00227 #ifndef PASN_LEANANDMEAN
00228 PAssert(IsClass(H225_ArrayOf_IntegrityMechanism::Class()), PInvalidCast);
00229 #endif
00230 return new H225_ArrayOf_IntegrityMechanism(*this);
00231 }
00232
00233
00234
00235
00236
00237
00238 H225_ArrayOf_AddressPattern::H225_ArrayOf_AddressPattern(unsigned tag, PASN_Object::TagClass tagClass)
00239 : PASN_Array(tag, tagClass)
00240 {
00241 }
00242
00243
00244 PASN_Object * H225_ArrayOf_AddressPattern::CreateObject() const
00245 {
00246 return new H225_AddressPattern;
00247 }
00248
00249
00250 H225_AddressPattern & H225_ArrayOf_AddressPattern::operator[](PINDEX i) const
00251 {
00252 return (H225_AddressPattern &)array[i];
00253 }
00254
00255
00256 PObject * H225_ArrayOf_AddressPattern::Clone() const
00257 {
00258 #ifndef PASN_LEANANDMEAN
00259 PAssert(IsClass(H225_ArrayOf_AddressPattern::Class()), PInvalidCast);
00260 #endif
00261 return new H225_ArrayOf_AddressPattern(*this);
00262 }
00263
00264
00265
00266
00267
00268
00269 H225_ArrayOf_H248PackagesDescriptor::H225_ArrayOf_H248PackagesDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
00270 : PASN_Array(tag, tagClass)
00271 {
00272 }
00273
00274
00275 PASN_Object * H225_ArrayOf_H248PackagesDescriptor::CreateObject() const
00276 {
00277 return new H225_H248PackagesDescriptor;
00278 }
00279
00280
00281 H225_H248PackagesDescriptor & H225_ArrayOf_H248PackagesDescriptor::operator[](PINDEX i) const
00282 {
00283 return (H225_H248PackagesDescriptor &)array[i];
00284 }
00285
00286
00287 PObject * H225_ArrayOf_H248PackagesDescriptor::Clone() const
00288 {
00289 #ifndef PASN_LEANANDMEAN
00290 PAssert(IsClass(H225_ArrayOf_H248PackagesDescriptor::Class()), PInvalidCast);
00291 #endif
00292 return new H225_ArrayOf_H248PackagesDescriptor(*this);
00293 }
00294
00295
00296
00297
00298
00299
00300 H225_RegistrationRequest_language::H225_RegistrationRequest_language(unsigned tag, PASN_Object::TagClass tagClass)
00301 : PASN_Array(tag, tagClass)
00302 {
00303 }
00304
00305
00306 PASN_Object * H225_RegistrationRequest_language::CreateObject() const
00307 {
00308 PASN_IA5String * obj = new PASN_IA5String;
00309 obj->SetConstraints(PASN_Object::FixedConstraint, 1, 32);
00310 return obj;
00311 }
00312
00313
00314 PASN_IA5String & H225_RegistrationRequest_language::operator[](PINDEX i) const
00315 {
00316 return (PASN_IA5String &)array[i];
00317 }
00318
00319
00320 PObject * H225_RegistrationRequest_language::Clone() const
00321 {
00322 #ifndef PASN_LEANANDMEAN
00323 PAssert(IsClass(H225_RegistrationRequest_language::Class()), PInvalidCast);
00324 #endif
00325 return new H225_RegistrationRequest_language(*this);
00326 }
00327
00328
00329
00330
00331
00332
00333 H225_ArrayOf_RasUsageSpecification::H225_ArrayOf_RasUsageSpecification(unsigned tag, PASN_Object::TagClass tagClass)
00334 : PASN_Array(tag, tagClass)
00335 {
00336 }
00337
00338
00339 PASN_Object * H225_ArrayOf_RasUsageSpecification::CreateObject() const
00340 {
00341 return new H225_RasUsageSpecification;
00342 }
00343
00344
00345 H225_RasUsageSpecification & H225_ArrayOf_RasUsageSpecification::operator[](PINDEX i) const
00346 {
00347 return (H225_RasUsageSpecification &)array[i];
00348 }
00349
00350
00351 PObject * H225_ArrayOf_RasUsageSpecification::Clone() const
00352 {
00353 #ifndef PASN_LEANANDMEAN
00354 PAssert(IsClass(H225_ArrayOf_RasUsageSpecification::Class()), PInvalidCast);
00355 #endif
00356 return new H225_ArrayOf_RasUsageSpecification(*this);
00357 }
00358
00359
00360
00361
00362
00363
00364 H225_RegistrationRejectReason_invalidTerminalAliases::H225_RegistrationRejectReason_invalidTerminalAliases(unsigned tag, PASN_Object::TagClass tagClass)
00365 : PASN_Sequence(tag, tagClass, 3, TRUE, 0)
00366 {
00367 }
00368
00369
00370 #ifndef PASN_NOPRINTON
00371 void H225_RegistrationRejectReason_invalidTerminalAliases::PrintOn(ostream & strm) const
00372 {
00373 int indent = strm.precision() + 2;
00374 strm << "{\n";
00375 if (HasOptionalField(e_terminalAlias))
00376 strm << setw(indent+16) << "terminalAlias = " << setprecision(indent) << m_terminalAlias << '\n';
00377 if (HasOptionalField(e_terminalAliasPattern))
00378 strm << setw(indent+23) << "terminalAliasPattern = " << setprecision(indent) << m_terminalAliasPattern << '\n';
00379 if (HasOptionalField(e_supportedPrefixes))
00380 strm << setw(indent+20) << "supportedPrefixes = " << setprecision(indent) << m_supportedPrefixes << '\n';
00381 strm << setw(indent-1) << setprecision(indent-2) << "}";
00382 }
00383 #endif
00384
00385
00386 PObject::Comparison H225_RegistrationRejectReason_invalidTerminalAliases::Compare(const PObject & obj) const
00387 {
00388 #ifndef PASN_LEANANDMEAN
00389 PAssert(PIsDescendant(&obj, H225_RegistrationRejectReason_invalidTerminalAliases), PInvalidCast);
00390 #endif
00391 const H225_RegistrationRejectReason_invalidTerminalAliases & other = (const H225_RegistrationRejectReason_invalidTerminalAliases &)obj;
00392
00393 Comparison result;
00394
00395 if ((result = m_terminalAlias.Compare(other.m_terminalAlias)) != EqualTo)
00396 return result;
00397 if ((result = m_terminalAliasPattern.Compare(other.m_terminalAliasPattern)) != EqualTo)
00398 return result;
00399 if ((result = m_supportedPrefixes.Compare(other.m_supportedPrefixes)) != EqualTo)
00400 return result;
00401
00402 return PASN_Sequence::Compare(other);
00403 }
00404
00405
00406 PINDEX H225_RegistrationRejectReason_invalidTerminalAliases::GetDataLength() const
00407 {
00408 PINDEX length = 0;
00409 if (HasOptionalField(e_terminalAlias))
00410 length += m_terminalAlias.GetObjectLength();
00411 if (HasOptionalField(e_terminalAliasPattern))
00412 length += m_terminalAliasPattern.GetObjectLength();
00413 if (HasOptionalField(e_supportedPrefixes))
00414 length += m_supportedPrefixes.GetObjectLength();
00415 return length;
00416 }
00417
00418
00419 BOOL H225_RegistrationRejectReason_invalidTerminalAliases::Decode(PASN_Stream & strm)
00420 {
00421 if (!PreambleDecode(strm))
00422 return FALSE;
00423
00424 if (HasOptionalField(e_terminalAlias) && !m_terminalAlias.Decode(strm))
00425 return FALSE;
00426 if (HasOptionalField(e_terminalAliasPattern) && !m_terminalAliasPattern.Decode(strm))
00427 return FALSE;
00428 if (HasOptionalField(e_supportedPrefixes) && !m_supportedPrefixes.Decode(strm))
00429 return FALSE;
00430
00431 return UnknownExtensionsDecode(strm);
00432 }
00433
00434
00435 void H225_RegistrationRejectReason_invalidTerminalAliases::Encode(PASN_Stream & strm) const
00436 {
00437 PreambleEncode(strm);
00438
00439 if (HasOptionalField(e_terminalAlias))
00440 m_terminalAlias.Encode(strm);
00441 if (HasOptionalField(e_terminalAliasPattern))
00442 m_terminalAliasPattern.Encode(strm);
00443 if (HasOptionalField(e_supportedPrefixes))
00444 m_supportedPrefixes.Encode(strm);
00445
00446 UnknownExtensionsEncode(strm);
00447 }
00448
00449
00450 PObject * H225_RegistrationRejectReason_invalidTerminalAliases::Clone() const
00451 {
00452 #ifndef PASN_LEANANDMEAN
00453 PAssert(IsClass(H225_RegistrationRejectReason_invalidTerminalAliases::Class()), PInvalidCast);
00454 #endif
00455 return new H225_RegistrationRejectReason_invalidTerminalAliases(*this);
00456 }
00457
00458
00459
00460
00461
00462
00463 H225_ArrayOf_QOSCapability::H225_ArrayOf_QOSCapability(unsigned tag, PASN_Object::TagClass tagClass)
00464 : PASN_Array(tag, tagClass)
00465 {
00466 }
00467
00468
00469 PASN_Object * H225_ArrayOf_QOSCapability::CreateObject() const
00470 {
00471 return new H245_QOSCapability;
00472 }
00473
00474
00475 H245_QOSCapability & H225_ArrayOf_QOSCapability::operator[](PINDEX i) const
00476 {
00477 return (H245_QOSCapability &)array[i];
00478 }
00479
00480
00481 PObject * H225_ArrayOf_QOSCapability::Clone() const
00482 {
00483 #ifndef PASN_LEANANDMEAN
00484 PAssert(IsClass(H225_ArrayOf_QOSCapability::Class()), PInvalidCast);
00485 #endif
00486 return new H225_ArrayOf_QOSCapability(*this);
00487 }
00488
00489
00490
00491
00492
00493
00494 H225_AdmissionConfirm_language::H225_AdmissionConfirm_language(unsigned tag, PASN_Object::TagClass tagClass)
00495 : PASN_Array(tag, tagClass)
00496 {
00497 }
00498
00499
00500 PASN_Object * H225_AdmissionConfirm_language::CreateObject() const
00501 {
00502 PASN_IA5String * obj = new PASN_IA5String;
00503 obj->SetConstraints(PASN_Object::FixedConstraint, 1, 32);
00504 return obj;
00505 }
00506
00507
00508 PASN_IA5String & H225_AdmissionConfirm_language::operator[](PINDEX i) const
00509 {
00510 return (PASN_IA5String &)array[i];
00511 }
00512
00513
00514 PObject * H225_AdmissionConfirm_language::Clone() const
00515 {
00516 #ifndef PASN_LEANANDMEAN
00517 PAssert(IsClass(H225_AdmissionConfirm_language::Class()), PInvalidCast);
00518 #endif
00519 return new H225_AdmissionConfirm_language(*this);
00520 }
00521
00522
00523
00524
00525
00526
00527 H225_ArrayOf_PartyNumber::H225_ArrayOf_PartyNumber(unsigned tag, PASN_Object::TagClass tagClass)
00528 : PASN_Array(tag, tagClass)
00529 {
00530 }
00531
00532
00533 PASN_Object * H225_ArrayOf_PartyNumber::CreateObject() const
00534 {
00535 return new H225_PartyNumber;
00536 }
00537
00538
00539 H225_PartyNumber & H225_ArrayOf_PartyNumber::operator[](PINDEX i) const
00540 {
00541 return (H225_PartyNumber &)array[i];
00542 }
00543
00544
00545 PObject * H225_ArrayOf_PartyNumber::Clone() const
00546 {
00547 #ifndef PASN_LEANANDMEAN
00548 PAssert(IsClass(H225_ArrayOf_PartyNumber::Class()), PInvalidCast);
00549 #endif
00550 return new H225_ArrayOf_PartyNumber(*this);
00551 }
00552
00553
00554
00555
00556
00557
00558 H225_ArrayOf_BandwidthDetails::H225_ArrayOf_BandwidthDetails(unsigned tag, PASN_Object::TagClass tagClass)
00559 : PASN_Array(tag, tagClass)
00560 {
00561 }
00562
00563
00564 PASN_Object * H225_ArrayOf_BandwidthDetails::CreateObject() const
00565 {
00566 return new H225_BandwidthDetails;
00567 }
00568
00569
00570 H225_BandwidthDetails & H225_ArrayOf_BandwidthDetails::operator[](PINDEX i) const
00571 {
00572 return (H225_BandwidthDetails &)array[i];
00573 }
00574
00575
00576 PObject * H225_ArrayOf_BandwidthDetails::Clone() const
00577 {
00578 #ifndef PASN_LEANANDMEAN
00579 PAssert(IsClass(H225_ArrayOf_BandwidthDetails::Class()), PInvalidCast);
00580 #endif
00581 return new H225_ArrayOf_BandwidthDetails(*this);
00582 }
00583
00584
00585
00586
00587
00588
00589 H225_LocationRequest_language::H225_LocationRequest_language(unsigned tag, PASN_Object::TagClass tagClass)
00590 : PASN_Array(tag, tagClass)
00591 {
00592 }
00593
00594
00595 PASN_Object * H225_LocationRequest_language::CreateObject() const
00596 {
00597 PASN_IA5String * obj = new PASN_IA5String;
00598 obj->SetConstraints(PASN_Object::FixedConstraint, 1, 32);
00599 return obj;
00600 }
00601
00602
00603 PASN_IA5String & H225_LocationRequest_language::operator[](PINDEX i) const
00604 {
00605 return (PASN_IA5String &)array[i];
00606 }
00607
00608
00609 PObject * H225_LocationRequest_language::Clone() const
00610 {
00611 #ifndef PASN_LEANANDMEAN
00612 PAssert(IsClass(H225_LocationRequest_language::Class()), PInvalidCast);
00613 #endif
00614 return new H225_LocationRequest_language(*this);
00615 }
00616
00617
00618
00619
00620
00621
00622 H225_InfoRequestResponse_perCallInfo::H225_InfoRequestResponse_perCallInfo(unsigned tag, PASN_Object::TagClass tagClass)
00623 : PASN_Array(tag, tagClass)
00624 {
00625 }
00626
00627
00628 PASN_Object * H225_InfoRequestResponse_perCallInfo::CreateObject() const
00629 {
00630 return new H225_InfoRequestResponse_perCallInfo_subtype;
00631 }
00632
00633
00634 H225_InfoRequestResponse_perCallInfo_subtype & H225_InfoRequestResponse_perCallInfo::operator[](PINDEX i) const
00635 {
00636 return (H225_InfoRequestResponse_perCallInfo_subtype &)array[i];
00637 }
00638
00639
00640 PObject * H225_InfoRequestResponse_perCallInfo::Clone() const
00641 {
00642 #ifndef PASN_LEANANDMEAN
00643 PAssert(IsClass(H225_InfoRequestResponse_perCallInfo::Class()), PInvalidCast);
00644 #endif
00645 return new H225_InfoRequestResponse_perCallInfo(*this);
00646 }
00647
00648
00649
00650
00651
00652
00653 H225_ServiceControlIndication_callSpecific::H225_ServiceControlIndication_callSpecific(unsigned tag, PASN_Object::TagClass tagClass)
00654 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
00655 {
00656 }
00657
00658
00659 #ifndef PASN_NOPRINTON
00660 void H225_ServiceControlIndication_callSpecific::PrintOn(ostream & strm) const
00661 {
00662 int indent = strm.precision() + 2;
00663 strm << "{\n";
00664 strm << setw(indent+17) << "callIdentifier = " << setprecision(indent) << m_callIdentifier << '\n';
00665 strm << setw(indent+15) << "conferenceID = " << setprecision(indent) << m_conferenceID << '\n';
00666 strm << setw(indent+15) << "answeredCall = " << setprecision(indent) << m_answeredCall << '\n';
00667 strm << setw(indent-1) << setprecision(indent-2) << "}";
00668 }
00669 #endif
00670
00671
00672 PObject::Comparison H225_ServiceControlIndication_callSpecific::Compare(const PObject & obj) const
00673 {
00674 #ifndef PASN_LEANANDMEAN
00675 PAssert(PIsDescendant(&obj, H225_ServiceControlIndication_callSpecific), PInvalidCast);
00676 #endif
00677 const H225_ServiceControlIndication_callSpecific & other = (const H225_ServiceControlIndication_callSpecific &)obj;
00678
00679 Comparison result;
00680
00681 if ((result = m_callIdentifier.Compare(other.m_callIdentifier)) != EqualTo)
00682 return result;
00683 if ((result = m_conferenceID.Compare(other.m_conferenceID)) != EqualTo)
00684 return result;
00685 if ((result = m_answeredCall.Compare(other.m_answeredCall)) != EqualTo)
00686 return result;
00687
00688 return PASN_Sequence::Compare(other);
00689 }
00690
00691
00692 PINDEX H225_ServiceControlIndication_callSpecific::GetDataLength() const
00693 {
00694 PINDEX length = 0;
00695 length += m_callIdentifier.GetObjectLength();
00696 length += m_conferenceID.GetObjectLength();
00697 length += m_answeredCall.GetObjectLength();
00698 return length;
00699 }
00700
00701
00702 BOOL H225_ServiceControlIndication_callSpecific::Decode(PASN_Stream & strm)
00703 {
00704 if (!PreambleDecode(strm))
00705 return FALSE;
00706
00707 if (!m_callIdentifier.Decode(strm))
00708 return FALSE;
00709 if (!m_conferenceID.Decode(strm))
00710 return FALSE;
00711 if (!m_answeredCall.Decode(strm))
00712 return FALSE;
00713
00714 return UnknownExtensionsDecode(strm);
00715 }
00716
00717
00718 void H225_ServiceControlIndication_callSpecific::Encode(PASN_Stream & strm) const
00719 {
00720 PreambleEncode(strm);
00721
00722 m_callIdentifier.Encode(strm);
00723 m_conferenceID.Encode(strm);
00724 m_answeredCall.Encode(strm);
00725
00726 UnknownExtensionsEncode(strm);
00727 }
00728
00729
00730 PObject * H225_ServiceControlIndication_callSpecific::Clone() const
00731 {
00732 #ifndef PASN_LEANANDMEAN
00733 PAssert(IsClass(H225_ServiceControlIndication_callSpecific::Class()), PInvalidCast);
00734 #endif
00735 return new H225_ServiceControlIndication_callSpecific(*this);
00736 }
00737
00738
00739
00740 #ifndef PASN_NOPRINTON
00741 const static PASN_Names Names_H225_ServiceControlResponse_result[]={
00742 {"started",0}
00743 ,{"failed",1}
00744 ,{"stopped",2}
00745 ,{"notAvailable",3}
00746 ,{"neededFeatureNotSupported",4}
00747 };
00748 #endif
00749
00750
00751
00752
00753 H225_ServiceControlResponse_result::H225_ServiceControlResponse_result(unsigned tag, PASN_Object::TagClass tagClass)
00754 : PASN_Choice(tag, tagClass, 5, TRUE
00755 #ifndef PASN_NOPRINTON
00756 ,(const PASN_Names *)Names_H225_ServiceControlResponse_result,5
00757 #endif
00758 )
00759 {
00760 }
00761
00762
00763 BOOL H225_ServiceControlResponse_result::CreateObject()
00764 {
00765 choice = (tag <= e_neededFeatureNotSupported) ? new PASN_Null() : NULL;
00766 return choice != NULL;
00767 }
00768
00769
00770 PObject * H225_ServiceControlResponse_result::Clone() const
00771 {
00772 #ifndef PASN_LEANANDMEAN
00773 PAssert(IsClass(H225_ServiceControlResponse_result::Class()), PInvalidCast);
00774 #endif
00775 return new H225_ServiceControlResponse_result(*this);
00776 }
00777
00778
00779
00780
00781
00782
00783 H225_TransportAddress_ipSourceRoute_route::H225_TransportAddress_ipSourceRoute_route(unsigned tag, PASN_Object::TagClass tagClass)
00784 : PASN_Array(tag, tagClass)
00785 {
00786 }
00787
00788
00789 PASN_Object * H225_TransportAddress_ipSourceRoute_route::CreateObject() const
00790 {
00791 PASN_OctetString * obj = new PASN_OctetString;
00792 obj->SetConstraints(PASN_Object::FixedConstraint, 4);
00793 return obj;
00794 }
00795
00796
00797 PASN_OctetString & H225_TransportAddress_ipSourceRoute_route::operator[](PINDEX i) const
00798 {
00799 return (PASN_OctetString &)array[i];
00800 }
00801
00802
00803 PObject * H225_TransportAddress_ipSourceRoute_route::Clone() const
00804 {
00805 #ifndef PASN_LEANANDMEAN
00806 PAssert(IsClass(H225_TransportAddress_ipSourceRoute_route::Class()), PInvalidCast);
00807 #endif
00808 return new H225_TransportAddress_ipSourceRoute_route(*this);
00809 }
00810
00811
00812
00813 #ifndef PASN_NOPRINTON
00814 const static PASN_Names Names_H225_TransportAddress_ipSourceRoute_routing[]={
00815 {"strict",0}
00816 ,{"loose",1}
00817 };
00818 #endif
00819
00820
00821
00822
00823 H225_TransportAddress_ipSourceRoute_routing::H225_TransportAddress_ipSourceRoute_routing(unsigned tag, PASN_Object::TagClass tagClass)
00824 : PASN_Choice(tag, tagClass, 2, TRUE
00825 #ifndef PASN_NOPRINTON
00826 ,(const PASN_Names *)Names_H225_TransportAddress_ipSourceRoute_routing,2
00827 #endif
00828 )
00829 {
00830 }
00831
00832
00833 BOOL H225_TransportAddress_ipSourceRoute_routing::CreateObject()
00834 {
00835 choice = (tag <= e_loose) ? new PASN_Null() : NULL;
00836 return choice != NULL;
00837 }
00838
00839
00840 PObject * H225_TransportAddress_ipSourceRoute_routing::Clone() const
00841 {
00842 #ifndef PASN_LEANANDMEAN
00843 PAssert(IsClass(H225_TransportAddress_ipSourceRoute_routing::Class()), PInvalidCast);
00844 #endif
00845 return new H225_TransportAddress_ipSourceRoute_routing(*this);
00846 }
00847
00848
00849
00850
00851
00852
00853 H225_ArrayOf_RTPSession::H225_ArrayOf_RTPSession(unsigned tag, PASN_Object::TagClass tagClass)
00854 : PASN_Array(tag, tagClass)
00855 {
00856 }
00857
00858
00859 PASN_Object * H225_ArrayOf_RTPSession::CreateObject() const
00860 {
00861 return new H225_RTPSession;
00862 }
00863
00864
00865 H225_RTPSession & H225_ArrayOf_RTPSession::operator[](PINDEX i) const
00866 {
00867 return (H225_RTPSession &)array[i];
00868 }
00869
00870
00871 PObject * H225_ArrayOf_RTPSession::Clone() const
00872 {
00873 #ifndef PASN_LEANANDMEAN
00874 PAssert(IsClass(H225_ArrayOf_RTPSession::Class()), PInvalidCast);
00875 #endif
00876 return new H225_ArrayOf_RTPSession(*this);
00877 }
00878
00879
00880
00881
00882
00883
00884 H225_ArrayOf_TransportChannelInfo::H225_ArrayOf_TransportChannelInfo(unsigned tag, PASN_Object::TagClass tagClass)
00885 : PASN_Array(tag, tagClass)
00886 {
00887 }
00888
00889
00890 PASN_Object * H225_ArrayOf_TransportChannelInfo::CreateObject() const
00891 {
00892 return new H225_TransportChannelInfo;
00893 }
00894
00895
00896 H225_TransportChannelInfo & H225_ArrayOf_TransportChannelInfo::operator[](PINDEX i) const
00897 {
00898 return (H225_TransportChannelInfo &)array[i];
00899 }
00900
00901
00902 PObject * H225_ArrayOf_TransportChannelInfo::Clone() const
00903 {
00904 #ifndef PASN_LEANANDMEAN
00905 PAssert(IsClass(H225_ArrayOf_TransportChannelInfo::Class()), PInvalidCast);
00906 #endif
00907 return new H225_ArrayOf_TransportChannelInfo(*this);
00908 }
00909
00910
00911
00912
00913
00914
00915 H225_ArrayOf_ConferenceIdentifier::H225_ArrayOf_ConferenceIdentifier(unsigned tag, PASN_Object::TagClass tagClass)
00916 : PASN_Array(tag, tagClass)
00917 {
00918 }
00919
00920
00921 PASN_Object * H225_ArrayOf_ConferenceIdentifier::CreateObject() const
00922 {
00923 return new H225_ConferenceIdentifier;
00924 }
00925
00926
00927 H225_ConferenceIdentifier & H225_ArrayOf_ConferenceIdentifier::operator[](PINDEX i) const
00928 {
00929 return (H225_ConferenceIdentifier &)array[i];
00930 }
00931
00932
00933 PObject * H225_ArrayOf_ConferenceIdentifier::Clone() const
00934 {
00935 #ifndef PASN_LEANANDMEAN
00936 PAssert(IsClass(H225_ArrayOf_ConferenceIdentifier::Class()), PInvalidCast);
00937 #endif
00938 return new H225_ArrayOf_ConferenceIdentifier(*this);
00939 }
00940
00941
00942
00943
00944
00945
00946 H225_InfoRequestResponse_perCallInfo_subtype_pdu::H225_InfoRequestResponse_perCallInfo_subtype_pdu(unsigned tag, PASN_Object::TagClass tagClass)
00947 : PASN_Array(tag, tagClass)
00948 {
00949 }
00950
00951
00952 PASN_Object * H225_InfoRequestResponse_perCallInfo_subtype_pdu::CreateObject() const
00953 {
00954 return new H225_InfoRequestResponse_perCallInfo_subtype_pdu_subtype;
00955 }
00956
00957
00958 H225_InfoRequestResponse_perCallInfo_subtype_pdu_subtype & H225_InfoRequestResponse_perCallInfo_subtype_pdu::operator[](PINDEX i) const
00959 {
00960 return (H225_InfoRequestResponse_perCallInfo_subtype_pdu_subtype &)array[i];
00961 }
00962
00963
00964 PObject * H225_InfoRequestResponse_perCallInfo_subtype_pdu::Clone() const
00965 {
00966 #ifndef PASN_LEANANDMEAN
00967 PAssert(IsClass(H225_InfoRequestResponse_perCallInfo_subtype_pdu::Class()), PInvalidCast);
00968 #endif
00969 return new H225_InfoRequestResponse_perCallInfo_subtype_pdu(*this);
00970 }
00971
00972
00973
00974
00975
00976
00977 H225_Status_UUIE::H225_Status_UUIE(unsigned tag, PASN_Object::TagClass tagClass)
00978 : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
00979 {
00980 }
00981
00982
00983 #ifndef PASN_NOPRINTON
00984 void H225_Status_UUIE::PrintOn(ostream & strm) const
00985 {
00986 int indent = strm.precision() + 2;
00987 strm << "{\n";
00988 strm << setw(indent+21) << "protocolIdentifier = " << setprecision(indent) << m_protocolIdentifier << '\n';
00989 strm << setw(indent+17) << "callIdentifier = " << setprecision(indent) << m_callIdentifier << '\n';
00990 if (HasOptionalField(e_tokens))
00991 strm << setw(indent+9) << "tokens = " << setprecision(indent) << m_tokens << '\n';
00992 if (HasOptionalField(e_cryptoTokens))
00993 strm << setw(indent+15) << "cryptoTokens = " << setprecision(indent) << m_cryptoTokens << '\n';
00994 strm << setw(indent-1) << setprecision(indent-2) << "}";
00995 }
00996 #endif
00997
00998
00999 PObject::Comparison H225_Status_UUIE::Compare(const PObject & obj) const
01000 {
01001 #ifndef PASN_LEANANDMEAN
01002 PAssert(PIsDescendant(&obj, H225_Status_UUIE), PInvalidCast);
01003 #endif
01004 const H225_Status_UUIE & other = (const H225_Status_UUIE &)obj;
01005
01006 Comparison result;
01007
01008 if ((result = m_protocolIdentifier.Compare(other.m_protocolIdentifier)) != EqualTo)
01009 return result;
01010 if ((result = m_callIdentifier.Compare(other.m_callIdentifier)) != EqualTo)
01011 return result;
01012 if ((result = m_tokens.Compare(other.m_tokens)) != EqualTo)
01013 return result;
01014 if ((result = m_cryptoTokens.Compare(other.m_cryptoTokens)) != EqualTo)
01015 return result;
01016
01017 return PASN_Sequence::Compare(other);
01018 }
01019
01020
01021 PINDEX H225_Status_UUIE::GetDataLength() const
01022 {
01023 PINDEX length = 0;
01024 length += m_protocolIdentifier.GetObjectLength();
01025 length += m_callIdentifier.GetObjectLength();
01026 if (HasOptionalField(e_tokens))
01027 length += m_tokens.GetObjectLength();
01028 if (HasOptionalField(e_cryptoTokens))
01029 length += m_cryptoTokens.GetObjectLength();
01030 return length;
01031 }
01032
01033
01034 BOOL H225_Status_UUIE::Decode(PASN_Stream & strm)
01035 {
01036 if (!PreambleDecode(strm))
01037 return FALSE;
01038
01039 if (!m_protocolIdentifier.Decode(strm))
01040 return FALSE;
01041 if (!m_callIdentifier.Decode(strm))
01042 return FALSE;
01043 if (HasOptionalField(e_tokens) && !m_tokens.Decode(strm))
01044 return FALSE;
01045 if (HasOptionalField(e_cryptoTokens) && !m_cryptoTokens.Decode(strm))
01046 return FALSE;
01047
01048 return UnknownExtensionsDecode(strm);
01049 }
01050
01051
01052 void H225_Status_UUIE::Encode(PASN_Stream & strm) const
01053 {
01054 PreambleEncode(strm);
01055
01056 m_protocolIdentifier.Encode(strm);
01057 m_callIdentifier.Encode(strm);
01058 if (HasOptionalField(e_tokens))
01059 m_tokens.Encode(strm);
01060 if (HasOptionalField(e_cryptoTokens))
01061 m_cryptoTokens.Encode(strm);
01062
01063 UnknownExtensionsEncode(strm);
01064 }
01065
01066
01067 PObject * H225_Status_UUIE::Clone() const
01068 {
01069 #ifndef PASN_LEANANDMEAN
01070 PAssert(IsClass(H225_Status_UUIE::Class()), PInvalidCast);
01071 #endif
01072 return new H225_Status_UUIE(*this);
01073 }
01074
01075
01076
01077
01078
01079
01080 H225_StatusInquiry_UUIE::H225_StatusInquiry_UUIE(unsigned tag, PASN_Object::TagClass tagClass)
01081 : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
01082 {
01083 }
01084
01085
01086 #ifndef PASN_NOPRINTON
01087 void H225_StatusInquiry_UUIE::PrintOn(ostream & strm) const
01088 {
01089 int indent = strm.precision() + 2;
01090 strm << "{\n";
01091 strm << setw(indent+21) << "protocolIdentifier = " << setprecision(indent) << m_protocolIdentifier << '\n';
01092 strm << setw(indent+17) << "callIdentifier = " << setprecision(indent) << m_callIdentifier << '\n';
01093 if (HasOptionalField(e_tokens))
01094 strm << setw(indent+9) << "tokens = " << setprecision(indent) << m_tokens << '\n';
01095 if (HasOptionalField(e_cryptoTokens))
01096 strm << setw(indent+15) << "cryptoTokens = " << setprecision(indent) << m_cryptoTokens << '\n';
01097 strm << setw(indent-1) << setprecision(indent-2) << "}";
01098 }
01099 #endif
01100
01101
01102 PObject::Comparison H225_StatusInquiry_UUIE::Compare(const PObject & obj) const
01103 {
01104 #ifndef PASN_LEANANDMEAN
01105 PAssert(PIsDescendant(&obj, H225_StatusInquiry_UUIE), PInvalidCast);
01106 #endif
01107 const H225_StatusInquiry_UUIE & other = (const H225_StatusInquiry_UUIE &)obj;
01108
01109 Comparison result;
01110
01111 if ((result = m_protocolIdentifier.Compare(other.m_protocolIdentifier)) != EqualTo)
01112 return result;
01113 if ((result = m_callIdentifier.Compare(other.m_callIdentifier)) != EqualTo)
01114 return result;
01115 if ((result = m_tokens.Compare(other.m_tokens)) != EqualTo)
01116 return result;
01117 if ((result = m_cryptoTokens.Compare(other.m_cryptoTokens)) != EqualTo)
01118 return result;
01119
01120 return PASN_Sequence::Compare(other);
01121 }
01122
01123
01124 PINDEX H225_StatusInquiry_UUIE::GetDataLength() const
01125 {
01126 PINDEX length = 0;
01127 length += m_protocolIdentifier.GetObjectLength();
01128 length += m_callIdentifier.GetObjectLength();
01129 if (HasOptionalField(e_tokens))
01130 length += m_tokens.GetObjectLength();
01131 if (HasOptionalField(e_cryptoTokens))
01132 length += m_cryptoTokens.GetObjectLength();
01133 return length;
01134 }
01135
01136
01137 BOOL H225_StatusInquiry_UUIE::Decode(PASN_Stream & strm)
01138 {
01139 if (!PreambleDecode(strm))
01140 return FALSE;
01141
01142 if (!m_protocolIdentifier.Decode(strm))
01143 return FALSE;
01144 if (!m_callIdentifier.Decode(strm))
01145 return FALSE;
01146 if (HasOptionalField(e_tokens) && !m_tokens.Decode(strm))
01147 return FALSE;
01148 if (HasOptionalField(e_cryptoTokens) && !m_cryptoTokens.Decode(strm))
01149 return FALSE;
01150
01151 return UnknownExtensionsDecode(strm);
01152 }
01153
01154
01155 void H225_StatusInquiry_UUIE::Encode(PASN_Stream & strm) const
01156 {
01157 PreambleEncode(strm);
01158
01159 m_protocolIdentifier.Encode(strm);
01160 m_callIdentifier.Encode(strm);
01161 if (HasOptionalField(e_tokens))
01162 m_tokens.Encode(strm);
01163 if (HasOptionalField(e_cryptoTokens))
01164 m_cryptoTokens.Encode(strm);
01165
01166 UnknownExtensionsEncode(strm);
01167 }
01168
01169
01170 PObject * H225_StatusInquiry_UUIE::Clone() const
01171 {
01172 #ifndef PASN_LEANANDMEAN
01173 PAssert(IsClass(H225_StatusInquiry_UUIE::Class()), PInvalidCast);
01174 #endif
01175 return new H225_StatusInquiry_UUIE(*this);
01176 }
01177
01178
01179
01180
01181
01182
01183 H225_SetupAcknowledge_UUIE::H225_SetupAcknowledge_UUIE(unsigned tag, PASN_Object::TagClass tagClass)
01184 : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
01185 {
01186 }
01187
01188
01189 #ifndef PASN_NOPRINTON
01190 void H225_SetupAcknowledge_UUIE::PrintOn(ostream & strm) const
01191 {
01192 int indent = strm.precision() + 2;
01193 strm << "{\n";
01194 strm << setw(indent+21) << "protocolIdentifier = " << setprecision(indent) << m_protocolIdentifier << '\n';
01195 strm << setw(indent+17) << "callIdentifier = " << setprecision(indent) << m_callIdentifier << '\n';
01196 if (HasOptionalField(e_tokens))
01197 strm << setw(indent+9) << "tokens = " << setprecision(indent) << m_tokens << '\n';
01198 if (HasOptionalField(e_cryptoTokens))
01199 strm << setw(indent+15) << "cryptoTokens = " << setprecision(indent) << m_cryptoTokens << '\n';
01200 strm << setw(indent-1) << setprecision(indent-2) << "}";
01201 }
01202 #endif
01203
01204
01205 PObject::Comparison H225_SetupAcknowledge_UUIE::Compare(const PObject & obj) const
01206 {
01207 #ifndef PASN_LEANANDMEAN
01208 PAssert(PIsDescendant(&obj, H225_SetupAcknowledge_UUIE), PInvalidCast);
01209 #endif
01210 const H225_SetupAcknowledge_UUIE & other = (const H225_SetupAcknowledge_UUIE &)obj;
01211
01212 Comparison result;
01213
01214 if ((result = m_protocolIdentifier.Compare(other.m_protocolIdentifier)) != EqualTo)
01215 return result;
01216 if ((result = m_callIdentifier.Compare(other.m_callIdentifier)) != EqualTo)
01217 return result;
01218 if ((result = m_tokens.Compare(other.m_tokens)) != EqualTo)
01219 return result;
01220 if ((result = m_cryptoTokens.Compare(other.m_cryptoTokens)) != EqualTo)
01221 return result;
01222
01223 return PASN_Sequence::Compare(other);
01224 }
01225
01226
01227 PINDEX H225_SetupAcknowledge_UUIE::GetDataLength() const
01228 {
01229 PINDEX length = 0;
01230 length += m_protocolIdentifier.GetObjectLength();
01231 length += m_callIdentifier.GetObjectLength();
01232 if (HasOptionalField(e_tokens))
01233 length += m_tokens.GetObjectLength();
01234 if (HasOptionalField(e_cryptoTokens))
01235 length += m_cryptoTokens.GetObjectLength();
01236 return length;
01237 }
01238
01239
01240 BOOL H225_SetupAcknowledge_UUIE::Decode(PASN_Stream & strm)
01241 {
01242 if (!PreambleDecode(strm))
01243 return FALSE;
01244
01245 if (!m_protocolIdentifier.Decode(strm))
01246 return FALSE;
01247 if (!m_callIdentifier.Decode(strm))
01248 return FALSE;
01249 if (HasOptionalField(e_tokens) && !m_tokens.Decode(strm))
01250 return FALSE;
01251 if (HasOptionalField(e_cryptoTokens) && !m_cryptoTokens.Decode(strm))
01252 return FALSE;
01253
01254 return UnknownExtensionsDecode(strm);
01255 }
01256
01257
01258 void H225_SetupAcknowledge_UUIE::Encode(PASN_Stream & strm) const
01259 {
01260 PreambleEncode(strm);
01261
01262 m_protocolIdentifier.Encode(strm);
01263 m_callIdentifier.Encode(strm);
01264 if (HasOptionalField(e_tokens))
01265 m_tokens.Encode(strm);
01266 if (HasOptionalField(e_cryptoTokens))
01267 m_cryptoTokens.Encode(strm);
01268
01269 UnknownExtensionsEncode(strm);
01270 }
01271
01272
01273 PObject * H225_SetupAcknowledge_UUIE::Clone() const
01274 {
01275 #ifndef PASN_LEANANDMEAN
01276 PAssert(IsClass(H225_SetupAcknowledge_UUIE::Class()), PInvalidCast);
01277 #endif
01278 return new H225_SetupAcknowledge_UUIE(*this);
01279 }
01280
01281
01282
01283
01284
01285
01286 H225_Notify_UUIE::H225_Notify_UUIE(unsigned tag, PASN_Object::TagClass tagClass)
01287 : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
01288 {
01289 }
01290
01291
01292 #ifndef PASN_NOPRINTON
01293 void H225_Notify_UUIE::PrintOn(ostream & strm) const
01294 {
01295 int indent = strm.precision() + 2;
01296 strm << "{\n";
01297 strm << setw(indent+21) << "protocolIdentifier = " << setprecision(indent) << m_protocolIdentifier << '\n';
01298 strm << setw(indent+17) << "callIdentifier = " << setprecision(indent) << m_callIdentifier << '\n';
01299 if (HasOptionalField(e_tokens))
01300 strm << setw(indent+9) << "tokens = " << setprecision(indent) << m_tokens << '\n';
01301 if (HasOptionalField(e_cryptoTokens))
01302 strm << setw(indent+15) << "cryptoTokens = " << setprecision(indent) << m_cryptoTokens << '\n';
01303 strm << setw(indent-1) << setprecision(indent-2) << "}";
01304 }
01305 #endif
01306
01307
01308 PObject::Comparison H225_Notify_UUIE::Compare(const PObject & obj) const
01309 {
01310 #ifndef PASN_LEANANDMEAN
01311 PAssert(PIsDescendant(&obj, H225_Notify_UUIE), PInvalidCast);
01312 #endif
01313 const H225_Notify_UUIE & other = (const H225_Notify_UUIE &)obj;
01314
01315 Comparison result;
01316
01317 if ((result = m_protocolIdentifier.Compare(other.m_protocolIdentifier)) != EqualTo)
01318 return result;
01319 if ((result = m_callIdentifier.Compare(other.m_callIdentifier)) != EqualTo)
01320 return result;
01321 if ((result = m_tokens.Compare(other.m_tokens)) != EqualTo)
01322 return result;
01323 if ((result = m_cryptoTokens.Compare(other.m_cryptoTokens)) != EqualTo)
01324 return result;
01325
01326 return PASN_Sequence::Compare(other);
01327 }
01328
01329
01330 PINDEX H225_Notify_UUIE::GetDataLength() const
01331 {
01332 PINDEX length = 0;
01333 length += m_protocolIdentifier.GetObjectLength();
01334 length += m_callIdentifier.GetObjectLength();
01335 if (HasOptionalField(e_tokens))
01336 length += m_tokens.GetObjectLength();
01337 if (HasOptionalField(e_cryptoTokens))
01338 length += m_cryptoTokens.GetObjectLength();
01339 return length;
01340 }
01341
01342
01343 BOOL H225_Notify_UUIE::Decode(PASN_Stream & strm)
01344 {
01345 if (!PreambleDecode(strm))
01346 return FALSE;
01347
01348 if (!m_protocolIdentifier.Decode(strm))
01349 return FALSE;
01350 if (!m_callIdentifier.Decode(strm))
01351 return FALSE;
01352 if (HasOptionalField(e_tokens) && !m_tokens.Decode(strm))
01353 return FALSE;
01354 if (HasOptionalField(e_cryptoTokens) && !m_cryptoTokens.Decode(strm))
01355 return FALSE;
01356
01357 return UnknownExtensionsDecode(strm);
01358 }
01359
01360
01361 void H225_Notify_UUIE::Encode(PASN_Stream & strm) const
01362 {
01363 PreambleEncode(strm);
01364
01365 m_protocolIdentifier.Encode(strm);
01366 m_callIdentifier.Encode(strm);
01367 if (HasOptionalField(e_tokens))
01368 m_tokens.Encode(strm);
01369 if (HasOptionalField(e_cryptoTokens))
01370 m_cryptoTokens.Encode(strm);
01371
01372 UnknownExtensionsEncode(strm);
01373 }
01374
01375
01376 PObject * H225_Notify_UUIE::Clone() const
01377 {
01378 #ifndef PASN_LEANANDMEAN
01379 PAssert(IsClass(H225_Notify_UUIE::Class()), PInvalidCast);
01380 #endif
01381 return new H225_Notify_UUIE(*this);
01382 }
01383
01384
01385
01386
01387
01388
01389 H225_VendorIdentifier::H225_VendorIdentifier(unsigned tag, PASN_Object::TagClass tagClass)
01390 : PASN_Sequence(tag, tagClass, 2, TRUE, 1)
01391 {
01392 m_productId.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
01393 m_versionId.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
01394 }
01395
01396
01397 #ifndef PASN_NOPRINTON
01398 void H225_VendorIdentifier::PrintOn(ostream & strm) const
01399 {
01400 int indent = strm.precision() + 2;
01401 strm << "{\n";
01402 strm << setw(indent+9) << "vendor = " << setprecision(indent) << m_vendor << '\n';
01403 if (HasOptionalField(e_productId))
01404 strm << setw(indent+12) << "productId = " << setprecision(indent) << m_productId << '\n';
01405 if (HasOptionalField(e_versionId))
01406 strm << setw(indent+12) << "versionId = " << setprecision(indent) << m_versionId << '\n';
01407 if (HasOptionalField(e_enterpriseNumber))
01408 strm << setw(indent+19) << "enterpriseNumber = " << setprecision(indent) << m_enterpriseNumber << '\n';
01409 strm << setw(indent-1) << setprecision(indent-2) << "}";
01410 }
01411 #endif
01412
01413
01414 PObject::Comparison H225_VendorIdentifier::Compare(const PObject & obj) const
01415 {
01416 #ifndef PASN_LEANANDMEAN
01417 PAssert(PIsDescendant(&obj, H225_VendorIdentifier), PInvalidCast);
01418 #endif
01419 const H225_VendorIdentifier & other = (const H225_VendorIdentifier &)obj;
01420
01421 Comparison result;
01422
01423 if ((result = m_vendor.Compare(other.m_vendor)) != EqualTo)
01424 return result;
01425 if ((result = m_productId.Compare(other.m_productId)) != EqualTo)
01426 return result;
01427 if ((result = m_versionId.Compare(other.m_versionId)) != EqualTo)
01428 return result;
01429
01430 return PASN_Sequence::Compare(other);
01431 }
01432
01433
01434 PINDEX H225_VendorIdentifier::GetDataLength() const
01435 {
01436 PINDEX length = 0;
01437 length += m_vendor.GetObjectLength();
01438 if (HasOptionalField(e_productId))
01439 length += m_productId.GetObjectLength();
01440 if (HasOptionalField(e_versionId))
01441 length += m_versionId.GetObjectLength();
01442 return length;
01443 }
01444
01445
01446 BOOL H225_VendorIdentifier::Decode(PASN_Stream & strm)
01447 {
01448 if (!PreambleDecode(strm))
01449 return FALSE;
01450
01451 if (!m_vendor.Decode(strm))
01452 return FALSE;
01453 if (HasOptionalField(e_productId) && !m_productId.Decode(strm))
01454 return FALSE;
01455 if (HasOptionalField(e_versionId) && !m_versionId.Decode(strm))
01456 return FALSE;
01457 if (!KnownExtensionDecode(strm, e_enterpriseNumber, m_enterpriseNumber))
01458 return FALSE;
01459
01460 return UnknownExtensionsDecode(strm);
01461 }
01462
01463
01464 void H225_VendorIdentifier::Encode(PASN_Stream & strm) const
01465 {
01466 PreambleEncode(strm);
01467
01468 m_vendor.Encode(strm);
01469 if (HasOptionalField(e_productId))
01470 m_productId.Encode(strm);
01471 if (HasOptionalField(e_versionId))
01472 m_versionId.Encode(strm);
01473 KnownExtensionEncode(strm, e_enterpriseNumber, m_enterpriseNumber);
01474
01475 UnknownExtensionsEncode(strm);
01476 }
01477
01478
01479 PObject * H225_VendorIdentifier::Clone() const
01480 {
01481 #ifndef PASN_LEANANDMEAN
01482 PAssert(IsClass(H225_VendorIdentifier::Class()), PInvalidCast);
01483 #endif
01484 return new H225_VendorIdentifier(*this);
01485 }
01486
01487
01488
01489
01490
01491
01492 H225_TunnelledProtocol::H225_TunnelledProtocol(unsigned tag, PASN_Object::TagClass tagClass)
01493 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
01494 {
01495 m_subIdentifier.SetConstraints(PASN_Object::FixedConstraint, 1, 64);
01496 }
01497
01498
01499 #ifndef PASN_NOPRINTON
01500 void H225_TunnelledProtocol::PrintOn(ostream & strm) const
01501 {
01502 int indent = strm.precision() + 2;
01503 strm << "{\n";
01504 strm << setw(indent+5) << "id = " << setprecision(indent) << m_id << '\n';
01505 if (HasOptionalField(e_subIdentifier))
01506 strm << setw(indent+16) << "subIdentifier = " << setprecision(indent) << m_subIdentifier << '\n';
01507 strm << setw(indent-1) << setprecision(indent-2) << "}";
01508 }
01509 #endif
01510
01511
01512 PObject::Comparison H225_TunnelledProtocol::Compare(const PObject & obj) const
01513 {
01514 #ifndef PASN_LEANANDMEAN
01515 PAssert(PIsDescendant(&obj, H225_TunnelledProtocol), PInvalidCast);
01516 #endif
01517 const H225_TunnelledProtocol & other = (const H225_TunnelledProtocol &)obj;
01518
01519 Comparison result;
01520
01521 if ((result = m_id.Compare(other.m_id)) != EqualTo)
01522 return result;
01523 if ((result = m_subIdentifier.Compare(other.m_subIdentifier)) != EqualTo)
01524 return result;
01525
01526 return PASN_Sequence::Compare(other);
01527 }
01528
01529
01530 PINDEX H225_TunnelledProtocol::GetDataLength() const
01531 {
01532 PINDEX length = 0;
01533 length += m_id.GetObjectLength();
01534 if (HasOptionalField(e_subIdentifier))
01535 length += m_subIdentifier.GetObjectLength();
01536 return length;
01537 }
01538
01539
01540 BOOL H225_TunnelledProtocol::Decode(PASN_Stream & strm)
01541 {
01542 if (!PreambleDecode(strm))
01543 return FALSE;
01544
01545 if (!m_id.Decode(strm))
01546 return FALSE;
01547 if (HasOptionalField(e_subIdentifier) && !m_subIdentifier.Decode(strm))
01548 return FALSE;
01549
01550 return UnknownExtensionsDecode(strm);
01551 }
01552
01553
01554 void H225_TunnelledProtocol::Encode(PASN_Stream & strm) const
01555 {
01556 PreambleEncode(strm);
01557
01558 m_id.Encode(strm);
01559 if (HasOptionalField(e_subIdentifier))
01560 m_subIdentifier.Encode(strm);
01561
01562 UnknownExtensionsEncode(strm);
01563 }
01564
01565
01566 PObject * H225_TunnelledProtocol::Clone() const
01567 {
01568 #ifndef PASN_LEANANDMEAN
01569 PAssert(IsClass(H225_TunnelledProtocol::Class()), PInvalidCast);
01570 #endif
01571 return new H225_TunnelledProtocol(*this);
01572 }
01573
01574
01575
01576
01577
01578
01579 H225_NonStandardParameter::H225_NonStandardParameter(unsigned tag, PASN_Object::TagClass tagClass)
01580 : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
01581 {
01582 }
01583
01584
01585 #ifndef PASN_NOPRINTON
01586 void H225_NonStandardParameter::PrintOn(ostream & strm) const
01587 {
01588 int indent = strm.precision() + 2;
01589 strm << "{\n";
01590 strm << setw(indent+24) << "nonStandardIdentifier = " << setprecision(indent) << m_nonStandardIdentifier << '\n';
01591 strm << setw(indent+7) << "data = " << setprecision(indent) << m_data << '\n';
01592 strm << setw(indent-1) << setprecision(indent-2) << "}";
01593 }
01594 #endif
01595
01596
01597 PObject::Comparison H225_NonStandardParameter::Compare(const PObject & obj) const
01598 {
01599 #ifndef PASN_LEANANDMEAN
01600 PAssert(PIsDescendant(&obj, H225_NonStandardParameter), PInvalidCast);
01601 #endif
01602 const H225_NonStandardParameter & other = (const H225_NonStandardParameter &)obj;
01603
01604 Comparison result;
01605
01606 if ((result = m_nonStandardIdentifier.Compare(other.m_nonStandardIdentifier)) != EqualTo)
01607 return result;
01608 if ((result = m_data.Compare(other.m_data)) != EqualTo)
01609 return result;
01610
01611 return PASN_Sequence::Compare(other);
01612 }
01613
01614
01615 PINDEX H225_NonStandardParameter::GetDataLength() const
01616 {
01617 PINDEX length = 0;
01618 length += m_nonStandardIdentifier.GetObjectLength();
01619 length += m_data.GetObjectLength();
01620 return length;
01621 }
01622
01623
01624 BOOL H225_NonStandardParameter::Decode(PASN_Stream & strm)
01625 {
01626 if (!PreambleDecode(strm))
01627 return FALSE;
01628
01629 if (!m_nonStandardIdentifier.Decode(strm))
01630 return FALSE;
01631 if (!m_data.Decode(strm))
01632 return FALSE;
01633
01634 return UnknownExtensionsDecode(strm);
01635 }
01636
01637
01638 void H225_NonStandardParameter::Encode(PASN_Stream & strm) const
01639 {
01640 PreambleEncode(strm);
01641
01642 m_nonStandardIdentifier.Encode(strm);
01643 m_data.Encode(strm);
01644
01645 UnknownExtensionsEncode(strm);
01646 }
01647
01648
01649 PObject * H225_NonStandardParameter::Clone() const
01650 {
01651 #ifndef PASN_LEANANDMEAN
01652 PAssert(IsClass(H225_NonStandardParameter::Class()), PInvalidCast);
01653 #endif
01654 return new H225_NonStandardParameter(*this);
01655 }
01656
01657
01658
01659
01660
01661
01662 H225_PublicPartyNumber::H225_PublicPartyNumber(unsigned tag, PASN_Object::TagClass tagClass)
01663 : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
01664 {
01665 }
01666
01667
01668 #ifndef PASN_NOPRINTON
01669 void H225_PublicPartyNumber::PrintOn(ostream & strm) const
01670 {
01671 int indent = strm.precision() + 2;
01672 strm << "{\n";
01673 strm << setw(indent+21) << "publicTypeOfNumber = " << setprecision(indent) << m_publicTypeOfNumber << '\n';
01674 strm << setw(indent+21) << "publicNumberDigits = " << setprecision(indent) << m_publicNumberDigits << '\n';
01675 strm << setw(indent-1) << setprecision(indent-2) << "}";
01676 }
01677 #endif
01678
01679
01680 PObject::Comparison H225_PublicPartyNumber::Compare(const PObject & obj) const
01681 {
01682 #ifndef PASN_LEANANDMEAN
01683 PAssert(PIsDescendant(&obj, H225_PublicPartyNumber), PInvalidCast);
01684 #endif
01685 const H225_PublicPartyNumber & other = (const H225_PublicPartyNumber &)obj;
01686
01687 Comparison result;
01688
01689 if ((result = m_publicTypeOfNumber.Compare(other.m_publicTypeOfNumber)) != EqualTo)
01690 return result;
01691 if ((result = m_publicNumberDigits.Compare(other.m_publicNumberDigits)) != EqualTo)
01692 return result;
01693
01694 return PASN_Sequence::Compare(other);
01695 }
01696
01697
01698 PINDEX H225_PublicPartyNumber::GetDataLength() const
01699 {
01700 PINDEX length = 0;
01701 length += m_publicTypeOfNumber.GetObjectLength();
01702 length += m_publicNumberDigits.GetObjectLength();
01703 return length;
01704 }
01705
01706
01707 BOOL H225_PublicPartyNumber::Decode(PASN_Stream & strm)
01708 {
01709 if (!PreambleDecode(strm))
01710 return FALSE;
01711
01712 if (!m_publicTypeOfNumber.Decode(strm))
01713 return FALSE;
01714 if (!m_publicNumberDigits.Decode(strm))
01715 return FALSE;
01716
01717 return UnknownExtensionsDecode(strm);
01718 }
01719
01720
01721 void H225_PublicPartyNumber::Encode(PASN_Stream & strm) const
01722 {
01723 PreambleEncode(strm);
01724
01725 m_publicTypeOfNumber.Encode(strm);
01726 m_publicNumberDigits.Encode(strm);
01727
01728 UnknownExtensionsEncode(strm);
01729 }
01730
01731
01732 PObject * H225_PublicPartyNumber::Clone() const
01733 {
01734 #ifndef PASN_LEANANDMEAN
01735 PAssert(IsClass(H225_PublicPartyNumber::Class()), PInvalidCast);
01736 #endif
01737 return new H225_PublicPartyNumber(*this);
01738 }
01739
01740
01741
01742
01743
01744
01745 H225_PrivatePartyNumber::H225_PrivatePartyNumber(unsigned tag, PASN_Object::TagClass tagClass)
01746 : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
01747 {
01748 }
01749
01750
01751 #ifndef PASN_NOPRINTON
01752 void H225_PrivatePartyNumber::PrintOn(ostream & strm) const
01753 {
01754 int indent = strm.precision() + 2;
01755 strm << "{\n";
01756 strm << setw(indent+22) << "privateTypeOfNumber = " << setprecision(indent) << m_privateTypeOfNumber << '\n';
01757 strm << setw(indent+22) << "privateNumberDigits = " << setprecision(indent) << m_privateNumberDigits << '\n';
01758 strm << setw(indent-1) << setprecision(indent-2) << "}";
01759 }
01760 #endif
01761
01762
01763 PObject::Comparison H225_PrivatePartyNumber::Compare(const PObject & obj) const
01764 {
01765 #ifndef PASN_LEANANDMEAN
01766 PAssert(PIsDescendant(&obj, H225_PrivatePartyNumber), PInvalidCast);
01767 #endif
01768 const H225_PrivatePartyNumber & other = (const H225_PrivatePartyNumber &)obj;
01769
01770 Comparison result;
01771
01772 if ((result = m_privateTypeOfNumber.Compare(other.m_privateTypeOfNumber)) != EqualTo)
01773 return result;
01774 if ((result = m_privateNumberDigits.Compare(other.m_privateNumberDigits)) != EqualTo)
01775 return result;
01776
01777 return PASN_Sequence::Compare(other);
01778 }
01779
01780
01781 PINDEX H225_PrivatePartyNumber::GetDataLength() const
01782 {
01783 PINDEX length = 0;
01784 length += m_privateTypeOfNumber.GetObjectLength();
01785 length += m_privateNumberDigits.GetObjectLength();
01786 return length;
01787 }
01788
01789
01790 BOOL H225_PrivatePartyNumber::Decode(PASN_Stream & strm)
01791 {
01792 if (!PreambleDecode(strm))
01793 return FALSE;
01794
01795 if (!m_privateTypeOfNumber.Decode(strm))
01796 return FALSE;
01797 if (!m_privateNumberDigits.Decode(strm))
01798 return FALSE;
01799
01800 return UnknownExtensionsDecode(strm);
01801 }
01802
01803
01804 void H225_PrivatePartyNumber::Encode(PASN_Stream & strm) const
01805 {
01806 PreambleEncode(strm);
01807
01808 m_privateTypeOfNumber.Encode(strm);
01809 m_privateNumberDigits.Encode(strm);
01810
01811 UnknownExtensionsEncode(strm);
01812 }
01813
01814
01815 PObject * H225_PrivatePartyNumber::Clone() const
01816 {
01817 #ifndef PASN_LEANANDMEAN
01818 PAssert(IsClass(H225_PrivatePartyNumber::Class()), PInvalidCast);
01819 #endif
01820 return new H225_PrivatePartyNumber(*this);
01821 }
01822
01823
01824
01825
01826
01827
01828 H225_ANSI_41_UIM::H225_ANSI_41_UIM(unsigned tag, PASN_Object::TagClass tagClass)
01829 : PASN_Sequence(tag, tagClass, 11, TRUE, 0)
01830 {
01831 m_imsi.SetConstraints(PASN_Object::FixedConstraint, 3, 16);
01832 m_min.SetConstraints(PASN_Object::FixedConstraint, 3, 16);
01833 m_mdn.SetConstraints(PASN_Object::FixedConstraint, 3, 16);
01834 m_msisdn.SetConstraints(PASN_Object::FixedConstraint, 3, 16);
01835 m_esn.SetConstraints(PASN_Object::FixedConstraint, 16);
01836 m_mscid.SetConstraints(PASN_Object::FixedConstraint, 3, 16);
01837 m_systemMyTypeCode.SetConstraints(PASN_Object::FixedConstraint, 1);
01838 m_systemAccessType.SetConstraints(PASN_Object::FixedConstraint, 1);
01839 m_qualificationInformationCode.SetConstraints(PASN_Object::FixedConstraint, 1);
01840 m_sesn.SetConstraints(PASN_Object::FixedConstraint, 16);
01841 m_soc.SetConstraints(PASN_Object::FixedConstraint, 3, 16);
01842 }
01843
01844
01845 #ifndef PASN_NOPRINTON
01846 void H225_ANSI_41_UIM::PrintOn(ostream & strm) const
01847 {
01848 int indent = strm.precision() + 2;
01849 strm << "{\n";
01850 if (HasOptionalField(e_imsi))
01851 strm << setw(indent+7) << "imsi = " << setprecision(indent) << m_imsi << '\n';
01852 if (HasOptionalField(e_min))
01853 strm << setw(indent+6) << "min = " << setprecision(indent) << m_min << '\n';
01854 if (HasOptionalField(e_mdn))
01855 strm << setw(indent+6) << "mdn = " << setprecision(indent) << m_mdn << '\n';
01856 if (HasOptionalField(e_msisdn))
01857 strm << setw(indent+9) << "msisdn = " << setprecision(indent) << m_msisdn << '\n';
01858 if (HasOptionalField(e_esn))
01859 strm << setw(indent+6) << "esn = " << setprecision(indent) << m_esn << '\n';
01860 if (HasOptionalField(e_mscid))
01861 strm << setw(indent+8) << "mscid = " << setprecision(indent) << m_mscid << '\n';
01862 strm << setw(indent+12) << "system_id = " << setprecision(indent) << m_system_id << '\n';
01863 if (HasOptionalField(e_systemMyTypeCode))
01864 strm << setw(indent+19) << "systemMyTypeCode = " << setprecision(indent) << m_systemMyTypeCode << '\n';
01865 if (HasOptionalField(e_systemAccessType))
01866 strm << setw(indent+19) << "systemAccessType = " << setprecision(indent) << m_systemAccessType << '\n';
01867 if (HasOptionalField(e_qualificationInformationCode))
01868 strm << setw(indent+31) << "qualificationInformationCode = " << setprecision(indent) << m_qualificationInformationCode << '\n';
01869 if (HasOptionalField(e_sesn))
01870 strm << setw(indent+7) << "sesn = " << setprecision(indent) << m_sesn << '\n';
01871 if (HasOptionalField(e_soc))
01872 strm << setw(indent+6) << "soc = " << setprecision(indent) << m_soc << '\n';
01873 strm << setw(indent-1) << setprecision(indent-2) << "}";
01874 }
01875 #endif
01876
01877
01878 PObject::Comparison H225_ANSI_41_UIM::Compare(const PObject & obj) const
01879 {
01880 #ifndef PASN_LEANANDMEAN
01881 PAssert(PIsDescendant(&obj, H225_ANSI_41_UIM), PInvalidCast);
01882 #endif
01883 const H225_ANSI_41_UIM & other = (const H225_ANSI_41_UIM &)obj;
01884
01885 Comparison result;
01886
01887 if ((result = m_imsi.Compare(other.m_imsi)) != EqualTo)
01888 return result;
01889 if ((result = m_min.Compare(other.m_min)) != EqualTo)
01890 return result;
01891 if ((result = m_mdn.Compare(other.m_mdn)) != EqualTo)
01892 return result;
01893 if ((result = m_msisdn.Compare(other.m_msisdn)) != EqualTo)
01894 return result;
01895 if ((result = m_esn.Compare(other.m_esn)) != EqualTo)
01896 return result;
01897 if ((result = m_mscid.Compare(other.m_mscid)) != EqualTo)
01898 return result;
01899 if ((result = m_system_id.Compare(other.m_system_id)) != EqualTo)
01900 return result;
01901 if ((result = m_systemMyTypeCode.Compare(other.m_systemMyTypeCode)) != EqualTo)
01902 return result;
01903 if ((result = m_systemAccessType.Compare(other.m_systemAccessType)) != EqualTo)
01904 return result;
01905 if ((result = m_qualificationInformationCode.Compare(other.m_qualificationInformationCode)) != EqualTo)
01906 return result;
01907 if ((result = m_sesn.Compare(other.m_sesn)) != EqualTo)
01908 return result;
01909 if ((result = m_soc.Compare(other.m_soc)) != EqualTo)
01910 return result;
01911
01912 return PASN_Sequence::Compare(other);
01913 }
01914
01915
01916 PINDEX H225_ANSI_41_UIM::GetDataLength() const
01917 {
01918 PINDEX length = 0;
01919 if (HasOptionalField(e_imsi))
01920 length += m_imsi.GetObjectLength();
01921 if (HasOptionalField(e_min))
01922 length += m_min.GetObjectLength();
01923 if (HasOptionalField(e_mdn))
01924 length += m_mdn.GetObjectLength();
01925 if (HasOptionalField(e_msisdn))
01926 length += m_msisdn.GetObjectLength();
01927 if (HasOptionalField(e_esn))
01928 length += m_esn.GetObjectLength();
01929 if (HasOptionalField(e_mscid))
01930 length += m_mscid.GetObjectLength();
01931 length += m_system_id.GetObjectLength();
01932 if (HasOptionalField(e_systemMyTypeCode))
01933 length += m_systemMyTypeCode.GetObjectLength();
01934 if (HasOptionalField(e_systemAccessType))
01935 length += m_systemAccessType.GetObjectLength();
01936 if (HasOptionalField(e_qualificationInformationCode))
01937 length += m_qualificationInformationCode.GetObjectLength();
01938 if (HasOptionalField(e_sesn))
01939 length += m_sesn.GetObjectLength();
01940 if (HasOptionalField(e_soc))
01941 length += m_soc.GetObjectLength();
01942 return length;
01943 }
01944
01945
01946 BOOL H225_ANSI_41_UIM::Decode(PASN_Stream & strm)
01947 {
01948 if (!PreambleDecode(strm))
01949 return FALSE;
01950
01951 if (HasOptionalField(e_imsi) && !m_imsi.Decode(strm))
01952 return FALSE;
01953 if (HasOptionalField(e_min) && !m_min.Decode(strm))
01954 return FALSE;
01955 if (HasOptionalField(e_mdn) && !m_mdn.Decode(strm))
01956 return FALSE;
01957 if (HasOptionalField(e_msisdn) && !m_msisdn.Decode(strm))
01958 return FALSE;
01959 if (HasOptionalField(e_esn) && !m_esn.Decode(strm))
01960 return FALSE;
01961 if (HasOptionalField(e_mscid) && !m_mscid.Decode(strm))
01962 return FALSE;
01963 if (!m_system_id.Decode(strm))
01964 return FALSE;
01965 if (HasOptionalField(e_systemMyTypeCode) && !m_systemMyTypeCode.Decode(strm))
01966 return FALSE;
01967 if (HasOptionalField(e_systemAccessType) && !m_systemAccessType.Decode(strm))
01968 return FALSE;
01969 if (HasOptionalField(e_qualificationInformationCode) && !m_qualificationInformationCode.Decode(strm))
01970 return FALSE;
01971 if (HasOptionalField(e_sesn) && !m_sesn.Decode(strm))
01972 return FALSE;
01973 if (HasOptionalField(e_soc) && !m_soc.Decode(strm))
01974 return FALSE;
01975
01976 return UnknownExtensionsDecode(strm);
01977 }
01978
01979
01980 void H225_ANSI_41_UIM::Encode(PASN_Stream & strm) const
01981 {
01982 PreambleEncode(strm);
01983
01984 if (HasOptionalField(e_imsi))
01985 m_imsi.Encode(strm);
01986 if (HasOptionalField(e_min))
01987 m_min.Encode(strm);
01988 if (HasOptionalField(e_mdn))
01989 m_mdn.Encode(strm);
01990 if (HasOptionalField(e_msisdn))
01991 m_msisdn.Encode(strm);
01992 if (HasOptionalField(e_esn))
01993 m_esn.Encode(strm);
01994 if (HasOptionalField(e_mscid))
01995 m_mscid.Encode(strm);
01996 m_system_id.Encode(strm);
01997 if (HasOptionalField(e_systemMyTypeCode))
01998 m_systemMyTypeCode.Encode(strm);
01999 if (HasOptionalField(e_systemAccessType))
02000 m_systemAccessType.Encode(strm);
02001 if (HasOptionalField(e_qualificationInformationCode))
02002 m_qualificationInformationCode.Encode(strm);
02003 if (HasOptionalField(e_sesn))
02004 m_sesn.Encode(strm);
02005 if (HasOptionalField(e_soc))
02006 m_soc.Encode(strm);
02007
02008 UnknownExtensionsEncode(strm);
02009 }
02010
02011
02012 PObject * H225_ANSI_41_UIM::Clone() const
02013 {
02014 #ifndef PASN_LEANANDMEAN
02015 PAssert(IsClass(H225_ANSI_41_UIM::Class()), PInvalidCast);
02016 #endif
02017 return new H225_ANSI_41_UIM(*this);
02018 }
02019
02020
02021
02022
02023
02024
02025 H225_IsupPublicPartyNumber::H225_IsupPublicPartyNumber(unsigned tag, PASN_Object::TagClass tagClass)
02026 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
02027 {
02028 }
02029
02030
02031 #ifndef PASN_NOPRINTON
02032 void H225_IsupPublicPartyNumber::PrintOn(ostream & strm) const
02033 {
02034 int indent = strm.precision() + 2;
02035 strm << "{\n";
02036 strm << setw(indent+18) << "natureOfAddress = " << setprecision(indent) << m_natureOfAddress << '\n';
02037 strm << setw(indent+10) << "address = " << setprecision(indent) << m_address << '\n';
02038 strm << setw(indent-1) << setprecision(indent-2) << "}";
02039 }
02040 #endif
02041
02042
02043 PObject::Comparison H225_IsupPublicPartyNumber::Compare(const PObject & obj) const
02044 {
02045 #ifndef PASN_LEANANDMEAN
02046 PAssert(PIsDescendant(&obj, H225_IsupPublicPartyNumber), PInvalidCast);
02047 #endif
02048 const H225_IsupPublicPartyNumber & other = (const H225_IsupPublicPartyNumber &)obj;
02049
02050 Comparison result;
02051
02052 if ((result = m_natureOfAddress.Compare(other.m_natureOfAddress)) != EqualTo)
02053 return result;
02054 if ((result = m_address.Compare(other.m_address)) != EqualTo)
02055 return result;
02056
02057 return PASN_Sequence::Compare(other);
02058 }
02059
02060
02061 PINDEX H225_IsupPublicPartyNumber::GetDataLength() const
02062 {
02063 PINDEX length = 0;
02064 length += m_natureOfAddress.GetObjectLength();
02065 length += m_address.GetObjectLength();
02066 return length;
02067 }
02068
02069
02070 BOOL H225_IsupPublicPartyNumber::Decode(PASN_Stream & strm)
02071 {
02072 if (!PreambleDecode(strm))
02073 return FALSE;
02074
02075 if (!m_natureOfAddress.Decode(strm))
02076 return FALSE;
02077 if (!m_address.Decode(strm))
02078 return FALSE;
02079
02080 return UnknownExtensionsDecode(strm);
02081 }
02082
02083
02084 void H225_IsupPublicPartyNumber::Encode(PASN_Stream & strm) const
02085 {
02086 PreambleEncode(strm);
02087
02088 m_natureOfAddress.Encode(strm);
02089 m_address.Encode(strm);
02090
02091 UnknownExtensionsEncode(strm);
02092 }
02093
02094
02095 PObject * H225_IsupPublicPartyNumber::Clone() const
02096 {
02097 #ifndef PASN_LEANANDMEAN
02098 PAssert(IsClass(H225_IsupPublicPartyNumber::Class()), PInvalidCast);
02099 #endif
02100 return new H225_IsupPublicPartyNumber(*this);
02101 }
02102
02103
02104
02105
02106
02107
02108 H225_IsupPrivatePartyNumber::H225_IsupPrivatePartyNumber(unsigned tag, PASN_Object::TagClass tagClass)
02109 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
02110 {
02111 }
02112
02113
02114 #ifndef PASN_NOPRINTON
02115 void H225_IsupPrivatePartyNumber::PrintOn(ostream & strm) const
02116 {
02117 int indent = strm.precision() + 2;
02118 strm << "{\n";
02119 strm << setw(indent+22) << "privateTypeOfNumber = " << setprecision(indent) << m_privateTypeOfNumber << '\n';
02120 strm << setw(indent+10) << "address = " << setprecision(indent) << m_address << '\n';
02121 strm << setw(indent-1) << setprecision(indent-2) << "}";
02122 }
02123 #endif
02124
02125
02126 PObject::Comparison H225_IsupPrivatePartyNumber::Compare(const PObject & obj) const
02127 {
02128 #ifndef PASN_LEANANDMEAN
02129 PAssert(PIsDescendant(&obj, H225_IsupPrivatePartyNumber), PInvalidCast);
02130 #endif
02131 const H225_IsupPrivatePartyNumber & other = (const H225_IsupPrivatePartyNumber &)obj;
02132
02133 Comparison result;
02134
02135 if ((result = m_privateTypeOfNumber.Compare(other.m_privateTypeOfNumber)) != EqualTo)
02136 return result;
02137 if ((result = m_address.Compare(other.m_address)) != EqualTo)
02138 return result;
02139
02140 return PASN_Sequence::Compare(other);
02141 }
02142
02143
02144 PINDEX H225_IsupPrivatePartyNumber::GetDataLength() const
02145 {
02146 PINDEX length = 0;
02147 length += m_privateTypeOfNumber.GetObjectLength();
02148 length += m_address.GetObjectLength();
02149 return length;
02150 }
02151
02152
02153 BOOL H225_IsupPrivatePartyNumber::Decode(PASN_Stream & strm)
02154 {
02155 if (!PreambleDecode(strm))
02156 return FALSE;
02157
02158 if (!m_privateTypeOfNumber.Decode(strm))
02159 return FALSE;
02160 if (!m_address.Decode(strm))
02161 return FALSE;
02162
02163 return UnknownExtensionsDecode(strm);
02164 }
02165
02166
02167 void H225_IsupPrivatePartyNumber::Encode(PASN_Stream & strm) const
02168 {
02169 PreambleEncode(strm);
02170
02171 m_privateTypeOfNumber.Encode(strm);
02172 m_address.Encode(strm);
02173
02174 UnknownExtensionsEncode(strm);
02175 }
02176
02177
02178 PObject * H225_IsupPrivatePartyNumber::Clone() const
02179 {
02180 #ifndef PASN_LEANANDMEAN
02181 PAssert(IsClass(H225_IsupPrivatePartyNumber::Class()), PInvalidCast);
02182 #endif
02183 return new H225_IsupPrivatePartyNumber(*this);
02184 }
02185
02186
02187
02188
02189
02190
02191 H225_AlternateTransportAddresses::H225_AlternateTransportAddresses(unsigned tag, PASN_Object::TagClass tagClass)
02192 : PASN_Sequence(tag, tagClass, 1, TRUE, 1)
02193 {
02194 }
02195
02196
02197 #ifndef PASN_NOPRINTON
02198 void H225_AlternateTransportAddresses::PrintOn(ostream & strm) const
02199 {
02200 int indent = strm.precision() + 2;
02201 strm << "{\n";
02202 if (HasOptionalField(e_annexE))
02203 strm << setw(indent+9) << "annexE = " << setprecision(indent) << m_annexE << '\n';
02204 if (HasOptionalField(e_sctp))
02205 strm << setw(indent+7) << "sctp = " << setprecision(indent) << m_sctp << '\n';
02206 strm << setw(indent-1) << setprecision(indent-2) << "}";
02207 }
02208 #endif
02209
02210
02211 PObject::Comparison H225_AlternateTransportAddresses::Compare(const PObject & obj) const
02212 {
02213 #ifndef PASN_LEANANDMEAN
02214 PAssert(PIsDescendant(&obj, H225_AlternateTransportAddresses), PInvalidCast);
02215 #endif
02216 const H225_AlternateTransportAddresses & other = (const H225_AlternateTransportAddresses &)obj;
02217
02218 Comparison result;
02219
02220 if ((result = m_annexE.Compare(other.m_annexE)) != EqualTo)
02221 return result;
02222
02223 return PASN_Sequence::Compare(other);
02224 }
02225
02226
02227 PINDEX H225_AlternateTransportAddresses::GetDataLength() const
02228 {
02229 PINDEX length = 0;
02230 if (HasOptionalField(e_annexE))
02231 length += m_annexE.GetObjectLength();
02232 return length;
02233 }
02234
02235
02236 BOOL H225_AlternateTransportAddresses::Decode(PASN_Stream & strm)
02237 {
02238 if (!PreambleDecode(strm))
02239 return FALSE;
02240
02241 if (HasOptionalField(e_annexE) && !m_annexE.Decode(strm))
02242 return FALSE;
02243 if (!KnownExtensionDecode(strm, e_sctp, m_sctp))
02244 return FALSE;
02245
02246 return UnknownExtensionsDecode(strm);
02247 }
02248
02249
02250 void H225_AlternateTransportAddresses::Encode(PASN_Stream & strm) const
02251 {
02252 PreambleEncode(strm);
02253
02254 if (HasOptionalField(e_annexE))
02255 m_annexE.Encode(strm);
02256 KnownExtensionEncode(strm, e_sctp, m_sctp);
02257
02258 UnknownExtensionsEncode(strm);
02259 }
02260
02261
02262 PObject * H225_AlternateTransportAddresses::Clone() const
02263 {
02264 #ifndef PASN_LEANANDMEAN
02265 PAssert(IsClass(H225_AlternateTransportAddresses::Class()), PInvalidCast);
02266 #endif
02267 return new H225_AlternateTransportAddresses(*this);
02268 }
02269
02270
02271
02272
02273
02274
02275 H225_AlternateGK::H225_AlternateGK(unsigned tag, PASN_Object::TagClass tagClass)
02276 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
02277 {
02278 m_priority.SetConstraints(PASN_Object::FixedConstraint, 0, 127);
02279 }
02280
02281
02282 #ifndef PASN_NOPRINTON
02283 void H225_AlternateGK::PrintOn(ostream & strm) const
02284 {
02285 int indent = strm.precision() + 2;
02286 strm << "{\n";
02287 strm << setw(indent+13) << "rasAddress = " << setprecision(indent) << m_rasAddress << '\n';
02288 if (HasOptionalField(e_gatekeeperIdentifier))
02289 strm << setw(indent+23) << "gatekeeperIdentifier = " << setprecision(indent) << m_gatekeeperIdentifier << '\n';
02290 strm << setw(indent+17) << "needToRegister = " << setprecision(indent) << m_needToRegister << '\n';
02291 strm << setw(indent+11) << "priority = " << setprecision(indent) << m_priority << '\n';
02292 strm << setw(indent-1) << setprecision(indent-2) << "}";
02293 }
02294 #endif
02295
02296
02297 PObject::Comparison H225_AlternateGK::Compare(const PObject & obj) const
02298 {
02299 #ifndef PASN_LEANANDMEAN
02300 PAssert(PIsDescendant(&obj, H225_AlternateGK), PInvalidCast);
02301 #endif
02302 const H225_AlternateGK & other = (const H225_AlternateGK &)obj;
02303
02304 Comparison result;
02305
02306 if ((result = m_rasAddress.Compare(other.m_rasAddress)) != EqualTo)
02307 return result;
02308 if ((result = m_gatekeeperIdentifier.Compare(other.m_gatekeeperIdentifier)) != EqualTo)
02309 return result;
02310 if ((result = m_needToRegister.Compare(other.m_needToRegister)) != EqualTo)
02311 return result;
02312 if ((result = m_priority.Compare(other.m_priority)) != EqualTo)
02313 return result;
02314
02315 return PASN_Sequence::Compare(other);
02316 }
02317
02318
02319 PINDEX H225_AlternateGK::GetDataLength() const
02320 {
02321 PINDEX length = 0;
02322 length += m_rasAddress.GetObjectLength();
02323 if (HasOptionalField(e_gatekeeperIdentifier))
02324 length += m_gatekeeperIdentifier.GetObjectLength();
02325 length += m_needToRegister.GetObjectLength();
02326 length += m_priority.GetObjectLength();
02327 return length;
02328 }
02329
02330
02331 BOOL H225_AlternateGK::Decode(PASN_Stream & strm)
02332 {
02333 if (!PreambleDecode(strm))
02334 return FALSE;
02335
02336 if (!m_rasAddress.Decode(strm))
02337 return FALSE;
02338 if (HasOptionalField(e_gatekeeperIdentifier) && !m_gatekeeperIdentifier.Decode(strm))
02339 return FALSE;
02340 if (!m_needToRegister.Decode(strm))
02341 return FALSE;
02342 if (!m_priority.Decode(strm))
02343 return FALSE;
02344
02345 return UnknownExtensionsDecode(strm);
02346 }
02347
02348
02349 void H225_AlternateGK::Encode(PASN_Stream & strm) const
02350 {
02351 PreambleEncode(strm);
02352
02353 m_rasAddress.Encode(strm);
02354 if (HasOptionalField(e_gatekeeperIdentifier))
02355 m_gatekeeperIdentifier.Encode(strm);
02356 m_needToRegister.Encode(strm);
02357 m_priority.Encode(strm);
02358
02359 UnknownExtensionsEncode(strm);
02360 }
02361
02362
02363 PObject * H225_AlternateGK::Clone() const
02364 {
02365 #ifndef PASN_LEANANDMEAN
02366 PAssert(IsClass(H225_AlternateGK::Class()), PInvalidCast);
02367 #endif
02368 return new H225_AlternateGK(*this);
02369 }
02370
02371
02372
02373
02374
02375
02376 H225_AltGKInfo::H225_AltGKInfo(unsigned tag, PASN_Object::TagClass tagClass)
02377 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
02378 {
02379 }
02380
02381
02382 #ifndef PASN_NOPRINTON
02383 void H225_AltGKInfo::PrintOn(ostream & strm) const
02384 {
02385 int indent = strm.precision() + 2;
02386 strm << "{\n";
02387 strm << setw(indent+22) << "alternateGatekeeper = " << setprecision(indent) << m_alternateGatekeeper << '\n';
02388 strm << setw(indent+19) << "altGKisPermanent = " << setprecision(indent) << m_altGKisPermanent << '\n';
02389 strm << setw(indent-1) << setprecision(indent-2) << "}";
02390 }
02391 #endif
02392
02393
02394 PObject::Comparison H225_AltGKInfo::Compare(const PObject & obj) const
02395 {
02396 #ifndef PASN_LEANANDMEAN
02397 PAssert(PIsDescendant(&obj, H225_AltGKInfo), PInvalidCast);
02398 #endif
02399 const H225_AltGKInfo & other = (const H225_AltGKInfo &)obj;
02400
02401 Comparison result;
02402
02403 if ((result = m_alternateGatekeeper.Compare(other.m_alternateGatekeeper)) != EqualTo)
02404 return result;
02405 if ((result = m_altGKisPermanent.Compare(other.m_altGKisPermanent)) != EqualTo)
02406 return result;
02407
02408 return PASN_Sequence::Compare(other);
02409 }
02410
02411
02412 PINDEX H225_AltGKInfo::GetDataLength() const
02413 {
02414 PINDEX length = 0;
02415 length += m_alternateGatekeeper.GetObjectLength();
02416 length += m_altGKisPermanent.GetObjectLength();
02417 return length;
02418 }
02419
02420
02421 BOOL H225_AltGKInfo::Decode(PASN_Stream & strm)
02422 {
02423 if (!PreambleDecode(strm))
02424 return FALSE;
02425
02426 if (!m_alternateGatekeeper.Decode(strm))
02427 return FALSE;
02428 if (!m_altGKisPermanent.Decode(strm))
02429 return FALSE;
02430
02431 return UnknownExtensionsDecode(strm);
02432 }
02433
02434
02435 void H225_AltGKInfo::Encode(PASN_Stream & strm) const
02436 {
02437 PreambleEncode(strm);
02438
02439 m_alternateGatekeeper.Encode(strm);
02440 m_altGKisPermanent.Encode(strm);
02441
02442 UnknownExtensionsEncode(strm);
02443 }
02444
02445
02446 PObject * H225_AltGKInfo::Clone() const
02447 {
02448 #ifndef PASN_LEANANDMEAN
02449 PAssert(IsClass(H225_AltGKInfo::Class()), PInvalidCast);
02450 #endif
02451 return new H225_AltGKInfo(*this);
02452 }
02453
02454
02455
02456
02457
02458
02459 H225_SecurityCapabilities::H225_SecurityCapabilities(unsigned tag, PASN_Object::TagClass tagClass)
02460 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
02461 {
02462 }
02463
02464
02465 #ifndef PASN_NOPRINTON
02466 void H225_SecurityCapabilities::PrintOn(ostream & strm) const
02467 {
02468 int indent = strm.precision() + 2;
02469 strm << "{\n";
02470 if (HasOptionalField(e_nonStandard))
02471 strm << setw(indent+14) << "nonStandard = " << setprecision(indent) << m_nonStandard << '\n';
02472 strm << setw(indent+13) << "encryption = " << setprecision(indent) << m_encryption << '\n';
02473 strm << setw(indent+16) << "authenticaton = " << setprecision(indent) << m_authenticaton << '\n';
02474 strm << setw(indent+12) << "integrity = " << setprecision(indent) << m_integrity << '\n';
02475 strm << setw(indent-1) << setprecision(indent-2) << "}";
02476 }
02477 #endif
02478
02479
02480 PObject::Comparison H225_SecurityCapabilities::Compare(const PObject & obj) const
02481 {
02482 #ifndef PASN_LEANANDMEAN
02483 PAssert(PIsDescendant(&obj, H225_SecurityCapabilities), PInvalidCast);
02484 #endif
02485 const H225_SecurityCapabilities & other = (const H225_SecurityCapabilities &)obj;
02486
02487 Comparison result;
02488
02489 if ((result = m_nonStandard.Compare(other.m_nonStandard)) != EqualTo)
02490 return result;
02491 if ((result = m_encryption.Compare(other.m_encryption)) != EqualTo)
02492 return result;
02493 if ((result = m_authenticaton.Compare(other.m_authenticaton)) != EqualTo)
02494 return result;
02495 if ((result = m_integrity.Compare(other.m_integrity)) != EqualTo)
02496 return result;
02497
02498 return PASN_Sequence::Compare(other);
02499 }
02500
02501
02502 PINDEX H225_SecurityCapabilities::GetDataLength() const
02503 {
02504 PINDEX length = 0;
02505 if (HasOptionalField(e_nonStandard))
02506 length += m_nonStandard.GetObjectLength();
02507 length += m_encryption.GetObjectLength();
02508 length += m_authenticaton.GetObjectLength();
02509 length += m_integrity.GetObjectLength();
02510 return length;
02511 }
02512
02513
02514 BOOL H225_SecurityCapabilities::Decode(PASN_Stream & strm)
02515 {
02516 if (!PreambleDecode(strm))
02517 return FALSE;
02518
02519 if (HasOptionalField(e_nonStandard) && !m_nonStandard.Decode(strm))
02520 return FALSE;
02521 if (!m_encryption.Decode(strm))
02522 return FALSE;
02523 if (!m_authenticaton.Decode(strm))
02524 return FALSE;
02525 if (!m_integrity.Decode(strm))
02526 return FALSE;
02527
02528 return UnknownExtensionsDecode(strm);
02529 }
02530
02531
02532 void H225_SecurityCapabilities::Encode(PASN_Stream & strm) const
02533 {
02534 PreambleEncode(strm);
02535
02536 if (HasOptionalField(e_nonStandard))
02537 m_nonStandard.Encode(strm);
02538 m_encryption.Encode(strm);
02539 m_authenticaton.Encode(strm);
02540 m_integrity.Encode(strm);
02541
02542 UnknownExtensionsEncode(strm);
02543 }
02544
02545
02546 PObject * H225_SecurityCapabilities::Clone() const
02547 {
02548 #ifndef PASN_LEANANDMEAN
02549 PAssert(IsClass(H225_SecurityCapabilities::Class()), PInvalidCast);
02550 #endif
02551 return new H225_SecurityCapabilities(*this);
02552 }
02553
02554
02555
02556
02557
02558
02559 H225_QseriesOptions::H225_QseriesOptions(unsigned tag, PASN_Object::TagClass tagClass)
02560 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
02561 {
02562 }
02563
02564
02565 #ifndef PASN_NOPRINTON
02566 void H225_QseriesOptions::PrintOn(ostream & strm) const
02567 {
02568 int indent = strm.precision() + 2;
02569 strm << "{\n";
02570 strm << setw(indent+11) << "q932Full = " << setprecision(indent) << m_q932Full << '\n';
02571 strm << setw(indent+11) << "q951Full = " << setprecision(indent) << m_q951Full << '\n';
02572 strm << setw(indent+11) << "q952Full = " << setprecision(indent) << m_q952Full << '\n';
02573 strm << setw(indent+11) << "q953Full = " << setprecision(indent) << m_q953Full << '\n';
02574 strm << setw(indent+11) << "q955Full = " << setprecision(indent) << m_q955Full << '\n';
02575 strm << setw(indent+11) << "q956Full = " << setprecision(indent) << m_q956Full << '\n';
02576 strm << setw(indent+11) << "q957Full = " << setprecision(indent) << m_q957Full << '\n';
02577 strm << setw(indent+11) << "q954Info = " << setprecision(indent) << m_q954Info << '\n';
02578 strm << setw(indent-1) << setprecision(indent-2) << "}";
02579 }
02580 #endif
02581
02582
02583 PObject::Comparison H225_QseriesOptions::Compare(const PObject & obj) const
02584 {
02585 #ifndef PASN_LEANANDMEAN
02586 PAssert(PIsDescendant(&obj, H225_QseriesOptions), PInvalidCast);
02587 #endif
02588 const H225_QseriesOptions & other = (const H225_QseriesOptions &)obj;
02589
02590 Comparison result;
02591
02592 if ((result = m_q932Full.Compare(other.m_q932Full)) != EqualTo)
02593 return result;
02594 if ((result = m_q951Full.Compare(other.m_q951Full)) != EqualTo)
02595 return result;
02596 if ((result = m_q952Full.Compare(other.m_q952Full)) != EqualTo)
02597 return result;
02598 if ((result = m_q953Full.Compare(other.m_q953Full)) != EqualTo)
02599 return result;
02600 if ((result = m_q955Full.Compare(other.m_q955Full)) != EqualTo)
02601 return result;
02602 if ((result = m_q956Full.Compare(other.m_q956Full)) != EqualTo)
02603 return result;
02604 if ((result = m_q957Full.Compare(other.m_q957Full)) != EqualTo)
02605 return result;
02606 if ((result = m_q954Info.Compare(other.m_q954Info)) != EqualTo)
02607 return result;
02608
02609 return PASN_Sequence::Compare(other);
02610 }
02611
02612
02613 PINDEX H225_QseriesOptions::GetDataLength() const
02614 {
02615 PINDEX length = 0;
02616 length += m_q932Full.GetObjectLength();
02617 length += m_q951Full.GetObjectLength();
02618 length += m_q952Full.GetObjectLength();
02619 length += m_q953Full.GetObjectLength();
02620 length += m_q955Full.GetObjectLength();
02621 length += m_q956Full.GetObjectLength();
02622 length += m_q957Full.GetObjectLength();
02623 length += m_q954Info.GetObjectLength();
02624 return length;
02625 }
02626
02627
02628 BOOL H225_QseriesOptions::Decode(PASN_Stream & strm)
02629 {
02630 if (!PreambleDecode(strm))
02631 return FALSE;
02632
02633 if (!m_q932Full.Decode(strm))
02634 return FALSE;
02635 if (!m_q951Full.Decode(strm))
02636 return FALSE;
02637 if (!m_q952Full.Decode(strm))
02638 return FALSE;
02639 if (!m_q953Full.Decode(strm))
02640 return FALSE;
02641 if (!m_q955Full.Decode(strm))
02642 return FALSE;
02643 if (!m_q956Full.Decode(strm))
02644 return FALSE;
02645 if (!m_q957Full.Decode(strm))
02646 return FALSE;
02647 if (!m_q954Info.Decode(strm))
02648 return FALSE;
02649
02650 return UnknownExtensionsDecode(strm);
02651 }
02652
02653
02654 void H225_QseriesOptions::Encode(PASN_Stream & strm) const
02655 {
02656 PreambleEncode(strm);
02657
02658 m_q932Full.Encode(strm);
02659 m_q951Full.Encode(strm);
02660 m_q952Full.Encode(strm);
02661 m_q953Full.Encode(strm);
02662 m_q955Full.Encode(strm);
02663 m_q956Full.Encode(strm);
02664 m_q957Full.Encode(strm);
02665 m_q954Info.Encode(strm);
02666
02667 UnknownExtensionsEncode(strm);
02668 }
02669
02670
02671 PObject * H225_QseriesOptions::Clone() const
02672 {
02673 #ifndef PASN_LEANANDMEAN
02674 PAssert(IsClass(H225_QseriesOptions::Class()), PInvalidCast);
02675 #endif
02676 return new H225_QseriesOptions(*this);
02677 }
02678
02679
02680
02681
02682
02683
02684 H225_DataRate::H225_DataRate(unsigned tag, PASN_Object::TagClass tagClass)
02685 : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
02686 {
02687 m_channelMultiplier.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
02688 }
02689
02690
02691 #ifndef PASN_NOPRINTON
02692 void H225_DataRate::PrintOn(ostream & strm) const
02693 {
02694 int indent = strm.precision() + 2;
02695 strm << "{\n";
02696 if (HasOptionalField(e_nonStandardData))
02697 strm << setw(indent+18) << "nonStandardData = " << setprecision(indent) << m_nonStandardData << '\n';
02698 strm << setw(indent+14) << "channelRate = " << setprecision(indent) << m_channelRate << '\n';
02699 if (HasOptionalField(e_channelMultiplier))
02700 strm << setw(indent+20) << "channelMultiplier = " << setprecision(indent) << m_channelMultiplier << '\n';
02701 strm << setw(indent-1) << setprecision(indent-2) << "}";
02702 }
02703 #endif
02704
02705
02706 PObject::Comparison H225_DataRate::Compare(const PObject & obj) const
02707 {
02708 #ifndef PASN_LEANANDMEAN
02709 PAssert(PIsDescendant(&obj, H225_DataRate), PInvalidCast);
02710 #endif
02711 const H225_DataRate & other = (const H225_DataRate &)obj;
02712
02713 Comparison result;
02714
02715 if ((result = m_nonStandardData.Compare(other.m_nonStandardData)) != EqualTo)
02716 return result;
02717 if ((result = m_channelRate.Compare(other.m_channelRate)) != EqualTo)
02718 return result;
02719 if ((result = m_channelMultiplier.Compare(other.m_channelMultiplier)) != EqualTo)
02720 return result;
02721
02722 return PASN_Sequence::Compare(other);
02723 }
02724
02725
02726 PINDEX H225_DataRate::GetDataLength() const
02727 {
02728 PINDEX length = 0;
02729 if (HasOptionalField(e_nonStandardData))
02730 length += m_nonStandardData.GetObjectLength();
02731 length += m_channelRate.GetObjectLength();
02732 if (HasOptionalField(e_channelMultiplier))
02733 length += m_channelMultiplier.GetObjectLength();
02734 return length;
02735 }
02736
02737
02738 BOOL H225_DataRate::Decode(PASN_Stream & strm)
02739 {
02740 if (!PreambleDecode(strm))
02741 return FALSE;
02742
02743 if (HasOptionalField(e_nonStandardData) && !m_nonStandardData.Decode(strm))
02744 return FALSE;
02745 if (!m_channelRate.Decode(strm))
02746 return FALSE;
02747 if (HasOptionalField(e_channelMultiplier) && !m_channelMultiplier.Decode(strm))
02748 return FALSE;
02749
02750 return UnknownExtensionsDecode(strm);
02751 }
02752
02753
02754 void H225_DataRate::Encode(PASN_Stream & strm) const
02755 {
02756 PreambleEncode(strm);
02757
02758 if (HasOptionalField(e_nonStandardData))
02759 m_nonStandardData.Encode(strm);
02760 m_channelRate.Encode(strm);
02761 if (HasOptionalField(e_channelMultiplier))
02762 m_channelMultiplier.Encode(strm);
02763
02764 UnknownExtensionsEncode(strm);
02765 }
02766
02767
02768 PObject * H225_DataRate::Clone() const
02769 {
02770 #ifndef PASN_LEANANDMEAN
02771 PAssert(IsClass(H225_DataRate::Class()), PInvalidCast);
02772 #endif
02773 return new H225_DataRate(*this);
02774 }
02775
02776
02777
02778
02779
02780
02781 H225_SupportedPrefix::H225_SupportedPrefix(unsigned tag, PASN_Object::TagClass tagClass)
02782 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
02783 {
02784 }
02785
02786
02787 #ifndef PASN_NOPRINTON
02788 void H225_SupportedPrefix::PrintOn(ostream & strm) const
02789 {
02790 int indent = strm.precision() + 2;
02791 strm << "{\n";
02792 if (HasOptionalField(e_nonStandardData))
02793 strm << setw(indent+18) << "nonStandardData = " << setprecision(indent) << m_nonStandardData << '\n';
02794 strm << setw(indent+9) << "prefix = " << setprecision(indent) << m_prefix << '\n';
02795 strm << setw(indent-1) << setprecision(indent-2) << "}";
02796 }
02797 #endif
02798
02799
02800 PObject::Comparison H225_SupportedPrefix::Compare(const PObject & obj) const
02801 {
02802 #ifndef PASN_LEANANDMEAN
02803 PAssert(PIsDescendant(&obj, H225_SupportedPrefix), PInvalidCast);
02804 #endif
02805 const H225_SupportedPrefix & other = (const H225_SupportedPrefix &)obj;
02806
02807 Comparison result;
02808
02809 if ((result = m_nonStandardData.Compare(other.m_nonStandardData)) != EqualTo)
02810 return result;
02811 if ((result = m_prefix.Compare(other.m_prefix)) != EqualTo)
02812 return result;
02813
02814 return PASN_Sequence::Compare(other);
02815 }
02816
02817
02818 PINDEX H225_SupportedPrefix::GetDataLength() const
02819 {
02820 PINDEX length = 0;
02821 if (HasOptionalField(e_nonStandardData))
02822 length += m_nonStandardData.GetObjectLength();
02823 length += m_prefix.GetObjectLength();
02824 return length;
02825 }
02826
02827
02828 BOOL H225_SupportedPrefix::Decode(PASN_Stream & strm)
02829 {
02830 if (!PreambleDecode(strm))
02831 return FALSE;
02832
02833 if (HasOptionalField(e_nonStandardData) && !m_nonStandardData.Decode(strm))
02834 return FALSE;
02835 if (!m_prefix.Decode(strm))
02836 return FALSE;
02837
02838 return UnknownExtensionsDecode(strm);
02839 }
02840
02841
02842 void H225_SupportedPrefix::Encode(PASN_Stream & strm) const
02843 {
02844 PreambleEncode(strm);
02845
02846 if (HasOptionalField(e_nonStandardData))
02847 m_nonStandardData.Encode(strm);
02848 m_prefix.Encode(strm);
02849
02850 UnknownExtensionsEncode(strm);
02851 }
02852
02853
02854 PObject * H225_SupportedPrefix::Clone() const
02855 {
02856 #ifndef PASN_LEANANDMEAN
02857 PAssert(IsClass(H225_SupportedPrefix::Class()), PInvalidCast);
02858 #endif
02859 return new H225_SupportedPrefix(*this);
02860 }
02861
02862
02863
02864
02865
02866
02867 H225_CapacityReportingSpecification::H225_CapacityReportingSpecification(unsigned tag, PASN_Object::TagClass tagClass)
02868 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
02869 {
02870 }
02871
02872
02873 #ifndef PASN_NOPRINTON
02874 void H225_CapacityReportingSpecification::PrintOn(ostream & strm) const
02875 {
02876 int indent = strm.precision() + 2;
02877 strm << "{\n";
02878 strm << setw(indent+7) << "when = " << setprecision(indent) << m_when << '\n';
02879 strm << setw(indent-1) << setprecision(indent-2) << "}";
02880 }
02881 #endif
02882
02883
02884 PObject::Comparison H225_CapacityReportingSpecification::Compare(const PObject & obj) const
02885 {
02886 #ifndef PASN_LEANANDMEAN
02887 PAssert(PIsDescendant(&obj, H225_CapacityReportingSpecification), PInvalidCast);
02888 #endif
02889 const H225_CapacityReportingSpecification & other = (const H225_CapacityReportingSpecification &)obj;
02890
02891 Comparison result;
02892
02893 if ((result = m_when.Compare(other.m_when)) != EqualTo)
02894 return result;
02895
02896 return PASN_Sequence::Compare(other);
02897 }
02898
02899
02900 PINDEX H225_CapacityReportingSpecification::GetDataLength() const
02901 {
02902 PINDEX length = 0;
02903 length += m_when.GetObjectLength();
02904 return length;
02905 }
02906
02907
02908 BOOL H225_CapacityReportingSpecification::Decode(PASN_Stream & strm)
02909 {
02910 if (!PreambleDecode(strm))
02911 return FALSE;
02912
02913 if (!m_when.Decode(strm))
02914 return FALSE;
02915
02916 return UnknownExtensionsDecode(strm);
02917 }
02918
02919
02920 void H225_CapacityReportingSpecification::Encode(PASN_Stream & strm) const
02921 {
02922 PreambleEncode(strm);
02923
02924 m_when.Encode(strm);
02925
02926 UnknownExtensionsEncode(strm);
02927 }
02928
02929
02930 PObject * H225_CapacityReportingSpecification::Clone() const
02931 {
02932 #ifndef PASN_LEANANDMEAN
02933 PAssert(IsClass(H225_CapacityReportingSpecification::Class()), PInvalidCast);
02934 #endif
02935 return new H225_CapacityReportingSpecification(*this);
02936 }
02937
02938
02939
02940
02941
02942
02943 H225_CallCapacityInfo::H225_CallCapacityInfo(unsigned tag, PASN_Object::TagClass tagClass)
02944 : PASN_Sequence(tag, tagClass, 11, TRUE, 1)
02945 {
02946 }
02947
02948
02949 #ifndef PASN_NOPRINTON
02950 void H225_CallCapacityInfo::PrintOn(ostream & strm) const
02951 {
02952 int indent = strm.precision() + 2;
02953 strm << "{\n";
02954 if (HasOptionalField(e_voiceGwCallsAvailable))
02955 strm << setw(indent+24) << "voiceGwCallsAvailable = " << setprecision(indent) << m_voiceGwCallsAvailable << '\n';
02956 if (HasOptionalField(e_h310GwCallsAvailable))
02957 strm << setw(indent+23) << "h310GwCallsAvailable = " << setprecision(indent) << m_h310GwCallsAvailable << '\n';
02958 if (HasOptionalField(e_h320GwCallsAvailable))
02959 strm << setw(indent+23) << "h320GwCallsAvailable = " << setprecision(indent) << m_h320GwCallsAvailable << '\n';
02960 if (HasOptionalField(e_h321GwCallsAvailable))
02961 strm << setw(indent+23) << "h321GwCallsAvailable = " << setprecision(indent) << m_h321GwCallsAvailable << '\n';
02962 if (HasOptionalField(e_h322GwCallsAvailable))
02963 strm << setw(indent+23) << "h322GwCallsAvailable = " << setprecision(indent) << m_h322GwCallsAvailable << '\n';
02964 if (HasOptionalField(e_h323GwCallsAvailable))
02965 strm << setw(indent+23) << "h323GwCallsAvailable = " << setprecision(indent) << m_h323GwCallsAvailable << '\n';
02966 if (HasOptionalField(e_h324GwCallsAvailable))
02967 strm << setw(indent+23) << "h324GwCallsAvailable = " << setprecision(indent) << m_h324GwCallsAvailable << '\n';
02968 if (HasOptionalField(e_t120OnlyGwCallsAvailable))
02969 strm << setw(indent+27) << "t120OnlyGwCallsAvailable = " << setprecision(indent) << m_t120OnlyGwCallsAvailable << '\n';
02970 if (HasOptionalField(e_t38FaxAnnexbOnlyGwCallsAvailable))
02971 strm << setw(indent+35) << "t38FaxAnnexbOnlyGwCallsAvailable = " << setprecision(indent) << m_t38FaxAnnexbOnlyGwCallsAvailable << '\n';
02972 if (HasOptionalField(e_terminalCallsAvailable))
02973 strm << setw(indent+25) << "terminalCallsAvailable = " << setprecision(indent) << m_terminalCallsAvailable << '\n';
02974 if (HasOptionalField(e_mcuCallsAvailable))
02975 strm << setw(indent+20) << "mcuCallsAvailable = " << setprecision(indent) << m_mcuCallsAvailable << '\n';
02976 if (HasOptionalField(e_sipGwCallsAvailable))
02977 strm << setw(indent+22) << "sipGwCallsAvailable = " << setprecision(indent) << m_sipGwCallsAvailable << '\n';
02978 strm << setw(indent-1) << setprecision(indent-2) << "}";
02979 }
02980 #endif
02981
02982
02983 PObject::Comparison H225_CallCapacityInfo::Compare(const PObject & obj) const
02984 {
02985 #ifndef PASN_LEANANDMEAN
02986 PAssert(PIsDescendant(&obj, H225_CallCapacityInfo), PInvalidCast);
02987 #endif
02988 const H225_CallCapacityInfo & other = (const H225_CallCapacityInfo &)obj;
02989
02990 Comparison result;
02991
02992 if ((result = m_voiceGwCallsAvailable.Compare(other.m_voiceGwCallsAvailable)) != EqualTo)
02993 return result;
02994 if ((result = m_h310GwCallsAvailable.Compare(other.m_h310GwCallsAvailable)) != EqualTo)
02995 return result;
02996 if ((result = m_h320GwCallsAvailable.Compare(other.m_h320GwCallsAvailable)) != EqualTo)
02997 return result;
02998 if ((result = m_h321GwCallsAvailable.Compare(other.m_h321GwCallsAvailable)) != EqualTo)
02999 return result;
03000 if ((result = m_h322GwCallsAvailable.Compare(other.m_h322GwCallsAvailable)) != EqualTo)
03001 return result;
03002 if ((result = m_h323GwCallsAvailable.Compare(other.m_h323GwCallsAvailable)) != EqualTo)
03003 return result;
03004 if ((result = m_h324GwCallsAvailable.Compare(other.m_h324GwCallsAvailable)) != EqualTo)
03005 return result;
03006 if ((result = m_t120OnlyGwCallsAvailable.Compare(other.m_t120OnlyGwCallsAvailable)) != EqualTo)
03007 return result;
03008 if ((result = m_t38FaxAnnexbOnlyGwCallsAvailable.Compare(other.m_t38FaxAnnexbOnlyGwCallsAvailable)) != EqualTo)
03009 return result;
03010 if ((result = m_terminalCallsAvailable.Compare(other.m_terminalCallsAvailable)) != EqualTo)
03011 return result;
03012 if ((result = m_mcuCallsAvailable.Compare(other.m_mcuCallsAvailable)) != EqualTo)
03013 return result;
03014
03015 return PASN_Sequence::Compare(other);
03016 }
03017
03018
03019 PINDEX H225_CallCapacityInfo::GetDataLength() const
03020 {
03021 PINDEX length = 0;
03022 if (HasOptionalField(e_voiceGwCallsAvailable))
03023 length += m_voiceGwCallsAvailable.GetObjectLength();
03024 if (HasOptionalField(e_h310GwCallsAvailable))
03025 length += m_h310GwCallsAvailable.GetObjectLength();
03026 if (HasOptionalField(e_h320GwCallsAvailable))
03027 length += m_h320GwCallsAvailable.GetObjectLength();
03028 if (HasOptionalField(e_h321GwCallsAvailable))
03029 length += m_h321GwCallsAvailable.GetObjectLength();
03030 if (HasOptionalField(e_h322GwCallsAvailable))
03031 length += m_h322GwCallsAvailable.GetObjectLength();
03032 if (HasOptionalField(e_h323GwCallsAvailable))
03033 length += m_h323GwCallsAvailable.GetObjectLength();
03034 if (HasOptionalField(e_h324GwCallsAvailable))
03035 length += m_h324GwCallsAvailable.GetObjectLength();
03036 if (HasOptionalField(e_t120OnlyGwCallsAvailable))
03037 length += m_t120OnlyGwCallsAvailable.GetObjectLength();
03038 if (HasOptionalField(e_t38FaxAnnexbOnlyGwCallsAvailable))
03039 length += m_t38FaxAnnexbOnlyGwCallsAvailable.GetObjectLength();
03040 if (HasOptionalField(e_terminalCallsAvailable))
03041 length += m_terminalCallsAvailable.GetObjectLength();
03042 if (HasOptionalField(e_mcuCallsAvailable))
03043 length += m_mcuCallsAvailable.GetObjectLength();
03044 return length;
03045 }
03046
03047
03048 BOOL H225_CallCapacityInfo::Decode(PASN_Stream & strm)
03049 {
03050 if (!PreambleDecode(strm))
03051 return FALSE;
03052
03053 if (HasOptionalField(e_voiceGwCallsAvailable) && !m_voiceGwCallsAvailable.Decode(strm))
03054 return FALSE;
03055 if (HasOptionalField(e_h310GwCallsAvailable) && !m_h310GwCallsAvailable.Decode(strm))
03056 return FALSE;
03057 if (HasOptionalField(e_h320GwCallsAvailable) && !m_h320GwCallsAvailable.Decode(strm))
03058 return FALSE;
03059 if (HasOptionalField(e_h321GwCallsAvailable) && !m_h321GwCallsAvailable.Decode(strm))
03060 return FALSE;
03061 if (HasOptionalField(e_h322GwCallsAvailable) && !m_h322GwCallsAvailable.Decode(strm))
03062 return FALSE;
03063 if (HasOptionalField(e_h323GwCallsAvailable) && !m_h323GwCallsAvailable.Decode(strm))
03064 return FALSE;
03065 if (HasOptionalField(e_h324GwCallsAvailable) && !m_h324GwCallsAvailable.Decode(strm))
03066 return FALSE;
03067 if (HasOptionalField(e_t120OnlyGwCallsAvailable) && !m_t120OnlyGwCallsAvailable.Decode(strm))
03068 return FALSE;
03069 if (HasOptionalField(e_t38FaxAnnexbOnlyGwCallsAvailable) && !m_t38FaxAnnexbOnlyGwCallsAvailable.Decode(strm))
03070 return FALSE;
03071 if (HasOptionalField(e_terminalCallsAvailable) && !m_terminalCallsAvailable.Decode(strm))
03072 return FALSE;
03073 if (HasOptionalField(e_mcuCallsAvailable) && !m_mcuCallsAvailable.Decode(strm))
03074 return FALSE;
03075 if (!KnownExtensionDecode(strm, e_sipGwCallsAvailable, m_sipGwCallsAvailable))
03076 return FALSE;
03077
03078 return UnknownExtensionsDecode(strm);
03079 }
03080
03081
03082 void H225_CallCapacityInfo::Encode(PASN_Stream & strm) const
03083 {
03084 PreambleEncode(strm);
03085
03086 if (HasOptionalField(e_voiceGwCallsAvailable))
03087 m_voiceGwCallsAvailable.Encode(strm);
03088 if (HasOptionalField(e_h310GwCallsAvailable))
03089 m_h310GwCallsAvailable.Encode(strm);
03090 if (HasOptionalField(e_h320GwCallsAvailable))
03091 m_h320GwCallsAvailable.Encode(strm);
03092 if (HasOptionalField(e_h321GwCallsAvailable))
03093 m_h321GwCallsAvailable.Encode(strm);
03094 if (HasOptionalField(e_h322GwCallsAvailable))
03095 m_h322GwCallsAvailable.Encode(strm);
03096 if (HasOptionalField(e_h323GwCallsAvailable))
03097 m_h323GwCallsAvailable.Encode(strm);
03098 if (HasOptionalField(e_h324GwCallsAvailable))
03099 m_h324GwCallsAvailable.Encode(strm);
03100 if (HasOptionalField(e_t120OnlyGwCallsAvailable))
03101 m_t120OnlyGwCallsAvailable.Encode(strm);
03102 if (HasOptionalField(e_t38FaxAnnexbOnlyGwCallsAvailable))
03103 m_t38FaxAnnexbOnlyGwCallsAvailable.Encode(strm);
03104 if (HasOptionalField(e_terminalCallsAvailable))
03105 m_terminalCallsAvailable.Encode(strm);
03106 if (HasOptionalField(e_mcuCallsAvailable))
03107 m_mcuCallsAvailable.Encode(strm);
03108 KnownExtensionEncode(strm, e_sipGwCallsAvailable, m_sipGwCallsAvailable);
03109
03110 UnknownExtensionsEncode(strm);
03111 }
03112
03113
03114 PObject * H225_CallCapacityInfo::Clone() const
03115 {
03116 #ifndef PASN_LEANANDMEAN
03117 PAssert(IsClass(H225_CallCapacityInfo::Class()), PInvalidCast);
03118 #endif
03119 return new H225_CallCapacityInfo(*this);
03120 }
03121
03122
03123
03124
03125
03126
03127 H225_CallsAvailable::H225_CallsAvailable(unsigned tag, PASN_Object::TagClass tagClass)
03128 : PASN_Sequence(tag, tagClass, 1, TRUE, 1)
03129 {
03130 m_calls.SetConstraints(PASN_Object::FixedConstraint, 0, 4294967295U);
03131 m_group.SetConstraints(PASN_Object::FixedConstraint, 1, 128);
03132 }
03133
03134
03135 #ifndef PASN_NOPRINTON
03136 void H225_CallsAvailable::PrintOn(ostream & strm) const
03137 {
03138 int indent = strm.precision() + 2;
03139 strm << "{\n";
03140 strm << setw(indent+8) << "calls = " << setprecision(indent) << m_calls << '\n';
03141 if (HasOptionalField(e_group))
03142 strm << setw(indent+8) << "group = " << setprecision(indent) << m_group << '\n';
03143 if (HasOptionalField(e_carrier))
03144 strm << setw(indent+10) << "carrier = " << setprecision(indent) << m_carrier << '\n';
03145 strm << setw(indent-1) << setprecision(indent-2) << "}";
03146 }
03147 #endif
03148
03149
03150 PObject::Comparison H225_CallsAvailable::Compare(const PObject & obj) const
03151 {
03152 #ifndef PASN_LEANANDMEAN
03153 PAssert(PIsDescendant(&obj, H225_CallsAvailable), PInvalidCast);
03154 #endif
03155 const H225_CallsAvailable & other = (const H225_CallsAvailable &)obj;
03156
03157 Comparison result;
03158
03159 if ((result = m_calls.Compare(other.m_calls)) != EqualTo)
03160 return result;
03161 if ((result = m_group.Compare(other.m_group)) != EqualTo)
03162 return result;
03163
03164 return PASN_Sequence::Compare(other);
03165 }
03166
03167
03168 PINDEX H225_CallsAvailable::GetDataLength() const
03169 {
03170 PINDEX length = 0;
03171 length += m_calls.GetObjectLength();
03172 if (HasOptionalField(e_group))
03173 length += m_group.GetObjectLength();
03174 return length;
03175 }
03176
03177
03178 BOOL H225_CallsAvailable::Decode(PASN_Stream & strm)
03179 {
03180 if (!PreambleDecode(strm))
03181 return FALSE;
03182
03183 if (!m_calls.Decode(strm))
03184 return FALSE;
03185 if (HasOptionalField(e_group) && !m_group.Decode(strm))
03186 return FALSE;
03187 if (!KnownExtensionDecode(strm, e_carrier, m_carrier))
03188 return FALSE;
03189
03190 return UnknownExtensionsDecode(strm);
03191 }
03192
03193
03194 void H225_CallsAvailable::Encode(PASN_Stream & strm) const
03195 {
03196 PreambleEncode(strm);
03197
03198 m_calls.Encode(strm);
03199 if (HasOptionalField(e_group))
03200 m_group.Encode(strm);
03201 KnownExtensionEncode(strm, e_carrier, m_carrier);
03202
03203 UnknownExtensionsEncode(strm);
03204 }
03205
03206
03207 PObject * H225_CallsAvailable::Clone() const
03208 {
03209 #ifndef PASN_LEANANDMEAN
03210 PAssert(IsClass(H225_CallsAvailable::Class()), PInvalidCast);
03211 #endif
03212 return new H225_CallsAvailable(*this);
03213 }
03214
03215
03216
03217
03218
03219
03220 H225_CicInfo::H225_CicInfo(unsigned tag, PASN_Object::TagClass tagClass)
03221 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
03222 {
03223 m_pointCode.SetConstraints(PASN_Object::FixedConstraint, 2, 5);
03224 }
03225
03226
03227 #ifndef PASN_NOPRINTON
03228 void H225_CicInfo::PrintOn(ostream & strm) const
03229 {
03230 int indent = strm.precision() + 2;
03231 strm << "{\n";
03232 strm << setw(indent+6) << "cic = " << setprecision(indent) << m_cic << '\n';
03233 strm << setw(indent+12) << "pointCode = " << setprecision(indent) << m_pointCode << '\n';
03234 strm << setw(indent-1) << setprecision(indent-2) << "}";
03235 }
03236 #endif
03237
03238
03239 PObject::Comparison H225_CicInfo::Compare(const PObject & obj) const
03240 {
03241 #ifndef PASN_LEANANDMEAN
03242 PAssert(PIsDescendant(&obj, H225_CicInfo), PInvalidCast);
03243 #endif
03244 const H225_CicInfo & other = (const H225_CicInfo &)obj;
03245
03246 Comparison result;
03247
03248 if ((result = m_cic.Compare(other.m_cic)) != EqualTo)
03249 return result;
03250 if ((result = m_pointCode.Compare(other.m_pointCode)) != EqualTo)
03251 return result;
03252
03253 return PASN_Sequence::Compare(other);
03254 }
03255
03256
03257 PINDEX H225_CicInfo::GetDataLength() const
03258 {
03259 PINDEX length = 0;
03260 length += m_cic.GetObjectLength();
03261 length += m_pointCode.GetObjectLength();
03262 return length;
03263 }
03264
03265
03266 BOOL H225_CicInfo::Decode(PASN_Stream & strm)
03267 {
03268 if (!PreambleDecode(strm))
03269 return FALSE;
03270
03271 if (!m_cic.Decode(strm))
03272 return FALSE;
03273 if (!m_pointCode.Decode(strm))
03274 return FALSE;
03275
03276 return UnknownExtensionsDecode(strm);
03277 }
03278
03279
03280 void H225_CicInfo::Encode(PASN_Stream & strm) const
03281 {
03282 PreambleEncode(strm);
03283
03284 m_cic.Encode(strm);
03285 m_pointCode.Encode(strm);
03286
03287 UnknownExtensionsEncode(strm);
03288 }
03289
03290
03291 PObject * H225_CicInfo::Clone() const
03292 {
03293 #ifndef PASN_LEANANDMEAN
03294 PAssert(IsClass(H225_CicInfo::Class()), PInvalidCast);
03295 #endif
03296 return new H225_CicInfo(*this);
03297 }
03298
03299
03300
03301
03302
03303
03304 H225_GroupID::H225_GroupID(unsigned tag, PASN_Object::TagClass tagClass)
03305 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
03306 {
03307 m_group.SetConstraints(PASN_Object::FixedConstraint, 1, 128);
03308 }
03309
03310
03311 #ifndef PASN_NOPRINTON
03312 void H225_GroupID::PrintOn(ostream & strm) const
03313 {
03314 int indent = strm.precision() + 2;
03315 strm << "{\n";
03316 if (HasOptionalField(e_member))
03317 strm << setw(indent+9) << "member = " << setprecision(indent) << m_member << '\n';
03318 strm << setw(indent+8) << "group = " << setprecision(indent) << m_group << '\n';
03319 strm << setw(indent-1) << setprecision(indent-2) << "}";
03320 }
03321 #endif
03322
03323
03324 PObject::Comparison H225_GroupID::Compare(const PObject & obj) const
03325 {
03326 #ifndef PASN_LEANANDMEAN
03327 PAssert(PIsDescendant(&obj, H225_GroupID), PInvalidCast);
03328 #endif
03329 const H225_GroupID & other = (const H225_GroupID &)obj;
03330
03331 Comparison result;
03332
03333 if ((result = m_member.Compare(other.m_member)) != EqualTo)
03334 return result;
03335 if ((result = m_group.Compare(other.m_group)) != EqualTo)
03336 return result;
03337
03338 return PASN_Sequence::Compare(other);
03339 }
03340
03341
03342 PINDEX H225_GroupID::GetDataLength() const
03343 {
03344 PINDEX length = 0;
03345 if (HasOptionalField(e_member))
03346 length += m_member.GetObjectLength();
03347 length += m_group.GetObjectLength();
03348 return length;
03349 }
03350
03351
03352 BOOL H225_GroupID::Decode(PASN_Stream & strm)
03353 {
03354 if (!PreambleDecode(strm))
03355 return FALSE;
03356
03357 if (HasOptionalField(e_member) && !m_member.Decode(strm))
03358 return FALSE;
03359 if (!m_group.Decode(strm))
03360 return FALSE;
03361
03362 return UnknownExtensionsDecode(strm);
03363 }
03364
03365
03366 void H225_GroupID::Encode(PASN_Stream & strm) const
03367 {
03368 PreambleEncode(strm);
03369
03370 if (HasOptionalField(e_member))
03371 m_member.Encode(strm);
03372 m_group.Encode(strm);
03373
03374 UnknownExtensionsEncode(strm);
03375 }
03376
03377
03378 PObject * H225_GroupID::Clone() const
03379 {
03380 #ifndef PASN_LEANANDMEAN
03381 PAssert(IsClass(H225_GroupID::Class()), PInvalidCast);
03382 #endif
03383 return new H225_GroupID(*this);
03384 }
03385
03386
03387
03388
03389
03390
03391 H225_ServiceControlSession::H225_ServiceControlSession(unsigned tag, PASN_Object::TagClass tagClass)
03392 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
03393 {
03394 m_sessionId.SetConstraints(PASN_Object::FixedConstraint, 0, 255);
03395 }
03396
03397
03398 #ifndef PASN_NOPRINTON
03399 void H225_ServiceControlSession::PrintOn(ostream & strm) const
03400 {
03401 int indent = strm.precision() + 2;
03402 strm << "{\n";
03403 strm << setw(indent+12) << "sessionId = " << setprecision(indent) << m_sessionId << '\n';
03404 if (HasOptionalField(e_contents))
03405 strm << setw(indent+11) << "contents = " << setprecision(indent) << m_contents << '\n';
03406 strm << setw(indent+9) << "reason = " << setprecision(indent) << m_reason << '\n';
03407 strm << setw(indent-1) << setprecision(indent-2) << "}";
03408 }
03409 #endif
03410
03411
03412 PObject::Comparison H225_ServiceControlSession::Compare(const PObject & obj) const
03413 {
03414 #ifndef PASN_LEANANDMEAN
03415 PAssert(PIsDescendant(&obj, H225_ServiceControlSession), PInvalidCast);
03416 #endif
03417 const H225_ServiceControlSession & other = (const H225_ServiceControlSession &)obj;
03418
03419 Comparison result;
03420
03421 if ((result = m_sessionId.Compare(other.m_sessionId)) != EqualTo)
03422 return result;
03423 if ((result = m_contents.Compare(other.m_contents)) != EqualTo)
03424 return result;
03425 if ((result = m_reason.Compare(other.m_reason)) != EqualTo)
03426 return result;
03427
03428 return PASN_Sequence::Compare(other);
03429 }
03430
03431
03432 PINDEX H225_ServiceControlSession::GetDataLength() const
03433 {
03434 PINDEX length = 0;
03435 length += m_sessionId.GetObjectLength();
03436 if (HasOptionalField(e_contents))
03437 length += m_contents.GetObjectLength();
03438 length += m_reason.GetObjectLength();
03439 return length;
03440 }
03441
03442
03443 BOOL H225_ServiceControlSession::Decode(PASN_Stream & strm)
03444 {
03445 if (!PreambleDecode(strm))
03446 return FALSE;
03447
03448 if (!m_sessionId.Decode(strm))
03449 return FALSE;
03450 if (HasOptionalField(e_contents) && !m_contents.Decode(strm))
03451 return FALSE;
03452 if (!m_reason.Decode(strm))
03453 return FALSE;
03454
03455 return UnknownExtensionsDecode(strm);
03456 }
03457
03458
03459 void H225_ServiceControlSession::Encode(PASN_Stream & strm) const
03460 {
03461 PreambleEncode(strm);
03462
03463 m_sessionId.Encode(strm);
03464 if (HasOptionalField(e_contents))
03465 m_contents.Encode(strm);
03466 m_reason.Encode(strm);
03467
03468 UnknownExtensionsEncode(strm);
03469 }
03470
03471
03472 PObject * H225_ServiceControlSession::Clone() const
03473 {
03474 #ifndef PASN_LEANANDMEAN
03475 PAssert(IsClass(H225_ServiceControlSession::Class()), PInvalidCast);
03476 #endif
03477 return new H225_ServiceControlSession(*this);
03478 }
03479
03480
03481
03482
03483
03484
03485 H225_RasUsageInfoTypes::H225_RasUsageInfoTypes(unsigned tag, PASN_Object::TagClass tagClass)
03486 : PASN_Sequence(tag, tagClass, 3, TRUE, 0)
03487 {
03488 }
03489
03490
03491 #ifndef PASN_NOPRINTON
03492 void H225_RasUsageInfoTypes::PrintOn(ostream & strm) const
03493 {
03494 int indent = strm.precision() + 2;
03495 strm << "{\n";
03496 strm << setw(indent+24) << "nonStandardUsageTypes = " << setprecision(indent) << m_nonStandardUsageTypes << '\n';
03497 if (HasOptionalField(e_startTime))
03498 strm << setw(indent+12) << "startTime = " << setprecision(indent) << m_startTime << '\n';
03499 if (HasOptionalField(e_endTime))
03500 strm << setw(indent+10) << "endTime = " << setprecision(indent) << m_endTime << '\n';
03501 if (HasOptionalField(e_terminationCause))
03502 strm << setw(indent+19) << "terminationCause = " << setprecision(indent) << m_terminationCause << '\n';
03503 strm << setw(indent-1) << setprecision(indent-2) << "}";
03504 }
03505 #endif
03506
03507
03508 PObject::Comparison H225_RasUsageInfoTypes::Compare(const PObject & obj) const
03509 {
03510 #ifndef PASN_LEANANDMEAN
03511 PAssert(PIsDescendant(&obj, H225_RasUsageInfoTypes), PInvalidCast);
03512 #endif
03513 const H225_RasUsageInfoTypes & other = (const H225_RasUsageInfoTypes &)obj;
03514
03515 Comparison result;
03516
03517 if ((result = m_nonStandardUsageTypes.Compare(other.m_nonStandardUsageTypes)) != EqualTo)
03518 return result;
03519 if ((result = m_startTime.Compare(other.m_startTime)) != EqualTo)
03520 return result;
03521 if ((result = m_endTime.Compare(other.m_endTime)) != EqualTo)
03522 return result;
03523 if ((result = m_terminationCause.Compare(other.m_terminationCause)) != EqualTo)
03524 return result;
03525
03526 return PASN_Sequence::Compare(other);
03527 }
03528
03529
03530 PINDEX H225_RasUsageInfoTypes::GetDataLength() const
03531 {
03532 PINDEX length = 0;
03533 length += m_nonStandardUsageTypes.GetObjectLength();
03534 if (HasOptionalField(e_startTime))
03535 length += m_startTime.GetObjectLength();
03536 if (HasOptionalField(e_endTime))
03537 length += m_endTime.GetObjectLength();
03538 if (HasOptionalField(e_terminationCause))
03539 length += m_terminationCause.GetObjectLength();
03540 return length;
03541 }
03542
03543
03544 BOOL H225_RasUsageInfoTypes::Decode(PASN_Stream & strm)
03545 {
03546 if (!PreambleDecode(strm))
03547 return FALSE;
03548
03549 if (!m_nonStandardUsageTypes.Decode(strm))
03550 return FALSE;
03551 if (HasOptionalField(e_startTime) && !m_startTime.Decode(strm))
03552 return FALSE;
03553 if (HasOptionalField(e_endTime) && !m_endTime.Decode(strm))
03554 return FALSE;
03555 if (HasOptionalField(e_terminationCause) && !m_terminationCause.Decode(strm))
03556 return FALSE;
03557
03558 return UnknownExtensionsDecode(strm);
03559 }
03560
03561
03562 void H225_RasUsageInfoTypes::Encode(PASN_Stream & strm) const
03563 {
03564 PreambleEncode(strm);
03565
03566 m_nonStandardUsageTypes.Encode(strm);
03567 if (HasOptionalField(e_startTime))
03568 m_startTime.Encode(strm);
03569 if (HasOptionalField(e_endTime))
03570 m_endTime.Encode(strm);
03571 if (HasOptionalField(e_terminationCause))
03572 m_terminationCause.Encode(strm);
03573
03574 UnknownExtensionsEncode(strm);
03575 }
03576
03577
03578 PObject * H225_RasUsageInfoTypes::Clone() const
03579 {
03580 #ifndef PASN_LEANANDMEAN
03581 PAssert(IsClass(H225_RasUsageInfoTypes::Class()), PInvalidCast);
03582 #endif
03583 return new H225_RasUsageInfoTypes(*this);
03584 }
03585
03586
03587
03588
03589
03590
03591 H225_RasUsageSpecification::H225_RasUsageSpecification(unsigned tag, PASN_Object::TagClass tagClass)
03592 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
03593 {
03594 }
03595
03596
03597 #ifndef PASN_NOPRINTON
03598 void H225_RasUsageSpecification::PrintOn(ostream & strm) const
03599 {
03600 int indent = strm.precision() + 2;
03601 strm << "{\n";
03602 strm << setw(indent+7) << "when = " << setprecision(indent) << m_when << '\n';
03603 if (HasOptionalField(e_callStartingPoint))
03604 strm << setw(indent+20) << "callStartingPoint = " << setprecision(indent) << m_callStartingPoint << '\n';
03605 strm << setw(indent+11) << "required = " << setprecision(indent) << m_required << '\n';
03606 strm << setw(indent-1) << setprecision(indent-2) << "}";
03607 }
03608 #endif
03609
03610
03611 PObject::Comparison H225_RasUsageSpecification::Compare(const PObject & obj) const
03612 {
03613 #ifndef PASN_LEANANDMEAN
03614 PAssert(PIsDescendant(&obj, H225_RasUsageSpecification), PInvalidCast);
03615 #endif
03616 const H225_RasUsageSpecification & other = (const H225_RasUsageSpecification &)obj;
03617
03618 Comparison result;
03619
03620 if ((result = m_when.Compare(other.m_when)) != EqualTo)
03621 return result;
03622 if ((result = m_callStartingPoint.Compare(other.m_callStartingPoint)) != EqualTo)
03623 return result;
03624 if ((result = m_required.Compare(other.m_required)) != EqualTo)
03625 return result;
03626
03627 return PASN_Sequence::Compare(other);
03628 }
03629
03630
03631 PINDEX H225_RasUsageSpecification::GetDataLength() const
03632 {
03633 PINDEX length = 0;
03634 length += m_when.GetObjectLength();
03635 if (HasOptionalField(e_callStartingPoint))
03636 length += m_callStartingPoint.GetObjectLength();
03637 length += m_required.GetObjectLength();
03638 return length;
03639 }
03640
03641
03642 BOOL H225_RasUsageSpecification::Decode(PASN_Stream & strm)
03643 {
03644 if (!PreambleDecode(strm))
03645 return FALSE;
03646
03647 if (!m_when.Decode(strm))
03648 return FALSE;
03649 if (HasOptionalField(e_callStartingPoint) && !m_callStartingPoint.Decode(strm))
03650 return FALSE;
03651 if (!m_required.Decode(strm))
03652 return FALSE;
03653
03654 return UnknownExtensionsDecode(strm);
03655 }
03656
03657
03658 void H225_RasUsageSpecification::Encode(PASN_Stream & strm) const
03659 {
03660 PreambleEncode(strm);
03661
03662 m_when.Encode(strm);
03663 if (HasOptionalField(e_callStartingPoint))
03664 m_callStartingPoint.Encode(strm);
03665 m_required.Encode(strm);
03666
03667 UnknownExtensionsEncode(strm);
03668 }
03669
03670
03671 PObject * H225_RasUsageSpecification::Clone() const
03672 {
03673 #ifndef PASN_LEANANDMEAN
03674 PAssert(IsClass(H225_RasUsageSpecification::Class()), PInvalidCast);
03675 #endif
03676 return new H225_RasUsageSpecification(*this);
03677 }
03678
03679
03680
03681
03682
03683
03684 H225_RasUsageInformation::H225_RasUsageInformation(unsigned tag, PASN_Object::TagClass tagClass)
03685 : PASN_Sequence(tag, tagClass, 3, TRUE, 0)
03686 {
03687 }
03688
03689
03690 #ifndef PASN_NOPRINTON
03691 void H225_RasUsageInformation::PrintOn(ostream & strm) const
03692 {
03693 int indent = strm.precision() + 2;
03694 strm << "{\n";
03695 strm << setw(indent+25) << "nonStandardUsageFields = " << setprecision(indent) << m_nonStandardUsageFields << '\n';
03696 if (HasOptionalField(e_alertingTime))
03697 strm << setw(indent+15) << "alertingTime = " << setprecision(indent) << m_alertingTime << '\n';
03698 if (HasOptionalField(e_connectTime))
03699 strm << setw(indent+14) << "connectTime = " << setprecision(indent) << m_connectTime << '\n';
03700 if (HasOptionalField(e_endTime))
03701 strm << setw(indent+10) << "endTime = " << setprecision(indent) << m_endTime << '\n';
03702 strm << setw(indent-1) << setprecision(indent-2) << "}";
03703 }
03704 #endif
03705
03706
03707 PObject::Comparison H225_RasUsageInformation::Compare(const PObject & obj) const
03708 {
03709 #ifndef PASN_LEANANDMEAN
03710 PAssert(PIsDescendant(&obj, H225_RasUsageInformation), PInvalidCast);
03711 #endif
03712 const H225_RasUsageInformation & other = (const H225_RasUsageInformation &)obj;
03713
03714 Comparison result;
03715
03716 if ((result = m_nonStandardUsageFields.Compare(other.m_nonStandardUsageFields)) != EqualTo)
03717 return result;
03718 if ((result = m_alertingTime.Compare(other.m_alertingTime)) != EqualTo)
03719 return result;
03720 if ((result = m_connectTime.Compare(other.m_connectTime)) != EqualTo)
03721 return result;
03722 if ((result = m_endTime.Compare(other.m_endTime)) != EqualTo)
03723 return result;
03724
03725 return PASN_Sequence::Compare(other);
03726 }
03727
03728
03729 PINDEX H225_RasUsageInformation::GetDataLength() const
03730 {
03731 PINDEX length = 0;
03732 length += m_nonStandardUsageFields.GetObjectLength();
03733 if (HasOptionalField(e_alertingTime))
03734 length += m_alertingTime.GetObjectLength();
03735 if (HasOptionalField(e_connectTime))
03736 length += m_connectTime.GetObjectLength();
03737 if (HasOptionalField(e_endTime))
03738 length += m_endTime.GetObjectLength();
03739 return length;
03740 }
03741
03742
03743 BOOL H225_RasUsageInformation::Decode(PASN_Stream & strm)
03744 {
03745 if (!PreambleDecode(strm))
03746 return FALSE;
03747
03748 if (!m_nonStandardUsageFields.Decode(strm))
03749 return FALSE;
03750 if (HasOptionalField(e_alertingTime) && !m_alertingTime.Decode(strm))
03751 return FALSE;
03752 if (HasOptionalField(e_connectTime) && !m_connectTime.Decode(strm))
03753 return FALSE;
03754 if (HasOptionalField(e_endTime) && !m_endTime.Decode(strm))
03755 return FALSE;
03756
03757 return UnknownExtensionsDecode(strm);
03758 }
03759
03760
03761 void H225_RasUsageInformation::Encode(PASN_Stream & strm) const
03762 {
03763 PreambleEncode(strm);
03764
03765 m_nonStandardUsageFields.Encode(strm);
03766 if (HasOptionalField(e_alertingTime))
03767 m_alertingTime.Encode(strm);
03768 if (HasOptionalField(e_connectTime))
03769 m_connectTime.Encode(strm);
03770 if (HasOptionalField(e_endTime))
03771 m_endTime.Encode(strm);
03772
03773 UnknownExtensionsEncode(strm);
03774 }
03775
03776
03777 PObject * H225_RasUsageInformation::Clone() const
03778 {
03779 #ifndef PASN_LEANANDMEAN
03780 PAssert(IsClass(H225_RasUsageInformation::Class()), PInvalidCast);
03781 #endif
03782 return new H225_RasUsageInformation(*this);
03783 }
03784
03785
03786
03787
03788
03789
03790 H225_BandwidthDetails::H225_BandwidthDetails(unsigned tag, PASN_Object::TagClass tagClass)
03791 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
03792 {
03793 }
03794
03795
03796 #ifndef PASN_NOPRINTON
03797 void H225_BandwidthDetails::PrintOn(ostream & strm) const
03798 {
03799 int indent = strm.precision() + 2;
03800 strm << "{\n";
03801 strm << setw(indent+9) << "sender = " << setprecision(indent) << m_sender << '\n';
03802 strm << setw(indent+12) << "multicast = " << setprecision(indent) << m_multicast << '\n';
03803 strm << setw(indent+12) << "bandwidth = " << setprecision(indent) << m_bandwidth << '\n';
03804 strm << setw(indent+16) << "rtcpAddresses = " << setprecision(indent) << m_rtcpAddresses << '\n';
03805 strm << setw(indent-1) << setprecision(indent-2) << "}";
03806 }
03807 #endif
03808
03809
03810 PObject::Comparison H225_BandwidthDetails::Compare(const PObject & obj) const
03811 {
03812 #ifndef PASN_LEANANDMEAN
03813 PAssert(PIsDescendant(&obj, H225_BandwidthDetails), PInvalidCast);
03814 #endif
03815 const H225_BandwidthDetails & other = (const H225_BandwidthDetails &)obj;
03816
03817 Comparison result;
03818
03819 if ((result = m_sender.Compare(other.m_sender)) != EqualTo)
03820 return result;
03821 if ((result = m_multicast.Compare(other.m_multicast)) != EqualTo)
03822 return result;
03823 if ((result = m_bandwidth.Compare(other.m_bandwidth)) != EqualTo)
03824 return result;
03825 if ((result = m_rtcpAddresses.Compare(other.m_rtcpAddresses)) != EqualTo)
03826 return result;
03827
03828 return PASN_Sequence::Compare(other);
03829 }
03830
03831
03832 PINDEX H225_BandwidthDetails::GetDataLength() const
03833 {
03834 PINDEX length = 0;
03835 length += m_sender.GetObjectLength();
03836 length += m_multicast.GetObjectLength();
03837 length += m_bandwidth.GetObjectLength();
03838 length += m_rtcpAddresses.GetObjectLength();
03839 return length;
03840 }
03841
03842
03843 BOOL H225_BandwidthDetails::Decode(PASN_Stream & strm)
03844 {
03845 if (!PreambleDecode(strm))
03846 return FALSE;
03847
03848 if (!m_sender.Decode(strm))
03849 return FALSE;
03850 if (!m_multicast.Decode(strm))
03851 return FALSE;
03852 if (!m_bandwidth.Decode(strm))
03853 return FALSE;
03854 if (!m_rtcpAddresses.Decode(strm))
03855 return FALSE;
03856
03857 return UnknownExtensionsDecode(strm);
03858 }
03859
03860
03861 void H225_BandwidthDetails::Encode(PASN_Stream & strm) const
03862 {
03863 PreambleEncode(strm);
03864
03865 m_sender.Encode(strm);
03866 m_multicast.Encode(strm);
03867 m_bandwidth.Encode(strm);
03868 m_rtcpAddresses.Encode(strm);
03869
03870 UnknownExtensionsEncode(strm);
03871 }
03872
03873
03874 PObject * H225_BandwidthDetails::Clone() const
03875 {
03876 #ifndef PASN_LEANANDMEAN
03877 PAssert(IsClass(H225_BandwidthDetails::Class()), PInvalidCast);
03878 #endif
03879 return new H225_BandwidthDetails(*this);
03880 }
03881
03882
03883
03884
03885
03886
03887 H225_CallCreditServiceControl::H225_CallCreditServiceControl(unsigned tag, PASN_Object::TagClass tagClass)
03888 : PASN_Sequence(tag, tagClass, 5, TRUE, 0)
03889 {
03890 m_amountString.SetConstraints(PASN_Object::FixedConstraint, 1, 512);
03891 m_callDurationLimit.SetConstraints(PASN_Object::FixedConstraint, 1, 4294967295U);
03892 }
03893
03894
03895 #ifndef PASN_NOPRINTON
03896 void H225_CallCreditServiceControl::PrintOn(ostream & strm) const
03897 {
03898 int indent = strm.precision() + 2;
03899 strm << "{\n";
03900 if (HasOptionalField(e_amountString))
03901 strm << setw(indent+15) << "amountString = " << setprecision(indent) << m_amountString << '\n';
03902 if (HasOptionalField(e_billingMode))
03903 strm << setw(indent+14) << "billingMode = " << setprecision(indent) << m_billingMode << '\n';
03904 if (HasOptionalField(e_callDurationLimit))
03905 strm << setw(indent+20) << "callDurationLimit = " << setprecision(indent) << m_callDurationLimit << '\n';
03906 if (HasOptionalField(e_enforceCallDurationLimit))
03907 strm << setw(indent+27) << "enforceCallDurationLimit = " << setprecision(indent) << m_enforceCallDurationLimit << '\n';
03908 if (HasOptionalField(e_callStartingPoint))
03909 strm << setw(indent+20) << "callStartingPoint = " << setprecision(indent) << m_callStartingPoint << '\n';
03910 strm << setw(indent-1) << setprecision(indent-2) << "}";
03911 }
03912 #endif
03913
03914
03915 PObject::Comparison H225_CallCreditServiceControl::Compare(const PObject & obj) const
03916 {
03917 #ifndef PASN_LEANANDMEAN
03918 PAssert(PIsDescendant(&obj, H225_CallCreditServiceControl), PInvalidCast);
03919 #endif
03920 const H225_CallCreditServiceControl & other = (const H225_CallCreditServiceControl &)obj;
03921
03922 Comparison result;
03923
03924 if ((result = m_amountString.Compare(other.m_amountString)) != EqualTo)
03925 return result;
03926 if ((result = m_billingMode.Compare(other.m_billingMode)) != EqualTo)
03927 return result;
03928 if ((result = m_callDurationLimit.Compare(other.m_callDurationLimit)) != EqualTo)
03929 return result;
03930 if ((result = m_enforceCallDurationLimit.Compare(other.m_enforceCallDurationLimit)) != EqualTo)
03931 return result;
03932 if ((result = m_callStartingPoint.Compare(other.m_callStartingPoint)) != EqualTo)
03933 return result;
03934
03935 return PASN_Sequence::Compare(other);
03936 }
03937
03938
03939 PINDEX H225_CallCreditServiceControl::GetDataLength() const
03940 {
03941 PINDEX length = 0;
03942 if (HasOptionalField(e_amountString))
03943 length += m_amountString.GetObjectLength();
03944 if (HasOptionalField(e_billingMode))
03945 length += m_billingMode.GetObjectLength();
03946 if (HasOptionalField(e_callDurationLimit))
03947 length += m_callDurationLimit.GetObjectLength();
03948 if (HasOptionalField(e_enforceCallDurationLimit))
03949 length += m_enforceCallDurationLimit.GetObjectLength();
03950 if (HasOptionalField(e_callStartingPoint))
03951 length += m_callStartingPoint.GetObjectLength();
03952 return length;
03953 }
03954
03955
03956 BOOL H225_CallCreditServiceControl::Decode(PASN_Stream & strm)
03957 {
03958 if (!PreambleDecode(strm))
03959 return FALSE;
03960
03961 if (HasOptionalField(e_amountString) && !m_amountString.Decode(strm))
03962 return FALSE;
03963 if (HasOptionalField(e_billingMode) && !m_billingMode.Decode(strm))
03964 return FALSE;
03965 if (HasOptionalField(e_callDurationLimit) && !m_callDurationLimit.Decode(strm))
03966 return FALSE;
03967 if (HasOptionalField(e_enforceCallDurationLimit) && !m_enforceCallDurationLimit.Decode(strm))
03968 return FALSE;
03969 if (HasOptionalField(e_callStartingPoint) && !m_callStartingPoint.Decode(strm))
03970 return FALSE;
03971
03972 return UnknownExtensionsDecode(strm);
03973 }
03974
03975
03976 void H225_CallCreditServiceControl::Encode(PASN_Stream & strm) const
03977 {
03978 PreambleEncode(strm);
03979
03980 if (HasOptionalField(e_amountString))
03981 m_amountString.Encode(strm);
03982 if (HasOptionalField(e_billingMode))
03983 m_billingMode.Encode(strm);
03984 if (HasOptionalField(e_callDurationLimit))
03985 m_callDurationLimit.Encode(strm);
03986 if (HasOptionalField(e_enforceCallDurationLimit))
03987 m_enforceCallDurationLimit.Encode(strm);
03988 if (HasOptionalField(e_callStartingPoint))
03989 m_callStartingPoint.Encode(strm);
03990
03991 UnknownExtensionsEncode(strm);
03992 }
03993
03994
03995 PObject * H225_CallCreditServiceControl::Clone() const
03996 {
03997 #ifndef PASN_LEANANDMEAN
03998 PAssert(IsClass(H225_CallCreditServiceControl::Class()), PInvalidCast);
03999 #endif
04000 return new H225_CallCreditServiceControl(*this);
04001 }
04002
04003
04004
04005
04006
04007
04008 H225_GenericData::H225_GenericData(unsigned tag, PASN_Object::TagClass tagClass)
04009 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
04010 {
04011 m_parameters.SetConstraints(PASN_Object::FixedConstraint, 1, 512);
04012 }
04013
04014
04015 #ifndef PASN_NOPRINTON
04016 void H225_GenericData::PrintOn(ostream & strm) const
04017 {
04018 int indent = strm.precision() + 2;
04019 strm << "{\n";
04020 strm << setw(indent+5) << "id = " << setprecision(indent) << m_id << '\n';
04021 if (HasOptionalField(e_parameters))
04022 strm << setw(indent+13) << "parameters = " << setprecision(indent) << m_parameters << '\n';
04023 strm << setw(indent-1) << setprecision(indent-2) << "}";
04024 }
04025 #endif
04026
04027
04028 PObject::Comparison H225_GenericData::Compare(const PObject & obj) const
04029 {
04030 #ifndef PASN_LEANANDMEAN
04031 PAssert(PIsDescendant(&obj, H225_GenericData), PInvalidCast);
04032 #endif
04033 const H225_GenericData & other = (const H225_GenericData &)obj;
04034
04035 Comparison result;
04036
04037 if ((result = m_id.Compare(other.m_id)) != EqualTo)
04038 return result;
04039 if ((result = m_parameters.Compare(other.m_parameters)) != EqualTo)
04040 return result;
04041
04042 return PASN_Sequence::Compare(other);
04043 }
04044
04045
04046 PINDEX H225_GenericData::GetDataLength() const
04047 {
04048 PINDEX length = 0;
04049 length += m_id.GetObjectLength();
04050 if (HasOptionalField(e_parameters))
04051 length += m_parameters.GetObjectLength();
04052 return length;
04053 }
04054
04055
04056 BOOL H225_GenericData::Decode(PASN_Stream & strm)
04057 {
04058 if (!PreambleDecode(strm))
04059 return FALSE;
04060
04061 if (!m_id.Decode(strm))
04062 return FALSE;
04063 if (HasOptionalField(e_parameters) && !m_parameters.Decode(strm))
04064 return FALSE;
04065
04066 return UnknownExtensionsDecode(strm);
04067 }
04068
04069
04070 void H225_GenericData::Encode(PASN_Stream & strm) const
04071 {
04072 PreambleEncode(strm);
04073
04074 m_id.Encode(strm);
04075 if (HasOptionalField(e_parameters))
04076 m_parameters.Encode(strm);
04077
04078 UnknownExtensionsEncode(strm);
04079 }
04080
04081
04082 PObject * H225_GenericData::Clone() const
04083 {
04084 #ifndef PASN_LEANANDMEAN
04085 PAssert(IsClass(H225_GenericData::Class()), PInvalidCast);
04086 #endif
04087 return new H225_GenericData(*this);
04088 }
04089
04090
04091
04092
04093
04094
04095 H225_EnumeratedParameter::H225_EnumeratedParameter(unsigned tag, PASN_Object::TagClass tagClass)
04096 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
04097 {
04098 }
04099
04100
04101 #ifndef PASN_NOPRINTON
04102 void H225_EnumeratedParameter::PrintOn(ostream & strm) const
04103 {
04104 int indent = strm.precision() + 2;
04105 strm << "{\n";
04106 strm << setw(indent+5) << "id = " << setprecision(indent) << m_id << '\n';
04107 if (HasOptionalField(e_content))
04108 strm << setw(indent+10) << "content = " << setprecision(indent) << m_content << '\n';
04109 strm << setw(indent-1) << setprecision(indent-2) << "}";
04110 }
04111 #endif
04112
04113
04114 PObject::Comparison H225_EnumeratedParameter::Compare(const PObject & obj) const
04115 {
04116 #ifndef PASN_LEANANDMEAN
04117 PAssert(PIsDescendant(&obj, H225_EnumeratedParameter), PInvalidCast);
04118 #endif
04119 const H225_EnumeratedParameter & other = (const H225_EnumeratedParameter &)obj;
04120
04121 Comparison result;
04122
04123 if ((result = m_id.Compare(other.m_id)) != EqualTo)
04124 return result;
04125 if ((result = m_content.Compare(other.m_content)) != EqualTo)
04126 return result;
04127
04128 return PASN_Sequence::Compare(other);
04129 }
04130
04131
04132 PINDEX H225_EnumeratedParameter::GetDataLength() const
04133 {
04134 PINDEX length = 0;
04135 length += m_id.GetObjectLength();
04136 if (HasOptionalField(e_content))
04137 length += m_content.GetObjectLength();
04138 return length;
04139 }
04140
04141
04142 BOOL H225_EnumeratedParameter::Decode(PASN_Stream & strm)
04143 {
04144 if (!PreambleDecode(strm))
04145 return FALSE;
04146
04147 if (!m_id.Decode(strm))
04148 return FALSE;
04149 if (HasOptionalField(e_content) && !m_content.Decode(strm))
04150 return FALSE;
04151
04152 return UnknownExtensionsDecode(strm);
04153 }
04154
04155
04156 void H225_EnumeratedParameter::Encode(PASN_Stream & strm) const
04157 {
04158 PreambleEncode(strm);
04159
04160 m_id.Encode(strm);
04161 if (HasOptionalField(e_content))
04162 m_content.Encode(strm);
04163
04164 UnknownExtensionsEncode(strm);
04165 }
04166
04167
04168 PObject * H225_EnumeratedParameter::Clone() const
04169 {
04170 #ifndef PASN_LEANANDMEAN
04171 PAssert(IsClass(H225_EnumeratedParameter::Class()), PInvalidCast);
04172 #endif
04173 return new H225_EnumeratedParameter(*this);
04174 }
04175
04176
04177
04178
04179
04180
04181 H225_FeatureSet::H225_FeatureSet(unsigned tag, PASN_Object::TagClass tagClass)
04182 : PASN_Sequence(tag, tagClass, 3, TRUE, 0)
04183 {
04184 }
04185
04186
04187 #ifndef PASN_NOPRINTON
04188 void H225_FeatureSet::PrintOn(ostream & strm) const
04189 {
04190 int indent = strm.precision() + 2;
04191 strm << "{\n";
04192 strm << setw(indent+24) << "replacementFeatureSet = " << setprecision(indent) << m_replacementFeatureSet << '\n';
04193 if (HasOptionalField(e_neededFeatures))
04194 strm << setw(indent+17) << "neededFeatures = " << setprecision(indent) << m_neededFeatures << '\n';
04195 if (HasOptionalField(e_desiredFeatures))
04196 strm << setw(indent+18) << "desiredFeatures = " << setprecision(indent) << m_desiredFeatures << '\n';
04197 if (HasOptionalField(e_supportedFeatures))
04198 strm << setw(indent+20) << "supportedFeatures = " << setprecision(indent) << m_supportedFeatures << '\n';
04199 strm << setw(indent-1) << setprecision(indent-2) << "}";
04200 }
04201 #endif
04202
04203
04204 PObject::Comparison H225_FeatureSet::Compare(const PObject & obj) const
04205 {
04206 #ifndef PASN_LEANANDMEAN
04207 PAssert(PIsDescendant(&obj, H225_FeatureSet), PInvalidCast);
04208 #endif
04209 const H225_FeatureSet & other = (const H225_FeatureSet &)obj;
04210
04211 Comparison result;
04212
04213 if ((result = m_replacementFeatureSet.Compare(other.m_replacementFeatureSet)) != EqualTo)
04214 return result;
04215 if ((result = m_neededFeatures.Compare(other.m_neededFeatures)) != EqualTo)
04216 return result;
04217 if ((result = m_desiredFeatures.Compare(other.m_desiredFeatures)) != EqualTo)
04218 return result;
04219 if ((result = m_supportedFeatures.Compare(other.m_supportedFeatures)) != EqualTo)
04220 return result;
04221
04222 return PASN_Sequence::Compare(other);
04223 }
04224
04225
04226 PINDEX H225_FeatureSet::GetDataLength() const
04227 {
04228 PINDEX length = 0;
04229 length += m_replacementFeatureSet.GetObjectLength();
04230 if (HasOptionalField(e_neededFeatures))
04231 length += m_neededFeatures.GetObjectLength();
04232 if (HasOptionalField(e_desiredFeatures))
04233 length += m_desiredFeatures.GetObjectLength();
04234 if (HasOptionalField(e_supportedFeatures))
04235 length += m_supportedFeatures.GetObjectLength();
04236 return length;
04237 }
04238
04239
04240 BOOL H225_FeatureSet::Decode(PASN_Stream & strm)
04241 {
04242 if (!PreambleDecode(strm))
04243 return FALSE;
04244
04245 if (!m_replacementFeatureSet.Decode(strm))
04246 return FALSE;
04247 if (HasOptionalField(e_neededFeatures) && !m_neededFeatures.Decode(strm))
04248 return FALSE;
04249 if (HasOptionalField(e_desiredFeatures) && !m_desiredFeatures.Decode(strm))
04250 return FALSE;
04251 if (HasOptionalField(e_supportedFeatures) && !m_supportedFeatures.Decode(strm))
04252 return FALSE;
04253
04254 return UnknownExtensionsDecode(strm);
04255 }
04256
04257
04258 void H225_FeatureSet::Encode(PASN_Stream & strm) const
04259 {
04260 PreambleEncode(strm);
04261
04262 m_replacementFeatureSet.Encode(strm);
04263 if (HasOptionalField(e_neededFeatures))
04264 m_neededFeatures.Encode(strm);
04265 if (HasOptionalField(e_desiredFeatures))
04266 m_desiredFeatures.Encode(strm);
04267 if (HasOptionalField(e_supportedFeatures))
04268 m_supportedFeatures.Encode(strm);
04269
04270 UnknownExtensionsEncode(strm);
04271 }
04272
04273
04274 PObject * H225_FeatureSet::Clone() const
04275 {
04276 #ifndef PASN_LEANANDMEAN
04277 PAssert(IsClass(H225_FeatureSet::Class()), PInvalidCast);
04278 #endif
04279 return new H225_FeatureSet(*this);
04280 }
04281
04282
04283
04284
04285
04286
04287 H225_RTPSession::H225_RTPSession(unsigned tag, PASN_Object::TagClass tagClass)
04288 : PASN_Sequence(tag, tagClass, 0, TRUE, 2)
04289 {
04290 m_ssrc.SetConstraints(PASN_Object::FixedConstraint, 1, 4294967295U);
04291 m_sessionId.SetConstraints(PASN_Object::FixedConstraint, 1, 255);
04292 }
04293
04294
04295 #ifndef PASN_NOPRINTON
04296 void H225_RTPSession::PrintOn(ostream & strm) const
04297 {
04298 int indent = strm.precision() + 2;
04299 strm << "{\n";
04300 strm << setw(indent+13) << "rtpAddress = " << setprecision(indent) << m_rtpAddress << '\n';
04301 strm << setw(indent+14) << "rtcpAddress = " << setprecision(indent) << m_rtcpAddress << '\n';
04302 strm << setw(indent+8) << "cname = " << setprecision(indent) << m_cname << '\n';
04303 strm << setw(indent+7) << "ssrc = " << setprecision(indent) << m_ssrc << '\n';
04304 strm << setw(indent+12) << "sessionId = " << setprecision(indent) << m_sessionId << '\n';
04305 strm << setw(indent+23) << "associatedSessionIds = " << setprecision(indent) << m_associatedSessionIds << '\n';
04306 if (HasOptionalField(e_multicast))
04307 strm << setw(indent+12) << "multicast = " << setprecision(indent) << m_multicast << '\n';
04308 if (HasOptionalField(e_bandwidth))
04309 strm << setw(indent+12) << "bandwidth = " << setprecision(indent) << m_bandwidth << '\n';
04310 strm << setw(indent-1) << setprecision(indent-2) << "}";
04311 }
04312 #endif
04313
04314
04315 PObject::Comparison H225_RTPSession::Compare(const PObject & obj) const
04316 {
04317 #ifndef PASN_LEANANDMEAN
04318 PAssert(PIsDescendant(&obj, H225_RTPSession), PInvalidCast);
04319 #endif
04320 const H225_RTPSession & other = (const H225_RTPSession &)obj;
04321
04322 Comparison result;
04323
04324 if ((result = m_rtpAddress.Compare(other.m_rtpAddress)) != EqualTo)
04325 return result;
04326 if ((result = m_rtcpAddress.Compare(other.m_rtcpAddress)) != EqualTo)
04327 return result;
04328 if ((result = m_cname.Compare(other.m_cname)) != EqualTo)
04329 return result;
04330 if ((result = m_ssrc.Compare(other.m_ssrc)) != EqualTo)
04331 return result;
04332 if ((result = m_sessionId.Compare(other.m_sessionId)) != EqualTo)
04333 return result;
04334 if ((result = m_associatedSessionIds.Compare(other.m_associatedSessionIds)) != EqualTo)
04335 return result;
04336
04337 return PASN_Sequence::Compare(other);
04338 }
04339
04340
04341 PINDEX H225_RTPSession::GetDataLength() const
04342 {
04343 PINDEX length = 0;
04344 length +=