Copy link to clipboard
Copied
Hello
could anyone explain please, is it possible to use Video Phone (Cirrus Sample Application) with FMS4?
It seems to be possible because in Video Phone source can be found these text:
// rtmfp server address (Adobe Cirrus or FMS)
[Bindable] private var connectUrl:String = "rtmfp://p2p.rtmfp.net";
If it’s possible, where can be found a server-side script for FMS /opt/adobe/fms/applications/videophone/ folder?
sorry for poor English
Many thanks!
the latest VideoPhoneLabs uses a new short message relay function on Codename Cirrus. the semantics are super simple and there's no reason you couldn't implement the function on FMS4.
the relay function works like this: when peerID a01234... wants to send a short message to peerID b12345... (both connected to Cirrus), peerID a01234... does
// nc is the NetConnection
nc.call("relay", null, "b12345...", ...args...);
the message will come out on b12345 as a call to the NetConnection's client's o
...Copy link to clipboard
Copied
Hi,
Thanks for your interest.
It is not exactly possible to use the same sample application thats hosted for Cirrus. But the same functionality (the multicast and other rtmfp features) can all be made use of from FMS4 using the sample application that comes along with it. In the fms 4 installation folder and under applicaitons, you should be able to find an application called multicast which should give the multicast functionality.
Hope it helps.
Thank you !
Copy link to clipboard
Copied
Hi Nikhil
Thank you for your reply!
Could you please give me another advice:
This old VideoPhoneLabs version works with FMS4 well.
But the latest VideoPhoneLabs version (with great echo cancellation feature) doesn't work - there is no call between 2 clients.
In other words, when trying to call only this text appears in "status" tab of the call-recieving client:
NetConnection event: NetStream.Connect.Success
Connection from: 8f63487171497700144d210eaf87e90e4f72855631b63b1cd643d0866144df6d
Though in case of successful call the text in "status" bar should look like this:
Request: invite from: 8f0e9d002d7b47b05276173c229cddba031decdd75fb4682d2db4bdb2b28e479 (35325)
Incoming stream event: NetStream.Play.Reset
NetConnection event: NetStream.Connect.Success
Connection from: 8f0e9d002d7b47b05276173c229cddba031decdd75fb4682d2db4bdb2b28e479
Incoming stream event: NetStream.Play.Start
That is the problem...
Great thanks in advance...
Copy link to clipboard
Copied
the latest VideoPhoneLabs uses a new short message relay function on Codename Cirrus. the semantics are super simple and there's no reason you couldn't implement the function on FMS4.
the relay function works like this: when peerID a01234... wants to send a short message to peerID b12345... (both connected to Cirrus), peerID a01234... does
// nc is the NetConnection
nc.call("relay", null, "b12345...", ...args...);
the message will come out on b12345 as a call to the NetConnection's client's onRelay function:
nc.client.onRelay("a01234...", ...args...)
VideoPhoneLabs uses this function for call signaling. you should be able to whip up a similar server-side function for FMS4.
otherwise, other than the URI that you use to connect to FMS, the P2P introduction function on FMS should be identical to Cirrus.
Copy link to clipboard
Copied
Michael, thanks to your answer the problem is solved!
Great thanks!
Copy link to clipboard
Copied
Denis:
Can you please upload your client side changes to the VideoPhoneLabs app and more importantly, your main.asc file for the FMS side? I am still having issues with getting
my sample to work.
Thanks,
Dan
Copy link to clipboard
Copied
main.asc:
application.onAppStart = function()
{
trace("Application started");
}
application.onConnect = function(client, userName)
{
trace("User connected: " + userName + ", id: " + client.farID);
client.userName = userName;
// server side functions
client.getRemoteId = getRemoteId;
client.register = register;
application.acceptConnection(client);
return true;
}
application.onDisconnect = function(client)
{
trace("User disconnecting: " + client.userName);
}
function register(user, id)
{
trace("Register: " + user + ", id: " + id);
for (var i = 0; i < application.clients.length; i++)
{
if (application.clients.farID == id)
{
application.clients.userName = user;
return 0;
}
}
return -1;
}
function findUser(userName)
{
for (var i = 0; i < application.clients.length; i++)
{
if (application.clients.userName == userName)
{
return i;
}
}
return -1;
}
function getRemoteId(userName)
{
trace("Looking up remote user: " + userName);
var result = new Object;
result.userName = userName;
result.id = "";
result.protocol = "";
var index = findUser(userName);
if (index != -1 )
{
result.id = application.clients[index].farID;
result.protocol = application.clients[index].protocol;
}
else
{
trace("User not found: " + userName);
}
return result;
}
p.s. this code is taken from http://www.adobe.com/devnet/flashplayer/articles/rtmfp_cirrus_app.html (see Jozsef V comment below article)
As for client side changes to the VideoPhoneLabs app - only FMS URL had been modified.