Menginstal FreeSWITCH 1.8 pada Debian 9 (Raspbian Stretch, gambar dasar dari sistem Smart Home MajorDoMo di Rasbperri Pi)

Saya melanjutkan serangkaian artikel pendek tentang penciptaan "Rumah Pintar" dan petunjuk langkah demi langkah untuk pemasangan / konfigurasi sendiri.

Tetapi sekarang ini terutama tentang Freeswitch dan IP telephony.

Pada bulan Agustus, pengembang platform telepon IP VoIP terbuka FreeSWITCH, Signalwire menerbitkan rilis publik untuk versi perangkat lunak baru - 1.8. (1.8.2 telah dirilis).
Sehubungan dengan peluncuran versi platform IP telephony Freesfitch 1.8 ini, ada keputusan untuk menginstalnya di Raspberry 3 dengan gambar dasar dari sistem rumah pintar MajorDoMo yang diinstal, di bawah sistem operasi Raspbian (Debian 9 Stretch) dengan beberapa elemen otomasi rumah.



Di bawah potongan, deskripsi menginstal platform VoIP dari sumber dengan beberapa catatan dan penjelasan.

Tiga bulan setelah rilis dan pengumuman rilis publik versi 1.8 dalam panduan instalasi untuk Debian 9 di situs web resmi, FreeSWITCH saat ini menerbitkan instruksi instalasi.

β†’ Menginstal FreeSWITCH 1.8

Namun, saya tidak dapat menginstal salah satu opsi dalam instruksi pada Rasberry saya. Belum lama ini ada peringatan tentang ketidakcocokan dan harus diinstal dari kode sumber. Juga dalam dokumentasi resmi Anda dapat menemukan instalasi pada Raspberry Pi, tetapi sudah usang. Oleh karena itu, saya akan menjelaskan opsi instalasi saya pada Raspberry P, membuat instruksi langkah demi langkah kecil. Pada artikel sebelumnya saya mencoba menggambarkan bagaimana dan di mana mulai bekerja dengan terminal dan baris perintah, oleh karena itu, jika sedikit membingungkan, saya sarankan membaca artikel sebelumnya (tautan akan diberikan di akhir artikel). Prinsipnya sama, apakah itu - itu berhasil, memeriksa ulang, menyiapkan instruksi sehingga putra tertua dapat mengulang dan memahami sedikit apa dan bagaimana yang dia lakukan.

Menginstal FreeSWITCH 1.8.2 dari sumber


Terhubung ke Raspberry via Putty.

Untuk menghindari pengetikan sudo sebelum setiap perintah, jalankan perintah sudo –i. Setelah itu, kami bekerja dengan hak administrator sistem, mereka secara otomatis beralih ke direktori root. Untuk mengetahui direktori tempat Anda berada, Anda dapat menjalankan perintah Pwd.

Memperbarui sistem:

apt-get update apt-get upgrade 

Buka direktori home, lalu unduh freeswitch versi 1.8.2:

 cd /home/pi git clone https://freeswitch.org/stash/scm/fs/freeswitch.git -bv1.8.2 freeswitch 

Setelah pengunduhan selesai, folder sumber Freswitch muncul di direktori home. Buka (path lengkap: / home / pi / freeswitch) dan instal program yang diperlukan untuk membangun dari sumber dan buka direktori freeswitch:

 cd freeswitch apt-get install autoconf libtool libtool-bin 

Sebelum mengkompilasi program dari sumber, Anda harus terlebih dahulu merakit konfigurator, jalankan:

 ./bootstrap.sh –j 

Platform Freeswitch memiliki struktur modular, jadi sebelum menginstal, edit daftar modul yang diperlukan:

 nano /freeswitch/modules.conf 

