FMS 4 playing P2P stream with RTMFP - flash-media-server

Proper disclosure: I posted this question on the Adobe forums too. Since I didn't get any answer - I am posting it here. Sorry if it disturbs.
We are working with FMS 4 server for a while for a 2 directions video application, and it works great with RTMP.
We now want to use its rtmfp abilities after we used Cirrus for testing in the last few days and it also worked well.
Locally - everything is working fine, but when we try the application on a remote server - we have some problems.
Each side get the NetStatusEvent code "NetConnection.Connect.Success" and "NetStream.Publish.Start" when publish starts.
However, when we are trying to play the stream, nothing happens for a minute and than we get " NetStream.Connect.Closed" after about a minute.
(Locally, we are getting "NetStream.Play.Start" and "NetStream.Play.Reset").
I did open ports 1024-65535 UDP on the server and since we are able to connect Cirrus, I believe the clients are fine.
I also changed the Adaptor.xml HostPort element to
:19350-65535 where xxx.xxx.xxx.xxx is the same public IP of our FMS Server as the one used by the client.
Again, it is working beautifully both locally and with Cirrus. RTMP also works well with the remote server.
What am I missing?

I'm sorry, I can't really help but tell you that I had a very similar problem but the other way around.
When I tried to connect two devices via Cirrus over our WLAN, I got the same error as you. When testing with one device in WLAN and the other in another Network it worked. Then I tested them both in the same WLAN (but in a WLAN other than ours) and it also worked. My collegue then updated some firmware (on the router? I'm not sure...) and deleted some VOIP data. Then it worked here, too.
I think maybe there is some problem at the remote server. UDP has to be allowed... but I'm sure you know that.
Sorry again for not really helping - but maybe this is at least a bit encouraging.
Do you know this sample: http://labs.adobe.com/technologies/cirrus/samples/ ?
I always tested with that so I knew it wasn't some problem with my code.

Related

PYMODBUS: How to get master to communicate with slave?

I'm working on a project where I have two Debian VMs that both have Pymodbus installed. I'm trying to setup a virtual testing environment where I can perform various cyber attacks on the two from a third Kali VM while they communicate. Unfortunately, I'm very new to unix and PLC programming, and am having some difficulty getting the two to communicate with each other. Ideally, the master should send data to the slave, who then updates some information and sends a response back. Does anyone know how to begin to get these two to work together? I'm really at a loss here, and I have no idea where to begin. Thank you so much, I really appreciate it.
I got pymodbus from here: https://pypi.python.org/pypi/pymodbus
Documentation located here: https://github.com/riptideio/pymodbus
P.S. I used pip to install the above .whl file, but I've seen other people install pymodbus by simply running a command, which makes me worry that I've done this all wrong.
You can run a test in one Debian VM system.
1. run the server file, and set the ip and port.
2. run the client file, and connect to the ip and port.
That is tcp/ip method and you can do serial method by the same file.Just look the comments in the above files. If any questions, let me know.
server picture:
client picture:
updated:
1.connect two PCs by local area network.Make sure two PCs can ping each other.
2.set synchronous-server.py:
StartTcpServer(context, identity=identity, address=("0.0.0.0", 5020))
which means listen all the coming connection requests from all ip.
3.setsynchronous-client.py(let's assume the server pc ip is "192.168.1.10", you should replace this ip to real server ip):
client = ModbusClient('192.168.1.10', port=5020)
4.run the two py files and it should works now.

The most secure server data transfer?

I'm running an Ubuntu Server somewhere, 24/7. It's used to host a webpage, a shoutcast radio, some other stuff. I'm planning to buy a Raspberry Pi 1B to use it as a "backup" server, in the following way :
Whenever the Raspberry Pi is powered up and connected to the internet, it checks if the server is online (by pinging it)
If it is, it copies via internet a precise folder from the server and backs it up on the Raspberry Pi drive. Then the Raspberry Pi powers off / reboots once the transfer is completed.
As you can see the "via internet" part is emphasized, as I don't know which data transfer method to use to make this the most simplest / stable (easy to automatize via shell scripts, not going to crash or fail) and more secure (no one can intercept and read the data which is transferred between the two machines) way. If it's slow, no problem, just want it done via automated script.
So what's the best way to do that ? WGET a HTTPS page of the server from the RPi with some credentials ? Automated SFTP ? Third-server-based transfer ? Anything else ?
Edit : People seem to downvote this post. This is fine, but I'd really appreciate to know why, so don't hesitate to comment if you disapprove to tell me what I did wrong. Thanks.
I would suggest to use rsync for that kind of stuff.
How to use rsync:
https://www.digitalocean.com/community/tutorials/how-to-use-rsync-to-sync-local-and-remote-directories-on-a-vps#how-to-use-rsync-to-sync-with-a-remote-system
It also works with ssh-keys so you do not need a password which makes it great for backups.

Phone cannot access sites being served by localhost(lite-server) on same WiFi network

Searched all over the place for a fix for this or even a good way to troubleshoot it. I've read the previous SO threads that seem to cover this issue but nothing in any of them has worked in my case.
Basically, I can't get access to anything that is being served via localhost on my mac in any browser on my Android device.
This is happening despite the fact they are connected to the same WIFI network and I am using the correct network address for my mac on which localhost is running (I have checked and double checked several times). I have no idea what the problem is because it worked perfectly fine before and I haven't changed anything that I believe would interfere with localhost access.
I don't have firewall or port blocking settings on my router either.
I have also tried on several different Android devices to eliminate it being a problem specific to one particular device.
Totally stumped. Any clues or hints on how to fix this would be much appreciated!
***** UPDATE *****
I tried using python -m SimpleHTTPServer 3000and it works. The site is accessible on my Android device. So I am pretty sure it is not a network issue per se.
The site is essentially a Node app which I built using the angular-quickstart template found here. It launches lite-server when npm start is run. Hope that gives some further insight into what the problem might be.
If you open up a terminal on your mac and then run the command ifconfig it will tell you what ip address all your interfaces have. It is probably your en0 interface. That ip address should be used in your browser on your Android device.
You will have to make user that you server (web) is binding to the correct ip address as well. You could be binding to all ip addresses if possible.

How can I test a OPC-UA server running on Raspberry Pi from a Windows computer?

As a part of a job assignment where I am to implement and test an OPC server on a Raspberry Pi, I found and implemented a node.js server found at this Github repository (sample_server.js).
Now, being new to OPC in general, I tried downloading the MatrikonOPC Explorer to connect to the server, but it refused to find the server. At first I thought I was just not putting in the right things (endpoint URL goes somewhere?) into the connect prompt, but having read some more, (I think) I now understand that the explorer uses the regular OPC specification while my server is a OPC-UA server. Please correct me if I'm wrong here.
Anyway, I would like to see if this server actually works and can be accessed. What is a good way of testing this? If possible, I would like to test it over the network, from my Windows PC (they are both on the same network, and I have ensured they are pingable from eachother).
It turns out my suspicion was right - the problem was solved by adding a UA proxy that translated the OPC-UA to OPC Classic, allowing the explorer to detect and access the server.

Sending Multicast Packets does just work over P2P

I am stucked within a weired problem. I have two little programs (written in C, using Win API), the one sends a multicast package, the other one receives it. Well, I tried it between two notebooks, the one running win7, the other win8, and it works as expected while running a P2P connection between them (=without switch, just the patch cable plugged into both hosts).
But when I try to connect a switch between both hosts it does not work. I also tested a hub, but that dows not work either. I tested it over wifi, but it still does not work.
The Multicast Packet works just over P2P. And THAT seems to be weired.
Firewall is off, also any other security software. Ping works in any configuration as expected.
Any tip would be highly appreciated :-)
Dirk
I've found the problem for myself - the notebook I tried to send the packets has virtualbox installed. After Disabling the virtualbox service the connection worked successfully. I still don't know exactly the reason, but this workaround helped for me.

Resources