Sip.js: دعم المحمول

تم إنشاؤها على ٥ يونيو ٢٠١٤  ·  26تعليقات  ·  مصدر: onsip/SIP.js

هذه مشكلة عامة لمناقشة دعم الأجهزة المحمولة لـ SIP.js. انظر https://github.com/alongubkin/phonertc/issues/7

enhancement question

التعليق الأكثر فائدة

انتهى بي الأمر أيضًا بكتابة SDH مخصص لواجهة SIP بعناية. [email protected] مع تطبيق cordova / iOS WebRTC المقدم. لقد سمح لي بحل مشكلة حيث كان كوردوفا يشتكي من الحجة لـ RTCPeerConnection.setLocalDescription () & setRemoteDescription ().

وجعلتها متاحة كمكتبة npm متاحة للجمهور:
https://github.com/WesUnwin/cordova-ios-session-description-handler

قد يكون هذا أيضًا مثالًا مفيدًا لكيفية كتابة SDHs المخصصة (بالإضافة إلى SDH الافتراضي داخل مكتبة SIP.js التي وجدتها أيضًا نقطة بداية مفيدة). أتمنى أن يساعد هذا أي شخص!

ال 26 كومينتر

شكرا لفتح هذا جوزيف. حالة الاستخدام هي تطبيق عبر الأنظمة الأساسية (الويب ، iOS ، Android) يدعم مكالمات SIP. لقد كنت أعمل على مكون Phonegap الإضافي لـ PJSip ، ولكنه يضيف طبقة إضافية من التعقيد يمكن إزالتها إذا تمكنا من تشغيل WebRTC على iOS و Android.

هل تعتقد أن شيئًا مثل PhoneRTC يستحق المتابعة في حالة الاستخدام هذه؟

ألق نظرة هنا على إجابتي هنا: https://github.com/alongubkin/phonertc/issues/7

لا أعتقد أن PhoneRTC في حالته الحالية سيعمل مع SIP.js. على الرغم من ذلك ، فإن ما يقدمه هو نقطة انطلاق جيدة في المكان الذي يوجد فيه تطوير الأجهزة المحمولة.

بالنسبة لنظام iOS ، تمكنت من إعادة تجميع مكتبات WebRTC (باستخدام SSL) وأعمل الآن على إنشاء طبقة Obj-C لعرض وظائف WebRTC المطلوبة إلى SIP.js. هدفي هنا هو الحصول على SIP.js و iOS لتتمكن من إجراء مكالمات صوتية عبر WebRTC.

بمجرد أن تصبح وظيفة الصوت صلبة ، سأبدأ العمل على إضافة الفيديو. تتمثل فكرتي للفيديو في الحصول على وظيفة تأخذ معرف عنصر على الصفحة وتمريره إلى Obj-C. ثم اطلب من الكود الأصلي العثور على هذا العنصر على الصفحة ووضع عنصر فيديو أصلي فوقه. أعتقد أنه من المحتمل أن يخلق أفضل تجربة للمستخدم. ما زلت منفتحًا على أفكار أخرى حول كيفية التعامل مع الفيديو.

lylepratt ، أردت فقط أن أذكر أنه على الرغم من أن دعم iOS قيد العمل ، يمكنك الحصول على دعم Android ببساطة عن طريق زيارة موقع التطبيق . ألق نظرة على SIP.js Demo Phone للحصول على مثال أساسي. إذا كنت ترغب حقًا في الحصول على تطبيق Android ، فيمكنك استخدام Crosswalk لتجميع تطبيق الويب الخاص بك مع WebView الذي يدعم WebRTC.

lylepratt ، إليك برنامج تعليمي أساسي لاستخدام Crosswalk مع SIP.js ، إذا كنت مهتمًا بذلك.

إذا كنت ترغب في دمج مكونات كوردوفا الإضافية في تطبيقك ، فيمكنك استخدام Crosswalk Cordova لجلب وظائف WebRTC إلى تطبيقات Android التي تم إنشاؤها بواسطة Cordova. بعد البدء في نموذج HelloWorld من Crosswalk Cordova ، تمكنت من إنشاء تطبيق SIP.js Demo Phone عن طريق استبدال دليل الأصول / www بأصول الهاتف التجريبي وإضافة الأذونات التالية إلى 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" />

