Writing /Volumes/dati/Library/WebServer/Documents/Sites/smash/data/cache/7/704eae54b0cabdd4503da7aef0faecaf.i failed
Unable to save cache file. Hint: disk full; file permissions; safe_mode setting.
Writing /Volumes/dati/Library/WebServer/Documents/Sites/smash/data/cache/7/704eae54b0cabdd4503da7aef0faecaf.metadata failed
Writing /Volumes/dati/Library/WebServer/Documents/Sites/smash/data/meta/webservice_sms_inbox.meta failed
 
Writing /Volumes/dati/Library/WebServer/Documents/Sites/smash/data/cache/7/704eae54b0cabdd4503da7aef0faecaf.i failed
Unable to save cache file. Hint: disk full; file permissions; safe_mode setting.
Writing /Volumes/dati/Library/WebServer/Documents/Sites/smash/data/cache/7/704eae54b0cabdd4503da7aef0faecaf.metadata failed
Writing /Volumes/dati/Library/WebServer/Documents/Sites/smash/data/cache/7/704eae54b0cabdd4503da7aef0faecaf.i failed
Unable to save cache file. Hint: disk full; file permissions; safe_mode setting.
Writing /Volumes/dati/Library/WebServer/Documents/Sites/smash/data/cache/7/704eae54b0cabdd4503da7aef0faecaf.xhtml failed
Writing /Volumes/dati/Library/WebServer/Documents/Sites/smash/data/cache/7/704eae54b0cabdd4503da7aef0faecaf.i failed
Unable to save cache file. Hint: disk full; file permissions; safe_mode setting.
Writing /Volumes/dati/Library/WebServer/Documents/Sites/smash/data/cache/7/704eae54b0cabdd4503da7aef0faecaf.metadata failed

WebService SMS in ingresso

SMaSh OS ti permette di elaborare gli SMS in ingresso nei tuoi applicativi.

E' possibile accedere al terminale (shell) mediante SSH sulla porta di default 22 con nome utente root password itoys

Per gli utenti windows suggeriemo l'utilizzo di putty come terminale ssh e WINSCP come clienti per il trasferimento di file.

I metodi possibili sono 3:

POST HTTP su un tuo WEBSERVICE

Per abilitare il forward verso il tuo WebService dovrai inserire il seguente codice nel file /etc/sms/scripts/parser.php

N.B. mantieni sempre una copia dello script originale prima di ogni modifica.

#!/bin/php 
function do_post_request($url, $data, $optional_headers = null) 
{ 
   $params = array('http' => array( 
                'method' => 'POST', 
                'content' => $data 
             )); 
   if ($optional_headers !== null) { 
      $params['http']['header'] = $optional_headers; 
   } 
   $ctx = stream_context_create($params); 
   $fp = @fopen($url, 'rb', false, $ctx); 
   if (!$fp) { 
      throw new Exception("Problem with $url, $php_errormsg"); 
   } 
   $response = @stream_get_contents($fp); 
   if ($response === false) { 
      throw new Exception("Problem reading data from $url, $php_errormsg"); 
   } 
   return $response; 
} 

A questo punto chiama la funzione dopo l'elaborazione del messaggio (dopo linea 213 del file) subito sotto il commento

   // defualt queue population
   $urlp= 'http://your.url.xxx/webservice.xxx'; 
   $parametri='PHONE='.urlencode($nmit).'&smsTEXT='.urlencode($testo).'&smsDATE='.urlencode($ricevuto); 
   $response = do_post_request($urlp, $parametri);

Di seguito un piccolo esempio di webservice PHP da utilizzare come traccia per costruire il proprio sul tuo server

   <?
   $sender=$_REQUEST[' PHONE'];
   $text=$_REQUEST['smsTEXT'];
   $deldate=$_REQUEST['smsDATE'];
   $db = mysql_connect("localhost", "dbuser", "password");
   if ($db == FALSE)
     die ("Error cannot connect to MYSQL");
   mysql_select_db("SMS", $db);
   $query = mysql_query("insert into incoming values  ('','$sender','$text', '$deldate'")");
   ?>

Ovviamente l'esempio proposto é in linguaggio PHP ma potrai utilizzare qualsiasi linguaggio per creare il tuo ASP, JSP etc…

Inserimento automatico in una base dati MYSQL

SMaSh é equipaggiata con il client MySQL, tramite l'apposita sezione Modulo My SMS potrai popolare un DB Mysql Apposito con gli SMS in arrivo

Compila il modulo ella figura sopra della tua SMaSh con i dati di connessione al Server Mysql e assicuri che la porta 3306 del server sia raggiungibile e i privilegi dell'utente che andrai a specificare permettano di eseuire le insert da rete. (verifica che nel file my.cnf del tuo server non ci sia attivo lo skip-networking).

Crea sul tuo server MYSQL un database con lo stesso nome di quello specificato nel modulo con il sequente tracciato:

CREATE TABLE `inpmsglog` (
`counter` bigint(11) NOT NULL auto_increment,
`gsmnumber` varchar(30) NOT NULL,
`readdate` varchar(30) NOT NULL default '0000-00-00 00:00:00',
`userid` varchar(30) NOT NULL default '0',
`message` varchar(500) NOT NULL,
`state` varchar(50) NOT NULL default '0',
`msgdate` varchar(250) NOT NULL default '0000-00-00 00:00:00',
`trashed` varchar(30) NOT NULL default '0',
`configid` varchar(30) NOT NULL default '0',
PRIMARY KEY  (`counter`)
) ENGINE=MyISAM AUTO_INCREMENT=15274 DEFAULT CHARSET=latin1 PACK_KEYS=1 AUTO_INCREMENT=1 ;

Abilita l'esecuzione dle modulo togliendo il commento # alle seguenti righe nella sezione evnethandler

	#if [ "$1" = "RECEIVED" ]; then
		#/etc/sms/scripts/mysql_parser.php
	#fi

File di testo nella cartella di spool

Accedi alla SMaSh via SSH. E' possibile accedere al terminale (shell) mediante SSH sulla porta di default 22 con nome utente root password itoys Per gli utenti windows suggeriemo l'utilizzo di putty come terminale ssh e WINSCP come clienti per il trasferimento di file.

Gli SMS vengono storati in /mnt/flash/spool/incoming

 
webservice_sms_inbox.txt · Ultima modifica: 2015/01/24 20:29 (modifica esterna)
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki