SmartLiving.ru

Обсуждение проекта
 
Текущее время: Вс сен 24, 2017 10:18 pm

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Управление системой через Skype
СообщениеДобавлено: Пт авг 17, 2012 11:38 am 
Не в сети

Зарегистрирован: Вт янв 17, 2012 12:31 pm
Сообщения: 834
Благодарил (а): 88 раз.
Поблагодарили: 64 раз.
Обсуждение страницы Управление системой через Skype


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление системой через Skype
СообщениеДобавлено: Ср янв 23, 2013 12:05 am 
Не в сети

Зарегистрирован: Вт янв 08, 2013 11:50 pm
Сообщения: 211
Откуда: Санкт-Петербург
Благодарил (а): 0 раз.
Поблагодарили: 5 раз.
Сергей, озадачился подключением Скайп под Линукс. Поле для деятельности подготовил - скайп запускается и даже принимает - отправляет сообщения из php-скриптов.
Теперь пытаюсь вкурить логику работы модуля Скайп в МажорДоМо.
Судя по циклу_скайп, скрипт периодически отправляет сообщения пользователям в скайп - здесь вроде все понятно: запрос к базе, получили сообщения для пользователей, а потом отправили по разным логинам кому что причитается.
Дальше обработка входящих сообщений.
Я так понял, что в Винде регистрируется некий класс, который через механизм COM-объектов получает от Skype входящие сообщения.
И вот дальше у меня ступор.
Судя по коду скрипта, эти сообщения прямо в скрипте и обрабатываются (на ping получаем pong, либо пытаемся обработать через модуль команд commandReceived).
Но я никак не могу понять, в какой момент происходит вызов метода onNewMessage объекта mySkype.
HTTP-запросов в цикле_скайп я не увидел. Что я упустил?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление системой через Skype
СообщениеДобавлено: Ср янв 23, 2013 10:31 am 
Не в сети
Site Admin

Зарегистрирован: Пн сен 05, 2011 6:48 pm
Сообщения: 4053
Откуда: Минск, Беларусь
Благодарил (а): 64 раз.
Поблагодарили: 1057 раз.
Не упустил, похоже я так и не подключил этот метод. Это можно сделать добавив после строчки
Код:
getObject("ThisComputer")->raiseEvent("commandReceived", array("command"=>$qrys[$i]));

такую строчку:
Код:
callMethod("mySkype.onNewMessage",array("message"=>$qrys[$i]));


Ещё можно использовать модуль Шаблоны поведения для обработки команд, т.к. он реагирует на историю сообщений в чате системы, а скрипт работы со скайпом пишет в чат то, что приходит на скайп.

Ну и буду рад если поделишься потом итоговым скриптом, чтобы обновить его в основной ветке исходников :)

_________________

Сергей Джейгало, разработчик MajorDoMo
Профиль Connect -- информация, сотрудничество, услуги


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление системой через Skype
СообщениеДобавлено: Ср янв 23, 2013 10:43 am 
Не в сети

Зарегистрирован: Вт янв 08, 2013 11:50 pm
Сообщения: 211
Откуда: Санкт-Петербург
Благодарил (а): 0 раз.
Поблагодарили: 5 раз.
sergejey писал(а):
Не упустил, ...

Ну и буду рад если поделишься потом итоговым скриптом, чтобы обновить его в основной ветке исходников :)

Ближе к выходным - по вечерам разбираюсь, на работе приходится работать :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление системой через Skype
СообщениеДобавлено: Чт янв 24, 2013 5:20 pm 
Не в сети

Зарегистрирован: Вт янв 08, 2013 11:50 pm
Сообщения: 211
Откуда: Санкт-Петербург
Благодарил (а): 0 раз.
Поблагодарили: 5 раз.
Установку проводил на основе примеров из интернета.
Общие принципы:
- на сервере X-Server не поднимаем - будем использовать Xvfb
- общаться со скайпом будем через dbus
- скайп будем использовать только в текстовом режиме
- для выполнения первоначальной настойки будем использовать доступ через VNC

