Cordova-plugin-iosrtc: [Announcement] cordova-plugin-iosrtc Version 6.x.x notes

Created on 29 Oct 2019  Â·  36Comments  Â·  Source: cordova-rtc/cordova-plugin-iosrtc

Hello cordova-rtc users,

I have released cordova-plugin-iosrtc 6.0.0

Changelog Version 6.0.0

  • Use WebRTC M69
  • Use WebRTC.framework
  • implement PluginRTCVideoCaptureController with MediaTrackConstraintSet
  • Replace the libwebrtc static lib with the dynamic library from the WebRTC.framework build process using M69 (PR #399 by @hthetiot)
  • Be able to use minAspectRatio/maxAspectRatio #287
  • webrtc/adapter breaks deviceId constraint #282
  • Support for facingMode as a video constraint #315
  • Capturing a static image from the local MediaStream #116
  • Added Speakerphone funcionality #379
  • Restore PluginRTCAudioController including selectAudioOutput and move EnumerateDevice. setPreferredInput| saveAudioDevice into PluginRTCAudioController
  • Fix closing and re-opening local stream several times #247
  • H264 issues #170
  • implement RTCPeerConnectionFactory(encoderFactory, decoderFactory) using getSupportedVideoEncoder to enable VP8 and VP9 #416
  • Add Script to manipulate WebRTC binary architectures #421
  • Use clean WebRTC.framework build with x86 and ARM support #412
  • Decode XML entities in project name in iosrtc-swift-support.js hook #413
  • Update travis build to use Xcode 11.0 (11A420a) and iOS 13 support #376
  • Generic RTCPeerConnection constraint handling #119 via #394
  • Video renders in landscape, but not portrait orientation #360
  • Adapter JS change frameRate constraints #286
  • Regression switch camera fail (stop stream, remove stream from peer, get stream, add stream to peer, renegociate, fail on m69 but not master)
  • Fix GSM call interrupts the current WebRTC call (Note: Use cordova.plugins.backgroundMode.enable(); on local media Start/Stop).

Full changelogs: https://github.com/cordova-rtc/cordova-plugin-iosrtc/blob/master/CHANGELOG.md#version-600

NPM: https://www.npmjs.com/package/cordova-plugin-iosrtc
GitHub Tag: https://github.com/cordova-rtc/cordova-plugin-iosrtc/tree/6.0.0

To upgrade

cordova plugin remove cordova-plugin-iosrtc
cordova plugin add [email protected]
cordova platform remove ios
cordova platform add ios

Notes

Following External libraries/Enviroment have been tested.

Tests have been made by me and other members of the community.

  • WebRTC W3C v1.0.0
  • WebRTC.framework => M69 (Safari/Chrome/Firefox/Opera)
  • Janus => 0.7.4
  • JSSip => 3.1.2
  • Sip.js => 0.15.6
  • OpenEasyrtc => 2.0.3
  • openvidu => 2.11.0
  • Ionic => v8
  • Jitsi ~ 3229

About Audio input/output selection and requestPermission API

See new API documentation and example usage.

iosrtc.selectAudioOutput: https://github.com/cordova-rtc/cordova-plugin-iosrtc/blob/master/docs/iosrtc.md#iosrtcselectaudiooutput

iosrtc. turnOnSpeaker: https://github.com/cordova-rtc/cordova-plugin-iosrtc/blob/master/docs/iosrtc.md#iosrtcturnonspeaker

iosrtc.requestPermission: https://github.com/cordova-rtc/cordova-plugin-iosrtc/blob/master/docs/iosrtc.md#iosrtcrequestpermission

About Apple Store Submission

You should strip simulator (i386/x86_64) archs from WebRTC binary before submit to Apple Store.

See Doc: https://github.com/cordova-rtc/cordova-plugin-iosrtc/blob/master/docs/Building.md#apple-store-submission

About iOS 13+ support

iOS 13.1 is supported and have been tested.

417 will add RTCMTLVideoView aka Apple Metal support and be released in 6.0.1 or 6.0.2 depending progress.

About libwebrtc update

The version currently used by version 6.0.0 is M69 for armv7, arm64, i386, x86_64
See #412 for details.

About Unified-Plan and remote Mutlti-stream support.

Unified-Plan will be released on 6.0.1.
See #407 for details and testing.

About deprecated WebRTC Callback API

WebRTC Callbacks API have been restored since 5.0.5 but will display but only when using iosrtc.registerGlobals to disable callbacks on use iosrtc.registerGlobals(true)

Others

  • Please do not comment on an open or closed issue out of topic problems, you will annoy me and the original reporter and confuse the resolution of the issue, this not the right way to get help. Instead create a new issue and I will help you as I have proven past weeks.

  • No we have no plan to support capacitor, if capacitor want to support cordova plugin they have to do it the right way, PR are welcome anyway.

build documentation enhancement libwebrtc third party library support webrtc-api

Most helpful comment

We should be the ones thanking you for providing this essential plugin.

Thank you and keep up the good work @hthetiot

All 36 comments

Released 6.0.1 with minor fix for crash on stop MediaStream

Released 6.0.2 with UnifiedPlan and insertDtmf fix

Released 6.0.3 with RTCPeerConnection.prototype.addTrack with no stream fix and AVAudioSession to reset to its default settings on enumerateDevices

Released 6.0.4 with Generate unique PluginMediaStream and PluginMediaStreamTrack (Janus multi remote peer stream support), Fix Callbacks support for getUserMedia by @onerinas and other minor fixes.

Hello, what's the catch with not being compatible with Capacitor ?
Capacitor is so amazing. :))

