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