SIP (Session Initiation Protocol)

Session Initiation Protocol (SIP) è un protocollo di controllo (segnalazione), a livello di applicazione, per la creazione, modifica e terminazione di sessioni con uno o più partecipanti.

Queste sessioni includono le chiamate telefoniche su Internet, distribuzione di contenuti
multimedia e conferenze multimediali.

Gli inviti SIP sono utilizzati per creare sessioni che trasportano descrizioni che permettono ai partecipanti di concordare un insieme di tipi di supporti compatibili.

SIP si avvale di elementi chiamati proxy server per instradare le richieste alla posizione attuale dell’utente, autenticare e autorizzare gli utenti per i servizi, implementare un provider di politiche di instradamento delle chiamate, e per fornire funzionalità agli utenti.

SIP fornisce anche una funzione di registrazione che permette agli utenti di caricare le loro attuali locazioni, informazioni utili al proxy server.

SIP funziona nel livello più alto di diversi protocolli di trasporto.

Ci sono molte applicazioni di Internet che richiedono la creazione e la gestione di una sessione, dove con il termine sessione si intende uno scambio di dati tra un’associazione di partecipanti.

L’attuazione di queste applicazioni è complicato dalle pratiche dei partecipanti: gli utenti possono muoversi tra gli endpoint (punti periferici o terminali), essi possono essere indirizzabili da più nomi, e possono comunicare tramite media diversi – a volte contemporaneamente.

Sono stati scritti numerosi protocolli che trasportano in tempo reale varie
forme di dati di sessione multimediali, come voce, video o messaggi di testo.

Il Protocollo di Iniziazione di Sessione (SIP) lavora in concerto con questi protocolli,
abilitando i teminali Internet (chiamati agenti – user agents) a scoprire un altro agente e a concordare con questo una caratterizzazione della sessione che vorrebbero condividere.

Per l’individuazione dei potenziali partecipanti alla sessione, e per altre funzioni, SIP consente la creazione di una infrastruttura di host di rete (chiamati proxy server) a cui l’agente utente può inviare iscrizioni, inviti alle sessioni, e altre richieste.

SIP è un agile strumento di uso generale per la creazione, la modifica e la chiusura le sessioni, che funziona in maniera indipendente dai protocolli di trasporto sottostanti e senza dipendenza dal tipo di sessione che si è stabilito.

(Fonte: Internet Engineering Task Force, rfc 3261. Sull’IETF leggi questo documento introduttivo)

Appunti Linux

Per conoscere l’indirizzo IP di una macchina dato il nome è sufficiente il comando ping:

marcob@jsbach:~$ ping www.google.it
PING www.l.google.com (209.85.143.104) 56(84) bytes of data.

Per la risoluzione inversa, utilizzare il comando dig:

marcob@jsbach:~$ dig -x 209.85.143.104
...
;; QUESTION SECTION:
;104.143.85.209.in-addr.arpa.    IN    PTR

;; ANSWER SECTION:
104.143.85.209.in-addr.arpa. 86135 IN    PTR    dy-in-f104.1e100.net.
...

LDAP

Link utili per la configurazione di OpenLDAP 2.4

http://www.openldap.org/doc/admin24/quickstart.html

http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-it-4/ch-ldap.html

PHP Excel

Errore in cui sono incorso provando la libreria PHPExcel:

marcob@jsbach:~$ tail -f  /var/log/apache2/error.log
[Thu Mar 31 16:40:26 2011] [error] [client 127.0.1.1] 
PHP Fatal error: Uncaught exception 'Exception' with message 
'Could not close zip file
/var/www/Classes/PHPExcel/Tests/01simple.xlsx.' in
/var/www/Classes/PHPExcel/Classes/PHPExcel/Writer/Excel2007.php:344
Stack trace:n#0 /var/www/Classes/PHPExcel/Tests/01simple.php(77):
PHPExcel_Writer_Excel2007->save('/var/www/Classe...')
#1 {main}
thrown in 
/var/www/Classes/PHPExcel/Classes/PHPExcel/Writer/Excel2007.php
on line 344

In sostanza non riesco a scrivere nella directory

/var/www/Classes/PHPExcel/Tests/

Soluzione:

root@jsbach:/var/www/Classes/PHPExcel# chmod 775 Tests/
root@jsbach:/var/www/Classes/PHPExcel# chgrp www-data Tests/

L’errore sparisce e il file viene salvato.

150° anniversario dell’Unità d’Italia

150° Anniversario dell'Unità d'Italia

Simon Van Der Meer

Il 4 marzo scorso è scomparso Simon Van Der Meer, ingegnere tra le personalità più importanti nella storia del CERN di Ginevra.

Aveva vinto il premio Nobel 1984 assieme a Carlo Rubbia per gli esperimenti che avevano confermato l’esistenza delle particelle Z e W, i bosoni dell’interazione debole, e credo sia l’unico ingegnere ad essere stato insignito con un premio così importante nell’ambito della Fisica. Il suo contributo alla scoperta fu l’invenzione e la realizzazione del raffreddamento stocastico applicato all’acceleratore SPS (Super Proton Synchrotron), un metodo per stabilizzare i fasci di protoni e antiprotoni.

Il CERN gli ha dedicato un elogio nel sito istituzionale.

