Got a tough one here.
So, we're trying to upgrade an OpenTok video chat application from Flash to WebRTC, and are running into socket errors as we try to implement the 'helloworld' WebRTC sample. The errors occur when we try to do a session.connect() call, not when we request a sessionId or a token. And the error basically looks like this (session_id and partner_id anonymized):
SessionInfo Response:
#document
<sessions>
<Session>
<session_id>asfgdagbasdfovnwoinvcwoinvoiandfvoinvoidnofgfdfgfgivniodfnv-sdfgdfgdfg-</session_id>
<partner_id>1234567890</partner_id>
<create_dt>Sun Sep 01 12:00:45 PDT 2013</create_dt>
<session_status>INFLIGHT</session_status>
<media_server_url>…</media_server_url>
<p2p_server_url>rtmfp://p2p101-oak.tokbox.com:1945/multicast</p2p_server_url>
<media_server_hostname>oms409-oak.tokbox.com</media_server_hostname>
<messaging_server_url>oms409-oak.tokbox.com</messaging_server_url>
</Session>
</sessions>
connectToMessenger
WebSocket error: undefined
TB.Socket Error :: The socket to oms409-oak.tokbox.com received an error: Unknown Error
TB.exception :: title: Connect Failed (1006) msg: TB.Socket Error :: The socket to oms409-oak.tokbox.com received an error: Unknown Error
Any ideas on what might be causing this? We're testing on the latest version of Chrome 29, and it happens in both localhost and on our production servers. So it doesn't seem to be a firewall. The one thing I can think of is that we're running on a Meteor/Node.js framework, which has websockets enabled by default. The code is pretty much boilerplate helloworld sample from the following:
http://tokbox.com/opentok/tutorials/hello-world/js/demo.html
We get the sessionId and token successfully, it's just that the session.connect() doesn't ever happen (and, thus, we can't ever get our connection object or subscribe to the event listeners).
Any ideas on how we might go about debugging this issue?
Thanks in advance for any help!
abigail
In typical fashion, after I spend two days on a bug, get so frustrated that I post a question to StackOverflow, and then figure it out an hour later.
Long story short, the OpenTok account had an 'enable WebRTC' option that wasn't set. It was an account administrator issue. Long story short... make sure devs have access to the accounts the business folks have!
I think you might be using the flash js library instead of the webrtc library. If you had joined your session using flash, it will not be able to work with webrtc.
Here's the webrtc library:
<script src='https://swww.tokbox.com/webrtc/v2.0/js/TB.min.js'></script>
Here is the flash library:
<script src='https://swww.tokbox.com/v1.1/js/TB.min.js'></script>
Think of webrtc and flash as two separate products, they do not interoperate.
Related
We have a Multitrack web conference implementation using AMS 2.4.1 version. Its working great for our use case, except in one scenario. When there are N (< 3) number of users and they on there camera simultaneously, then few remote users are not rendered as we don't receive the video tracks for those users in newStreamAvailable. We only receive the audio track for those users. We are able to reproduce this quite frequently.
As a backup, I am trying to poll AMS using getTrackList with the main track Id to get all available streams, but I am not getting any message trackList
var jsCmd =
{
command : "getTrackList",
streamId : streamId, // this is roomId or main track id
token : token
}
Any insight would be helpful.
Thanks,
We were able to resolve the issue, posting here to help anyone who might be facing a similar issue.
With push notifications from the server, we might encounter issues when for some reason push operation doesn't succeed. In that case, it's better to have a backup plan to pull from the server and sync.
The Ant Media Server suggests pulling the server periodically for the room info. The server will respond with active streams and the application should synchronize.
For reference, please refer to following link https://resources.antmedia.io/docs/webrtc-websocket-messaging-reference
I'm trying to create a hologram that is shared among multiple Hololenses by following Microsoft's Holograms 240 tutorial at https://developer.microsoft.com/en-us/windows/holographic/holograms_240
The network connection is working fine, and I have all the correct permissions in my project settings. The issue is that aside from a rare occurence, the call to WorldAnchorTransferBatch.ExportAsync() will fail with a SerializationCompletionReason.UnknownError and print out "Failed to world lock serialization failed"
I haven't been able to find any information about this error in my searching. Does anyone know what the cause of this could be?
I'm trying to use the PayPal Express sandbox (which I have to over 5+ years) and all of a sudden, I'm getting this error. I'm running the latest Chrome on a Windows 2012 server that's up to date. It's happening on the first call to PP using SetExpressCheckout. Where do I start looking for the cause?
After a week of trying to get help from PayPal support, I accidentally came across this link: https://www.paypal.com/webapps/mpp/ssl-security-update that let me to the fix. Support never mentioned it.
The key is to actively use TLS 1.2 in your code. It's not enough to just have your server hardened (we were showing an "A" rating on SSLlabs.com). I put the following immediately before the instantiation of WebClient:
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12
Connected to PayPal without a problem after that.
From NACL SDk examples i am trying to run socket example. Example available at ..\nacl_sdk\pepper_34\examples\api\socket
While i am trying to connect to google.com:80 using TCP socket, given error is flashed:
Resolving ...
Resolve failed with status-7
After googling i found ERROR_NOACCESS = -7, Indicates failure due to insufficient privileges.
Does anyone come across this error?
What can be the reason for that, and what is the fix for this?
In order to use TCP/UDP sockets in a NaCl app, you have to create a packaged app in the Chrome Web Store since these permissions require an accept gesture from the user.
https://developer.chrome.com/apps/app_network
"Apps permission socket with subrule tcp-connect is required for Connect(); subrule tcp-listen is required for Listen()." - https://developer.chrome.com/native-client/pepper_dev/cpp/classpp_1_1_t_c_p_socket
I don't have any errors with my smart target application, but I do see in the event log, the following error messages:
ERROR 2012-09-19 14:30:09
com.tridion.smarttarget.utils.AmbientDataHelper - can't find defined
trigger-types in claim store (check if your smarttarget cartridge is
up and running)
and:
ERROR 2012-09-19 14:30:11
com.tridion.smarttarget.tags.TimeoutQueryRunner - The fredhopper query
timed out java.util.concurrent.TimeoutException at
java.util.concurrent.FutureTask$Sync.innerGet(Unknown Source) at
java.util.concurrent.FutureTask.get(Unknown Source) at
com.tridion.smarttarget.tags.TimeoutQueryRunner.executeQuery(TimeoutQueryRunner.java:64)
ERROR 2012-09-19 14:30:11
com.tridion.smarttarget.tags.TimeoutQueryRunner - The fredhopper query
timed out
I would really like to understand what is causing these and how I can remove them. Or some suggested steps to help me debug this would be great :)
As I say, everything is working perfectly, later on in the logs I see the query to ST is correct and the results being generated.
In the event that is helps, I'm running on a 2009 implementation with Smart Target 2010, java 1.5.
thanks
John
Sounds like you might have a trigger configured in ST that does not actually exist in the ADF (or is mismatched). Have you looked through your trigger-types.xml file for anything obvious? Have you disabled an ADF cartridge but not removed the corresponding trigger in the XML perhaps? See the documentation for Defining trigger types.
I think your timeout is coming from the SmartTarget region rather than FredHopper. Sometimes a query that isn't already cached in FredHopper can take a while to return, even though it's ultimately successful. The ST query tag has a timeout (defined in the smarttarget_conf.xml file, or over-ridden with a tag attribute) that it will wait for a response from Fredhopper for before resorting to using the fallback content. This might explain why you see later in the logs that the query is correct and that results are returned. See the documentation for <tcdl:query>.
No conclusive answer for you I'm afraid, but I hope that helps.
The first error is logged if your SmartTarget cartridge is not running -- or if the data that it puts into ADF is lost somehow (e.g. you have disabled sessions in your web server).
In that case, SmartTarget will still do a query but it won't include anything from the Ambient Data Framework in it. If you don't have any triggers based on ambient data, the end result is the same for you.
To get rid of the error, make sure that smarttarget_cartridge is configured correctly.
As for the timeout error, it simply means that the query sent to Fredhopper took longer than the configured time. In that case it will show the fallback content instead. If this is happening a lot, you might want to increase the timeout within smarttarget_conf.xml.
I hope you found the issue, but for future reference, the first error message is raised when the claim "taf:claim:ambientdata:definedtriggertypes" is not set by the SmartTarget cartridge. This can be caused by:
SmartTarget cartridge could not load the the trigger types from the SmartTarget server. The log will show an error "can't retrieve list of defined trigger types from FH".
The HTTP session on your web server is expired during an active visit (the HTTP session expired but the browser is still open) and the claim is "lost".
The server does not support sessions like Peter mentioned.