Patterns are specified one per line and must conform to the regular expressions syntax specified by POSIX 1003.2; see re_format(7). Comments may be included; they are introduced with the ``#'' character and extend to the end of the line. Any trailing white space on a line is ignored (for convenience when comments are used).
If a line begins with ``!'', then the regular expression identifies callers that should be rejected; otherwise regular expressions identify clients whose calls should be accepted. The order of patterns in a CallID file is important. When a call is to be answered, the faxgetty process will compare the phone number presented by the modem against the patterns in the access control list in the order in which they appear in the file. The first pattern that matches the client's number is used to decide whether to accept or reject the call. If no patterns match the phone number then the call is not answered. Thus if you want to accept all but a restricted set of calls, the last line in the file should be ``^.*$''.
Note that regular expression patterns should be written to match a phone number exactly. That is, patterns should be of the form:
^<pattern>$
where the ``^'' and ``$'' characters are used to specify the start and end of the matching phone number. Additionally, regular expression patterns should handle white space that may appear in known locations. For example,
^([+]1){1}[ .-]*415[ .-]*555[ .-]*1212.*$
matches the following phone number strings:
Finally, note that regular expressions can be used to specify many numbers with one pattern.
Call identification data is only sent once by the telco or PBX, and the timing of its arrival varies upon the telco or PBX and the type of line. If HylaFAX is configured to answer via RingsBeforeAnswer prior to the arrival of the data, then all CallID values will be null. For example, on US analog lines, caller-ID data is usually sent between RINGs 1 and 2. In this situation, RingsBeforeAnswer should be set to ``2'' or greater.