Sebagian besar, daftar tetap sebagai default, saya telah menonaktifkan beberapa codec video, opal, png.
Modul bahasa Rusia yang terhubung, titik akhir mod curl, mod_portaudio,
Instal dependensi untuk konfigurasi dan perakitan server. Kami menggunakan flag –y sehingga tim secara otomatis menjawab Ya untuk semua pertanyaan sistem:

 apt-get install -y g++ zlib1g-dev libjpeg9 pkg-config sqlite3 libsqlite3-dev libcurl4-openssl-dev libpcre3 libpcre3-dev libspeexdsp-dev libldns-dev libedit-dev libtiff-dev apt-get install -y yasm lua5.2 lua5.2-dev libsndfile-dev portaudio19-dev 

Paket yang Anda instal tergantung pada plug-in. Jika sebuah paket hilang, kesalahan dapat muncul dalam dua langkah berikutnya.

Konfigurasi dan pemasangan server FreeSWITCH


Setelah itu, Anda perlu menjalankan konfigurator untuk memeriksa semua dependensi, serta menginstal opsi build tambahan. Configurator akan membangun Makefile berdasarkan pada pengetahuan yang diperoleh dan file makefile.am.

Kami menjalankan perintah:

 ./configure --enable-system-lua 

Jika semuanya berjalan dengan baik, kami mendapatkan pesan berikut:



Mari kita lanjutkan ke instalasi itu sendiri:

 make make install 

Jika hasilnya positif, Freeswitch diinstal secara default di /usr/local/freeswitch ; di akhir konfigurasi, kita dapat melihat daftar dan lokasi direktori FS.


Jika kesalahan terjadi selama instalasi atau konfigurasi, seperti mod_lua.cpp: 37: 17: kesalahan fatal: lua.h: Tidak ada file atau direktori seperti itu #include "lua.h", Anda perlu menginstal perpustakaan yang diperlukan menggunakan perintah pencarian. Saya tidak dapat menginstal freeswitch dengan paket liblua5.3-0 liblua5.3-dev, saya harus menginstal versi 5.2.

 Apt search lua 



Instal file suara dengan dukungan bahasa Rusia:

 make cd-sounds-install make cd-sounds-ru-install cd-moh-install 

Proses instalasi dapat diselesaikan.

Untuk mencegah file database kecil ditulis ke memori flash dan meningkatkan masa pakainya, kami menambahkan baris dalam file / etc / fstab:

tmpfs /usr/local/freeswitch/db tmpfs defaults 0 0


Setelah restart, file sementara yang dibuat oleh FS akan ditulis ke RAM.

Pengaturan sistem setelah menginstal FreeSWITCH.


Ada peringatan dalam dokumentasi untuk FreeSWITCH, jadi saya tidak menyarankan mencoba menjalankan FS segera setelah instalasi.

** Perhatian! Jika Anda menginstal FreeSWITCH dari sumber, Anda perlu mengatur izin pada direktori dan file. Jika Anda menjalankan FreeSWITCH setelah instalasi, itu akan mulai secara default sebagai 'root'. Izin direktori harus diubah sebelum peluncuran awal. **

