Exchange/RJE Manual
User-Exit Procedure
Example Programs
104698 Tandem Computers Incorporated D–29
Page 9 [1] $RJE.JOSHI.UESRC 1991-06-13 13:25:30
SUBPROC ANALYZE^MODEM^RESPONSE
365. 005155 1 1 !*****************************************************************************!
366. 005155 1 1 ! THIS SUBPROC ANALYZES THE RESPONSE FROM THE MODEM TO THE DIALING REQUEST. !
367. 005155 1 1 ! IF THERE ARE ANY ERRORS, THE VARIABLE RESPONSE^STATUS GETS THE !
368. 005155 1 1 ! APPROPRIATE VALUE AND AN ERROR MESSAGE IS WRITTEN TO THE OUT FILE. !
369. 005155 1 1 !*****************************************************************************!
370. 005155 1 1 SUBPROC analyze^modem^response ;
371. 005155 2 1 BEGIN
372. 005155 2 2 DEFINE write^log =
373. 005155 2 2 BEGIN
374. 005155 2 2 CALL WRITE(out^file^num,tbuf,0) ;
375. 005155 2 2 CALL WRITE(out^file^num,tbuf,@t'-'@stbuf) ;
376. 005155 2 2 CALL WRITE(out^file^num,tbuf,0);
377. 005155 2 2 END #;
378. 005155 2 2 CASE cp.cp^data.data[1] OF !CP.CP^DATA.DATA[0] CONTAINS BSC CONTROL
379. 005162 2 2 BEGIN !CHARACTERS
380. 005162 2 3 "E" ->
381. 005162 2 3 BEGIN
382. 005162 2 4 response^status := MODEM^PH^NBR^ERR;
383. 005165 2 4 stbuf ':=' "***** ERROR IN PHONE NUMBER:"&
384. 005165 2 4 phone^number FOR phone^number^len -> @t;
385. 005201 2 4 write^log;
386. 005233 2 4 END;
387. 005233 2 3 "N" ->
388. 005234 2 3 BEGIN
389. 005234 2 4 response^status := MODEM^NO^DIAL^TONE^ERR;
390. 005237 2 4 stbuf ':=' "***** NO DIAL TONE DETECTED WITH 10 SECONDS" -> @t ;
391. 005250 2 4 write^log;
392. 005302 2 4 END;
393. 005302 2 3 "D" ->
394. 005303 2 3 BEGIN
395. 005303 2 4 ! DIAL TONE DETECTED !
396. 005303 2 4 END;
397. 005303 2 3 "R" ->
398. 005304 2 3 BEGIN
399. 005304 2 4 ! RING BACK TONE DETECTED!
400. 005304 2 4 END;
401. 005304 2 3 "B" ->
402. 005305 2 3 BEGIN
403. 005305 2 4 response^status := MODEM^BUSY^LINE^ERR;
404. 005310 2 4 stbuf ':=' "***** BUSY LINE DETECTED" -> @t ;
405. 005321 2 4 write^log;
406. 005353 2 4 END;
407. 005353 2 3 "T" ->
408. 005355 2 3 BEGIN
409. 005355 2 4 response^status := MODEM^REORDER^TONE^ERR;
410. 005360 2 4 stbuf ':=' "***** REORDER TONE DETECTED" -> @t ;
411. 005371 2 4 write^log;
412. 005423 2 4 END;
413. 005423 2 3 "Q" ->
414. 005425 2 3 BEGIN
415. 005425 2 4 response^status := MODEM^QUIT^TIMEOUT^ERR;
416. 005430 2 4 stbuf ':=' "***** QUIT (ABORT) TIMEOUT" -> @t ;
417. 005441 2 4 write^log;
418. 005473 2 4 END;
419. 005473 2 3 "A" ->
420. 005474 2 3 BEGIN
421. 005474 2 4 call^completed := TRUE ; ! WE HAVE A GOOD CALL