https://appr.tc is down. How to set up own signaling server/ room server URL? - webrtc

I'd developed a video calling app on Android using WebRTC and was using the https://appr.tc as the signaling server (Room Server URL). But according to https://groups.google.com/g/discuss-webrtc/c/H7XuZfgkGH0 apprtc is now taken down. When I run the AppRTC demo app I get the following error:
Connection Error
Non-200 response to POST to URL: https://appr.tc/join/room_id32864 : HTTP/1.1 404 Not Found
Could someone please show the way on how to change the Room Server URL or setup my own Room Server URL? Any help would be appreciated. Thanks

The source code of apprtc remains available on github:
https://github.com/webrtc/apprtc
You might want to read this blog post about whether to use it though:
https://bloggeek.me/webrtc-signaling-server-not-use-apprtc/
The project has been effectively abandoned for years and you will have a hard time finding support.

Related

Disable retrying of POST request via AJAX if connection was dropped

Problem
Sometimes important HTTP POST requests sent with AJAX got duplicated so several entries of the same data got created in the production database, that is of course not supposed by users.
What is important is that users have a poor internet connection and this request is taking a long time (9-20 seconds). We can't reduce this time because it is the requirements of business logic.
Requests are sent with http, not https.
Details
We have Apache/2.4.18 (Ubuntu) with PHP module loaded and two frontends: one for desktop (AngularJS) and one for mobile (React) devices. AngularJS is sending requests with the $http service, and React is using whatwg-fetch (tried whatwg-fetch-timeout also).
We know from Apache access.log and PHP logs that the same request is coming from the client several times and PHP processes them without the errors. But! These requests have response with 200 status code, %b > 0, and %O = 0, that means request is aborted before a response is sent (Apache logging format docs).
Reproduce
So we tried to reproduce and the same happens sometimes. The following case is just a reproduced case, but this happens on mobile devices (iPhones and Android phones) with different browsers installed. Also, we have repeated it in the Firefox under Windows.
Environment: Windows; both Chrome and Firefox; React frontend version; no proxy used.
That's what we found out: Google Chrome identifies the request as "Stalled", but is internally trying to send the request multiple times (and it is received and processed on the server actually), because it got the network error (ERR_CONNECTION_CLOSED). Only when the browser succeeded to fetch the response, it stops sending the repeating requests.
Gathered info
URL_REQUEST event log from chrome://net-internals/help.html#events (headers are also available there)
Google Chrome dev tools request screenshots:
Headers tab
Timeline tab
I personally can't reproduce this even once and I suppose a good internet connection is a reason for this.
I have googled a lot and even found some similar Chromium bugs, but nothing exactly about this problem.
Thank you in advance for any useful information.
I am also not pretty sure which tags should I set for this question, so if I should add or remove some, please tell me.

PubBub WebRTC Android Demo is Not Connecting from Android to Android

When I tried the demo app https://kevingleason.me/AndroidRTC/, it was working as expected.
But when I tried with two android devices, I can make a call and receive call, but they don't get connected. In both devices, its own camera feed is displayed with a text "Connecting...". I tried on both my home Wifi and mobile data 3G. There is no error that I can find in log.
Could anyone help me to resolve the issue please. What is that I am missing here?
I am using the latest code from https://github.com/GleasonK/AndroidRTC which already has the Xirsys ICE servers configured. But I noticed that the Xirsys ICE servers is not added in the below line from VideoChatActivity.java, so I also tried adding that servers into the PnSignalingParams' constructor, but still facing the same Connecting message only.
List<PeerConnection.IceServer> servers = getXirSysIceServers();
if (!servers.isEmpty()) {
this.pnRTCClient.setSignalParams(new PnSignalingParams(servers));
}
I have fixed the issue. It was little tricky. If you see the log, it will show you that the application always execute createOffer method. So both client A and client B will send an offer in same time. You can fix that issue by giving some condition so if the client A give an offer, and the client B will response by give an answer.
To see if any error occurs you can use method onCreateFailure(String s) and onSetFailure(String s) in PnPeer.java.
Hope this will help.

OpenTok WebRTC - The video stream failed to connect error

Condition:
1. Two users use Chrome (latest version) on Mac
2. One-to-one video conference
Problem - sometimes (~ ones in 5-6 calls) video window shows the error - The video stream failed to connect. Please notify the site owner. It can be on the beggining, or after several minutes spent on call.
Where can be the issue?
If any addition info needed i will provide in the post.
Thanks
If I understand correctly, one in 5-6 calls results in "Video stream failed to connect error". This is most likely a firewall or router configuration issue.
If you are video chatting with different people and you are sometimes getting a "video stream failed to connect error", the person you are chatting with probably has a firewall or configuration issue.
If you are testing with yourself and sometimes getting that error, you might have firewall or configuration issues.
To verify that you firewall is configured correctly, try running this diagnostic tool.
If you would like to see when your users are experiencing this error and would like to educate them on the diagnostic tool or what the possible causes are, you can listen to exception events (#1013 in your case)
Disclaimer: I work at TokBox.
Good Luck!

Push notifications not being received on distribute

I had successfully implemented push notifications for the developer certificate but cannot seem to get it work for an ad hoc test with a friend. I did the same process for creating the push notification keys/certificates except now I chose "Production Push SSL Certificate" instead of "Development Push SSL Certificate". I believe that this is correct since I could not find any tutorials around that showed how to do it for production... all of them were for development.
This quick process can be found from ray wenderlich blog here: http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12
This is my guess where things might have gone wrong because maybe there is a different way to do Production Push. I left my php code the same on my server as I had it before for Development Push (copied over the new ck.pem). Is this alright or do I need to make changes? I can post the code if someone thinks it is the code but as I said.. the php server code worked before.
Can someone please help me out? Thanks in advance!
I CANNOT ANSWER MY QUESTION BECAUSE I DO NOT HAVE ENOUGH REP. THE CORRECT ANSWER IS HERE
for my development I had:
gateway.push.apple.com:2195
but for production it needs to be:
gateway.apple.com:2195
Hope this helps someone in the future.
[Edited]
You can also try to check your token are correctly set, your devices are allowed to receive notifications.
If you have made many tests, you may also have been temporarily banned from APNS server, you mustn't make too many calls to the APNS server in a small time range.
Please also note that there may be some delays from the time you send the notification to the APNS server, and the time the APNS server sends it to your device.
LAst bu not least, make sure your devices have a correct Internet / SSL free access some proxies or firewalls may block notifications
Are you getting the devices token dynamically? Because when the app is in ad-hoc distribution it is generating a different device token for push notifications form when it is in debug (a.k.a developer) mode

upload heavy file from one server to another server

I have created a application and integrated api of soundcloud. I firstle i am uploading traks on my server after that to the soundcloud server through cron jobs.
It is working fine for smaller file but not for heavier file.I have posted this problem on google group they replied the following:-
Do you proxy the
download through your server? Can you check there that it is received
correctly
I am unable to understand this. can you ples let me explain this.
thanks
I think there is some confusion.
You have asked soundcloud a problem about an upload of the file to soundcloud servers, and they have replied about download of the file from soundcloud.
What they mean is when a user tries to download a file from the soundcloud server, is it going via your server or directly via soundcloud.
Proxy here means the intermediate server - so they are asking is it getting to your server correctly?
I think you need to rephrase your question for them to understand it better - and clarify you mean an upload from your server to soundcloud.