Nel sito http://nobelprize.org si trovano la lezione di Van Der Meer sul raffreddamento stocastico e la sua autobiografia.

Energie rinnovabili

È un tema che mi sta a cuore da qualche anno, ho anche frequentato un corso di progettazione di impianti fotovoltaici nel 2008 a Padova, al Collegio degli Ingegneri.

Il decreto firmato dal Presidente della Repubblica il 7 marzo sembra mettere in crisi il settore. Il Governo giura di no, ma gli addetti al settore invece dicono che è vero.

Ho cercato di farmi un’idea autonomamente, leggendomi sia la direttiva 2009/28/CE (che il decreto recepisce), che il decreto legge. Ammetto di fare un po’ di fatica a districarmi nel ginepraio di titoli, articoli, commi riferimenti incrociati (suggerimento al parlamento: PERCHÉ NON SCRIVETE LE LEGGI IN HTML COSÌ SI PUÒ LEGGERE UN RIFERIMENTO CLICCANDOCI SOPRA?), per cui ho cercato qualche aiuto. Nel sito del Sole 24 ore ci sono alcuni articoli, come questo, che evidenziano i punti salienti.

Si intitola: Meno incentivi sul fotovoltaico.

E’ di parte? Credo di poter dire di no: il quotidiano è l’organo della Confindustria che ha subito definito buono il decreto. Ma mi pare di capire che le cose non siano, però, così buone.

Può essere utile approfondire, ma l’impressione non è positiva.

Umask e sticky bit

Veloce incursione nel mondo Linux/Unix.

umask = 777 – diritti di lettura / scrittura (in ottale)

il valore umask è il complemento a 128 dei permessi di scrittura. Ci dice quali permessi vogliamo negare sul file più che concedere.

Ad esempio se una directory è leggibile / scrivibile / eseguibile dal proprietario e solo leggibile/eseguibile dalresto del mondo (il gruppo e tutti gli altri), si ha:

  • proprietario = 111 = 7
  • gruppo = 101 = 5
  • altri = 101 = 5

per cui umask = 777 – 755 = 022 (ottale)

Se anche il gruppo dovesse poter scrivere, si deve impostare la directory con

chmod 775 /path/to/dir

ossia umask = 777 – 775 = 002.

umask è un comando Unix che altera permanentemente i diritti di accesso ai file / directory creati dopo il comando per quella shell. Esempio:

marcob@jsbach:~$ umask 022
marcob@jsbach:~$ touch nuovo
marcob@jsbach:~$ ll nuovo 
-rw-r--r-- 1 marcob marcob 0 2011-03-07 15:28 nuovo
marcob@jsbach:~$ umask 002
marcob@jsbach:~$ touch nuovo1
marcob@jsbach:~$ ll nuovo*
-rw-r--r-- 1 marcob marcob 0 2011-03-07 15:28 nuovo
-rw-rw-r-- 1 marcob marcob 0 2011-03-07 15:28 nuovo1

Ma cosa vuol dire:

drwxrwxrwt  15 root root  4096 2011-03-07 14:55 tmp/

cioè cosa significa la t?

Significa che per la directory /tmp/ è stato impostato lo sticky bit (bit adesivo) che fa in modo che nella directory tutti possano scrivere ma solo i proprietari dei file possano rinominarli o cancellarli.

Per i file: il kernel, quando carica nella swap area un file eseguibile, non lo rimuove (lo incolla letteralmente alla swap area) nemmeno quando ha terminato l’esecuzione. Questo, soprattutto alle origini, per fare in modo che i programmi più frequentemente usati dall’utente rimanessero in memoria per avviarli più rapidamente.

Sull’uso di tablespaces separati per dati e indici

Mi sono imbattuto in questo interessantissimo botta e risposta nel sito dell’Oracle.

La domanda è: sarà più performante il database nelle operazioni di lettura e scrittura (e magari anche per i backup) se mettiamo tabelle e indici in tablespace separati?

I DBA con cui lavoro spesso adottano questo espediente per avere prestazioni migliori, ma alla Oracle stessa non ritengono così certa questa convinzione,  che, a quanto pare, risulta molto diffusa. La separazione può essere utile, ma non per le ragioni per cui di solito viene adottata.

Leggetevi la discussione in questo interessante forum: Ask Tom Oracle … almeno fino ad un certo punto rimane lucida; poi, come capita spesso nei forum, si va a farfalle.

“Howto” per l’installazione di un sistema LAOP (Linux Apache Oracle PHP)

Ho avuto la necessità di realizzarmi un ambiente di sviluppo basato su Linux, Apache e PHP ma con il vincolo di adottare una base dati Oracle.

Oracle da’ la possibilità di utilizzare un server ad uso test Oracle eXpress Edition. Il sistema che ne deriva l’ho chiamato LAOP, ricordando il molto più popolare ambiente LAMP che si basa sul DBMS MySQL (che è di proprietà di Oracle).

Ho seguito un utile howto sull’ottimo sito http://www.danilovizzarro.it/ ma ho voluto “vivisezionare” gli script di automazione per capire ciò che facevano. Ne è risultato un piccolo howto, redatto ovviamente in LaTeX ;-), che volentieri metto a disposizione con la speranza che risulti utile.