jwcao / opentok-titanium

Titanium module for using Opentok with iOS and Android
6 stars 3 forks source link

Subscriber Error -- cant connect #6

Closed ericpolkadoc closed 8 years ago

ericpolkadoc commented 8 years ago

Hi,

We are using your module, and within the past couple days we are having issues with a subscriber connecting to a session on Android

We're getting the following, error on the last line.

[INFO] : I/opentok-session: Session is connected [INFO] : I/opentok-session: New session connection is created. ConnectionId: 8ef8... [INFO] : I/opentok-session: New session stream is created. StreamId: de48... [INFO] : CaoOpentokModule: OpentokAndroid SessionProxy onSessionDidReceiveStream : Got a stream. [INFO] : CaoOpentokModule: OpentokAndroid SessionProxy publish : Publishing a stream. [INFO] : I/opentok-publisher: Setting cameraId to 1 [INFO] : I/opentok-publisher: Publisher has changed the camera position to: 1 [INFO] : CaoOpentokModule: AndroidOpentok PublisherProxy onPublisherChangedCamera : onPublisherChangedCamera event fired [INFO] : CaoOpentokModule: AndroidOpentok PublisherProxy createView : Creating a new OpentokViewProxy [INFO] : CaoOpentokModule: OpentokView : androidView is not null. Trying to set the native view [INFO] : CaoOpentokModule: AndroidOpentok View : Set the native view and camera started. [INFO] : CaoOpentokModule: OpentokAndroid ViewProxy createView : have the view, returning it [INFO] : CaoOpentokModule: AndroidOpentok processProperties : processProperties called. [INFO] : I/opentok-session: Starting a Publisher streaming to the session [INFO] : OpenGLRenderer: Program(f4fdd080) : Load program - source Length(vs(201:201)/fs(94:0)-b0000000800000000) [INFO] : CaoOpentokModule: OpentokView : androidView is not null. Trying to set the native view [INFO] : CaoOpentokModule: AndroidOpentok View : Set the native view and camera started. [INFO] : CaoOpentokModule: OpentokAndroid ViewProxy createView : have the view, returning it [INFO] : CaoOpentokModule: AndroidOpentok processProperties : processProperties called. [INFO] : I/opentok-session: Start subscribing to streamId: de48f8.... in the session [INFO] : I/opentok-publisherkit: Publisher with streamId: 01EB.... is created [ERROR] : CaoOpentokModule: AndroidOpentok SubscriberProxy onSubscriberException : Internal error -- WebRTC subscriber error.

we are using the .js version for our website, and coincidentally had some issues there. The team simply updated their opentok.js to the newest version, and the problem went away.

Our AppC version has been working great, but now we have the issue (IOS works great) -- on the device we can see ourselves, but we cant see the other subscriber. On the contrary, the other end of the line in Chrome can see both subscribers.

I was thinking that we would have to update our Android .jar with the 2.8 version of Tokbox and rebuild the module, but it looks like Tokbox is now using .aar's instead of .jar's, so Im not sure if that would completely work.

If you have any thoughts, please let me know. Thanks for putting this module together.

Thanks

jwcao commented 8 years ago

I would make sure you have all the correct permissions set in your Android manifest, and make sure you're setting your api keys correctly for OpenTok. We had our Android version go through a QA cycle a couple weeks ago, and there were no issues with OpenTok. I'm not familiar with .aar's, so I don't know what's involved in rebuilding with that, but I would assume you could just swap out the .jar.

We're replatforming our mobile app with Xamarin (which so far has been great), so I won't be making updates to this repo anymore.

ericpolkadoc commented 8 years ago

I had a chance to talk with Tokbox, and they are saying that there was a fix in the SDK and subsequently a new SDK version published, that fixed something that broke when Chrome 50 came out. I am not entirely sure what the exact issue is (still waiting on information), but Im assuming we would need to rebuild your module with the new updated SDK.

Is there any chance you would be able to update the module with the new SDK? I would surely do it myself but its unfortunately something that is outside my skillset.

Thanks

ericpolkadoc commented 8 years ago

Here's the news from Tokbox support:

See here: https://chromium.googlesource.com/external/webrtc/+/10880011d9f116a9aff87436de231151e355ac7d

It looks like we took some of the video codecs out to maintain interop with the older versions of our SDK, but this is not possible with Chrome 50 because it specifically looks for that codec. Failing to include it marks the offer as an invalid one.

It's a case of an old SDK that was current at its time, trying to connect to a world where the world has changed - we'd either include the codec to allow Chrome 50 to publish, or we remove it to allow the older SDK to receive an offer that it does understand. The older SDK is technically outside the supported version range, so we put it back in.

Yes, this only applies to Chrome. You should not see this in Firefox.

You can see my notes on the JS 2.7.5 patch that addresses this here: https://support.tokbox.com/hc/en-us/articles/209713953-JS-SDK-v2-7-5-Released-3-21-

ericpolkadoc commented 8 years ago

Hi --

I was able to figure it out and create a new version of the Android module with version 2.6 of the Tokbox Android module.

Thanks! Eric

jwcao commented 8 years ago

Great! Glad you were able to get it worked out.