Sip.js: Dukungan Seluler

Dibuat pada 5 Jun 2014  ·  26Komentar  ·  Sumber: onsip/SIP.js

Ini adalah masalah umum untuk membahas dukungan seluler untuk SIP.js. Lihat https://github.com/alongubkin/phonertc/issues/7

enhancement question

Komentar yang paling membantu

Saya juga akhirnya menulis SDH khusus untuk menghubungkan SIP dengan hati-hati. [email protected] dengan implementasi Cordova/iOS WebRTC yang disediakan. Itu memungkinkan saya untuk memecahkan masalah di mana cordova mengeluh tentang argumen ke RTCPeerConnection.setLocalDescription() & setRemoteDescription().

Dan membuatnya tersedia sebagai perpustakaan npm yang dapat diakses publik:
https://github.com/WesUnwin/cordova-ios-session-description-handler

Ini mungkin juga merupakan contoh yang berguna tentang cara menulis SDH kustom (selain SDH default di dalam perpustakaan SIP.js yang saya juga temukan sebagai titik awal yang berguna). Semoga ini bisa membantu siapa pun!

Semua 26 komentar

Terima kasih telah membuka Joseph ini. Kasus penggunaan adalah aplikasi lintas platform (Web, iOS, Android) yang mendukung panggilan SIP. Saya telah mengerjakan plugin Phonegap untuk PJSip, tetapi menambahkan lapisan kerumitan tambahan yang dapat dihapus jika kami dapat membuat WebRTC berfungsi di iOS & Android.

Apakah menurut Anda sesuatu seperti PhoneRTC layak dilakukan untuk kasus penggunaan ini?

Lihatlah tanggapan saya di sini: https://github.com/alongubkin/phonertc/issues/7

Saya tidak berpikir bahwa PhoneRTC dalam keadaan saat ini akan bekerja dengan SIP.js. Apa yang diberikannya adalah titik awal yang baik di mana pengembangan seluler berada.

Untuk iOS saya dapat mengkompilasi ulang perpustakaan WebRTC (dengan SSL) dan sekarang saya sedang bekerja untuk membuat lapisan Obj-C untuk mengekspos fungsi WebRTC yang diperlukan ke SIP.js. Tujuan saya di sini adalah membuat SIP.js dan iOS dapat melakukan panggilan audio WebRTC.

Setelah fungsionalitas audio solid, saya akan mulai bekerja menambahkan video. Ide saya untuk video adalah memiliki fungsi yang mengambil id elemen pada halaman dan meneruskannya ke Obj-C. Kemudian minta kode asli menemukan elemen itu di halaman dan tempatkan elemen video asli di atasnya. Saya pikir mungkin akan menciptakan pengalaman pengguna terbaik. Saya masih terbuka untuk ide lain tentang cara menangani video.

@lylepratt , saya hanya ingin menyebutkan bahwa meskipun dukungan iOS sedang bekerja, Anda dapat memiliki dukungan Android hanya dengan mengunjungi situs web aplikasi . Lihatlah Telepon Demo SIP.js untuk contoh dasar. Jika Anda benar-benar ingin memiliki aplikasi Android, Anda dapat menggunakan Crosswalk untuk menggabungkan aplikasi web Anda dengan WebView yang mendukung WebRTC.

@lylepratt , Berikut adalah tutorial dasar untuk menggunakan Crosswalk dengan SIP.js, jika Anda tertarik.

Jika Anda ingin mengintegrasikan plugin Cordova ke dalam aplikasi Anda, Anda dapat menggunakan Crosswalk Cordova untuk menghadirkan fungsionalitas WebRTC ke aplikasi Android yang dihasilkan oleh Cordova. Setelah memulai dengan template HelloWorld Crosswalk Cordova , saya dapat membuat aplikasi Telepon Demo SIP.js dengan mengganti direktori assets/www dengan aset telepon demo dan menambahkan izin berikut ke AndroidManifest.xml:

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

Terima kasih atas infonya Yusuf. Sayangnya kita hanya bisa mengejar sesuatu yang
bekerja di iOS juga.

Berdasarkan diskusi ini, sepertinya kita harus melanjutkan
dengan plugin PJSip untuk melakukannya dalam waktu yang wajar.

Mungkin kita bisa membuat plugin sesuai dengan SIP.js API.
Pada 11 Juni 2014 14:26, "Joseph Frazier" [email protected] menulis:

@lylepratt https://github.com/lylepratt , Ini tutorial dasarnya
http://sipjs.com/guides/mobile/android-native/ untuk menggunakan Crosswalk dengan
SIP.js, jika Anda tertarik dengan itu.

