HylaFAX The world's most advanced open source fax server

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [hylafax-users] sendfax and dialrules



Lee Howard wrote:
> Bruce McAlister wrote:
> 
>> dialtest -a 01 -c 353 -i 00 -l 0 ./dialrules
>>
> 
> If dialtest is giving proper results, but the actual number being dialed
> or displayed is not in agreement with what you see from dialtest, then...
> 
> 1) check the permissions on your dialrules and make sure that the faxq
> and faxsend processes are able to read it.

The permissions on my dialrules file is as follows:

root@host:/opt/hylafax-5.1.8/var/spool/etc # ls -l dialrules
-r--r--r--   1 root     root        2252 Oct  8 22:54 dialrules


> 
> 2) be aware that DialStringRules is a config option that applies both to
> etc/config as well as etc/config.<devid>.  Thus it is possible to have
> faxq and faxsend disagree with each other (and there are reasons why you
> may *want* this).  So if you're using a non-default dialrules file name
> you'll want to take special notice of this.
> 

Just as a precaution, I verified that the modem config files also have
the dialrules defined in them, but the problem still appears to be the same:

<spool_dir>/etc/config:

----------------------------------------------------------------------------
root@host:/opt/hylafax-5.1.8/var/spool/etc # cat config
LogFacility:            daemon
CountryCode:            353
AreaCode:               01
LongDistancePrefix:     0
InternationalPrefix:    00
DialStringRules:        "etc/dialrules"
ServerTracing:          1
MaxConcurrentCalls:     6
----------------------------------------------------------------------------

<spool_dir>/etc/config._etc_iaxmodem_devices_ttyIAX000

PS: The config.<dev_modem> files are symlinked back to ../config/iaxmodem.

----------------------------------------------------------------------------
root@host:/opt/hylafax-5.1.8/var/spool/etc # cat
config._etc_iaxmodem_devices_ttyIAX000
# $Id: iaxmodem,v 1.6 2007/08/07 18:22:39 faxguy Exp $

#
# prototype config for the IAXmodem softmodem which uses
# the spandsp soft-DSP library
#

# CONFIG:CLASS1:spandsp:.*:.*: Manufacturer=spandsp Model=IAXmodem
# CONFIG:CLASS1.0:spandsp:.*:.*: Manufacturer=spandsp Model=IAXmodem
#
# BEGIN-SERVER
# END-SERVER

#
#
# Modem-related stuff: should reflect modem command interface
# and hardware connection/cabling (e.g. flow control).
#
ModemType:              Class1          # use this to supply a hint

#
#             *** Caller-ID settings ***
#
# Enabling this will use the hfaxd-protocol to set Caller*ID
#
#ModemSetOriginCmd:     "AT+VSID=\"%s\",\"%d\""
#
# If "glare" during initialization becomes a problem then take
# the modem off-hook during initialization, and then place it
# back on-hook when done.
#
#ModemResetCmds:        "ATH1\nAT+VCID=1"       # enables CallID display
#ModemReadyCmds:        ATH0
#
# You'll likely want Caller*ID display (also displays DID) enabled.
#
ModemResetCmds:         AT+VCID=1       # enables CallID display
#
# If you are "missing" Caller*ID data on some calls (but not all)
# and if you do not have adequate glare protection you may want to
# not answer based on RINGs, but rather enable the CallIDAnswerLength
# for NDID, disable AT+VCID=1 and do this:
#
RingsBeforeAnswer: 2
#ModemRingResponse: AT+VRID=1

# The pty apparently does not support changing parity.
PagerTTYParity:         none

Class1AdaptRecvCmd:     AT+FAR=1
Class1TMConnectDelay:   400             # counteract quick CONNECT response
Class1RMQueryCmd:       "!24,48,72,96"  # V.17 fast-train recv doesn't
work well

CallIDPattern:          "NMBR="
CallIDPattern:          "NAME="
CallIDPattern:          "ANID="
CallIDPattern:          "NDID="
#CallIDAnswerLength:    4
# Uncomment these if you really want them, but you probably don't.
#CallIDPattern:          "DATE="
#CallIDPattern:          "TIME="

Class1ColorJPEGSupport: yes
Class1JBIGSupport:      yes

TagLineFont:            etc/lutRS18.pcf
TagLineFormat:          "From: %%n|%c|Page %%p of %%t"