شكرا على المعلومات جوزيف. لسوء الحظ ، يمكننا فقط متابعة شيء ما
يعمل على نظام iOS أيضًا.

بناءً على هذه المناقشات ، يبدو أنه سيتعين علينا الاستمرار
باستخدام ملحق PJSip للقيام بذلك في فترة زمنية معقولة.

ربما يمكننا جعل المكون الإضافي متوافقًا مع واجهة برمجة تطبيقات SIP.js.
في 11 حزيران (يونيو) 2014 الساعة 2:26 ظهرًا ، كتب "جوزيف فرايزر" [email protected] :

lylepratt https://github.com/lylepratt ، إليك برنامج تعليمي أساسي
http://sipjs.com/guides/mobile/android-native/ لاستخدام Crosswalk مع
SIP.js ، إذا كنت مهتمًا بذلك.

إذا كنت ترغب في دمج مكونات كوردوفا الإضافية في تطبيقك ، فيمكنك استخدام Crosswalk
كوردوفا https://crosswalk-project.org/#documentation/cordova لجلب
وظائف WebRTC لتطبيقات Android التي تم إنشاؤها بواسطة Cordova. بعد البدء
مع قالب HelloWorld الخاص بـ Crosswalk Cordova
https://crosswalk-project.org/#documentation/cordova/develop_an_application ،
تمكنت من بناء SIP.js Demo Phone http://sipjs.com/demo-phone/
app عن طريق استبدال دليل الأصول / www بأصول الهاتف التجريبي
https://github.com/onsip/sipjs-examples/tree/6d260bfd8e3e1655a881ad1cad446ed2672d6611/demo-phone
وإضافة الأذونات التالية إلى AndroidManifest.xml:



-
قم بالرد على هذا البريد الإلكتروني مباشرة أو قم بعرضه على GitHub
https://github.com/onsip/SIP.js/issues/31#issuecomment -45802303.

أعتقد أن لدي إحساسًا جيدًا بما يجب فعله لـ SIP.js لاستخدام مكون PhoneRTC الإضافي للتعامل مع المكالمات الصوتية على iOS ، لذلك أخطط لبدء العمل على إثبات المفهوم الليلة ، لأنني مهتمًا شخصيًا بإظهار حالة الاستخدام هذه.

الفكرة العامة هي أن تطبيقات iOS التي تستخدم SIP.js لن تستخدم SIP الافتراضي. سيوفر MediaHandler مخصصًا تستدعي طرقه المكوّن الإضافي PhoneRTC.

يسعدنا أن تفكر في استخدام SIP.js لتطبيقك ، لذلك سأحرص على إطلاعك على كيفية سير تجربتي.

@ joseph-onsip ، حسب مناقشتنا ، فهمت أن التغييرات التي كنت تجريها هي تغييرات على مستوى تطبيق جافا سكريبت. يجب أن يكون معالج الوسائط المخصص متوافقًا مع أي نظام أساسي يقوم بتطبيق phoneRTC api ، ولا يقتصر على iOS.

هذه أخبار رائعة. أرغب في تجربة POC الخاص بك في نهاية هذا الأسبوع إذا أحرزت أي تقدم.

حسنًا ، لقد أحرزت بعض التقدم. إليك تطبيق يمكنه إجراء مكالمات إلى نقطة نهاية SIP التي تدعم WebRTC والتي تعمل في مستعرض سطح المكتب (لقد اختبرت باستخدام SIP.js Demo Phone في Chrome).

حاليًا ، يعمل فقط على نظام Android ، لأن هذا ما أقوم بتطويره مقابل ذلك وكان علي إجراء تغيير بسيط على المكون الإضافي phonertc. إذا تم إجراء نفس التغيير على رمز المكون الإضافي لنظام iOS ، أتوقع أن يعمل هذا التطبيق على هذا النظام الأساسي أيضًا ، مع حظر أي اختلافات خاصة بالنظام الأساسي في تنفيذ WebRTC.