Buat pengguna baru dan atur izin dan ubah pemilik ke file FreeSwitch

 cd /usr/local groupadd freeswitch adduser --quiet --system --home /usr/local/freeswitch --gecos "FreeSWITCH open source softswitch" --ingroup freeswitch freeswitch --disabled-password chown -R freeswitch:freeswitch /usr/local/freeswitch/ chmod -R ug=rwX,o= /usr/local/freeswitch/ chmod -R u=rwx,g=rx /usr/local/freeswitch/bin/* 

Selanjutnya, salin file luncurkan otomatis ke systemd, ganti namanya, ubah hak akses.
FreeSWITCH hadir dengan file systemd, yang, jika dikonfigurasi dengan benar saat boot, memonitor FreeSWITCH dan memulainya sebagai daemon, restart jika FS tidak berfungsi.

 cp /home/pi/freeswitch/debian/freeswitch-systemd.freeswitch.service /etc/systemd/system/freeswitch.service chmod +x /etc/systemd/system/freeswitch.service 

Kami membuat tautan ke file peluncuran dan membuat tautan ke file peluncuran konsol FS:

 ln -s /usr/local/freeswitch/bin/freeswitch /usr/bin/freeswitch ln -s /usr/local/freeswitch/bin/fs_cli /usr/bin/fs_cli 

Tambahkan layanan freeswitch ke pengisian otomatis:

 systemctl enable freeswitch systemctl daemon-reload systemctl start freeswitch 

Setelah itu, FS saya masih belum mulai, saya mendapat kesalahan dengan file * .pid, saya baru saja mengedit file autostart nano /etc/systemd/system/freeswitch.service
Mengomentari baris berikut dalam file: # PIDFile = / run / freeswitch / freeswitch.pid.



Untuk berjaga-jaga, kami membebani Raspberry (seperti yang Anda ingat, saat kami bekerja dari root): reboot

Setelah restart, kami memberikan perintah lagi yang kami masukkan melalui sudo -i, jalankan htop dan lihat proses FreeSWITCH yang sedang berjalan.

Sedikit tentang pengaturan awal:

Setelah instalasi, FreeSWITCH siap bekerja, secara default ada 20 pelanggan dengan angka 1000-1019. Kata sandi default untuk pelanggan VoIP ditentukan dalam file /usr/local/freeswitch/conf/vars.xml dan 1234. Direktori / usr / local / freeswitch / conf / derectory / default berisi 20 file xml, masing-masing bertanggung jawab untuk pelanggan dengan nomor yang sesuai. Kita dapat mengatur kata sandi untuk setiap pelanggan, mengubah nama file dan data dalam isinya, kita dapat mengubah penomoran dan kapasitas pelanggan.

Jika Anda perlu melakukan ini, maka setelah mengedit file yang Anda butuhkan untuk memulai konsol fs_cli : fs_cli dan di jendela konsol kami memberikan perintah reloadxml . Dengan perintah ini, FS membaca ulang file XML dan menerima perubahan.



Keluar dari konsol: ctrl+D atau dengan mengetik /exit atau /quit

Sekarang mari kita coba menghubungkan pelanggan IP. Untuk memeriksa koneksi, saya menggunakan PC di Windows: MicroSIP dan PhonerLite softphones dan pada ponsel yang menjalankan Android CSipSimle OS, pengaturannya adalah sebagai berikut (nama akun - nomor telepon, server SIP - alamat Raspberry kami:
Ikon hijau di bilah status bawah program ini berarti bahwa pelanggan diotorisasi di server VoIP kami dan siap untuk berkomunikasi.



Dengan menekan nomor, kita dapat memeriksa panggilan pelanggan dan beberapa fungsi lain dari IP PBX.
Tapi saya tidak melihat aplikasi khusus di rumah untuk kantor PBX khas. Mari kita coba gunakan fitur FreeSWITCH yang lebih canggih.

Freeswitch memiliki struktur modular, plug-in dapat dilihat dalam file
modules.conf.xml

Mari kita edit, saya mematikan codec video dan menghubungkan modul bahasa Rusia serta mod_xml_rpc.

  nano /usr/local/freeswitch/conf/autoload_configs/modules.conf.xml</>      <source><!-- --> 

di baris sebelum dan sesudah nama modul. Nonaktifkan - sebaliknya, dengan meletakkan simbol-simbol ini, contoh kecil, modul pertama aktif, yang kedua dinonaktifkan:

 <load module="mod_xml_rpc"/> <!-- <load module="mod_xml_curl"/> --> 

Setelah itu, jika Anda ingin mengubah, kami mengedit pengaturan sederhana (port, pengguna, kata sandi) dari modul itu sendiri dalam file xml_rpc.conf.xml, yang terletak di direktori yang sama.
nano /usr/local/freeswitch/conf/autoload_configs/modules.conf.xml

Default: user - freeswitch, kata sandi berfungsi, port 8080.

Kami membebani frisvitch atau server itu sendiri. Ada beberapa cara untuk melakukan ini: reboot seluruh sistem (reboot) menggunakan perintah kontrol layanan: systemctl stop freeswitch kemudian systemctl start freeswitch atau systemctl restart freeswitch .

Setelah itu, ketikkan http://IP_RASPBERRY:8080/portal/index.html# di browser dan masuk di bawah freeswitch pengguna dengan kata sandi berfungsi, kita masuk ke panel admin FreesWITCH kecil. Kita dapat melihat status, pengguna terdaftar, dll.



Mari kita coba sedikit lebih jauh:

Mengetik permintaan di browser menampilkan status FS:

 http://freeswitch:works@IP_RASPBERRY:8080/webapi/sofia?status%20profile%20internal 



Sintaksnya cukup sederhana, jika perintah berisi lebih dari satu kata, maka kata pertama dan kedua dipisahkan oleh tanda tanya, dan sisanya oleh spasi.

Mari kita coba jalankan perintah ini dari MajorDoMo: dari halaman utama "Smart Home", buka Control Panel - Console

Di dalamnya kita ketik perintah:

 GetURL("http://freeswitch:works@IP_RASPBERRY:8080/webapi/sofia?status%20profile%20internal") 

Sebagai tanggapan, kami mendapatkan status server VoIP kami.



Sekarang coba percobaan berikut:

Idenya adalah untuk memulai panggilan (menggunakan fungsi asal) dari sisi Smart Home ke pelanggan dengan nomor 1001 (MicroSip), dan kemudian mentransfer panggilan yang sudah selesai ke paket panggilan untuk panggilan keluar ke 1002 (PhonerLite). Perintah API terlihat seperti ini: pengguna asli / 1001 1002 XML default memulai panggilan ke nomor konsol 1001, setelah handset diambil (diambil secara otomatis), nomor dan 1002 dipanggil dari paket panggilan default.

Kami menerjemahkannya ke formulir yang dapat dimengerti untuk MajorDoMo dan browser:

 GetURL("http://freeswitch:works@192.168.43.60:8080/webapi/originate?user/1001%201002%20XML%20default") 

Pertama, satu softphone berdering, setelah beberapa detik ada panggilan ke yang kedua.



Sebagai kesimpulan, atau implementasi praktis kecil


Belum lama ini saya memiliki kebutuhan untuk menjalin komunikasi dengan seseorang yang secara fisik tidak dapat menelepon (dial) di ponsel. Saat ini, kebutuhan untuk ini telah menghilang, tetapi masih memutuskan untuk memeriksa kelayakannya. Menggunakan gateway VoIP (solusi yang lebih terjangkau di penghentian FXS atau gateway GSM yang lebih mahal), tombol nirkabel "smart home" dapat diterapkan jika Anda mau.

Opsi kedua: Sistem rumah pintar MajorDoMo memiliki asisten suara Alice. Sekarang Anda dapat mencoba menghubungkan "Rumah Pintar" dengan pemilik dan ponselnya melalui jaringan publik.

Beberapa tautan

β†’ Situs web ClueCon dari pengembang FreeSWITCH
β†’ dokumentasi berbahasa Inggris FreeSWITCH
β†’ Situs pengembang MajorDoMo
β†’ Bagian satu: Petunjuk langkah-demi-langkah kecil untuk menginstal sistem operasi Smart Home berdasarkan pada komputer papan-tunggal Raspberry, modul Z-Way RaZberry dan perangkat lunak MajorDoMo
β†’ Bagian dua: lanjutan: modul Z-Way RaZberry dan perangkat lunak MajorDoMo
β†’ Bagian Tiga: Terus Membuat Rumah Cerdas Nirkabel

Source: https://habr.com/ru/post/id426429/


All Articles