home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 15 / CD_ASCQ_15_070894.iso / vrac / callid22.zip / CALLERID.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1994-05-26  |  7KB  |  422 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 1.OO (plain) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Integer  INTEGER003
  20.     Integer  INTEGER004
  21.     Integer  INTEGER005
  22.     Integer  INTEGER006
  23.     Integer  INTEGER007
  24.     Integer  INTEGER008
  25.     Integer  INTEGER009
  26.     Integer  INTEGER010
  27.     Integer  INTEGER011
  28.     Integer  INTEGER012
  29.     Integer  INTEGER013
  30.     Integer  INTEGER014
  31.     Integer  INTEGER015
  32.     Integer  INTEGER016
  33.     Integer  INTEGER017
  34.     Integer  INTEGER018
  35.     Integer  INTEGER019
  36.     Integer  INTEGER020
  37.     Integer  INTEGER021
  38.     Integer  INTEGER022
  39.     String   STRING002
  40.     String   STRING003
  41.     String   STRING004
  42.     String   STRING005
  43.     String   STRING006
  44.     String   STRING007
  45.     String   STRING008
  46.     String   STRING009
  47.     String   STRING010
  48.     String   STRING011
  49.     String   STRING012
  50.     String   STRING013
  51.     String   STRING014
  52.     String   STRING015
  53.     String   STRING016
  54.     String   STRING017
  55.     String   STRING018
  56.     String   STRING019
  57.     String   STRING020
  58.     String   STRING021
  59.     String   STRING022
  60.     String   STRING023
  61.     String   STRING024
  62.  
  63. ;------------------------------------------------------------------------------
  64.  
  65.     STRING005 = PPEPath() + PPEName() + ".LOG"
  66.     INTEGER003 = 0
  67.     STRING006 = ""
  68.     INTEGER004 = 10
  69.     INTEGER005 = 0
  70.     INTEGER006 = 0
  71.     STRING009 = " -()+"
  72.     STRING010 = PPEPath() + "HITSMAX"
  73.     STRING012 = PPEPath() + PPEName() + ".CFG"
  74.     STRING013 = PPEPath() + "MESSAGE.TXT"
  75.     STRING015 = PPEPath() + "NOMATCH"
  76.     INTEGER011 = 0
  77.     STRING019 = "O"
  78.     STRING020 = PPEPath() + "LONG-D"
  79.     STRING017 = "P"
  80.     STRING018 = PPEPath() + "BLOCKEDP"
  81.     INTEGER016 = 0
  82.     STRING021 = PPEPath() + "RECALLID"
  83.     INTEGER017 = 0
  84.     INTEGER018 = 0
  85.     INTEGER019 = 1
  86.     INTEGER020 = 0
  87.     Cls
  88.     PrintLn 
  89.     PrintLn 
  90.     PrintLn "@X0A..Performing CallerID verification checking....Please Standby!!@X07"
  91.     PrintLn "@X0C..CALLERID v2.2  @X0D(c) Copyright 1993 by Al Segura..@X07"
  92.     PrintLn 
  93.     If (OnLocal()) Then
  94.         Newline
  95.         PrintLn "@X0F...CALLERID.PPE is bypassed in LOCAL mode!@X07"
  96.         If (INTEGER019) Log "LOCAL mode detected, CALLERID.PPE bypassed!", 1
  97.         Newline
  98.     Else
  99.         STRING004 = CallId()
  100.         If (STRING004 == "") Then
  101.             If (INTEGER019) Log "No CID info available! (CALLERID.PPE)", 1
  102.             If (INTEGER011) Goto LABEL004
  103.             STRING016 = "BLANK!"
  104.             Goto LABEL010
  105.         Endif
  106.         If (Exist(STRING012)) Then
  107.             FOpen 1, STRING012, 0, 0
  108.             Newlines 2
  109.             SPrintLn "...Loading CID Records...(CALLERID.PPE)"
  110.             Newline
  111.             FGet 1, STRING014
  112.             FGet 1, INTEGER020
  113.             FGet 1, INTEGER017
  114.             FGet 1, INTEGER018
  115.             FGet 1, INTEGER010
  116.             FGet 1, INTEGER006
  117.             FGet 1, INTEGER005
  118.             FGet 1, INTEGER016
  119.             FGet 1, INTEGER003
  120.             FGet 1, STRING002
  121.             FGet 1, INTEGER019
  122.             FGet 1, INTEGER022
  123.             FGet 1, INTEGER011
  124.             FGet 1, INTEGER004
  125.             FClose 1
  126.         Else
  127.             STRING014 = "1"
  128.             INTEGER020 = 1
  129.             INTEGER017 = 0
  130.             INTEGER018 = 80
  131.             INTEGER010 = 3
  132.             INTEGER006 = 1
  133.             INTEGER005 = 1
  134.             INTEGER016 = 0
  135.             INTEGER003 = 1
  136.             STRING002 = "SYSOP"
  137.             INTEGER019 = 1
  138.             INTEGER022 = 20
  139.             INTEGER011 = 0
  140.             INTEGER004 = 10
  141.             If (INTEGER019) Log "CallerID.PPE using built-in defaults!", 1
  142.         Endif
  143.         Select Case (STRING014)
  144.             Case "1"
  145.                 STRING006 = "NMBR = "
  146.             Case "2"
  147.                 STRING006 = "NUMBER: "
  148.             Case Else
  149.                 STRING006 = STRING014
  150.         End Select
  151.         If ((CurSec() < INTEGER017) || (CurSec() > INTEGER018)) Stop
  152.         GetUser
  153.         STRING023 = U_HVPhone
  154.         Gosub LABEL005
  155.         STRING011 = STRING023
  156.         STRING023 = U_BDPhone
  157.         Gosub LABEL005
  158.         STRING003 = STRING023
  159.         INTEGER014 = InStr(STRING004, STRING006)
  160.         INTEGER012 = Len(STRING006)
  161.         If (INTEGER012 == 0) Then
  162.             If (INTEGER019) Log "Your CID Key is BLANK! (CALLERID.PPE).", 1
  163.             If (INTEGER019) Log "Verify proper CID Key for your modem!", 1
  164.             Goto LABEL004
  165.         ElseIf (INTEGER014 == 0) Then
  166.             If (INTEGER019) Log "Could not find CID key: " + STRING006 + " (CALLERID.PPE).", 1
  167.             If (INTEGER019) Log "Verify proper CID Key for your modem!", 1
  168.             Goto LABEL004
  169.         Endif
  170.         STRING016 = Upper(Trim(Mid(STRING004, INTEGER014 + INTEGER012, 10), " "))
  171.         Select Case (Left(STRING016, 1))
  172.             Case STRING017
  173.                 Message 0, STRING002, "CALLERID.PPE", "Blocked Number User", "R", 0, 0, 0, STRING013
  174.                 If (Exist(STRING018)) Then
  175.                     StartDisp 1
  176.                     DispFile STRING018, 4 + 2 + 1
  177.                 Endif
  178.                 If (INTEGER016) Then
  179.                     Gosub LABEL006
  180.                     Hangup
  181.                     End
  182.                 Endif
  183.                 Goto LABEL001
  184.             Case STRING019
  185.                 If (Exist(STRING020)) Then
  186.                     DispFile STRING020, 4 + 2 + 1
  187.                 Endif
  188.                 Goto LABEL001
  189.         End Select
  190.         If (Len(STRING016) <> INTEGER004) Then
  191.             If (INTEGER019) Log "CID Number not = " + String(INTEGER004) + " digits. (CALLERID.PPE)", 1
  192.             Goto LABEL010
  193.         Endif
  194.         For INTEGER014 = 1 To INTEGER004
  195.             If (InStr(Mask_Num(), Mid(STRING016, INTEGER014, 1)) == 0) Then
  196.                 If (INTEGER019) Log "Garbage found in CID number! (CALLERID.PPE)", 1
  197.                 Goto LABEL010
  198.             Endif
  199.         Next
  200.         If ((Right(STRING016, Len(STRING011)) <> STRING011) && (Right(STRING016, Len(STRING003)) <> STRING003)) Then
  201.             If (INTEGER019) Log "CallerID NoMatch Hit!! (CALLERID.PPE)", 1
  202.             INTEGER007 = 1
  203.             If (Exist(STRING015)) Then
  204.                 DispFile STRING015, 4 + 2 + 1
  205.             Endif
  206.         Endif
  207.         :LABEL001
  208.         If ((Left(STRING016, 1) == STRING019) || (Left(STRING016, 1) == STRING017)) Then
  209.             PrintLn 
  210.         Else
  211.             PrintLn 
  212.             PrintLn "@X0A  Logging @X0B", STRING016, "@X0A as current number!@X07"
  213.         Endif
  214.         PrintLn "@X0C  Writing information in log....Please Standby!! (CALLERID.PPE)@X07"
  215.         PrintLn 
  216.         If (INTEGER020 == 1) Then
  217.             STRING022 = U_Cmnt2
  218.             If ((Len(STRING022) > INTEGER004 + 1) && (INTEGER007 == 1)) Then
  219.                 STRING024 = Left(STRING022, INTEGER004 + 3)
  220.                 STRING024 = Right(STRING024, 2)
  221.                 If (Left(STRING024, 1) == ",") STRING024 = Right(STRING024, 1)
  222.                 INTEGER008 = STRING024
  223.                 STRING022 = Left(STRING022, Len(STRING016))
  224.                 If (STRING022 <> STRING016) Then
  225.                     STRING022 = STRING016
  226.                     INTEGER008 = 0
  227.                 Endif
  228.                 If (((INTEGER008 >= INTEGER010) && (INTEGER010 <> 0)) && (CurSec() < INTEGER022)) Then
  229.                     CdChkOff
  230.                     U_ExpSec = INTEGER006
  231.                     U_Sec = INTEGER006
  232.                     If (INTEGER019) Log "Excessive CallerID failures! (CALLERID.PPE)", 1
  233.                     Message 0, STRING002, "CALLERID.PPE", "Excessive No-Matches", "R", 0, 0, 0, STRING013
  234.                     Gosub LABEL006
  235.                     If (INTEGER019) Log "CallerID.PPE results: " + U_Cmnt2, 0
  236.                     INTEGER008 = 0
  237.                     U_Cmnt2 = STRING022 + "," + String(INTEGER008)
  238.                     PutUser
  239.                     If (Exist(STRING010)) Then
  240.                         StartDisp 1
  241.                         DispFile STRING010, 4 + 2 + 1
  242.                         Goto LABEL002
  243.                     Endif
  244.                     If (INTEGER019) Log "HitsMaxFile is missing! (CALLERID.PPE)", 1
  245.                     :LABEL002
  246.                     CdChkOn
  247.                     Hangup
  248.                     End
  249.                 Endif
  250.                 Inc INTEGER008
  251.                 Goto LABEL003
  252.             Endif
  253.             STRING022 = STRING016
  254.             :LABEL003
  255.             STRING022 = STRING022 + "," + String(INTEGER008)
  256.             SPrintLn "CallerID.PPE Results: " + STRING022
  257.             If (INTEGER019) Log "CallerID.PPE Results: " + STRING022, 0
  258.             U_Cmnt2 = STRING022
  259.             PutUser
  260.         Endif
  261.         Gosub LABEL006
  262.         More
  263.         Newline
  264.         SPrintLn "CALLERID.PPE Completed Successfully!"
  265.         Newline
  266.     Endif
  267.     :LABEL004
  268.     End
  269.     :LABEL005
  270.     For INTEGER021 = 1 To Len(STRING009)
  271.         STRING023 = Strip(STRING023, Mid(STRING009, INTEGER021, 1))
  272.     Next
  273.     If (STRING023 == "") Then
  274.         STRING023 = "0000000000"
  275.     ElseIf (Left(STRING023, 1) == "1") Then
  276.         STRING023 = Mid(STRING023, 2, Len(STRING023) - 1)
  277.     Endif
  278.     Return
  279.     :LABEL006
  280.     If (INTEGER005 == 1) Then
  281.         INTEGER015 = InStr(STRING004, "NAME")
  282.         INTEGER013 = Len(STRING004) - INTEGER015 + 1
  283.         If (INTEGER015 > 0) Then
  284.             STRING007 = Left(STRING004, INTEGER015 - 1)
  285.             STRING008 = Mid(STRING004, INTEGER015, INTEGER013)
  286.             INTEGER009 = 2
  287.             Goto LABEL007
  288.         Endif
  289.         STRING007 = STRING004
  290.         :LABEL007
  291.         If (Exist(STRING005)) Goto LABEL008
  292.         FCreate 1, STRING005, 2, 0
  293.         FPutLn 1, "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"
  294.         FPutLn 1, "@@@@@@@@             CALLERID.LOG                 @@@@@@@@@@"
  295.         FPutLn 1, "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@"
  296.         FPutLn 1, STRING007
  297.         If (INTEGER009 == 2) FPutLn 1, STRING008
  298.         FPutLn 1, "User Name: ", U_Name(), "   Hits: ", String(INTEGER008)
  299.         FPutLn 1, "____________________________________________________________"
  300.         Goto LABEL009
  301.         :LABEL008
  302.         FAppend 1, STRING005, 2, 0
  303.         FPutLn 1, STRING007
  304.         If (INTEGER009 == 2) FPutLn 1, STRING008
  305.         FPutLn 1, "User Name: ", U_Name(), "   Hits: ", String(INTEGER008)
  306.         FPutLn 1, "____________________________________________________________"
  307.         :LABEL009
  308.         FClose 1
  309.     Endif
  310.     Return
  311.     :LABEL010
  312.     Gosub LABEL006
  313.     Cls
  314.     If (Exist(STRING021)) Then
  315.         Newlines 6
  316.         DispFile STRING021, 4 + 2 + 1
  317.         Newlines 2
  318.     Else
  319.         Newlines 2
  320.         PrintLn "Tell SysOp file RECALLID is missing! (CALLERID.PPE)"
  321.         Newlines 2
  322.         If (INTEGER019) Log "File RECALLID is missing..(CALLERID.PPE).", 1
  323.     Endif
  324.     If (INTEGER019) Log "CallerID.PPE results faulty: " + STRING016, 0
  325.     If (INTEGER003) Hangup
  326.     End
  327.  
  328. ;------------------------------------------------------------------------------
  329. ;
  330. ; Usage report (before postprocessing)
  331. ;
  332. ; ■ Statements used :
  333. ;
  334. ;    4       End
  335. ;    2       Cls
  336. ;    1       More
  337. ;    53      Goto 
  338. ;    77      Let 
  339. ;    12      PrintLn 
  340. ;    52      If 
  341. ;    5       DispFile 
  342. ;    1       FCreate 
  343. ;    1       FOpen 
  344. ;    1       FAppend 
  345. ;    2       FClose 
  346. ;    14      FGet 
  347. ;    11      FPutLn 
  348. ;    2       StartDisp 
  349. ;    3       Hangup
  350. ;    1       GetUser
  351. ;    2       PutUser
  352. ;    16      Log 
  353. ;    6       Gosub 
  354. ;    2       Return
  355. ;    1       CdChkOn
  356. ;    1       CdChkOff
  357. ;    1       Inc 
  358. ;    5       Newline
  359. ;    5       Newlines 
  360. ;    1       Stop
  361. ;    2       Message 
  362. ;    3       SPrintLn 
  363. ;
  364. ;
  365. ; ■ Functions used :
  366. ;
  367. ;    38      +
  368. ;    3       -
  369. ;    18      ==
  370. ;    5       <>
  371. ;    4       <
  372. ;    2       <=
  373. ;    3       >
  374. ;    5       >=
  375. ;    30      !
  376. ;    8       &&
  377. ;    4       ||
  378. ;    10      Len(
  379. ;    1       Upper()
  380. ;    5       Mid()
  381. ;    9       Left()
  382. ;    4       Right()
  383. ;    3       InStr()
  384. ;    1       Trim()
  385. ;    2       U_Name()
  386. ;    1       Strip()
  387. ;    5       String()
  388. ;    1       Mask_Num()
  389. ;    8       PPEPath()
  390. ;    1       OnLocal()
  391. ;    3       CurSec()
  392. ;    1       CallId()
  393. ;    7       Exist()
  394. ;    2       PPEName()
  395. ;
  396. ;------------------------------------------------------------------------------
  397. ;
  398. ; Analysis flags : WB
  399. ;
  400. ; W - Write user ■ 5
  401. ;     Program writes a user record. Although this may be normal for a
  402. ;     User Editor, it may also be a way to modify an account level.
  403. ;     ■ Search for : PUTUSER
  404. ;
  405. ; B - Brute hangup ■ 1
  406. ;     Program hangup without notification. This may be a good way to
  407. ;     disconnect a user, but if used randomly, may be very nasty
  408. ;     ■ Search for : HANGUP, DTROFF
  409. ;
  410. ;------------------------------------------------------------------------------
  411. ;
  412. ; Postprocessing report
  413. ;
  414. ;    2       For/Next
  415. ;    0       While/EndWhile
  416. ;    23      If/Then or If/Then/Else
  417. ;    2       Select Case
  418. ;
  419. ;------------------------------------------------------------------------------
  420. ;                 AEGiS Corp - Break the routines, code against the machines!
  421. ;------------------------------------------------------------------------------
  422.