Difference between revisions of "ENUM Query di OpenSIPS"

From OnnoWiki
Jump to navigation Jump to search
(New page: Untuk melakukan ENUM Query di OpenSER ada beberapa hal yang perlu dilakukan * Siapkan modul ENUM di konfigurasi OpenSER. * Buat table routing untuk ENUM di konfigurasi OpenSER ==Logika ...)
 
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
Untuk melakukan ENUM Query di OpenSER ada beberapa hal yang perlu dilakukan
+
Untuk melakukan [[ENUM]] Query di OpenSIPS ada beberapa hal yang perlu dilakukan
  
* Siapkan modul ENUM di konfigurasi OpenSER.
+
* Siapkan modul [[ENUM]] di konfigurasi OpenSIPS.
* Buat table routing untuk ENUM di konfigurasi OpenSER
+
* Buat table routing untuk [[ENUM]] di konfigurasi OpenSIPS
  
  
==Logika ENUM Query OpenSER==
+
==Logika ENUM Query OpenSIPS==
  
Perintah ENUM Query di OpenSER pada dasarnya hanya mengubah alamat / URI agar
+
Perintah [[ENUM]] Query di OpenSIPS pada dasarnya hanya mengubah alamat / [[URI]] agar
dari alamat ENUM menjadi alamat URI SIP.  
+
dari alamat [[ENUM]] menjadi alamat URI SIP.  
  
 
Setelah menjadi alamat URI SIP, kita dapat dengan mudah memproses call menggunakan routing SIP yang ada.
 
Setelah menjadi alamat URI SIP, kita dapat dengan mudah memproses call menggunakan routing SIP yang ada.
  
  
==Siapkan Modul ENUM di konfigurasi OpenSER==
+
==Siapkan Modul ENUM di konfigurasi OpenSIPS==
  
Edit file konfigurasi OpenSER /etc/openser/openser.cfg
+
Edit file konfigurasi OpenSIPS /usr/local/etc/opensips/opensips.cfg atau /etc/opensips/opensips.cfg
  
  # vi /etc/openser/openser.cfg
+
  # vi /usr/local/etc/opensips/opensips.cfg
  
 
Masukan beberapa perintah berikut
 
Masukan beberapa perintah berikut
 
  
 
Load module ENUM
 
Load module ENUM
Line 27: Line 26:
  
  
Pada saat ini proses searching ENUM di konfigurasi OpenSER default hanya men-cek sebuah domain ENUM saja.
+
Pada saat ini proses searching [[ENUM]] di konfigurasi OpenSIPS default hanya men-cek sebuah domain ENUM saja.
 
Kita dapat menset domain tersebut menggunakan perintah berikut (misalnya kita menggunakan e164.id),  
 
Kita dapat menset domain tersebut menggunakan perintah berikut (misalnya kita menggunakan e164.id),  
  
Line 35: Line 34:
 
Default domain yang di search adalah e164.arpa.
 
Default domain yang di search adalah e164.arpa.
  
'''domain_suffix''' akan di tambahkan pada nomor ENUM jika belum ada domain suffix-nya pada saat pencarian ENUM menggunakan '''enum_query()'''.
+
'''domain_suffix''' akan di tambahkan pada nomor [[ENUM]] jika belum ada domain suffix-nya pada saat pencarian ENUM menggunakan '''enum_query()'''.
 
'''i_enum_suffix''' digunakan saat melalui pencarian menggunakan '''i_enum_query()'''.
 
'''i_enum_suffix''' digunakan saat melalui pencarian menggunakan '''i_enum_query()'''.
  
 +
==Test ENUM di OpenSIPS==
  
 
+
Routing sederhana untuk test [[ENUM]] di OpenSIPS adalah memaksa semua nomor untuk call ke  
 
+
Echo Test di [[Asterisk]]. Misalnya kita sudah melakukna mapping di Server ENUM agar  
 
 
 
 
==Test ENUM di OpenSER==
 
 
 
Routing sederhana untuk test ENUM di OpenSER adalah memaksa semua nomor untuk call ke  
 
Echo Test di Asterisk. Misalnya kita sudah melakukna mapping di Server ENUM agar  
 
 
nomor +62555666666600 di map menjadi 600@server.asterisk. Maka routing tabel untuk test ENUM adalah,
 
nomor +62555666666600 di map menjadi 600@server.asterisk. Maka routing tabel untuk test ENUM adalah,
  
Line 65: Line 59:
  
  
==Table Routing ENUM di konfigurasi OpenSER==
+
==Table Routing ENUM di konfigurasi OpenSIPS==
  
 +
Versi singkatnya ..
  
Teknik query ENUM yang kemungkinan besar berhasil adalah sebagai berikut
+
if (uri=~"^sip:00[1-9][0-9]*@*") {
 +
    strip(2);
 +
    prefix("+");
 +
};
 +
 +
if (uri=~"sip:\+[0-9]+@*")
 +
        enum_query("e164.id.");
 +
 
 +
 
 +
