receive faxes

Home » Asterisk Users » receive faxes
Asterisk Users 10 Comments

does anybody know a good tutorial on how to setup asterisk to receive faxes
(no need to send them) ? i’ve tried using “app_fax.so” with T38 but i keep
getting “Transmission failed”

10 thoughts on - receive faxes

  • i have spandsp and app_fax.so is loaded but i get:
    app_fax.c:820 transmit: Transmission failed
    when trying to fax from a POTS line…

  • I’d enable full debug at logger.conf and try to find issue.

    -S

    I tried with those settings and without… same error:

    WARNING[18090]: app_fax.c:820 transmit: Transmission failed

    did you set faxdetect=both or incoming

    and faxbuffer=?

    -S

    i have spandsp and app_fax.so is loaded but i get:

    app_fax.c:820 transmit: Transmission failedwhen trying to fax from a POTS line…

    You need spandsp i guess following is my dialplan is working example

    [fax]
    exten => 9000,1,Set(FAXFILE=/var/spool/asterisk/fax/fax.tif)
    exten => 9000,n,Set(FAXFILENOEXT=/var/spool/asterisk/fax/${CALLERID(num)})

    exten => 9000,n,ReceiveFax(${FAXFILE})
    exten => 9000,n,Hangup()

    does anybody know a good tutorial on how to setup asterisk to receive faxes (no need to send them) ? i’ve tried using “app_fax.so” with T38 but i keep getting “Transmission failed”

  • screw that…. i just got hylafax to work with IAXMODEM…i refuse to pay
    digium a dime… supposed to be open-source right?

  • Unless someone has broken something recently, you’ll get better results
    with spandsp than you get with the Digium FAX package.

    Steve

  • Honestly Digium’s Asterisk is not a quality project. Though it has lead the
    way in innovative open-source VoIP, it’s a flawed and chaotic project.
    Hence, I refuse to pay Digium. Digium seems to make a “bazillion” dollars
    off of these flaws by selling commercial support/addons anyway… so that
    should be worth some bad karma points.

  • Don’t worry. You can always get your money refunded if it breaks — and you
    even get to keep all the pieces.

    Other people seem to manage fine. Have you considered that *you* might be the
    problem here?

    (For my part, I’m actually surprised that nobody came up with a proper
    protocol for encapsulating the stream of zeros and ones that make up a fax
    transmission but rely on the precise timing inherent with a circuit-switched
    network, into something more suitable for sending over a packet-switched
    network. That would have fixed it good and proper.)

  • David Backeberg wrote:

    Nobody has said that faxing couldn’t use TCP/IP… and there’s no reason
    why T.38 couldn’t use TCP/IP. Nobody has said that faxing couldn’t use
    HTTP as a transport… or SSL… or any other kind of sensible
    mechanism. Why in the world people try to keep faxing (data transfer)
    tied-down to audio channels by putting T.38 into H.323 or UDP/IP SIP
    beats me.

    Lee.

  • I don’t believe you really understand what Open Source means…it does not
    mean “FREE”. It means that the source is open, not proprietary, and anyone
    can download it and compile it and modify it and do what they want with it.
    Which is something your company has obviously already done – they’ve
    downloaded it, compiled it, and are using it in some capacity to make money
    (or are using it in support of the process of making money). Otherwise how
    would you get paid? Digium is the same – they are a company that makes
    money so they can pay their employees who contribute to making Asterisk a
    better product. Imagine if Digium made no money, because they just did
    everything for free (support, modules, etc). How long do you think they’d
    last? How long do you think their employees would continue to come into
    work and contribute to the Asterisk project when they have no salary? Not
    very.

    If you think asterisk is such a horrible project, and that Digium is so
    evil, why not find a better alternative, pitch it to your managers, and
    convince them that your solution is better in the long run. If you can’t do
    that, maybe find someone that understands asterisk a little better and bring
    them in to help support your system, leaving you free to not have to deal
    with something you despise so much.

  • Postfix kicks butt. But only because IBM paid for development, for a
    long number of years, and because they hired somebody who had a really
    good idea how to improve Sendmail.

    Asterisk kicks butt. It just does, even if you can’t get your silly
    faxing edge case to work, because Digium paid for development, for a
    long number of years.

    There are also people who come along, and because the source is
    available, fix a particular bug that annoyed them, or added a feature
    they personally wanted.

    T.38 has a boatload of problems, and most of those problems are
    because people who aren’t employed by Digium did not read the specs,
    or they did read the specs, but felt like they had to violate the
    specs to get their code to work with a different broken T.38 stack.

    I’ve personally fixed problems with asterisk, and I found my code
    contribution accepted. Perhaps you’ve submitted patches the bug
    tracker? We eagerly anticipate your voluntary code contributions.

    Maybe statistically, there are more open source projects out there
    that have non-paid lead developers, and they do their work on their
    own dime, and on their own time.

    But unless you’re lucky enough to live in a place where you can hunt
    and gather for everything you need, you need money to live in a
    society, and have the resources to be able to sit at a keyboard long
    enough to churn out code.

    I could only afford to make my ‘code contribution’ because I have a
    day job where I needed the fix.

  • spandsp works fine on our PRI line

    context FAX
    {
    s => {
    NoOp(INFO: Getting fax in XXXXXXXX);
    Answer();
    Set(TIMEOUT(absolute)=600); // 10 min
    Wait(3);
    if(“${CALLERID(num)}”=””) { //
    Set(Number=withhold); // If number
    is private
    } //
    else {
    Set(Number=${CALLERID(num)}); // If number
    is NOT private
    }
    Set(recordFile=${UNIQUEID}_${Number}.tiff);
    // Record file to RAM first,

    Set(recordPath=/var/log/asterisk/fax/${CALLERID(dnid)}/${STRFTIME(${EPOCH},GMT+0,%F)});
    // then run /usr/local/bin/mailfax $1 $2
    ReceiveFax(/ramdrive/${recordFile});
    Wait(5);
    Hangup();
    };
    h => {
    // System(/usr/bin/sendEmail -f asterisk@xxx.pt -t
    fax@xxx.pt-u “Novo fax recebido” -a
    /var/log/asterisk/fax/fax.${UNIQUEID}.tif -m
    “Conteudo:” -s mail.xxx.pt:25 -xu asterisk@$
    System(/usr/local/bin/faxmail “${recordPath}”
    “${recordFile}”);
    };
    // sendfax => {
    // SendFax(/var/log/asterisk/fax/fax.1247153669.3.tif);
    // };
    }