Media Gateway event type
After enabling the Notifications service, the Agora server will send a channel event notification callback to your server using the HTTPS POST request method. When the value of the product_id parameter in the callback request body is 10, it means that the Media Gateway event is returned.
This page introduces the types and descriptions for all events returned in the channel event callback.
1 live_stream_connected
The gateway has received the RTMP or SRT stream and successfully entered the channel.
Payload example:
The payload contains the following fields:
| Field | Data type | Description |
|---|---|---|
sid | String | The unique ID of each streaming session. |
region | String | The server area that has received the pushed stream. |
streamKey | String | The used streaming key. |
rtcInfo | Object | RTC information:
|
beginAt | String | The start time of the streaming in the RFC3339 format. |
This event is usually followed by a corresponding live_stream_disconnected event.
2 live_stream_disconnected
The gateway was disconnected (actively or passively) and left the channel.
Payload example:
The payload contains the following fields:
| Field | Data type | Description |
|---|---|---|
sid | String | The unique ID of each streaming session. |
region | String | The server area that has received the pushed stream. |
streamKey | String | The used streaming key. |
rtcInfo | Object | RTC information:
|
beginAt | String | The start time of the streaming in the RFC3339 format. |
endAt | String | The end time of the streaming in the RFC3339 format. |
3 live_stream_aborted
The gateway has received an RTMP or SRT stream but terminated it for some reason.
Payload example:
The payload contains the following fields:
| Field | Data type | Description |
|---|---|---|
sid | String | The unique ID of each streaming session. |
region | String | The server area that has received the pushed stream. |
streamKey | String | The used streaming key. |
rtcInfo | Object | RTC information:
|
beginAt | String | The start time of the streaming in the RFC3339 format. |
errorCode | Number | The stream termination error code. |
reason | String | The error message. |
This event may be sent alone or between the connected and disconnected events.
The possible values for the errorCode field include the following:
| Value | Description | Recommended actions |
|---|---|---|
1 | Illegal streamKey. For example, channelName is empty or contains illegal characters. | Check the streamKey format, especially for locally generated ones. |
2 | Invalid streamKey (expired or deleted) | Create a new streamKey and try again. |
3 | No permission to use this streamKey. For example, the customer-defined domain name and streamKey under the associated app ID do not match. | Check whether the streamKey matches the domain name used for the push. |
4 | Number of concurrent streams exceeds the limit. | Wait and retry. |
5 | Conflict detected, for example, pushing to the same channel and at the same. | If the streams are not being pushed at the same time, try again 5-10 seconds later. |
6 | The stream attribute exceeds the limit (currently applies to bitrate only). | Check the streaming software configuration and lower the target bitrate. |
7 | Streaming without any audio or video data for more than 10 seconds | Check whether the last push exited abnormally, and then try again. |
8 | Failed to join channel | The reason field will provide the specific error reason, for example: "connect to rtc failed, reason:$N". Refer to the API documentation for details. |
9 | Disconnected from the main network. Specific reasons need to be investigated by contacting technical support. | Try again several times. If you still have problems, contact technical support to confirm whether the app certificate provided during activation is valid. |
10 | Unknown internal service error. Specific reasons need to be investigated by contacting technical support. | Try again a few times. If you still have problems, contact technical support. |
4 live_profile_updated
Stream properties have been updated. For example, the first audio or video frame has been received or the audio or video profile has changed.
Payload example:
The payload contains the following fields:
| Field | Data type | Description |
|---|---|---|
sid | String | The unique ID of each streaming session. |
region | String | The server area that has received the pushed stream. |
streamKey | String | The used streaming key. |
rtcInfo | Object | RTC information:
|
videoProfile | Object | Video properties. Not applicable for audio-only streams.
|
audioProfile | Object | Audio properties:
|
beginAt | String | The start time of the streaming in the RFC3339 format. |