رائع. من خلال النظر إلى الكود الخاص بك ، بدا تشغيله بسيطًا إلى حد ما. لقد تجاوزت للتو mediaHandlerFactory بـ PhoneRTCMediaHandler (بالإضافة إلى التغيير الذي أجريته على المكون الإضافي PhoneRTC) و "نجح الأمر للتو"؟

تحرير: في البداية اعتقدت أن برنامج PhoneRTCMediaHandler تم تضمينه في PhoneRTC ، لكنني أدرك الآن أنك كتبت ذلك وهذا كله منطقي أكثر.

انها "عملت للتو"؟

حسنًا ، لقد تمكنت فقط من تدفق الصوت بين Android و Chrome (وفي الوقت الحالي ، إلى Chrome فقط ، لكنني أقسم أنه كان يعمل عندما قمت بالتعليق آخر مرة. أعتقد أن التطبيق الموجود على هاتفي ليس كذلك تشغيل البث بشكل صحيح ، لذلك أنا أبحث في تعديل المكون الإضافي لجعله يعمل باستمرار) ، لكن نعم ، لقد حاولنا جعل SIP.js قابلاً للتكوين للغاية في هذا الصدد. لقد كنت منخرطًا بشكل كبير في إعادة البناء التي جعلت هذا النوع من الأشياء ممكنًا ، وهو أحد الأسباب التي دفعتني للحصول على مثال عملي لذلك.

أعتقد أن التطبيق الموجود على هاتفي لا يقوم بتشغيل البث بشكل صحيح

آه ، اتضح أن هذه مشكلة WebRTC على الكمبيوتر المحمول الخاص بي. إعادة التشغيل إصلاحه.

أيضًا ، تمكنت من الحصول على صوت ثنائي الاتجاه في مكالمة _from_ Chrome _to_ Android (كنت قد حصلت فقط على الاتجاه الآخر الذي يعمل سابقًا). كان علي فقط التأكد من أن Chrome كان يقدم الصوت فقط وليس الفيديو أيضًا.

ما زلت غير قادر على الاتصال بـ Firefox ، لذا فقد قمت بعمل مشكلة له.

تم دمج Android L في دعم WebRTC.
لقد أنشأنا مكون iOS Cordova الإضافي .
الأدلة متوفرة على sipjs.com .

أي خطط لنقله إلى الهاتف 2؟

thomasquintana تعمل على نقلها إلى الهاتف 2.0. لقد أوشك على الانتهاء.

alongubkin ربط النهايات السائبة الآن ... ابحث عن طلب سحب قريبًا.
شوكة: https://github.com/BetterVoice/phonertc

egreenmachine هنا نسخة محدثة من معالج الوسائط الذي يعمل مع الشوكة أعلاه (أو سيفعل قليلاً). يدعم أيضًا جلسات متعددة:
https://github.com/BetterVoice/PhoneRTCMediaHandler

نظرًا لأن المعلومات عبر المصادر الأخرى تبدو مبعثرة قليلاً وتم تعديل ذلك مؤخرًا ، فما هي الطريقة الموصى بها لتكامل الأجهزة المحمولة الآنegreenmachine؟

ليس لدي الكثير للإبلاغ عنه هنا ، كما يمكنك أن تخبرني على الأرجح بإزالة المعلم الرئيسي. أستطيع أن أقول إننا نعمل داخليًا على تطبيق جوال باستخدام NativeScript ومدعوم بـ SIP.js. آمل أنه قد تكون هناك بعض النتائج العامة التي ستسمح لمستخدمي SIP.js بفعل الشيء نفسه بطريقة بسيطة. ومع ذلك ، لا يزال من السابق لأوانه معرفة ذلك على وجه اليقين. ومع ذلك ، من الممكن بالتأكيد استخدام برامج تشغيل WebRTC الأصلية و SIP.js و NativeScript لإنشاء تطبيق جوال. بمجرد أن يكون لدي المزيد لمشاركته ، سأقوم بتحديث هذه المشكلة.

