PMDF System Manager's Guide


Previous Next Contents Index

40.3.2 Mapping Addresses from Message Router to PMDF

This mapping also consists of any number of rewrite rules, stored in a database as described above in Section 40.3,2 and roughly parallels the rewriting process performed in the regular PMDF configuration file and domain database. The important differences are:

  1. Message Router addresses are encoded into the attribute-value format described above. The list of attribute names shown above in Table 40-2 is always used. The encoded address is then looked up as a pattern. If this look up fails, the least significant part of the address is wildcarded (the value field is converted into an asterisk) and retried. If this fails, the previously wildcarded part is removed entirely and the process repeats. If a rule matches the template is used to build up a portion of the final PMDF address, the parts of the Message Router address that matches are removed, and the process is repeated.
  2. PMDF addresses are constructed in sections using up to 10 different buffers. Each buffer contains a particular type of data. After the rewriting process is complete the contents of the buffers are concatenated to produce a final result.
  3. Many special metacharacter control sequences are provided; Table 40-5 lists those which can be used in templates while Table 40-6 lists those which can be used in patterns.
  4. ORname information is sorted before rule matching begins. Each attribute is assigned to a specific group. The groups are then sorted into increasing order (lower numbered groups appear on the left). The sort is stable so that the order of attributes within a given group does not change. For Message Router ORname information, the groups are:
    Group Attributes
    Group 1 R (ROUTE)
    Group 2 U (USERID)
    Group 3 C (COUNTRY)
    Group 4 ADMD or A (AMDNAME)
    Group 5 PRMD or P (PRDNAME)
    Group 6 O (ORGNAME)
    Group 7 OU or OU1-4 (ORGUNIT)
    Group 8 DD. (DDNAME), G (GIVENNAME), GQ or Q (GENERATION), I (INITIALS), IDD. (INTDDNAME), L (LOCATION), PN, S (SURNAME), TN (TELEPHONE), T-ID (TERMINALID), UA-ID or N-ID (UNIQUEAID), and X121 or X.121 (X121ADDRESS)
    Group 9 FFN (FREEFORM)

  5. The mechanism embodied by this rewriting mechanism is capable of performing all the functions called for by RFC 2156, and many more besides.

Table 40-5 MR to PMDF Template Processing Metacharacter Control Sequences
Substitutions
Control  
sequence Template processing action
$U Substitute mailbox/username part of address at this point. This has no meaning except in one of the special rules $M, $P, or $D.
$* n Insert the n th value, n =0,1,...,9, part from the current ORname.
$. n Insert the n th wildcarded attribute name dot suffix, n =0,1,...,9, from the current ORname.
$E Insert a unique string.
Substitution processing control
Control  
sequence Template processing action
$A Add all subsequent text from the current addition to the RFC822 address being built by this rewrite.
$B Mark the current buffer as containing a bang-style route (the trailing " !" is inserted automatically).
$D Activate automatic decoding from printable string encoding for all subsequent substitutions.
$H Mark the current buffer as containing an @ host specification (the " @" is inserted automatically).
$I Deactivate automatic decoding of printable strings.
$K Mark the current buffer as containing an extracted organization specification. If this address is the message sender this information is promoted to form an Organization: header.
$L Do not remove enclosing quotes around additions to address.
$M Mark the current buffer as containing a mailbox specification.
$P Mark the current buffer as containing a percent-style route (the leading " %" is inserted automatically).
$Q Remove enclosing quotes around additions to the address, if present.
$R Mark the current buffer as containing a source route (the leading " @" and trailing " ," or " :" are inserted automatically).
$T text Use all subsequent text as a qualifying tag for all future database queries.
$W Mark the current buffer as containing the entire address in one part. If any whole address buffers are present they are concatenated and used as the result; all other buffers are ignored.
$X Mark the current buffer as containing a personal name specification. Personal name information has no semantic content, and is omitted entirely from envelope addresses.
$( Mark the current buffer as containing a comment string. Comments have no semantic content, and are omitted entirely from envelope addresses.
$+ Append to the current element.
$- Prepend to the current element.
$& n Move to the n th insert buffer, n =0,1,...,9. There are 10 such buffers. Subsequent material will be appended to this buffer.
Lookups
Control  
sequence Template processing action
$[[ ...] Invoke customer supplied routine; substitute in result. Three comma-separated arguments are required: The image, the routine in the image, and the argument to pass to the routine. See Section 2.2.6.7 for additional information.
${ ...} Apply specified mapping to supplied string. Two comma-separated arguments are required: The name of the mapping and the the argument to be mapped. See Section 2.2.6.6 for additional information.
Interpretation of attribute/value pairs not matched by the rewriting process
Control  
sequence Template processing action
$N Take any remaining attributes and values left over after rewriting, encode them using personal name syntax, and invoke the $N rule for processing.
$O Take any remaining attributes and values left over after rewriting, encode them using " / attribute= value " syntax, and invoke the $M rule for processing.
$Y Block all interpretation of remaining attributes. Rewriting will fail if there are any.
Miscellaneous
Control  
sequence Template processing action
$C Clear any existing 822 information and values set by previous processing.
$F Null substitution; always fails and kills this rewrite.
$G Force failure if backward is not set.
$J Force failure if backward is set.
$S Null substitution; always successful.
$V Force failure if envelope is not set.
$Z Force failure if header is not set.

Table 40-6 MR to PMDF Pattern Processing Metacharacter Control Sequences
Control  
sequence Pattern processing action
$D Special rewrite called when rewriting fails and X.400 address has to be encapsulated in an RFC 822 address. The mailbox string is the entire attribute value list in " / attribute= value " format.
$E Special rewrite called when an empty address is presented.
$F Called when attribute-value pairs are left after rewriting is finished, $N is set, and a free form name attribute is detected. The mailbox is set to be the free form name. This rule is only activated if the remaining attributes can actually be encoded in personal name format.
$I Initial rewrite, applied once the AVPL has been encoded successfully.
$M Called when attribute-value pairs are left after rewriting is finished and $O is set. Mailbox specification is set to the remaining attributes encoded in " / attribute= value " format.
$N Called when attribute-value pairs are left after rewriting is finished and $N is set. The mailbox is set to the remaining attributes encoded in personal name format. This rule is only activated if the remaining attributes can actually be encoded in personal name format.
$P Called when unknown attributes are present. This is a truly exceptional condition.
$T Called when attribute-value pairs are left after rewriting is finished, $N is set, and a telephone number attribute is detected. The mailbox is set to be the telephone number. This rule is only activated if the remaining attributes can actually be encoded in personal name format.

Note

2 For MR channels, this database is usually PMDF_TABLE:from_mr.dat, and has usually been constructed by the PMDF CONFIGURE MR utility from a file it also generated called PMDF_TABLE:from_mr.txt; for MRIF channels, this database is usually PMDF_TABLE:from_mrif.dat, and has usually been constructed by the PMDF CONFIGURE MR utility from a file it also generated called PMDF_TABLE:from_mrif.txt.


Previous Next Contents Index