Developing an Authorization plug-in

Authorization plug-in overview

[adobebyline]For information about developing an Authorization Plug-in, see Using plug-ins to configure and optimize Flash Media Server 4.5 by Denis Bulichenko.[/adobebyline]

The Authorization plug‑in authorizes client access to server events and fields associated with those events. Use the Authorization plug‑in to do the following:

  • Authorize connections to the server

    Note: The Access plug‑in can also authorize connections and is more lightweight. For more information, see Access plug-in overview.

  • Authorize playing a stream or seeking in a stream

  • Authorize a dynamic stream transition

  • Authorize publishing a stream or recording a stream

  • Map logical URLs to physical locations

    For example, if the video player plays a stream “foo” —ns.play("myvideos/foo")— when the request is processed by the server, this virtual name could map to c:\apps\vidapp\myvideos\. The Authorization plug‑in lets you remap this to a different physical location; for example, c:\myvideos\.

  • Disconnect clients from the server

  • Call a method in Server-Side ActionScript

  • Access client statistics

  • Identify when a new codec is discovered in a publishing stream

  • Restrict the size of a recording by size or duration

Use the Authorization plug‑in to deliver content to clients according to one or more of the following criteria:

  • Geographic location

  • Subscription level

  • Stream origin

  • Time and duration of a user’s access to specific streams

You can also use the Authorization plug‑in to monitor stream quality of service (QoS). The plug‑in reports live stream QoS information to an external log file, which could then be read to another custom built tool.

Using multiple Authorization plug-ins

You can use a chain of plug‑ins to sequentially perform actions on the incoming event. Allocate specific types of events to individual plug‑ins: for example, auth1.dll (or auth1.so) could authorize playing a stream; auth2.dll (or auth2.so) could authorize publishing a stream, and so on.

Note:

For cross-platform compatibility, use lowercase naming.

The server loads the plug‑ins in alphabetical order. When the server processes client requests for events, it follows alphabetical order. Each plug‑in filters the incoming requests.

Writing the code in an Authorization plug-in

When the server loads an Authorization plug‑in, it expects one of the following entry points:

 FmsCreateAuthAdaptor() // Creates an Authorization plug-in. 
 FmsDestroyAuthAdaptor() // Destroys an Authorization plug-in. 
FmsCreateAuthAdaptor2() // Creates an Authorization plug-in with versioning information. 
FmsDestroyAuthAdaptor2() // Destroys an Authorization plug-in with versioning. 
FmsCreateAuthAdaptor3() // Creates an Authorization plug-in with versioning information. 
FmsDestroyAuthAdaptor3() // Destroys an Authorization plug-in with versioning.

Use the correct method for the version of the server you’re using. For more information, see About versioning.

Implement the IFmsAuthAdaptor interface to process events as they occur. This class includes the functions authorize(), notify(), and getEvents().

Once the plug‑in is created, the server calls the getEvents() function to find out which events the plug‑in wants to process. The server calls getEvents() once, and the events are good for the lifetime of the plug‑in.

Note:

If the E_CODEC_CHANGE event is not excluded, the plug‑in scans all messages to detect a codec change. Subscribe to this event only as needed. This event is disabled in the Authorization plug‑in sample code installed with the server.

Some events must be authorized by the plug‑in before the server executes them; other events only require the plug‑in to notify the server that the plug‑in received notification of the event. When authorization events occur, the server calls the authorize() function on the plug‑in. When notification events occur, the server calls the notify() function on the plug‑in. You write code in these functions that runs when the events occur.

The server suspends operations until the plug‑in calls the onAuthorize() function of the IFmsAuthServerContext class. Call onAuthorize() in the last line of the authorize() function. Pass it a pointer to the event and a boolean value indicating whether the event is authorized or not. This call completes any pending operations on the server.

The server continues operating when it calls the notify() function of the IFmsAuthServerContext class. Call onNotify() in the last line of the notify() function. Pass it a pointer to the event. This call notifies the server that notification is complete and the event is no longer needed.

There are two ways to process events: assign an action to an event, and write code in the authorize() and notify() functions that processes the event.

Assigning actions to events

There are two actions you can assign to an event: IFmsDisconnectAction and IFmsNotifyAction. The IFmsDisconnectAction disconnects one or more clients when the event occurs and the IFmsNotifyAction calls a function on the Client object or the application object in a server-side script when the event occurs. You can add as many actions as needed. Actions are executed in the order they are assigned right before the event is disposed.

To assign an action to an event, call addDisconnectAction() or addNotifyAction() from an IFmsAuthEvent instance. Actions execute right before the event is disposed. If multiple actions are attached to an event, the actions execute in the order in which they were attached.

The following code adds the IFmsNotifyAction instance pAction to the IFmsAuthEvent instance m_pAev. The action calls method() in a server-side script and passes it the parameter 12345.

FmsVariant field; 
//action to notify SSAS by calling "method" with U16 variable = 12345 
//and I64 variable client id 
if (m_pAev->getField(IFmsAuthEvent::F_CLIENT_ID, field) == IFmsAuthEvent::S_SUCCESS) 
{ 
    I64 clientId = field.i64; 
    IFmsNotifyAction* pAction = m_pAev->addNotifyAction("Notified by adaptor"); 
    pAction->setClientId(field); 
    const char mtd[] = "method"; 
    field.setString(reinterpret_cast<I8*>(const_cast<char*>(mtd))); 
    pAction->setMethodName(field); 
    field.setU16(12345); 
///script does not work with I64 and returns invalid type 
//should be preset to double or string 
//field.setI64(clientId);  //wrong!!! 
    field.setDouble((double)clientId); 
    pAction->addParam(field); 
}
Note:

The previous sample code is excerpted from the AuthModule.cpp file in the rootinstall/samples/plugins/auth folder.

You can call addParam() on a IFmsNotifyAction instance to pass parameters to a method. You must define the method in a server-side script. If you pass a value to setClientId(), the method is called on the server-side Client object. If you don’t pass a value to setClientId(), the method is called on the server-side application object. For example, the following Server-Side ActionScript code defines someMethod() on the Client object:

 application.onConnect = function(client){ 
     client.someMethod = function(msg){ 
         trace(“inside someMethod”); 
     } 
 }

Mapping stream paths

Note:

Use the characters “%3A” to escape a colon in a URL parameter. For example, if the URL is "rtmp://ip-addr/clientid/filename?foo=Smith:Joe", change it to "rtmp://ip-addr/clientid/filename?foo=Smith%3AJoe".

Use the authorize() function to remap virtual stream paths to different physical locations. For example, if client 1 and client 2 both request to play the stream foo.flv, two E_FILENAME_TRANSFORM events are called, and you can remap the stream differently for each client. For example, client 1 could remap stream foo to c:\yourpath1\foo.flv and client 2 could remap stream foo to c:\yourpath2\foo.flv.

To map a logical stream to a different physical path, set a parameter in the Application.xml file, as follows:

 <Application> 
     ... 
     <StreamManager> 
         ... 
         <QualifiedStreamsMapping enable="true" />

Every time a client plays or publishes a stream or executes a Stream call in Server-Side ActionScript, an E_FILENAME_TRANSFORM event occurs. The E_FILENAME_TRANSFORM event lets you modify the F_STREAM_PATH property to change the path to a stream’s physical location.

The E_FILENAME_TRANSFORM event is a link between the Authorization plug‑in and the File plug‑in. The path to the physical location of a stream that you specify in this event is passed to the File plug‑in for use in certain file operations.

Events occur in the following order:

  1. E_PLAY or E_PUBLISH The logical stream name may be changed here.

  2. E_FILENAME_TRANSFORM The resulting physical stream name may be changed here.

  3. Playback occurs.

  4. E_STOP or E_UNPUBLISH

About the E_FILENAME_TRANSFORM event

The behavior of the E_FILENAME_TRANSFORM event has improved with each release of Adobe Media Server.

Version2.5.2

