На сервере используем Gentoo Linux, к которому через USB-порт подключен телефон Neo Freerunner (Openmoko + SHR).
1. Убедимся, что ядро Linux собрано с опцией "Ethernet over USB". При выполнении dmesg будет выведены примерно такие сообщения:[ 3167.874749] udev[1339]: renamed network interface eth2 to eth4
[ 3187.500221] cdc_ether 4-2:1.0: eth4: unregister 'cdc_ether' usb-0000:00:1d.2-2, CDC Ethernet Device
eth4 Link encap:Ethernet HWaddr 00:1f:11:01:43:af
inet addr:192.168.7.14 Bcast:192.168.7.255 Mask:255.255.255.0
...2. Ставим Apache и PHP, включая PHP-расширение SSH2, которое в дальнейшем пригодится.
3. Выбираем телефон на который можно поставить дистрибутив [[http://wiki.openmoko.org/wiki/SHR SHR]] (http://www.shr-project.org), в состав которого входит полезная консольная утилита mdbus2. В качестве телефона задействован Neo Freerunner, но подойдут и другие аппараты, [[http://wiki.shr-project.org/trac/wiki/Devices поддерживаемые]] в SHR (Nokia N900, Palm Pre, Pre Plus, Pre 2, HTC Desire, HTC Dream, HTC HD2, iPhone3G, Nexus One и т.п.)
4. Заливаем с Linux-машины на телефон прошивку:
dfu-util -d 1d50:5119 -a u-boot -R -D qi-ubi-s3c2442.udfu
dfu-util -d 1d50:5119 -a kernel -R -D uImage-2.6.39-r6-oe16-om-gta02-20111217193821.bin
dfu-util -d 1d50:5119 -a rootfs -R -D shr-image-om-gta02.ubi5. Настраиваем соединение:
# cat /etc/hosts | grep 192
192.168.7.2 neo# ssh neo
root@om-gta02:~# ifconfig usb0
usb0 Link encap:Ethernet HWaddr 00:1F:11:01:43:AE
inet addr:192.168.7.2 Bcast:192.168.7.255 Mask:255.255.255.0
...6. Далее открываем консольную утилиту mdbus для диагностики и обмена данными. Нам потребуются сервисы USSD, SMS и VOICE.
USSD вызов:
ssh neo "mdbus2 -s org.freesmartphone.ogsmd /org/freesmartphone/GSM/Device org.freesmartphone.GSM.Network.SendUssdRequest '*102#'
VOICE вызов:
ssh root@neo "mdbus2 -s org.freesmartphone.ogsmd /org/freesmartphone/GSM/Device org.freesmartphone.GSM.Call.Initiate '+790XXXXXXX' 'voice'"
SMS вызов:
ssh neo "mdbus2 -s org.freesmartphone.ogsmd /org/freesmartphone/GSM/Device org.freesmartphone.GSM.SMS.SendTextMessage '+7903XXXXXXX' 'Hello world' '1'"
Ссылки по которым можно разобраться в работе mdbus:
http://wiki.openmoko.org/wiki/OpenmokoFramework/mdbus
http://docs.freesmartphone.org/
7. Создаём PHP-скрипт для выполнения звонка с использованием библиотеки SSH2:<?php
$connection = ssh2_connect('neo', 22);if (ssh2_auth_password($connection, 'root', '')) {
echo "Authentication Successful!\n";
} else {
die('Authentication Failed...');
}
$shell = ssh2_shell($connection,"bash");$stream = ssh2_exec($connection, 'mdbus2 -s org.freesmartphone.ogsmd /org/freesmartphone/GSM/Device org.freesmartphone.GSM.Call.Initiate \'+7903XXXXXXX\' \'voice\'');
echo " SetMicrophoneMuted = 1 \n ";
$stream1 = ssh2_exec($connection, 'mdbus2 -s org.freesmartphone.frameworkd /org/freesmartphone/GSM/Device org.freesmartphone.GSM.Device.SetMicrophoneMuted \'1\'');
echo "$stream";
echo "calling to +7903xxxxxxx (POPOV DMITRY)";echo " Sleep 10 sec \n ";
sleep(20);
echo " Release GSM call \n ";
$stream2=ssh2_exec($connection, 'mdbus2 -s org.freesmartphone.ogsmd /org/freesmartphone/GSM/Device org.freesmartphone.GSM.Call.ReleaseAll');
$output = stream_get_contents($stream);
echo "$output";
?>URL:
Обсуждается: http://www.opennet.me/tips/info/2659.shtml
Фактически, это получается удалённый аналог клавиатуры телефона, верно? проброса аудио нету?
да можно сделать web и спокойно делать тестовые звонки.
Текст статей обычно начинается словами для чего это нужно и зачем. В этой статье сразу с места и в карьер.
ну как обычно :)
Впринципе не плохая статья, но правда, зачем звонки через php?
Лучше более подробно изложить идею отправки сообщений и запросов USSD, но звонки помойму лишнее...
Допустим я сейчас занимаюсь написанием скрипта для отправки SMS в случае падения сервера с автоматической отправкой еще письма более подробного на мыло и записями в лог, когда что и во сколько и как долго сервер лежал и что было причиной....вот по сути сейчас интересуют такие статьи, хотя их этой тоже можно чего интересного взять, спасибо
Думаю для вас совсем все просто :)
Купите телефон один из списка настройке как по инструкции
и делов то , SNMP трапы в тексе SMS :) 2 минуты делов
для запуска можно на bash написать или perl, по факту HSR это дебиан там можно покрону запустить опрос сервера и в случае если что-то не работает он вышлет SMS, да море вариантов на самом деле. Мне нужно было Тесты делать для людей поэтому они заходят на страничку выбиратют тип соединения и спокойно снимают трейс. GPRS я еще доделаю. более того можно послать на телефон SMS с помощью mdbus2 просмотреть и выполнить вашу комманду без всякого труда. Тоесть хотите вырубить сервер 1 коммана и он погиб :)
Для этого рецепта надо где-то взять телефон с линуксом. Это экзотика.
Лучше подскажите как отправлять SMS/USSD через 3г модемы.
http://www.ebay.com/ctg/HTC-Dream-Black-Rogers-Wireless-Smar...25$ все решение :) какая экзотика ? главное залить HSR прошивку на него :)
А приписка к лоту "For parts or not working" ни о чем не говорит?
можно найти за 100 баксов рабочий
Вместо модема за пару сотен рублей здесь. Да, офигенное решение.
> Для этого рецепта надо где-то взять телефон с линуксом. Это экзотика.
> Лучше подскажите как отправлять SMS/USSD через 3г модемы.http://designbuildtestrepeat.wordpress.com/2008/04/29/huawei.../
вот статья для uawei-e220 для SMS.
> Для этого рецепта надо где-то взять телефон с линуксом. Это экзотика.
> Лучше подскажите как отправлять SMS/USSD через 3г модемы.вот скрипт на питоне
http://designbuildtestrepeat.wordpress.com/2008/06/26/sms-ov.../
> Лучше подскажите как отправлять SMS/USSD через 3г модемы.Лучшек научить Вас, Анонимус, пользоваться поиском Google.
Все как и раньше, AT командами. Через некоторые модемы даже голос гонять можно, сгородив таким образом вполне бюджетный VoIP-GSM шлюз. Информации в сети - валом.
AT командами. Замечательный абсолютно невоспроизводимый в отсутствии примера под рукой (из которого можно копипастить) способ.
С удивлением обнаружил почти годную графическую утилиту, которая даже понимает мой модем (gobi 2000).
gnome-modem-manager
Принятые смс она показывает и вроде позволяет их отправлять, но USSD запросы не проходят.