Sip.js: Мобильная поддержка

Созданный на 5 июн. 2014  ·  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

Это также может быть полезным примером того, как писать собственные SDH (в дополнение к 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 в качестве основного примера. Если вы действительно хотите иметь приложение для Android, вы можете использовать Crosswalk для объединения своего веб-приложения с WebView с поддержкой WebRTC.

@lylepratt , вот базовое руководство по использованию Crosswalk с SIP.js, если вам это интересно.

Если вы хотите интегрировать плагины Cordova в свое приложение, вы можете использовать Crosswalk Cordova, чтобы добавить функциональность WebRTC в приложения Android, созданные Cordova. Начав с шаблона HelloWorld Crosswalk Cordova , я смог создать приложение SIP.js Demo Phone , заменив каталог assets / 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, чтобы сделать это в разумные сроки.

Возможно, мы сможем сделать плагин совместимым с API SIP.js.
11 июня 2014 г. в 14:26 «Джозеф Фрейзер» [email protected] написал:

@lylepratt https://github.com/lylepratt , вот базовое руководство
http://sipjs.com/guides/mobile/android-native/ для использования Crosswalk с
SIP.js, если вам это интересно.

Если вы хотите интегрировать плагины Cordova в свое приложение, вы можете использовать Crosswalk.
Кордова https://crosswalk-project.org/#documentation/cordova принести
Функциональность WebRTC для приложений Android, созданная Cordova. После запуска
с шаблоном HelloWorld Crosswalk Cordova
https://crosswalk-project.org/#documentation/cordova/develop_an_application ,
Мне удалось собрать демонстрационный телефон SIP.js http://sipjs.com/demo-phone/
app, заменив каталог assets / 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.WebRTC.MediaHandler по умолчанию (это зависит от JS, имеющего прямой доступ к PeerConnection, что, как мы видели, еще не особенно возможно на iOS), но предоставит настраиваемый MediaHandler , методы которого вызывают подключаемый модуль PhoneRTC.

Мы хотели бы, чтобы вы рассмотрели возможность использования SIP.js в своем приложении, поэтому я обязательно буду держать вас в курсе того, как проходит мой эксперимент.

@ joseph-onsip, согласно нашему обсуждению, я понял, что вносимые вами изменения являются изменениями уровня приложения javascript. Пользовательский обработчик мультимедиа должен быть совместим с любой платформой, реализующей API phoneRTC, и не ограничивается iOS.

Это замечательные новости. Я хотел бы поэкспериментировать с вашим POC в эти выходные, если вы добьетесь каких-либо успехов.

Хорошо, я добился небольшого прогресса. Вот приложение, которое может совершать звонки на конечную точку SIP с поддержкой WebRTC, работающую в настольном браузере (я тестировал демонстрационный телефон SIP.js в Chrome).

В настоящее время он работает только на Android, потому что это то, против чего я работаю, и мне пришлось внести небольшие изменения в плагин phonertc. Если такое же изменение будет внесено в код плагина iOS, я ожидаю, что это приложение будет работать и на этой платформе, исключая любые специфические для платформы различия в реализации WebRTC.

Вот это да. Глядя на ваш код, заставить его работать казалось довольно простым. Вы просто заменили mediaHandlerFactory с помощью PhoneRTCMediaHandler (вместе с вашим изменением в плагине PhoneRTC), и он "просто сработал"?

Изменить: сначала я подумал, что PhoneRTCMediaHandler был включен в PhoneRTC, но теперь я понимаю, что вы написали это, и все это имеет гораздо больший смысл.

это "просто сработало"?

Что ж, мне удалось передать звук только между Android и Chrome (и на данный момент только в Chrome, но я клянусь, что он работал, когда я последний раз комментировал). Я думаю, что приложение на моем телефоне не правильно воспроизводит поток, поэтому я ищу возможность изменить плагин, чтобы он работал стабильно), но да, мы пытались сделать SIP.js очень настраиваемым в этом отношении. Я активно участвовал в рефакторинге, который сделал это возможным, и это одна из причин, по которой мне интересно собрать рабочий пример этого.

Я думаю, что приложение на моем телефоне неправильно воспроизводит поток

Ух, это оказалось проблемой WebRTC на моем ноутбуке. Перезагрузка исправила.

Кроме того, я смог получить двусторонний звук при вызове _из_ Chrome _to_ Android (раньше у меня работало только другое направление). Мне просто нужно было убедиться, что Chrome предлагает только звук, а не видео.

Мне все еще не удалось вызвать Firefox, поэтому я сделал для него проблему .

Android L имеет встроенную поддержку WebRTC.
Мы создали плагин iOS Cordova .
Руководства доступны на sipjs.com .

Есть ли планы перенести его на phonertc 2?

@thomasquintana работает над переносом на phonertc 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 может работать на кордове с переходом на Android и iosrtc на iOS, однако у SIP.Js 0.9.2 есть некоторые ошибки в материалах RTC.

@egreenmachine, пожалуйста, поработайте и над

@greenmachine интересуется

если вы не против поделиться подходом, который вы, ребята, используете с nativescript? вы, ребята, используете родной webrtc?

@andrewvmail В итоге мы использовали собственный WebRTC и создали собственный SDH для взаимодействия с ним. Хотя я говорю это просто, это было далеко не так. На данный момент я не думаю, что мы собираемся обнародовать реализацию. Это довольно сложно запустить, и мы ожидаем, что время, которое нам потребуется, чтобы поддержать его публично, слишком велико. Кроме того, это работает для нашего приложения, но это довольно специфическая реализация. Нам придется поработать, чтобы сделать его универсальным, и мы ожидаем, что люди столкнутся с проблемами, пытаясь использовать его из коробки. Из активности сообщества мы видим, что большинству людей нужно что-то, что работает «из коробки», всего лишь с некоторыми простыми параметрами конфигурации. На самом деле это было бы не так.

Для мобильных устройств нашей целевой поддержкой будут основные мобильные браузеры. Это будет Chrome для Android и Safari для iOS. Если люди хотят отправить обратно PR для SDH, который они создают для других сред, мы приветствуем это.

Я надеюсь, что это немного проясняет облака вокруг мобильных устройств. Свяжитесь с нами, если у вас есть другие вопросы или комментарии.

Я также закончил тем, что написал собственный SDH для тщательного взаимодействия с SIP. [email protected] с предоставленной реализацией Cordova / iOS WebRTC. Это позволило мне решить проблему, когда Кордова жаловалась на аргумент RTCPeerConnection.setLocalDescription () и setRemoteDescription ().

И сделали его общедоступной библиотекой npm:
https://github.com/WesUnwin/cordova-ios-session-description-handler

Это также может быть полезным примером того, как писать собственные SDH (в дополнение к 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 не для новичков. Некоторые пользователи сообщили об успехе с React Native, и это может быть путем наименьшего сопротивления.

Здравствуйте, а вы поддерживаете браузер Baidu (китай)? Могут зарегистрироваться, также могут отправлять информацию, не могут дозвониться

Была ли эта страница полезной?
0 / 5 - 0 рейтинги