[an error occurred while processing this directive]

Осуществление О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";
   ?>
 
23.01.2012 , Автор: Дмитрий Попов
Ключи: sms, phone, linux, openmoko, mdbus, gsm, voice, php / Лицензия: CC-BY
Раздел:    Корень / Пользователю / Мобильные телефоны

[an error occurred while processing this directive]

[an error occurred while processing this directive]