DialStringRules:        "etc/dialrules"
----------------------------------------------------------------------------

<spool_dir>/etc/dialrules

----------------------------------------------------------------------------
! $Id: dialrules,v 1.2 2006/10/17 22:34:42 faxguy Exp $
!
! HylaFAX (tm) Dialing String Processing Rules.
!
! This file describes how to process user-specified dialing strings
! to create two items:
!
! CanonicalNumber: a unique string that is derived from all dialing
! strings to the same destination phone number.  This string is used
! by the fax server for ``naming'' the destination.
!
! DialString: the string passed to the modem for use in dialing the
! telephone.  This string should be void of any characters that might
! confuse the modem.
!
Area=${AreaCode}                ! local area code
Country=${CountryCode}          ! local country code
IDPrefix=${InternationalPrefix} ! prefix for placing an international call
LDPrefix=${LongDistancePrefix}  ! prefix for placing a long distance call
!
WS="    "                       ! our notion of white space
!
! Convert a phone number to a canonical format:
!
!    +<country><areacode><rest>
!
! by (possibly) stripping off leading dialing prefixes for
! long distance and/or international dialing.
!
CanonicalNumber := [
%.*                     =                       ! strip calling card stuff
[abcABC]                = 2                     ! these convert alpha to
numbers
[defDEF]                = 3
[ghiGHI]                = 4
[jklJKL]                = 5
[mnoMNO]                = 6
[prsPRS]                = 7
[tuvTUV]                = 8
[wxyWXY]                = 9
[^+0-9]+                =                       ! strip white space etc.
^${IDPrefix}            = +                     ! replace int. dialing code
^${LDPrefix}            = +${Country}           ! replace l.d. dialing code
^[^+]                   = +${Country}${Area}&   ! otherwise, insert
canon form
]
!
! Process a dialing string according to local requirements.
! These rules do only one transformation: they convert in-country
! international calls to long-distance calls.
!
DialString := [
[-${WS}.]+              =                       ! strip syntactic sugar
\(                      =
\)                      =
[abcABC]                = 2                     ! these convert alpha to
numbers
[defDEF]                = 3
[ghiGHI]                = 4
[jklJKL]                = 5
[mnoMNO]                = 6
[prsPRS]                = 7
[tuvTUV]                = 8
[wxyWXY]                = 9
!
! Added by Bruce McAlister
!
^00                          = +
^[1-9][0-9]{6}$              = ${Area}&
^0                           =
^[1-9]                       = ${IDPrefix}${Country}&
^\+                          = ${IDPrefix}
]
----------------------------------------------------------------------------

When I submit the fax I submit it as follows:

sendfax -n -T 3 -d 1112222 /etc/hosts

The "faxstat -rs" looks like this

----------------------------------------------------------------------------
HylaFAX scheduler on host: Running
Modem /etc/iaxmodem/devices/ttyIAX001 (): Waiting for modem to come ready
Modem /etc/iaxmodem/devices/ttyIAX000 (): Running and idle
Modem /etc/iaxmodem/devices/ttyIAX005 (): Running and idle
Modem /etc/iaxmodem/devices/ttyIAX002 (): Running and idle
Modem /etc/iaxmodem/devices/ttyIAX007 (): Running and idle
Modem /etc/iaxmodem/devices/ttyIAX003 (): Running and idle
Modem /etc/iaxmodem/devices/ttyIAX004 (): Running and idle
Modem /etc/iaxmodem/devices/ttyIAX006 (): Running and idle

Protect Page  Owner        Sender/TSI  Recvd@ Filename
-rw----    8  5                       Sat11PM fax000000001.tif
-rw----    8  5                       Sat11PM fax000000002.tif
-rw----    1  5                       Sun10AM fax000000003.tif
-rw----    2  5                       Sun11AM fax000000004.tif
-rw----    2  5                       Sun12PM fax000000005.tif
-rw----    1  5                         09:16 fax000000006.tif
-rw----    1  5                         10:16 fax000000007.tif
-rw----    1  5                         10:22 fax000000008.tif
-rw----    1  5                         16:37 fax000000009.tif
-rw----    1  5                         16:41 fax000000010.tif