the E_FILENAME_TRANSFORM event is called once for each stream in a application instance. Client fields are not available. For example, if client1 plays the file foo.flv from the application streamtest/inst1, the E_FILENAME_TRANSFORM event is called with the physical path to foo.flv (c:\defaultpath\foo.flv). Suppose you remap the physical path to c:\yourpath\yourfoo.flv. The E_FILENAME_TRANSFORM for the application streamtest/inst1 foo.flv is not called again and the new path, c:\yourpath\yourfoo.flv, is used for all clients.

Version 2.5.3

The E_FILENAME_TRANSFORM event is called for each client every time they play or publish a stream. Client fields are available. For example, suppose client1 and client2 both play the file foo.flv. Two E_FILENAME_TRANSFORM events are called and you can remap them for each client.

Version 3.0

The behavior of the E_FILENAME_TRANSFORM event was improved to handle playlists. In the case of a playlist, a client plays many clips in a row. The E_FILENAME_TRANSFORM event is called every time a clip is played, as in the following sequence:

play("clip0") / E_FILENAME_TRANSFORM / stop() play("clip1") / E_FILENAME_TRANSFORM / stop()

The E_FILENAME_TRANSFORM event is not called when a client plays the same clip multiple times in row in a playlist, as in the following sequence:

play("clip0") / E_FILENAME_TRANSFORM / stop() play("clip1") / E_FILENAME_TRANSFORM / stop() play("clip0") / E_FILENAME_TRANSFORM / stop() play("clip0") / stop() play("clip1")/ E_FILENAME_TRANSFORM / stop()

Version 3.5

The E_FILENAME_TRANSFORM event is called every time a client plays a new clip in a playlist, as in the following sequence:

play("clip0") / E_FILENAME_TRANSFORM / stop() play("clip1") / E_FILENAME_TRANSFORM / stop() play("clip0") / stop() play("clip0") / stop() play("clip1") / stop()

To use the E_FILENAME_TRANSFORM event to remap a path when a client plays the same clip multiple times in a playlist, set <QualifiedStreamsMapping enable="true"/> in the Application.xml file. The following is an example of the sequence:

play("clip0") / E_FILENAME_TRANSFORM - Path 1/ stop() play("clip1") / E_FILENAME_TRANSFORM - Path 1/ stop() play("clip0") / E_FILENAME_TRANSFORM - Path 2/ stop() play("clip0") / E_FILENAME_TRANSFORM - Path 3/ stop() play("clip1") / E_FILENAME_TRANSFORM - Path 2/ stop()

When <QualifiedStreamsMapping enable="false"/>, the E_FILENAME_TRANSFORM event is called only the first time a clip plays.

Differences between edge and origin deployments

Authorization plug‑ins can be deployed on origin servers and edge servers; the functionality is different in each case.

Origin

When an Authorization plug‑in is installed on an origin server, the E_PLAY (for a live stream) or E_LOADSEGMENT (for recorded stream) event is called to play the clip. To block play for a recorded stream, process the E_LOADSEGMENT event rather than E_PLAY.

Edge (Core)

Server-Side ActionScript is not executed on edge servers, so the NOTIFY action cannot be used and should always return a failure status.

Handling errors

Authorization plug‑ins are loaded by the FMSCore process. Exceptions inside a plug‑in crash FMSCore.

Note:

Authorization plug‑ins must handle exceptions to prevent FMSCore from crashing.

Specify a reason string for an authorization failure

Adobe Media Server 4.0

[adoberuntime]Adobe Media Server 4.0[/adoberuntime]

In the Authorization plug-in, specify a reason string for the authorization failure. In the Authorization plug-in, the Interface IFmsAuthServerContext has been extended to IFmsAuthServerContext2. This interface overrides the IFmsAuthServerContext::OnAuthorize method to include the AuthFailureDesc structure. Use the AuthFailureDesc structure to specify a reason string for the authorization failure, error code, and status code. To use this feature use FmsCreateAuthAdaptor3() and pass it IFmsAuthServerContext2 as the parameter.

The server uses the IFmsAuthServerContext2::StatusCode enum to send the client a NetStatus message about the failure.

For more information, see the IFmsAuthServerContext2 class in the Flash Media Server Plug-in API Reference.

Accessing client statistics

Accessing client statistics through the Authorization plug‑in in the C++ layer can provide better server performance than accessing client statistics in a server-side script. The Authorization plug‑in aggregates requests before sending them to the server.

The following client statistics are defined in the FmsClientStats struct in the FmsAuthAdaptor.h file:

Statistic

Description

bytes_in

Total number of bytes received.

bytes_out

Total number of bytes sent.

msg_in

Total number of messages received.

msg_out

Total number of messages sent.

msg_dropped

Total number of dropped messages.

To access client statistics, implement the FmsCreateAuthAdaptor2() function. For an example, see the AuthModule.cpp file installed to RootInstall\samples\plugins\auth.

When a client connects to the server, the server sends an E_CONNECT event to the Authorization plug‑in. After the plug‑in receives the E_CONNECT event, you can call IFmsAuthServerContext::getClientStats() to get statistics. Every event, such as E_PLAY and E_STOP, contains a field called F_CLIENT_STATS_HANDLE. Pass this client stats handle back to the server in the getClientStats() call. If you use F_CLIENT_STATS_HANDLE during any notification event (except E_CONNECT and E_DISCONNECT), you do not need to save the handle.

To verify that a client is connected, check the return status of the call to getClientStats(). This check is especially necessary if you are using multiple Authorization plug‑ins. For example, if plug‑in A subscribes to the E_CONNECT event and plug‑in B subscribes to the E_DISCONNECT event. When the client disconnects from the server, the adaptor A does not receive the E_DISCONNECT message.

When the server receives a disconnect message from the client, it notifies the Authorization plug‑in with an E_DISCONNECT event. The F_CLIENT_STATS_HANDLE field is invalid after the E_DISCONNECT event.

Smart seeking

Flash Media Server 3.5.3

[adoberuntime]Flash Media Server 3.5.3[/adoberuntime]

When the client NetStream.inBufferSeek property is true, “smart seek” is enabled. Smart seek lets Flash Player seek within a back buffer and a foward buffer. The player sends commands to Adobe Media Server to manage the buffer. The commands are “seekRaw”, “startTransmit”, and “stopTransmit”.

When smart seek is enabled and a client calls NetStream.seek(), the Authorization plug-in receives an E_CLIENT_SEEK event. Use this event to write seek events to a log. The F_STREAM_SEEK_POSITION property is available for this event. This read-only property is the position to which the client wants to seek.

Note:

The E_CLIENT_SEEK event is a notification event. You cannot use it to prevent the client from seeking within the client-side buffer.

The E_START_TRANSMIT event is a notification and authorization event. The E_STOP_TRANSMIT event is a notification event. Use the E_START_TRANSMIT event to block the client from asking the server to start sending data.

The Authorization plug-in receives an E_START_TRANSMIT event when the Flash Player buffer falls below a threshold. This command asks the server to transmit more data because the buffer is running low. The F_STREAM_TRANSMIT_POSITION property is available for this event. This read-only property is the position (in milliseconds) from which the client wants the server to start transmission.The Authorization plug-in receives an E_STOP_TRANSMIT event when the Flash Player buffer is above a threshold. This command asks the server to suspend transmission because there is enough data in the buffer. The F_STREAM_TRANSMIT_POSITION property is available during this event. This read-only property is the position (in milliseconds) of the data at the end of the client buffer when the client sends a stopTransmit command.

Stream reconnecting

Flash Media Server 3.5.3

[adoberuntime]Flash Media Server 3.5.3[/adoberuntime]

Flash Media Server 3.5.3 and Flash Player 10.1 allow you to build applications that reconnect streams seamlessly when a connection is dropped or when a client switches from a wired to a wireless network connection.

Use the E_PLAY event to capture information from the F_STREAM_OFFSET property and the F_STREAM_TRANSITION property. The F_STREAM_OFFSET property (read-only) indicates where to resume streaming after a reconnection, in seconds.The F_STREAM_TRANSITION property (read/write) indicates the transition mode sent by the client in the NetStream.play2() call. The values for Stream Reconnect are "resume" and "appendAndWait".

Accessing events and fields

