Subscribe:

Labels

Featured Posts

marți, 28 aprilie 2015

Forwardare mail ca mesaj Jabber

Am avut nevoie sa pot forwarda mailurile primite catre un anumit cont de email catre un cont jabber. Eu am folosit ca server de email Postfix si ca server de Jabber Openfire. Daca nu vreti sa instalati un server de jabber se pot trimite mesajele catre mesageria de la google care ofera un astfel de protocol.

Pentru inceput aveti nevoie un Postfix functional configurat de tipul maildir:
home_mailbox = Maildir/
1. Primul pas: Trebuie sa realizati o setare astfel incat sa forwardati mailurile respective catre un script. Exista mai multe metode de a realiza asta, eu am ales-o pe cea mai simpla: Am creea fisierul .forward in home-ul utilizatorilui astfel incat mailul va fi forwardat catre script-ul respectiv:

"| php /home/cacti/mail.php"
2. Functionarea scriptului mail.php se bazeaza pe doua clase PHP:
mime_parser.php
rfc822_addresses.php
Le descarcati si trebuie sa le furnizati ca referinta pentru scriptul nostru:

#!/usr/bin/php
ignore_syntax_errors = 1;
$parameters=array(
        'Data'=>$email,
);

$mime->Decode($parameters, $decoded);

//---------------------- GET EMAIL HEADER INFO -----------------------//

//get the name and email of the sender
$fromName = $decoded[0]['ExtractedAddresses']['from:'][0]['name'];
$fromEmail = $decoded[0]['ExtractedAddresses']['from:'][0]['address'];

//get the name and email of the recipient
$toEmail = $decoded[0]['ExtractedAddresses']['to:'][0]['address'];
$toName = $decoded[0]['ExtractedAddresses']['to:'][0]['name'];

//get the subject
$subject = $decoded[0]['Headers']['subject:'];

$removeChars = array('<','>');

//get the message id
$messageID = str_replace($removeChars,'',$decoded[0]['Headers']['message-id:']);

//get the reply id
$replyToID = str_replace($removeChars,'',$decoded[0]['Headers']['in-reply-to:']);


//---------------------- FIND THE BODY -----------------------//

//get the message body
if(substr($decoded[0]['Headers']['content-type:'],0,strlen('text/plain')) == 'text/plain' && isset($decoded[0]['Body'])){

        $body = $decoded[0]['Body'];

} elseif(substr($decoded[0]['Parts'][0]['Headers']['content-type:'],0,strlen('text/plain')) == 'text/plain' && isset($decoded[0]['Parts'][0]['Body'])) {

        $body = $decoded[0]['Parts'][0]['Body'];

} elseif(substr($decoded[0]['Parts'][0]['Parts'][0]['Headers']['content-type:'],0,strlen('text/plain')) == 'text/plain' && isset($decoded[0]['Parts'][0]['Parts'][0]['Body'])) {

        $body = $decoded[0]['Parts'][0]['Parts'][0]['Body'];

}
//print out our data
echo "

Message ID: $messageID

Reply ID: $replyToID

Subject: $subject

To: $toName $toEmail

From: $fromName $fromEmail

Body: $body
";

$file = '/tmp/mail';
$current = file_get_contents($file);
file_put_contents($file, Subiect.': '.$subject."\n".Body.': '."\n".$body);
$output = "
".shell_exec("/home/cacti/notify_via_jabber admin")."
"; echo $output; //show all the decoded email info print_r($decoded);
Si scriptul perl care practic este folosit pentru conectarea la serverul Jabber si trimiterea mesajelor: Dupa cum vedeti scripturile nu sunt ale mele, eu doar le-am facut sa functioneze pentru problema mea.
#!/usr/bin/perl -w
#
# script for nagios notify via Jabber / Google Talk Instant Messaging
#   using XMPP protocol and SASL PLAIN authentication.
#
# author: Andrew Elwell 
# based on work by Thus0  and  David Cox
#
# released under the terms of the GNU General Public License v2
# Copyright 2007 Andrew Elwell.

use strict;
use Net::XMPP;

## Configuration
my $username = "cacti";
my $password = "parola";
my $resource = "cacti";
my $filename = "/tmp/mail";
## End of configuration


my $len = scalar @ARGV;
if ($len ne 1) {
   die "Usage...\n $0 [jabberid] [message]\n";
}
my @field=split(/,/,$ARGV[0]);
#------------------------------------

# Google Talk & Jabber parameters :

my $hostname = 'host';
my $port = 5222;
my $componentname = 'host';
my $connectiontype = 'tcpip';
my $tls = 0;
#pentru google $tls = 1;
#------------------------------------

