Осуществление ОGSM/SMS/USSD вызовов с использованием утилиты mdbus |
[исправить] |
На сервере используем 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. Выбираем телефон на который можно поставить дистрибутив SHR
(http://www.shr-project.org), в состав которого входит полезная консольная
утилита mdbus2. В качестве телефона задействован Neo Freerunner, но подойдут и
другие аппараты, поддерживаемые в 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.ubi
5. Настраиваем соединение:
# 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";
?>
|
|
|
|
Раздел: Корень / Пользователю / Мобильные телефоны |