Jika Anda ingin mengintegrasikan plugin Cordova ke dalam aplikasi Anda, Anda dapat menggunakan Crosswalk
Cordova https://crosswalk-project.org/#documentation/cordova untuk dibawa
Fungsionalitas WebRTC untuk aplikasi Android yang dihasilkan oleh Cordova. Setelah memulai
dengan template HelloWorld Crosswalk Cordova
https://crosswalk-project.org/#documentation/cordova/develop_an_application ,
Saya dapat membuat Telepon Demo SIP.js http://sipjs.com/demo-phone/
aplikasi dengan mengganti direktori assets/www dengan aset telepon demo
https://github.com/onsip/sipjs-examples/tree/6d260bfd8e3e1655a881ad1cad446ed2672d6611/demo-phone
dan menambahkan izin berikut ke AndroidManifest.xml:




Balas email ini secara langsung atau lihat di GitHub
https://github.com/onsip/SIP.js/issues/31#issuecomment -45802303.

Saya pikir saya memiliki pemahaman yang baik tentang apa yang perlu dilakukan agar SIP.js menggunakan plugin PhoneRTC untuk menangani panggilan audio di iOS, jadi saya berencana untuk mulai mengerjakan bukti konsep malam ini, karena saya secara pribadi tertarik untuk mendemonstrasikan kasus penggunaan ini.

Ide umumnya adalah bahwa aplikasi iOS yang menggunakan SIP.js tidak akan menggunakan SIP.WebRTC.MediaHandler default (itu tergantung pada JS yang memiliki akses langsung ke PeerConnection, yang kami lihat belum terlalu layak di iOS), tetapi akan menyediakan MediaHandler khusus yang metodenya memanggil plugin PhoneRTC.

Kami ingin Anda mempertimbangkan untuk menggunakan SIP.js untuk aplikasi Anda, jadi saya pasti akan memberi tahu Anda tentang bagaimana eksperimen saya berjalan.

@joseph-onsip, menurut diskusi kami, pemahaman saya bahwa perubahan yang Anda buat adalah perubahan tingkat aplikasi javascript. Pengendali media khusus harus kompatibel dengan platform apa pun yang menerapkan api phoneRTC, dan tidak terbatas pada iOS.

Itu berita bagus. Saya ingin bereksperimen dengan POC Anda akhir pekan ini jika Anda membuat kemajuan.

Baiklah, saya telah membuat sedikit kemajuan. Berikut adalah aplikasi yang dapat melakukan panggilan ke titik akhir SIP berkemampuan WebRTC yang berjalan di browser desktop (saya menguji dengan Telepon Demo SIP.js di Chrome).

Saat ini, ini hanya berfungsi di Android, karena itulah yang sedang saya kembangkan dan saya harus membuat sedikit perubahan pada plugin phonertc. Jika perubahan yang sama dilakukan pada kode plugin iOS, saya berharap aplikasi ini juga berfungsi pada platform itu, kecuali perbedaan spesifik platform apa pun dalam implementasi WebRTC.

Wow. Dari melihat kode Anda, membuatnya berfungsi tampak cukup sederhana. Anda baru saja mengganti mediaHandlerFactory dengan PhoneRTCMediaHandler (bersama dengan perubahan Anda pada Plugin PhoneRTC) dan itu "berhasil"?

Sunting: Pada awalnya saya berpikir bahwa PhoneRTCMediaHandler disertakan dalam PhoneRTC, tetapi sekarang saya menyadari bahwa Anda menulis itu dan ini semua jauh lebih masuk akal.

itu "hanya bekerja"?

Yah, saya hanya bisa mengalirkan audio antara Android dan Chrome (dan, saat ini, hanya ke Chrome, tapi saya yakin itu berfungsi ketika saya terakhir berkomentar. Saya pikir aplikasi di ponsel saya tidak berfungsi. memutar ulang aliran dengan benar, jadi saya ingin memodifikasi plugin agar berfungsi secara konsisten), tetapi ya, kami telah mencoba membuat SIP.js sangat dapat dikonfigurasi dalam hal ini. Saya sangat terlibat dalam refactor yang memungkinkan hal semacam ini, yang merupakan salah satu alasan saya tertarik untuk mengumpulkan contoh yang berfungsi.

Saya pikir aplikasi di ponsel saya tidak memutar ulang streaming dengan benar

Ugh, ini ternyata menjadi masalah WebRTC di laptop saya. Mem-boot ulang memperbaikinya.

Juga, saya bisa mendapatkan audio dua arah pada panggilan _from_ Chrome _to_ Android (saya hanya mendapatkan arah lain yang berfungsi sebelumnya). Saya hanya perlu memastikan Chrome hanya menawarkan audio dan bukan juga video.

Saya masih belum dapat menghubungi Firefox, jadi saya membuat masalah untuk itu.

Android L memiliki dukungan WebRTC bawaan.
Kami telah membuat Plugin Cordova iOS .
Panduan tersedia di sipjs.com .

Ada rencana untuk port ke phonertc 2?

@thomasquintana sedang mengerjakan porting ke phonertc 2.0. Ini hampir selesai.

@alongubkin Mengikat ujung yang longgar sekarang...cari permintaan tarik segera.
Garpu: https://github.com/BetterVoice/phonertc

@egreenmachine Ini adalah versi terbaru dari pengendali media yang bekerja dengan garpu di atas (atau akan sedikit). Juga mendukung beberapa sesi:
https://github.com/BetterVoice/PhoneRTCMediaHandler