The server provides an interface to an event object, IFmsAuthEvent, that gives the plug‑in access to events. The plug‑in has access to certain fields during each event. Not all fields are accessible during all events and each field is either read-only or read/write.

Fields can pertain to an application, a client, or a stream. For example, the value of fields with a name in the form F_CLIENT_*, such as F_CLIENT_URI and F_CLIENT_REDIRECT_URI, come from a client. An event object associated with a client event contains values for these fields.

Events associated with server-side scripts aren’t necessarily associated with a client, and therefore do not always contain values for F_CLIENT_* fields. If it is necessary to have values for the F_CLIENT_* fields from server-side script calls, the server-side script call must be invoked by a method attached to a Client object. For example, the play() method invokes the E_FILENAME_TRANSFORM event.

Authorization plug-in events

The following table lists the Authorization plug-in events and whether the event is available in the notify() function, the authorize() function, or both:

Event name

Server availability

Notify or Authorize

Description

E_APPSTART

2.5

notify

Start an application.

E_APPSTOP

2.5

notify

Stop an application.

E_CONNECT

2.5

notify, authorize

A client established a TCP control connection to the server.

E_DISCONNECT

2.5

notify

The TCP connection between the client and the server is broken.

E_FILENAME_TRANSFORM

2.5

notify, authorize

The server has requested permission to map the logical filename requested by a client.

E_PLAY

2.5

notify, authorize

Play a stream.

E_STOP

2.5

notify

Stop a stream.

E_SEEK

2.5

notify, authorize

Seek a stream.

E_PAUSE

2.5

notify, authorize

Pause delivery of a stream.

E_PUBLISH

2.5

notify, authorize

Publish a stream.

E_UNPUBLISH

2.5

notify

Unpublish a stream.

E_LOADSEGMENT

2.5

notify, authorize

Load a segment.

E_ACTION

2.5

N/A

An action attached to an event was executed.

E_CODEC_CHANGE

3.5

notify

A new codec is discovered in the stream.

E_RECORD

3.5

notify, authorize

Record a stream.

E_RECORD_STOP

3.5

notify

Stop recording a stream.

E_CLIENT_PAUSE

3.5

notify

Client smart-pauses a stream.

E_SWF_VERIFY

3.5.3

notify, authorize

Called before the SWF Verification process begins. Use this event to disallow the verification which terminates the connection. You can also use this event to provide a digest for the calling SWF. Use this mechanism to manage an inventory of SWFs that sit outside the server and aren't cached and managed by the server. This event is called multiple times if the SWF is large enough to require partial matching.

E_SWF_VERIFY_COMPLETE

3.5.3

notify

SWF Verification has completed successfully for this client.

E_CLIENT_SEEK

3.5.3

notify

Client smart-seeks a stream.

E_START_TRANSMIT

3.5.3

notify, authorize

Start stream transmission.

E_STOP_TRANSMIT

3.5.3

notify

Stop stream transmission.

E_MAXEVENT

2.5

N/A

The total number of events in the enum field.

Authorization plug-in fields

The following table lists the Authorization plug-in fields:

Field

Server version

Data type

Description

F_APP_INST

2.5

String

The application instance name.

F_APP_NAME

2.5

String

The application name.

F_APP_URI

2.5

String

The URI of the application to which the client connected. The value does not include the server name or port information.

F_CLIENT_AMF_ENCODING

2.5

I8

The AMF (Action Message Format) encoding of the client.

F_CLIENT_AUDIO_CODECS

2.5

I32

A list of audio codecs supported on the client.

F_CLIENT_AUDIO_SAMPLE_ACCESS

2.5

String

Gives the client access to raw, uncompressed audio data from streams in the specified folders.

F_CLIENT_AUDIO_SAMPLE_ACCESS_LOCK

2.5

I8

A Boolean value preventing a server-side script from setting the Client.audioSampleAccess property (true), or not (false).

F_CLIENT_CONNECT_TIME

3.5.3

I64

The time the client connected to the server, in seconds since Jan 1, 1970. You can retrieve this value from any event that has an associated client. The getField() function returns S_SUCCESS if this field is successfully retrieved.

F_CLIENT_DIFFSERV_BITS

3.5.2

U8

DSCP bits to be used in setsockopt for a particular NetConnection.

F_CLIENT_DIFFSERV_MASK

3.5.2

U8

DSCP mask to be used in setsockopt.

F_CLIENT_FAR_ID

3.5

String

The far ID of the client

F_CLIENT_FAR_NONCE

3.5

String

The far nonce of the client.

F_CLIENT_FORWARDED_FOR

4.0

String

Any x-forwarded-for header included by an HTTP Proxy on an RTMPT session.

F_CLIENT_ID

2.5

I64

A 64-bit integer value that uniquely identifies the client (this value is not unique across processes).

F_CLIENT_IP

2.5

String

The client IP address.

F_CLIENT_NEAR_ID

3.5

String

The near ID of the client

F_CLIENT_NEAR_NONCE

3.5

String

The near nonce of the client.

F_CLIENT_PAGE_URL

2.5

String

The URL of the client SWF file. (This field is set only when clients use Flash Player 8 or above).

F_CLIENT_PROTO

2.5

String

The protocol the client used to connect to the server.

F_CLIENT_PROTO_VER

3.5

String

The version of the protocol that the client used to connect to the server.

F_CLIENT_READ_ACCESS

2.5

String

A string of directories containing application resources (shared objects and streams) to which the client has read access.

F_CLIENT_READ_ACCESS_LOCK

2.5

I8

A Boolean value preventing a server-side script from setting the Client.readAccess property (true), or not (false).

F_CLIENT_REDIRECT_URI

3.0

String

A URI to redirect the connection to.

F_CLIENT_REFERRER

2.5

String

The URL of the SWF file or server where this connection originated.

F_CLIENT_SECURE

2.5

I8

A Boolean value indicating whether a connection is secure (true) or not (false).

F_CLIENT_STATS_HANDLE

3.5

I64

A string that uniquely identifies the client stats handle.

F_CLIENT_SWFV_DEPTH

3.5.3

I64

During SWF Verification, the 64-bit size of the original SWF that corresponds with the digest.

F_CLIENT_SWFV_DIGEST

3.5.3

U8*

During SWF Verification, the 32-byte hash digest, as a byte buffer.

F_CLIENT_SWFV_EXCEPTION

3.5.3

I8

A Boolean value indicating whether this client is an exception to SWF Verification (true) or not (false). Set this value to true if you want a client who would normally be subject to SWF Verification to be excepted from that requirement. This field is similar to the UserAgentExceptions function in the Application.xml configuration file but in this case you except a single client.

F_CLIENT_SWFV_RESULT

4.0

None

The completed result of a SWF Verification attempt. Possible values are in the eSWFMatch enum.

F_CLIENT_SWFV_TTL

3.5.3

I32

During SWF Verification, the time to live (in seconds) of each SWF hash in the cache.

F_CLIENT_SWFV_VERSION

3.5.3

I8

During SWF Verification, the version of the protocol.

F_CLIENT_TYPE

2.5

I32

The client type. Possible values are Normal, Group, GroupElement (a client connected through an edge server), Service, All.

F_CLIENT_URI

2.5

String

The URI the client specified to connect to the server. The value does not include the application name or instance name.

F_CLIENT_URI_STEM

2.5

String

The stem of the URI the client specified to connect to the server, without the query string.

F_CLIENT_USER_AGENT

2.5

String

The client user-agent.

F_CLIENT_USERDATA

3.5.3

U8*

Use this field to associate some user data with a client. Set this field from any authoization event that has an associated client. Retrieve this field in any subsequent event associated with the client. The getField() and setField() functions return S_SUCCESS if user data is successfully get or set. You can set anything that can be stored in an FmsVariant. When setting data, the server makes a copy before saving. When getting data, the plug-in should make a copy if the data needs to remain valid past the lifetime of the event.

F_CLIENT_VHOST

2.5

String

The virtual host of the application the client is connected to.

F_CLIENT_VIDEO_CODECS

2.5

I32

A list of video codecs supported on the client.

F_CLIENT_VIDEO_SAMPLE_ACCESS

2.5

String

Gives the client access to raw, uncompressed video data from streams in the specified folders.

F_CLIENT_VIDEO_SAMPLE_ACCESS_LOCK

2.5

I8

A Boolean value preventing a server-side script from setting the Client.videoSampleAccess property (true), or not (false).

F_CLIENT_WRITE_ACCESS

2.5

String

A string of directories containing application resources (shared objects and streams) to which the client has write access.

F_CLIENT_WRITE_ACCESS_LOCK

2.5

I8

A Boolean value preventing a server-side script from setting the Client.writeAccess property (true), or not (false)."

F_MAXFIELD

3.5

None

The total number of fields in the enum field.

F_OLD_STREAM_NAME

3.5

String

The old stream for a switch or a swap.

F_OLD_STREAM_QUERY

3.5

String

The old stream query string for a switch or a swap.

F_OLD_STREAM_TYPE

3.5

String

The old stream type for a switch or a swap.

F_SEGMENT_END

3.0

I64

The segment end boundary in bytes; available in E_LOADSEGMENT only.

F_SEGMENT_START

3.0

I64

The segment start boundary in bytes; available in E_LOADSEGMENT only.

F_STREAM_CODEC

3.5

U16

The codec value discovered in the stream; available in E_CODEC only.

F_STREAM_CODEC_TYPE

3.5

U16

The codec type discovered in the stream; available in E_CODEC only.

F_STREAM_ID

3.5

I32

The stream ID.

F_STREAM_IGNORE

2.5

I8

A Boolean value indicating whether to ignore timestamps (true), or not (false).

F_STREAM_LENGTH

2.5

Float

The length of the stream. For stream events other than E_PLAY, use the F_STREAM_SEEK_POSITION, F_SEGMENT_START and F_SEGMENT_END fields.

F_STREAM_LIVE_EVENT

3.0

None

Use this field to assign a stream to a live event. The server uses the live event to place the stream into the HTTP Dynamic Streaming manifest file. This field is the same as the Server-Side ActionScript Stream.liveEvent property.

F_STREAM_LIVE_PUBLISH_PENDING

3.5.2

I32

A Boolean value. If false, when a client plays a stream and issues a SWITCH transition and the stream is not yet published the client receives a NetStream.Play.StreamNotFound message. If true, the client does not receive the message because the server waits for the stream to publish.

F_STREAM_NAME

2.5

String

The stream name.

F_STREAM_OFFSET

3.8

Float

The offset value when F_STREAM_TRANSITION is offset.

F_STREAM_PATH

2.5

String

The physical path of the stream on the server. When the plug-in is deployed on an edge server, the physical path of the cache.

F_STREAM_PAUSE

3.0

I8

A Boolean value indicating whether to pause or unpause; available in E_PAUSE only.

F_STREAM_PAUSE_TIME

3.0

Float

The time at which a stream is paused; available in E_PAUSE only.

F_STREAM_PAUSE_TOGGLE

3.0

I8

The stream pause toggle; available in E_PAUSE only.

F_STREAM_POSITION

2.5

Float

The position of the stream; for stream events other than E_PLAY, use the F_STREAM_SEEK_POSITION, F_STREAM_PAUSE_TIME, F_SEGMENT_START, and F_SEGMENT_END fields.

F_STREAM_PUBLISH_BROADCAST

3.0

I32

Broadcast or multicast; currently not supported.

F_STREAM_PUBLISH_TYPE

3.0

I32

The stream publishing type (available for E_PUBLISH only): 0 for record, 1 for record and append to existing stream, 2 for record and append to existing stream while preserving gaps in the recording, -1 for live.

F_STREAM_QUERY

2.5

String

A query appended to a stream, for example, streamName?streamQuery.

F_STREAM_RECORD_MAXDURATION

3.5

Float

The maximum duration (in seconds) of a stream recording; available in E_RECORD only.

F_STREAM_RECORD_MAXSIZE

3.5

Float

The maximum size (in kb) of a stream recording; available in E_RECORD only.

F_STREAM_RESET

3.0

I8

A Boolean value indicating whether to allow adding a stream to a playlist (true), or not (false); for stream events other than E_PLAY, use F_STREAM_PUBLISH_TYPE.

F_STREAM_SEEK_POSITION

3.0

I8

The position to which the stream should seek; available in E_SEEK only.

F_STREAM_TRANSITION

3.5

String

The transition mode string for a switch or a swap.

F_STREAM_TRANSMIT_POSITION

3.0

Float

The position to which the stream should start/stop; available in E_START_TRANSMIT and E_STOP_TRANSMIT only.

F_STREAM_TYPE

2.5

String

The file type of the stream.

Authorization plug-in events and fields support matrix

The following tables shows the fields you can access from each event. A single table is too wide to display because there are too many events. Therefore, the matrix is divided into mulitple tables. Each table lists all the fields and some events.

E_APPSTART

E_APPSTOP

E_CONNECT

E_DISCONNECT

F_APP_INST

Read-only

Read-only

Read-only

Read-only

F_APP_NAME

Read-only

Read-only

Read-only

Read-only

F_APP_URI

Read-only

Read-only

Read-only

Read-only

F_CLIENT_AMF_ENCODING

N/A

N/A

Read-only

Read-only

F_CLIENT_AUDIO_CODECS

N/A

N/A

Read-only

Read-only

F_CLIENT_AUDIO_SAMPLE_ACCESS

N/A

N/A

Read/Write

Read-only

F_CLIENT_AUDIO_SAMPLE_ACCESS_LOCK

N/A

N/A

Read/Write

Read-only

F_CLIENT_CONNECT_TIME

N/A

N/A

Read-only

Read-only

F_CLIENT_DIFFSERV_BITS

N/A

N/A

Read/Write

N/A

F_CLIENT_DIFFSERV_MASK

N/A

N/A

Read/Write

N/A

F_CLIENT_FAR_ID

N/A

N/A

Read-only

Read-only

F_CLIENT_FAR_NONCE

N/A

N/A

Read-only

Read-only

F_CLIENT_FORWARDED_FOR

N/A

N/A

Read-only

Read-only

F_CLIENT_ID

N/A

N/A

Read-only

Read-only

F_CLIENT_IP

N/A

N/A

Read-only

Read-only

F_CLIENT_NEAR_ID

N/A

N/A

Read-only

Read-only

F_CLIENT_NEAR_NONCE

N/A

N/A

Read-only

Read-only

F_CLIENT_PAGE_URL

N/A

N/A

Read-only

Read-only

F_CLIENT_PROTO

N/A

N/A

Read-only

Read-only

F_CLIENT_PROTO_VER

N/A

N/A

Read-only

Read-only

F_CLIENT_READ_ACCESS

N/A

N/A

Read/Write

Read-only

F_CLIENT_READ_ACCESS_LOCK

N/A

N/A

Read/Write

Read-only

F_CLIENT_REDIRECT_URI

N/A

N/A

Read/Write

Read-only

F_CLIENT_REFERRER

N/A

N/A

Read-only

Read-only

F_CLIENT_SECURE

N/A

N/A

Read-only

Read-only

F_CLIENT_STATS_HANDLE

N/A

N/A

Read-only

Read-only

F_CLIENT_SWFV_DEPTH

N/A

N/A

N/A

N/A

F_CLIENT_SWFV_DIGEST

N/A

N/A

N/A

N/A

F_CLIENT_SWFV_EXCEPTION

Read-only

Read-only

Read/Write

Read-only

F_CLIENT_SWFV_RESULT

N/A

N/A

N/A

N/A

F_CLIENT_SWFV_TTL

N/A

N/A

N/A

N/A

F_CLIENT_SWFV_VERSION

N/A

N/A

N/A

N/A

F_CLIENT_TYPE

N/A

N/A

Read-only

Read-only

F_CLIENT_URI

N/A

N/A

Read-only

Read-only

F_CLIENT_URI_STEM

N/A

N/A

Read-only

Read-only

F_CLIENT_USER_AGENT

N/A

N/A

Read-write

Read-only

F_CLIENT_USERDATA

N/A

N/A

Read-write

Read-only

