Skip to main content
November 29, 2013
Answered

Newbie question regarding authorization

  • November 29, 2013
  • 1 reply
  • 1236 views

Hi there,

I have an AMS 5.0.1 up and running. But I am a newbie to AMS.

I want to implement authorisation functionalities to the AMS for streaming recorded mp4 files (vod).

As a start, for Flash-based clients using RTMP, later on for iOS/Android devices using HLS/HDS.

My plan is that the client sends an internal id of the video to stream and a session id.

These two parms should be passed over from AMS to another remote server having an PHP API or a SOAP web service. This remote server checks if the video may be streamed and (simplified) returns true or false back to the AMS.

Now, my problem is that I have no idea where to hook into the communication between client and server.

As far as I understood the normal way to do this would be to listen to some events in the main.asc.

All examples I've found so far do only show how to handle application.onConnect.

But I would like the AMS to react on the NetStream.play() command sent by the Flash client.

How can this be done?

And, is there a way to do this for the HLS streaming that is not based on Flash clients?

Thanks a lot in advance

Hyper

    This topic has been closed for replies.
    Correct answer mmah-umd

    You pass additional arguments to the connect function:

    nc.connect("rtmp://myserver.com/test", "12345", "abcdefgh");

    On the media server, you define the onConnect function to take as many arguments as you expect:

    application.onConnect = function(client, videoID, sessionID){

         // your code to handle client connection here, presumably to check values at remote server

    }

    The client argument is always present. You can add additional arguments after it.

    http://help.adobe.com/en_US/flashmediaserver/ssaslr/WS5b3ccc516d4fbf351e63e3d11a11afc95e-7edfSSASLR.html#WS5b3ccc516d4fbf351e63e3d11a11afc95e-7fe1SSASLR

    You have to pass the arguments in the same order as the onConnect function.

    1 reply

    Inspiring
    December 2, 2013

    I think you want the client to send the session ID and video ID when it connects. As far as I know, there is no event that is generated by a a play command.

    I can't help with the HLS.

    December 3, 2013

    Hi mmah-umd,

    thanks for that idea.

    In the examples I've found so far the connect command never contains  parameters other than the URL. It always looks like this:

      new NetConnection();

      nc.connect("rtmp://myserver.com/test");

    I don't understand how I could add session ID and video ID.

    Would this work?

      nc.connect("rtmp://myserver.com/test?video=12345&session=abcdefgh");

    Thanks again

    Hyper

    mmah-umdCorrect answer
    Inspiring
    December 3, 2013

    You pass additional arguments to the connect function:

    nc.connect("rtmp://myserver.com/test", "12345", "abcdefgh");

    On the media server, you define the onConnect function to take as many arguments as you expect:

    application.onConnect = function(client, videoID, sessionID){

         // your code to handle client connection here, presumably to check values at remote server

    }

    The client argument is always present. You can add additional arguments after it.

    http://help.adobe.com/en_US/flashmediaserver/ssaslr/WS5b3ccc516d4fbf351e63e3d11a11afc95e-7edfSSASLR.html#WS5b3ccc516d4fbf351e63e3d11a11afc95e-7fe1SSASLR

    You have to pass the arguments in the same order as the onConnect function.