nubomediaTI / Kurento-iOS

Kurento Toolbox for iOS
Apache License 2.0
120 stars 76 forks source link

Unstable ICE signaling #7

Open ypotsiah opened 8 years ago

ypotsiah commented 8 years ago

Hi, Could you please help me to find detailed description of RoomServer API. I have create sample iOS application (based on Kurento-iOS Toolbox) with group video call functionality. And even with one remote peer it impossible to make it work stable.

2016-02-22 17:58:42.041 KurentoRoom[5165:2062382] -[RoomController webrtcPeer:iceStatusChanged:ofConnection:] ID: iPhone State: RTCICEConnectionDisconnected 2016-02-22 17:58:45.766 KurentoRoom[5165:2062382] -[RoomController webrtcPeer:iceStatusChanged:ofConnection:] ID: MacBook State: RTCICEConnectionDisconnected 2016-02-22 17:58:48.092 KurentoRoom[5165:2062382] -[RoomController webrtcPeer:iceStatusChanged:ofConnection:] ID: iPhone State: RTCICEConnectionConnected 2016-02-22 17:58:48.093 KurentoRoom[5165:2062382] -[RoomController webrtcPeer:iceStatusChanged:ofConnection:] ID: iPhone State: RTCICEConnectionCompleted 2016-02-22 17:58:52.096 KurentoRoom[5165:2062382] -[RoomController webrtcPeer:iceStatusChanged:ofConnection:] ID: MacBook State: RTCICEConnectionConnected 2016-02-22 17:58:52.097 KurentoRoom[5165:2062382] -[RoomController webrtcPeer:iceStatusChanged:ofConnection:] ID: MacBook State: RTCICEConnectionCompleted 2016-02-22 17:59:00.550 KurentoRoom[5165:2062382] -[RoomController webrtcPeer:iceStatusChanged:ofConnection:] ID: iPhone State: RTCICEConnectionDisconnected 2016-02-22 17:59:01.190 KurentoRoom[5165:2062382] -[RoomController webrtcPeer:iceStatusChanged:ofConnection:] ID: MacBook State: RTCICEConnectionDisconnected 2016-02-22 17:59:04.181 KurentoRoom[5165:2062382] -[RoomController webrtcPeer:iceStatusChanged:ofConnection:] ID: iPhone State: RTCICEConnectionConnected 2016-02-22 17:59:04.181 KurentoRoom[5165:2062382] -[RoomController webrtcPeer:iceStatusChanged:ofConnection:] ID: iPhone State: RTCICEConnectionCompleted 2016-02-22 17:59:05.094 KurentoRoom[5165:2062382] -[RoomController webrtcPeer:iceStatusChanged:ofConnection:] ID: MacBook State: RTCICEConnectionConnected 2016-02-22 17:59:05.097 KurentoRoom[5165:2062382] -[RoomController webrtcPeer:iceStatusChanged:ofConnection:] ID: MacBook State: RTCICEConnectionCompleted It is log with my implementation of RoomManager <=> RoomController. But the same situation with your sample application (KurentoToolboxDemo).

Maybe you can help me to find any info which helps me to write own 'tolbox' or find some logic error in your code?

Reedyuk commented 8 years ago

Do you have the Kurento room server api running? This is an independent api from the Kurento media server, https://github.com/Kurento/kurento-room I believe with the examples, it would be something like https://yourserver:8888/room I managed to get the toolbox working with a room server, so i think its more likely a configuration issue with your setup of kurento, e.g. wrong url.

ypotsiah commented 8 years ago

Yes, sure. It works fine with web client but works very unstable via iOS Toolbox (video lags, reconnects and fails of ice connections)

Reedyuk commented 8 years ago

i had some issues like that, remember this is a library still in its early stages. I found, use chrome to connect to the web client, and then connect your mobile client, then it was a lot more stable for some reason.

ypotsiah commented 8 years ago

I understand that this lib is not final. But where I can find detailed documentation for RoomServer API? So I'll be able to write own library or help to make more stable this version of toolbox.

Reedyuk commented 8 years ago

Unfortunately you will struggle, but your best bet is the kurento documentation site, http://www.kurento.org/documentation and to look at the actual code in the https://github.com/Kurento/kurento-room example. You should be able to work it out from that BUT i think the problems you are getting, are not in relation to the room api, i think it is to do with the handling of ICE events within iOS.

maross commented 8 years ago

I noticed that there are problems with ICE trickle / events, they not depend on the room APIs, but they are mechanisms that are managed by the WebRTC library libjingle of Google. I'm trying to understand the cause of this instability.

ypotsiah commented 8 years ago

Excellent! Maybe you already have any approximate estimates about this fix / resolution? Just if you not planned to investigate it nearest week - I'll be looking for other alternative technologies (without Kurento).