Versi lengkap, teknik query [[ENUM]] yang kemungkinan besar berhasil adalah sebagai berikut
  
 
  # Somewhere in the route[x] section:
 
  # Somewhere in the route[x] section:
Line 111: Line 115:
 
     enum_query("");
 
     enum_query("");
 
     }
 
     }
 
 
 
 
  
 
==Pranala Menarik==
 
==Pranala Menarik==
  
* [[OpenSER Softswitch]]
+
* [[OpenSIPS]]
* [[VoIP]]
+
* [[OpenSIPS Softswitch]]
[http://www.example.com link title]
+
* [[Compile OpenSIPS]]
 +
* [[OpenSIPS: Cek Konfigurasi]]
 +
* [[OpenSIPS: Demo Dial Plan]]
 +
* [[Menggunakan opensipsdbctl]]
 +
* [[Menggunakan opensipsctl]]
 +
* [[Konfigurasi minimal OpenSIPS]]
 +
* [[OpenSIPS: Demo User]]
 +
* [[Relay ke PSTN Menggunakan OpenSIPS]]
 +
* [[Relay ke Selular Menggunakan OpenSIPS]]
 +
* [[ENUM Query di OpenSIPS]]

Latest revision as of 06:05, 31 December 2013

Untuk melakukan ENUM Query di OpenSIPS ada beberapa hal yang perlu dilakukan

  • Siapkan modul ENUM di konfigurasi OpenSIPS.
  • Buat table routing untuk ENUM di konfigurasi OpenSIPS


Logika ENUM Query OpenSIPS

Perintah ENUM Query di OpenSIPS pada dasarnya hanya mengubah alamat / URI agar dari alamat ENUM menjadi alamat URI SIP.

Setelah menjadi alamat URI SIP, kita dapat dengan mudah memproses call menggunakan routing SIP yang ada.


Siapkan Modul ENUM di konfigurasi OpenSIPS

Edit file konfigurasi OpenSIPS /usr/local/etc/opensips/opensips.cfg atau /etc/opensips/opensips.cfg

# vi /usr/local/etc/opensips/opensips.cfg

Masukan beberapa perintah berikut

Load module ENUM

loadmodule "enum.so"


Pada saat ini proses searching ENUM di konfigurasi OpenSIPS default hanya men-cek sebuah domain ENUM saja. Kita dapat menset domain tersebut menggunakan perintah berikut (misalnya kita menggunakan e164.id),

modparam("enum", "domain_suffix", "e164.id.")
modparam("enum", "i_enum_suffix", "e164.id.")

Default domain yang di search adalah e164.arpa.

domain_suffix akan di tambahkan pada nomor ENUM jika belum ada domain suffix-nya pada saat pencarian ENUM menggunakan enum_query(). i_enum_suffix digunakan saat melalui pencarian menggunakan i_enum_query().

Test ENUM di OpenSIPS

Routing sederhana untuk test ENUM di OpenSIPS adalah memaksa semua nomor untuk call ke Echo Test di Asterisk. Misalnya kita sudah melakukna mapping di Server ENUM agar nomor +62555666666600 di map menjadi 600@server.asterisk. Maka routing tabel untuk test ENUM adalah,

rewriteuri("sip:62555666666600@192.168.0.2");
prefix("+");
enum_query("e164.id.");
route(1);
route[1] {
      # send it out now; use stateful forwarding as it works reliably
      # even for UDP2TCP
      if (!t_relay()) {
              sl_reply_error();
      };
      exit;
}


Table Routing ENUM di konfigurasi OpenSIPS

Versi singkatnya ..

if (uri=~"^sip:00[1-9][0-9]*@*") {
    strip(2);
    prefix("+");
};

if (uri=~"sip:\+[0-9]+@*")
        enum_query("e164.id.");


Versi lengkap, teknik query ENUM yang kemungkinan besar berhasil adalah sebagai berikut

# Somewhere in the route[x] section:
# if you want to make ENUM work with numbers starting with "00",
# use the following to convert "00" it into a "+"
if (uri=~"^sip:00[1-9][0-9]*@example\.net") {
    # strip leading "00"
    # (change example.net to your domainname or skip the stuff after the "@")
    strip(2);
    # (adjust, if your international prefix is something else than "00")
    prefix("+");
};
# check if request uri starts with an international phone
# number (+X.), if yes, try to ENUM resolve in e164.arpa.
# if no result, try in nrenum.net
if (uri=~"sip:\+[0-9]+@example\.net") {
    # (change example.net to your domainname or skip the stuff after the "@")
    if ( !enum_query("e164.arpa.") ) {
        enum_query("nrenum.net.");
    };
}; 


Alternatif lain yang mungkin bisa di kembangkan,


# is this an ENUM destination (leading +?)
if (method=="INVITE" && uri=~"sip:\+[0-9]+ at iptel\.org") {
        if (!enum_query("voice"))       # if parameter empty, it defaults to "e2u+sip"
           enum_query("");             # E2U+sip
   }


Alternatif lain yang mungkin juga di kembangkan,

if (is_from_user_enum()) {
   enum_query("");
   }

Pranala Menarik