JID  Pri S  Owner Number       Pages Dials     TTS Status
41   126 S   root 1112222       0:1   1:3    23:47 No local dialtone
----------------------------------------------------------------------------

The session log looks as follows:

----------------------------------------------------------------------------
Oct 09 00:42:47.79: [22686]: SESSION BEGIN 000000068 +1112222
Oct 09 00:42:47.79: [22686]: HylaFAX (tm) Version 5.1.8
Oct 09 00:42:47.79: [22686]: SEND FAX: JOB 41 DEST 1112222 COMMID
000000068 DEVICE '/etc/iaxmodem/devices/ttyIAX001' FROM 'Super-Use
r <root@host>' USER root
Oct 09 00:42:47.79: [22686]: STATE CHANGE: RUNNING -> SENDING
Oct 09 00:42:47.79: [22686]: <-- [12:AT+FCLASS=1\r]
Oct 09 00:42:47.79: [22686]: <-- <11:41 54 2B 46 43 4C 41 53 53 3D 31>
Oct 09 00:42:47.79: [22686]: <-- <1:0D>
Oct 09 00:42:47.79: [22686]: --> <2:0D 0A>
Oct 09 00:42:47.79: [22686]: --> <4:4F 4B 0D 0A>
Oct 09 00:42:47.79: [22686]: --> [2:OK]
Oct 09 00:42:47.79: [22686]: MODEM set XON/XOFF/FLUSH: input ignored,
output disabled
Oct 09 00:42:47.79: [22686]: DIAL 1112222
Oct 09 00:42:47.79: [22686]: <-- [12:ATDT1112222\r]
Oct 09 00:42:47.79: [22686]: <-- <11:41 54 44 54 31 31 31 32 32 32 32>
Oct 09 00:42:47.79: [22686]: <-- <1:0D>
Oct 09 00:42:47.80: [22686]: --> <2:0D 0A>
Oct 09 00:42:47.80: [22686]: --> <13:4E 4F 20 44 49 41 4C 54 4F 4E 45 0D 0A>
Oct 09 00:42:47.80: [22686]: --> [11:NO DIALTONE]
Oct 09 00:42:47.80: [22686]: SEND FAILED: JOB 41 DEST 1112222 ERR No
local dialtone {E004}
Oct 09 00:42:48.81: [22686]: <-- [5:ATH0\r]
Oct 09 00:42:48.81: [22686]: <-- <4:41 54 48 30>
Oct 09 00:42:48.81: [22686]: <-- <1:0D>
Oct 09 00:42:48.81: [22686]: --> <2:0D 0A>
Oct 09 00:42:48.81: [22686]: --> <4:4F 4B 0D 0A>
Oct 09 00:42:48.81: [22686]: --> [2:OK]
Oct 09 00:42:48.81: [22686]: MODEM set DTR OFF
Oct 09 00:42:48.81: [22686]: MODEM set baud rate: 0 baud (flow control
unchanged)
Oct 09 00:42:48.81: [22686]: STATE CHANGE: SENDING -> MODEMWAIT (timeout 5)
Oct 09 00:42:48.81: [22686]: SESSION END
----------------------------------------------------------------------------

The asterisk server we are using for relaying does it's routing on the
destination number, this number must be of the
<IDPrefix><CountryCode><AreaCode><Number>, hence the configuration of
the dialrules. If Asterisk does not see a number of this form it hangs
up the line, i assume this is why we get no dialtone when the modem
tries to dial that number.

Any additional tips or suggestions would be appreciated.

> Thanks,
> 
> Lee.
> 
> 
> ____________________ HylaFAX(tm) Users Mailing List _______________________
>  To subscribe/unsubscribe, click http://lists.hylafax.org/cgi-bin/lsg2.cgi
> On UNIX: mail -s unsubscribe hylafax-users-request@xxxxxxxxxxx < /dev/null
>  *To learn about commercial HylaFAX(tm) support, mail sales@xxxxxxxxx*
> 
> 


____________________ HylaFAX(tm) Users Mailing List _______________________
  To subscribe/unsubscribe, click http://lists.hylafax.org/cgi-bin/lsg2.cgi
 On UNIX: mail -s unsubscribe hylafax-users-request@xxxxxxxxxxx < /dev/null
  *To learn about commercial HylaFAX(tm) support, mail sales@xxxxxxxxx*




Project hosted by iFAX Solutions