email_recordings.lua not sending attachment

Status
Not open for further replies.

David Dunlap

New Member
Mar 16, 2017
9
0
1
63
We were testing a script that sends an email with the recording of the 911 call to administrators to notify first responders who made the call. The script works fine on a PI but on an fresh Ubuntu install it sends the email with correct caller & called but there is no file attachment.

The recording file is in the proper folder with proper permissions and the script knows the entire path to it.

I am not an email expert by any means and I cannot figure out why this works on one system but not on another.

A voicemail user configured to receive message as attachment works fine.

Any help would be appreciated as this feature is missing when we replace a legacy pbx.

Thanks in advance.

User with original script post:



Modified email.lua -> email_recordings.lua

Code:
--    email.lua
--    Part of FusionPBX
--    Copyright (C) 2010 Mark J Crane <markjcrane@fusionpbx.com>
--    All rights reserved.
--
--    Redistribution and use in source and binary forms, with or without
--    modification, are permitted provided that the following conditions are met:
--
--    1. Redistributions of source code must retain the above copyright notice,
--       this list of conditions and the following disclaimer.
--
--    2. Redistributions in binary form must reproduce the above copyright
--       notice, this list of conditions and the following disclaimer in the
--       documentation and/or other materials provided with the distribution.
--
--    THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
--    INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
--    AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
--    AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
--    OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
--    SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
--    INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
--    CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
--    ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
--    POSSIBILITY OF SUCH DAMAGE.

--Description:
    --purpose: send an email
    --freeswitch.email(to, from, headers, body, file, convert_cmd, convert_ext)
        --to (mandatory) a valid email address
        --from (mandatory) a valid email address
        --headers (mandatory) for example "subject: you've got mail!\n"
        --body (optional) your regular mail body
        --file (optional) a file to attach to your mail
        --convert_cmd (optional) convert file to a different format before sending
        --convert_ext (optional) to replace the file's extension

--Example
    --luarun email.lua to@domain.com from@domain.com 'headers' 'subject' 'body'

local Settings = require "resources.functions.lazy_settings"
local Database = require "resources.functions.database"
local db = dbh or Database.new('system')
local settings = Settings.new(db, domain_name, domain_uuid)

--get the argv values
    script_name = argv[0];
    to = session:getVariable("email_recordings_to");
    from = settings:get('email', 'smtp_from_name', 'text')
    headers = "";
    subject = session:getVariable("email_recordings_subject");
    body = "";
    file = argv[1];
    delete = session:getVariable("email_recordings_delete_after");
    if delete == nil then
            delete = "false";
    end
    --convert_cmd = argv[8];
    --convert_ext = argv[9];

--replace the &#39 with a single quote
    body = body:gsub("&#39;", "'");

--replace the &#34 with double quote
    body = body:gsub("&#34;", [["]]);

--send the email
    if (file == nil) then
        freeswitch.email(to,
            from,
            "To: "..to.."\nFrom: "..from.."\nX-Headers: "..headers.."\nSubject: "..subject,
            body
            );
    else
        if (convert_cmd == nil) then
            freeswitch.email(to,
                from,
                "To: "..to.."\nFrom: "..from.."\nX-Headers: "..headers.."\nSubject: "..subject,
                body,
                file
                );
        else
            freeswitch.email(to,
                from,
                "To: "..to.."\nFrom: "..from.."\nX-Headers: "..headers.."\nSubject: "..subject,
                body,
                file,
                convert_cmd,
                convert_ext
                );
        end
    end

--delete the file
    if (delete == "true") then
        os.remove(file);
    end
 
Status
Not open for further replies.