KNOWLEDGE BASE VOISPEED V.4

categories
Gli articoli piú lettiCome posso ripristinare la Password di default da Amministratore sul sistema Pronto Lite/Plus?Problematiche legate a gestori che emulano linee ISDN (fastweb, BT, ecc..)Non riesco a mettere in attesa mediante il tasto "R" del telefono collegato al V-6016Documento di conformità per gestori che emulano linee ISDN (Fastweb, BT, Tiscali, Colt)Non ricevo le notifiche di avvenuta ricezione o fallimento del Fax
tag_cloud
2010   6060   access   adattatore   address   aggiornamento   amministratore   android   antivirus   apple   arrivo   attesa   attivazione   audio   autenticazione   blackvoib   bloccoclient   BT   carrier   chiamata   chiamate   citofonica   citofono   client   clientip   codice   codici   colt   copertina   csipsimple   dect   deregistrazione   down   email   error   errore   esporta   esportazione   fastweb   fax   faxclient   firmware   fw   gateway   GSM   hold   http   indirizzo   ingresso   installazione   integrazione   interfaccia   interfacciacitofonica   invio   involontaria   ip   isdn   ivr   kirk   LCR   led   licenza   linea   linee   login   logout   memorykey   migrazione   mode   multipla   notifica   outlook   password   pathfakepath   pending   periferica   periferiche   platform   plugin   polycom   portech   post   pronto   proxy   pubblico   realtek   registrazione   remota   remoto   report   reset   ricezione   risposta   rispostainvolontaria   rotta   rotte   schede   schermatablu   secondaria   segnale   server   services.cgi   serviziopbxnoninstallato   sessionchat   sim   sip   smartphone   spostamento   squillo   stampa   suoneria   superamministratore   tastiera   tastoR   telnet   tiscali   udp   update   usb   V-6015   V-6016   V-6017   V-6019   V-IP400p   v6015   versione   violation   voip   voispeedfax   wan   windows8
Autenticazione tramite interfaccia services.cgi

Innanzitutto è d'obbligo fare una premessa dicendo che l'interfaccia services.cgi è a tutti gli effetti un web service. Come tutti i web service sfrutta il protocollo http per il trasporto e un protocollo proprietario per lo strato di servizio (non sono supportati protocolli standard come SOAP, RPC, etc.). Inoltre, in quanto web service, si presuppone che tale interfaccia venga utilizzata da applicazioni di terze parti e non direttamente da browser.

 

Infatti un malinteso comune è quello di pensare che un link che lancia un particolare comando all'interfaccia services.cgi possa essere inserito in una pagina web e cliccato da un utente. Una cosa del genere non potrà andare mai a buon fine in maniera trasparente per l'utente, poichè il browser richiederà esplicitamente l'autenticazione e l'utente riceverà l'output "grezzo" del comando. Quindi un tale approccio è una forzatura e si potrebbe pensare di utilizzarlo solamente per simulazioni o test.

 

Ciò detto, la questione dell'autenticazione può essere affrontata in un unico modo, e cioè rifacendosi allo standard http, il quale (come riportato da RFC) impone di specificare le credenziali nell'header della richiesta. Questo significa che chi sviluppa l'applicazione di terze parti, prima di effettuare la GET http, nel codice sorgente deve in qualche modo costruire l'header http con le credenziali di amministratore del server voispeed. Chiaramente, come farlo dipende dal particolare linguaggio / oggetto / libreria utilizzato dallo sviluppatore dell'applicazione.

 

Riportiamo di seguito un esempio base di come effettuare l'autenticazione in PHP:

 

<?php 
function connectToURL($addr, $port, $path, $user="", $pass="", $timeout="30") 
{ 
 
$urlHandle = fsockopen($addr, $port, $errno, $errstr, $timeout); 
 if (
$urlHandle) 
 { 
  
socket_set_timeout($urlHandle, $timeout); 
  if (
$path) 
  { 
   
$urlString = "GET $path HTTP/1.0\r\nHost: $addr\r\nConnection: Keep-Alive\r\nUser-Agent: MyURLGrabber\r\n"; 
   if (
$user) 
    
$urlString .= "Authorization: Basic ".base64_encode("$user:$pass")."\r\n"; 
    
$urlString .= "\r\n"; 

    
fputs($urlHandle, $urlString); 

    
$response = fgets($urlHandle); 

    if (
substr_count($response, "200 OK") > 0)      // Check the status of the link 
    
{ 
     
$endHeader = false;                     // Strip initial header information 
     
while ( !$endHeader) 
     { 
      if (
fgets($urlHandle) == "\r\n") 
       
$endHeader = true; 
     } 

     return 
$urlHandle;                      // All OK, return the file handle 
    
} 
    else if (
strlen($response) < 15)                // Cope with wierd non standard responses 
    
{ 
     
fclose($urlHandle); 
     return -
1; 
    } 
    else                                            
// Cope with a standard error response 
    
{ 
     
fclose($urlHandle); 
     return 
substr($response,9,3); 
    } 
   } 

   return 
$urlHandle; 
  } 
  else 
  { 
   return 
0; 
  } 
 } 
} 
?>

prev Indietronext

Team System GroupIl gruppo TeamSystem offre la più ampia scelta di software gestionali e servizi per aziende e professionisti. ERP e suite gestionali per aziende, commercialisti, consulenti del lavoro, avvocati, associazioni e amministratori di condominio.

Copyright 2013 © TeamSystem Communication srl | Via Fontanella, n. 38 | 62012, Civitanova Marche (MC) | REA 124883
Reg.Imp Macerata | P.Iva: IT01230130435 - Cap Soc. i.v. € 23.300,00

WEBMASTER

facebook 001 Twitter 001 Linkedin 001 Google Plus 001 YouTube 001