[tips] Install Google Chrome di Ubuntu

Default browse Google di Ubuntu adalah Google Chromium. Jika search di apt repos, kita tidak akan menemukan Google Chrome. Dan ternyata caranya harus seperti beikut:

  • menambahkan key:

wget -q -O - \
https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -

  • menambahkan repository:

sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ \
stable main" >> /etc/apt/sources.list.d/google-chrome.list'

  • menginstall Chrome:

sudo apt-get update

sudo apt-get install google-chrome-stable

[tips] Membersihkan Queue Printer di Ubuntu

Hanya karena salah milih driver printer di Ubuntu, malah mengakibatkan queue stuck di icon tray, dan prosesnya tidak bisa dikill begitu saja dari shell console. Setiap kali melakukan kill, proses queue baru akan muncul lagi. Untuk menghapus queue ini caranya masuk ke shell console dan jalankan perintah:

godril@sinanju:~$ lpstat -o
iP2700-series-2         godril          215040   Rab 23 Nov 2016 12:41:47  WIB
godril@sinanju:~$ cancel -a iP2700-series-2

Setelah itu queue langsung bersih.

Menyambungkan Panggilan Dengan cmd Originate()

Jadi intinya ada request begini:

Operator diminta menyambungkan sebuah ekstensi ke nomer PSTN/GSM. Hanya saja, pada saat penyambungan panggilan, si operator tidak perlu harus menunggu sampe panggilan ke PSTN/GSM tersambung dulu lalu transfer call ke ekstensi. Maunya dial, nomer PSTN/GSM, lalu dial ekstensi yang melakukan request, setelah itu operator mengerjakan yang lain lagi.

Saya ngebayangin akan ada dua input, yaitu nomer PSTN/GSM, lalu nomer ekstensi, yang didial sekaligus. Untuk membedakan mana yang nomer PSTN/GSM dan mana nomer ekstensi, perlu dibuat delimiter, dalam hal ini saya memilih dua buah tanda pagar. Jadi jika ingin melakukan dial dengan hasil di atas, cukup dengan (misal): 08123456789##2002.

Karena kebetulan yang panjang digitnya tetap adalah nomer ekstensi (4 digit), ditambah delimiter dua tanda pagar, sementara nomer PSTN/GSM panjangnya bisa berbeda-beda, maka perlu dibagi seperti di dialplan berikut, lalu masing-masing nomer PSTN/GSM dan nomer ekstensi dimasukkan ke variabel terpisah, untuk bisa dijadikan input perintah Originate().

[stextbox id=”grey” mode=”css” shadow=”false” color=”FFFFFF” bgcolor=”000000″]exten =>_XXXXX.##ZXXX,1,NoOp()
same => n,Set(Tujuan=${EXTEN::-6})
same => n,Set(Ekstensi=${EXTEN:-4:4})
same => n,Originate(DAHDI/g0/${Tujuan},exten,from-internal,${Ekstensi},1)
same => n,Hangup()[/stextbox]

di baris Set(Tujuan=${EXTEN::-6}) jika diterapkan ke 08123456789##2002, akan menghilangkan 6 karakter terakhir, yang sisanya adalah nomer PSTN/GSM 08123456789 (karakter ##2002 dihilangkan), lalu dimasukkan ke variale Tujuan.

Set(Ekstensi=${EXTEN:-4:4}) jika diterapkan ke 08123456789##2002, akan menghitung 4 digit dari belakang, dan menghilangkan selain 4 digit tersebut. Selanjutnya 4 digit ini dimasukkan ke variabel Extensi.

Setelah mendapatkan dua variable Tujuan dan Ekstensi, kita bisa menjalankan perintah Originate() di baris:

same =>n,Originate(DAHDI/g0/${Tujuan},exten,from-internal,${Ekstensi},1)

perintah tersebut jika dinterpolasi akan seperti:

same =>n,Originate(DAHDI/g0/08123456789,exten,from-internal,2002,1)

Untuk contoh manipulasi variable bisa dibaca di:

https://wiki.asterisk.org/wiki/display/AST/Manipulating+Variables+Basics

Tips

Untuk membuat dialplan seperti di atas, ada baiknya jika dibuat context khusus, karena dialplan tersebut sangat rentan fraud jika kita tidak berhati-hati. Misal, kita bisa memasukkan dialplan tersebut ke dalam context yang hanya bisa diakses oleh ekstensi khusus operator, atau bisa dengan menambahkan auth password dialplan.

Berikut ini cuplikan dari buku Asterisk™ : The Definitive Guide mengenai contoh digit manipulation:

More Advanced Digit Manipulation
The ${EXTEN} variable properly has the syntax ${EXTEN:x:y}, where x is the starting
position and y is the number of digits to return. Given the following dial string:
94169671111
we can extract the following digit strings using the ${EXTEN:x:y} construct:
• ${EXTEN:1:3} would contain 416
• ${EXTEN:4:7} would contain 9671111
• ${EXTEN:-4:4} would start four digits from the end and return four digits, giving
us 1111
• ${EXTEN:2:-4} would start two digits in and exclude the last four digits, giving us
16967
• ${EXTEN:-6:-4} would start six digits from the end and exclude the last four digits,
giving us 67
• ${EXTEN:1} would give us everything after the first digit, or 4169671111 (if the
number of digits to return is left blank, it will return the entire remaining string)

This is a very powerful construct, but most of these variations are not very common in
normal use. For the most part, you will be using ${EXTEN} (or perhaps ${EXTEN:1} if
you need to strip off an external access code, such as a prepended 9).

Menambahkan IP Phone CISCO 3911 Ke Elastix IP PBX

Latar belakangnya adalah, seorang teman membeli ip phone Cisco 3911 dengan harga murah di toko online, dengan harapan bisa dipasang di kantor dan tersambung dengan IP PBX Asterisk based. Sayangnya, ip phone tersebut sebenarnya IPT untuk Cisco Unified Communication versi 6 atau 5. Halaman web ui ip phone tersebut hanya mencantumkan status network dan tidak ada entry untuk memasukkan informasi user/password maupun alamat registrar.

0900aecd806a2b07_null_null_null_08_02_07-1

Berikut ini cara menambahkan ekstensi 8047 ke Elastix yang memiliki ip address 172.16.1.16:

  • install tftp-server, tftp dan xinetd di Elastix jika belum ada. Tapi selama ini di instalasi Elastix otomatis sudah menyertakan tftpserver dan xinetd.
  • Upload file BOOT3951.0-0-0-9.zzDSP3951.0-0-0-2.zzSIP3951.8-1-4a.loadsSIP3951.8-1-4a.zz, dan XMLDefault.cnf.xml ke direktori /tftpboot.
  • Edit file sipdefault.cnf di baris berikut lalu upload ke direktori /tftpboot.

 [stextbox id=”grey” shadow=”false” color=”FFFFFF” bgcolor=”000000″]

proxy1_address: 172.16.1.16

outbound_proxy: 172.16.1.16 ;

…[/stextbox]

  • Edit file SEP<macaddress>.cnf.xml di baris berikut dan juga upload ke /tftpboot. Karena mac address ip phone Cisco 3911 adalah 001AA11B512A, maka nama filenya adalah SEP001AA11B512A.cnf.xml.

 [stextbox id=”grey” mode=”css” shadow=”false” color=”FFFFFF” bgcolor=”000000″]

<device xsi:type=”axl:XIPPhone” ctiid=”1566023366″>
<deviceProtocol>SIP</deviceProtocol>

<devicePool>
<dateTimeSetting>
<dateTemplate>D-M-YA</dateTemplate>
<timeZone>Arabian Standard Time</timeZone>
<ntps>
<ntp>
<name>172.16.1.16</name>
<ntpMode>Unicast</ntpMode>
</ntp>
</ntps>
</dateTimeSetting>

