Страница 1 из 1

callback: Unable to set utime

Добавлено: 18 июн 2017, 14:29
Makioro
Здравствуйте! Мне двадцать лет, я бородат, живу с мамой, тролль, лжец и девственник. Вот и сейчас... P.S. Извените за неровный почерк.
Настроил callback (не для обзвона, а чтоб в веб-интерфейсе на номер телефона тыкнуть и астериск позвонил на телефон, а потом соединил с этим номером)
Всё работает, но не нравятся вот такие сообщения:
[Jun 18 14:03:09] WARNING[100662]: pbx_spool.c:318 safe_append: Unable to set utime on /var/spool/asterisk/outgoing/1497783789.call: Operation not permitted
Гугл подсказывает что проблема в том, что файл .call не с владельцем "asterisk". Файл создаётся с помощью php скрипта когда тыкаешь на номер на странице детализации звонков, поэтому владелец по-умолчанию "www". В php есть функция "chown", но как сказано по ссылке, изменить владельца файла может только суперпользователь.
Вижу несколько вариантов решения:
1) Запускать астериск под пользователем www
2) запускать веб-сервер под пользователем asterisk
3) забить, ведь всё и так работает
Первые два совсем не нравятся. С третьим успешно справлялся, но выдалась свободное время и подумал почему бы не убрать лишние warning'и. Может есть какое-то более изящное решение?

Re: callback: Unable to set utime

Добавлено: 18 июн 2017, 17:43
yur4ik
Хорошо то как тут у вас
Ну это пока ded не пришел :D , обычно после его ответов у всех меняется такое праздничное настроение ...
Что касаемо вашего вопроса , вы бы не ленились пользоваться поиском , здесь же на форуме обсуждался подобный вопрос ...
В вашем случае php скрипт должен создавать фай в другой папке ( tmp ) менять пользователя и уж потом копировать в папку /var/spool/asterisk/outgoing

Re: callback: Unable to set utime

Добавлено: 18 июн 2017, 20:22
Makioro
Скрипт так и делает: создаёт в другой папке файл, а потом его перемещает в /var/spool/asterisk/outgoing/. Могу его выложить, если надо.
Проблема, как я уже писал в первом сообщении, в том, что php-скрипт запускается под пользователем www, который не имеет прав на изменение владельца файла.
По форуму я искал, поэтому-то в первом сообщении уточнил что этот скрипт не для автообзвона - прочел вот эту тему и эту. В обеих нет решения этой проблемы. Больше тем по поиску "Unable to set utime" не находится (теперь ещё моя добавилась)

Re: callback: Unable to set utime

Добавлено: 19 июн 2017, 06:20
virus_net
Есть иной вариант: клиент-сервер
Запустить tcp сервер из под root, который будет передавать команды от web-интерфейса скрипту, который уже сможет выполнить любую прихоть (в том числе и chown).
Как пример такого взаимодействия (см. раздел Installing on remote host to be run separately from web-interface)

Re: callback: Unable to set utime

Добавлено: 19 июн 2017, 10:33
fecyt
А что, если добавить обоих пользователей в группу каждого, т.е. asterisk в www и www в asterisk, а права при создании файлика делать 775 например, или как там?

Re: callback: Unable to set utime

Добавлено: 19 июн 2017, 10:56
Repz
вариант три прям очень хороший)))))))
если серьезно то можно посмотреть https://www.voip-info.org/wiki/view/Ast ... ample:+PHP

Re: callback: Unable to set utime

Добавлено: 19 июн 2017, 12:29
virus_net
AJAM тоже может быть вариантом, но надо учитывать что в таком варианте с безопасностью придется поморочится подольше.
Вот мой пример AJAM клиента на PHP, который я сделал для работы bot.subnets.ru

Re: callback: Unable to set utime

Добавлено: 23 июн 2017, 19:33
Makioro
Спасибо за ответы. Узнал для себя что-то новое (про AJAM)
Но, согласитесь, это слишком сложные решения чтобы просто убрать warning из логов
Пока буду следовать решению №3 :)