my $Connection = new Net::XMPP::Client();

# Connect to talk.google.com
my $status = $Connection->Connect(
       hostname => $hostname, port => $port,
       componentname => $componentname,
       connectiontype => $connectiontype, tls => $tls);

if (!(defined($status))) {
   print "ERROR:  XMPP connection failed.\n";
   print "        ($!)\n";
   exit(0);
}

# Change hostname
my $sid = $Connection->{SESSION}->{id};
$Connection->{STREAM}->{SIDS}->{$sid}->{hostname} = $componentname;

# Authenticate
my @result = $Connection->AuthSend(
       username => $username, password => $password,
       resource => $resource);

if ($result[0] ne "ok") {
   print "ERROR: Authorization failed: $result[0] - $result[1]\n";
   exit(0);
}

my $content;
    open(my $fh, '<', $filename) or die "cannot open file $filename";
    {
        local $/;
        $content = <$fh>;
    }
    close($fh);
# Send messages
foreach ( @field ) {
$Connection->MessageSend(
        to       => "$_\@$componentname",
        resource => $resource,
        subject  => "Notification",
        type     => "chat",
        body     => $content);
}

Aflaţi mai multe >>

marți, 18 noiembrie 2014

Cum creez un nou listener pe Oracle 10g


Exista situatii care cer adaugarea unui nou listener in oracle. Acesta este un pas simplu care implica cateva configurari si un nivel superior de acces la baza de date. Pasii urmatori sunt pentru oracle 10g instalat pe linux.
Pentru a introduce noul listener procedati astfel:
In fisierul $oracle_home/network/admin/listener.ora introduceti urmatoarea configuratia noua:
 

vi $oracle_home/network/admin/listener.ora

LISTENER_NUME = 
  (DESCRIPTION =
     (ADDRESS = (PROTOCOL = TCP)(HOST = 10.0.0.1)(PORT = 1621))
   )

SID_LIST_LISTENER_NUME =
  (SID_LIST =
    (SID_DESC =
       (GLOBAL_DBNAME = nume_baza)
       (ORACLE_HOME = /a01/home)
       (SID_NAME = sid)
     )
   )
Note:
Daca doriti sa va conectati prin noul listener pe toate bazele puteti renunta la partea a doua SID_LIST, insa daca vreti sa folositi o singura baza prin acest listener trebuie sa-i introduceti sid-ul aici.  
Acest fisier se poate modifica si in mod grafic folosind utilitarul netmgr.

Startarea Listener-ului:

lsnrctl status LISTENER_NUME
lsnrctl start LISTENER_NUME

Ultimul pas este update-ul spfile pentru ca baza sa afle ca poate accepta conexiuni si pe noul port:

sqlplus / as sydba

alter system set local_listener="(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.0.0.1)(PORT=1521))
  2  (ADDRESS=(PROTOCOL=TCP)(HOST=10.0.0.1)(PORT=1621)))" scope=BOTH;
 
Note:
Daca la rularea comenzii show parameter listener nu obtineti nicio configuratie inseamna ca folositi parametrii default pentru listener. Astfel incat trebuie sa introduceti listener-ul default (cel vechi, inca folosit) precum si noul listener.
Aflaţi mai multe >>

joi, 19 iunie 2014

dotsmart mediaplayer

Va spuneam intr-un post anterior ca o sa testez mai multe mediaplayere bazate pe xbmc. Astazi am dat peste un mediaplayer realizat in Romania. Are la baza linux pentru ca este o certitudine faptul ca xbmc functioneaza cel mai bine pe linux. Pentru teste am beneficiat de un sistem care foloseste ultimul XBMC 13.1 Gotham.

Sistemul arata destul de simplu si beneficiaza de o conectica mai mult decat rezonabila: 3 porturi USB, 1 slot card microSD, HDMI, Retea atat wired cat si wireless.

 
Telecomanda ce este livrata cu sistemul ofera toate optiunile de care aveti nevoie chiar daca nu beneficiaza de o tastaura alfanumerica. Dar cui ii trebuie asa ceva cand XBMC se integreaza foarte bine cu XBMC Remote pentru Apple sau cu Yatse XBMC Remote pentru Android.

Inainte de acest mediaplayer am folosit XBMC instalat pe PC, pe Raspberry, chiar si Boxee. Dotsmart nu are intradevar puterea unui PC insa se apropie destul de mult, astfel incat totul este foarte fluent, timpii de asteptare nu sunt mari iar experienta vizuala la rezolutie FullHD este completa.
Insa ceea ce recomanda si defineste un sistem XBMC raman Addon-urile cu ajutorul carora continutul multimedia al site-urilo de filme si seriale este accesibil foarte rapid, fara reclame sau intreruperi. Iar pretul este zic eu, unul acceptabil avand in vedere preturile mediaplayerelor titrate care nu ofera nici jumatate din experienta Dotsmart.