Для начала установим компоненты для работы с dbus

Код:
apt-get install php5-dev
apt-get install php-pear
pear install PEAR


Код:
apt-get install libdbus-1-dev libxml2-dev
pecl install dbus-beta


пропишем в настройки PHP использование модуля dbus

Код:
echo -e "; configuration for php DBus module\nextension=dbus.so"| tee -a /etc/php5/conf.d/dbus.ini


Проконтролируем, что все поставилось

Код:
php -i | grep -n -i dbus

должны увидеть что-то типа

Код:
DBus support => enabled


Теперь непосредственно Скайп
так как у меня Debian sqweeze с ядром 2.6.32 - скачанный с сайта по ссылке дистрибутив не заработал (экспериментировал с обновлением ядра для 3-й версии - там все получилось).

Я скачивал старенький дистрибутив.
Итак, приступаем

Код:
wget http://download.skype.com/linux/skype-debian_4.0.0.7-1_i386.deb
dpkg -i skype-debian_4.0.0.7-1_i386.deb


99%, что вы получите ругань на неудовлетворенные зависимости. Делаем так:

Код:
apt-get -f install

и пробуем еще раз

Код:
dpkg -i skype-debian_4.0.0.7-1_i386.deb


есть вероятность, что ничего не получится. У меня решению проблемы помогло добавление в /etc/apt/source.list напротив каждого репозитария параметра Contrib

Если у вас все прошло хорошо, приступаем к последнему этапу шаманства :)

Первое замечание: у меня Apache и скрипты cycle.php исполняются от имени пользователя www-data. Поэтому и запуск скайпа я буду делать от имени этого пользователя.
Второе замечание: домашней директорией пользователя www-data является каталог /var/www, в котором этот пользователь царь и бог :) поэтому я приодически на все файлы и каталоги проверяю выставленного владельца и права доступа.

Итак, если у вас еще не установлен пакет sudo - ставим

Код:
apt-get install sudo


Я дал пользователю www-data права на запуск некоторых приложений, которые нужны для работы умного дома, а также для работы со скайпом. Перечень характерен именно для моего случая

Код:
echo 'www-data    ALL = NOPASSWD: /bin/mount, /bin/umount, /sbin/shutdown, /sbin/reboot, /sbin/modprobe, /sbin/rmmod, /usr/bin/skype, /usr/bin/Xvfb, /home/skype/skype, /bin/su, /bin/kill'>>/etc/sudoers


Создадим каталоги для хранения настроек скайпа (в домашней директрии пользователя www-data)

Код:
mkdir -p /var/www/multi/interface01
chown -R www-data:www-data /var/www/multi


Для доступа к запущенному скайпу и выполнения первоначальных настроек (принять лицензионное соглащение, поотключать автоматические смены статусов и лишние оповещения) установим VNC-сервер

Код:
apt-get install x11vnc


Попробуем запустить скайп
Запуск будем производить через утилиту Xvfb, используя возможность "сквозной" авторизации скайпа.

Код:
/usr/bin/Xvfb :101 -ac & su www-data -c "/bin/echo '<skype_login> <skype_password>'| DISPLAY=:101 /usr/bin/skype --dbpath=/home/skype/multi/interface01 --pipelogin &"


Разберемся поподробнее. На всех опциях останавливаться не буду, расскажу только про те, которые нам нужны.
:101 - номер так называемого "дисплея", на котором делаем запуск. При помощи это йопции в принципе можно запускать несколько копий скайпа на разных "дисплеях"
после знака & идет команда, которая выполняется на "дисплее". В нашем случае от имени пользователя www-data отправляем логин и пароль на вход команде
...DISPLAY=:101... - запуск производим в "дисплее" 101
...-dbpath=... - указываем, где храним настройки для хапускаемого сеанса. Если хотим несколько сеансов - раскидываем настройки по разным каталогам
...-pipelogin... - говорим скайпу, что логин и пароль мы отправили ему ранее командой echo

