[tips] Error Pada Saat Create Database Untuk OpenSIPS

Pas lagi create database untuk OpenSIPS, saya mendapati error berikut:

# opensipsdbctl create
 MySQL password for root:
 INFO: test server charset
 INFO: creating database opensips ...
 INFO: Using table engine InnoDB.
 INFO: Core OpenSIPS tables successfully created.
 Install presence related tables? (y/n): y
 INFO: creating presence tables into opensips ...
 ERROR 1101 (42000) at line 2: BLOB, TEXT, GEOMETRY or JSON column 'extra_hdrs' can't have a default value
 ERROR: Failed to create presence tables!

Setelah baca sana sini ternyata ini berhubungan dengan setting MySQL yang terlalu strict. Untuk mengakali sementara, edit file my.cnf dan tambahkan baris berikut:

[mysqld]
 sql-mode = ""

kemudian restart layanan MySQL. Ulangi lagi proses penambahan database OpenSIPS, jika lancar akan seperti ini:

# opensipsdbctl create
 MySQL password for root:
 INFO: test server charset
 INFO: creating database opensips ...
 INFO: Using table engine InnoDB.
 INFO: Core OpenSIPS tables successfully created.
 Install presence related tables? (y/n): y
 INFO: creating presence tables into opensips ...
 INFO: Presence tables successfully created.
 Install tables for imc cpl siptrace domainpolicy carrierroute userblacklist b2b cachedb_sql registrant call_center fraud_detection emergency? (y/n): y
 INFO: creating extra tables into opensips ...
 INFO: Extra tables successfully created.

Issabel Project

Wah, belum sampe lama memanfaatkan AsteriskNow agak lama, baru-baru ini muncul komunitas yang sudah melakukan forking dari project Elastix. Ini kabar yang cukup menggembirakan. Artikel mengenai pengembang Issabel ini bisa dibaca di web berikut:

http://www.issabel.org/

Dan ada juga artikel berbahasa spanyol :

https://www.sinologic.net/blog/2016-12/la-comunidad-elastix-crea-el-proyecto-issabel.html

Berikut adalah terjemahannya:

===========================================================================================================

This December is quite frantic, perhaps because of the importance of the theme and is that, as we announced last week, 3CX has bought the brand Elastix and the entire ecosystem (forums, lists, emails, etc.) so that The community has taken action in the matter and has created an Elastix fork which they have christened ISSABEL.

Unlike Elastix, the new ISSABEL project is not based on the system of ” benevolent dictator ” consisting of a single company that controls and manages the project from start to finish with the condition of being “benevolent”, but it ISSABEL born Directly from the own members of the Elastix community and keeps the door open to the rest of the community to enter the project and actively participate.

Within the community there are developers, system administrators, Linux and Asterisk experts, and companies that want a communications system with which to work, modify, distribute … so the ISSABEL project is not only maintained by users related to The philosophy of free software and free unified communications, if not also by companies that will provide business support and quality services to all those who require it. The difference with Elastix is that decisions on the “core” will not be taken unilaterally by a single entity but it will be by consensus of the general community using the usual social channels ( forums, twitter, lists, etc. ) for Agree on the decisions and direction of the project.

ISSABEL: the new Elastix

ISSABEL is based on the GPL version of the Elastix 4 project, a distribution that, as many remember, the members of the community came together to make an economic crownfunding and to give a boost to the project, among other things, to update the system Operative to CentOS 7, to update the versions of diverse free projects, reason why it is 100% legal, ethical and does not have any type of legal problem as some people and webs suggest. Any user of Elastix 4 does not have to do anything to continue receiving updates, only to change the repositories to use those of ISSABEL instead of the old Elastix systems and the system will be updated as normal.

 

As you can see, the only thing that changes in the interface is the name, and therefore, all the functionalities will continue working as before.

 

For all purposes, Elastix 4 passes called ISSABEL and any user who was already working with Elastix 4, you can continue working as normal with ISSABEL.

 

More information: http://www.issabel.org

[Tips] Dialplan Untuk Pak Boss

Latar Belakang

Ceritanya, di sebuah instansi, terdapat 5 orang direktur yang masing-masing memiliki sekretaris sendiri. Para direktur ini tidak mau nomer bisa didial langsung dari IVR maupun dari ekstensi selain ekstensi masing-masing sekretarisnya. Jika ada yang mendial nomer ekstensi salah satu direktur, jika bukan dari ekstensi sekretarisnya, maka panggilan akan terlebih dahulu diarahkan ke nomer ekstensi sekretarisnya, baru kemudian bisa ditransfer ke nomer direktur tersebut.

Caranya?

Berikut ini adalah cara yang sudah saya coba di distro Asterisk. Di dalam distro tersebut, secara default semua ekstensi masuk ke context from-internal. Untuk nomer ekstensi sekretaris dan direktur, saya masukkan semua sebagai context tersebut. Selain itu, saya buatkan context khusus supaya tidak bisa melakukan panggilan langsung ke nomer ekstensi direktur. Sebelumnya saya pernah membuat script untuk memblokir panggilan keluar dengan nama context from-internal-restricted yang bisa dibaca di https://www.otakudang.org/?p=300 . Kali ini saya akan mengembangkan context tersebut untuk memblokir panggilan langsung ke ekstensi tertentu dan membelokkan ke ekstensi lain.

Dalam contoh ini, nomer ekstensi direktur (misal) 6666 dan nomer sekretaris adalah (misal) 6015. Edit context from-internal-restricted (yang sudah include dengan script restricted.sh) menjadi seperti berikut:

[from-internal-restricted]
 #exec /var/lib/asterisk/bin/restricted.sh
 exten => 6666,1,NoOp()
 same => n,GotoIf($[${CALLERID(num)} = 6015]?dial1:dial2)
 same => n(dial1),Dial(SIP/6666)
 same => n,Hangup()
 same => n(dial2),Dial(SIP/6105)
 same => n,Hangup()

Arti dari dialplan di atas adalah, jika caller id penelpon adalah 6015 (nomer ekstensi sekretaris), maka rule dial1 yang akan dieksekusi, yaitu mendial SIP/6666 nomer ekstensi direktur). Jika nomer penelpon bukan nomer ekstensi sekretaris (6015), maka rule dial2 yang akan dieksekusi, yaitu mendial SIP/6015 (nomer ekstensi sekretaris).

Selamat mencoba!

[tips] Problem DTMF Cisco SPA8800 Ke Asterisk

Ada beberapa kejadian, ketika Asterisk menerima panggilan dari VoIP gateway seperti SPA8800 yang diarahkan ke IVR, sering kali tidak bisa menekan menu IVR (menekan digit menu IVR). Ini biasanya disebabkan oleh DTMF method antara VoIP gateway dengan Asterisk yang berbeda. Untuk mengatasinya, ubah DTMF TX method dari Auto (setting default) ke INFO

 

[tips] Rotate File Call Recording Di IP PBX

Salah satu fasilitas IP PBX yang sering banget diminta pelanggan adalah Recording. Recording digunakan untuk menyimpan percakapan dalam format audio file (biasanya dalam bentuk .wav). Tapi, jika file-file ini disimpan juga dalam kurun waktu yang panjang, semakin lama penggunaan ruang penyimpanan pun bakal bengkak. Akhirnya harus diputuskan berapa lama sebuah file akan tetap di simpan. Yang paling sering sih sekitar 3 bulan atau 90 hari (pukul rata). Jadi sistem IP PBX harus bisa mendeteksi umur file tersebut jika sudah masuk 90 hari ke atas, akan otomatis dihapus.

Jika menggunakan Asterisk based IP PBX, file audio tersebut berada di dalam direktori /var/spool/asterisk/monitor.

Untuk melakukan kegiatan rutin di atas, kita bisa menjalankan perintah cron (misal setiap jam 01:15, dini hari):

~# crontab -e

...
15 1 * * * find /var/spool/asterisk/monitor/ -type f -mtime +90 -exec rm -f {} \; >/dev/null 2>&1
...

Selamat mencoba.

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!

[Tips] Menghilangkan Warning “chan_iax2.c: update_registry: Restricting registration for peer ‘XXXX’ to 60 seconds”

Pernah menemui log seperti ini:

[2016-09-27 11:31:14] NOTICE[2284]: chan_iax2.c:8974 update_registry: Restricting registration for peer ‘XXXX’ to 60 seconds (requested 30 0)
[2016-09-27 11:32:09] NOTICE[2284]: chan_iax2.c:8974 update_registry: Restricting registration for peer ‘XXXX’ to 60 seconds (requested 30 0)
[2016-09-27 11:33:04] NOTICE[2278]: chan_iax2.c:8974 update_registry: Restricting registration for peer ‘XXXX’ to 60 seconds (requested 30 0)
[2016-09-27 11:33:59] NOTICE[2280]: chan_iax2.c:8974 update_registry: Restricting registration for peer ‘XXXX’ to 60 seconds (requested 30 0)
[2016-09-27 11:34:54] NOTICE[2278]: chan_iax2.c:8974 update_registry: Restricting registration for peer ‘XXXX’ to 60 seconds (requested 30 0)

contohnya kalau kita memiliki virtual FAX di Asterisk kita dengan IAX2 protocol, biasanya sering muncul log demikian. Sebenarnya ini ndak menimbulkan masalah, tapi cukup untuk memenuhi log, apalagi jika verbosity-nya tinggi. Untuk mengatasi warning tersebut,edit file /etc/iaxmodem/iaxmodem-cfg.ttyIAX1 dan ganti baris:

refresh         300

Menjadi:

refresh         60

Lalu reload iaxmodem dengan perintah:  service iaxmodem restart.

Selamat mencoba.

[tips] CallPickup

Pernah menemui kejadian seperti berikut?

Pada saat jam istirahat, atau beberapa kolega sedang ada rapat/pertemuan bulanan, kita menemui banyak meja kantor yang kosong. Beberapa meja terdapat ip phone yang kadang lupa diset DND (Do Not Disturb), sehingga ketika ada panggilan masuk, telepon akan tetap berdering. Lalu kebetulan kita sedang berada di ruangan yang sama, hanya saja letak pesawat telepon yang berdering agak jauh dari meja kita, sehingga harus berjalan dulu menuju ke meja tersebut untuk mengangkat telepon (bagi kantor yang menganggap semua panggilan masuk cukup penting), untuk sekedar memberitahukan orang yang dituju belum datang atau sedang ada keperluan ke luar.Itu sebabnya diperlukan call pickup. Ada dua jenis call pickup, yaitu call pickup biasa dan direct call pickup.

Call pickup biasa bisa diakses dengan menekan tombol *8 tanpa harus mengetahui nomer ekstensi mana yang sedang berdering, selama nomer ekstensi tersebut berada di dalam satu group call pickup.

Direct call pickup bisa diakses dengan menekan **<nomer ekstensi>, apabila kita sudah tau nomer ekstensi yang sedang berdering, atau jika ada lebih dari satu nomer ekstensi yang berdering saat kantor kosong, dan kita ingin memilih menerima telpon dari salah satu nomer yang berdering. Misal nomer ekstensi lain yang sedang berdering adalah 101, untuk melakukan direct call pickup, cukup menekan **101.

Supaya kita bisa melakukan call pickup, pertama harus ditentukan terlebih dahulu ekstensi-ekstensi mana saja yang boleh dipickup, kemudian jadikan satu group. Hal ini untuk menghindari kejadian bila kita hendak call pickup sebuah nomer ekstensi yang sedang berdering dengan kode *8, tapi tanpa sepengetahuan kita, ternyata telepon di kantor CEO juga sedang berdering, sehingga bisa alih-alih pickup ekstensi yang ada di dekat kita, malah ekstensi CEO yang kita pickup, atau departemen lain.

Masuk ke menu PBX -> PBX Configuration -> Extensions lalu pilih ekstensi yang hendak dijadikan satu group. Pada halaman tersebut di bagian callgroup dan pickupgroup masukkan nomer group, misal 1. Klik Submit setelah itu, lalu ulangi dengan ekstensi lain yang hendak dijadikan satu group. Setelah selesai klik Apply Config.

Pastikan setting berjalan dengan melakukan test.