In momentul de fata este in oferta pentru lansare, sistemul putand fi achizitionat la comanda pe site-ul http://www.dotsmart.ro ce ofera un pret special.


Aflaţi mai multe >>

vineri, 18 octombrie 2013

Intalare Subsonic web player raspberry pi

instalare subsonic raspberry pi 
Daca aveti o colectie impresionanta de muzica si vreti sa fie accesibila de oriunde puteti instala Subsonic un program ce ruleaza sub java cu ajutorul caruia prin playerelor interne puteti accesa si reda online muzica dintr-un anumit folder. Este un programel foarte folositor si foarte usor de instalat. Prima data am instalat Raspbian. Tutoriale de instalare Raspbian se gasesc gramada pe net asa ca nu o sa insist.

Parola pentru raspbian    pi:raspbian

ssh pi@ip_raspbian
apt-get update
apt-get dist-upgrade

Nu avem nevoie de interfata grafica si pentru a mai elibera spatiu scapam de ea

sudo apt-get remove libx11-6 libgtk-3-common xkb-data lxde-icon-theme raspberrypi-artwork penguinspuzzle
sudo apt-get autoremove

Daca vream sa ne autentificam ca user root trebuie initial sa ne autentificam ca userul pi apoi sa schimbam parola userului root!

sudo passwd root

Eu mi-am montat prin samba folderul ce contine muzica alterand /etc/fstab/

//ip-store/WD-My-Book-1140-10031 /torrent cifs username=username,password=password,uid=subsonic,gid=users,forceuid,forcegid 0 0

 Prima data creem userul subsonic

sudo adduser subsonic

Instalam Java si Subsonic

sudo apt-get install oracle-java7-jdk

In momentul scrierii acestui tutorial exista versiunea 4.8

cd /home/pi/
sudo wget http://optimate.dl.sourceforge.net/project/subsonic/subsonic/4.8/subsonic-4.8.deb -O subsonic.deb
sudo dpkg -i subsonic.deb
sudo nano /etc/default/subsonic


Aici adaugam userul cream anterior si dam restart la subsonic

sudo service subsonic restart

Pentru ca nu functioneaza foarte bine cu codecurile existente instalam ffmpeg si lame:

sudo apt-get install ffmpeg
sudo rm /var/subsonic/transcode/ffmpeg
sudo cp /usr/bin/ffmpeg /var/subsonic/transcode
sudo apt-get install lame
sudo rm /var/subsonic/transcode/lame
sudo cp /usr/bin/lame /var/subsonic/transcode


Lansam aplicatie la urmatorul link:

ip_raspberry:4040

Pentru activarea SSL se procedeaza astfel:
Se genereaza certificatul autosemnat:

sudo keytool -genkey -alias subsonic -keyalg RSA -dname "CN=HOSTNAME,OU=subsonic,O=subsonic,L=CITY,S=STATE,C=COUNTRY" -validity 3560 -keystore /etc/ssl/certs/subsonic.keystore -storepass subsonic -keypass subsonic

In mod normal puteti schimba HOSTNAME, OU, O, L , S, si C cu cele potrivite dumneavoastra la fel si parola
Apoi in /usr/bin/subsonic se introduc urmatoarele linii:

-Dsubsonic.ssl.keystore=/etc/ssl/certs/subsonic.keystore \
-Dsubsonic.ssl.password=subsonic \


Iar in /etc/default/subsonic se editeaza urmatoarele optiuni:

SUBSONIC_ARGS="--port=0 --https-port=5000 --max-memory=100"

Restartam serviciul si accesam noul port:

sudo service subsonic restart

Pentru a inregistra produsul si a depasi perioada de testare se procedeaza ca in linkul de mai jos:
http://www.torrent-invites.com/seedbox-tutorials/232744-using-subsonic-dont-want-enable-all-features-donation.html

Deoarece Subsonic nu functioneaza foarte bine pentru fisiere flac trebuie sa:
Instalam flac apt-get install flac
mergem in /var/subsonic/transcode si creem simplink pentru flac:
ln -s "$(which $flac)"

Modificam setarile de transcodare pentru fisiere flac:
Name Convert from Convert to Step 1 Step 2
mp3 default ... NOT flac ... mp3 ffmpeg ...  
mp3 flac flac mp3 flac --silent --decode --stdout %s lame --silent -h -b %b -


