Posts Tagged ‘asterisk’
Konversi .wav ke .gsm
Saat saya ingin membuat fitur IVR (Interactive Voice Response) di asterisk, saya harus membuat file suara yang berekstensi .gsm sedangkan file rekaman yang saya miliki berekstensi .wav. Baca dari tutorial asterisk, ternyata untuk konversi di linux kita bisa memakai aplikasi sox.
Untuk instalasi sox cukup mudah, tinggal ketik :
brokenz@brokenz:~$ sudo aptitude install sox
setelah selesai menginstall, cara menggunakan untuk konversi dari .wav ke .gsm tinggal ketik :
brokenz@brokenz:~$ sox namafile.wav -r 8000 -c1 namafile.gsm
sedangkan untuk mengkonversi .mp3 ke .wav , kita install aplikasi mpg123 setelah install tinggal ketik :
brokenz@brokenz:/var/lib/asterisk/sounds$ mpg123 -w namafile.wav namafile.mp3
Membuat Email Server dengan Postfix
Saat saya ingin menggunakan feature voicemail di asterisk ternyata saya harus membuat email server artikel saya kali ini tidak akan membahas bagaimana konfigurasi voicemail di asterisk, karena akan saya tulis di lain waktu saja.
Langkah Pertama karena saya menggunakan distro Ubuntu ME, maka untuk yang menggunakan distro selain Ubuntu silahkan disesuaikan saja apabila berbeda, install paket yang diperlukan seperti postfix dan mysql.
Paket yang diperlukan dalam tutorial ini antara lain :
Untuk Mengirim email (SMTP) : postfix (Pilih: “Local only”), postfix-tls, postfix-mysql, postfix-doc
Untuk Database user : mysql-client-5.0, mysql-server-5.0
Untuk menerima email (POP3 & IMAP) : courier-base (Pilih: “No”), courier-authdaemon, courier-authlib-mysql, courier-pop, courier-pop-ssl, courier-imap, courier-imap-ssl
Untuk Keamanan Pengiriman dan Penerimaan email : libsasl2, libsasl2-modules, libsasl2-modules-sql, openssl
Untuk Mencegah Virus dan Spam : amavisd-new, spamassassin, clamav, clamav-daemon, zoo, unzip, lha
Untuk tampilan WebMail : squirrelmail, phpmyadmin
Untuk testing tools : telnet
Untuk install:
root@brokenz:~# aptitude install postfix postfix-tls postfix-mysql postfix-doc mysql-client-5.0 mysql-server-5.0 courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl libsasl2 libsasl2-modules libsasl2-modules-sql openssl amavisd-new spamassassin clamav clamav-daemon zoo unzip lha squirrelmail phpmyadmin telnet
Langkah Kedua adalah membuat user, database dan tabel di mysql
root@brokenz:~# mysql -u root -p
password:
mysql>CREATE DATABASE mail;
mysql>CREATE USER 'mailadmin'@'localhost' identified by 'anggora';
mysql>USE mail;
mysql>CREATE TABLE domains (
domain varchar(50) NOT NULL,
PRIMARY KEY (domain) )
TYPE=MyISAM;
mysql>CREATE TABLE forwardings (
source varchar(80) NOT NULL,
destination TEXT NOT NULL,
PRIMARY KEY (source) )
TYPE=MyISAM;
mysql>CREATE TABLE users (
email varchar(80) NOT NULL,
password varchar(20) NOT NULL,
PRIMARY KEY (email) )
TYPE=MyISAM;
mysql>GRANT all ON mail.* TO 'mailadmin'@'localhost';
Langkah Ketiga adalah membuat file yang berfungsi sebagai penunjuk ke database mysql
Buat file dengan nama mysql-virtual_domains.cf
root@brokenz:~# touch /etc/postfix/mysql-virtual_domains.cf
isi file mysql-virtual_domains.cf dg baris-baris dibawah ini:
root@brokenz:~# vi /etc/postfix/mysql-virtual_domains.cf
user = mailadmin
password = anggora
dbname = mail
table = domains
select_field = ‘virtual’
where_field = domain
hosts = 127.0.0.1
Buat file dengan nama mysql-virtual_forwardings.cf yg berisi :
root@brokenz:~# touch /etc/postfix/mysql-virtual_forwardings.cf
isi file mysql-virtual_forwardings.cf dg baris-baris dibawah ini:
root@brokenz:~# vi /etc/postfix/mysql-virtual_forwardings.cf
user = mailadmin
password = anggora
dbname = mail
table = forwardings
select_field = destination
where_field = source
hosts = 127.0.0.1
Buat file dengan nama user mysql-virtual_mailboxes.cf yg berisi :
root@brokenz:~# touch /etc/postfix/mysql-virtual_mailboxes.cf
isi file mysql-virtual_mailboxes.cf dg baris-baris dibawah ini:
root@brokenz:~# vi /etc/postfix/mysql-virtual_mailboxes.cf
user = mailadmin
password = anggora
dbname = mail
table = users
select_field = CONCAT(SUBSTRING_INDEX(email,’@’,-1),’/’,SUBSTRING_INDEX(email,’@’,1),’/’)
where_field = email
hosts = 127.0.0.1
Buat file mysql-virtual_email2email.cf yang berisi :
root@brokenz:~# touch /etc/postfix/mysql-virtual_email2email.cf
isi file mysql-virtual_email2email.cf dg baris-baris dibawah ini:
root@brokenz:~# vi /etc/postfix/mysql-virtual_email2email.cf
user = mailadmin
password = anggora
dbname = mail
table = users
select_field = email
where_field = email
hosts = 127.0.0.1
Pastikan hanya user root & postfix saja yang bisa mengakses file-file yang telah kita buat.
root@brokenz:~# chown root:postfix /etc/postfix/mysql-virtual_*.cf
root@brokenz:~# chmod u=rw,g=r,o= /etc/postfix/mysql-virtual_*.cf
Langkah Keempat adalah membuat user baru untuk system sebagai admin-email
User ini bertugas untuk membuat maildir baru setiap ada user baru yang mendaftar pada mailserver anda
root@brokenz:~# groupadd -g 5000 mail-admin
root@brokenz:~# useradd -g mail-admin -u 5000 mail-admin -d /home/mail -m
root@brokenz:~# mkdir /home/mail
root@brokenz:~# chown -R mail-admin:mail-admin /home/mail
root@brokenz:~# chmod -R u=rwx,g=,o= /home/mail
Langkah Kelima adalah konfigurasi postfix untuk server SMTP
root@brokenz:~# vi /etc/postfix/main.cf
Editlah file tsb, sehingga menjadi seperti dibawah ini:
inet_interfaces = all
myhostname = mail.brokenz.net
mydestination = (kosongi saja)
mynetworks = brokenz.net
virtual_alias_domains =
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_forwardings.cf mysql:/etc/postfix/mysql-virtual_email2email.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_mailboxes.cf
virtual_mailbox_base = /home/mail
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/postfix/smtpd.cert
smtpd_tls_key_file = /etc/postfix/smtpd.key
Testing…
Restart service postfix, dan cobalah untuk mengakses port 25 dengan telnet
root@brokenz:~# /etc/init.d/postfix restart
root@brokenz:~# postfix check
Jika tidak muncul suatu pesan kesalahan, berarti anda sukses…….
root@brokenz:~# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.localdomain.
Escape character is '^]'.
220 mail.brokenz.net ESMTP Postfix (Debian/GNU)
kalo muncul tulisan diatas berarti kita sudah benar
Tekanlah tombol Ctrl+] lalu ketik quit untuk keluar dari sesi telnet,
Session Initiation Protocol (SIP)
SIP adalah peer-to-peer signalling protokol, dikembangkan oleh Internet Engineering Task Force (IETF), yang mengijinkan endpoint-nya untuk memulai dan mengakhiri session komunikasi. Protokol ini didefinisikan pada RFC 2543 dan menyertakan elemen protokol lain yang dikembangkan IETF, mencakup Hypertext Transfer Protokol (HTTP) yang diuraikan pada RFC 2068, Simple Mail Transfer Protokol (SMTP) yang diuraikan pada RFC 2821 dan Session Description Protokol (SDP) yang diuraikan pada RFC 2327.
Arsitektur dari SIP terdiri dari dua komponen yaitu user agent dan servers. User agent merupakan endpoint dari sistem dan memuat dua subsistem yaitu user agent client (UAC) yang membangkitkan request dan user agent server (UAS) yang merespon request. Dua elemen ini dapat dilihat pada Gambar

Arsitektur SIP
SIP server adalah kesatuan fungsi logic , dimana tidak perlu memisahkan alat secara fisik. Fisik dari empat server tersebut yaitu:
- Proxy server merupakan host jaringan yang berperan sebagai perantara yang bertujuan untuk meminta request atas nama client yang lain. Proxy harus bertindak sebagai server dan client, dia harus mengarahkan SIP request pada user agent server dan mengarahkan SIP response pada user agent client. Proxy Server juga berfungsi untuk melakukan ruting, memastikan requests dapat disampaikan pada yang berhak menerima dan juga membuat kebijakan seperti meyakinkan bahwa pemakai tertentu diijinkan untuk melakukan panggilan.
- Redirect Server merupakan kesatuan logika yang mengarahkan suatu klien pada perangkat pengganti dari Uniform Resource Indicators (URIs) untuk menyelesaikan tugas request.
- Registrar Server menerima dan memproses pesan pendaftaran yang mengijinkan lokasi dari suatu endpoint dapat diketahui keberadaannya. Registrar Server ini kerjanya berhubungan dengan Location Server.
- Location Server menyediakan service untuk database abstrak yang berfungsi mentranslasikan alamat dengan data / keterangan yang ada pada domain jaringan.
Format Messages pada SIP
Messages yang terdapat pada SIP didefinisikan dalam dua format :
1.Request, dikirim dari client ke server yang berisi tentang operasi yang diminta oleh client tersebut.
2.Response, dikirim dari server ke client yang berisi informasi mengenai status dari apa yang diminta oleh client.
Ada enam tipe dari request messages :
1.INVITE menunjukkan bahwa user atau service sedang diundang untuk bergabung dalam session. Isi dari pesan ini akan memasukkan suatu uraian menyangkut session untuk caller yang diundang.
2.ACK mengkonfirmasikan bahwa client telah menerima suatu final response untuk suatu INVITE request dan hanya digunakan di INVITE request.
3.OPTION digunakan untuk query suatu server tentang kemampuan yang dimilikinya.
4.BYE dikirim oleh user agent client untuk menunjukkan pada server bahwa percakapan ingin segera diakhiri.
5.CANCEL digunakan untuk membatalkan suatu request yang sedang menunggu keputusan.
6.REGISTER digunakan oleh client untuk mendaftarkan informasi kontak. Response message berisi status kode, dan keterangan tentang kondisi dari status request tersebut. Nilai-nilai dari kode status yang serupa dengan penggunaan pada HTTP, dibagi dalam enam kategori:
1xx: Provisional, request telah diterima dan sedang melanjutkan proses.
2xx: Success, tindakan dengan sukses diterima, dipahami dan disetujui.
3xx: Redirection, tindakan lebih lanjut diperlukan untuk memproses permintaan ini.
4xx: Client error, permintaan berisi sintak yang salah dan tidak bisa dikenali, oleh server sehingga server tidak dapat memprosesnya.
5xx: Server error, server gagal untuk memproses suatu permintaan yang sah.
6xx: Global Failure, permintaan tidak dapat dipenuhi oleh server manapun.


.
.
.
![Siena IV (The Tuscany Series) [Explore] Siena IV (The Tuscany Series) [Explore]](http://static.flickr.com/7083/7320391910_8e527775a2_t.jpg)
