Telepon SIP. Komputer dengan handset. Secara teori, banyak yang bisa dilakukan dengan mereka, tetapi mereka hanya digunakan untuk panggilan :-)
Baru-baru ini AsterConf berada di konferensi, dan di sana para vendor berbicara tentang ponsel mereka, kami tidak akan memilih siapa pun, mereka semua baik, di suatu tempat yang lebih baik, di suatu tempat yang lebih murah, bahkan mereka melakukan hal yang sama.
Beberapa vendor meningkatkan kualitas suara, seseorang memasang tablet dengan android, seseorang mencoba menambahkan beberapa jenis aplikasi. Dan semuanya agar kita menginstal ponsel ini di desktop.
Dan mungkin telepon adalah kandidat yang baik untuk peran remote di dunia IoT: Saya mengklik tombol dan mendapatkan hasilnya. Dan, menurut pendapat saya, tidak ada cukup cara sederhana untuk menghubungkan ponsel ke "Manajer" Anda. Sebagai bagian dari artikel ini, saya ingin menunjukkan bagaimana itu terlihat sederhana dalam diagram dan demonstrasi video.
Dan Anda berbagi dalam komentar, tolong, bahwa mungkin sesuatu yang serupa telah diterapkan di suatu tempat atau melengkapi saran dan pikiran Anda.
Ponsel memiliki URL Tindakan dan URI Tindakan.
URL tindakan memungkinkan kami mengirim acara yang berbeda ke url apa pun. Di url, kita bisa menentukan variabel yang sudah ditentukan sebelumnya yang akan diisi dengan data nyata selama panggilan.
Jadi, misalnya, pengaturan ponsel saya terlihat seperti.
Desainer URL Tindakan Online untuk YealinkURI Tindakan memungkinkan kita menerima perintah ke alamat IP telepon, dan telepon dapat melakukan panggilan, menjawab panggilan saat perintah, menambah volume, menyalakan ulang, dll. dalam video di bawah ini Anda dapat melihat bagaimana semua ini terjadi. Kami harus menunjukkan alamat dari mana tim akan datang.

Semuanya bisa dikonfigurasi, apa masalahnya, bro?
Ini adalah antarmuka yang cukup fungsional, tetapi ... mereka cukup sulit untuk diintegrasikan. Yaitu kita perlu mengambil 100.500 tindakan untuk membuatnya bekerja. Atau isi 100 bidang dalam pengaturan perangkat (Anda lihat sendiri di layar), atau bingung dengan ketentuan dan tentukan beberapa templat konfigurasi.
Akibatnya, ada banyak tindakan yang memudahkan Anda melakukan kesalahan dan tidak mendapatkan apa yang Anda inginkan, dan kemudian menghabiskan banyak waktu untuk mencari tahu alasan perilaku perangkat yang tidak pantas. Dan yah, jika Anda mengatasi satu, dan Anda memiliki lima hingga sepuluh, seratus, dan beberapa vendor dan bahkan model generasi yang berbeda. Puff puff puff ...
Apakah ini masalah? Apakah seseorang perlu mengelola telepon pelanggan? Kepada pelanggan? Dari desktop, laptop, atau ponsel cerdas Anda? Dukungan teknis? Baik internal maupun eksternal, misalnya, penyedia pertukaran telepon virtual? Apakah saya perlu memiliki akses ke telepon berbeda dari sekadar SIP? Mengintegrasikan ponsel dengan aplikasi, melewati IP-PBX?
Saya tidak bisa menjawab dengan tegas, ada minus dan plus. Dan untuk menyadari kelebihannya, saya ingin dapat dengan cepat menghubungkan URL Tindakan dan URI Tindakan ke "Manajer" saya. Saya menyebut manajer sebagai server dari mana saya dapat melihat secara terpusat daftar telepon, statusnya, dan dari mereka melakukan beberapa tindakan yang tersedia.
Mari kita lihat diagram.