F_CLIENT_VHOST

N/A

N/A

Read-only

Read-only

F_CLIENT_VIDEO_CODECS

N/A

N/A

Read-only

Read-only

F_CLIENT_VIDEO_SAMPLE_ACCESS

N/A

N/A

Read/Write

Read-only

F_CLIENT_VIDEO_SAMPLE_ACCESS_LOCK

N/A

N/A

Read/Write

Read-only

F_CLIENT_WRITE_ACCESS

N/A

N/A

Read/Write

Read-only

F_CLIENT_WRITE_ACCESS_LOCK

N/A

N/A

Read/Write

Read-only

F_MAXFIELD

N/A

N/A

N/A

N/A

F_OLD_STREAM_NAME

N/A

N/A

N/A

N/A

F_OLD_STREAM_QUERY

N/A

N/A

N/A

N/A

F_OLD_STREAM_TYPE

N/A

N/A

N/A

N/A

F_SEGMENT_END

N/A

N/A

N/A

N/A

F_SEGMENT_START

N/A

N/A

N/A

N/A

F_STREAM_CODEC

N/A

N/A

N/A

N/A

F_STREAM_CODEC_TYPE

N/A

N/A

N/A

N/A

F_STREAM_ID

N/A

N/A

N/A

N/A

F_STREAM_IGNORE

N/A

N/A

N/A

N/A

F_STREAM_LENGTH

N/A

N/A

N/A

N/A

F_STREAM_LIVE_EVENT

N/A

N/A

N/A

N/A

F_STREAM_LIVE_PUBLISH_PENDING

N/A

N/A

N/A

N/A

F_STREAM_NAME

N/A

N/A

N/A

N/A

F_STREAM_OFFSET

N/A

N/A

N/A

N/A

F_STREAM_PATH

N/A

N/A

N/A

N/A

F_STREAM_PAUSE

N/A

N/A

N/A

N/A

F_STREAM_PAUSE_TIME

N/A

N/A

N/A

N/A

F_STREAM_PAUSE_TOGGLE

N/A

N/A

N/A

N/A

F_STREAM_POSITION

N/A

N/A

N/A

N/A

F_STREAM_PUBLISH_BROADCAST

N/A

N/A

N/A

N/A

F_STREAM_PUBLISH_TYPE

N/A

N/A

N/A

N/A

F_STREAM_QUERY

N/A

N/A

N/A

N/A

F_STREAM_RECORD_MAXDURATION

N/A

N/A

N/A

N/A

F_STREAM_RECORD_MAXSIZE

N/A

N/A

N/A

N/A

F_STREAM_RESET

N/A

N/A

N/A

N/A

F_STREAM_SEEK_POSITION

N/A

N/A

N/A

N/A

F_STREAM_TRANSITION

N/A

N/A

N/A

N/A

F_STREAM_TRANSMIT_POSITION

N/A

N/A

N/A

N/A

F_STREAM_TYPE

N/A

N/A

N/A

N/A

The following table displays all the fields and more events:

E_FILENAME_TRANSFORM

E_PLAY

E_STOP

F_APP_INST

Read-only

Read-only

Read-only

F_APP_NAME

Read-only

Read-only

Read-only

F_APP_URI

Read-only

Read-only

Read-only

F_CLIENT_AMF_ENCODING

Read-only

Read-only

Read-only

F_CLIENT_AUDIO_CODECS

Read-only

Read-only

Read-only

F_CLIENT_AUDIO_SAMPLE_ACCESS

Read-only

Read-only

Read-only

F_CLIENT_AUDIO_SAMPLE_ACCESS_LOCK

Read-only

Read-only

Read-only

F_CLIENT_CONNECT_TIME

Read-only

Read-only

Read-only

F_CLIENT_DIFFSERV_BITS

N/A

Read/Write

Read-only

F_CLIENT_DIFFSERV_MASK

N/A

Read/Write

Read-only

F_CLIENT_FAR_ID

Read-only

Read-only

Read-only

F_CLIENT_FAR_NONCE

Read-only

Read-only

Read-only

F_CLIENT_FORWARDED_FOR

Read-only

Read-only

Read-only

F_CLIENT_ID

Read-only

Read-only

Read-only

F_CLIENT_IP

Read-only

Read-only

Read-only

F_CLIENT_NEAR_ID

Read-only

Read-only

Read-only

F_CLIENT_NEAR_NONCE

Read-only

Read-only

Read-only

F_CLIENT_PAGE_URL

Read-only

Read-only

Read-only

F_CLIENT_PROTO

Read-only

Read-only

Read-only

F_CLIENT_PROTO_VER

Read-only

Read-only

Read-only

F_CLIENT_READ_ACCESS

Read-only

Read-only

Read-only

F_CLIENT_READ_ACCESS_LOCK

Read-only

Read-only

Read-only

F_CLIENT_REDIRECT_URI

Read-only

Read-only

Read-only

F_CLIENT_REFERRER

Read-only

Read-only

Read-only

F_CLIENT_SECURE

Read-only

Read-only

Read-only

F_CLIENT_STATS_HANDLE

Read-only

Read-only

Read-only

F_CLIENT_SWFV_DEPTH

N/A

N/A

N/A

F_CLIENT_SWFV_DIGEST

N/A

N/A

N/A

F_CLIENT_SWFV_EXCEPTION

Read-only

Read-only

Read-only

F_CLIENT_SWFV_RESULT

N/A

N/A

N/A

F_CLIENT_SWFV_TTL

N/A

N/A

N/A

F_CLIENT_SWFV_VERSION

N/A

N/A

N/A

F_CLIENT_TYPE

Read-only

Read-only

Read-only

F_CLIENT_URI

Read-only

Read-only

Read-only

F_CLIENT_URI_STEM

Read-only

Read-only

Read-only

F_CLIENT_USER_AGENT

Read-write

Read-write

Read-only

F_CLIENT_USERDATA

Read-write

Read-write

Read-only

F_CLIENT_VHOST

Read-only

Read-only

Read-only

F_CLIENT_VIDEO_CODECS

Read-only

Read-only

Read-only

F_CLIENT_VIDEO_SAMPLE_ACCESS

Read-only

Read-only

Read-only

F_CLIENT_VIDEO_SAMPLE_ACCESS_LOCK

Read-only

Read-only

Read-only

F_CLIENT_WRITE_ACCESS

Read-only

Read-only

Read-only

F_CLIENT_WRITE_ACCESS_LOCK

Read-only

Read-only

Read-only

F_MAXFIELD

N/A

N/A

N/A

F_OLD_STREAM_NAME

N/A

Read-write

N/A

F_OLD_STREAM_QUERY

N/A

Read-write

N/A

F_OLD_STREAM_TYPE

N/A

Read-write

N/A

F_SEGMENT_END

N/A

N/A

N/A

F_SEGMENT_START

N/A

N/A

N/A

F_STREAM_CODEC

N/A

N/A

N/A

F_STREAM_CODEC_TYPE

N/A

N/A

N/A

F_STREAM_ID

Read-only

Read-only

Read-only

F_STREAM_IGNORE

Read-only

Read-write

Read-only

F_STREAM_LENGTH

Read-only

Read-write

Read-only

F_STREAM_LIVE_EVENT

N/A

N/A

N/A

F_STREAM_LIVE_PUBLISH_PENDING

N/A

Read-write

N/A

F_STREAM_NAME

N/A

Read-write

N/A

F_STREAM_OFFSET

N/A

Read-only

N/A

F_STREAM_PATH

Read-write

Read-only

Read-only

F_STREAM_PAUSE

N/A

N/A

N/A

F_STREAM_PAUSE_TIME

N/A

N/A

N/A

F_STREAM_PAUSE_TOGGLE

N/A

N/A

N/A

F_STREAM_POSITION

Read-only

Read-write

Read-only

F_STREAM_PUBLISH_BROADCAST

N/A

N/A

N/A

F_STREAM_PUBLISH_TYPE

N/A

N/A

N/A

F_STREAM_QUERY

Read-only

Read-write

Read-only

F_STREAM_RECORD_MAXDURATION

N/A

N/A

N/A

