Название: Модуль TurboSMS смс о предстоящем списании средств не отправляет. Отправлено: elvin от 29 Января 2019, 13:44:14 Добрый день!
Помогите, пожалуйста, разобраться... Модуль TurboSMS, вроде как настроен, выставил для проверки тег remindsms на одной услуге для проверки отправки, отправка смс высталвена с 9 до 21, за 3 дня до окончания услуги. Снятие денег со счета посуточное. Модуль включен. Если отправлять SMS клиенту с логин/пароль, sms отправляется, обычный текст тоже отправляется и доставляется. А вот о списании не приходят СМС, как можно выяснить почему? Во вложении скриншоты о настройке. Название: Re: Модуль TurboSMS смс о предстоящем списании средств не отправляет. Отправлено: elvin от 29 Января 2019, 13:47:08 так же вопрос что за поле SMS через TurboSMS?
Если кликаю, ничего не открывается, должно что-то отображать? Название: Re: Модуль TurboSMS смс о предстоящем списании средств не отправляет. Отправлено: Efendy от 30 Января 2019, 22:41:08 так же вопрос что за поле SMS через TurboSMS? Должно отобразиться окно с вводом номера телефона и текста сообщения. Но мой бок - недавно я делал изменения по проверке номеров телефонов (переносил их в веб-интерфейс) и забыл в одном месте это изменить. Пофиксил. Обновись до 556 ревизииЕсли кликаю, ничего не открывается, должно что-то отображать? Название: Re: Модуль TurboSMS смс о предстоящем списании средств не отправляет. Отправлено: Efendy от 30 Января 2019, 22:50:34 Помогите, пожалуйста, разобраться... Запусти в режиме отладки модуль remindsms:Код: perl nokernel.pl -m=remindsms -v сперва он выполнит sql-запрос, который должен вернуть список абонентов, которым планируется отсылка sms. Он будет примерно таким: Код: SELECT v.id, v.uid, s.price, u.balance, u.discount, d._adr_telefon, s.param AS srv_param, DATE(FROM_UNIXTIME(v.tm_end)) AS date FROM users_services v JOIN users u ON v.uid=u.id JOIN services s ON v.next_service_id=s.service_id JOIN data0 d ON v.uid=d.uid WHERE v.tm_end>0 AND v.tm_end<(UNIX_TIMESTAMP()+'86400') AND v.next_service_id>0 AND s.price>0 AND u.balance<s.price*(1-u.discount/100) AND block_if_limit>0 AND u.state='on' AND d._adr_telefon<>'' AND v.tags NOT LIKE '%,expire_sms,%' AND NOT EXISTS (SELECT id FROM v_services WHERE uid=u.id AND price<0) AND NOT EXISTS (SELECT id FROM pays WHERE mid=u.id AND category=202 AND reason='turbosms') у тебя может быть слегка иным. Главное посмотри сразу после него на следующую строку: Код: Строк: xx. Время выполнения sql: yy сек если xx = 0 - значит под условия не попал ни один абонент - что-то не так настроено. Можно привести этот запрос и мы вместе начнем разбирать его по кусочками что же в нем не попадает под условия, но этот будет долго. Можно самому в консоли sql выполнять его постепенно удаляя условие после каждого AND. Например: Код: SELECT v.id, v.uid, s.price, u.balance, u.discount, d._adr_telefon, s.param AS srv_param, DATE(FROM_UNIXTIME(v.tm_end)) AS date FROM users_services v JOIN users u ON v.uid=u.id JOIN services s ON v.next_service_id=s.service_id JOIN data0 d ON v.uid=d.uid WHERE v.tm_end>0 AND v.tm_end<(UNIX_TIMESTAMP()+'86400') AND v.next_service_id>0 AND s.price>0 AND u.balance<s.price*(1-u.discount/100) AND block_if_limit>0 AND u.state='on' AND d._adr_telefon<>'' AND v.tags NOT LIKE '%,expire_sms,%' AND NOT EXISTS (SELECT id FROM v_services WHERE uid=u.id AND price<0); Кроме того можешь обратить внимание на комментарии в remindsms: Код: "WHERE v.tm_end>0 ". # услуга имеет срок действия, Название: Re: Модуль TurboSMS смс о предстоящем списании средств не отправляет. Отправлено: elvin от 31 Января 2019, 15:32:12 Спасибо, попробую!
Название: Re: Модуль TurboSMS смс о предстоящем списании средств не отправляет. Отправлено: elvin от 31 Января 2019, 15:53:38 Запусти в режиме отладки модуль remindsms: Код: perl nokernel.pl -m=remindsms -v [/quote] Только запустил, смс пришла, но на тестовой учетке это был последний день. Я так понимаю модуль не запустился? Но при добавлении баланса до 3-х дней, и повторном запуске модуля Строк: 0. Время выполнения sql: 0.4647 сек, при том что баланс потом опять убрал, ответ по строкам такой же. Или смс раз в какой-то период? И тут самый вкус вопроса, будет ли при суточной тарификации за 3-и дня отрпавлять смс, или все таки за сутки только? Название: Re: Модуль TurboSMS смс о предстоящем списании средств не отправляет. Отправлено: elvin от 04 Февраля 2019, 12:55:27 еще вопрос, процесс какой-то должен быть постоянно запущен? например "remindsms"?
и я так понял при суточном тарифе, смс отправляется максимум только за сутки, возможно сделать как-то за несколько суток, за трое например? Название: Re: Модуль TurboSMS смс о предстоящем списании средств не отправляет. Отправлено: dimonous от 13 Марта 2019, 12:10:41 "remindsms" периодически запускается ядром, если в настройках включена опция "запускать вместе с ядром". Кулдаун отсылки обеспечивается добавлением тега "expire_sms" в users_services.
Название: Re: Модуль TurboSMS смс о предстоящем списании средств не отправляет. Отправлено: dimonous от 13 Марта 2019, 12:15:39 Прошу помощи с модулем. Не могу понять причину поведения:
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'SET number='+38063', sign='', message=NULL, send_time=NOW()' at line 1 { 'sql' => 'INSERT INTO SET number=?, sign=?, message=?, send_time=NOW()', 'param' => [ '+38063', '', undef ] }; INSERT INTO SET number='+38063', sign='', message=NULL, send_time=NOW() end Таблица прописана в логине модуля turbosms. Версию 561 поставил. модуль turbosms скачан из личного кабинета. # cat updateturbosms.log | grep sms --- Модуль turbosms --- { file=>'cfg/RU/tune.cfg',hook=>'sms' } { file=>'cfg/UA/tune.cfg',hook=>'sms' } Файл create.kernel.turbosms.pm Файл create.nod.turbosms.pm Файл create.turbo_sms.pl Файл create.kernel.remindsms.pm Файл create.kernel.turbosms.cfg Файл create.kernel.remindsms.cfg Файл create.multisms.pl Патчим web/users.pl модулями turbosms Патчим cfg/RU/tune.cfg модулями turbosms Патчим cfg/UA/tune.cfg модулями turbosms Патчим web/lang/UA.pl модулями turbosms Патчим web/main.pl модулями turbosms Патчим cfg/web_plugins.list модулями turbosms Название: Re: Модуль TurboSMS смс о предстоящем списании средств не отправляет. Отправлено: dimonous от 13 Марта 2019, 12:21:50 Еще подробностей:
Название: Re: Модуль TurboSMS смс о предстоящем списании средств не отправляет. Отправлено: Cell от 13 Марта 2019, 12:23:08 Цитировать INSERT INTO SET number='+38063', sign='', message=NULL, send_time=NOW() Ошибка синтаксиса.правильно писать так INSERT INTO tablename SET ......... Название: Re: Модуль TurboSMS смс о предстоящем списании средств не отправляет. Отправлено: dimonous от 13 Марта 2019, 12:28:03 конечно ошибка!
имя таблицы должно прилетать отсюда: $sms_db->do( "INSERT INTO $db_table SET number=?, sign=?, message=?, send_time=NOW()", $phone, $cur_sms_sign, $message которая берется из: my $db_params = nod::sms::db_param( nod::sms::provider_params($config->{smsmod}) ); my $db_table = $db_params->{table}; что вот здесь: cat _sms.pm my $params = { enabled => ${"cfg::$smsmod"."_enabled"}, table => ${"cfg::$smsmod"."_db_table"} || $provider->{sms_tbl} || ${"cfg::$smsmod"."_db_login"}, Название: Re: Модуль TurboSMS смс о предстоящем списании средств не отправляет. Отправлено: Efendy от 13 Марта 2019, 13:54:38 Я вижу, что у тебя пропатченный модуль sms.pm. Может там что-то некорректно изменено. Для турбосмс имя таблицы берется таким же как логин подключения к базе турбосмс
Название: Re: Модуль TurboSMS смс о предстоящем списании средств не отправляет. Отправлено: dimonous от 13 Марта 2019, 15:17:23 Удалил _sms.pm и _remindsms.pm, перезапустил биллинг и смс заработали. Спасибо!
Название: Re: Модуль TurboSMS смс о предстоящем списании средств не отправляет. Отправлено: dimonous от 13 Мая 2019, 13:23:08 Нашел баг.
При рассылке с несколькими подписями подпись не подставляется. Причина - в ошибке в SQL запросе. Вместо: SELECT v.id, v.uid, s.price, u.balance, u.discount, d._adr_telefon, s.param AS srv_param, DATE(FROM_UNIXTIME(v.tm_end)) AS date, _sms выполняется: SELECT v.id, v.uid, s.price, u.balance, u.discount, d._adr_telefon, s.param AS srv_param, DATE(FROM_UNIXTIME(v.tm_end)) AS date_sms Вот патч: [root@my nodeny]# svn diff kernel/remindsms.pm Index: kernel/remindsms.pm =================================================================== --- kernel/remindsms.pm (revision 572) +++ kernel/remindsms.pm (working copy) @@ -72,7 +72,7 @@ if( $dopfield ) { - $sql_select .= $dopfield; + $sql_select .= ",$dopfield"; %dopsignes = %{$db_params->{dopsignes}}; } Название: Re: Модуль TurboSMS смс о предстоящем списании средств не отправляет. Отправлено: Efendy от 13 Мая 2019, 14:14:57 ок, исправлю
Название: Re: Модуль TurboSMS смс о предстоящем списании средств не отправляет. Отправлено: Jovani от 30 Марта 2020, 22:49:36 подскажите почему может не работать
Код: SELECT v.id, v.uid, s.price, u.balance, u.discount, d._adr_telefon, s.param AS srv_param, DATE(FROM_UNIXTIME(v.tm_end)) AS date FROM users_services v JOIN users u ON v.uid=u.id JOIN services s ON v.next_service_id=s.service_id JOIN data0 d ON v.uid=d.uid WHERE v.tm_end>0 AND v.tm_end<(UNIX_TIMESTAMP()+'259200') AND v.next_service_id>0 AND s.price>0 AND u.balance<s.price*(1-u.discount/100) AND block_if_limit>0 AND u.state='on' AND d._adr_telefon<>'' AND v.tags NOT LIKE '%,expire_sms,%' AND NOT EXISTS (SELECT id FROM v_services WHERE uid=u.id AND price<0) AND NOT EXISTS (SELECT id FROM pays WHERE mid=u.id AND category=202 AND reason='turbosms') AND EXISTS (SELECT 1 FROM users_services WHERE uid=u.id AND tags LIKE '%,remindsms,%') Если убрать, то уже есть условия для отправки Код: AND EXISTS (SELECT 1 FROM users_services WHERE uid=u.id AND tags LIKE '%,remindsms,%') тег указан в услугах. Название: Re: Модуль TurboSMS смс о предстоящем списании средств не отправляет. Отправлено: Efendy от 01 Апреля 2020, 13:23:54 Код: AND EXISTS (SELECT 1 FROM users_services WHERE uid=u.id AND tags LIKE '%,remindsms,%') Название: Re: Модуль TurboSMS смс о предстоящем списании средств не отправляет. Отправлено: k291 от 02 Апреля 2021, 18:39:10 Имеем несколько групп с разными названиями.
Задача: каждой группе, отправлять СМС со своей подписью. Что сделал: 1) доп.поле, скрин ниже 2) обект, скрин ниже 3) настроил модуль turbosms, скрин ниже Результат: а) смс автоматически не отправляются. Если нажать отправку вручную, то подпись берется из "Настройки-turbosms, поле "Подпись в sms. ..." ". б) если удалить все значения в полях "Настройки-turbosms, "Значение поля → подпись" ", то смс автоматически отправляются, но с одинаковой подписью, из поля "Подпись в sms. ...". Подскажите, что не так Название: Re: Модуль TurboSMS смс о предстоящем списании средств не отправляет. Отправлено: Efendy от 05 Апреля 2021, 23:40:05 В разделе "Объекты" колонка "ключ" - это значение, которое содержится в таблице допданных, а колонка "значение" - то, как она будет отображена. Часто они совпадают. Это не обязательно, иногда есть смысл указывать какой-то код вместо полного названия, учитывая, что название (отображаемое значение) может меняться. В твоем случае как раз не совпадает. В поле хранится значение "1" - отображается как "Сеть 2". Но модуль отправки смс видит "1". Поэтому в таблице подписей в первой колонке в твоем случае должны стоять цифры. Имя допполя также замени на _net_name_sms
Чтобы смс отправлялись автоматически, нужно запустить модуль ядра remindsms. Первый раз можно с ключем -v, тогда вся инфа будет идти в консоль и по комментариям или ошибкам будет понятно, что происходит. |