Hello Kévin,
What are the advantages to use Capacitor instead of Cordova? Can any
cordova plugin be used with Capacitor? I guess not, but where's the error?
Thanks

El sáb., 1 feb. 2020 a las 11:28, Kévin Perrée (notifications@github.com)
escribiĂł:

Hello, what's the catch with not being compatible with Capacitor ?
Capacitor is so amazing. :))

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/cordova-rtc/cordova-plugin-iosrtc/issues/425?email_source=notifications&email_token=AA72B4S7TYP2JRW4GLHJMODRAVFEPA5CNFSM4JGG4PT2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEKQZUWY#issuecomment-581016155,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA72B4VJQCYGEZ3VHMPCTC3RAVFEPANCNFSM4JGG4PTQ
.

@numerized Make a PR and we can support it, we simply dont have time to support yet another cordova clone/fork like ionic. If Capacitor is that great why it fail to support basic Cordova plugins.

Hmm I'm in contact with Capacitor creators they are willing to help.

From this article:
https://ionicframework.com/blog/announcing-capacitor-1-0/

How is Capacitor different from Cordova?
In spirit, Capacitor and Cordova are very similar. Both manage a Web View and provide a structured way of exposing native functionality to your web code.

Both provide common core plugins out of the box for accessing services like Camera and the Filesystem. In fact, one of the design goals with Capacitor is to support Cordova plugins out of the box! While Capacitor doesn’t support every plugin (some are simply incompatible), it generally supports most plugins from the Cordova ecosystem.

...

Capacitor generally expects you to commit your native app project (Xcode, Android Studio, etc.) as a source artifact. This means it’s easy to add custom native code (for example, to integrate an SDK that requires modifying AppDelegate on iOS), build “plugins” to expose native functionality to your web app without having to actually build a standalone plugin, and also debug and manage your app in the way that embraces the best tooling for that platform.

...

No more deviceready
Capacitor kills the deviceready event by loading all plugin JavaScript before your page loads, making every API available immediately. Also unlike Cordova, plugin methods are exposed directly as opposed to being called through an exec() function.

That means no more wondering why your app isn’t working and why deviceready hasn’t fired.

Embracing NPM & Easier Plugin Development

Capacitor embraces NPM for every dependency in your project, including plugins and platforms. That means you never capacitor install plugin-x, you just npm install plugin-x and then when you sync your project Capacitor will detect and automatically link in any plugins you’ve installed.

Where to start?

Where to start?
@numerized

  1. Please dont get out of topic on existing issue, create dedicated issue or PR.
  2. I will not work on adding support for Capacitor PR are welcome.
  3. No need to copy paste lengthy text from a link to advertise something like you did, this is what i call issue polution and symptomatic of lazy developer that just copy paste, link is enought we can click the link and read by ourself.

Please do not reply here about Capacitor and create dedicated issue, this issue if for Version 6.0.x notes not for feature request.

Note: Nothing personal, I'm a jerk everyone know that.

Released 6.0.7 with minor fix for Event.target that fix Datachannel support for Janus.js

Thank you to @oscarvadillog for reporting and testing.

Ok cool I'll open an issue.

@oscarvadillog Can you test master I want to release 6.0.8 new fix regarding Janus non unique remote stream to fix addStream|addTrack regression from 6.0.4 see https://github.com/cordova-rtc/cordova-plugin-iosrtc/pull/467 for actual changes.

cordova plugin remove cordova-plugin-iosrtc --verbose
cordova plugin add https://github.com/cordova-rtc/cordova-plugin-iosrtc#task/m75 --verbose
cordova platform remove ios --no-save
cordova platform add ios@latest --no-save

This will be the last major changes for 6.0.x as we are ready to merge WebRTC M75 on master via https://github.com/cordova-rtc/cordova-plugin-iosrtc/pull/455#issuecomment-591049015

