Differences

This shows you the differences between two versions of the page.

Link to this comparison view

sdk:ftp2sms [2015/04/13 14:34]
hess created
sdk:ftp2sms [2015/05/06 12:47]
Line 1: Line 1:
-====== Forward File Content of Files on FTP Server via SMS ====== 
-<code c> 
-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); 
-</​code>​