Asterisk. Отправка SMS

Вопросы и информация о скриптах для ioBroker
Antworten
Pooh
professional
Beiträge: 126
Registriert: 11.05.2017, 05:15
Wohnort: Самара
Kontaktdaten:

Asterisk. Отправка SMS

Beitrag von Pooh » 12.06.2017, 14:52

Прошу помощи в написании скрипта для отправки SMS через Asterisk
на PHP работающий скрипт выглядел так:

Code: Alles auswählen

$calltmp = "/var/spool/asterisk/tmp/TestSMS.call";
$calldir = "/var/spool/asterisk/outgoing/TestSMS.call";
$callfile = fopen ($calltmp, "w");

fwrite ($callfile,"Channel: LOCAL/SendSMS@SendSMS\n");
fwrite ($callfile,"Application: DongleSendSMS\n");
fwrite ($callfile,"Data: GSM-001,+7919*******,'ALARM (*******)'\n");

fclose($callfile);
copy ($calltmp,$calldir);
Логика: создать файл в темпе, установить атрибуты (владелец - Asterisk), заполнить его, перенести в директорию Asterisk'а. Он его читает, выполняет указанные в файле команды и удаляет файл. Важно поместить в директорию астериска уже подготовленный файл.

Benutzeravatar
Bluefox
Site Admin
Beiträge: 7909
Registriert: 13.07.2014, 14:42
Kontaktdaten:

Re: Asterisk. Отправка SMS

Beitrag von Bluefox » 12.06.2017, 19:58

Pooh hat geschrieben:Прошу помощи в написании скрипта для отправки SMS через Asterisk
на PHP работающий скрипт выглядел так:

Code: Alles auswählen

$calltmp = "/var/spool/asterisk/tmp/TestSMS.call";
$calldir = "/var/spool/asterisk/outgoing/TestSMS.call";
$callfile = fopen ($calltmp, "w");

fwrite ($callfile,"Channel: LOCAL/SendSMS@SendSMS\n");
fwrite ($callfile,"Application: DongleSendSMS\n");
fwrite ($callfile,"Data: GSM-001,+7919*******,'ALARM (*******)'\n");

fclose($callfile);
copy ($calltmp,$calldir);
Логика: создать файл в темпе, установить атрибуты (владелец - Asterisk), заполнить его, перенести в директорию Asterisk'а. Он его читает, выполняет указанные в файле команды и удаляет файл. Важно поместить в директорию астериска уже подготовленный файл.

Code: Alles auswählen

var fs = require('fs');

var text = "Channel: LOCAL/SendSMS@SendSMS\n";
text += "Application: DongleSendSMS\n";
text += "Data: GSM-001,+7919*******,'ALARM (*******)'\n"

fs.writeFileSync("/var/spool/asterisk/outgoing/TestSMS.call", text);


Pooh
professional
Beiträge: 126
Registriert: 11.05.2017, 05:15
Wohnort: Самара
Kontaktdaten:

Re: Asterisk. Отправка SMS

Beitrag von Pooh » 13.06.2017, 10:30

А как изменить атрибуты файла (сменить хозяина)? а то Asterisk не решается трогать чужие файлы...

spectrekr
professional
Beiträge: 255
Registriert: 26.12.2014, 09:40

Re: Asterisk. Отправка SMS

Beitrag von spectrekr » 13.06.2017, 13:46

Pooh hat geschrieben:А как изменить атрибуты файла (сменить хозяина)? а то Asterisk не решается трогать чужие файлы...

Code: Alles auswählen

var exec = require('child_process').exec;
    var child = exec ("chown asterisk /var/spool/asterisk/outgoing/TestSMS.call",
        function (error){
            if(error){
                log(error);
            }
        });

Pooh
professional
Beiträge: 126
Registriert: 11.05.2017, 05:15
Wohnort: Самара
Kontaktdaten:

Re: Asterisk. Отправка SMS

Beitrag von Pooh » 13.06.2017, 16:55

Спасибо, всё получилось. Но это пока ioBroker от рута... Пляски с правами продолжаться чуть позже

spectrekr
professional
Beiträge: 255
Registriert: 26.12.2014, 09:40

Re: RE: Re: Asterisk. Отправка SMS

Beitrag von spectrekr » 13.06.2017, 17:29

Pooh hat geschrieben:Спасибо, всё получилось. Но это пока ioBroker от рута... Пляски с правами продолжаться чуть позже
Ни кто не мешает в exec добавить sudo

Pooh
professional
Beiträge: 126
Registriert: 11.05.2017, 05:15
Wohnort: Самара
Kontaktdaten:

Re: Asterisk. Отправка SMS

Beitrag von Pooh » 22.12.2017, 06:58

Подскажите, как проверять папку на наличие нового файла и получать его содержимое? Это нужно для приема SMS. Принятые SMS складываются в папку в виде текстовых файлов.

Benutzeravatar
instalator
guru
Beiträge: 1258
Registriert: 09.11.2014, 16:50
Wohnort: Барнаул
Kontaktdaten:

Re: Asterisk. Отправка SMS

Beitrag von instalator » 28.12.2017, 15:56

Pooh hat geschrieben:Подскажите, как проверять папку на наличие нового файла и получать его содержимое? Это нужно для приема SMS. Принятые SMS складываются в папку в виде текстовых файлов.
Я думаю примерно так https://nodejs.org/api/fs.html#fs_fs_wa ... s_listener
Высокий уровень Децибел вреден для здоровья!
Мой блог

Antworten