F_STREAM_RECORD_MAXSIZE

N/A

N/A

N/A

F_STREAM_RESET

Read-only

Read-write

Read-only

F_STREAM_SEEK_POSITION

N/A

N/A

N/A

F_STREAM_TRANSITION

N/A

Read-write

N/A

F_STREAM_TRANSMIT_POSITION

N/A

N/A

N/A

F_STREAM_TYPE

Read-write

Read-write

Read-only

The following table displays all the fields and more events:

E_CLIENT_SEEK

E_SEEK

E_CLIENT_PAUSE

E_PAUSE

F_APP_INST

Read-only

Read-only

N/A

Read-only

F_APP_NAME

Read-only

Read-only

N/A

Read-only

F_APP_URI

Read-only

Read-only

N/A

Read-only

F_CLIENT_AMF_ENCODING

Read-only

Read-only

N/A

Read-only

F_CLIENT_AUDIO_CODECS

Read-only

Read-only

N/A

Read-only

F_CLIENT_AUDIO_SAMPLE_ACCESS

Read-only

Read-only

N/A

Read-only

F_CLIENT_AUDIO_SAMPLE_ACCESS_LOCK

Read-only

Read-only

N/A

Read-only

F_CLIENT_CONNECT_TIME

Read-only

Read-only

N/A

Read-only

F_CLIENT_DIFFSERV_BITS

N/A

N/A

N/A

N/A

F_CLIENT_DIFFSERV_MASK

N/A

N/A

N/A

N/A

F_CLIENT_FAR_ID

Read-only

Read-only

N/A

Read-only

F_CLIENT_FAR_NONCE

Read-only

Read-only

N/A

Read-only

F_CLIENT_FORWARDED_FOR

Read-only

Read-only

N/A

Read-only

F_CLIENT_ID

Read-only

Read-only

N/A

Read-only

F_CLIENT_IP

Read-only

Read-only

N/A

Read-only

F_CLIENT_NEAR_ID

Read-only

Read-only

N/A

Read-only

F_CLIENT_NEAR_NONCE

Read-only

Read-only

N/A

Read-only

F_CLIENT_PAGE_URL

Read-only

Read-only

N/A

Read-only

F_CLIENT_PROTO

Read-only

Read-only

N/A

Read-only

F_CLIENT_PROTO_VER

Read-only

Read-only

N/A

Read-only

F_CLIENT_READ_ACCESS

Read-only

Read-only

N/A

Read-only

F_CLIENT_READ_ACCESS_LOCK

Read-only

Read-only

N/A

Read-only

F_CLIENT_REDIRECT_URI

Read-only

Read-only

N/A

Read-only

F_CLIENT_REFERRER

Read-only

Read-only

N/A

Read-only

F_CLIENT_SECURE

Read-only

Read-only

N/A

Read-only

F_CLIENT_STATS_HANDLE

Read-only

Read-only

N/A

Read-only

F_CLIENT_SWFV_DEPTH

N/A

N/A

N/A

N/A

F_CLIENT_SWFV_DIGEST

N/A

N/A

N/A

N/A

F_CLIENT_SWFV_EXCEPTION

Read-only

Read-only

Read-only

Read-only

F_CLIENT_SWFV_RESULT

N/A

N/A

N/A

N/A

F_CLIENT_SWFV_TTL

N/A

N/A

N/A

N/A

F_CLIENT_SWFV_VERSION

N/A

N/A

N/A

N/A

F_CLIENT_TYPE

N/A

Read-only

N/A

Read-only

F_CLIENT_URI

N/A

Read-only

N/A

Read-only

F_CLIENT_URI_STEM

N/A

Read-only

N/A

Read-only

F_CLIENT_USER_AGENT

N/A

Read-only

N/A

Read-only

F_CLIENT_USERDATA

N/A

Read-only

N/A

Read-write

F_CLIENT_VHOST

N/A

Read-only

N/A

Read-only

F_CLIENT_VIDEO_CODECS

N/A

Read-only

N/A

Read-only

F_CLIENT_VIDEO_SAMPLE_ACCESS

N/A

Read-only

N/A

Read-only

F_CLIENT_VIDEO_SAMPLE_ACCESS_LOCK

N/A

Read-only

N/A

Read-only

F_CLIENT_WRITE_ACCESS

N/A

Read-only

N/A

Read-only

F_CLIENT_WRITE_ACCESS_LOCK

N/A

Read-only

N/A

Read-only

F_MAXFIELD

N/A

N/A

N/A

N/A

F_OLD_STREAM_NAME

N/A

N/A

N/A

N/A

F_OLD_STREAM_QUERY

N/A

N/A

N/A

N/A

F_OLD_STREAM_TYPE

N/A

N/A

N/A

N/A

F_SEGMENT_END

N/A

N/A

N/A

N/A

F_SEGMENT_START

N/A

N/A

N/A

N/A

F_STREAM_CODEC

N/A

N/A

N/A

N/A

F_STREAM_CODEC_TYPE

N/A

N/A

N/A

N/A

F_STREAM_ID

N/A

Read-only

N/A

Read-only

F_STREAM_IGNORE

N/A

Read-only

Read-only

Read-only

F_STREAM_LENGTH

N/A

Read-write

Read-only

Read-only

F_STREAM_LIVE_EVENT

N/A

N/A

N/A

N/A

F_STREAM_LIVE_PUBLISH_PENDING

N/A

N/A

N/A

N/A

F_STREAM_NAME

N/A

N/A

Read-only

N/A

F_STREAM_OFFSET

N/A

N/A

N/A

N/A

F_STREAM_PATH

N/A

Read-only

N/A

Read-only

F_STREAM_PAUSE

N/A

N/A

Read-only

Read-only

F_STREAM_PAUSE_TIME

N/A

N/A

Read-only

Read-only

F_STREAM_PAUSE_TOGGLE

N/A

N/A

Read-only

Read-only

F_STREAM_POSITION

N/A

Read-only

Read-only

Read-only

F_STREAM_PUBLISH_BROADCAST

N/A

N/A

N/A

N/A

F_STREAM_PUBLISH_TYPE

N/A

N/A

N/A

N/A

F_STREAM_QUERY

N/A

Read-only

Read-only

Read-only

F_STREAM_RECORD_MAXDURATION

N/A

N/A

N/A

N/A

F_STREAM_RECORD_MAXSIZE

N/A

N/A

N/A

N/A

F_STREAM_RESET

N/A

Read-only

Read-only

Read-only

F_STREAM_SEEK_POSITION

Read-only

N/A

N/A

N/A

F_STREAM_TRANSITION

N/A

N/A

N/A

N/A

F_STREAM_TRANSMIT_POSITION

N/A

N/A

N/A

N/A

F_STREAM_TYPE

N/A

Read-only

Read-only

Read-only

The following table displays all the fields and more events:

E_PUBLISH

E_UNPUBLISH

E_LOADSEGMENT

E_CODEC_CHANGE

F_APP_INST

Read-only

Read-only

Read-only

Read-only

F_APP_NAME

Read-only

Read-only

Read-only

Read-only

F_APP_URI

Read-only

Read-only

Read-only

Read-only

F_CLIENT_AMF_ENCODING

Read-only

Read-only

Read-only

Read-only

F_CLIENT_AUDIO_CODECS

Read-only

Read-only

Read-only

Read-only

F_CLIENT_AUDIO_SAMPLE_ACCESS

Read-only

Read-only

Read-only

Read-only

F_CLIENT_AUDIO_SAMPLE_ACCESS_LOCK

Read-only

Read-only

Read-only

Read-only

F_CLIENT_CONNECT_TIME

Read-only

Read-only

Read-only

Read-only

F_CLIENT_DIFFSERV_BITS

N/A

N/A

N/A

N/A

F_CLIENT_DIFFSERV_MASK

N/A

N/A

N/A

N/A

F_CLIENT_FAR_ID

Read-only

Read-only

Read-only

Read-only

F_CLIENT_FAR_NONCE

Read-only

Read-only

Read-only

Read-only

F_CLIENT_FORWARDED_FOR

Read-only

Read-only

Read-only

