4 // Code automatically generated by asnparse.
8 #pragma implementation "h4503.h"
17 #if ! H323_DISABLE_H4503
21 #ifndef PASN_NOPRINTON
22 const static PASN_Names Names_H4503_H323CallDiversionOperations
[]={
23 {"activateDiversionQ",15}
24 ,{"deactivateDiversionQ",16}
25 ,{"interrogateDiversionQ",17}
26 ,{"checkRestriction",18}
28 ,{"divertingLegInformation1",20}
29 ,{"divertingLegInformation2",21}
30 ,{"divertingLegInformation3",22}
31 ,{"divertingLegInformation4",100}
32 ,{"cfnrDivertedLegFailed",23}
36 // H323CallDiversionOperations
39 H4503_H323CallDiversionOperations::H4503_H323CallDiversionOperations(unsigned tag
, PASN_Object::TagClass tagClass
)
40 : PASN_Enumeration(tag
, tagClass
, 100, FALSE
41 #ifndef PASN_NOPRINTON
42 ,(const PASN_Names
*)Names_H4503_H323CallDiversionOperations
,10
49 H4503_H323CallDiversionOperations
& H4503_H323CallDiversionOperations::operator=(unsigned v
)
56 PObject
* H4503_H323CallDiversionOperations::Clone() const
58 #ifndef PASN_LEANANDMEAN
59 PAssert(IsClass(H4503_H323CallDiversionOperations::Class()), PInvalidCast
);
61 return new H4503_H323CallDiversionOperations(*this);
65 #ifndef PASN_NOPRINTON
66 const static PASN_Names Names_H4503_DiversionReason
[]={
77 H4503_DiversionReason::H4503_DiversionReason(unsigned tag
, PASN_Object::TagClass tagClass
)
78 : PASN_Enumeration(tag
, tagClass
, 3, TRUE
79 #ifndef PASN_NOPRINTON
80 ,(const PASN_Names
*)Names_H4503_DiversionReason
,4
87 H4503_DiversionReason
& H4503_DiversionReason::operator=(unsigned v
)
94 PObject
* H4503_DiversionReason::Clone() const
96 #ifndef PASN_LEANANDMEAN
97 PAssert(IsClass(H4503_DiversionReason::Class()), PInvalidCast
);
99 return new H4503_DiversionReason(*this);
107 H4503_IntResultList::H4503_IntResultList(unsigned tag
, PASN_Object::TagClass tagClass
)
108 : PASN_Array(tag
, tagClass
)
110 SetConstraints(PASN_Object::FixedConstraint
, 0, 29);
114 PASN_Object
* H4503_IntResultList::CreateObject() const
116 return new H4503_IntResult
;
120 H4503_IntResult
& H4503_IntResultList::operator[](PINDEX i
) const
122 return (H4503_IntResult
&)array
[i
];
126 PObject
* H4503_IntResultList::Clone() const
128 #ifndef PASN_LEANANDMEAN
129 PAssert(IsClass(H4503_IntResultList::Class()), PInvalidCast
);
131 return new H4503_IntResultList(*this);
135 #ifndef PASN_NOPRINTON
136 const static PASN_Names Names_H4503_Procedure
[]={
146 H4503_Procedure::H4503_Procedure(unsigned tag
, PASN_Object::TagClass tagClass
)
147 : PASN_Enumeration(tag
, tagClass
, 2, TRUE
148 #ifndef PASN_NOPRINTON
149 ,(const PASN_Names
*)Names_H4503_Procedure
,3
156 H4503_Procedure
& H4503_Procedure::operator=(unsigned v
)
163 PObject
* H4503_Procedure::Clone() const
165 #ifndef PASN_LEANANDMEAN
166 PAssert(IsClass(H4503_Procedure::Class()), PInvalidCast
);
168 return new H4503_Procedure(*this);
172 #ifndef PASN_NOPRINTON
173 const static PASN_Names Names_H4503_SubscriptionOption
[]={
175 ,{"notificationWithoutDivertedToNr",1}
176 ,{"notificationWithDivertedToNr",2}
180 // SubscriptionOption
183 H4503_SubscriptionOption::H4503_SubscriptionOption(unsigned tag
, PASN_Object::TagClass tagClass
)
184 : PASN_Enumeration(tag
, tagClass
, 2, TRUE
185 #ifndef PASN_NOPRINTON
186 ,(const PASN_Names
*)Names_H4503_SubscriptionOption
,3
193 H4503_SubscriptionOption
& H4503_SubscriptionOption::operator=(unsigned v
)
200 PObject
* H4503_SubscriptionOption::Clone() const
202 #ifndef PASN_LEANANDMEAN
203 PAssert(IsClass(H4503_SubscriptionOption::Class()), PInvalidCast
);
205 return new H4503_SubscriptionOption(*this);
209 #ifndef PASN_NOPRINTON
210 const static PASN_Names Names_H4503_CallDiversionErrors
[]={
211 {"invalidDivertedNumber",12}
212 ,{"specialServiceNumber",14}
213 ,{"diversionToServedUserNumber",15}
214 ,{"numberOfDiversionsExceeded",24}
215 ,{"temporarilyUnavailable",1000}
216 ,{"notAuthorized",1007}
217 ,{"unspecified",1008}
221 // CallDiversionErrors
224 H4503_CallDiversionErrors::H4503_CallDiversionErrors(unsigned tag
, PASN_Object::TagClass tagClass
)
225 : PASN_Enumeration(tag
, tagClass
, 1008, FALSE
226 #ifndef PASN_NOPRINTON
227 ,(const PASN_Names
*)Names_H4503_CallDiversionErrors
,7
234 H4503_CallDiversionErrors
& H4503_CallDiversionErrors::operator=(unsigned v
)
241 PObject
* H4503_CallDiversionErrors::Clone() const
243 #ifndef PASN_LEANANDMEAN
244 PAssert(IsClass(H4503_CallDiversionErrors::Class()), PInvalidCast
);
246 return new H4503_CallDiversionErrors(*this);
250 #ifndef PASN_NOPRINTON
251 const static PASN_Names Names_H4503_BasicService
[]={
259 H4503_BasicService::H4503_BasicService(unsigned tag
, PASN_Object::TagClass tagClass
)
260 : PASN_Enumeration(tag
, tagClass
, 0, TRUE
261 #ifndef PASN_NOPRINTON
262 ,(const PASN_Names
*)Names_H4503_BasicService
,1
269 H4503_BasicService
& H4503_BasicService::operator=(unsigned v
)
276 PObject
* H4503_BasicService::Clone() const
278 #ifndef PASN_LEANANDMEAN
279 PAssert(IsClass(H4503_BasicService::Class()), PInvalidCast
);
281 return new H4503_BasicService(*this);
289 H4503_ExtensionSeq::H4503_ExtensionSeq(unsigned tag
, PASN_Object::TagClass tagClass
)
290 : PASN_Array(tag
, tagClass
)
295 PASN_Object
* H4503_ExtensionSeq::CreateObject() const
297 return new H4501_Extension
;
301 H4501_Extension
& H4503_ExtensionSeq::operator[](PINDEX i
) const
303 return (H4501_Extension
&)array
[i
];
307 PObject
* H4503_ExtensionSeq::Clone() const
309 #ifndef PASN_LEANANDMEAN
310 PAssert(IsClass(H4503_ExtensionSeq::Class()), PInvalidCast
);
312 return new H4503_ExtensionSeq(*this);
317 #ifndef PASN_NOPRINTON
318 const static PASN_Names Names_H4503_IntResult_extension
[]={
320 ,{"nonStandardData",1}
324 // IntResult_extension
327 H4503_IntResult_extension::H4503_IntResult_extension(unsigned tag
, PASN_Object::TagClass tagClass
)
328 : PASN_Choice(tag
, tagClass
, 2, FALSE
329 #ifndef PASN_NOPRINTON
330 ,(const PASN_Names
*)Names_H4503_IntResult_extension
,2
337 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
338 H4503_IntResult_extension::operator H4503_ExtensionSeq
&() const
340 H4503_IntResult_extension::operator H4503_ExtensionSeq
&()
342 #ifndef PASN_LEANANDMEAN
343 PAssert(PIsDescendant(PAssertNULL(choice
), H4503_ExtensionSeq
), PInvalidCast
);
345 return *(H4503_ExtensionSeq
*)choice
;
349 H4503_IntResult_extension::operator const H4503_ExtensionSeq
&() const
352 #ifndef PASN_LEANANDMEAN
353 PAssert(PIsDescendant(PAssertNULL(choice
), H4503_ExtensionSeq
), PInvalidCast
);
355 return *(H4503_ExtensionSeq
*)choice
;
359 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
360 H4503_IntResult_extension::operator H225_NonStandardParameter
&() const
362 H4503_IntResult_extension::operator H225_NonStandardParameter
&()
364 #ifndef PASN_LEANANDMEAN
365 PAssert(PIsDescendant(PAssertNULL(choice
), H225_NonStandardParameter
), PInvalidCast
);
367 return *(H225_NonStandardParameter
*)choice
;
371 H4503_IntResult_extension::operator const H225_NonStandardParameter
&() const
374 #ifndef PASN_LEANANDMEAN
375 PAssert(PIsDescendant(PAssertNULL(choice
), H225_NonStandardParameter
), PInvalidCast
);
377 return *(H225_NonStandardParameter
*)choice
;
381 BOOL
H4503_IntResult_extension::CreateObject()
384 case e_extensionSeq
:
385 choice
= new H4503_ExtensionSeq();
387 case e_nonStandardData
:
388 choice
= new H225_NonStandardParameter();
397 PObject
* H4503_IntResult_extension::Clone() const
399 #ifndef PASN_LEANANDMEAN
400 PAssert(IsClass(H4503_IntResult_extension::Class()), PInvalidCast
);
402 return new H4503_IntResult_extension(*this);
407 #ifndef PASN_NOPRINTON
408 const static PASN_Names Names_H4503_DivertingLegInfo2Arg_extension
[]={
410 ,{"nonStandardData",1}
414 // DivertingLegInfo2Arg_extension
417 H4503_DivertingLegInfo2Arg_extension::H4503_DivertingLegInfo2Arg_extension(unsigned tag
, PASN_Object::TagClass tagClass
)
418 : PASN_Choice(tag
, tagClass
, 2, FALSE
419 #ifndef PASN_NOPRINTON
420 ,(const PASN_Names
*)Names_H4503_DivertingLegInfo2Arg_extension
,2
427 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
428 H4503_DivertingLegInfo2Arg_extension::operator H4503_ExtensionSeq
&() const
430 H4503_DivertingLegInfo2Arg_extension::operator H4503_ExtensionSeq
&()
432 #ifndef PASN_LEANANDMEAN
433 PAssert(PIsDescendant(PAssertNULL(choice
), H4503_ExtensionSeq
), PInvalidCast
);
435 return *(H4503_ExtensionSeq
*)choice
;
439 H4503_DivertingLegInfo2Arg_extension::operator const H4503_ExtensionSeq
&() const
442 #ifndef PASN_LEANANDMEAN
443 PAssert(PIsDescendant(PAssertNULL(choice
), H4503_ExtensionSeq
), PInvalidCast
);
445 return *(H4503_ExtensionSeq
*)choice
;
449 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
450 H4503_DivertingLegInfo2Arg_extension::operator H225_NonStandardParameter
&() const
452 H4503_DivertingLegInfo2Arg_extension::operator H225_NonStandardParameter
&()
454 #ifndef PASN_LEANANDMEAN
455 PAssert(PIsDescendant(PAssertNULL(choice
), H225_NonStandardParameter
), PInvalidCast
);
457 return *(H225_NonStandardParameter
*)choice
;
461 H4503_DivertingLegInfo2Arg_extension::operator const H225_NonStandardParameter
&() const
464 #ifndef PASN_LEANANDMEAN
465 PAssert(PIsDescendant(PAssertNULL(choice
), H225_NonStandardParameter
), PInvalidCast
);
467 return *(H225_NonStandardParameter
*)choice
;
471 BOOL
H4503_DivertingLegInfo2Arg_extension::CreateObject()
474 case e_extensionSeq
:
475 choice
= new H4503_ExtensionSeq();
477 case e_nonStandardData
:
478 choice
= new H225_NonStandardParameter();
487 PObject
* H4503_DivertingLegInfo2Arg_extension::Clone() const
489 #ifndef PASN_LEANANDMEAN
490 PAssert(IsClass(H4503_DivertingLegInfo2Arg_extension::Class()), PInvalidCast
);
492 return new H4503_DivertingLegInfo2Arg_extension(*this);
500 H4503_IntResult::H4503_IntResult(unsigned tag
, PASN_Object::TagClass tagClass
)
501 : PASN_Sequence(tag
, tagClass
, 1, TRUE
, 0)
506 #ifndef PASN_NOPRINTON
507 void H4503_IntResult::PrintOn(ostream
& strm
) const
509 int indent
= strm
.precision() + 2;
511 strm
<< setw(indent
+15) << "servedUserNr = " << setprecision(indent
) << m_servedUserNr
<< '\n';
512 strm
<< setw(indent
+15) << "basicService = " << setprecision(indent
) << m_basicService
<< '\n';
513 strm
<< setw(indent
+12) << "procedure = " << setprecision(indent
) << m_procedure
<< '\n';
514 strm
<< setw(indent
+20) << "divertedToAddress = " << setprecision(indent
) << m_divertedToAddress
<< '\n';
515 strm
<< setw(indent
+16) << "remoteEnabled = " << setprecision(indent
) << m_remoteEnabled
<< '\n';
516 if (HasOptionalField(e_extension
))
517 strm
<< setw(indent
+12) << "extension = " << setprecision(indent
) << m_extension
<< '\n';
518 strm
<< setw(indent
-1) << setprecision(indent
-2) << "}";
523 PObject::Comparison
H4503_IntResult::Compare(const PObject
& obj
) const
525 #ifndef PASN_LEANANDMEAN
526 PAssert(PIsDescendant(&obj
, H4503_IntResult
), PInvalidCast
);
528 const H4503_IntResult
& other
= (const H4503_IntResult
&)obj
;
532 if ((result
= m_servedUserNr
.Compare(other
.m_servedUserNr
)) != EqualTo
)
534 if ((result
= m_basicService
.Compare(other
.m_basicService
)) != EqualTo
)
536 if ((result
= m_procedure
.Compare(other
.m_procedure
)) != EqualTo
)
538 if ((result
= m_divertedToAddress
.Compare(other
.m_divertedToAddress
)) != EqualTo
)
540 if ((result
= m_remoteEnabled
.Compare(other
.m_remoteEnabled
)) != EqualTo
)
542 if ((result
= m_extension
.Compare(other
.m_extension
)) != EqualTo
)
545 return PASN_Sequence::Compare(other
);
549 PINDEX
H4503_IntResult::GetDataLength() const
552 length
+= m_servedUserNr
.GetObjectLength();
553 length
+= m_basicService
.GetObjectLength();
554 length
+= m_procedure
.GetObjectLength();
555 length
+= m_divertedToAddress
.GetObjectLength();
556 length
+= m_remoteEnabled
.GetObjectLength();
557 if (HasOptionalField(e_extension
))
558 length
+= m_extension
.GetObjectLength();
563 BOOL
H4503_IntResult::Decode(PASN_Stream
& strm
)
565 if (!PreambleDecode(strm
))
568 if (!m_servedUserNr
.Decode(strm
))
570 if (!m_basicService
.Decode(strm
))
572 if (!m_procedure
.Decode(strm
))
574 if (!m_divertedToAddress
.Decode(strm
))
576 if (!m_remoteEnabled
.Decode(strm
))
578 if (HasOptionalField(e_extension
) && !m_extension
.Decode(strm
))
581 return UnknownExtensionsDecode(strm
);
585 void H4503_IntResult::Encode(PASN_Stream
& strm
) const
587 PreambleEncode(strm
);
589 m_servedUserNr
.Encode(strm
);
590 m_basicService
.Encode(strm
);
591 m_procedure
.Encode(strm
);
592 m_divertedToAddress
.Encode(strm
);
593 m_remoteEnabled
.Encode(strm
);
594 if (HasOptionalField(e_extension
))
595 m_extension
.Encode(strm
);
597 UnknownExtensionsEncode(strm
);
601 PObject
* H4503_IntResult::Clone() const
603 #ifndef PASN_LEANANDMEAN
604 PAssert(IsClass(H4503_IntResult::Class()), PInvalidCast
);
606 return new H4503_IntResult(*this);
611 // DivertingLegInfo2Arg
614 H4503_DivertingLegInfo2Arg::H4503_DivertingLegInfo2Arg(unsigned tag
, PASN_Object::TagClass tagClass
)
615 : PASN_Sequence(tag
, tagClass
, 6, TRUE
, 0)
617 m_diversionCounter
.SetConstraints(PASN_Object::FixedConstraint
, 1, 15);
618 m_redirectingInfo
.SetConstraints(PASN_Object::FixedConstraint
, 1, 128);
619 m_originalCalledInfo
.SetConstraints(PASN_Object::FixedConstraint
, 1, 128);
623 #ifndef PASN_NOPRINTON
624 void H4503_DivertingLegInfo2Arg::PrintOn(ostream
& strm
) const
626 int indent
= strm
.precision() + 2;
628 strm
<< setw(indent
+19) << "diversionCounter = " << setprecision(indent
) << m_diversionCounter
<< '\n';
629 strm
<< setw(indent
+18) << "diversionReason = " << setprecision(indent
) << m_diversionReason
<< '\n';
630 if (HasOptionalField(e_originalDiversionReason
))
631 strm
<< setw(indent
+26) << "originalDiversionReason = " << setprecision(indent
) << m_originalDiversionReason
<< '\n';
632 if (HasOptionalField(e_divertingNr
))
633 strm
<< setw(indent
+14) << "divertingNr = " << setprecision(indent
) << m_divertingNr
<< '\n';
634 if (HasOptionalField(e_originalCalledNr
))
635 strm
<< setw(indent
+19) << "originalCalledNr = " << setprecision(indent
) << m_originalCalledNr
<< '\n';
636 if (HasOptionalField(e_redirectingInfo
))
637 strm
<< setw(indent
+18) << "redirectingInfo = " << setprecision(indent
) << m_redirectingInfo
<< '\n';
638 if (HasOptionalField(e_originalCalledInfo
))
639 strm
<< setw(indent
+21) << "originalCalledInfo = " << setprecision(indent
) << m_originalCalledInfo
<< '\n';
640 if (HasOptionalField(e_extension
))
641 strm
<< setw(indent
+12) << "extension = " << setprecision(indent
) << m_extension
<< '\n';
642 strm
<< setw(indent
-1) << setprecision(indent
-2) << "}";
647 PObject::Comparison
H4503_DivertingLegInfo2Arg::Compare(const PObject
& obj
) const
649 #ifndef PASN_LEANANDMEAN
650 PAssert(PIsDescendant(&obj
, H4503_DivertingLegInfo2Arg
), PInvalidCast
);
652 const H4503_DivertingLegInfo2Arg
& other
= (const H4503_DivertingLegInfo2Arg
&)obj
;
656 if ((result
= m_diversionCounter
.Compare(other
.m_diversionCounter
)) != EqualTo
)
658 if ((result
= m_diversionReason
.Compare(other
.m_diversionReason
)) != EqualTo
)
660 if ((result
= m_originalDiversionReason
.Compare(other
.m_originalDiversionReason
)) != EqualTo
)
662 if ((result
= m_divertingNr
.Compare(other
.m_divertingNr
)) != EqualTo
)
664 if ((result
= m_originalCalledNr
.Compare(other
.m_originalCalledNr
)) != EqualTo
)
666 if ((result
= m_redirectingInfo
.Compare(other
.m_redirectingInfo
)) != EqualTo
)
668 if ((result
= m_originalCalledInfo
.Compare(other
.m_originalCalledInfo
)) != EqualTo
)
670 if ((result
= m_extension
.Compare(other
.m_extension
)) != EqualTo
)
673 return PASN_Sequence::Compare(other
);
677 PINDEX
H4503_DivertingLegInfo2Arg::GetDataLength() const
680 length
+= m_diversionCounter
.GetObjectLength();
681 length
+= m_diversionReason
.GetObjectLength();
682 if (HasOptionalField(e_originalDiversionReason
))
683 length
+= m_originalDiversionReason
.GetObjectLength();
684 if (HasOptionalField(e_divertingNr
))
685 length
+= m_divertingNr
.GetObjectLength();
686 if (HasOptionalField(e_originalCalledNr
))
687 length
+= m_originalCalledNr
.GetObjectLength();
688 if (HasOptionalField(e_redirectingInfo
))
689 length
+= m_redirectingInfo
.GetObjectLength();
690 if (HasOptionalField(e_originalCalledInfo
))
691 length
+= m_originalCalledInfo
.GetObjectLength();
692 if (HasOptionalField(e_extension
))
693 length
+= m_extension
.GetObjectLength();
698 BOOL
H4503_DivertingLegInfo2Arg::Decode(PASN_Stream
& strm
)
700 if (!PreambleDecode(strm
))
703 if (!m_diversionCounter
.Decode(strm
))
705 if (!m_diversionReason
.Decode(strm
))
707 if (HasOptionalField(e_originalDiversionReason
) && !m_originalDiversionReason
.Decode(strm
))
709 if (HasOptionalField(e_divertingNr
) && !m_divertingNr
.Decode(strm
))
711 if (HasOptionalField(e_originalCalledNr
) && !m_originalCalledNr
.Decode(strm
))
713 if (HasOptionalField(e_redirectingInfo
) && !m_redirectingInfo
.Decode(strm
))
715 if (HasOptionalField(e_originalCalledInfo
) && !m_originalCalledInfo
.Decode(strm
))
717 if (HasOptionalField(e_extension
) && !m_extension
.Decode(strm
))
720 return UnknownExtensionsDecode(strm
);
724 void H4503_DivertingLegInfo2Arg::Encode(PASN_Stream
& strm
) const
726 PreambleEncode(strm
);
728 m_diversionCounter
.Encode(strm
);
729 m_diversionReason
.Encode(strm
);
730 if (HasOptionalField(e_originalDiversionReason
))
731 m_originalDiversionReason
.Encode(strm
);
732 if (HasOptionalField(e_divertingNr
))
733 m_divertingNr
.Encode(strm
);
734 if (HasOptionalField(e_originalCalledNr
))
735 m_originalCalledNr
.Encode(strm
);
736 if (HasOptionalField(e_redirectingInfo
))
737 m_redirectingInfo
.Encode(strm
);
738 if (HasOptionalField(e_originalCalledInfo
))
739 m_originalCalledInfo
.Encode(strm
);
740 if (HasOptionalField(e_extension
))
741 m_extension
.Encode(strm
);
743 UnknownExtensionsEncode(strm
);
747 PObject
* H4503_DivertingLegInfo2Arg::Clone() const
749 #ifndef PASN_LEANANDMEAN
750 PAssert(IsClass(H4503_DivertingLegInfo2Arg::Class()), PInvalidCast
);
752 return new H4503_DivertingLegInfo2Arg(*this);
756 #endif // if ! H323_DISABLE_H4503