Friday, September 28, 2007

WAP push

-== WAP push ==-

Mungkin kita pernah tiba-tiba mendapatkan pesan singkat seperti SMS berisi link (URL) dan dengan atau tanpa pesan pada ponsel. Pesan itu menunggu konfirmasi dari Anda untuk menerima (accept) atau menolak (cancel), kemudian ketika kita memilih untuk menerima, munculah halaman dengan informasi yang lebih banyak berupa halaman WAP atua mungkin secara otomatis mendownload content.

Kedua jenis kejadian tersebut bisa terjadi dengan adanya WAP push. Push berarti kita disodori oleh informasi tanpa harus meminta informasi tersebut. Disebut WAP push karena informasinya kemudian dapat diakses dengan WAP (Wireless Access Protocol).

WAP push banyak digunakan oleh operator atau content provider untuk mengirimkan content-nya ke subscriber. Hal ini dikarenakan pesan wap push yang dapat berinteraksi langung dengan browser di ponsel sehingga memudahkan pengguna untuk mendownload content untuk kemudian disimpan atau diinstal di ponsel.

WAP push pat digunakan misalnya untuk:

  • Informasi untuk pengiriman mobile content seperti ringtone, gambar atau wallpaper, screensaver, java games, dll
  • Informasi alert misalnya berita harga saham, skor suatu pertandingan bola, dll.
  • Wireless email yaitu alert ketika ada email baru dan memberikan link ke email baru tersebut
  • Notifaksi MMS

Wap push juga dapat digunakan oleh operator telepon selular untuk mengetahui jenis ponsel yang digunakan oleh subscriber-nya.

Jenis wap push yang paling banyak digunakan adalah wap push seperti yang telah dijelaskan diatas yatitu Service Indication (SI).


WAP push merupakan bagian dari spesifikasi WAP 1.2 yang dibuat oleh sebuah organisasi bernama WAP Forum yang sekarang bergabung dalam OMA. Dibawah ini tabel nama dokumen yang menspesifikasikan WAP push

  • Push Architectural Overview - WAP-250-PushArchOverview-20010703-a
  • Push OTA Protocol Specification - WAP-235-PushOTA-20010425-a
  • Push OTA Protocol SIN - WAP-235_100-PushOTA-20011008-a
  • Push OTA Protocol SIN - WAP-235_101-PushOTA-20020612-a
  • Push Access Protocol Specification - WAP-247-PAP-20010429-a
  • Push Access Protocol SIN - WAP-247_100-PAP-20011010-a
  • Push Proxy Gateway Service Specification - WAP-249-PPGService-20010713-a
  • Push Proxy Gateway Service SIN - WAP-249_102-PPGService-20011009-a
  • Push Message Specification - WAP-251-PushMessage-20010322-a
  • WAP Service Indication Specification - WAP-167-ServiceInd-20010731-a
  • WAP Service Indication SIN - WAP-167_103-ServiceInd-20010926-a
  • WAP Service Loading Specification - WAP-168-ServiceLoad-20010731-a
  • WAP Service Loading SIN - WAP-168_103-ServiceLoad-20010816-a
  • WAP Cache Operation Specification - WAP-175-CacheOp-20010731-a
  • WAP Cache Operation SIN - WAP-175_102-CacheOp-20010816-a

Dokumen-dokumen tersebut dapat didownload di sini.


-== Arsitektur dari WAP Push ==-

Elemen-elemen dari arsitektur WAP push adalah

  • PI (Push Initiator) biasanya adalah aplikasi tertentu yang membuat isi (content) dari WAP push yang akan dikirimkan melalui PPG.
  • PPG (Push Proxy Gateway) berfungsi menerima message dari PI untuk kemudian dikirimkan ke mobile station (MS) lewat SMSC, MSC atau SGSN.

Arsitektur yang umum dapat digambarkan sebagai berikut:

ponsel <--- MSC/SGSN <--- SMSC <--- PPG <--- PI

Gambar arsitektur diatas dapat disederhanakan seperti yang digambarkan pada dokumen spesifikasi WP push yaitu

ponsel <--- PPG <--- PI

Untuk berkomunikasi dengan PPG digunakan protokol Push Access Protocol (PAP) yang berbasis protokol HTTP, tetapi ini bukan satu-satunya cara. Beberapa vendor biasanya menyatukan fungsi PPG dengan produk SMSC atau WAP gateway. Cara lain pengiriman WAP push adalah menggunakan protokol SMPP langsung ke SMSC. Pengiriman wap push dari PPG ke ponsel sebenarnya dapat menggunakan SMS, USSD, circuit switch atau packet switch (GPRS) dan disebut push over-the-air (OTA) ptotocol.

-== Jenis-jenis WAP push ==-

WAP push dapat digunakan untuk mengirimkan segala macam tipe content atau MIME media type, tetapi ada 3 jenis push content yang standar, yaitu
  1. SI (Service Indication), pesan singkat muncul pada selpon dan mengunggu konfirmasi user untuk men-download content. Data yang dikirim dari PI melalui PAP akan terdiri dari link dan pesan.
  2. SL (Sevice Loading). content secara otomatis langsung di-download tanpa interaksi dengan user. content. Data yang dikirim dari PI melalui PAP hanya terdiri dari link ke content.
  3. CO (Cache Operation), perintah untuk menghapus (invalidate) objek content yang ada di WAP client cache.
-== Push Access Protocol (PAP) ==-

PAP adalah standar yang digunakan untuk komunikasi PI dengan PPG. PAP didesain menggunakan XML dan dikirimkan menggunakan protokol HTTP. PAP 1.0 mendukung beberapa operasi yaitu:

  • Push Submission ( PI -> PPG ).
    Untuk mengirimkan wap push (content) misalnya SI, SL atau CO.
  • Result Notification ( PPG -> PI )
    Notifikasi yang dikirim PPG jika ada perubahan status pada wap push yang telah dikirimkan PI.
  • Push Cancellation ( PI -> PPG)
    Untuk membatalkan wap push yang dikirimkan PI. Pembatalan ini dapat dilakukan bila wap push belum dikirim ke ponsel oleh PPG.
  • Push Replacement ( PI -> PPG)
    Untuk membatalkan wap push yang dikirimkan PI. Pembatalan ini dapat dilakukan bila wap push belum dikirim ke ponsel oleh PPG.
  • Status Query (PI -> PPG)
    Untuk mengetahui status wap push yang telah dikirimkan PI.
  • Clients Capabilities Query (PI -> PPG)
    Untuk mengirimkan wap push yang nerupakan perintah kepada ponsel untuk mengirimkan informasi kapabilitas ponsel.

Sebuah pengiriman SI atau SL dalam HTTP direpresentasikan dalam sebuah multipart document, oleh karena itu content-type HTTP harus menggunakan multipart/related.

Teks yang dikirimkan dari PI ke PPG terdiri dari tiga entitas:

  1. Control entity yang bersifat mandatory (harus ada), merupakan bagian yang berisi identifikasi ponsel target dan intruksi pengiriman
  2. Content entity merupakan isi yang akan ditampilkan pada MS
  3. Optional capabilities entity

Contoh WAP push SI yang dikirim PI menggunakan PAP:

POST /PAPService.do HTTP/1.1
Host: localhost
Content-Type: multipart/related; boundary=asdlfkjiurwghasf; type="application/xml"

--asdlfkjiurwghasf
Content-Type: application/xml



<pap>
<push-message id="123456@telcoloyo.com">
</push-message></pap><address value="WAPPUSH=+6281000000001/TYPE=PLMN@ppg.telcoloyo.com">



--asdlfkjiurwghasf
Content-Type: text/vnd.wap.si



<si>
<indication id="123@siid.emailku.co.id" href="http://www.emailku.co.id/wml/pap/message.wml">
You've got new Mail!
</indication>
</si>
--asdlfkjiurwghasf
Content-Type: application/xml

<!-- Bagian ketiga: (optional) berisi Client Capabilities -->
--asdlfkjiurwghasf--

Contoh wap push result notification

<?xml version="1.0"?>
<!DOCTYPE pap PUBLIC "-//WAPFORUM//DTD PAP 1.0//EN" "http://www.wapforum.org/DTD/pap_1.0.dtd">
<pap product-name="Nokia Push Proxy Gateway">
<resultnotification-message
push-id="zoo1091175019881:0"
message-state="delivered"
code="1000"
desc="Push Successful"
sender-address="123.123.123.123"
sender-name="a" received-time="2004-07-30T08:06:46Z"
event-time="2004-07-30T08:06:46Z">
<address address-value="WAPPUSH=+3584544101930/TYPE=PLMN@null"/>
<quality-of-service delivery-method="unconfirmed"/>
</resultnotification-message>
</pap>



