diff options
Diffstat (limited to 'net/asterisk-bristuff/files/patch-apps::app_rxfax.c')
| -rw-r--r-- | net/asterisk-bristuff/files/patch-apps::app_rxfax.c | 92 | 
1 files changed, 56 insertions, 36 deletions
| diff --git a/net/asterisk-bristuff/files/patch-apps::app_rxfax.c b/net/asterisk-bristuff/files/patch-apps::app_rxfax.c index 820208e1943d..cabfb1a98604 100644 --- a/net/asterisk-bristuff/files/patch-apps::app_rxfax.c +++ b/net/asterisk-bristuff/files/patch-apps::app_rxfax.c @@ -1,9 +1,9 @@  $FreeBSD$ ---- /dev/null	Thu Jan 12 17:44:40 2006 -+++ apps/app_rxfax.c	Thu Jan 12 17:41:53 2006 -@@ -0,0 +1,373 @@ +--- apps/app_rxfax.c.orig ++++ apps/app_rxfax.c +@@ -0,0 +1,393 @@  +/*  + * Asterisk -- A telephony toolkit for Linux.  + * @@ -17,31 +17,37 @@ $FreeBSD$  + * the GNU General Public License  + */  +  -+#include <stdio.h> -+#include <asterisk/lock.h> -+#include <asterisk/file.h> -+#include <asterisk/logger.h> -+#include <asterisk/channel.h> -+#include <asterisk/pbx.h> -+#include <asterisk/module.h> -+#include <asterisk/translate.h> -+#include <asterisk/dsp.h> -+#include <asterisk/manager.h> -+#include <asterisk/version.h>  +#include <string.h>  +#include <stdlib.h> -+#if defined(__FreeBSD__) && __FreeBSD_version < 500028 ++#include <stdio.h> ++#if !defined(__FreeBSD__) || __FreeBSD_version < 500028  +#include <inttypes.h>  +#else  +#include <stdint.h>  +#endif  +#include <pthread.h>  +#include <errno.h> -+#include <math.h> ++#if !defined(__FreeBSD__) || __FreeBSD_version >= 503000 ++#include <tgmath.h> ++#endif  +#include <tiffio.h>  +  +#include <spandsp.h>  + ++#include "asterisk.h" ++ ++ASTERISK_FILE_VERSION(__FILE__, "$Revision:$") ++ ++#include "asterisk/lock.h" ++#include "asterisk/file.h" ++#include "asterisk/logger.h" ++#include "asterisk/channel.h" ++#include "asterisk/pbx.h" ++#include "asterisk/module.h" ++#include "asterisk/translate.h" ++#include "asterisk/dsp.h" ++#include "asterisk/manager.h" ++  +static char *tdesc = "Trivial FAX Receive Application";  +  +static char *app = "RxFAX"; @@ -70,6 +76,20 @@ $FreeBSD$  +  +#define MAX_BLOCK_SIZE 240  + ++static void span_message(int level, const char *msg) ++{ ++    int ast_level; ++     ++    if (level == SPAN_LOG_WARNING) ++        ast_level = __LOG_WARNING; ++    else if (level == SPAN_LOG_WARNING) ++        ast_level = __LOG_WARNING; ++    else ++        ast_level = __LOG_DEBUG; ++    ast_log(ast_level, __FILE__, __LINE__, __PRETTY_FUNCTION__, msg); ++} ++/*- End of function --------------------------------------------------------*/ ++  +static void t30_flush(t30_state_t *s, int which)  +{  +    //TODO: @@ -85,11 +105,11 @@ $FreeBSD$  +    char buf[11];  +      +    chan = (struct ast_channel *) user_data; -+    if (result) ++    if (result == T30_ERR_OK)  +    { -+        fax_get_transfer_statistics(s, &t); -+        fax_get_far_ident(s, far_ident); -+        fax_get_local_ident(s, local_ident); ++        t30_get_transfer_statistics(s, &t); ++        t30_get_far_ident(s, far_ident); ++        t30_get_local_ident(s, local_ident);  +        ast_log(LOG_DEBUG, "==============================================================================\n");  +        ast_log(LOG_DEBUG, "Fax successfully received.\n");  +        ast_log(LOG_DEBUG, "Remote station id: %s\n", far_ident); @@ -102,11 +122,7 @@ $FreeBSD$  +                      "FaxReceived", "Channel: %s\nExten: %s\nCallerID: %s\nRemoteStationID: %s\nLocalStationID: %s\nPagesTransferred: %i\nResolution: %i\nTransferRate: %i\nFileName: %s\n",  +                      chan->name,  +                      chan->exten, -+#if ASTERISK_VERSION_NUM <= 010010 -+                      chan->callerid, -+#else  +                      (chan->cid.cid_num)  ?  chan->cid.cid_num  :  "", -+#endif  +                      far_ident,  +                      local_ident,  +                      t.pages_transferred, @@ -124,7 +140,7 @@ $FreeBSD$  +    else  +    {  +        ast_log(LOG_DEBUG, "==============================================================================\n"); -+        ast_log(LOG_DEBUG, "Fax receive not successful.\n"); ++        ast_log(LOG_DEBUG, "Fax receive not successful - result (%d) %s.\n", result, t30_completion_code_to_str(result));  +        ast_log(LOG_DEBUG, "==============================================================================\n");  +    }  +} @@ -138,7 +154,7 @@ $FreeBSD$  +    chan = (struct ast_channel *) user_data;  +    if (result)  +    { -+        fax_get_transfer_statistics(s, &t); ++        t30_get_transfer_statistics(s, &t);  +        ast_log(LOG_DEBUG, "==============================================================================\n");  +        ast_log(LOG_DEBUG, "Pages transferred:  %i\n", t.pages_transferred);  +        ast_log(LOG_DEBUG, "Image size:         %i x %i\n", t.columns, t.rows); @@ -186,6 +202,8 @@ $FreeBSD$  +        return -1;  +    }  + ++    span_set_message_handler(span_message); ++  +    /* The next few lines of code parse out the filename and header from the input string */  +    if (data == NULL)  +    { @@ -203,7 +221,7 @@ $FreeBSD$  +        t = s;  +        v = strchr(s, '|');  +        s = (v)  ?  v  :  s + strlen(s); -+        strncpy(buf, t, s - t); ++        strncpy((char *) buf, t, s - t);  +        buf[s - t] = '\0';  +        if (option == 0)  +        { @@ -274,17 +292,18 @@ $FreeBSD$  +            }  +        }  +        fax_init(&fax, calling_party, NULL); -+        fax.verbose = verbose; ++        if (verbose) ++            fax.logging.level = SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW;  +        x = pbx_builtin_getvar_helper(chan, "LOCALSTATIONID");  +        if (x  &&  x[0]) -+            fax_set_local_ident(&fax, x); ++            t30_set_local_ident(&fax, x);  +        x = pbx_builtin_getvar_helper(chan, "LOCALHEADERINFO");  +        if (x  &&  x[0]) -+            fax_set_header_info(&fax, x); -+        fax_set_rx_file(&fax, target_file); -+        //fax_set_phase_b_handler(&fax, phase_b_handler, chan); -+        fax_set_phase_d_handler(&fax, phase_d_handler, chan); -+        fax_set_phase_e_handler(&fax, phase_e_handler, chan); ++            t30_set_header_info(&fax, x); ++        t30_set_rx_file(&fax, target_file, -1); ++        //t30_set_phase_b_handler(&fax, phase_b_handler, chan); ++        t30_set_phase_d_handler(&fax, phase_d_handler, chan); ++        t30_set_phase_e_handler(&fax, phase_e_handler, chan);  +        while (ast_waitfor(chan, -1) > -1)  +        {  +            inf = ast_read(chan); @@ -295,10 +314,10 @@ $FreeBSD$  +            }  +            if (inf->frametype == AST_FRAME_VOICE)  +            { -+                if (fax_rx_process(&fax, inf->data, inf->samples)) ++                if (fax_rx(&fax, inf->data, inf->samples))  +                    break;  +                samples = (inf->samples <= MAX_BLOCK_SIZE)  ?  inf->samples  :  MAX_BLOCK_SIZE; -+                len = fax_tx_process(&fax, (int16_t *) &buf[AST_FRIENDLY_OFFSET], samples); ++                len = fax_tx(&fax, (int16_t *) &buf[AST_FRIENDLY_OFFSET], samples);  +                if (len)  +                {  +                    memset(&outf, 0, sizeof(outf)); @@ -335,6 +354,7 @@ $FreeBSD$  +            if (res)  +                ast_log(LOG_WARNING, "Unable to restore write format on '%s'\n", chan->name);  +        } ++        fax_release(&fax);  +    }  +    else  +    { | 
