VoIP and Hacking | Consulenza Documentazione

SmartCam, una webcam remota su mobile Symbian

by admin on May.19, 2010, under Hacking, Linux

SmartCam (Smart Phone Web Camera), un progetto ospitato su sourceforge e che si deve a Ionut Dediu, fa veramente poco per presentarsi, tanto è vero che l’unica descrizione che le si riferisce recita solamente: “Turns a Symbian Series 60 phone with bluetooth and camera into a handy webcam ready to use with your PC.”.

Effettivamente lo scopo del progetto è piuttosto chiaro: Trasformare un cellulare basato su Symbian 2 o 3, in una webcam capace di trasmettere ciò che registra via bluetooth, ma non solo, anche via wifi, ad un server. Logicamente, in quest’ultimo caso i layers superiori sono costituiti dal TCP/IP (tanto è vero che il server/monitor si pone in ascolto per default su di una unica porta TCP (la 9361).

Il package è scaricabile da sourceforge ma è naturalmente possibile optare per il tarball dei sorgenti per mantenere la buona abitudine di compilarsi in proprio, e ad hoc, il software opensource.

Oltre allo svantaggio di essere stato costruito per una generica piattaforma i386, il package non offre la disponibilita di un driver specifico (smartcam.ko) che consente l’utilizzo della webcam/cellulare anche come device per skype o ekiga ed altri client con supporto video.

Per questo tipo di utilizzo è necessario effettuare una apposita compilazione del driver (presumendo ad esempio di avere scompattato il tarball dei sorgenti in /opt/):

# cd /opt/smartcam-1.4.0/driver_src
# make -C /lib/modules/`uname -r`/build M=`pwd`

e precaricandolo ad esempio con:

# modprobe videodev
# insmod smartkam.ko

Se non si mira a questo tipo di utilizzo la compilazione normale evita questo passaggio:

I moduli software da installare sugli apparecchi mobili sono invece SmartCamS602ndEd_v1_4.sis oppure SmartCamS603rdEd_v1_4.sis, a seconda della versione Symbian del cellulare.

Ritengo che si possa saltare a piè pari la descrizione dell’attivazione del bluetooth, del relativo pairing, e fare altrettanto per la predisposizione di una interfaccia wireless Master sul server, quando non si voglia utilizzare invece un accesspoint separato.

Il funzionamento del software è semplicissimo:
Una volta installato lato server basta lanciarlo e specificare in File -> Settings se si vuole attuare una connessione tipo Bluetooth oppure TCP (wifi).

smartcam1

Ho voluto sperimentare comunque alcune cose particolari, tipo utilizzare il laptop come access point (indirizzo IP 10.0.0.1 ) del cellulare e impostare la sua interfaccia ethernet con IP 192.168.1.21, lanciando il server su un’altra macchina della stessa sottorete (192.168.1.22)

Occorre impostare un minimo di routing

Se il cellulare wifi ha un indirizzo 10.0.0.202 dovrà impostare il 10.0.0.1 come proprio gateway predefinito.
L’access point dovra a sua volta attivare l’interfaccia ethernet, e il l’ip forwarding:

# ifconfig eth0 192.168.1.21
# cat /proc/sys/net/ipv4/ip_forward

Il server a sua volta dovrà attivare la propria interfaccia di rete, ed indicare come gateway di default l’altro nodo:

# ifconfig eth0 192.168.1.22
# route add default gw 192.168.1.21

In questo modo banale è possibile connettersi dal cellulare ad un server/monitor ospitato su una macchina diversa da quella che funge da accesspoint, cosa che mi ha permesso di effetture alcune misurazioni sul traffico di rete impegnato:

Occorre specificare che il client su Symbian consente 3 diverse risoluzioni video alla webcam:

Se alla massima risoluzione 320×240 si evidenzia un ampio consumo di banda:

incoming rate circa 800 +/- 20 kbits/sec
outgoing rate circa 24  +/-  2 kbits/sec

alla risoluzione 176×144 il traffico di rete è quantificabile in:

incoming rate circa 400 +/- 20 kbits/sec
outgoing rate circa 16  +/-  2 kbits/sec

alla risoluzione 128×96 il traffico di rete è quantificabile in:

incoming rate circa 180 +/- 20 kbits/sec
outgoing rate circa 8   +/-  1 kbits/sec

l’utilizzo di entrambe le ultime due risoluzioni video lo rende di fatto ampiamente utilizzabile anche con una postazione di controllo assolutamente remota.

Ho voluto infatti provare anche questa tipologia di connessione, nella fattispecie utilizzando due macchine diverse ognuna con la propria connessione PPP sulla stessa ADSL casalinga, ottenendo di fatto due nodi casalinghi con IP pubblici diversi, come è facilmente verificabile dall’output seguente:

# traceroute-nanog 151.65.44.179
traceroute to 151.65.44.240 (151.65.44.240), 30 hops max, 60 byte packets
1 151.23.227.39 (151.23.227.39) 9.517 ms 9.085 ms 8.972 ms
2 10.0.41.1 (10.0.41.1) 9.476 ms 9.220 ms 8.981 ms
3 10.0.31.33 (10.0.31.33) 9.972 ms 9.850 ms 9.886 ms
4 151.65.44.240 (151.65.44.240) 19.318 ms 18.738 ms 19.834 ms

Le due macchine risultavano pertanto attestate pubblicamente su 151.65.42.240 e 151.65.44.179, con l’interfaccia wireless della seconda in modalità master, con IP 10.0.0.1 per poter comunicare via wifi col cellulare di indirizzo 10.0.0.202.
Sulla seconda macchina, per inciso, oltre all’ip_forwarding è stato necessario impostare una regola di ip_tables del tipo:

# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Anche in questa situazione, piuttosto critica, in cui una unica ADSL tipo consumer deve sobbarcarsi in pratica una quantità di traffico doppio rispetto al normale, le due risoluzioni video meno impegnative si sono comportate egregiamente.

Send post as PDF to PDF | PDF Creator | PDF Converter
:, , , , , , , ,

Comments are closed.

Cerchi qualcosa in particolare?

Usa il form qui sotto per cercare nel sito:

Blogroll!

Alcuni links...

Archives

Tutte le entries, in ordine cronologio...