Released 6.0.8 that removing streamId|trackId alteration with UUID preffix released on 6.0.4 to handle Janus non unique streamID that fix PeerConnection.addStream|addTrack possible regressions (https://github.com/cordova-rtc/cordova-plugin-iosrtc/pull/467).

This version also include RTCIceCandidate support improvement (https://github.com/cordova-rtc/cordova-plugin-iosrtc/pull/468)

See details in CHANGELOG:
https://github.com/cordova-rtc/cordova-plugin-iosrtc/blob/master/CHANGELOG.md#version-608

Sorry for the delay, I was on vacation.
@hthetiot I have tested #task/m75 and it works properly with Janus.

Thank you @oscarvadillog
Happy RTC

Released 6.0.9 that fix possible issue due added candidateToJson, getStats report.timestamp typo and fix getMediaDevice audioConstraints to allow audio devices change.

See details in CHANGELOG:
https://github.com/cordova-rtc/cordova-plugin-iosrtc/blob/master/CHANGELOG.md#version-609

Released 6.0.10 with fix for iOS 10.x.x, this should be broken since 5.0.3 switch from Blob to pure MediaStream, https://github.com/cordova-rtc/cordova-plugin-iosrtc/blob/master/CHANGELOG.md#version-503

See details in CHANGELOG:

Thank you to @yangjingyu for reporting

Next issue in term of priority is #480

Released 6.0.11 with #480 fix for Kurento (LOL I hate SFU and MCU)

Next priority is #495 #494

6.0.12-RC1 available for testing

cordova plugin remove cordova-plugin-iosrtc --verbose
cordova plugin add https://github.com/cordova-rtc/cordova-plugin-iosrtc#6.0.12-RC1 --verbose

Changes logs:

6.0.12-RC1 available for testing before releasing on npm and GitHub package registries.

Waiting confirmation for following issues to be tested before releasing.
Please if you see your name below simply add comment to confirm fixed or an emoji 👍 on this comment.

Notice that the 6.0.12-RC1 as already been tested by me using https://github.com/cordova-rtc/cordova-plugin-iosrtc-sample

To test 6.0.12-RC1

cordova plugin remove cordova-plugin-iosrtc --verbose
cordova plugin add https://github.com/cordova-rtc/cordova-plugin-iosrtc#6.0.12-RC1 --verbose

(no need remove ios and add ios platform, unless you want to be sure, but not mandatory)

Major changes

  • [x] Improve getUserMedia compatiblity with Twilio Video #497 (testing requested for @sboudouk @cj)

  • [x] Incompatibility with Janus WebRTC gateway when using WebRTC-adapter >= 7.6.0 #505 (testing requested for @DaveLomber @ekzotech @oscarvadillog)

  • [x] Restore Blob only support for iOS 10.x that does not know MediaStream #495 (testing requested for @yangjingyu )
  • [x] getReceivers method doesn't return RTCRtpReceiver array #442 (testing requested for @CSantosM )

Minor changes

  • [x] Backgroundcolor is now "clear" instead of "black" #514 (cc @derMani)
  • [x] Add support for MediaStreamTrack.(getCapabilities|getSettings) method #482 (cc @rejebsab)
  • [ ] Error: Callbacks are not supported by "RTCPeerConnection.prototype.getStats" anymore, use Promise instead. #510 (cc @SteffenFreeway)
  • [x] MediaStreamTrack.getSettings Error when retrieving media stream videotracks on iPad Pro #518 (cc @DustinnBel)
  • [x] Add support for MediaStreamTrack.clone() method #474 (cc @akume)
  • [x] Able to receive audio but no video anymore using RTCPeerConnection.prototype.ontrack #516 (cc @kelvinthu)

Changes logs:

https://github.com/cordova-rtc/cordova-plugin-iosrtc/blob/master/CHANGELOG.md#version-6012

MediaStreamTrack.getSettings Error when retrieving media stream videotracks on iPad Pro #518 is working now 👍

I can confirm ontrack problem is fixed

Restore Blob only support for iOS 10.x that does not know MediaStream #495

I have tested on ios10.3.3, audio and video output normally 👍

Thank you @yangjingyu

I will release today unless I get negative feedback on 6.0.12-RC1

Merged connectycube to WHO_USES_IT, if you want to add your company there is still time before 6.0.12 release ;)

Simply make a PR and at it at the beginning of the WHO_USES_IT.md file.
First come first served.

cc @derMani @yangjingyu @DustinnBel @kelvinthu

@hthetiot Should we continue using this issue for 6.0 notes?
CHANGELOG.md itself is pretty useful and people subscribed to release changes gets notified as well.

I have this enabled:
Screenshot 2020-05-27 at 8 05 59 PM

Thank you @onerinas , I use this issue to coordinate Release Candidate testing and feedback/accouncement mostly.

I may instead create an issue per release if you prefer, freel free to comment or propose a vote on the way the community prefer to do that. I''m open, this is to server the community nothing else.

6.0.12 is now released.
Warm thank you to @derMani @yangjingyu @DustinnBel @kelvinthu @cj @sboudouk @DaveLomber

We should be the ones thanking you for providing this essential plugin.

Thank you and keep up the good work @hthetiot

6.0.14 is now released.
See changeslogs https://github.com/cordova-rtc/cordova-plugin-iosrtc/blob/master/CHANGELOG.md#version-6014

6.0.15 main PR is now on master.

6.0.16 released:

should fix most of the back screen on tracks, provide Canvas Context drawImage, provide MediaStream/MediaStreamTrack Clone SHIM instead of SHAM.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

hthetiot picture hthetiot  Â·  8Comments

hthetiot picture hthetiot  Â·  4Comments

yogaboy picture yogaboy  Â·  16Comments

ashish-mw picture ashish-mw  Â·  11Comments

derMani picture derMani  Â·  9Comments