cybrox SIP.Js النسخة 0.7.8 يمكن أن يعمل على قرطبة مع ممر على الروبوت ودائرة الرقابة الداخلية iosrtc على وSIP.Js 0.9.2 ولكن حصلت بعض الأخطاء في RTC الاشياء.

egreenmachine ، يرجى العمل على رد الفعل الأصلي أيضًا ، شكرًا لك :)

greenmachine فضولي بشأن جهودكم يا رفاق للحصول على sipjs مع النص الأصلي. أنا أقوم بتشغيل sipjs 0.7.8 باستخدام تطبيق كوردوفا ولكن نظرًا لأن sipjs لم يعد يدعم كوردوفا بعد الآن في البحث عن بديل محتمل.

إذا كنت لا تمانع في مشاركة النهج الذي تستخدمه يا رفاق مع nativescript؟ هل أنتم تستخدمون webrtc الأصلي؟

andrewvmail لقد انتهينا من استخدام WebRTC الأصلي وإنشاء SDH مخصص للتفاعل مع ذلك. بينما أجعل الأمر يبدو بسيطًا ، إلا أنه كان بعيدًا عن ذلك. في هذه المرحلة ، لا أعتقد أننا سننشر التنفيذ على الملأ. من الصعب جدًا الركض ونتوقع أن يكون الوقت الذي يجب أن نلتزم فيه لدعمه علنًا مرتفعًا للغاية. بالإضافة إلى ذلك ، فهو يعمل مع تطبيقنا ولكنه تطبيق محدد جدًا. سيتعين علينا العمل لجعله عامًا ونتوقع أن يواجه الأشخاص مشكلات في محاولة استخدامه خارج الصندوق. من نشاط المجتمع ، نرى أنه يبدو أن معظم الأشخاص يريدون شيئًا يعمل خارج الصندوق مع بعض معلمات التكوين البسيطة فقط. هذا لن يكون ذلك حقا.

بالنسبة للجوال ، سيكون دعمنا المستهدف هو متصفحات الجوال الرئيسية. سيكون هذا Chrome على Android و Safari على iOS. إذا رغب الناس في إعادة إرسال وثيقة العلاقات العامة لـ SDH التي قاموا بإنشائها لبيئات أخرى ، فنحن نرحب بها.

آمل أن يؤدي هذا إلى مسح بعض السحابة حول الجوال. يرجى التواصل إذا كان لديك أي أسئلة أو تعليقات أخرى.

انتهى بي الأمر أيضًا بكتابة SDH مخصص لواجهة SIP بعناية. [email protected] مع تطبيق cordova / iOS WebRTC المقدم. لقد سمح لي بحل مشكلة حيث كان كوردوفا يشتكي من الحجة لـ RTCPeerConnection.setLocalDescription () & setRemoteDescription ().

وجعلتها متاحة كمكتبة npm متاحة للجمهور:
https://github.com/WesUnwin/cordova-ios-session-description-handler

قد يكون هذا أيضًا مثالًا مفيدًا لكيفية كتابة SDHs المخصصة (بالإضافة إلى SDH الافتراضي داخل مكتبة SIP.js التي وجدتها أيضًا نقطة بداية مفيدة). أتمنى أن يساعد هذا أي شخص!

أي تحديثات جديدة على هذا؟

لقد لاحظت:

“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.

المرجع: https://www.onsip.com/voip-news/onsip-news/sipjs-v0.8.0-supports-all-major-browsers-and-renegotiation

هل Nativescript مدعوم؟

لقد قمنا ببناء تطبيق OnSIP للجوال باستخدام Nativescript. ومع ذلك ، فإن تشغيل مكتبات WebRTC في Nativescript ليس للمبتدئين. أبلغ بعض المستخدمين عن نجاحهم في التفاعل الأصلي وقد يكون هذا المسار الأقل مقاومة.

مرحبًا ، هل يمكنك دعم متصفح Baidu (الصين)؟ يمكن التسجيل ، ويمكن أيضا إرسال المعلومات ، لا يمكن الاتصال

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات