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

IP电话/视频会议

开发平台:

WINDOWS

  1. /*
  2.  * $Revision: 1.4 $
  3.  * $Date: 1998/12/21 16:50:13 $
  4.  */
  5. #include <stdio.h>
  6. #include <ctype.h>
  7. #include "api/h4501suppserv.h"
  8. #include "exchange.h"
  9. #include "h450msgs.h"
  10. // Used for switch statement in tItemXxxx()
  11. enum derivedclassType
  12. {
  13. H4502DUMMYRES = 0,
  14. H4502DUMMYARG,
  15. H4502CTSUBADDRESSARG,
  16. H4502CTIDENTIFYRES,
  17. H4502CTINITIATEARG,
  18. H4502CTSETUPARG,
  19. H4502CTUPDATEARG,
  20. H4502CTCOMPLETEARG,
  21. H4502CTACTIVEARG
  22. };
  23. char *blanks[] = {"  ","    ","      ","        ","          ",
  24.   "            ","              ","                ",
  25.   "                  ","                    ",
  26.   "                      "};
  27. char *printError(ProtReturnCode ret, char *msg);
  28. #define PRINT_EXT if(config->verbose) printf
  29. //-------------------------------------
  30. //  Method: H4501SuppService
  31. //-------------------------------------
  32. boolean
  33. extractedSS::tH4501SuppService(H4501SuppService *pSuppService)
  34. {
  35. ProtReturnCode ret;
  36. boolean bret;
  37. boolean valid;
  38. int i;
  39. int indent;
  40. indent = 0;
  41. if(!(valid = pSuppService->Valid())) {
  42. return(valid);
  43. }
  44. //
  45. //  Method: GetNetFacExt
  46. //
  47. H4501FacilityExt FacilityExt;
  48. PRINT_EXT("%sGetNetFacExt()n",blanks[indent]);
  49. ret = pSuppService->GetNetFacExt(FacilityExt);
  50. if (!PROT_IS_SUCCESS(ret)) {
  51. char emsg[128];
  52. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  53. } else {
  54. pssFac = &ssFacilityExt;
  55. bret = tH4501FacilityExt(&FacilityExt, indent+1);
  56. if(!bret) {
  57. PRINT_EXT("%stH4501FacilityExt() not setn",blanks[indent]);
  58. }
  59. //
  60. //  Method: GetInterpAPDU
  61. //
  62. int InterpAPDU;
  63. PRINT_EXT("%sGetInterpAPDU()n",blanks[indent]);
  64. ret = pSuppService->GetInterpAPDU(InterpAPDU);
  65. if (!PROT_IS_SUCCESS(ret)) {
  66. char emsg[128];
  67. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  68. } else {
  69. PRINT_EXT("%sGetInterpAPDU() InterpAPDU = %dn",blanks[indent],InterpAPDU);
  70. ssInterpAPDU = InterpAPDU;
  71. }
  72. //
  73. //  Method: GetNumROSs
  74. //
  75. int count;
  76. PRINT_EXT("%sGetNumROSs()n",blanks[indent]);
  77. ret = pSuppService->GetNumROSs(count);
  78. if (!PROT_IS_SUCCESS(ret)) {
  79. char emsg[128];
  80. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  81. } else {
  82. PRINT_EXT("%sGetNumROSs() count = %dn",blanks[indent],count);
  83. ssNumROSs = count;
  84. }
  85. //
  86. //  Method: GetROSTypes
  87. //
  88. int *ROSTypes;
  89. ROSTypes = new int[count];
  90. PRINT_EXT("%sGetROSTypes()n",blanks[indent]);
  91. ret = pSuppService->GetROSTypes(ROSTypes, count);
  92. if (!PROT_IS_SUCCESS(ret)) {
  93. char emsg[128];
  94. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  95. } else {
  96. ssROSTypes = new int[count];
  97. for(i = 0; i < count; i++) {
  98. ssROSTypes[i] = ROSTypes[i];
  99. }
  100. bret = FALSE;
  101. }
  102. //
  103. //  Method: GetROS
  104. //
  105. for(i = 0; i < count; i++) {
  106. switch(ROSTypes[i]) {
  107. case ROS_INVALID:
  108. {
  109. ssROS[i].type = ROS_INVALID;
  110. PRINT_EXT("%sERROR: ROS() type ROS_INVALIDn",blanks[indent]);
  111. break;
  112. }
  113. case ROS_INVOKE:
  114. {
  115. H4501Invoke ROS;
  116. PRINT_EXT("%sGetROS()[%d] type=%dn",blanks[indent],i,ROSTypes[i]);
  117. ret = pSuppService->GetROS(i, ROS);
  118. if (!PROT_IS_SUCCESS(ret)) {
  119. char emsg[128];
  120. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  121. } else {
  122. pssROS = &ssROS[i];
  123. pssROS->type = ROS_INVOKE;
  124. PRINT_EXT("%stH4501Invoke()n",blanks[indent]);
  125. bret = tH4501Invoke(&ROS, indent+1);
  126. if(!bret) {
  127. PRINT_EXT("%stH4501Invoke() not setn",blanks[indent]);
  128. }
  129. }
  130. break;
  131. }
  132. case ROS_RETURN_RESULT:
  133. {
  134. H4501ReturnResult ROS;
  135. PRINT_EXT("%sGetROS() type=%dn",blanks[indent],ROSTypes[i]);
  136. ret = pSuppService->GetROS(i, ROS);
  137. if (!PROT_IS_SUCCESS(ret)) {
  138. char emsg[128];
  139. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  140. } else {
  141. pssROS = &ssROS[i];
  142. pssROS->type = ROS_RETURN_RESULT;
  143. PRINT_EXT("%stH4501ReturnResult()n",blanks[indent]);
  144. bret = tH4501ReturnResult(&ROS, indent+1);
  145. if(!bret) {
  146. PRINT_EXT("%stH4501ReturnResult() not setn",blanks[indent]);
  147. }
  148. }
  149. break;
  150. }
  151. case ROS_RETURN_ERROR:
  152. {
  153. H4501ReturnError ROS;
  154. PRINT_EXT("%sGetROS() type=%dn",blanks[indent],ROSTypes[i]);
  155. ret = pSuppService->GetROS(i, ROS);
  156. if (!PROT_IS_SUCCESS(ret)) {
  157. char emsg[128];
  158. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  159. } else {
  160. pssROS = &ssROS[i];
  161. pssROS->type = ROS_RETURN_ERROR;
  162. PRINT_EXT("%stH4501ReturnError()n",blanks[indent]);
  163. bret = tH4501ReturnError(&ROS, indent+1);
  164. if(!bret) {
  165. PRINT_EXT("%stH4501ReturnError() not setn",blanks[indent]);
  166. }
  167. }
  168. break;
  169. }
  170. case ROS_REJECT:
  171. {
  172. H4501Reject ROS;
  173. PRINT_EXT("%sGetROS() type=%dn",blanks[indent],ROSTypes[i]);
  174. ret = pSuppService->GetROS(i, ROS);
  175. if (!PROT_IS_SUCCESS(ret)) {
  176. char emsg[128];
  177. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  178. } else {
  179. pssROS = &ssROS[i];
  180. pssROS->type = ROS_REJECT;
  181. PRINT_EXT("%stH4501Reject()n",blanks[indent]);
  182. bret = tH4501Reject(&ROS, indent+1);
  183. if(!bret) {
  184. PRINT_EXT("%stH4501Reject() not setn",blanks[indent]);
  185. }
  186. }
  187. break;
  188. }
  189. default:
  190. PRINT_EXT("%sERROR: ROS() type is not defined %dn",blanks[indent],ROSTypes[i]);
  191. break;
  192. }
  193. }
  194. delete [] ROSTypes;
  195. return(bret);
  196. }
  197. //-------------------------------------
  198. //  Method: ItemExt
  199. //-------------------------------------
  200. boolean
  201. extractedSS::tItemExt(void *pItemExt, int derivedclass, int indent)
  202. {
  203. ProtReturnCode ret;
  204. boolean bret;
  205. int type;
  206. int count;
  207. int i;
  208. H4501Extension *Extension;
  209. H450NonStdParam NonStdParam;
  210. switch(derivedclass) {
  211. case H4502DUMMYRES:
  212. {
  213. H4502DummyRes *pDummyRes;
  214. pDummyRes = (H4502DummyRes *)pItemExt;
  215. type = pDummyRes->GetType();
  216. if(type == EXTT_EXTENSION_SEQUENCE) {
  217. PRINT_EXT("%sGetNumExtensions()n",blanks[indent]);
  218. ret = pDummyRes->GetNumExtensions(count);
  219. if (!PROT_IS_SUCCESS(ret)) {
  220. char emsg[128];
  221. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  222. } else {
  223. PRINT_EXT("%sGetNumExtensions() count = %dn",blanks[indent],count);
  224. Extension = new H4501Extension[count];
  225. PRINT_EXT("%sGetExtensions()n",blanks[indent]);
  226. ret = pDummyRes->GetExtensions(Extension, count);
  227. if (!PROT_IS_SUCCESS(ret)) {
  228. char emsg[128];
  229. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  230. } else {
  231. pssRes->NumExtension = count;
  232. pssRes->Extension = new H4501Extension[count];
  233. for(i = 0; i < count; i++) {
  234. pssRes->Extension[i] = Extension[i];
  235. }
  236. }
  237. delete [] Extension;
  238. }
  239. } else if(type == EXTT_NON_STANDARD_DATA) {
  240. PRINT_EXT("%sGetNonStdData()n",blanks[indent]);
  241. ret = pDummyRes->GetNonStdData(NonStdParam);
  242. if (!PROT_IS_SUCCESS(ret)) {
  243. char emsg[128];
  244. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  245. } else {
  246. pssRes->NonStdParam = new H450NonStdParam;
  247. *pssRes->NonStdParam = NonStdParam;
  248. }
  249. }
  250. break;
  251. }
  252. case H4502DUMMYARG:
  253. {
  254. H4502DummyArg *pDummyArg;
  255. pDummyArg = (H4502DummyArg *)pItemExt;
  256. type = pDummyArg->GetType();
  257. if(type == EXTT_EXTENSION_SEQUENCE) {
  258. PRINT_EXT("%sGetNumExtensions()n",blanks[indent]);
  259. ret = pDummyArg->GetNumExtensions(count);
  260. if (!PROT_IS_SUCCESS(ret)) {
  261. char emsg[128];
  262. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  263. } else {
  264. PRINT_EXT("%sGetNumExtensions() count = %dn",blanks[indent],count);
  265. Extension = new H4501Extension[count];
  266. PRINT_EXT("%sGetExtensions()n",blanks[indent]);
  267. ret = pDummyArg->GetExtensions(Extension, count);
  268. if (!PROT_IS_SUCCESS(ret)) {
  269. char emsg[128];
  270. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  271. } else {
  272. pssArg->NumExtension = count;
  273. pssArg->Extension = new H4501Extension[count];
  274. for(i = 0; i < count; i++) {
  275. pssArg->Extension[i] = Extension[i];
  276. }
  277. }
  278. delete [] Extension;
  279. }
  280. } else if(type == EXTT_NON_STANDARD_DATA) {
  281. PRINT_EXT("%sGetNonStdData()n",blanks[indent]);
  282. ret = pDummyArg->GetNonStdData(NonStdParam);
  283. if (!PROT_IS_SUCCESS(ret)) {
  284. char emsg[128];
  285. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  286. } else {
  287. pssArg->NonStdParam = new H450NonStdParam;
  288. *pssArg->NonStdParam = NonStdParam;
  289. }
  290. }
  291. break;
  292. }
  293. case H4502CTSUBADDRESSARG:
  294. {
  295. H4502CTSubaddressArg *pCTSubaddressArg;
  296. pCTSubaddressArg = (H4502CTSubaddressArg *)pItemExt;
  297. type = pCTSubaddressArg->GetType();
  298. if(type == EXTT_EXTENSION_SEQUENCE) {
  299. PRINT_EXT("%sGetNumExtensions()n",blanks[indent]);
  300. ret = pCTSubaddressArg->GetNumExtensions(count);
  301. if (!PROT_IS_SUCCESS(ret)) {
  302. char emsg[128];
  303. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  304. } else {
  305. PRINT_EXT("%sGetNumExtensions() count = %dn",blanks[indent],count);
  306. Extension = new H4501Extension[count];
  307. PRINT_EXT("%sGetExtensions()n",blanks[indent]);
  308. ret = pCTSubaddressArg->GetExtensions(Extension, count);
  309. if (!PROT_IS_SUCCESS(ret)) {
  310. char emsg[128];
  311. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  312. } else {
  313. pssArg->NumExtension = count;
  314. pssArg->Extension = new H4501Extension[count];
  315. for(i = 0; i < count; i++) {
  316. pssArg->Extension[i] = Extension[i];
  317. }
  318. }
  319. delete [] Extension;
  320. }
  321. } else if(type == EXTT_NON_STANDARD_DATA) {
  322. PRINT_EXT("%sGetNonStdData()n",blanks[indent]);
  323. ret = pCTSubaddressArg->GetNonStdData(NonStdParam);
  324. if (!PROT_IS_SUCCESS(ret)) {
  325. char emsg[128];
  326. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  327. } else {
  328. pssArg->NonStdParam = new H450NonStdParam;
  329. *pssArg->NonStdParam = NonStdParam;
  330. }
  331. }
  332. break;
  333. }
  334. case H4502CTIDENTIFYRES:
  335. {
  336. H4502CTIdentifyRes *pCTIdentifyRes;
  337. pCTIdentifyRes = (H4502CTIdentifyRes *)pItemExt;
  338. type = pCTIdentifyRes->GetType();
  339. if(type == EXTT_EXTENSION_SEQUENCE) {
  340. PRINT_EXT("%sGetNumExtensions()n",blanks[indent]);
  341. ret = pCTIdentifyRes->GetNumExtensions(count);
  342. if (!PROT_IS_SUCCESS(ret)) {
  343. char emsg[128];
  344. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  345. } else {
  346. PRINT_EXT("%sGetNumExtensions() count = %dn",blanks[indent],count);
  347. Extension = new H4501Extension[count];
  348. PRINT_EXT("%sGetExtensions()n",blanks[indent]);
  349. ret = pCTIdentifyRes->GetExtensions(Extension, count);
  350. if (!PROT_IS_SUCCESS(ret)) {
  351. char emsg[128];
  352. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  353. } else {
  354. pssRes->NumExtension = count;
  355. pssRes->Extension = new H4501Extension[count];
  356. for(i = 0; i < count; i++) {
  357. pssRes->Extension[i] = Extension[i];
  358. }
  359. }
  360. delete [] Extension;
  361. }
  362. } else if(type == EXTT_NON_STANDARD_DATA) {
  363. PRINT_EXT("%sGetNonStdData()n",blanks[indent]);
  364. ret = pCTIdentifyRes->GetNonStdData(NonStdParam);
  365. if (!PROT_IS_SUCCESS(ret)) {
  366. char emsg[128];
  367. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  368. } else {
  369. pssRes->NonStdParam = new H450NonStdParam;
  370. *pssRes->NonStdParam = NonStdParam;
  371. }
  372. }
  373. break;
  374. }
  375. case H4502CTINITIATEARG:
  376. {
  377. H4502CTInitiateArg *pCTInitiateArg;
  378. pCTInitiateArg = (H4502CTInitiateArg *)pItemExt;
  379. type = pCTInitiateArg->GetType();
  380. if(type == EXTT_EXTENSION_SEQUENCE) {
  381. PRINT_EXT("%sGetNumExtensions()n",blanks[indent]);
  382. ret = pCTInitiateArg->GetNumExtensions(count);
  383. if (!PROT_IS_SUCCESS(ret)) {
  384. char emsg[128];
  385. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  386. } else {
  387. PRINT_EXT("%sGetNumExtensions() count = %dn",blanks[indent],count);
  388. Extension = new H4501Extension[count];
  389. PRINT_EXT("%sGetExtensions()n",blanks[indent]);
  390. ret = pCTInitiateArg->GetExtensions(Extension, count);
  391. if (!PROT_IS_SUCCESS(ret)) {
  392. char emsg[128];
  393. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  394. } else {
  395. pssArg->NumExtension = count;
  396. pssArg->Extension = new H4501Extension[count];
  397. for(i = 0; i < count; i++) {
  398. pssArg->Extension[i] = Extension[i];
  399. }
  400. }
  401. delete [] Extension;
  402. }
  403. } else if(type == EXTT_NON_STANDARD_DATA) {
  404. PRINT_EXT("%sGetNonStdData()n",blanks[indent]);
  405. ret = pCTInitiateArg->GetNonStdData(NonStdParam);
  406. if (!PROT_IS_SUCCESS(ret)) {
  407. char emsg[128];
  408. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  409. } else {
  410. pssArg->NonStdParam = new H450NonStdParam;
  411. *pssArg->NonStdParam = NonStdParam;
  412. }
  413. }
  414. break;
  415. }
  416. case H4502CTSETUPARG:
  417. {
  418. H4502CTSetupArg *pCTSetupArg;
  419. pCTSetupArg = (H4502CTSetupArg *)pItemExt;
  420. type = pCTSetupArg->GetType();
  421. if(type == EXTT_EXTENSION_SEQUENCE) {
  422. PRINT_EXT("%sGetNumExtensions()n",blanks[indent]);
  423. ret = pCTSetupArg->GetNumExtensions(count);
  424. if (!PROT_IS_SUCCESS(ret)) {
  425. char emsg[128];
  426. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  427. } else {
  428. PRINT_EXT("%sGetNumExtensions() count = %dn",blanks[indent],count);
  429. Extension = new H4501Extension[count];
  430. PRINT_EXT("%sGetExtensions()n",blanks[indent]);
  431. ret = pCTSetupArg->GetExtensions(Extension, count);
  432. if (!PROT_IS_SUCCESS(ret)) {
  433. char emsg[128];
  434. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  435. } else {
  436. pssArg->NumExtension = count;
  437. pssArg->Extension = new H4501Extension[count];
  438. for(i = 0; i < count; i++) {
  439. pssArg->Extension[i] = Extension[i];
  440. }
  441. }
  442. delete [] Extension;
  443. }
  444. } else if(type == EXTT_NON_STANDARD_DATA) {
  445. PRINT_EXT("%sGetNonStdData()n",blanks[indent]);
  446. ret = pCTSetupArg->GetNonStdData(NonStdParam);
  447. if (!PROT_IS_SUCCESS(ret)) {
  448. char emsg[128];
  449. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  450. } else {
  451. pssArg->NonStdParam = new H450NonStdParam;
  452. *pssArg->NonStdParam = NonStdParam;
  453. }
  454. }
  455. break;
  456. }
  457. case H4502CTUPDATEARG:
  458. {
  459. H4502CTUpdateArg *pCTUpdateArg;
  460. pCTUpdateArg = (H4502CTUpdateArg *)pItemExt;
  461. type = pCTUpdateArg->GetType();
  462. if(type == EXTT_EXTENSION_SEQUENCE) {
  463. PRINT_EXT("%sGetNumExtensions()n",blanks[indent]);
  464. ret = pCTUpdateArg->GetNumExtensions(count);
  465. if (!PROT_IS_SUCCESS(ret)) {
  466. char emsg[128];
  467. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  468. } else {
  469. PRINT_EXT("%sGetNumExtensions() count = %dn",blanks[indent],count);
  470. Extension = new H4501Extension[count];
  471. PRINT_EXT("%sGetExtensions()n",blanks[indent]);
  472. ret = pCTUpdateArg->GetExtensions(Extension, count);
  473. if (!PROT_IS_SUCCESS(ret)) {
  474. char emsg[128];
  475. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  476. } else {
  477. pssArg->NumExtension = count;
  478. pssArg->Extension = new H4501Extension[count];
  479. for(i = 0; i < count; i++) {
  480. pssArg->Extension[i] = Extension[i];
  481. }
  482. }
  483. delete [] Extension;
  484. }
  485. } else if(type == EXTT_NON_STANDARD_DATA) {
  486. PRINT_EXT("%sGetNonStdData()n",blanks[indent]);
  487. ret = pCTUpdateArg->GetNonStdData(NonStdParam);
  488. if (!PROT_IS_SUCCESS(ret)) {
  489. char emsg[128];
  490. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  491. } else {
  492. pssArg->NonStdParam = new H450NonStdParam;
  493. *pssArg->NonStdParam = NonStdParam;
  494. }
  495. }
  496. break;
  497. }
  498. case H4502CTCOMPLETEARG:
  499. {
  500. H4502CTCompleteArg *pCTCompleteArg;
  501. pCTCompleteArg = (H4502CTCompleteArg *)pItemExt;
  502. type = pCTCompleteArg->GetType();
  503. if(type == EXTT_EXTENSION_SEQUENCE) {
  504. PRINT_EXT("%sGetNumExtensions()n",blanks[indent]);
  505. ret = pCTCompleteArg->GetNumExtensions(count);
  506. if (!PROT_IS_SUCCESS(ret)) {
  507. char emsg[128];
  508. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  509. } else {
  510. PRINT_EXT("%sGetNumExtensions() count = %dn",blanks[indent],count);
  511. Extension = new H4501Extension[count];
  512. PRINT_EXT("%sGetExtensions()n",blanks[indent]);
  513. ret = pCTCompleteArg->GetExtensions(Extension, count);
  514. if (!PROT_IS_SUCCESS(ret)) {
  515. char emsg[128];
  516. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  517. } else {
  518. pssArg->NumExtension = count;
  519. pssArg->Extension = new H4501Extension[count];
  520. for(i = 0; i < count; i++) {
  521. pssArg->Extension[i] = Extension[i];
  522. }
  523. }
  524. delete [] Extension;
  525. }
  526. } else if(type == EXTT_NON_STANDARD_DATA) {
  527. PRINT_EXT("%sGetNonStdData()n",blanks[indent]);
  528. ret = pCTCompleteArg->GetNonStdData(NonStdParam);
  529. if (!PROT_IS_SUCCESS(ret)) {
  530. char emsg[128];
  531. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  532. } else {
  533. pssArg->NonStdParam = new H450NonStdParam;
  534. *pssArg->NonStdParam = NonStdParam;
  535. }
  536. }
  537. break;
  538. }
  539. case H4502CTACTIVEARG:
  540. {
  541. H4502CTActiveArg *pCTActiveArg;
  542. pCTActiveArg = (H4502CTActiveArg *)pItemExt;
  543. type = pCTActiveArg->GetType();
  544. if(type == EXTT_EXTENSION_SEQUENCE) {
  545. PRINT_EXT("%sGetNumExtensions()n",blanks[indent]);
  546. ret = pCTActiveArg->GetNumExtensions(count);
  547. if (!PROT_IS_SUCCESS(ret)) {
  548. char emsg[128];
  549. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  550. } else {
  551. PRINT_EXT("%sGetNumExtensions() count = %dn",blanks[indent],count);
  552. Extension = new H4501Extension[count];
  553. PRINT_EXT("%sGetExtensions()n",blanks[indent]);
  554. ret = pCTActiveArg->GetExtensions(Extension, count);
  555. if (!PROT_IS_SUCCESS(ret)) {
  556. char emsg[128];
  557. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  558. } else {
  559. pssArg->NumExtension = count;
  560. pssArg->Extension = new H4501Extension[count];
  561. for(i = 0; i < count; i++) {
  562. pssArg->Extension[i] = Extension[i];
  563. }
  564. }
  565. delete [] Extension;
  566. }
  567. } else if(type == EXTT_NON_STANDARD_DATA) {
  568. PRINT_EXT("%sGetNonStdData()n",blanks[indent]);
  569. ret = pCTActiveArg->GetNonStdData(NonStdParam);
  570. if (!PROT_IS_SUCCESS(ret)) {
  571. char emsg[128];
  572. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  573. } else {
  574. pssArg->NonStdParam = new H450NonStdParam;
  575. *pssArg->NonStdParam = NonStdParam;
  576. }
  577. }
  578. break;
  579. }
  580. default:
  581. PRINT_EXT("%sERROR: tItemExt() invalid derivedclass %dn",blanks[indent],derivedclass);
  582. return(FALSE);
  583. break;
  584. }
  585. if(type == EXTT_EXTENSION_SEQUENCE) {
  586. for(i = 0; i < count; i++) {
  587. bret = tH4501Extension(&Extension[i], indent+1);
  588. if(!bret) {
  589. PRINT_EXT("%stH4501Extension() Extension[%d] not setn",blanks[indent],i);
  590. }
  591. }
  592. PRINT_EXT("%sGetExtensions() count = %dn",blanks[indent],count);
  593. } else if(type == EXTT_NON_STANDARD_DATA) {
  594. bret = tH450NonStdParam(&NonStdParam, indent+1);
  595. if(!bret) {
  596. PRINT_EXT("%stH450NonStdParam() not setn",blanks[indent]);
  597. }
  598. } else if(type == EXTT_INVALID) {
  599. PRINT_EXT("%sERROR: ItemExt() type is EXTT_INVALIDn",blanks[indent]);
  600. bret = FALSE;
  601. } else {
  602. PRINT_EXT("%sERROR: ItemExt() type is not defined %dn",blanks[indent],type);
  603. bret = FALSE;
  604. }
  605. return(bret);
  606. }
  607. //-------------------------------------
  608. //  Method: ItemCallId
  609. //-------------------------------------
  610. boolean
  611. extractedSS::tItemCallId(void *pItemCallId, int derivedclass, int indent)
  612. {
  613. ProtReturnCode ret;
  614. boolean bret;
  615. int is_arg;
  616. //
  617. //  Method: GetCallID
  618. //
  619. char *char_str;
  620. //RM char_str = new char[5];
  621. int length;
  622. PRINT_EXT("%sGetCallID()n",blanks[indent]);
  623. is_arg = 1;
  624. switch(derivedclass) {
  625. case H4502CTIDENTIFYRES:
  626. {
  627. H4502CTIdentifyRes *pCTIdentifyRes;
  628. pCTIdentifyRes = (H4502CTIdentifyRes *)pItemCallId;
  629. ret = pCTIdentifyRes->GetCallID(char_str, length);
  630. is_arg = 0;
  631. break;
  632. }
  633. case H4502CTINITIATEARG:
  634. {
  635. H4502CTInitiateArg *pCTInitiateArg;
  636. pCTInitiateArg = (H4502CTInitiateArg *)pItemCallId;
  637. ret = pCTInitiateArg->GetCallID(char_str, length);
  638. break;
  639. }
  640. case H4502CTSETUPARG:
  641. {
  642. H4502CTSetupArg *pCTSetupArg;
  643. pCTSetupArg = (H4502CTSetupArg *)pItemCallId;
  644. ret = pCTSetupArg->GetCallID(char_str, length);
  645. break;
  646. }
  647. default:
  648. PRINT_EXT("%sERROR: tItemCallId() invalid derivedclass %dn",blanks[indent],derivedclass);
  649. return(FALSE);
  650. break;
  651. }
  652. if (!PROT_IS_SUCCESS(ret)) {
  653. char emsg[128];
  654. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  655. bret = FALSE;
  656. } else {
  657. if(is_arg == 1) {
  658. strncpy(pssArg->CallID,char_str,length);
  659. } else {
  660. strncpy(pssRes->CallID,char_str,length);
  661. }
  662. char retstr[MAXOUTSTR];
  663. PRINT_EXT("%sGetCallID() char_str = %sn",blanks[indent],
  664. sprint_string((unsigned char *)char_str, MAXSTRLEN(length), retstr));
  665. PRINT_EXT("%sGetCallID() length = %dn",blanks[indent],length);
  666. bret = TRUE;
  667. }
  668. return(bret);
  669. }
  670. //-------------------------------------
  671. //  Method: ItemNumber
  672. //-------------------------------------
  673. boolean
  674. extractedSS::tItemNumber(void *pItemNumber, int derivedclass, int indent)
  675. {
  676. ProtReturnCode ret;
  677. boolean bret;
  678. int is_arg;
  679. //
  680. //  Method: GetNumber
  681. //
  682. H4501EndpointAddr EndpointAddr;
  683. PRINT_EXT("%sGetNumber()n",blanks[indent]);
  684. is_arg = 1;
  685. switch(derivedclass) {
  686. case H4502CTIDENTIFYRES:
  687. {
  688. H4502CTIdentifyRes *pCTIdentifyRes;
  689. pCTIdentifyRes = (H4502CTIdentifyRes *)pItemNumber;
  690. ret = pCTIdentifyRes->GetNumber(EndpointAddr);
  691. is_arg = 0;
  692. break;
  693. }
  694. case H4502CTINITIATEARG:
  695. {
  696. H4502CTInitiateArg *pCTInitiateArg;
  697. pCTInitiateArg = (H4502CTInitiateArg *)pItemNumber;
  698. ret = pCTInitiateArg->GetNumber(EndpointAddr);
  699. break;
  700. }
  701. case H4502CTSETUPARG:
  702. {
  703. H4502CTSetupArg *pCTSetupArg;
  704. pCTSetupArg = (H4502CTSetupArg *)pItemNumber;
  705. ret = pCTSetupArg->GetNumber(EndpointAddr);
  706. break;
  707. }
  708. case H4502CTUPDATEARG:
  709. {
  710. H4502CTUpdateArg *pCTUpdateArg;
  711. pCTUpdateArg = (H4502CTUpdateArg *)pItemNumber;
  712. ret = pCTUpdateArg->GetNumber(EndpointAddr);
  713. break;
  714. }
  715. case H4502CTCOMPLETEARG:
  716. {
  717. H4502CTCompleteArg *pCTCompleteArg;
  718. pCTCompleteArg = (H4502CTCompleteArg *)pItemNumber;
  719. ret = pCTCompleteArg->GetNumber(EndpointAddr);
  720. break;
  721. }
  722. case H4502CTACTIVEARG:
  723. {
  724. H4502CTActiveArg *pCTActiveArg;
  725. pCTActiveArg = (H4502CTActiveArg *)pItemNumber;
  726. ret = pCTActiveArg->GetNumber(EndpointAddr);
  727. break;
  728. }
  729. default:
  730. PRINT_EXT("%sERROR: tItemNumber() invalid derivedclass %dn",blanks[indent],derivedclass);
  731. return(FALSE);
  732. break;
  733. }
  734. if (!PROT_IS_SUCCESS(ret)) {
  735. char emsg[128];
  736. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  737. bret = FALSE;
  738. } else {
  739. if(is_arg == 1) {
  740. pssArg->EndpointAddr = new H4501EndpointAddr;
  741. *pssArg->EndpointAddr = EndpointAddr;
  742. } else {
  743. pssRes->EndpointAddr = new H4501EndpointAddr;
  744. *pssRes->EndpointAddr = EndpointAddr;
  745. }
  746. bret = tH4501EndpointAddr(&EndpointAddr, indent+1);
  747. if(!bret) {
  748. PRINT_EXT("%stH4501EndpointAddr() not setn",blanks[indent]);
  749. }
  750. }
  751. return(bret);
  752. }
  753. //-------------------------------------
  754. //  Method: ItemInfo
  755. //-------------------------------------
  756. boolean
  757. extractedSS::tItemInfo(void *pItemInfo, int derivedclass, int indent)
  758. {
  759. ProtReturnCode ret;
  760. boolean bret;
  761. //
  762. //  Method: GetInfo
  763. //
  764. unsigned short *short_str;
  765. //RM short_str = new unsigned short[128];
  766. int length;
  767. PRINT_EXT("%sGetInfo()n",blanks[indent]);
  768. switch(derivedclass) {
  769. case H4502CTUPDATEARG:
  770. {
  771. H4502CTUpdateArg *pCTUpdateArg;
  772. pCTUpdateArg = (H4502CTUpdateArg *)pItemInfo;
  773. ret = pCTUpdateArg->GetInfo(short_str, length);
  774. break;
  775. }
  776. case H4502CTCOMPLETEARG:
  777. {
  778. H4502CTCompleteArg *pCTCompleteArg;
  779. pCTCompleteArg = (H4502CTCompleteArg *)pItemInfo;
  780. ret = pCTCompleteArg->GetInfo(short_str, length);
  781. break;
  782. }
  783. case H4502CTACTIVEARG:
  784. {
  785. H4502CTActiveArg *pCTActiveArg;
  786. pCTActiveArg = (H4502CTActiveArg *)pItemInfo;
  787. ret = pCTActiveArg->GetInfo(short_str, length);
  788. break;
  789. }
  790. default:
  791. PRINT_EXT("%sERROR: tItemCallId() invalid derivedclass %dn",blanks[indent],derivedclass);
  792. return(FALSE);
  793. break;
  794. }
  795. if (!PROT_IS_SUCCESS(ret)) {
  796. char emsg[128];
  797. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  798. bret = FALSE;
  799. } else {
  800. pssArg->pInfo = short_str;
  801. pssArg->lenInfo = length;
  802. PRINT_EXT("%sGetInfo() short_str = %d,%d,...n",blanks[indent],short_str[0],short_str[1]);
  803. PRINT_EXT("%sGetInfo() length = %dn",blanks[indent],length);
  804. bret = TRUE;
  805. }
  806. return(bret);
  807. }
  808. //-------------------------------------
  809. //  Method: ItemElements
  810. //-------------------------------------
  811. boolean
  812. extractedSS::tItemElements(void *pItemElements, int derivedclass, int indent)
  813. {
  814. ProtReturnCode ret;
  815. boolean bret;
  816. //
  817. //  Method: GetH225IE
  818. //
  819. H4501H225IE H225IE;
  820. PRINT_EXT("%sGetH225IE()n",blanks[indent]);
  821. switch(derivedclass){
  822. case H4502CTUPDATEARG:
  823. {
  824. H4502CTUpdateArg *pCTUpdateArg;
  825. pCTUpdateArg = (H4502CTUpdateArg *)pItemElements;
  826. ret = pCTUpdateArg->GetH225IE(H225IE);
  827. break;
  828. }
  829. case H4502CTCOMPLETEARG:
  830. {
  831. H4502CTCompleteArg *pCTCompleteArg;
  832. pCTCompleteArg = (H4502CTCompleteArg *)pItemElements;
  833. ret = pCTCompleteArg->GetH225IE(H225IE);
  834. break;
  835. }
  836. case H4502CTACTIVEARG:
  837. {
  838. H4502CTActiveArg *pCTActiveArg;
  839. pCTActiveArg = (H4502CTActiveArg *)pItemElements;
  840. ret = pCTActiveArg->GetH225IE(H225IE);
  841. break;
  842. }
  843. default:
  844. PRINT_EXT("%sERROR: tItemCallId() invalid derivedclass %dn",blanks[indent],derivedclass);
  845. return(FALSE);
  846. break;
  847. if (!PROT_IS_SUCCESS(ret)) {
  848. char emsg[128];
  849. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  850. bret = FALSE;
  851. } else {
  852. pssArg->H225IE = new H4501H225IE;
  853. *pssArg->H225IE = H225IE;
  854. bret = tH4501H225IE(&H225IE, indent+1);
  855. if(!bret) {
  856. PRINT_EXT("%stH4501H225IE() not setn",blanks[indent]);
  857. }
  858. }
  859. return(bret);
  860. }
  861. //-------------------------------------
  862. //  Method: H4501FacilityExt
  863. //-------------------------------------
  864. boolean
  865. extractedSS::tH4501FacilityExt(H4501FacilityExt *pFacilityExt, int indent)
  866. {
  867. ProtReturnCode ret;
  868. boolean bret;
  869. H450AliasAddress AliasAddress;
  870. if(!(bret = pFacilityExt->Valid())) {
  871. return(bret);
  872. }
  873. //
  874. //  Method: GetSrcEntity
  875. //
  876. int SrcEntity;
  877. PRINT_EXT("%sGetSrcEntity()n",blanks[indent]);
  878. ret = pFacilityExt->GetSrcEntity(SrcEntity);
  879. if (!PROT_IS_SUCCESS(ret)) {
  880. char emsg[128];
  881. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  882. } else {
  883. PRINT_EXT("%sGetSrcEntity() SrcEntity = %dn",blanks[indent],SrcEntity);
  884. pssFac->SrcEntity = SrcEntity;
  885. pssFac->isSet = TRUE;
  886. }
  887. //
  888. //  Method: GetSrcEntityAddr
  889. //
  890. PRINT_EXT("%sGetSrcEntityAddr()n",blanks[indent]);
  891. ret = pFacilityExt->GetSrcEntityAddr(AliasAddress);
  892. if (!PROT_IS_SUCCESS(ret)) {
  893. char emsg[128];
  894. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  895. } else {
  896. bret = tH450AliasAddress(&AliasAddress, indent+1);
  897. if(!bret) {
  898. PRINT_EXT("%stH450AliasAddress() not setn",blanks[indent]);
  899. } else {
  900. pssFac->isSet = TRUE;
  901. pssFac->SrcAliasAddr = new H450AliasAddress;
  902. *pssFac->SrcAliasAddr = AliasAddress;
  903. }
  904. }
  905. //
  906. //  Method: GetDstEntity
  907. //
  908. int DstEntity;
  909. PRINT_EXT("%sGetDstEntity()n",blanks[indent]);
  910. ret = pFacilityExt->GetDstEntity(DstEntity);
  911. if (!PROT_IS_SUCCESS(ret)) {
  912. char emsg[128];
  913. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  914. } else {
  915. PRINT_EXT("%sGetDstEntity() DstEntity = %dn",blanks[indent],DstEntity);
  916. pssFac->DstEntity = DstEntity;
  917. pssFac->isSet = TRUE;
  918. }
  919. //
  920. //  Method: GetDstEntityAddr
  921. //
  922. PRINT_EXT("%sGetDstEntityAddr()n",blanks[indent]);
  923. ret = pFacilityExt->GetDstEntityAddr(AliasAddress);
  924. if (!PROT_IS_SUCCESS(ret)) {
  925. char emsg[128];
  926. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  927. } else {
  928. bret = tH450AliasAddress(&AliasAddress, indent+1);
  929. if(!bret) {
  930. PRINT_EXT("%stH450AliasAddress() not setn",blanks[indent]);
  931. } else {
  932. pssFac->isSet = TRUE;
  933. pssFac->DstAliasAddr = new H450AliasAddress;
  934. *pssFac->DstAliasAddr = AliasAddress;
  935. }
  936. }
  937. return(TRUE);
  938. }
  939. //-------------------------------------
  940. //  Method: H4501Invoke
  941. //-------------------------------------
  942. boolean
  943. extractedSS::tH4501Invoke(H4501Invoke *pInvoke, int indent)
  944. {
  945. ProtReturnCode ret;
  946. boolean bret;
  947. if(!(bret = pInvoke->Valid())) {
  948. return(bret);
  949. }
  950. //
  951. //  Method: GetInvokeId
  952. //
  953. int InvokeId;
  954. PRINT_EXT("%sGetInvokeId()n",blanks[indent]);
  955. ret = pInvoke->GetInvokeId(InvokeId);
  956. if (!PROT_IS_SUCCESS(ret)) {
  957. char emsg[128];
  958. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  959. } else {
  960. PRINT_EXT("%sGetInvokeId() InvokeId = %dn",blanks[indent],InvokeId);
  961. pssROS->InvokeId = InvokeId;
  962. }
  963. //
  964. //  Method: GetCode
  965. //
  966. H4501Code Code;
  967. PRINT_EXT("%sGetCode()n",blanks[indent]);
  968. ret = pInvoke->GetCode(Code);
  969. if (!PROT_IS_SUCCESS(ret)) {
  970. char emsg[128];
  971. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  972. } else {
  973. pssCode = &pssROS->code;
  974. bret = tH4501Code(&Code, indent+1);
  975. if(!bret) {
  976. PRINT_EXT("%stH4501Code() not setn",blanks[indent]);
  977. }
  978. }
  979. //
  980. //  Method: GetArgumentType
  981. //
  982. int Argtype;
  983. PRINT_EXT("%sGetArgumentType()n",blanks[indent]);
  984. ret = pInvoke->GetArgumentType(Argtype);
  985. if (!PROT_IS_SUCCESS(ret)) {
  986. char emsg[128];
  987. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  988. } else {
  989. pssROS->Arg.type = Argtype;
  990. //
  991. //  Method: GetArg
  992. //
  993. H450Arg *Arg;
  994. PRINT_EXT("%sH450Arg::Factory()n",blanks[indent]);
  995. ret = H450Arg::Factory(Arg, Argtype);
  996. if (!PROT_IS_SUCCESS(ret)) {
  997. char emsg[128];
  998. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  999. } else {
  1000. PRINT_EXT("%sGetArgument() type=%dn",blanks[indent],Argtype);
  1001. ret = pInvoke->GetArgument(*Arg);
  1002. if (!PROT_IS_SUCCESS(ret)) {
  1003. char emsg[128];
  1004. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1005. } else {
  1006. pssArg = &pssROS->Arg;
  1007. bret = tH450Arg((void *)Arg, Argtype, indent+1);
  1008. if(!bret) {
  1009. PRINT_EXT("%stH450Arg() not setn",blanks[indent]);
  1010. }
  1011. }
  1012. }
  1013. }
  1014. //
  1015. //  Method: GetLinkedId
  1016. //
  1017. int LinkedId;
  1018. PRINT_EXT("%sGetLinkedId()n",blanks[indent]);
  1019. ret = pInvoke->GetLinkedId(LinkedId);
  1020. if (!PROT_IS_SUCCESS(ret)) {
  1021. char emsg[128];
  1022. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1023. } else {
  1024. PRINT_EXT("%sGetLinkedId() LinkedId = %dn",blanks[indent],LinkedId);
  1025. pssROS->LinkedId = LinkedId;
  1026. }
  1027. return(TRUE);
  1028. }
  1029. //-------------------------------------
  1030. //  Method: H4501ReturnResult
  1031. //-------------------------------------
  1032. boolean
  1033. extractedSS::tH4501ReturnResult(H4501ReturnResult *pReturnResult, int indent)
  1034. {
  1035. ProtReturnCode ret;
  1036. boolean bret;
  1037. if(!(bret = pReturnResult->Valid())) {
  1038. return(bret);
  1039. }
  1040. //
  1041. //  Method: GetInvokeId
  1042. //
  1043. int InvokeId;
  1044. PRINT_EXT("%sGetInvokeId()n",blanks[indent]);
  1045. ret = pReturnResult->GetInvokeId(InvokeId);
  1046. if (!PROT_IS_SUCCESS(ret)) {
  1047. char emsg[128];
  1048. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1049. } else {
  1050. PRINT_EXT("%sGetInvokeId() InvokeId = %dn",blanks[indent],InvokeId);
  1051. pssROS->InvokeId = InvokeId;
  1052. }
  1053. //
  1054. //  Method: GetResultType
  1055. //
  1056. int Restype;
  1057. PRINT_EXT("%sGetResultType()n",blanks[indent]);
  1058. ret = pReturnResult->GetResultType(Restype);
  1059. if (!PROT_IS_SUCCESS(ret)) {
  1060. char emsg[128];
  1061. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1062. } else {
  1063. pssROS->Res.type = Restype;
  1064. //
  1065. //  Method: GetResult
  1066. //
  1067. H4501Code Code;
  1068. H450Res *Res;
  1069. PRINT_EXT("%sH450Res::Factory()n",blanks[indent]);
  1070. ret = H450Res::Factory(Res, Restype);
  1071. if (!PROT_IS_SUCCESS(ret)) {
  1072. char emsg[128];
  1073. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1074. } else {
  1075. PRINT_EXT("%sGetResult() type=%dn",blanks[indent],Restype);
  1076. ret = pReturnResult->GetResult(Code, *Res);
  1077. if (!PROT_IS_SUCCESS(ret)) {
  1078. char emsg[128];
  1079. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1080. } else {
  1081. pssCode = &pssROS->code;
  1082. bret = tH4501Code(&Code, indent+1);
  1083. if(!bret) {
  1084. PRINT_EXT("%stH4501Code() not setn",blanks[indent]);
  1085. }
  1086. pssRes = &pssROS->Res;
  1087. bret = tH450Res((void *)Res, Restype, indent+1);
  1088. if(!bret) {
  1089. PRINT_EXT("%stH450Res() not setn",blanks[indent]);
  1090. }
  1091. }
  1092. }
  1093. }
  1094. return(TRUE);
  1095. }
  1096. //-------------------------------------
  1097. //  Method: H4501ReturnError
  1098. //-------------------------------------
  1099. boolean
  1100. extractedSS::tH4501ReturnError(H4501ReturnError *pReturnError, int indent)
  1101. {
  1102. ProtReturnCode ret;
  1103. boolean bret;
  1104. if(!(bret = pReturnError->Valid())) {
  1105. return(bret);
  1106. }
  1107. //
  1108. //  Method: GetInvokeId
  1109. //
  1110. int InvokeId;
  1111. PRINT_EXT("%sGetInvokeId()n",blanks[indent]);
  1112. ret = pReturnError->GetInvokeId(InvokeId);
  1113. if (!PROT_IS_SUCCESS(ret)) {
  1114. char emsg[128];
  1115. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1116. } else {
  1117. PRINT_EXT("%sGetInvokeId() InvokeId = %dn",blanks[indent],InvokeId);
  1118. pssROS->InvokeId = InvokeId;
  1119. }
  1120. //
  1121. //  Method: GetCode
  1122. //
  1123. H4501Code Code;
  1124. PRINT_EXT("%sGetCode()n",blanks[indent]);
  1125. ret = pReturnError->GetCode(Code);
  1126. if (!PROT_IS_SUCCESS(ret)) {
  1127. char emsg[128];
  1128. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1129. } else {
  1130. pssCode = &pssROS->code;
  1131. bret = tH4501Code(&Code, indent+1);
  1132. if(!bret) {
  1133. PRINT_EXT("%stH4501Code() not setn",blanks[indent]);
  1134. }
  1135. }
  1136. //
  1137. //  Method: GetError
  1138. //
  1139. H450Error Error;
  1140. PRINT_EXT("%sGetError()n",blanks[indent]);
  1141. ret = pReturnError->GetError(Error);
  1142. if (!PROT_IS_SUCCESS(ret)) {
  1143. char emsg[128];
  1144. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1145. } else {
  1146. pssError = &pssROS->error;
  1147. bret = tH450Error(&Error, indent+1);
  1148. if(!bret) {
  1149. PRINT_EXT("%stH450Error() not setn",blanks[indent]);
  1150. }
  1151. }
  1152. return(TRUE);
  1153. }
  1154. //-------------------------------------
  1155. //  Method: H4501Reject
  1156. //-------------------------------------
  1157. boolean
  1158. extractedSS::tH4501Reject(H4501Reject *pReject, int indent)
  1159. {
  1160. ProtReturnCode ret;
  1161. boolean bret;
  1162. if(!(bret = pReject->Valid())) {
  1163. return(bret);
  1164. }
  1165. //
  1166. //  Method: GetInvokeId
  1167. //
  1168. int InvokeId;
  1169. PRINT_EXT("%sGetInvokeId()n",blanks[indent]);
  1170. ret = pReject->GetInvokeId(InvokeId);
  1171. if (!PROT_IS_SUCCESS(ret)) {
  1172. char emsg[128];
  1173. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1174. } else {
  1175. PRINT_EXT("%sGetInvokeId() InvokeId = %dn",blanks[indent],InvokeId);
  1176. pssROS->InvokeId = InvokeId;
  1177. }
  1178. //
  1179. //  Method: GetProblem
  1180. //
  1181. H4501Problem Problem;
  1182. PRINT_EXT("%sGetProblem()n",blanks[indent]);
  1183. ret = pReject->GetProblem(Problem);
  1184. if (!PROT_IS_SUCCESS(ret)) {
  1185. char emsg[128];
  1186. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1187. } else {
  1188. pssProblem = &pssROS->Problem;
  1189. bret = tH4501Problem(&Problem, indent+1);
  1190. if(!bret) {
  1191. PRINT_EXT("%stH4501Problem() not setn",blanks[indent]);
  1192. }
  1193. }
  1194. return(TRUE);
  1195. }
  1196. //-------------------------------------
  1197. //  Method: H450Arg
  1198. //-------------------------------------
  1199. boolean
  1200. extractedSS::tH450Arg(void *pArg, int type, int indent)
  1201. {
  1202. boolean bret;
  1203. switch(type) {
  1204. case ARGT_INVALID:
  1205. PRINT_EXT("%sERROR: Arg() type is ARGT_INVALIDn",blanks[indent]);
  1206. break;
  1207. case ARGT_DUMMY:
  1208. H4502DummyArg *pDummyArg;
  1209. pDummyArg = (H4502DummyArg *)pArg;
  1210. PRINT_EXT("%stH4502DummyArg()n",blanks[indent]);
  1211. bret = tH4502DummyArg(pDummyArg, indent+1);
  1212. if(!bret) {
  1213. PRINT_EXT("%stH4502DummyArg() not setn",blanks[indent]);
  1214. }
  1215. delete pDummyArg;
  1216. break;
  1217. case ARGT_INITIATE:
  1218. H4502CTInitiateArg *pCTInitiateArg;
  1219. pCTInitiateArg = (H4502CTInitiateArg *)pArg;
  1220. PRINT_EXT("%stH4502CTInitiateArg()n",blanks[indent]);
  1221. bret = tH4502CTInitiateArg(pCTInitiateArg, indent+1);
  1222. if(!bret) {
  1223. PRINT_EXT("%stH4502CTInitiateArg() not setn",blanks[indent]);
  1224. }
  1225. delete pCTInitiateArg;
  1226. break;
  1227. case ARGT_SETUP:
  1228. H4502CTSetupArg *pCTSetupArg;
  1229. pCTSetupArg = (H4502CTSetupArg *)pArg;
  1230. PRINT_EXT("%stH4502CTSetupArg()n",blanks[indent]);
  1231. bret = tH4502CTSetupArg(pCTSetupArg, indent+1);
  1232. if(!bret) {
  1233. PRINT_EXT("%stH4502CTSetupArg() not setn",blanks[indent]);
  1234. }
  1235. delete pCTSetupArg;
  1236. break;
  1237. case ARGT_UPDATE:
  1238. H4502CTUpdateArg *pCTUpdateArg;
  1239. pCTUpdateArg = (H4502CTUpdateArg *)pArg;
  1240. PRINT_EXT("%stH4502CTUpdateArg()n",blanks[indent]);
  1241. bret = tH4502CTUpdateArg(pCTUpdateArg, indent+1);
  1242. if(!bret) {
  1243. PRINT_EXT("%stH4502CTUpdateArg() not setn",blanks[indent]);
  1244. }
  1245. delete pCTUpdateArg;
  1246. break;
  1247. case ARGT_SUBADDRESS:
  1248. H4502CTSubaddressArg *pCTSubaddressArg;
  1249. pCTSubaddressArg = (H4502CTSubaddressArg *)pArg;
  1250. PRINT_EXT("%stH4502CTSubaddressArg()n",blanks[indent]);
  1251. bret = tH4502CTSubaddressArg(pCTSubaddressArg, indent+1);
  1252. if(!bret) {
  1253. PRINT_EXT("%stH4502CTSubaddressArg() not setn",blanks[indent]);
  1254. }
  1255. delete pCTSubaddressArg;
  1256. break;
  1257. case ARGT_COMPLETE:
  1258. H4502CTCompleteArg *pCTCompleteArg;
  1259. pCTCompleteArg = (H4502CTCompleteArg *)pArg;
  1260. PRINT_EXT("%stH4502CTCompleteArg()n",blanks[indent]);
  1261. bret = tH4502CTCompleteArg(pCTCompleteArg, indent+1);
  1262. if(!bret) {
  1263. PRINT_EXT("%stH4502CTCompleteArg() not setn",blanks[indent]);
  1264. }
  1265. delete pCTCompleteArg;
  1266. break;
  1267. case ARGT_ACTIVE:
  1268. H4502CTActiveArg *pCTActiveArg;
  1269. pCTActiveArg = (H4502CTActiveArg *)pArg;
  1270. PRINT_EXT("%stH4502CTActiveArg()n",blanks[indent]);
  1271. bret = tH4502CTActiveArg(pCTActiveArg, indent+1);
  1272. if(!bret) {
  1273. PRINT_EXT("%stH4502CTActiveArg() not setn",blanks[indent]);
  1274. }
  1275. delete pCTActiveArg;
  1276. break;
  1277. default:
  1278. PRINT_EXT("%sERROR: Arg() type is not defined %dn",blanks[indent],type);
  1279. break;
  1280. }
  1281. return(bret);
  1282. }
  1283. //-------------------------------------
  1284. //  Method: H450Res
  1285. //-------------------------------------
  1286. boolean
  1287. extractedSS::tH450Res(void *pRes, int restype, int indent)
  1288. {
  1289. boolean bret;
  1290. switch(restype) {
  1291. case REST_INVALID:
  1292. PRINT_EXT("%sERROR: Arg() type is REST_INVALIDn",blanks[indent]);
  1293. break;
  1294. case REST_DUMMY:
  1295. H4502DummyRes *pDummyRes;
  1296. pDummyRes = (H4502DummyRes *)pRes;
  1297. PRINT_EXT("%stH4502DummyRes()n",blanks[indent]);
  1298. bret = tH4502DummyRes(pDummyRes, indent+1);
  1299. if(!bret) {
  1300. PRINT_EXT("%stH4502DummyRes() not setn",blanks[indent]);
  1301. }
  1302. delete pDummyRes;
  1303. break;
  1304. case REST_IDENTIFY:
  1305. H4502CTIdentifyRes *pCTIdentifyRes;
  1306. pCTIdentifyRes = (H4502CTIdentifyRes *)pRes;
  1307. PRINT_EXT("%stH4502CTIdentifyRes()n",blanks[indent]);
  1308. bret = tH4502CTIdentifyRes(pCTIdentifyRes, indent+1);
  1309. if(!bret) {
  1310. PRINT_EXT("%stH4502CTIdentifyRes() not setn",blanks[indent]);
  1311. }
  1312. delete pCTIdentifyRes;
  1313. break;
  1314. default:
  1315. PRINT_EXT("%sERROR: Res() type is not defined %dn",blanks[indent],restype);
  1316. break;
  1317. }
  1318. return(bret);
  1319. }
  1320. //-------------------------------------
  1321. //  Method: H4502DummyRes
  1322. //-------------------------------------
  1323. boolean
  1324. extractedSS::tH4502DummyRes(H4502DummyRes *pDummyRes, int indent)
  1325. {
  1326. boolean bret;
  1327. if(!(bret = pDummyRes->Valid())) {
  1328. return(bret);
  1329. }
  1330. bret = tItemExt((void *)pDummyRes, H4502DUMMYRES, indent+1);
  1331. if(!bret) {
  1332. PRINT_EXT("%stItemExt() not setn",blanks[indent]);
  1333. }
  1334. return(TRUE);
  1335. }
  1336. //-------------------------------------
  1337. //  Method: H4502CTIdentifyRes
  1338. //-------------------------------------
  1339. boolean
  1340. extractedSS::tH4502CTIdentifyRes(H4502CTIdentifyRes *pCTIdentifyRes, int indent)
  1341. {
  1342. boolean bret;
  1343. if(!(bret = pCTIdentifyRes->Valid())) {
  1344. return(bret);
  1345. }
  1346. bret = tItemExt((void *)pCTIdentifyRes, H4502CTIDENTIFYRES, indent+1);
  1347. if(!bret) {
  1348. PRINT_EXT("%stItemExt() not setn",blanks[indent]);
  1349. }
  1350. bret = tItemNumber((void *)pCTIdentifyRes, H4502CTIDENTIFYRES, indent+1);
  1351. if(!bret) {
  1352. PRINT_EXT("%stItemNumber() not setn",blanks[indent]);
  1353. }
  1354. bret = tItemCallId((void *)pCTIdentifyRes, H4502CTIDENTIFYRES, indent+1);
  1355. if(!bret) {
  1356. PRINT_EXT("%stItemCallId() not setn",blanks[indent]);
  1357. }
  1358. return(TRUE);
  1359. }
  1360. //-------------------------------------
  1361. //  Method: H4502DummyArg
  1362. //-------------------------------------
  1363. boolean
  1364. extractedSS::tH4502DummyArg(H4502DummyArg *pDummyArg, int indent)
  1365. {
  1366. boolean bret;
  1367. if(!(bret = pDummyArg->Valid())) {
  1368. return(bret);
  1369. }
  1370. bret = tItemExt((void *)pDummyArg, H4502DUMMYARG, indent+1);
  1371. if(!bret) {
  1372. PRINT_EXT("%stItemExt() not setn",blanks[indent]);
  1373. }
  1374. return(TRUE);
  1375. }
  1376. //-------------------------------------
  1377. //  Method: H4502CTInitiateArg
  1378. //-------------------------------------
  1379. boolean
  1380. extractedSS::tH4502CTInitiateArg(H4502CTInitiateArg *pCTInitiateArg, int indent)
  1381. {
  1382. boolean bret;
  1383. if(!(bret = pCTInitiateArg->Valid())) {
  1384. return(bret);
  1385. }
  1386. bret = tItemExt((void *)pCTInitiateArg, H4502CTINITIATEARG, indent+1);
  1387. if(!bret) {
  1388. PRINT_EXT("%stItemExt() not setn",blanks[indent]);
  1389. }
  1390. bret = tItemNumber((void *)pCTInitiateArg, H4502CTINITIATEARG, indent+1);
  1391. if(!bret) {
  1392. PRINT_EXT("%stItemNumber() not setn",blanks[indent]);
  1393. }
  1394. bret = tItemCallId((void *)pCTInitiateArg, H4502CTINITIATEARG, indent+1);
  1395. if(!bret) {
  1396. PRINT_EXT("%stItemCallId() not setn",blanks[indent]);
  1397. }
  1398. return(TRUE);
  1399. }
  1400. //-------------------------------------
  1401. //  Method: H4502CTSetupArg
  1402. //-------------------------------------
  1403. boolean
  1404. extractedSS::tH4502CTSetupArg(H4502CTSetupArg *pCTSetupArg, int indent)
  1405. {
  1406. boolean bret;
  1407. if(!(bret = pCTSetupArg->Valid())) {
  1408. return(bret);
  1409. }
  1410. bret = tItemExt((void *)pCTSetupArg, H4502CTSETUPARG, indent+1);
  1411. if(!bret) {
  1412. PRINT_EXT("%stItemExt() not setn",blanks[indent]);
  1413. }
  1414. bret = tItemNumber((void *)pCTSetupArg, H4502CTSETUPARG, indent+1);
  1415. if(!bret) {
  1416. PRINT_EXT("%stItemNumber() not setn",blanks[indent]);
  1417. }
  1418. bret = tItemCallId((void *)pCTSetupArg, H4502CTSETUPARG, indent+1);
  1419. if(!bret) {
  1420. PRINT_EXT("%stItemCallId() not setn",blanks[indent]);
  1421. }
  1422. return(TRUE);
  1423. }
  1424. //-------------------------------------
  1425. //  Method: H4502CTUpdateArg
  1426. //-------------------------------------
  1427. boolean
  1428. extractedSS::tH4502CTUpdateArg(H4502CTUpdateArg *pCTUpdateArg, int indent)
  1429. {
  1430. boolean bret;
  1431. if(!(bret = pCTUpdateArg->Valid())) {
  1432. return(bret);
  1433. }
  1434. bret = tItemExt((void *)pCTUpdateArg, H4502CTUPDATEARG, indent+1);
  1435. if(!bret) {
  1436. PRINT_EXT("%stItemExt() not setn",blanks[indent]);
  1437. }
  1438. bret = tItemNumber((void *)pCTUpdateArg, H4502CTUPDATEARG, indent+1);
  1439. if(!bret) {
  1440. PRINT_EXT("%stItemNumber() not setn",blanks[indent]);
  1441. }
  1442. bret = tItemInfo((void *)pCTUpdateArg, H4502CTUPDATEARG, indent+1);
  1443. if(!bret) {
  1444. PRINT_EXT("%stItemInfo() not setn",blanks[indent]);
  1445. }
  1446. bret = tItemElements((void *)pCTUpdateArg, H4502CTUPDATEARG, indent+1);
  1447. if(!bret) {
  1448. PRINT_EXT("%stItemElements not setn",blanks[indent]);
  1449. }
  1450. return(TRUE);
  1451. }
  1452. //-------------------------------------
  1453. //  Method: H4502CTSubaddressArg
  1454. //-------------------------------------
  1455. boolean
  1456. extractedSS::tH4502CTSubaddressArg(H4502CTSubaddressArg *pCTSubaddressArg, int indent)
  1457. {
  1458. ProtReturnCode ret;
  1459. boolean bret;
  1460. if(!(bret = pCTSubaddressArg->Valid())) {
  1461. return(bret);
  1462. }
  1463. //
  1464. //  Method: GetRedirection
  1465. //
  1466. H4501PartySubaddress PartySubaddress;
  1467. PRINT_EXT("%sGetRedirection()n",blanks[indent]);
  1468. ret = pCTSubaddressArg->GetRedirection(PartySubaddress);
  1469. if (!PROT_IS_SUCCESS(ret)) {
  1470. char emsg[128];
  1471. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1472. } else {
  1473. pssArg->PartySubaddress = new H4501PartySubaddress;
  1474. *pssArg->PartySubaddress = PartySubaddress;
  1475. bret = tH4501PartySubaddress(&PartySubaddress, indent+1);
  1476. if(!bret) {
  1477. PRINT_EXT("%stH4501PartySubaddress() not setn",blanks[indent]);
  1478. }
  1479. }
  1480. bret = tItemExt((void *)pCTSubaddressArg, H4502CTSUBADDRESSARG, indent+1);
  1481. if(!bret) {
  1482. PRINT_EXT("%stItemExt() not setn",blanks[indent]);
  1483. }
  1484. return(TRUE);
  1485. }
  1486. //-------------------------------------
  1487. //  Method: H4502CTCompleteArg
  1488. //-------------------------------------
  1489. boolean
  1490. extractedSS::tH4502CTCompleteArg(H4502CTCompleteArg *pCTCompleteArg, int indent)
  1491. {
  1492. ProtReturnCode ret;
  1493. boolean bret;
  1494. if(!(bret = pCTCompleteArg->Valid())) {
  1495. return(bret);
  1496. }
  1497. //
  1498. //  Method: GetEndType
  1499. //
  1500. int EndType;
  1501. PRINT_EXT("%sGetEndType()n",blanks[indent]);
  1502. ret = pCTCompleteArg->GetEndType(EndType);
  1503. if (!PROT_IS_SUCCESS(ret)) {
  1504. char emsg[128];
  1505. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1506. } else {
  1507. pssArg->EndType = EndType;
  1508. PRINT_EXT("%sGetEndType() EndType = %dn",blanks[indent],EndType);
  1509. }
  1510. //
  1511. //  Method: GetCallStatus
  1512. //
  1513. int CallStatus;
  1514. PRINT_EXT("%sGetCallStatus()n",blanks[indent]);
  1515. ret = pCTCompleteArg->GetCallStatus(CallStatus);
  1516. if (!PROT_IS_SUCCESS(ret)) {
  1517. char emsg[128];
  1518. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1519. } else {
  1520. pssArg->CallStatus = CallStatus;
  1521. PRINT_EXT("%sGetCallStatus() CallStatus = %dn",blanks[indent],CallStatus);
  1522. }
  1523. bret = tItemExt((void *)pCTCompleteArg, H4502CTCOMPLETEARG, indent+1);
  1524. if(!bret) {
  1525. PRINT_EXT("%stItemExt() not setn",blanks[indent]);
  1526. }
  1527. bret = tItemNumber((void *)pCTCompleteArg, H4502CTCOMPLETEARG, indent+1);
  1528. if(!bret) {
  1529. PRINT_EXT("%stItemNumber() not setn",blanks[indent]);
  1530. }
  1531. bret = tItemInfo((void *)pCTCompleteArg, H4502CTCOMPLETEARG, indent+1);
  1532. if(!bret) {
  1533. PRINT_EXT("%stItemInfo() not setn",blanks[indent]);
  1534. }
  1535. bret = tItemElements((void *)pCTCompleteArg, H4502CTCOMPLETEARG, indent+1);
  1536. if(!bret) {
  1537. PRINT_EXT("%stItemElements not setn",blanks[indent]);
  1538. }
  1539. return(TRUE);
  1540. }
  1541. //-------------------------------------
  1542. //  Method: H4502CTActiveArg
  1543. //-------------------------------------
  1544. boolean
  1545. extractedSS::tH4502CTActiveArg(H4502CTActiveArg *pCTActiveArg, int indent)
  1546. {
  1547. boolean bret;
  1548. if(!(bret = pCTActiveArg->Valid())) {
  1549. return(bret);
  1550. }
  1551. bret = tItemExt((void *)pCTActiveArg, H4502CTACTIVEARG, indent+1);
  1552. if(!bret) {
  1553. PRINT_EXT("%stItemExt() not setn",blanks[indent]);
  1554. }
  1555. bret = tItemNumber((void *)pCTActiveArg, H4502CTACTIVEARG, indent+1);
  1556. if(!bret) {
  1557. PRINT_EXT("%stItemNumber() not setn",blanks[indent]);
  1558. }
  1559. bret = tItemInfo((void *)pCTActiveArg, H4502CTACTIVEARG, indent+1);
  1560. if(!bret) {
  1561. PRINT_EXT("%stItemInfo() not setn",blanks[indent]);
  1562. }
  1563. bret = tItemElements((void *)pCTActiveArg, H4502CTACTIVEARG, indent+1);
  1564. if(!bret) {
  1565. PRINT_EXT("%stItemElements not setn",blanks[indent]);
  1566. }
  1567. return(TRUE);
  1568. }
  1569. //-------------------------------------
  1570. //  Method: H4501Extension
  1571. //-------------------------------------
  1572. boolean
  1573. extractedSS::tH4501Extension(H4501Extension *pExtension, int indent)
  1574. {
  1575. ProtReturnCode ret;
  1576. boolean bret;
  1577. if(!(bret = pExtension->Valid())) {
  1578. return(bret);
  1579. }
  1580. //
  1581. //  Method: GetObjectID
  1582. //
  1583. unsigned long *long_str;
  1584. int length;
  1585. //RM long_str = new unsigned long[length];
  1586. PRINT_EXT("%sGetObjectID()n",blanks[indent]);
  1587. ret = pExtension->GetObjectID(long_str, length);
  1588. if (!PROT_IS_SUCCESS(ret)) {
  1589. char emsg[128];
  1590. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1591. } else {
  1592. PRINT_EXT("%sGetObjectID() long_str = %d,%d,...n",blanks[indent],long_str[0],long_str[1]);
  1593. PRINT_EXT("%sGetObjectID() length = %dn",blanks[indent],length);
  1594. }
  1595. return(TRUE);
  1596. }
  1597. //-------------------------------------
  1598. //  Method: H4501Code
  1599. //-------------------------------------
  1600. boolean
  1601. extractedSS::tH4501Code(H4501Code *pCode, int indent)
  1602. {
  1603. ProtReturnCode ret;
  1604. boolean bret;
  1605. int type;
  1606. int length;
  1607. if(!(bret = pCode->Valid())) {
  1608. return(bret);
  1609. }
  1610. //
  1611. //  Method: GetType
  1612. //
  1613. PRINT_EXT("%sGetType()n",blanks[indent]);
  1614. type = pCode->GetType();
  1615. if(type == CDT_LOCAL_CODE) {
  1616. //
  1617. //  Method: GetLocalCode
  1618. //
  1619. int LocalCode;
  1620. PRINT_EXT("%sGetLocalCode()n",blanks[indent]);
  1621. ret = pCode->GetLocalCode(LocalCode);
  1622. if (!PROT_IS_SUCCESS(ret)) {
  1623. char emsg[128];
  1624. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1625. } else {
  1626. PRINT_EXT("%sGetLocalCode() LocalCode = %dn",blanks[indent],LocalCode);
  1627. *pssCode = LocalCode;
  1628. }
  1629. } else if(type == CDT_GLOBAL_CODE) {
  1630. //
  1631. //  Method: GetGlobalCode
  1632. //
  1633. unsigned long *long_str;
  1634. //RM long_str = new unsigned long[length];
  1635. PRINT_EXT("%sGetGlobalCode()n",blanks[indent]);
  1636. ret = pCode->GetGlobalCode(long_str, length);
  1637. if (!PROT_IS_SUCCESS(ret)) {
  1638. char emsg[128];
  1639. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1640. } else {
  1641. PRINT_EXT("%sGetGlobalCode() long_str = %d,%d,...n",blanks[indent],long_str[0],long_str[1]);
  1642. PRINT_EXT("%sGetGlobalCode() length = %dn",blanks[indent],length);
  1643. }
  1644. } else if(type == CDT_INVALID) {
  1645. PRINT_EXT("%sERROR: tH4501Code() type is CDT_INVALIDn",blanks[indent]);
  1646. } else {
  1647. PRINT_EXT("%sERROR: tH4501Code() type is not defined %dn",blanks[indent],type);
  1648. }
  1649. return(TRUE);
  1650. }
  1651. //-------------------------------------
  1652. //  Method: H450ErrorParameter
  1653. //-------------------------------------
  1654. boolean
  1655. extractedSS::tH450ErrorParameter(void *pErrorParameter, int paramtype, int indent)
  1656. {
  1657. boolean bret;
  1658. if(paramtype == ERRPT_CT_UNSPECIFIED) {
  1659. H4502UnspecifiedParam *pUnspecifiedParam;
  1660. pUnspecifiedParam = (H4502UnspecifiedParam *)pErrorParameter;
  1661. bret = tH4502UnspecifiedParam(pUnspecifiedParam, indent+1);
  1662. if(!bret) {
  1663. PRINT_EXT("%stH4502UnspecifiedParam() not setn",blanks[indent]);
  1664. }
  1665. } else if(paramtype == CDT_INVALID) {
  1666. PRINT_EXT("%sERROR: tH450ErrorParameter() type is ERRPT_INVALIDn",blanks[indent]);
  1667. } else {
  1668. PRINT_EXT("%sERROR: tH450ErrorParameter() type is not defined %dn",blanks[indent],paramtype);
  1669. }
  1670. return(bret);
  1671. }
  1672. //-------------------------------------
  1673. //  Method: H4502UnspecifiedParam
  1674. //-------------------------------------
  1675. boolean
  1676. extractedSS::tH4502UnspecifiedParam(H4502UnspecifiedParam *pUnspecifiedParam, int indent)
  1677. {
  1678. ProtReturnCode ret;
  1679. boolean bret;
  1680. int type;
  1681. if(!(bret = pUnspecifiedParam->Valid())) {
  1682. return(bret);
  1683. }
  1684. //
  1685. //  Method: GetType
  1686. //
  1687. PRINT_EXT("%sGetType()n",blanks[indent]);
  1688. type = pUnspecifiedParam->GetType();
  1689. if(type == UNPT_EXTENSION) {
  1690. //
  1691. //  Method: GetExtension
  1692. //
  1693. H4501Extension Extension;
  1694. PRINT_EXT("%sGetExtension()n",blanks[indent]);
  1695. ret = pUnspecifiedParam->GetExtension(Extension);
  1696. if (!PROT_IS_SUCCESS(ret)) {
  1697. char emsg[128];
  1698. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1699. } else {
  1700. bret = tH4501Extension(&Extension, indent+1);
  1701. if(!bret) {
  1702. PRINT_EXT("%stH4501Extension() not setn",blanks[indent]);
  1703. }
  1704. }
  1705. } else if(type == UNPT_NON_STANDARD_DATA) {
  1706. //
  1707. //  Method: GetNonStd
  1708. //
  1709. H450NonStdParam NonStdParam;
  1710. PRINT_EXT("%sGetNonStdData()n",blanks[indent]);
  1711. ret = pUnspecifiedParam->GetNonStdData(NonStdParam);
  1712. if (!PROT_IS_SUCCESS(ret)) {
  1713. char emsg[128];
  1714. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1715. } else {
  1716. bret = tH450NonStdParam(&NonStdParam, indent+1);
  1717. if(!bret) {
  1718. PRINT_EXT("%stH450NonStdParam() not setn",blanks[indent]);
  1719. }
  1720. }
  1721. } else if(type == UNPT_INVALID) {
  1722. PRINT_EXT("%sERROR: tH4502UnspecifiedParam() type is UNPT_INVALIDn",blanks[indent]);
  1723. } else {
  1724. PRINT_EXT("%sERROR: tH4502UnspecifiedParam() type is not defined %dn",blanks[indent],type);
  1725. }
  1726. return(TRUE);
  1727. }
  1728. //-------------------------------------
  1729. //  Method: H450Error
  1730. //-------------------------------------
  1731. boolean
  1732. extractedSS::tH450Error(H450Error *pError, int indent)
  1733. {
  1734. ProtReturnCode ret;
  1735. boolean bret;
  1736. int type;
  1737. if(!(bret = pError->Valid())) {
  1738. return(bret);
  1739. }
  1740. //
  1741. //  Method: GetType
  1742. //
  1743. PRINT_EXT("%sGetType()n",blanks[indent]);
  1744. type = pError->GetType();
  1745. if(type == ERRT_UNPARAMETERIZED) {
  1746. //
  1747. //  Method: GetH450Error
  1748. //
  1749. int Error;
  1750. PRINT_EXT("%sGetH450Error()n",blanks[indent]);
  1751. ret = pError->GetH450Error(Error);
  1752. if (!PROT_IS_SUCCESS(ret)) {
  1753. char emsg[128];
  1754. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1755. } else {
  1756. PRINT_EXT("%sGetH450Error() Error = %dn",blanks[indent],Error);
  1757. pssError->type = ERRT_UNPARAMETERIZED;
  1758. pssError->error = Error;
  1759. }
  1760. } else if(type == ERRT_PARAMETERIZED) {
  1761. //
  1762. //  Method: GetParameterType
  1763. //
  1764. int Paramtype;
  1765. PRINT_EXT("%sGetParameterType()n",blanks[indent]);
  1766. ret = pError->GetParameterType(Paramtype);
  1767. if (!PROT_IS_SUCCESS(ret)) {
  1768. char emsg[128];
  1769. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1770. }
  1771. //
  1772. //  Method: GetParameter
  1773. //
  1774. H450ErrorParameter *ErrorParameter;
  1775. PRINT_EXT("%sH450ErrorParameter::Factory()n",blanks[indent]);
  1776. ret = H450ErrorParameter::Factory(ErrorParameter, Paramtype);
  1777. if (!PROT_IS_SUCCESS(ret)) {
  1778. char emsg[128];
  1779. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1780. }
  1781. PRINT_EXT("%sGetParameter()n",blanks[indent]);
  1782. ret = pError->GetParameter(*ErrorParameter);
  1783. if (!PROT_IS_SUCCESS(ret)) {
  1784. char emsg[128];
  1785. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1786. } else {
  1787. bret = tH450ErrorParameter((void *)ErrorParameter, Paramtype, indent+1);
  1788. if(!bret) {
  1789. PRINT_EXT("%stH450ErrorParameter() not setn",blanks[indent]);
  1790. }
  1791. }
  1792. } else if(type == ERRT_INVALID) {
  1793. PRINT_EXT("%sERROR: tH450Error() type is ERRT_INVALIDn",blanks[indent]);
  1794. } else {
  1795. PRINT_EXT("%sERROR: tH450Error() type is not defined %dn",blanks[indent],type);
  1796. }
  1797. //
  1798. //  Method: GetCode
  1799. //
  1800. H4501Code Code;
  1801. PRINT_EXT("%sGetCode()n",blanks[indent]);
  1802. ret = pError->GetCode(Code);
  1803. if (!PROT_IS_SUCCESS(ret)) {
  1804. char emsg[128];
  1805. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1806. } else {
  1807. pssCode = &pssError->code;
  1808. bret = tH4501Code(&Code, indent+1);
  1809. if(!bret) {
  1810. PRINT_EXT("%stH4501Code() not setn",blanks[indent]);
  1811. }
  1812. }
  1813. return(TRUE);
  1814. }
  1815. //-------------------------------------
  1816. //  Method: H4501Problem
  1817. //-------------------------------------
  1818. boolean
  1819. extractedSS::tH4501Problem(H4501Problem *pProblem, int indent)
  1820. {
  1821. ProtReturnCode ret;
  1822. boolean bret;
  1823. int type;
  1824. if(!(bret = pProblem->Valid())) {
  1825. return(bret);
  1826. }
  1827. //
  1828. //  Method: GetType
  1829. //
  1830. PRINT_EXT("%sGetType()n",blanks[indent]);
  1831. type = pProblem->GetType();
  1832. pssProblem->type = type;
  1833. if(type == PROB_GENERAL_PROBLEM) {
  1834. //
  1835. //  Method: GetGeneralProb
  1836. //
  1837. int GeneralProb;
  1838. PRINT_EXT("%sGetGeneralProb()n",blanks[indent]);
  1839. ret = pProblem->GetGeneralProb(GeneralProb);
  1840. if (!PROT_IS_SUCCESS(ret)) {
  1841. char emsg[128];
  1842. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1843. } else {
  1844. PRINT_EXT("%sGetGeneralProb() GeneralProb = %dn",blanks[indent],GeneralProb);
  1845. pssProblem->Problem = GeneralProb;
  1846. }
  1847. } else if(type == PROB_INVOKE_PROBLEM) {
  1848. //
  1849. //  Method: GetInvokeProb
  1850. //
  1851. int InvokeProb;
  1852. PRINT_EXT("%sGetInvokeProb()n",blanks[indent]);
  1853. ret = pProblem->GetInvokeProb(InvokeProb);
  1854. if (!PROT_IS_SUCCESS(ret)) {
  1855. char emsg[128];
  1856. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1857. } else {
  1858. PRINT_EXT("%sGetInvokeProb() InvokeProb = %dn",blanks[indent],InvokeProb);
  1859. pssProblem->Problem = InvokeProb;
  1860. }
  1861. } else if(type == PROB_RETURN_RESULT_PROBLEM) {
  1862. //
  1863. //  Method: GetResultProb
  1864. //
  1865. int ResultProb;
  1866. PRINT_EXT("%sGetResultProb()n",blanks[indent]);
  1867. ret = pProblem->GetResultProb(ResultProb);
  1868. if (!PROT_IS_SUCCESS(ret)) {
  1869. char emsg[128];
  1870. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1871. } else {
  1872. PRINT_EXT("%sGetResultProb() ResultProb = %dn",blanks[indent],ResultProb);
  1873. pssProblem->Problem = ResultProb;
  1874. }
  1875. } else if(type == PROB_RETURN_ERROR_PROBLEM) {
  1876. //
  1877. //  Method: GetErrorProb
  1878. //
  1879. int ErrorProb;
  1880. PRINT_EXT("%sGetErrorProb()n",blanks[indent]);
  1881. ret = pProblem->GetErrorProb(ErrorProb);
  1882. if (!PROT_IS_SUCCESS(ret)) {
  1883. char emsg[128];
  1884. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1885. } else {
  1886. PRINT_EXT("%sGetErrorProb() ErrorProb = %dn",blanks[indent],ErrorProb);
  1887. pssProblem->Problem = ErrorProb;
  1888. }
  1889. } else if(type == PROB_REJECT_PROBLEM) {
  1890. PRINT_EXT("%sERROR: tH4501Problem() type is PROB_REJECT_PROBLEMn",blanks[indent]);
  1891. } else if(type == PROB_INVALID) {
  1892. PRINT_EXT("%sERROR: tH4501Problem() type is PROB_INVALIDn",blanks[indent]);
  1893. } else {
  1894. PRINT_EXT("%sERROR: tH4501Problem() type is not defined %dn",blanks[indent],type);
  1895. }
  1896. return(TRUE);
  1897. }
  1898. //-------------------------------------
  1899. //  Method: H4501H225IE
  1900. //-------------------------------------
  1901. boolean
  1902. extractedSS::tH4501H225IE(H4501H225IE *pH225IE, int indent)
  1903. {
  1904. ProtReturnCode ret;
  1905. boolean bret;
  1906. if(!(bret = pH225IE->Valid())) {
  1907. return(bret);
  1908. }
  1909. //
  1910. //  Method: GetH225IE
  1911. //
  1912. unsigned char *char_str;
  1913. int length;
  1914. //RM char_str = new unsigned char[length];
  1915. PRINT_EXT("%sGetH225IE(char_str)n",blanks[indent]);
  1916. ret = pH225IE->GetH225IE(char_str, length);
  1917. if (!PROT_IS_SUCCESS(ret)) {
  1918. char emsg[128];
  1919. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1920. } else {
  1921. char retstr[MAXOUTSTR];
  1922. PRINT_EXT("%sGetH225IE() char_str = %sn",blanks[indent],
  1923. sprint_string(char_str, MAXSTRLEN(length), retstr));
  1924. PRINT_EXT("%sGetH225IE() length = %dn",blanks[indent],length);
  1925. }
  1926. //
  1927. //  Method: GetH225IE<2>
  1928. //
  1929. Q931IE Q931IE_arg;
  1930. PRINT_EXT("%sGetH225IE(Q931IE)n",blanks[indent]);
  1931. ret = pH225IE->GetH225IE(Q931IE_arg);
  1932. if (!PROT_IS_SUCCESS(ret)) {
  1933. char emsg[128];
  1934. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1935. } else {
  1936. PRINT_EXT("%sGetH225IE() Q931IE_arg = 0x%xn",blanks[indent],&Q931IE_arg);
  1937. }
  1938. return(TRUE);
  1939. }
  1940. //-------------------------------------
  1941. //  Method: H4501UserSubaddress
  1942. //-------------------------------------
  1943. boolean
  1944. extractedSS::tH4501UserSubaddress(H4501UserSubaddress *pUserSubaddress, int indent)
  1945. {
  1946. ProtReturnCode ret;
  1947. boolean bret;
  1948. if(!(bret = pUserSubaddress->Valid())) {
  1949. return(bret);
  1950. }
  1951. //
  1952. //  Method: GetSubaddrInfo
  1953. //
  1954. unsigned char *char_str;
  1955. //RM char_str = new unsigned char[20];
  1956. int length;
  1957. PRINT_EXT("%sGetSubaddrInfo()n",blanks[indent]);
  1958. ret = pUserSubaddress->GetSubaddrInfo(char_str, length);
  1959. if (!PROT_IS_SUCCESS(ret)) {
  1960. char emsg[128];
  1961. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1962. } else {
  1963. char retstr[MAXOUTSTR];
  1964. PRINT_EXT("%sGetSubaddrInfo() char_str = %sn",blanks[indent],
  1965. sprint_string((unsigned char *)char_str, MAXSTRLEN(length), retstr));
  1966. PRINT_EXT("%sGetSubaddrInfo() length = %dn",blanks[indent],length);
  1967. }
  1968. //
  1969. //  Method: GetIndicator
  1970. //
  1971. boolean boolean_arg1;
  1972. PRINT_EXT("%sGetIndicator()n",blanks[indent]);
  1973. ret = pUserSubaddress->GetIndicator(boolean_arg1);
  1974. if (!PROT_IS_SUCCESS(ret)) {
  1975. char emsg[128];
  1976. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  1977. } else {
  1978. PRINT_EXT("%sGetIndicator() boolean_arg1 = %dn",blanks[indent],boolean_arg1);
  1979. }
  1980. return(TRUE);
  1981. }
  1982. //-------------------------------------
  1983. //  Method: H4501PartySubaddress
  1984. //-------------------------------------
  1985. boolean
  1986. extractedSS::tH4501PartySubaddress(H4501PartySubaddress *pPartySubaddress, int indent)
  1987. {
  1988. ProtReturnCode ret;
  1989. boolean bret;
  1990. int type;
  1991. if(!(bret = pPartySubaddress->Valid())) {
  1992. return(bret);
  1993. }
  1994. //
  1995. //  Method: GetType
  1996. //
  1997. PRINT_EXT("%sGetType()n",blanks[indent]);
  1998. type = pPartySubaddress->GetType();
  1999. if(type == PSAT_USER_SPECIFIED) {
  2000. //
  2001. //  Method: GetUserSpecified
  2002. //
  2003. H4501UserSubaddress UserSubaddress;
  2004. PRINT_EXT("%sGetUserSpecified()n",blanks[indent]);
  2005. ret = pPartySubaddress->GetUserSpecified(UserSubaddress);
  2006. if (!PROT_IS_SUCCESS(ret)) {
  2007. char emsg[128];
  2008. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  2009. } else {
  2010. bret = tH4501UserSubaddress(&UserSubaddress, indent+1);
  2011. if(!bret) {
  2012. PRINT_EXT("%stH4501UserSubaddress() not setn",blanks[indent]);
  2013. }
  2014. }
  2015. } else if(type == PSAT_NSAP_ADDRESS) {
  2016. //
  2017. //  Method: GetNSAP
  2018. //
  2019. unsigned char *char_str;
  2020. //RM char_str = new unsigned char[20];
  2021. int length;
  2022. PRINT_EXT("%sGetNSAP()n",blanks[indent]);
  2023. ret = pPartySubaddress->GetNSAP(char_str, length);
  2024. if (!PROT_IS_SUCCESS(ret)) {
  2025. char emsg[128];
  2026. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  2027. } else {
  2028. char retstr[MAXOUTSTR];
  2029. PRINT_EXT("%sGetNSAP() char_str = %sn",blanks[indent],
  2030. sprint_string((unsigned char *)char_str, MAXSTRLEN(length), retstr));
  2031. PRINT_EXT("%sGetNSAP() length = %dn",blanks[indent],length);
  2032. }
  2033. } else if(type == PSAT_INVALID) {
  2034. PRINT_EXT("%sGetNSAP() type is PSAT_INVALIDn",blanks[indent]);
  2035. }
  2036. return(TRUE);
  2037. }
  2038. //-------------------------------------
  2039. //  Method: H4501EndpointAddr
  2040. //-------------------------------------
  2041. boolean
  2042. extractedSS::tH4501EndpointAddr(H4501EndpointAddr *pEndpointAddr, int indent)
  2043. {
  2044. ProtReturnCode ret;
  2045. boolean bret;
  2046. int i;
  2047. if(!(bret = pEndpointAddr->Valid())) {
  2048. return(bret);
  2049. }
  2050. //
  2051. //  Method: GetNumDestAddrs
  2052. //
  2053. int count;
  2054. PRINT_EXT("%sGetNumDestAddrs()n",blanks[indent]);
  2055. ret = pEndpointAddr->GetNumDestAddrs(count);
  2056. if (!PROT_IS_SUCCESS(ret)) {
  2057. char emsg[128];
  2058. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  2059. } else {
  2060. PRINT_EXT("%sGetNumDestAddrs() count = %dn",blanks[indent],count);
  2061. }
  2062. //
  2063. //  Method: GetDestAddrs
  2064. //
  2065. H450AliasAddress *AliasAddressList;
  2066. AliasAddressList = new H450AliasAddress[count];
  2067. PRINT_EXT("%sGetDestAddrs()n",blanks[indent]);
  2068. ret = pEndpointAddr->GetDestAddrs(AliasAddressList, count);
  2069. if (!PROT_IS_SUCCESS(ret)) {
  2070. char emsg[128];
  2071. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  2072. } else {
  2073. for(i = 0; i < count; i++) {
  2074. bret = tH450AliasAddress(&AliasAddressList[i], indent+1);
  2075. if(!bret) {
  2076. PRINT_EXT("%stH450AliasAddress() AliasAddressList[%d] not setn",blanks[indent],i);
  2077. }
  2078. }
  2079. PRINT_EXT("%sGetDestAddrs() count = %dn",blanks[indent],count);
  2080. }
  2081. delete [] AliasAddressList;
  2082. //
  2083. //  Method: GetRemoteExtAddr
  2084. //
  2085. H450AliasAddress AliasAddress;
  2086. PRINT_EXT("%sGetRemoteExtAddr()n",blanks[indent]);
  2087. ret = pEndpointAddr->GetRemoteExtAddr(AliasAddress);
  2088. if (!PROT_IS_SUCCESS(ret)) {
  2089. char emsg[128];
  2090. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  2091. } else {
  2092. bret = tH450AliasAddress(&AliasAddress, indent+1);
  2093. if(!bret) {
  2094. PRINT_EXT("%stH450AliasAddress() not setn",blanks[indent]);
  2095. }
  2096. }
  2097. return(TRUE);
  2098. }
  2099. //-------------------------------------
  2100. //  Method: H450NonStdParam
  2101. //-------------------------------------
  2102. boolean
  2103. extractedSS::tH450NonStdParam(H450NonStdParam *pNonStdParam, int indent)
  2104. {
  2105. ProtReturnCode ret;
  2106. boolean bret;
  2107. int type;
  2108. int length;
  2109. if(!(bret = pNonStdParam->Valid())) {
  2110. return(bret);
  2111. }
  2112. //
  2113. //  Method: GetIDType
  2114. //
  2115. PRINT_EXT("%sGetIDType()n",blanks[indent]);
  2116. type = pNonStdParam->GetIDType();
  2117. if(type == H225NS_IDT_H221NS) {
  2118. //
  2119. //  Method: GetH221NonStd
  2120. //
  2121. unsigned short t35_cc;
  2122. unsigned short t35_ext;
  2123. unsigned short m_code;
  2124. PRINT_EXT("%sGetH221NonStd()n",blanks[indent]);
  2125. ret = pNonStdParam->GetH221NonStd(t35_cc, t35_ext, m_code);
  2126. if (!PROT_IS_SUCCESS(ret)) {
  2127. char emsg[128];
  2128. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  2129. } else {
  2130. PRINT_EXT("%sGetH221NonStd() t35_cc = %dn",blanks[indent],t35_cc);
  2131. PRINT_EXT("%sGetH221NonStd() t35_ext = %dn",blanks[indent],t35_ext);
  2132. PRINT_EXT("%sGetH221NonStd() m_code = %dn",blanks[indent],m_code);
  2133. }
  2134. } else if(type == H225NS_IDT_OBJECT) {
  2135. //
  2136. //  Method: GetObjectIdentifier
  2137. //
  2138. unsigned long *long_str;
  2139. //RM long_str = new unsigned long[MAXBUF];
  2140. PRINT_EXT("%sGetObjectIdentifier()n",blanks[indent]);
  2141. ret = pNonStdParam->GetObjectIdentifier(long_str, length);
  2142. if (!PROT_IS_SUCCESS(ret)) {
  2143. char emsg[128];
  2144. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  2145. } else {
  2146. PRINT_EXT("%sGetObjectIdentifier() long_str = %d,%d,...n",blanks[indent],long_str[0],long_str[1]);
  2147. PRINT_EXT("%sGetObjectIdentifier() length = %dn",blanks[indent],length);
  2148. }
  2149. } else if(type == H225NS_IDT_INVALID) {
  2150. PRINT_EXT("%sERROR: tH450NonStdParam() type is H225NS_IDT_INVALIDn",blanks[indent]);
  2151. }
  2152. //
  2153. //  Method: GetNonStdData
  2154. //
  2155. unsigned char *char_str;
  2156. //RM char_str = new unsigned char[MAXBUF];
  2157. PRINT_EXT("%sGetNonStdData()n",blanks[indent]);
  2158. ret = pNonStdParam->GetNonStdData(char_str, length);
  2159. if (!PROT_IS_SUCCESS(ret)) {
  2160. char emsg[128];
  2161. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  2162. } else {
  2163. char retstr[MAXOUTSTR];
  2164. PRINT_EXT("%sGetNonStdData() char_str = %sn",blanks[indent],
  2165. sprint_string((unsigned char *)char_str, MAXSTRLEN(length), retstr));
  2166. PRINT_EXT("%sGetNonStdData() length = %dn",blanks[indent],length);
  2167. }
  2168. return(TRUE);
  2169. }
  2170. //-------------------------------------
  2171. //  Method: H450AliasAddress
  2172. //-------------------------------------
  2173. boolean
  2174. extractedSS::tH450AliasAddress(H450AliasAddress *pAliasAddress, int indent)
  2175. {
  2176. ProtReturnCode ret;
  2177. boolean bret;
  2178. int type;
  2179. char *char_str;
  2180. //RM char_str = new char[MAXBUF];
  2181. int len;
  2182. if(!(bret = pAliasAddress->Valid())) {
  2183. return(bret);
  2184. }
  2185. //
  2186. //  Method: GetType
  2187. //
  2188. PRINT_EXT("%sGetType()n",blanks[indent]);
  2189. type = pAliasAddress->GetType();
  2190. switch(type) {
  2191. case AAT_INVALID:
  2192. PRINT_EXT("%sERROR: tH450AliasAddress() type is AAT_INVALIDn",blanks[indent]);
  2193. break;
  2194. case AAT_E164:
  2195. //
  2196. //  Method: GetE164
  2197. //
  2198. PRINT_EXT("%sGetE164()n",blanks[indent]);
  2199. ret = pAliasAddress->GetE164(char_str, len);
  2200. if (!PROT_IS_SUCCESS(ret)) {
  2201. char emsg[128];
  2202. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  2203. } else {
  2204. char retstr[MAXOUTSTR];
  2205. PRINT_EXT("%sGetE164() char_str = %sn",blanks[indent],
  2206. sprint_string((unsigned char *)char_str, MAXSTRLEN(len), retstr));
  2207. PRINT_EXT("%sGetE164() len = %dn",blanks[indent],len);
  2208. }
  2209. break;
  2210. case AAT_H323_ID:
  2211. //
  2212. //  Method: GetH323ID
  2213. //
  2214. unsigned short *short_str;
  2215. //RM short_str = new unsigned short[MAXBUF];
  2216. PRINT_EXT("%sGetH323ID()n",blanks[indent]);
  2217. ret = pAliasAddress->GetH323ID(short_str, len);
  2218. if (!PROT_IS_SUCCESS(ret)) {
  2219. char emsg[128];
  2220. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  2221. } else {
  2222. PRINT_EXT("%sGetH323ID() short_str = %d,%d,...n",blanks[indent],short_str[0],short_str[1]);
  2223. PRINT_EXT("%sGetH323ID() len = %dn",blanks[indent],len);
  2224. }
  2225. break;
  2226. case AAT_URL_ID:
  2227. //
  2228. //  Method: GetURLID
  2229. //
  2230. PRINT_EXT("%sGetURLID()n",blanks[indent]);
  2231. ret = pAliasAddress->GetURLID(char_str, len);
  2232. if (!PROT_IS_SUCCESS(ret)) {
  2233. char emsg[128];
  2234. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  2235. } else {
  2236. char retstr[MAXOUTSTR];
  2237. PRINT_EXT("%sGetURLID() char_str = %sn",blanks[indent],
  2238. sprint_string((unsigned char *)char_str, MAXSTRLEN(len), retstr));
  2239. PRINT_EXT("%sGetURLID() len = %dn",blanks[indent],len);
  2240. }
  2241. break;
  2242. case AAT_TRANSPORT_ID:
  2243. //
  2244. //  Method: GetTransportID
  2245. //
  2246. sockaddr sockaddr_arg1;
  2247. PRINT_EXT("%sGetTransportID()n",blanks[indent]);
  2248. ret = pAliasAddress->GetTransportID(&sockaddr_arg1);
  2249. if (!PROT_IS_SUCCESS(ret)) {
  2250. char emsg[128];
  2251. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  2252. } else {
  2253. char sockstr[25];
  2254. PRINT_EXT("%sGetTransportID() sockaddr_arg1 = %sn",blanks[indent],sprint_sockaddr(&sockaddr_arg1,sockstr));
  2255. }
  2256. break;
  2257. case AAT_EMAIL_ID:
  2258. //
  2259. //  Method: GetEMailID
  2260. //
  2261. PRINT_EXT("%sGetEMailID()n",blanks[indent]);
  2262. ret = pAliasAddress->GetEMailID(char_str, len);
  2263. if (!PROT_IS_SUCCESS(ret)) {
  2264. char emsg[128];
  2265. PRINT_EXT("%s%sn",blanks[indent],printError(ret,emsg));
  2266. } else {
  2267. char retstr[MAXOUTSTR];
  2268. PRINT_EXT("%sGetEMailID() char_str = %sn",blanks[indent],
  2269. sprint_string((unsigned char *)char_str, MAXSTRLEN(len), retstr));
  2270. PRINT_EXT("%sGetEMailID() len = %dn",blanks[indent],len);
  2271. }
  2272. break;
  2273. case AAT_PARTY_NUMBER:
  2274. PRINT_EXT("%sERROR: tH450AliasAddress() type is AAT_PARTY_NUMBERn",blanks[indent]);
  2275. break;
  2276. default:
  2277. PRINT_EXT("%sERROR: tH450AliasAddress() type is not defined %dn",blanks[indent],type);
  2278. break;
  2279. }
  2280. return(TRUE);
  2281. }
  2282. char *
  2283. sprint_sockaddr(sockaddr *addr, char *str)
  2284. {
  2285. struct sockaddr_in *sa;
  2286. sa = (struct sockaddr_in *)addr;
  2287. sprintf(str,"%s:%d", inet_ntoa(sa->sin_addr), ntohs(sa->sin_port));
  2288. return(str);
  2289. }
  2290. char hextbl[16] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
  2291. char *
  2292. sprint_string(unsigned char *ustr, int len, char *retstr)
  2293. {
  2294. int  i, ch;
  2295. char *optr;
  2296. optr = retstr;
  2297. for(i = 0; i < len; i++) {
  2298. ch = (int)ustr[i];
  2299. if(isprint(ch)) {
  2300. *optr++ = (char)ch;
  2301. } else {
  2302. *optr++ = '\';
  2303. *optr++ = hextbl[ch / 16];
  2304. *optr++ = hextbl[ch % 16];
  2305. }
  2306. }
  2307. *optr++ = '';
  2308. return(retstr);
  2309. }
  2310. char *ROSTypes_name[] = { "ROS_INVALID", "ROS_INVOKE", "ROS_RETURN_RESULT",
  2311. "ROS_RETURN_ERROR", "ROS_REJECT" };
  2312. char *OpType_name[] = { "CTOT_INVALID", "CTOT_ILLEGAL1", "CTOT_ILLEGAL2",
  2313. "CTOT_ILLEGAL3", "CTOT_ILLEGAL4", "CTOT_ILLEGAL5",
  2314. "CTOT_ILLEGAL6", "CTOT_IDENTIFY", "CTOT_ABANDON",
  2315. "CTOT_INITIATE", "CTOT_SETUP", "CTOT_ACTIVE",
  2316. "CTOT_COMPLETE", "CTOT_UPDATE", "CTOT_TRANSFER" };
  2317. void
  2318. test_extractedSS(extractedSS *extSS, int count)
  2319. {
  2320. ProtReturnCode ret;
  2321. int i, j;
  2322. struct extractedROS *pRos;
  2323. PRINT_EXT("++++++++++ test_extractedSS() ++++++++++++++n");
  2324. for(i = 0; i < count; i++) {
  2325. PRINT_EXT("extractedSS[%d]  ",i);
  2326. PRINT_EXT(" InterpAPDU=%d ",extSS[i].ssInterpAPDU);
  2327. PRINT_EXT(" ssNumROSs=%d ",extSS[i].ssNumROSs);
  2328. PRINT_EXT("---------------n");
  2329. for(j = 0; j < extSS[i].ssNumROSs; j++) {
  2330. pRos = &extSS[i].ssROS[j];
  2331. PRINT_EXT("Received %s ",ROSTypes_name[pRos->type]);
  2332. if(pRos->type == ROS_INVALID) {
  2333. PRINT_EXT("n");
  2334. continue;
  2335. }
  2336. if(pRos->type != ROS_REJECT) {
  2337. PRINT_EXT("%s ",OpType_name[pRos->code]);
  2338. }
  2339. PRINT_EXT(": InvokeID=%dn",pRos->InvokeId);
  2340. switch(pRos->code) {
  2341.  case CTOT_IDENTIFY: // 
  2342.  {
  2343. break;
  2344.  }
  2345.  case CTOT_ABANDON:
  2346.  {
  2347. break;
  2348.  }
  2349.  case CTOT_INITIATE: // Arg
  2350.  {
  2351. if(pRos->type == ROS_RETURN_RESULT) {
  2352. PRINT_EXT(" ctirr CallID="%s"n",pRos->Res.CallID);
  2353. break;
  2354. }
  2355. PRINT_EXT(" ctii CallID="%s"n",pRos->Arg.CallID);
  2356. H4501EndpointAddr *ep = pRos->Arg.EndpointAddr;
  2357. H450AliasAddress *pAA;
  2358. int destCount;
  2359. int len;
  2360. int type;
  2361. ret = ep->GetNumDestAddrs(destCount);
  2362. if (!PROT_IS_SUCCESS(ret))  {
  2363. char emsg[128];
  2364. PRINT_EXT("%sn",printError(ret,emsg));
  2365. }
  2366. if(destCount == 0) {
  2367. break;
  2368. }
  2369. pAA = new H450AliasAddress[destCount];
  2370. ret = ep->GetDestAddrs(pAA, destCount);
  2371. if (!PROT_IS_SUCCESS(ret))  {
  2372. char emsg[128];
  2373. PRINT_EXT("%sn",printError(ret,emsg));
  2374. }
  2375. for(int ia = 0; ia < destCount; ia++) {
  2376. type = pAA[ia].GetType();
  2377. switch(type) {
  2378. case AAT_INVALID:
  2379. PRINT_EXT("test_extractedSS: AliasAddress type is AAT_INVALIDn");
  2380. break;
  2381. case AAT_E164:
  2382. {
  2383. char *e164;
  2384. ret = pAA[ia].GetE164(e164, len);
  2385. if (!PROT_IS_SUCCESS(ret)) {
  2386. char emsg[128];
  2387. PRINT_EXT("%sn",printError(ret,emsg));
  2388. } else {
  2389. char retstr[MAXOUTSTR];
  2390. PRINT_EXT(" GetE164() e164 = %sn",
  2391. sprint_string((unsigned char *)e164,
  2392. MAXSTRLEN(len), retstr));
  2393. PRINT_EXT(" len = %dn",len);
  2394. }
  2395. break;
  2396. }
  2397. case AAT_H323_ID:
  2398. {
  2399. unsigned short *h323id;
  2400. ret = pAA[ia].GetH323ID(h323id, len);
  2401. if (!PROT_IS_SUCCESS(ret)) {
  2402. char emsg[128];
  2403. PRINT_EXT("%sn",printError(ret,emsg));
  2404. } else {
  2405. PRINT_EXT(" h323id = %d,%d,... ",
  2406. h323id[0],h323id[1]);
  2407. PRINT_EXT(" len = %dn",len);
  2408. }
  2409. break;
  2410. }
  2411. case AAT_URL_ID:
  2412. {
  2413. char *url;
  2414. ret = pAA[ia].GetURLID(url, len);
  2415. if (!PROT_IS_SUCCESS(ret)) {
  2416. char emsg[128];
  2417. PRINT_EXT("%sn",printError(ret,emsg));
  2418. } else {
  2419. char retstr[MAXOUTSTR];
  2420. PRINT_EXT(" url = %s ",
  2421. sprint_string((unsigned char *)url,
  2422. MAXSTRLEN(len), retstr));
  2423. PRINT_EXT(" len = %dn",len);
  2424. }
  2425. break;
  2426. }
  2427. case AAT_TRANSPORT_ID:
  2428. {
  2429. sockaddr addr;
  2430. ret = pAA[ia].GetTransportID(&addr);
  2431. if (!PROT_IS_SUCCESS(ret)) {
  2432. char emsg[128];
  2433. PRINT_EXT("%sn",printError(ret,emsg));
  2434. } else {
  2435. char sockstr[25];
  2436. PRINT_EXT(" GetTransportID() transportID = %sn",
  2437. sprint_sockaddr(&addr,sockstr));
  2438. }
  2439. break;
  2440. }
  2441. case AAT_EMAIL_ID:
  2442. {
  2443. char *email;
  2444. ret = pAA[ia].GetEMailID(email, len);
  2445. if (!PROT_IS_SUCCESS(ret)) {
  2446. char emsg[128];
  2447. PRINT_EXT("%sn",printError(ret,emsg));
  2448. } else {
  2449. char retstr[MAXOUTSTR];
  2450. PRINT_EXT(" email = %s ",
  2451. sprint_string((unsigned char *)email,
  2452. MAXSTRLEN(len), retstr));
  2453. PRINT_EXT(" len = %dn",len);
  2454. }
  2455. break;
  2456. }
  2457. case AAT_PARTY_NUMBER:
  2458. {
  2459. PRINT_EXT("PARTY_NUMBER not implementedn");
  2460. break;
  2461. }
  2462. default:
  2463. PRINT_EXT("AliasAddr type is not defined %dn",type);
  2464. break;
  2465. }
  2466. }
  2467. delete [] pAA;
  2468. break;
  2469.  }
  2470.  case CTOT_SETUP: // Arg
  2471.  {
  2472. if(pRos->type == ROS_RETURN_RESULT) {
  2473. PRINT_EXT(" ctsrr CallID="%s"n",pRos->Res.CallID);
  2474. break;
  2475. }
  2476. PRINT_EXT(" ctsi CallID="%s"n",pRos->Arg.CallID);
  2477. break;
  2478.  }
  2479.  case CTOT_ACTIVE: // Arg
  2480.  {
  2481. break;
  2482.  }
  2483.  case CTOT_COMPLETE: // Arg
  2484.  {
  2485. break;
  2486.  }
  2487.  case CTOT_UPDATE: // Arg
  2488.  {
  2489. break;
  2490.  }
  2491.  case CTOT_TRANSFER:
  2492.  {
  2493. break;
  2494.  }
  2495.  default:
  2496. PRINT_EXT("test_extractedSS: unknown ROS op type %dn",pRos->type);
  2497. break;
  2498. }
  2499. }
  2500. }
  2501. }
  2502. void
  2503. deleteSSlist(H450SSseq *list)
  2504. {
  2505. H450SSseq *p, *pn;
  2506. p = list;
  2507. while(p != NULL) {
  2508. delete p->value; // delete H4501SuppService
  2509. pn = p->next;
  2510. delete p; // delete H450SSseq
  2511. p = pn;
  2512. }
  2513. }