Ну вот и все :) скайп запущен. Осталось только его настроить. Для этого запусим VNC-сервер

Код:
x11vnc -display :101


Подключаемся при помощи любого vnc-клиента (я использую RealVNC для Mac или TightVNC для Windows). Как видите, сервер мы тоже адресуем к нашему :101 "дисплею". При таком запуске сервер остановится, как только вы от него отключитесь. Если хотите, чтобы он работал постоянно, и отключать его вручную - добавьте опцию -forever

Код:
x11vnc -display :101 -forever


Подключившись, вы увидете лицензионное соглашение. Приняв его, должны получить залогиненый скайп.

Я у себя в настройках отключил автоматическую смену статуса при неактивности, а также все уведомления (кроме входящего звонка - его просто не отключить), запретил автоматическую проверку обновлений и прочие непонятные и ненужные для текстового общения опции.

Об установе и запуске Скайпа пока все. Интеграцию его в Умный дом опишу чуть позднее, когда оттестирую скрипты.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление системой через Skype
СообщениеДобавлено: Пт янв 25, 2013 11:14 am 
Не в сети
Site Admin

Зарегистрирован: Пн сен 05, 2011 6:48 pm
Сообщения: 4053
Откуда: Минск, Беларусь
Благодарил (а): 64 раз.
Поблагодарили: 1057 раз.
Класс! Всё меньше и меньше поводов оставаться на Windows :)

_________________

Сергей Джейгало, разработчик MajorDoMo
Профиль Connect -- информация, сотрудничество, услуги


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление системой через Skype
СообщениеДобавлено: Пт янв 25, 2013 2:47 pm 
Не в сети

Зарегистрирован: Вт янв 08, 2013 11:50 pm
Сообщения: 211
Откуда: Санкт-Петербург
Благодарил (а): 0 раз.
Поблагодарили: 5 раз.
Отправил исходники с интеграцией Скайпа для Линукса. Ждем релиза :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление системой через Skype
СообщениеДобавлено: Пт янв 25, 2013 4:25 pm 
Не в сети
Site Admin

Зарегистрирован: Пн сен 05, 2011 6:48 pm
Сообщения: 4053
Откуда: Минск, Беларусь
Благодарил (а): 64 раз.
Поблагодарили: 1057 раз.
Уже в общей ветке.

_________________

Сергей Джейгало, разработчик MajorDoMo
Профиль Connect -- информация, сотрудничество, услуги


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление системой через Skype
СообщениеДобавлено: Вт ноя 12, 2013 11:58 pm 
Не в сети

Зарегистрирован: Ср ноя 06, 2013 10:30 am
Сообщения: 5
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Объясните пожалуйста, как запустить обработку сообщений скайпа, где можно посмотреть список команд, которые можно писать, где и каким образом добавить свои команды?
Мажордом запущен под виндой, скайп в системе запущен. Вот тут http://smartliving.ru/Main/ScSkypeBot написано, что в системе есть класс скайпа, в котором два метода и один объект. Всё так и есть. А как этим пользоваться? Посылаю на этот скайп текстовое сообщение "ping" (единственное, что нашел на форуме), "тот" скайп его получает... И всё...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Управление системой через Skype
СообщениеДобавлено: Вт мар 25, 2014 6:19 pm 
Не в сети

Зарегистрирован: Пн мар 10, 2014 10:05 am
Сообщения: 11
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Установил и настроил x11vnc + Xvfb (ubuntu 12.04) по подробной инструкции выше, все отлично работает, но одна загвоздка, сообщения в чат Majordomo отправляются только если вручную запустить cycle_X101_skype.php, хотя в настройках Majordomo активировал пункт "Run Skype script". Подскажите пожалуйста куда копать?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 26 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB