Sebagian besar IP-PBX siap pakai dirancang untuk perusahaan dengan staf yang terdiri dari sepuluh orang atau lebih. Faktanya, di Rusia ada banyak perusahaan dengan dua hingga lima karyawan, dan mereka juga perlu mengatur komunikasi telepon. Fungsionalitas IP-PBX siap pakai adalah redundan untuk mereka, dan biayanya terlalu tinggi. Anda dapat membangun pertukaran telepon Anda sendiri menggunakan komputer biasa dan Asterisk. Anda dapat terhubung ke penyedia layanan VoIP dan menggunakan layanan "cloud PBX". Dan Anda bisa sebaliknya - ambil perangkat yang murah dengan Asterisk yang sudah diinstal sebelumnya, seperti Yeastar TG100 , dan gunakan sedikit fungsinya. Bagi mereka yang tidak mencari cara mudah, selamat datang di kucing.
Yeastar TG100 adalah gateway GSM VoIP untuk satu kartu SIM dan biasanya digunakan untuk menghubungkan saluran seluler ke IP-PBX melalui SIP. Kami akan mencoba menggunakan Yeastar TG100 bukan dengan IP-PBX, tetapi sebagai gantinya. Mengapa kami memilih GSM gateway sebagai subjek uji? Bukan rahasia lagi bahwa banyak perusahaan di awal kegiatan mereka menggunakan nomor ponsel biasa untuk berkomunikasi dengan dunia. Dalam proses pertumbuhan, kebutuhan komunikasi meningkat, tetapi saya juga ingin mempertahankan nomor lama - dalam hal ini, opsi menggunakan gateway GSM VoIP terlihat lebih baik daripada Asterisk di komputer atau IP-PBX virtual.Kenapa tepatnya Yeastar? Pertama, menurut pendapat kami, ini adalah gateway VoIP GSM kualitas tertinggi di pasar kami. Kedua, gateway ini memberikan kemampuan untuk mengakses Asterisk yang terinstal di dalamnya dan memodifikasi file-file konfigurasi (untuk itu para insinyur harus mengucapkan terima kasih khusus). Ketiga, produsen itu sendiri mengklaim bahwa gateway GSM Yeastar VoIP mendukung "server SIP untuk mendaftarkan telepon IP", yang sering menyesatkan pengguna akhir yang berpikir mereka dapat menggunakan gateway sebagai IP-PBX lengkap. Artikel ini mungkin menarik bagi pengguna seperti itu saja.Akhirnya, mengapa kami memilih Yeastar TG100 termuda? Semuanya sederhana di sini - karena kita berbicara tentang pertukaran telepon otomatis untuk yang terkecil, maka kami memilih gateway yang paling murah. Jika diinginkan, alih-alih TG100, Anda dapat mengambil TG200 (untuk dua kartu SIM), TG400 (untuk empat) dan bahkan TG800 (untuk delapan) - tidak akan ada perubahan mendasar dalam pengaturannya.Apa yang ingin kita dapatkan?
Pertama, kita akan menentukan set fungsi minimum yang seharusnya dimiliki IP-PBX kita di masa depan.- Interkom. Telepon IP atau telepon lunak pengguna yang terdaftar di gateway harus dapat melakukan panggilan dan mentransfer panggilan
- Panggilan masuk. Panggilan masuk harus masuk ke menu suara interaktif, yang akan menawarkan beberapa opsi kepada penelepon untuk terhubung dengan karyawan perusahaan
- SIP-. GSM- – , , , VoIP-
- . – SIP GSM, , . – GSM-, – SIP
?
Kami akan mencoba untuk meminimalkan konfigurasi gateway melalui file konfigurasi menggunakan alat konfigurasi standar secara maksimal, yaitu antarmuka Web. Sebagai contoh, dengan itu, kita dapat membuat jumlah akun SIP yang kita perlukan untuk menghubungkan pengguna ke gateway telepon IP. Pergi ke bagian Gateway - VoIP Lines dan klik Add VoIP Line .
Jenis saluran : Akun VoIPJenis: SIPNama: Nama apa sajaAkun: nomor telepon internalKata sandi: kata sandi kompleksKami mengulangi operasi ini sebanyak yang kami perlukan untuk mendapatkan telepon. Sayangnya, bahkan setelah membuat semua akun SIP, komunikasi internal tidak akan berfungsi, untuk mengaktifkannya kita perlu bekerja dengan file konfigurasi.Kami akan menghubungkan Yeastar TG100 kami ke penyedia layanan VoIP, karena antarmuka web menyediakan semua kemungkinan untuk ini. Di bagian yang sama, Gateway - VoIP Lines , klik Tambahkan VoIP Line lagi dan pilih "VoIP Line" di bidang Line Type . Setiap operator telekomunikasi memiliki persyaratan registrasi sendiri, namun, bidang yang tersedia cukup untuk terhubung dengan sebagian besar dari mereka.
Line Type: VoIP barisjenis: SIPNama: sewenang-wenang namaHost / IP:Alamat IP atau nama domain dari server SIP, serta port-nya.Domain: Alamat IP atau nama domain dari server SIPPengguna : SIP ID yang dikeluarkan oleh operatorNama identifikasi: SIP ID yang dikeluarkan oleh operatorKata sandi: kata sandi yang disediakan oleh operatorDari Dari (tab Lanjut): SIP ID yang dikeluarkan oleh operatorMembuat menu suara interaktif melalui Web- antarmuka, tentu saja, tidak akan berfungsi. Tetapi baginya, dalam hal apa pun, Anda memerlukan salam suara, untuk mengunduh yang dapat kita gunakan antarmuka Web. Di bagian Sistem - File Audio, klik Unduh File. File harus dalam format wav dan ukurannya tidak boleh lebih dari 1,8 Mb. Pengkodean berikut diperbolehkan:gsm 6.10 8kHz, Mono, 1Kb / salaw / ulaw 8kHz, Mono, 1Kb / spcm 8kHz, Mono, 16Kb / sDi sinilah antarmuka Web berakhir. Kami akan mengkonfigurasi sendiri rute internal, keluar dan masuk.Menghubungkan ke Yeastar TG100
Untuk menghubungkan, kita akan menggunakan protokol SSH, yang harus diaktifkan terlebih dahulu di gateway. Di bagian Sistem - Pengaturan Jaringan - Pengaturan LAN , aktifkan opsi Aktifkan SSH , simpan dan terapkan perubahannya.
Gunakan klien SSH favorit Anda untuk terhubung ke gateway. Secara default, port koneksi adalah 8022, login adalah root, kata sandi adalah ys123456. Dengan menghubungkan, Anda akan jatuh ke lingkungan OS Linux.File konfigurasi Asterisk terletak di tempat yang biasa - / etc / asterisk, namun, Anda tidak dapat mengubah apa pun secara langsung di dalamnya, jika tidak setelah aplikasi pengaturan pada antarmuka Web, semua pengaturan Anda dalam file konfigurasi akan hilang. Untuk menambah atau mengubah pengaturan file konfigurasi Asterisk, direktori khusus disediakan - / persistent / custom-cfg. Ini berisi file gncustom.conf yang berisi nama-nama semua file konfigurasi asterisk yang dapat Anda modifikasi atau tambahkan sesuatu yang baru ke dalamnya.cat /persistent/custom-cfg/gncustom.conf :
[modifyfile]
/etc/asterisk/extensions.conf
/etc/asterisk/sip.conf
/etc/asterisk/users.conf
/etc/asterisk/iax.conf
/etc/asterisk/queues.conf
/etc/asterisk/features.conf
/etc/asterisk/voicemail.conf
/etc/asterisk/meetme.conf
/etc/asterisk/rc_org.conf
/etc/asterisk/rtp.conf
/etc/asterisk/http.conf
/etc/asterisk/musiconhold.conf
/etc/asterisk/followme.conf
/etc/asterisk/logger.conf
/etc/asterisk/manager.conf
/etc/asterisk/chan_dahdi.conf
/etc/asterisk/digital-channel.conf
[replacefile]
/etc/asterisk/dahdi-channels.conf
Oleh karena itu, file-file di bagian [modifiedfile] adalah file di mana perubahan atau penambahan pada pengaturan yang ada diizinkan; file di bagian [replacefile] - file yang sepenuhnya diganti oleh pengaturan Anda.Untuk mengubah pengaturan dalam file konfigurasi asterisk, Anda perlu mengetahui tiga parameter:- Nama file konfigurasi Asterisk yang terletak di folder / etc / asterisk
- Nama bagian ditunjukkan dalam tanda kurung [bagian] di mana opsi yang sesuai akan diubah
- Nama opsi itu sendiri
Selanjutnya, file dengan nama format <name> _custom.conf dibuat di direktori / persistent / custom-cfg. Di mana <name> adalah nama file konfigurasi di direktori / etc / asterisk tanpa akhir dari ".conf". Misalnya, jika Anda ingin membuat perubahan pada file /etc/asterisk/users.conf, file dengan perubahan akan disebut users_custom.conf. Bagian dengan tanda kurung ditunjukkan dalam file dengan perubahan, serta dalam file asli di mana Anda ingin membuat perubahan, dan baris di bawah mengubah opsi dengan nilai baru setelah tanda sama dengan. Contoh:[new-context]
parameter1=value1
parameter2=value2
Jika bagian yang ditentukan dalam pengaturan mengubah file yang tidak ada dalam file konfigurasi asli, maka itu hanya akan ditambahkan.Setelah membuat perubahan pada file konfigurasi, Anda harus menerapkannya. Cara termudah untuk melakukan ini adalah di antarmuka Web - di bagian pengaturan apa pun, klik Simpan , lalu klik Terapkan .Panggilan internal
Sebelumnya, menggunakan antarmuka berbasis web, kami membuat akun SIP, biarlah 401, 402 dan 403. Konfigurasi perangkat SIP ini ada di file /etc/asterisk/users.conf. Setiap perangkat menggunakan konteks dial plannya sendiri - parameter konteks. Untuk 401 itu adalah Voip-Account-401, untuk 402 itu adalah Voip-Account-402, untuk 403 itu adalah Voip-Account-403.Dalam file rencana set /etc/asterisk/extensions.conf kita bisa melihat entri berikut:[Voip-Account-401]
[Voip-Account-402]
[Voip-Account-403]
Pada dasarnya, ini berarti bahwa setiap perangkat yang kita buat adalah dalam konteks rencana dial yang benar-benar kosong. Ini menjelaskan fakta bahwa panggilan internal secara default di gateway tidak berfungsi, dan ini harus diperbaiki.- Mari kita membuat konteks khusus untuk rencana panggilan, di mana kami akan memproses panggilan keluar dari ponsel SIP kami. File rencana panggil asli disebut extensions.conf - karenanya, buat file bernama extensions_custom.conf di direktori / persistent / custom-cfg dengan konten berikut:
[from-internal]
exten => _4XX,1,NoOp(Internal Call)
exten => _4XX,n,Dial(${trunk-${EXTEN}},30,Ttr)
exten => _4XX,n,Hangup()
Inti dari entri ini adalah bahwa setiap panggilan ke nomor tiga digit yang dimulai dengan nomor 4 akan memanggil perangkat dengan nomor yang sesuai yang dibuat sebelumnya di antarmuka web gateway.
- Kita juga perlu mengizinkan ponsel kita untuk menggunakan konteks rencana panggilan ini saat melakukan panggilan. Untuk melakukan ini, tambahkan baris berikut dalam file extensions_custom.conf yang sama di bawah:
[Voip-Account-401]
include => from-internal
[Voip-Account-402]
include => from-internal
[Voip-Account-403]
include => from-internal
- Terapkan perubahan menggunakan antarmuka web
- Kami melihat file /etc/asterisk/extensions.conf dan memastikan bahwa perubahan yang kami buat di dalamnya muncul
- Kami memeriksa dalam praktik - kami mencoba melakukan panggilan dari satu telepon internal ke yang lain
Panggilan masuk
Semua panggilan masuk yang datang baik melalui saluran GSM dan melalui batang SIP, kami akan mengirim ke menu suara interaktif dengan struktur berikut:- File suara yang diunduh sebelumnya dengan salam suara dimainkan. File yang kami unggah terletak di folder / var / lib / asterisk / sounds / record
- Kami sedang menunggu pelanggan untuk menghubungi nomor tersebut. Ketika Anda memasukkan nomor "1", pelanggan dengan nomor 401 dipanggil. Ketika Anda memasukkan nomor "2", panggilan akan dikirim ke grup panggilan, di mana telepon 401, 402, 403 berdering pada gilirannya
- Jika pelanggan tidak melakukan panggilan apa pun, panggilan tersebut juga masuk ke grup panggilan yang sama, tetapi telepon di dalamnya tidak berdering secara bergantian, tetapi pada saat yang sama
Untuk menerapkan fungsi ini, tambahkan berikut ini ke file extensions_custom.conf:[arttel-ivr]
exten => _.,1,NoOp(Custom IVR by ArtTel)
exten => _.,n,Set(CDR(userfield)=SIP_TRUNK->IP)
exten => _.,n,Answer()
exten => _.,n,Set(TIMEOUT(digit)=2)
exten => _.,n,Background(record/arttel_ivr_alaw)
exten => _.,n,WaitExten(3)
exten => t,1,NoOp(Goto by Timeout)
exten => t,n,Macro(arttel-ringgroup,ringall,402-403-401,15,2)
exten => t,n,Hangup()
exten => 1,1,NoOp(Goto by pressed 1)
exten => 1,n,Dial(${trunk-401},30,T)
exten => 1,n,Hangup()
exten => 2,1,NoOp(Goto by pressed 2)
exten => 2,n,Macro(arttel-ringgroup,linear,402-403-401,15,2)
exten => 2,n,Hangup()
[macro-arttel-ringgroup]
exten => s,1,Set(RG_Type=${ARG1})
exten => s,n,Set(RG_Nums=${ARG2})
exten => s,n,NoOp(Macro RingGroup type: ${RG_Type} for numbers: $RG_Nums)
exten => s,n,GotoIf($[ "${RG_Type}" = "linear" ]?linear,1:ringall,1)
exten => s,n,Hangup()
exten => ringall,1,Set(COUNT=1)
exten => ringall,n,Set(REPEAT_COUNT=1)
exten => ringall,n,Set(Repeat=${ARG4})
exten => ringall,n,Set(TimeDial=${ARG3})
exten => ringall,n(loop),Set(RG_Dial=${RG_Dial}&${trunk-${CUT(RG_Nums,-,${COUNT})}})
exten => ringall,n,NoOp(RG_Dial=${RG_Dial})
exten => ringall,n,Set(COUNT=$[${COUNT} + 1])
exten => ringall,n,GotoIf(${CUT(RG_Nums,-,${COUNT})}?loop)
exten => ringall,n(repeat),Dial(${RG_Dial:1},${TimeDial},T)
exten => ringall,n,Set(REPEAT_COUNT=$[${REPEAT_COUNT} + 1])
exten => ringall,n,GotoIf($[ ${REPEAT_COUNT} <= ${Repeat} ]?repeat)
exten => ringall,n,Hangup()
exten => linear,1,Set(COUNT=1)
exten => linear,n,Set(REPEAT_COUNT=1)
exten => linear,n,Set(Repeat=${ARG4})
exten => linear,n,Set(TimeDial=${ARG3})
exten => linear,n(loop),Dial(${trunk-${CUT(RG_Nums,-,${COUNT})}},${TimeDial},T)
exten => linear,n,Set(COUNT=$[${COUNT} + 1])
exten => linear,n,GotoIf(${CUT(RG_Nums,-,${COUNT})}?loop)
exten => linear,n,Set(COUNT=1)
exten => linear,n,Set(REPEAT_COUNT=$[${REPEAT_COUNT} + 1])
exten => linear,n,GotoIf($[ ${REPEAT_COUNT} <= ${Repeat} ]?loop)
exten => linear,n,Hangup()
Konteks ucapan suara kami telah dibuat, sekarang perlu untuk mengirim semua panggilan masuk ke sana, baik dari saluran GSM dan dari trunk SIP. Untuk melakukan ini, buat file users_custom.conf di folder / persistent / custom-cfg dengan konten berikut:[gsm_1]
context=arttel-ivr
[trunk-arttel_telecom]
context=arttel-ivr
Kami menyimpan dan menerima perubahan yang dilakukan melalui antarmuka Web.Panggilan keluar
Hal terakhir yang harus kita lakukan adalah mengkonfigurasi logika panggilan keluar. Dia akan menjadi yang berikutnya:- Panggilan ke semua nomor ponsel mulai dari 89 ... akan dikeluarkan melalui saluran GSM
- Panggilan di Rusia, yang jumlahnya terdiri dari 10 karakter, dan mulai dengan 83 ..., 84 ... atau 88 ... kami akan mengeluarkan melalui penyedia SIP
- Panggilan ke nomor internasional mulai dari 810 ... kami juga akan mengeluarkan melalui saluran GSM
Untuk melakukan ini, tambahkan berikut ini ke bagian [dari internal] di file extensions_custom.conf yang telah kita buat:
exten => _89XX.,1,NoOp(Outbound dial to Mobile)
exten => _89XX.,n,Set(CDR(userfield)=IP->MOBILE)
exten => _89XX.,n,Set(STRATEGY=0)
exten => _89XX.,n,Macro(trunkdial-failover-0.4,1,,${EXTEN:0},trunk-GSM1,)
exten => _89XX.,n,Hangup()
exten => _8[348]XXXXXXXXX,1,NoOp(Outbound dial to Russia)
exten => _8[348]XXXXXXXXX,n,Set(CDR(userfield)=IP->SIP_TRUNK)
exten => _8[348]XXXXXXXXX,n,Set(STRATEGY=0)
exten => _8[348]XXXXXXXXX,n,Macro(trunkdial-failover-0.4,1,,${EXTEN:0},trunk-arttel_telecom,)
exten => _8[348]XXXXXXXXX,n,Hangup()
exten => _810XX.,1,NoOp(Outbound dial to International)
exten => _810XX.,n,Set(CDR(userfield)=IP->MOBILE)
exten => _810XX.,n,Set(STRATEGY=0)
exten => _810XX.,n,Macro(trunkdial-failover-0.4,1,,${EXTEN:0},trunk-GSM1,)
exten => _810XX.,n,Hangup()
Aturan apa yang bertanggung jawab untuk arah mana yang tidak sulit untuk dipahami oleh pola nomor ekstensi: _89XX. - nomor ponsel, _8 [348] XXXXXXXXX - panggilan di Rusia, _810XX. - panggilan ke tujuan internasional. Makro trunkdial-failover-0.4 bertanggung jawab untuk mengirim panggilan melalui trunk tertentu. Argumen pertama menunjukkan jumlah saluran yang digunakan untuk panggilan keluar. Argumen terakhir berisi daftar batang yang digunakan untuk melakukan panggilan keluar. Misalnya, jika kami bekerja dengan gateway empat-port Yeastar TG400 alih-alih Yeastar TG100, maka baris:exten => _89XX.,n,Macro(trunkdial-failover-0.4,1,,${EXTEN:0},trunk-GSM1,)
harus diganti dengan:exten => _89XX.,n,Macro(trunkdial-failover-0.4,4,,${EXTEN:0},trunk-GSM1,trunk-GSM2,trunk-GSM3,trunk-GSM4,)
Kami menyimpan dan menerapkan perubahan yang telah kami buat.Kesimpulan
Sebagai hasil dari perubahan, kami mendapat solusi yang berfungsi penuh, siap untuk sepenuhnya melayani kantor 2-10 orang dengan tenang. Ya, itu tidak mendukung fungsi tambahan seperti merekam dan mendengarkan percakapan, panggilan parkir, panggilan konferensi, pesan suara, dan lainnya. Tapi, sebenarnya, untuk perusahaan terkecil, semua fungsi ini tidak diminati. Tetapi solusi ini kompak, konsumsi daya rendah dan dukungan untuk jalur GSM. Dan jika Anda punya waktu, keinginan dan imajinasi, gateway GSM GSM Yeastar TG100 dapat dilengkapi dengan banyak fungsi yang lebih menarik.