No renderer 'pdf' found for mode 'pdf'

This is an old revision of the document!


Forward File Content of Files on FTP Server via SMS

printf("This script does not speak here, see syslog instead");
nb_syslog('starting');
SITE = "ftp://share.netmodule.com/router/test";
 
USR = "anonymous";
PWD = "anonymous";
FTPINTERVAL = 30;
MAXSERVERITEMS = 100;
MAXSENTITEMS = 200;
ALARMNUMBER = "+41789498855";
 
// processed SMS
sentSMS = mkarray();
 
// main
while (1) {
    nb_syslog("checking %s for messages", SITE);
    nb_syslog("number of sent items is %s", length(sentSMS));
    if (length(sentSMS) > MAXSENTITEMS) {
        for (i = 0; i < length(sentSMS); i++) {
            if (i < length(sentSMS)-MAXSENTITEMS) { 
                nb_syslog("setting element %s to void", i);
                sentSMS[i] = (); // set oldest elements to void, i.e. delete them
            }
        }
        sentSMS = array_compact(sentSMS); // remove voids from array
        nb_syslog("number of sent items is %s after compacting", length(sentSMS));
    }
    files = nb_transfer_list(USR, PWD, SITE);
 
    if (files) {
        if (length(files) > MAXSERVERITEMS) {
            id = nb_sms_send(ALARMNUMBER, sprintf("Caution, more than %s files on server", MAXSERVERITEMS));
        }
        filesarray = mkarray();   
        for (i = 0; i < length(files); i++) {
            file = files[i];
            filesarray[i] = file.name;
            url = sprintf("%s/%s", SITE, filesarray[i]);
            path = "/tmp/tempmsg";
            if (nb_transfer_get(USR, PWD, url, path) == 0) {
                fp = fopen(path, "r");
                if (fp) {
                    phonenumber = trim(fgets(fp)); // first line is phone number
                    content = fread(fp,file.size); // read rest of file  
                    // check new SMS
                    if (is_void(array_search(sentSMS, filesarray[i]))){
                        // send SMS
                        id = nb_sms_send(phonenumber, content);
                        if (id) {
                            nb_syslog("SMS to %s (origin %s) has been spooled\n", phonenumber, filesarray[i]);
                                sentSMS = array_merge(sentSMS, filesarray[i]);
                                nb_syslog("added %s to sent items", filesarray[i]);
                        } else {
                            nb_syslog("Unable to send SMS to %s\n", phonenumber);
                        }       
                    } else {
                        nb_syslog("file %s already processed, ignoring it", filesarray[i]);
                    }
                    unlink(path);
                }
                else {
                    nb_syslog("download of '%s' failed", url);
                }
            }
        }
    } else {
        nb_syslog("could not access '%s' or no files in directory", SITE);
    }
    sleep(FTPINTERVAL);
}
exit(0);