| 1 | XMCTLK ;(WASH ISC)/CAP-TalkMan ;04/18/2002  07:29 | 
|---|
| 2 | ;;8.0;MailMan;;Jun 28, 2002 | 
|---|
| 3 | ; Entry points used by MailMan options (not covered by DBIA): | 
|---|
| 4 | ; TALK   XMTALK | 
|---|
| 5 | I '$D(DUZ) W !,$C(7),"You don't have a DUZ." Q | 
|---|
| 6 | N XMABORT,XMDUZ,XMV | 
|---|
| 7 | D INIT | 
|---|
| 8 | S XMABORT=0 | 
|---|
| 9 | D HELP(.XMABORT) Q:XMABORT | 
|---|
| 10 | GO K XMG0 | 
|---|
| 11 | GO1 K %ZIS | 
|---|
| 12 | S %ZIS="" | 
|---|
| 13 | D ^%ZIS Q:POP | 
|---|
| 14 | I '$D(XMDUZ) Q:'$D(DUZ)  D INIT | 
|---|
| 15 | I IO=IO(0) D ^%ZISC W !,"YOU MUST CHOOSE ANOTHER DEVICE" Q | 
|---|
| 16 | ENT ; | 
|---|
| 17 | N XMZ,XMSUB,TN,TL,TP,TK | 
|---|
| 18 | W @IOF,"<<<< You are now talking through device ",IO," >>>>" | 
|---|
| 19 | X ^%ZOSF("NBRK"),^("PRIINQ") S XMP=Y,X=Y+3,XME0(0)="S R=0,XME0=$$TSTAMP^XMXUTIL1" S:X>10 X=10 | 
|---|
| 20 | X ^%ZOSF("PRIORITY") | 
|---|
| 21 | I $$NEWERR^%ZTER N $ETRAP,$ESTACK S $ETRAP="" | 
|---|
| 22 | S X="ABEND^XMCTLK",@^%ZOSF("TRAP") | 
|---|
| 23 | W !,"===== Enter <control>A to stop. =====",$C(7),! | 
|---|
| 24 | S XM="",D="",XMD0=0,A="" | 
|---|
| 25 | S XMB0=^%ZOSF("EOFF"),XMB0("RM")="S X=0 "_^("RM"),XMC0=^("EON"),XMF0=^("TYPE-AHEAD"),XMA=^("TRMRD") F I="TRMON","TRMOFF","NBRK" S XMG0(I)=^(I) | 
|---|
| 26 | S TN=$P($H,",",2),TL=TN,(TP,TK)=0 ; Times & Timed reads Port/Keyboard | 
|---|
| 27 | D T | 
|---|
| 28 | S D="" | 
|---|
| 29 | U IO | 
|---|
| 30 | G G | 
|---|
| 31 | ; | 
|---|
| 32 | ;MAIN LOOP / DIALOG OCCURS HERE | 
|---|
| 33 | R ; | 
|---|
| 34 | W:$D(XMC("TALKMODE")) *17 | 
|---|
| 35 | U IO | 
|---|
| 36 | R A#150:$S($G(R)>20:1,1:0) | 
|---|
| 37 | W:$D(XMC("TALKMODE")) *19 | 
|---|
| 38 | S D=D_A | 
|---|
| 39 | X XMA | 
|---|
| 40 | S TN=$P($H,",",2) | 
|---|
| 41 | S:(TN-TL>5) TP=1 ;ihs Time Now TP adjustment | 
|---|
| 42 | S R=$G(R)+1 | 
|---|
| 43 | I Y>0 D T0 U IO(0) W A,*Y S TP=0,TL=TN X XME0(0) G R | 
|---|
| 44 | D T0 | 
|---|
| 45 | U IO(0) | 
|---|
| 46 | W A | 
|---|
| 47 | I $L(A) S TP=0,TL=TN X XME0(0) D T0 G R | 
|---|
| 48 | S ; | 
|---|
| 49 | S Y=0 | 
|---|
| 50 | U IO(0) | 
|---|
| 51 | R A:TK S TK=0 E  U IO W A S:$L(A) TP=0,TL=TN G R:$L(A),Q:$$TSTAMP^XMXUTIL1-XME0>$S($D(DTIME):DTIME,1:300),R ;ihs timer adjustment | 
|---|
| 52 | X XMA | 
|---|
| 53 | G Q:Y=1 | 
|---|
| 54 | S:Y=27 TK=1 | 
|---|
| 55 | S TP=0 | 
|---|
| 56 | I Y=13,$D(XMG0("EON")) S TP=0 U IO(0) W ! ;ihs timer adjustment | 
|---|
| 57 | U IO | 
|---|
| 58 | W A,*Y | 
|---|
| 59 | W:$D(XMG0("EON"))&(Y=13) ! | 
|---|
| 60 | S:$L(A) TP=0 | 
|---|
| 61 | X XME0(0) | 
|---|
| 62 | G R | 
|---|
| 63 | Q ; | 
|---|
| 64 | U IO(0) | 
|---|
| 65 | W $C(7) | 
|---|
| 66 | H 1 | 
|---|
| 67 | W $C(7) | 
|---|
| 68 | X XMC0,XMF0,XMG0("TRMOFF"),XMG0("NBRK") | 
|---|
| 69 | K DIR | 
|---|
| 70 | S DIR("T")=9 | 
|---|
| 71 | S DIR(0)="S^E:END TalkMan session;C:begin CAPTURE TalkMan dialog in message;N:do NOT end TalkMan session.;K:KERMIT Transfer Files" | 
|---|
| 72 | S DIR("B")="N" | 
|---|
| 73 | S DIR("??")="XMTALK" | 
|---|
| 74 | I '$D(XMDUZ) S $P(DIR(0),";",2,3)=$P(DIR(0),";",3) G D | 
|---|
| 75 | I $D(XMSUB) S $P(DIR(0),";",2)="S:STOP capture" | 
|---|
| 76 | D ; | 
|---|
| 77 | S XMA0=D | 
|---|
| 78 | D ^DIR S:$D(DTOUT) X="^" I '$D(X) W " ???? " G D | 
|---|
| 79 | S D=XMA0 | 
|---|
| 80 | I "N"[X D T S A=" <Continue in TalkMan Mode >" D T0 W !,A,! G G | 
|---|
| 81 | ; | 
|---|
| 82 | ;Using Kermit ! | 
|---|
| 83 | I "K"=X D  G G | 
|---|
| 84 | . N X | 
|---|
| 85 | . I $G(^DIC(15,0,"VR"))'>7.1 W !," <No Kermit use yet. The correct Kernel tools version is not installed !>",! Q | 
|---|
| 86 | . D KERM^XTKERMIT,T | 
|---|
| 87 | . W !," <Continue in TalkMan Mode >",! | 
|---|
| 88 | . D U | 
|---|
| 89 | . S D="",Y=1 | 
|---|
| 90 | I "S"=X K XMSUB W ! G G | 
|---|
| 91 | G DQ:"^E"[$E(X) | 
|---|
| 92 | I $D(XMZ) W ! S XMSUB=1 G G | 
|---|
| 93 | S XMD0=0 | 
|---|
| 94 | K %I,%H | 
|---|
| 95 | S XMSUB=XMDUN_" DIALOG CAPTURE "_$$HTE^XLFDT($H,5) | 
|---|
| 96 | D GET^XMA2 | 
|---|
| 97 | W ! | 
|---|
| 98 | G G | 
|---|
| 99 | ; | 
|---|
| 100 | G ;RETURN TO TALKMAN MODE | 
|---|
| 101 | U IO | 
|---|
| 102 | X XMB0("RM"),XMB0,XMF0,XMG0("NBRK"),XMG0("TRMON") | 
|---|
| 103 | X:$D(XMG0("EON")) XMC0 | 
|---|
| 104 | D T | 
|---|
| 105 | X XME0(0) | 
|---|
| 106 | G R | 
|---|
| 107 | ; | 
|---|
| 108 | ABEND ;Handle abnormal end | 
|---|
| 109 | D ^%ZISC | 
|---|
| 110 | U IO(0) | 
|---|
| 111 | W $C(7) | 
|---|
| 112 | H 1 | 
|---|
| 113 | W $C(7) | 
|---|
| 114 | X XMC0,XMF0,XMG0("TRMOFF"),XMG0("NBRK") | 
|---|
| 115 | G DQ | 
|---|
| 116 | ; | 
|---|
| 117 | ;END TALKMAN SESSION | 
|---|
| 118 | DQ ; | 
|---|
| 119 | W $C(7),!!,"End of Talkman session." | 
|---|
| 120 | W !,"You are back at your starting place.",! | 
|---|
| 121 | H 1 | 
|---|
| 122 | W $C(7) | 
|---|
| 123 | W !! | 
|---|
| 124 | U IO | 
|---|
| 125 | W *17 | 
|---|
| 126 | X XMG0("TRMOFF") | 
|---|
| 127 | D ^%ZISC,HOME^%ZIS | 
|---|
| 128 | D N | 
|---|
| 129 | G QQ:'$D(XMZ),QQ:'XMZ | 
|---|
| 130 | I 'XMD0 D KILLMSG^XMXUTIL(XMZ) G QQ | 
|---|
| 131 | I $P(XMD0,U,2,999)'="" S XMSUB=1,Y=999,D=$P(XMD0,U,2,999) D T0 | 
|---|
| 132 | S XMD0=+XMD0 | 
|---|
| 133 | I XMD0 D NOW^%DTC D  K %I,%H G QQ | 
|---|
| 134 | . S ^XMB(3.9,XMZ,2,0)="^3.92A^"_XMD0_U_XMD0_U_% | 
|---|
| 135 | . K XMY,^TMP("XMY",$J),^TMP("XMY0",$J) | 
|---|
| 136 | . S XMY($G(XMDUZ,DUZ))="" | 
|---|
| 137 | . D ENT1^XMD W !,"TalkMan dialog capture being delivered now." | 
|---|
| 138 | D KILLMSG^XMXUTIL(XMZ) | 
|---|
| 139 | QQ ; | 
|---|
| 140 | W ! | 
|---|
| 141 | D CHK^XM | 
|---|
| 142 | W ! | 
|---|
| 143 | S X=XMP | 
|---|
| 144 | X ^%ZOSF("PRIORITY") | 
|---|
| 145 | K %,X1,X2,XMA0,XMB0,XMC0,XMD0,XME0,XMF0,XMG0,XMA,XMP,XMSUB,DIR | 
|---|
| 146 | S XMZ=0 | 
|---|
| 147 | Q | 
|---|
| 148 | N ; | 
|---|
| 149 | U IO(0) | 
|---|
| 150 | X XMC0 | 
|---|
| 151 | I $D(DUZ) S X=$G(^VA(200,DUZ,200)) Q:X#10'=1  Q:$P(^(200),U,9)="Y" | 
|---|
| 152 | S A="NO-TYPE-AHEAD" Q:'$D(^%ZOSF(A))  X ^(A) | 
|---|
| 153 | Q | 
|---|
| 154 | T ; | 
|---|
| 155 | U IO(0) | 
|---|
| 156 | S X=0 | 
|---|
| 157 | X ^%ZOSF("RM"),XMF0,XMB0,XMG0("TRMON"),XMG0("NBRK") | 
|---|
| 158 | I $D(XMG0("EON")) X XMC0 | 
|---|
| 159 | Q | 
|---|
| 160 | T0 ; | 
|---|
| 161 | I '$D(XMSUB)!(D=""&(Y'=9)) S D="" Q | 
|---|
| 162 | I D'?.ANP F I=1:1 I $E(D,I)?1C S D=$E(D,1,I-1)_$S($A(D,I)=9:"",1:" ")_$E(D,I+1,999) Q:$E(D,I,999)?.ANP  S I=I-1 | 
|---|
| 163 | T1 ; | 
|---|
| 164 | I Y'=13&($L(D)<81)!(Y>0&(D="")) S XMD0=+XMD0_U_D Q:Y'=9  S D=$E(D_"         ",1,$L(D)\9+1*9),$P(XMD0,U,2)=D Q | 
|---|
| 165 | I D="" S D=" " | 
|---|
| 166 | S XMD0=XMD0+1,^XMB(3.9,XMZ,2,XMD0,0)=$E(D,1,80),D=$E(D,81,999) | 
|---|
| 167 | G T1 | 
|---|
| 168 | U ; | 
|---|
| 169 | S XME0=$$TSTAMP^XMXUTIL1 | 
|---|
| 170 | Q | 
|---|
| 171 | ; | 
|---|
| 172 | ;GET INITIAL VALUES | 
|---|
| 173 | ECHO ;ENTRY TO ECHO | 
|---|
| 174 | K XMG0 | 
|---|
| 175 | S XMG0("EON")=1 | 
|---|
| 176 | G GO1 | 
|---|
| 177 | INIT ; | 
|---|
| 178 | D INIT^XMVVITAE | 
|---|
| 179 | K XMA0,XMB0,XMC0,XMD0,XME0,XMF0 | 
|---|
| 180 | G H^XUS:'$D(XMDUZ),H^XUS:'$D(XMDUN) K XMZ | 
|---|
| 181 | Q | 
|---|
| 182 | HELP(XMABORT) ; | 
|---|
| 183 | N DIR,X,Y | 
|---|
| 184 | S DIR(0)="Y" | 
|---|
| 185 | S DIR("A")="Do you want help" | 
|---|
| 186 | S DIR("B")="NO" | 
|---|
| 187 | D ^DIR I $D(DIRUT) S XMABORT=1 Q | 
|---|
| 188 | Q:'Y | 
|---|
| 189 | S XQH=$S($G(DUZ(0))="@":"XMTALK",$D(^XUSEC("XMMGR",DUZ)):"XMTALK",1:"XMTALK-USER") | 
|---|
| 190 | D EN^XQH | 
|---|
| 191 | Q | 
|---|
| 192 | TALK ; Talk mode entry | 
|---|
| 193 | I '$D(DUZ) W !,$C(7),"You don't have a DUZ." Q | 
|---|
| 194 | N XMC,XMDUZ,XMV,XMOKTYPE,XMINST,XMSITE,XMIO,XMB,XMABORT | 
|---|
| 195 | N XMLER,XMLINE,XMCNT,DIC,XMA0,XMB0,XMC0,XMD0,XME0,XMF0,XMG0 | 
|---|
| 196 | D INIT^XMVVITAE | 
|---|
| 197 | S XMC("TALKMODE")=1,XMABORT=0 | 
|---|
| 198 | D HELP(.XMABORT) Q:XMABORT | 
|---|
| 199 | ;Ask Domain / get defaults | 
|---|
| 200 | ;S (XMOKTYPE("SMTP"),XMOKTYPE("TELNET"))="" | 
|---|
| 201 | S XMOKTYPE("TELNET")="" | 
|---|
| 202 | D ASK^XMCXU(.XMINST,.XMSITE,.XMB,.XMABORT,"I $P(^(0),U,2)[""T""",.XMOKTYPE) Q:XMABORT | 
|---|
| 203 | S XMIO=$P(XMB("SCR REC"),U,5) | 
|---|
| 204 | S XM="" | 
|---|
| 205 | W !,"Attempting to connect...." | 
|---|
| 206 | S XMDUZO=XMDUZ | 
|---|
| 207 | D ENT^XMC1 | 
|---|
| 208 | S XMDUZ=XMDUZO K XMDUZO | 
|---|
| 209 | I ER D  Q | 
|---|
| 210 | . D ^%ZISC | 
|---|
| 211 | . W !,$C(7),"Could not connect to ",XMSITE,"." | 
|---|
| 212 | . W !,"You are back at ",^XMB("NETNAME"),"." | 
|---|
| 213 | . D KILL^XMC | 
|---|
| 214 | U IO(0) | 
|---|
| 215 | D ENT | 
|---|
| 216 | D KILL^XMC | 
|---|
| 217 | Q | 
|---|