<callManagerGroup>
<members>
<member priority=”0″>
<callManager>
<ports>
<ethernetPhonePort>2000</ethernetPhonePort>
<sipPort>5060</sipPort>
<securedSipPort>5061</securedSipPort>
</ports>
<processNodeName>172.16.1.16</processNodeName>
</callManager>
</member>
</members>
</callManagerGroup>
</devicePool>

<sipProfile>
<sipProxies>
<backupProxy></backupProxy>
<backupProxyPort></backupProxyPort>
<emergencyProxy></emergencyProxy>
<emergencyProxyPort></emergencyProxyPort>
<outboundProxy></outboundProxy>
<outboundProxyPort></outboundProxyPort>
<registerWithProxy>true</registerWithProxy>
</sipProxies>

<sipCallFeatures>
<cnfJoinEnabled>true</cnfJoinEnabled>
<callForwardURI>x-cisco-serviceuri-cfwdall</callForwardURI>
<callPickupURI>x-cisco-serviceuri-pickup</callPickupURI>
<callPickupListURI>x-cisco-serviceuri-opickup</callPickupListURI>
<callPickupGroupURI>x-cisco-serviceuri-gpickup</callPickupGroupURI>
<meetMeServiceURI>x-cisco-serviceuri-meetme</meetMeServiceURI>
<abbreviatedDialURI>x-cisco-serviceuri-abbrdial</abbreviatedDialURI>
<rfc2543Hold>false</rfc2543Hold>
<callHoldRingback>2</callHoldRingback>
<localCfwdEnable>true</localCfwdEnable>
<semiAttendedTransfer>true</semiAttendedTransfer>
<anonymousCallBlock>2</anonymousCallBlock>
<callerIdBlocking>2</callerIdBlocking>
<dndControl>0</dndControl>
<remoteCcEnable>true</remoteCcEnable>
</sipCallFeatures>

<sipStack>
<sipInviteRetx>6</sipInviteRetx>
<sipRetx>10</sipRetx>
<timerInviteExpires>180</timerInviteExpires>
<timerRegisterExpires>3600</timerRegisterExpires>
<timerRegisterDelta>5</timerRegisterDelta>
<timerKeepAliveExpires>120</timerKeepAliveExpires>
<timerSubscribeExpires>120</timerSubscribeExpires>
<timerSubscribeDelta>5</timerSubscribeDelta>
<timerT1>500</timerT1>
<timerT2>4000</timerT2>
<maxRedirects>70</maxRedirects>
<remotePartyID>false</remotePartyID>
<userInfo>None</userInfo>
</sipStack>

<autoAnswerTimer>1</autoAnswerTimer>
<autoAnswerAltBehavior>false</autoAnswerAltBehavior>
<autoAnswerOverride>true</autoAnswerOverride>
<transferOnhookEnabled>false</transferOnhookEnabled>
<enableVad>false</enableVad>

<stutterMsgWaiting>1</stutterMsgWaiting>
<callStats>false</callStats>
<silentPeriodBetweenCallWaitingBursts>10</silentPeriodBetweenCallWaitingBursts>
<disableLocalSpeedDialConfig>false</disableLocalSpeedDialConfig>
<startMediaPort>16384</startMediaPort>
<stopMediaPort>32766</stopMediaPort>

<sipLines>
<line button=”1″>
<featureID>9</featureID>
<featureLabel>0011</featureLabel>
<proxy>172.16.1.16</proxy>
<port>5060</port>
<name>8047</name>
<displayName>8047</displayName>
<autoAnswer>
<autoAnswerEnabled>2</autoAnswerEnabled>
</autoAnswer>
<callWaiting>3</callWaiting>
<authName></authName>
<AuthUserName></AuthUserName>
<authPassword></authPassword>
<sharedLine>false</sharedLine>
<messageWaitingLampPolicy>1</messageWaitingLampPolicy>
<messagesNumber>*97</messagesNumber>
<ringSettingIdle>4</ringSettingIdle>
<ringSettingActive>5</ringSettingActive>
<contact>0011</contact>
<forwardCallInfoDisplay>
<callerName>true</callerName>
<callerNumber>false</callerNumber>
<redirectedNumber>false</redirectedNumber>
<dialedNumber>true</dialedNumber>
</forwardCallInfoDisplay>
</line>

</sipLines>

<voipControlPort>5060</voipControlPort>
<dscpForAudio>184</dscpForAudio>
<ringSettingBusyStationPolicy>0</ringSettingBusyStationPolicy>

</sipProfile>

<webAccess>1</webAccess>

<loadInformation>SIP3951.8-1-4a</loadInformation>

<capfAuthMode>0</capfAuthMode>
<capfList>
<capf>
<phonePort>3804</phonePort>
</capf>
</capfList>

<certHash></certHash>
<encrConfig>false</encrConfig>

</device>

[/stextbox]

  • Set DHCP server dengan opsi 150 dan diarahkan ke server IP PBX untuk tftpserver.
  • Karena IP phone Cisco 3911 tidak bisa menggunakan username dan password, tambahkan ekstensi 8047 langsung ke sip_custom.conf:

 [stextbox id=”grey” mode=”css” shadow=”false” color=”FFFFFF” bgcolor=”000000″];Cisco IP PHone 3911
[8047]
deny=0.0.0.0/0.0.0.0
secret=
canreinvite=no
context=from-internal
host=dynamic
type=friend
nat=yes
port=5060
qualify=yes
transport=udp
pickupgroup=
dial=SIP/8047
mailbox=8047@device
permit=0.0.0.0/0.0.0.0[/stextbox]

  • Edit extensions_custom.conf di bawah context [from-internal-custom] tambahkan baris:

 [stextbox id=”grey” mode=”css” shadow=”false” color=”FFFFFF” bgcolor=”000000″];cisco 3911
exten => 8047,1,Dial(SIP/8047,30)[/stextbox]

  • Setelah klik Save dan Reload Asterisk, cabut dan nyalakan perangkat ip phone Cisco 3911. Jika berhasil, maka ip phone bisa digunakan untuk menelpon dan juga ditelpon.

photo_2016-11-07_15-59-51

 

Link Download:

Line/Trunk BLF di Grandstream GXP2200/GXP2200EXT & Elastix

Kadang memigrasikan sebuah PBX lama ke Asterisk based IP PBX gampang-gampang susah. Malah yang lebih membuat tidak mudah adalah user yang ingin mempertahankan “kebiasaan” dalam berkomunikasi melalui PBX lama. Salah satunya, yang sedang saya kerjakan adalah request operator untuk memunculkan indikator line/trunk mana yang kosong seperti di telepon keytel lamanya.

panasonic-digital-proprietary-telepon-kx-dt321-7524-765028-1

Sedangkan perangkat penggantinya adalah sebuah ip phone keluaran Grandstream seri GXP2200 + GXP2200EXT yang memiliki tambahan board dengan 20 tombol/lampu BLF (karena layar bisa digeser, bisa memuat 40 tombol cepat ekstensi yang bisa dihubungi).

gxp2200ext2_822f7560f300417004402e44dc5c486a

Akhirnya diputuskan memanfaatkan lampu indikator BLF tersebut untuk keperluan indikator line/trunk. Yang dilakukan adalah sebagai berikut:

Setting Elastix

Dengan asumsi IP PBX yang digunakan adalah Elastix dengan 10 line PSTN , maka edit file extensions_custom.conf melalui web (menu PBX -> Tools -> Asterisk File Editor -> Show Filter) dan tambahkan baris di bawah [from-internal-custom] seperti berikut:

[stextbox id=”grey” shadow=”false” color=”FFFFFF” bgcolor=”000000″]

[from-internal-custom]

exten => LINE01,1,Dial(DAHDI/1)
exten => LINE01,hint,DAHDI/1
exten => LINE02,1,Dial(DAHDI/2)
exten => LINE02,hint,DAHDI/2
exten => LINE03,1,Dial(DAHDI/3)
exten => LINE03,hint,DAHDI/3
exten => LINE04,1,Dial(DAHDI/4)
exten => LINE04,hint,DAHDI/4
exten => LINE05,1,Dial(DAHDI/5)
exten => LINE05,hint,DAHDI/5
exten => LINE06,1,Dial(DAHDI/6)
exten => LINE06,hint,DAHDI/6
exten => LINE07,1,Dial(DAHDI/7)
exten => LINE07,hint,DAHDI/7
exten => LINE08,1,Dial(DAHDI/8)
exten => LINE08,hint,DAHDI/8
exten => LINE09,1,Dial(DAHDI/9)
exten => LINE09,hint,DAHDI/9
exten => LINE10,1,Dial(DAHDI/10)
exten => LINE10,hint,DAHDI/10

[/stextbox]

Klik Save dan Reload Asterisk. Setelah itu, edit sip_custom.conf dari web juga dan tambahkan baris:

[stextbox id=”grey” shadow=”false” color=”FFFFFF” bgcolor=”000000″][LINE01]
subscribecontext=from-internal-custom
[LINE02]
subscribecontext=from-internal-custom
[LINE03]
subscribecontext=from-internal-custom
[LINE04]
subscribecontext=from-internal-custom
[LINE05]
subscribecontext=from-internal-custom
[LINE06]
subscribecontext=from-internal-custom
[LINE07]
subscribecontext=from-internal-custom
[LINE08]
subscribecontext=from-internal-custom
[LINE09]
subscribecontext=from-internal-custom
[LINE10]
subscribecontext=from-internal-custom [/stextbox]

Atau kalau mau lebih ringkes:

[stextbox id=”grey” shadow=”false” color=”FFFFFF” bgcolor=”000000″][trunk-blf](!)

subscribecontext=from-internal-custom

[LINE01](trunk-blf)

[LINE02](trunk-blf)

[LINE03](trunk-blf)

[LINE04](trunk-blf)

[LINE05](trunk-blf)

[LINE06](trunk-blf)

[LINE07](trunk-blf)

[LINE08](trunk-blf)

[LINE09](trunk-blf)

[LINE10](trunk-blf)[/stextbox]

Klik Save dan Reload Asterisk.

Setting Di Grandstream GXP2200

Login di web manajemen GXP2200, pilih tab Advanced Settings -> MPK EXT1 Settings lalu pilih line MPK 1 sampai dengan 10. Untuk pengisian, misal di MPK nomer 10:

Key ModeBusy Lamp Field (BLF)

Account : <nama akun SIP>

Name: <nama line yang akan muncul di layar> LINE10

UserID: <sesuai setting di sip_custom.conf> LINE10

line-pstn-monitoring

Setting yang sama untuk line 1 – 9 seperti pada gambar. Jika berhasil, maka seluruh line/trunk akan terdeteksi di BLF GXP2200EXT.

photo_2016-11-06_00-11-37

Kalau kita melakukan panggilan keluar, maka line yang digunakan akan berwarna merah:

photo_2016-11-06_00-11-43

Selain itu kita juga bisa memilih hendak menelpon melalui line/trunk yang manapun dengan menekan salah satu tombol BLF line/trunk tersebut. Dan yang lebih lucu lagi, kita bisa menyusun ulang tombol-tombol BLF sesuai permintaan. Misal, LINE01 di baris BLF di atas dimulai dari sebelah kanan, lalu LINE02 di kiri, LINE03 ke kanan dst seperti zigzag. Request dari user, agar supaya semua BLF terkumpul di sebelah kiri semua. Di halaman MPK EXT1 Settings di atas, kita bisa mengurutkan dengan menekan tombol up down dengan mudah.

photo_2016-11-06_00-17-51

Selamat mencoba!