Pentru modul jukebox (redarea fisierelor audio prin modulul audio intern al lui Raspberry):

sudo adduser subsonic audio
nano /usr/bin/subsonic


Deasupra liniei -verbose:gc \ se adauga

-Djavax.sound.sampled.SourceDataLine=#ALSA \

Ultimul pas:
1 = 3.5mm jack
2 = HDMI port
3 = Default
sudo amixer -c 0 cset numid=3 x
sudo alsactl store

Si apoi se seteaza in interfata web la Settings/Players un nou player de tip jukebox.

Enjoy some pics!


Aflaţi mai multe >>

vineri, 30 august 2013

Instalare ownCloud

ownCloud este asa cum arata si numele un program de tip Dropbox care functioneaza dupa aceleasi principii doar ca nu este un sistem deschis (adica trebuie sa existe o persoana ce va creea conturi pentru utilizatori sau se vor folosi conturile deja existente de exemplu intr-un sistem LDAP). Dar cel mai important de mentionat este ca ownCloud este opensource, exista clienti pentru Android sau iOS si pentru desktop Windows,OS X, sau Linux.

In continuare am instalat aceasta aplicatie pe SLES 11 sp2 cu php 5.3(important: php53 din SLES 11 sp2 are o problema la scriptul de upload al fisierelor asa ca pentru a functiona aplicatia a fost nevoie sa fac un upgrade al sistemului de operare SLES 11 sp3 care nu mai are aceasta problema)

Module php: 
apache2-mod_php53
php53
php53-fileinfo
php53-ldap
php53-mysql
php53-zip
php53-zlib
php53-mbstring

Acesta se instaleaza ca oricare aplicatie web, se descarca de aici si se dezarhizeaza
tar -xvf owncloud-5.0.10.tar.bz2
Se transfera continutul arhivei in folderul de unde serveste serverul web, in cazul apache-ului din SLES /srv/www/htdocs
Folderul owncloud trebuie sa aiba permisiunile wwwrun:www
Daca nu sunt trebuiesc date:
sudo chown -R wwwrun:www owncloud

Pe server trebuie sa existe si mysql functional sau oricare alta baza de date suportata de program si trebuie creeat userul si baza pentru acesta:

mysql -u root -p
mysql> CREATE DATABASE owncloud_db;
mysql>GRANT ALL ON owncloud_db.* TO 'owncloud_user'@'localhost' IDENTIFIED BY 'password';

Ultimul pas este acela de a merge catre linkul aplicatiei pentru a incepe folosirea programului. Ne va solicita o parola pentru contul de admin si setarile de conectare la baza de date.

Pentru a realiza autentificarea cu ldap trebuie sa activam pluginului de ldap din interfata administratorului apoi vom intoduce setarile de conectare la serverul ldap.
Aflaţi mai multe >>

vineri, 23 august 2013

Transferare agenda telefonica Nokia-Samsung

 De curand am facut trecerea de la Nokia la Samsung si m-am lovit de urmatoarea problema:
Cum sa imi tansfer contactele si alte informatii personale catre noul telefon?

  1. Primul pas este instalarea Nokia PC Suite sau mai noua aplicatie Nokia Suite
  2. Conectarea la computer se face prin doua metode: cablu usb sau bluetooth
  3. Cel mai important pas este realizarea unui backup cu ajutorul programului descarcat anterior. Backupul poate fi doar la contacte pentru ca acestea ne intereseaza.
  4. Descarcarea si instalarea programului NBU Explorer
  5. Deschidem backupul creat anterior. Dupa deschidere NBU Explorer ne arata poate fisierele continute dar pe categorii. Astfel selectam doar contactele si le exportam local.
  6. Alt pas foarte important este concatenarea tuturor fisierelor independente intr-un singur fisier pentru a nu face importul pentru fiecare contact individual. Se deschide un Command Promt cmd.exe si se concateneaza fisierele:
  7. copy *.vcf all.vcf
  8. Urmatorul pas este instalarea programului kies pentru importul contactelor pe samsung. 
Aflaţi mai multe >>

marți, 26 martie 2013

Sip Nortel(Avaya) 1140e

Nortel este o compania Canadiana care a produs intre anii 1895-2009 o mare varietate de echipamente si sisteme de comunicatii. In decembrie 2009 Nortel a fost cumparat de mai tanara companie americana Avaya si toate echipamentele produse dupa aceasta data au fost branduite Avaya. Un lucru surprinzator este faptul ca Avaya nu a oprit suportul pentru echipementele Nortel existente pe piata ci a adus chiar si imbunatatiri.
Aflaţi mai multe >>