summaryrefslogtreecommitdiff
path: root/faxrcvd
blob: 9b968d76e6a270d3f474d5ba99b84dc170c397d6 (plain)
  1. #! /bin/bash
  2. #
  3. # /var/spool/fax/bin/faxrcvd
  4. # Noel Burton-Krahn <noel@burton-krahn.com>
  5. # Sept 4, 1999
  6. #
  7. #
  8. # faxrcvd file devID commID error-msg
  9. #
  10. # modified faxrcvd from hylafax which calls faxrcvd-mail
  11. #
  12. if [ $# != 4 ]; then
  13. echo "Usage: $0 file devID commID error-msg"
  14. exit 1
  15. fi
  16. FILE="$1"
  17. DEVICE="$2"
  18. COMMID="$3"
  19. MSG="$4"
  20. test -f etc/setup.cache || {
  21. SPOOL=`pwd`
  22. cat<<EOF
  23. FATAL ERROR: $SPOOL/etc/setup.cache is missing!
  24. The file $SPOOL/etc/setup.cache is not present. This
  25. probably means the machine has not been setup using the faxsetup(1M)
  26. command. Read the documentation on setting up HylaFAX before you
  27. startup a server system.
  28. EOF
  29. exit 1
  30. }
  31. . etc/setup.cache
  32. SENDFROM=FaxMaster
  33. TOADDR=FaxMaster
  34. INFO=$SBIN/faxinfo
  35. PATH="$SPOOL/sbin:$SPOOL/bin:$PATH"
  36. #
  37. # There is no good portable way to find out the fully qualified
  38. # domain name (FQDN) of the host or the TCP port for the hylafax
  39. # service so we fudge here. Folks may want to tailor this to
  40. # their needs; e.g. add a domain or use localhost so the loopback
  41. # interface is used.
  42. #
  43. HOSTNAME=`hostname` # XXX no good way to find FQDN
  44. PORT=4559 # XXX no good way to lookup service
  45. if [ -f $SPOOL/$FILE ]; then
  46. #
  47. # Check the sender's TSI and setup to dispatch
  48. # facsimile received from well-known senders.
  49. #
  50. SENDER="`$INFO $FILE | $AWK -F: '/Sender/ { print $2 }' | sed 's/^ //' 2>/dev/null`"
  51. TRUNCFILE=`echo $FILE | sed -e 's/\.tif$//'`
  52. /usr/bin/tiff2ps -a -O $SPOOL/$TRUNCFILE.ps $SPOOL/$FILE
  53. /usr/bin/ps2pdf $SPOOL/$TRUNCFILE.ps $SPOOL/$TRUNCFILE.pdf
  54. SENDTO=
  55. FILETYPE=tif
  56. if [ -f etc/FaxDispatch ]; then
  57. . etc/FaxDispatch # NB: FaxDispatch sets SENDTO based on $SENDER
  58. fi
  59. DELIVERED=
  60. if [ -n "$TOADDR" ]; then
  61. # if faxrcvd-mail "$TRUNCFILE" "$FILETYPE" "$DEVICE" "$COMMID" "$MSG" "$TOADDR" "$SENDFROM" "$SENDTO" | /usr/sbin/sendmail -f$SENDFROM -oi $TOADDR; then
  62. if faxrcvd-mail "$TRUNCFILE" "$FILETYPE" "$DEVICE" "$COMMID" "$MSG" "$TOADDR" "$SENDFROM" "$SENDTO"; then
  63. DELIVERED=1
  64. else
  65. ERRORMSG=$!
  66. fi
  67. fi
  68. if [ -n "$SENDTO" ]; then
  69. # if faxrcvd-mail "$TRUNCFILE" "$FILETYPE" "$DEVICE" "$COMMID" "$MSG" "$TOADDR" "$SENDFROM" | /usr/sbin/sendmail -f$SENDFROM -oi $SENDTO; then
  70. if faxrcvd-mail "$TRUNCFILE" "$FILETYPE" "$DEVICE" "$COMMID" "$MSG" "$SENDTO" "$SENDFROM"; then
  71. DELIVERED=1
  72. else
  73. ERRORMSG=$!
  74. fi
  75. fi
  76. if [ "$DELIVERED" = "1" -a "$NOCLEAN" = "" ]; then
  77. rm -f $SPOOL/$TRUNCFILE*
  78. else
  79. (echo "To: $TOADDR"
  80. echo "From: The HylaFAX Receive Agent <$SENDFROM>"
  81. echo "Subject: facsimile not received"
  82. echo ""
  83. echo "An attempt to receive facsimile on $DEVICE failed because:"
  84. echo ""
  85. echo " $ERRORMSG"
  86. echo ""
  87. ) | 2>&1 $SENDMAIL -f$SENDFROM -oi $TOADDR
  88. fi
  89. else
  90. #
  91. # Generate notification mail for a failed attempt.
  92. #
  93. (echo "To: $TOADDR"
  94. echo "From: The HylaFAX Receive Agent <$SENDFROM>"
  95. echo "Subject: facsimile not received"
  96. echo ""
  97. echo "An attempt to receive facsimile on $DEVICE failed because:"
  98. echo ""
  99. echo " $MSG"
  100. echo ""
  101. echo " ---- Transcript of session follows ----"
  102. echo ""
  103. if [ -f log/c$COMMID ]; then
  104. $SED -e '/-- data/d' \
  105. -e '/start.*timer/d' -e '/stop.*timer/d' \
  106. log/c$COMMID
  107. elif [ -n "$COMMID" ]; then
  108. echo " No transcript available (CommID c$COMMID)."
  109. else
  110. echo " No transcript available."
  111. fi
  112. ) | 2>&1 $SENDMAIL -f$SENDFROM -oi $TOADDR
  113. fi