Read-only

F_CLIENT_ID

Read-only

Read-only

Read-only

Read-only

F_CLIENT_IP

Read-only

Read-only

Read-only

Read-only

F_CLIENT_NEAR_ID

Read-only

Read-only

Read-only

Read-only

F_CLIENT_NEAR_NONCE

Read-only

Read-only

Read-only

Read-only

F_CLIENT_PAGE_URL

Read-only

Read-only

Read-only

Read-only

F_CLIENT_PROTO

Read-only

Read-only

Read-only

Read-only

F_CLIENT_PROTO_VER

Read-only

Read-only

Read-only

Read-only

F_CLIENT_READ_ACCESS

Read-only

Read-only

Read-only

Read-only

F_CLIENT_READ_ACCESS_LOCK

Read-only

Read-only

Read-only

Read-only

F_CLIENT_REDIRECT_URI

Read-only

Read-only

Read-only

Read-only

F_CLIENT_REFERRER

Read-only

Read-only

Read-only

Read-only

F_CLIENT_SECURE

Read-only

Read-only

Read-only

Read-only

F_CLIENT_STATS_HANDLE

Read-only

Read-only

Read-only

Read-only

F_CLIENT_SWFV_DEPTH

N/A

N/A

N/A

N/A

F_CLIENT_SWFV_DIGEST

N/A

N/A

N/A

N/A

F_CLIENT_SWFV_EXCEPTION

Read-only

Read-only

Read-only

Read-only

F_CLIENT_SWFV_RESULT

N/A

N/A

N/A

N/A

F_CLIENT_SWFV_TTL

N/A

N/A

N/A

N/A

F_CLIENT_SWFV_VERSION

N/A

N/A

N/A

N/A

F_CLIENT_TYPE

Read-only

Read-only

Read-only

Read-only

F_CLIENT_URI

Read-only

Read-only

Read-only

Read-only

F_CLIENT_URI_STEM

Read-only

Read-only

Read-only

Read-only

F_CLIENT_USER_AGENT

Read-only

Read-only

Read-only

Read-only

F_CLIENT_USERDATA

Read-write

Read-only

Read-write

Read-only

F_CLIENT_VHOST

Read-only

Read-only

Read-only

Read-only

F_CLIENT_VIDEO_CODECS

Read-only

Read-only

Read-only

Read-only

F_CLIENT_VIDEO_SAMPLE_ACCESS

Read-only

Read-only

Read-only

Read-only

F_CLIENT_VIDEO_SAMPLE_ACCESS_LOCK

Read-only

Read-only

Read-only

Read-only

F_CLIENT_WRITE_ACCESS

Read-only

Read-only

Read-only

Read-only

F_CLIENT_WRITE_ACCESS_LOCK

Read-only

Read-only

Read-only

Read-only

F_MAXFIELD

N/A

N/A

N/A

N/A

F_OLD_STREAM_NAME

N/A

N/A

N/A

N/A

F_OLD_STREAM_QUERY

N/A

N/A

N/A

N/A

F_OLD_STREAM_TYPE

N/A

N/A

N/A

N/A

F_SEGMENT_END

N/A

N/A

Read-only

N/A

F_SEGMENT_START

N/A

N/A

Read-only

N/A

F_STREAM_CODEC

N/A

N/A

N/A

Read-only

F_STREAM_CODEC_TYPE

N/A

N/A

N/A

Read-only

F_STREAM_ID

Read-only

Read-only

Read-only

Read-only

F_STREAM_IGNORE

Read-only

Read-only

Read-only

Read-only

F_STREAM_LENGTH

Read-write

Read-only

Read-only

Read-only

F_STREAM_LIVE_EVENT

Read-write

N/A

N/A

N/A

F_STREAM_LIVE_PUBLISH_PENDING

N/A

N/A

N/A

N/A

F_STREAM_NAME

N/A

N/A

N/A

N/A

F_STREAM_OFFSET

N/A

N/A

N/A

N/A

F_STREAM_PATH

Read-only

Read-only

Read-only

Read-only

F_STREAM_PAUSE

N/A

N/A

N/A

N/A

F_STREAM_PAUSE_TIME

N/A

N/A

N/A

N/A

F_STREAM_PAUSE_TOGGLE

N/A

N/A

N/A

N/A

F_STREAM_POSITION

Read-only

Read-only

Read-only

Read-only

F_STREAM_PUBLISH_BROADCAST

Read-write

Read-only

N/A

Read-only

F_STREAM_PUBLISH_TYPE

Read-write

Read-only

N/A

Read-only

F_STREAM_QUERY

Read-write

Read-only

Read-only

Read-only

F_STREAM_RECORD_MAXDURATION

N/A

N/A

N/A

N/A

F_STREAM_RECORD_MAXSIZE

N/A

N/A

N/A

N/A

F_STREAM_RESET

Read-only

Read-only

Read-only

Read-only

F_STREAM_SEEK_POSITION

N/A

N/A

N/A

N/A

F_STREAM_TRANSITION

N/A

N/A

N/A

N/A

F_STREAM_TRANSMIT_POSITION

N/A

N/A

N/A

N/A

F_STREAM_TYPE

Read-write

Read-only

Read-only

Read-only

The following table displays all the fields and more events:

E_RECORD

E_RECORD_STOP

F_APP_INST

Read-only

Read-only

F_APP_NAME

Read-only

Read-only

F_APP_URI

Read-only

Read-only

F_CLIENT_AMF_ENCODING

Read-only

Read-only

F_CLIENT_AUDIO_CODECS

Read-only

Read-only

F_CLIENT_AUDIO_SAMPLE_ACCESS

Read-only

Read-only

F_CLIENT_AUDIO_SAMPLE_ACCESS_LOCK

Read-only

Read-only

F_CLIENT_CONNECT_TIME

Read-only

Read-only

F_CLIENT_DIFFSERV_BITS

N/A

N/A

F_CLIENT_DIFFSERV_MASK

N/A

N/A

F_CLIENT_FAR_ID

Read-only

Read-only

F_CLIENT_FAR_NONCE

Read-only

Read-only

F_CLIENT_FORWARDED_FOR

Read-only

Read-only

F_CLIENT_ID

Read-only

Read-only

F_CLIENT_IP

Read-only

Read-only

F_CLIENT_NEAR_ID

Read-only

Read-only

F_CLIENT_NEAR_NONCE

Read-only

Read-only

F_CLIENT_PAGE_URL

Read-only

Read-only

F_CLIENT_PROTO

Read-only

Read-only

F_CLIENT_PROTO_VER

Read-only

Read-only

F_CLIENT_READ_ACCESS

Read-only

Read-only

F_CLIENT_READ_ACCESS_LOCK

Read-only

Read-only

F_CLIENT_REDIRECT_URI

Read-only

Read-only

F_CLIENT_REFERRER

Read-only

Read-only

F_CLIENT_SECURE

Read-only

Read-only

F_CLIENT_STATS_HANDLE

N/A

N/A

F_CLIENT_SWFV_DEPTH

N/A

N/A

F_CLIENT_SWFV_DIGEST

N/A

N/A

F_CLIENT_SWFV_EXCEPTION

Read-only

Read-only

F_CLIENT_SWFV_RESULT

N/A

N/A

F_CLIENT_SWFV_TTL

N/A

N/A

F_CLIENT_SWFV_VERSION

N/A

N/A

F_CLIENT_TYPE

Read-only

Read-only

F_CLIENT_URI

Read-only

Read-only

F_CLIENT_URI_STEM

Read-only

Read-only

F_CLIENT_USER_AGENT

Read-only

Read-only

F_CLIENT_USERDATA

Read-write

Read-only

F_CLIENT_VHOST

Read-only

Read-only

F_CLIENT_VIDEO_CODECS

Read-only

Read-only

F_CLIENT_VIDEO_SAMPLE_ACCESS

Read-only

Read-only

F_CLIENT_VIDEO_SAMPLE_ACCESS_LOCK

Read-only

Read-only

F_CLIENT_WRITE_ACCESS

Read-only

Read-only

F_CLIENT_WRITE_ACCESS_LOCK