-== Pengiriman ke telepon selular ==-

PPG mengirimkan content menggunakan Push Over-the-air (Push OTA), dengan transport protokolnya adalah HTTP/WSP.

Pada kasus wap push SL dimana subscriber mendapatkan content langsung tanpa aksi dari subscriber, maka WAP session
antara ponsel dengan operator network harus terjadi dahulu sebelum content bisa dikirimkan.

Jika tidak ada koneksi (WAP session) antara MS dan PPG, maka dikirimkan Session Initiation Request (SIR) (misalnya menggunakan SMS).
SIR dienkapsulasi pada WDP package, untuk kemudian dikirim lewat SMSC. Setelah adanya koneksi barulah content dikirim oleh PPG.

Thursday, September 27, 2007

WAP push lewat SMPP

Awalnya saya bingung dimana saya bisa dapat spesifikasi yang menjelaskan bagaimana WAP push bisa dikirim lewat SMPP (SMS PDU) seperti yang biasa dilakukan oleh Content Provider (CP) untuk mengimkan WAP push ke ponsel lewat operator. Sebelum saya tau spesifikasinya, saya mengerti bagaimana harus mengkontruksi SMS PDU agar menjadi WAP push. Pada dasarnya beberapa parameter datagram header pada SMS PDU perlu diset yaitu:

ESM class diset 0x04 (SM_UDH_GSM)
Data coding diset 0x0F5

Sedangkan body message diisi dengan binary XML dari WAP push Service Indication (SI).

Setelah beberapa lama mencari, barulah saya tau bahwa semua proses tersebut dijelaskan dalam spesifikasi WAP dari WAP forum.
Ternyata semuanya ada di "WAP 2.0 conformance release" yang juga menspesifikasikan WAP push.

WAP 2.0 conformance release memiliki banyak dokumen spesifikasi yang membuat saya malas membacanya. Waktu memperlajari WAP push saya hanya membaca bagian Push functional area, ternyata WAP push terkait dengan functional area lain yaitu spesifikasi-spesifikasi seperti:

- Wireless Session Protocol (WSP) Specification
- Wireless Datagram Protocol (WDP) Specification
- Wireless Binary XML (WBXML) Content Format Specification

Di halaman sebuah forum ini dinjelaskan secara garis besar bagaimana WAP push dikirimkan lewat SMS, sehingga saya tau spesifikasi mana yang menjelaskan tentang WAP push lewat SMPP.
Dengan membaca spesifikasi-spesifikasi tersebut, saya tau kalau WAP push sebenarnya bisa dikirimkan lewat bearer bermacam-macam yaitu SMS, USSD, circuit switch, packet switch (GPRS).

Friday, September 07, 2007

Proyek MVI

Agak bingung pertama kali denger proyek MVI, singkatan apa MVI itu? Ternyata MVI adalah kependekan dari Multi Vendor Integration.

Dari namanya kita bisa tebak proyek seperti apa MVI itu. Pada dasarnya di industri telko banyak operator yang membeli equiptments dan atau solusi dari banyak vendor. Jaringan yang dibangung operator mulai dari radio network, core network dan lain-lain biasanya dipilih dari beberapa supplier untuk mendapatkan yang terbaik. Jaringan multi-vendor seperti itu dapat membuat masalah interoperability, performance maupun keterlambatan project rollout, oleh karena itu solusi MVI menjadi bisnis baru bagi vendor telekomunikasi.

Proyek MVI berarti proyek sistem integrasi yang ditujuannya adalah bagaimana semua sistem dapat saling terintegrasi dan berinteraksi dengan benar dan opmimal. Project MVI pada akhirnya harus memastikan semua komponen network berjalan secara end-to-end karena itu didalamnya termasuk pekerjaan analisis, desain atau re-desain, audit, consulting/advising, testing. Sesuai namanya project ini meliatkan banyak vendor sehingga tantangannya tidak hanya masalah teknis tapi biasanya lebih besar tantangan non-teknisnya.

Followers