Karena informasi di seluruh sumber lain tampaknya sedikit tersebar dan ini baru saja dimodifikasi, apa cara yang disarankan untuk integrasi seluler saat ini @egreenmachine?

Saya tidak memiliki banyak hal untuk dilaporkan di sini, karena Anda mungkin dapat mengetahui dari saya menghapus tonggak sejarah. Saya dapat mengatakan bahwa secara internal kami sedang mengerjakan aplikasi seluler menggunakan NativeScript dan didukung oleh SIP.js. Saya berharap bahwa mungkin ada beberapa hasil yang dihadapi publik dari yang akan memungkinkan pengguna SIP.js melakukan hal yang sama dengan cara yang sederhana. Namun, masih terlalu dini untuk memastikannya. Karena itu, sangat mungkin untuk menggunakan driver WebRTC asli, SIP.js, dan NativeScript untuk membuat aplikasi seluler. Setelah saya memiliki lebih banyak untuk dibagikan, saya akan memperbarui masalah ini.

@cybrox SIP.Js versi 0.7.8 dapat bekerja pada cordova dengan penyeberangan di Android dan iosrtc di iOS, namun SIP.Js 0.9.2 mendapat beberapa kesalahan pada hal-hal RTC.

@egreenmachine tolong kerjakan reaksi asli juga, terima kasih :)

@greenmachine penasaran dengan usaha kalian mendapatkan sipjs dengan nativescript. saya menjalankan sipjs 0.7.8 dengan aplikasi cordova tetapi karena sipjs tidak mendukung cordova lagi mencari pengganti potensial.

jika Anda tidak keberatan membagikan pendekatan yang Anda gunakan dengan skrip asli? apakah kalian menggunakan webrtc asli?

@andrewvmail Kami akhirnya menggunakan WebRTC asli dan membuat SDH khusus untuk berinteraksi dengan itu. Sementara saya membuatnya terdengar sederhana, itu jauh dari itu. Pada titik ini saya tidak berpikir bahwa kita akan mempublikasikan implementasinya. Cukup sulit untuk menjalankannya dan kami berharap waktu yang kami harus berkomitmen untuk mendukungnya secara publik terlalu tinggi. Selain itu, ini berfungsi untuk aplikasi kami tetapi ini adalah implementasi yang cukup spesifik. Kami harus melakukan pekerjaan untuk membuatnya generik dan kami berharap orang-orang akan mengalami masalah saat mencoba menggunakannya di luar kotak. Dari aktivitas komunitas, kami melihat bahwa kebanyakan orang menginginkan sesuatu yang berjalan di luar kebiasaan hanya dengan beberapa parameter konfigurasi sederhana. Ini tidak akan benar-benar seperti itu.

Untuk seluler, dukungan target kami adalah browser seluler utama. Ini adalah Chrome di Android dan Safari di iOS. Jika orang ingin mengirimkan kembali PR untuk SDH yang mereka buat untuk lingkungan lain, kami akan menyambutnya.

Saya harap ini membersihkan beberapa awan di sekitar seluler. Silakan hubungi jika Anda memiliki pertanyaan atau komentar lain.

Saya juga akhirnya menulis SDH khusus untuk menghubungkan SIP dengan hati-hati. [email protected] dengan implementasi Cordova/iOS WebRTC yang disediakan. Itu memungkinkan saya untuk memecahkan masalah di mana cordova mengeluh tentang argumen ke RTCPeerConnection.setLocalDescription() & setRemoteDescription().

Dan membuatnya tersedia sebagai perpustakaan npm yang dapat diakses publik:
https://github.com/WesUnwin/cordova-ios-session-description-handler

Ini mungkin juga merupakan contoh yang berguna tentang cara menulis SDH kustom (selain SDH default di dalam perpustakaan SIP.js yang saya juga temukan sebagai titik awal yang berguna). Semoga ini bisa membantu siapa pun!

Ada pembaruan baru tentang ini?

Saya perhatikan:

“The bulk of SIP.js no longer cares about the media and what it’s doing, which opens up some exciting possibilities, like running it in a non-web browser, NativeScript on a phone, or Node.js on a desktop app,” notes James Criscuolo, Director of Software Engineering at OnSIP.

Ref: https://www.onsip.com/voip-news/onsip-news/sipjs-v0.8.0-supports-all-major-browsers-and-renegosiasi

Apakah Nativescript didukung?

Kami telah membangun aplikasi seluler OnSIP menggunakan Nativescript. Karena itu - menjalankan perpustakaan WebRTC di Nativescript bukan untuk pemula. Beberapa pengguna telah melaporkan keberhasilan dengan reaksi asli dan itu mungkin jalur yang paling tidak tahan.

Halo, dapatkah Anda mendukung browser Baidu (China)? Bisa daftar, bisa juga kirim informasi, tidak bisa dial

Apakah halaman ini membantu?
0 / 5 - 0 peringkat