Read-only

Read-only

F_MAXFIELD

N/A

N/A

F_OLD_STREAM_NAME

N/A

N/A

F_OLD_STREAM_QUERY

N/A

N/A

F_OLD_STREAM_TYPE

N/A

N/A

F_SEGMENT_END

Read-only

N/A

F_SEGMENT_START

N/A

N/A

F_STREAM_CODEC

N/A

N/A

F_STREAM_CODEC_TYPE

N/A

N/A

F_STREAM_ID

Read-only

Read-only

F_STREAM_IGNORE

Read-only

Read-only

F_STREAM_LENGTH

Read-only

Read-only

F_STREAM_LIVE_EVENT

N/A

N/A

F_STREAM_LIVE_PUBLISH_PENDING

N/A

N/A

F_STREAM_NAME

N/A

N/A

F_STREAM_OFFSET

N/A

N/A

F_STREAM_PATH

Read-only

Read-only

F_STREAM_PAUSE

N/A

N/A

F_STREAM_PAUSE_TIME

N/A

N/A

F_STREAM_PAUSE_TOGGLE

N/A

N/A

F_STREAM_POSITION

Read-only

Read-only

F_STREAM_PUBLISH_BROADCAST

N/A

N/A

F_STREAM_PUBLISH_TYPE

N/A

N/A

F_STREAM_QUERY

Read-only

Read-only

F_STREAM_RECORD_MAXDURATION

Read-write

Read-only

F_STREAM_RECORD_MAXSIZE

Read-write

Read-only

F_STREAM_RESET

Read-only

Read-only

F_STREAM_SEEK_POSITION

N/A

N/A

F_STREAM_TRANSITION

N/A

N/A

F_STREAM_TRANSMIT_POSITION

N/A

N/A

F_STREAM_TYPE

Read-only

Read-only

The following table displays all the fields and more events:

E_SWF_VERIFY

E_SWF_VERIFY_COMPLETE

E_START_TRANSMIT

E_STOP_TRANSMIT

F_APP_INST

Read-only

Read-only

N/A

N/A

F_APP_NAME

Read-only

Read-only

N/A

N/A

F_APP_URI

Read-only

Read-only

N/A

N/A

F_CLIENT_AMF_ENCODING

Read-only

Read-only

N/A

N/A

F_CLIENT_AUDIO_CODECS

Read-only

Read-only

N/A

N/A

F_CLIENT_AUDIO_SAMPLE_ACCESS

Read-only

Read-only

N/A

N/A

F_CLIENT_AUDIO_SAMPLE_ACCESS_LOCK

Read-only

Read-only

N/A

N/A

F_CLIENT_CONNECT_TIME

Read-only

Read-only

N/A

N/A

F_CLIENT_DIFFSERV_BITS

N/A

N/A

N/A

N/A

F_CLIENT_DIFFSERV_MASK

N/A

N/A

N/A

N/A

F_CLIENT_FAR_ID

Read-only

Read-only

N/A

N/A

F_CLIENT_FAR_NONCE

Read-only

Read-only

N/A

N/A

F_CLIENT_FORWARDED_FOR

Read-only

Read-only

N/A

N/A

F_CLIENT_ID

Read-only

Read-only

N/A

N/A

F_CLIENT_IP

Read-only

Read-only

N/A

N/A

F_CLIENT_NEAR_ID

Read-only

Read-only

N/A

N/A

F_CLIENT_NEAR_NONCE

Read-only

Read-only

N/A

N/A

F_CLIENT_PAGE_URL

Read-only

Read-only

N/A

N/A

F_CLIENT_PROTO

Read-only

Read-only

N/A

N/A

F_CLIENT_PROTO_VER

Read-only

Read-only

N/A

N/A

F_CLIENT_READ_ACCESS

Read-only

Read-only

N/A

N/A

F_CLIENT_READ_ACCESS_LOCK

Read-only

Read-only

N/A

N/A

F_CLIENT_REDIRECT_URI

Read-only

Read-only

N/A

N/A

F_CLIENT_REFERRER

Read-only

Read-only

N/A

N/A

F_CLIENT_SECURE

Read-only

Read-only

N/A

N/A

F_CLIENT_STATS_HANDLE

N/A

N/A

N/A

N/A

F_CLIENT_SWFV_DEPTH

Read-only

Read-only

N/A

N/A

F_CLIENT_SWFV_DIGEST

Read/Write

Read-only

N/A

N/A

F_CLIENT_SWFV_EXCEPTION

Read-only

Read-only

Read-only

Read-only

F_CLIENT_SWFV_RESULT

N/A

N/A

N/A

N/A

F_CLIENT_SWFV_TTL

Read/Write

Read-only

N/A

N/A

F_CLIENT_SWFV_VERSION

Read-only

Read-only

N/A

N/A

F_CLIENT_TYPE

Read-only

Read-only

N/A

N/A

F_CLIENT_URI

Read-only

Read-only

N/A

N/A

F_CLIENT_URI_STEM

Read-only

Read-only

N/A

N/A

F_CLIENT_USER_AGENT

Read-only

Read-only

N/A

N/A

F_CLIENT_USERDATA

Read-only

Read-only

N/A

N/A

F_CLIENT_VHOST

Read-only

Read-only

N/A

N/A

F_CLIENT_VIDEO_CODECS

Read-only

Read-only

N/A

N/A

F_CLIENT_VIDEO_SAMPLE_ACCESS

Read-only

Read-only

N/A

N/A

F_CLIENT_VIDEO_SAMPLE_ACCESS_LOCK

Read-only

Read-only

N/A

N/A

F_CLIENT_WRITE_ACCESS

Read-only

Read-only

N/A

N/A

F_CLIENT_WRITE_ACCESS_LOCK

Read-only

Read-only

N/A

N/A

F_MAXFIELD

N/A

N/A

N/A

N/A

F_OLD_STREAM_NAME

N/A

N/A

N/A

N/A

F_OLD_STREAM_QUERY

N/A

N/A

N/A

N/A

F_OLD_STREAM_TYPE

N/A

N/A

N/A

N/A

F_SEGMENT_END

N/A

N/A

N/A

N/A

F_SEGMENT_START

N/A

N/A

N/A

N/A

F_STREAM_CODEC

N/A

N/A

N/A

N/A

F_STREAM_CODEC_TYPE

N/A

N/A

N/A

N/A

F_STREAM_ID

N/A

N/A

N/A

N/A

F_STREAM_IGNORE

N/A

N/A

N/A

N/A

F_STREAM_LENGTH

N/A

N/A

N/A

N/A

F_STREAM_LIVE_EVENT

N/A

N/A

N/A

N/A

F_STREAM_LIVE_PUBLISH_PENDING

N/A

N/A

N/A

N/A

F_STREAM_NAME

N/A

N/A

N/A

N/A

F_STREAM_OFFSET

N/A

N/A

N/A

N/A

F_STREAM_PATH

Read-only

Read-only

N/A

N/A

F_STREAM_PAUSE

N/A

N/A

N/A

N/A

F_STREAM_PAUSE_TIME

N/A

N/A

N/A

N/A

F_STREAM_PAUSE_TOGGLE

N/A

N/A

N/A

N/A

F_STREAM_POSITION

N/A

N/A

N/A

N/A

F_STREAM_PUBLISH_BROADCAST

N/A

N/A

N/A

N/A

F_STREAM_PUBLISH_TYPE

N/A

N/A

N/A

N/A

F_STREAM_QUERY

N/A

N/A

N/A

N/A

F_STREAM_RECORD_MAXDURATION

N/A

N/A

N/A

N/A

F_STREAM_RECORD_MAXSIZE

N/A

N/A

N/A

N/A

F_STREAM_RESET

N/A

N/A

N/A

N/A

F_STREAM_SEEK_POSITION

N/A

N/A

N/A

N/A

F_STREAM_TRANSITION

N/A

N/A

N/A

N/A

F_STREAM_TRANSMIT_POSITION

N/A

N/A

Read-only

Read-only

F_STREAM_TYPE

N/A

N/A

N/A

N/A

Get help faster and easier

New user?