
# 开停播通知
视频直播提供了直播流开停播通知功能，您可以在直播控制台中为推流域名添加接收直播推流或断流通知的地址，通过HTTP接口向用户服务器发送POST请求，将直播流推送成功或中断的状态实时反馈到用户服务器，用户服务器通过200响应返回接口结果。
#### 注意事项
启用开停播通知功能后，直播活动中的每一次推流和断流都将会接收到相应的直播状态通知消息。但在推流和断流时间比较相近的情况下，由于网络传输等原因可能会影响服务端接收到消息的时序，即可能会导致接收到的推流和断流通知消息的先后顺序无法对应上。您需要通过查看通知消息中的推流Unix时间戳参数**publish_timestamp**，确定推流和断流消息是否属于同一次推流活动（同一次推流活动产生的推流和断流通知消息的时间戳是相同的）。
#### 前提条件
- 已[添加推流域名](https://support.huaweicloud.com/iLive-live/live010002.html)。
- 已在域名DNS服务商处完成[CNAME解析配置](https://support.huaweicloud.com/iLive-live/live010010.html)。
 
#### 新增开停播通知配置
1. 登录[视频直播控制台](https://console.huaweicloud.com/live2/#/live/home)。
2. 在左侧导航栏中，选择"域名管理"，进入域名管理页面。
3. 在需要配置开停播通知的推流域名行，单击"管理"。
4. 选择"开停播通知"页签，单击"添加"，界面右侧弹出"开停播通知配置"对话框，如[图1]所示。
   
   添加接收推流开停播通知的URL。参数配置说明，如[表1]所示。
   图1开停播通知配置   
   ![](https://support.huaweicloud.com/iLive-live/zh-cn_image_0258827150.png)
    表1参数配置 
   | 参数       | 说明                                                                                                                                                                                                                                                                          |
   |:---|:---|
   | 协议       | 推流通知地址支持HTTP/HTTPS协议。HTTP可能存在安全风险，推荐使用HTTPS。                                                                                                                                                                                                                                |
   | 推流通知地址   | 通知地址仅支持HTTP和HTTPS协议。                                                                                                                                                                                                                                                        |
   | 鉴权密钥（可选） | 鉴权Key值。若需要使用通知鉴权功能，请配置鉴权密钥，否则，留空即可。 - 支持自定义设置，长度为32-128个字符。  - 支持自动生成。   |
      
   
   
5. 单击"确定"，完成推流开停播通知的配置。 
   开始或结束直播推流时，都将收到相应的直播状态通知消息，生成的具体事件通知消息体请参见[回调示例]。
   
   
 
#### 管理开停播通知配置
推流开停播通知配置完成后，还可以根据实际需要进行如下操作。
- 修改推流通知配置 推流通知地址创建完成后，若需要修改通知配置，可以通过单击操作列的"修改"，修改接收推流通知的URL或鉴权密钥。
  
- 删除推流通知配置 推流通知地址创建完成后，若需要删除通知配置，可以通过单击操作列的"删除"，删除接收推流通知的URL或鉴权密钥。
  
 
 #### 回调示例
直播推流和断流生成事件通知示例如下。通知消息体字段如[表2]所示。
```
{
    "domain":"push.example.com",
    "app":"live",
    "stream":"example_stream",
    "user_args":"auth_info=yz1TG0PVN/5isfyrGrRj10gKPCWqSS2X02t6QsRrocH+mEq0gQ0g8k6KhalS84sQ+kDprFyqI0yajbYiFmUO8e45B7ryaS+MpJBlYkhwnuFLnRiKK/IXG7.33436b625354564f6e4d4d434f55&cdn=hw",
    "client_ip":"100.111.*.*",
    "node_ip":"112.11.*.*",
    "publish_timestamp":"1587954134",
    "event":"PUBLISH",
    "auth_timestamp":"1587954140",
    "auth_sign":"ff3b2bxxx5cfd56e76d72bed4c4aa2dxxxca8c2e46467d205a6417d4fc"
}
```
 表2消息体字段说明 
| 字段                | 描述                                                                                                                                                                                                                                                                     |
|:---|:---|
| domain            | 推流域名。                                                                                                                                                                                                                                                                  |
| app               | 应用名称。                                                                                                                                                                                                                                                                  |
| stream            | 流名称。                                                                                                                                                                                                                                                                   |
| user_args         | 推流参数。                                                                                                                                                                                                                                                                  |
| client_ip         | 推流客户端IP。                                                                                                                                                                                                                                                               |
| node_ip           | 接受流的节点IP。                                                                                                                                                                                                                                                              |
| publish_timestamp | 推流Unix时间戳，一次推流活动会产生相同时间戳的推流和断流消息。                                                                                                                                                                                                                                      |
| event             | 直播推流和断流标识。 取值为： - PUBLISH：开播。  - PUBLISH_DONE：停播。   |
| auth_timestamp    | 事件通知签名过期UNIX时间戳。当配置了"鉴权密钥"时，携带该字段。 格式为十进制的UNIX时间戳，即从1970年1月1日（UTC/GMT的午夜）以来的当前时间秒数。 示例：1592639100（即2020-06-20 15:45）                                                                                        |
| auth_sign         | 事件通知签名。当配置了"鉴权密钥"时，携带该字段。 ``` auth_sign = HmacSHA256（event + domain + app + stream + auth_timestamp, key） ``` 其中，key为鉴权密钥值。                                                                                                               |
   