Bayangkan kita memiliki klien soket web di telepon kita.
Maka kita perlu menentukan di telepon hanya alamat jaringan dari "Manajer" dan telepon kita akan terhubung. Saat terhubung, ponsel akan mengirimkan id, nama, mac. Ini akan memungkinkan kami untuk membandingkannya dengan daftar pelanggan PBX kami, misalnya.
Kemudian kami berlangganan acara yang terjadi di ponsel. Ada banyak dari mereka, ini adalah registrasi ulang, jawaban panggilan, penekanan tombol, dll. Kemudian kita dapat memanggil nomor dari Manajer kita dengan mengirimkan perintah. Atur DND, atau hapus DND. Lalu saya mengirim notifikasi atau pengingat ke ponsel, mengatur logo baru.
Bagaimana dengan keamanan? Secara umum, ponsel SIP dapat bekerja untuk NAT, mereka tidak memerlukan alamat eksternal. Tetapi jika Anda mengatur port server web ponsel ke jaringan Action URI (tempat admin bekerja) - harapkan kejutan yang tidak menyenangkan.
Tetapi jika ponsel akan terhubung ke "Manager" melalui websockets, maka ini adalah inisiatif dan haknya, itu dapat memutuskan, dan jika Anda terhubung ke server jauh karena NAT, itu akan terlihat seperti koneksi browser.
Cukup kata-kata, lebih dekat ke intinya. Saya menulis klien telepon kecil (yang menurut saya harus di telepon), yang terhubung ke server melalui soket web. Juga, browser terhubung ke server ini, yang dapat menerima pesan dari telepon dan mengirim perintah di sana.
Klien hanyalah pembungkus untuk URL Tindakan dan URI Tindakan, yang berfungsi dengan telepon melalui antarmuka yang sudah dikenalnya, dan membungkus semua data dalam soket web. Di soket web kami memiliki pesan JSON biasa yang dapat digunakan oleh pengembang web mana pun.
Tonton videonya, semuanya cukup sederhana. Semua kode cukup minimal hanya untuk menunjukkan konsep.
Apa yang terjadi di video?
- kami memulai server yang menerima koneksi di soket web,
- kami memulai klien (yang berfungsi dengan URL Tindakan & URI dengan telepon)
- klien terhubung ke server
- kami memulai server web (dengan halaman tempat kode untuk menghubungkan dari browser melalui websockets)
- buka halaman di browser, halaman terhubung ke server
- kami mengirim permintaan untuk informasi dari halaman
- permintaan masuk ke telepon dan mengembalikan informasi tentang saluran telepon
- kami juga dapat mengirim tim yang berbeda
- termasuk perintah untuk melakukan panggilan
- dan kemudian perintah menutup telepon
- semua data terlihat di log di halaman, serta di konsol server yang berfungsi dan telepon klien
- maka Anda dapat melihat bagaimana ia bereaksi terhadap perintah dari halaman telepon
Dengan demikian, menghubungkan ponsel ke Manajer hanyalah sebuah alamat. Dan pesan dari soket web ke presentasi berbeda dan sebaliknya dapat berupa pengembang apa pun. Dalam kasus saya, halaman terhubung ke Manajer. Secara umum, ini mungkin sistem yang lebih kompleks yang akan memproses perintah dan mengirim pesan ke telepon.
Memiliki metode koneksi yang sederhana bisa nyaman, dan karenanya lebih mudah dipelajari. Melalui antarmuka ini, secara teori, dimungkinkan untuk mengirim konfigurasi baru dan pesan tambahan, membuat ponsel mudah diintegrasikan ke dalam infrastruktur apa pun.
Secara umum, ini hanya pemikiran saya tentang hasil melihat produk baru di Asterkonf. Saya akan senang melihat di komentar pro dan kontra. Dan mungkin salah satu produsen akan melihat rasional dalam hal ini dan memperkenalkan chip :-)
Proyek Github