T.37 Advanced Usage

Below you will find examples of T.37 (email to fax) implementation using Multi-Tech Systems FaxFinder x30 family unit (which includes the FF130, FF230, FF430 and FF830 models).

The lines that mention RFC (Request For Comment) numbers can be looked up online at the IETF website (www.ietf.org) for further details.

Sample addresses:
FAX=+111-222-3333@192.168.2.1
FAX=111-222-3333@example.test
FAX=111-222-3333/COVER-PAGE-ENABLED=1@example.test
FAX=111-222-3333/FAX-PRIORITY=5@example.test
FAX=1234/INLINE-COMMENTS=false@faxfinder.example.test

The minimal specification [@See: RFC 2304] of a fax in e-mail address is:

  fax-email = ["/"] fax-address ["/"] "@" mta-I-fax
  fax-address = fax-mbox [ t33s ]
  fax-mbox = "FAX=" global-phone
  global-phone = "+" 1*( DIGIT / written-sep )
  written-sep = ( "-" | "." )

  t33s = "/" t33-sep "=" sub-addr
  t33-sep = "T33S"
  sub-addr = 1*( DIGIT )
Faxfinder additions:
  cover-page-enabled = "/" cover-page-enabled-sep "=" value
  cover-page-enabled-sep = "COVER-PAGE-ENABLED"
  value = "false" | "true"
  cover-page-name = "/" cover-page-name-sep "=" value
  cover-page-name-sep = "COVER-PAGE-NAME"
  value = 1*PCHAR
  receipt = "/" receipt-sep "=" value
  receipt-sep = "RECEIPT"
  value = "always" | "never" | "failure"

The fax priority specifies the order of scheduling. 0 is highest and 5 is lowest

  fax-priority = "/" fax-priority-sep "=" priority
  fax-priority-sep = "FAX-PRIORITY"
  priority = 0 .. 5

Inline comments specifies whether the message body is treated as cover page comments or not. By default, the first inline text body part will be used as the cover page comments. This can be changed by setting /INLINE-COMMENTS=false.

  inline-comments = "/" inline-comments-sep "=" value
  inline-comments-sep = "INLINE-COMMENTS"
  value = "false" | "true"

The recipient-name specifies the personal name of the recipient:

  attn = "/" recipient-name "=" pers-name
  recipient-name = "ATTN"
  pers-name = [ givenname "." ]
              [ initials "." ]
                surname
  surname = printablestring
  givenname = 1*( DIGIT /  ALPHA / SP / "'" / "+" /
              "," / "-" / "/" / ":" / "=" / "?" )
  initials = 1*ALPHA
  org = "/" org-sep "=" org-str
  org-sep = "ORG"
  org-str = PCHAR
  PCHAR = 1*( DIGIT / ALPHA / SP /
          "'" / "(" / ")" / "+" / "," / "-" /
          "." / "/" / ":" / "=" / "?" )

* A printable string is 0x20-0x7E.

Note: All printable ASCII may be allowed by this implementation of t.37, but other forwarding agents and UAs may be incompatible. Evolution gets confused when sending an ORG with spaces, for instance. Also commas “,” blow up everything.

FaxFinder fax in e-mail address:

  fax-email = ["/"] fax-address ["/"] "@" mta-I-fax
  fax-address = fax-mbox [ t33s ] [ cover-page-enable ] [ fax-priority ] [ attn ] [ org ]
  fax-mbox = "FAX=" ( global-phone / local-phone )
  global-phone = "+" 1*( DIGIT / gwritten-sep )
  gwritten-sep = ( "-" / "." )
  local-phone = 1*( DIGIT / "a" / "c" / "s" /
                    "*" / "#" / "!" / "$" / "^" / "&" /
                    lwritten-sep )
  lwritten-sep = ( "-" / "." / "(" / ")" / " " )

Fax numbers can be assembled as local-phone numbers (without the leading ‘+’). Local phone is less strict and will accept additional characters. The set of acceptable characters for local-phone are “acs0123456789*#!$^&-.() “.

t37 will substitute certain charcharacter before passing the message along to be scheduled.

fax-addr is either local-phone or global-phone stripped of unnecessary characters. If fax-addr is a local-phone then t33s is not necessary as “#” is allowed in local-phone.

Character substitutions:
  • “a” => “@”
  • “c” => “,”
  • “s” => “;”
  • “-” => “”
  • “.” => “”
  • “(” => “”
  • “)” => “”
  • ” ” => “”
Supported document types/attachments:
  • text/plain
  • application/pdf
  • application/postscript
  • application/eps
  • application/x-eps
  • image/eps
  • image/x-eps
  • image/tiff
  • image/tiff-fx