Skip to content

Latest commit

 

History

71 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MIT License Go Report Card Latest Release Docker Image Size

m7s-jt1078

m7s版本 m7s-jt1078 说明
>= 5.1.3 v5.11.2
>= 5.1.0 v5.9.0
< 5.1.0 v5.8.1 目前推荐使用这个版本
例子 测试页面 代码
音视频 http://124.221.30.46:11000 默认测试用视频h264 详情点击
对讲 https://go-jt808.online:12000 详情点击
模拟流 视频 http://124.221.30.46:8088/preview/live/jt1078-295696659617-1?type=mp4
音视频 http://124.221.30.46:8088/preview/live/jt1079-156987000796-1
详情点击

docker pull cdcddcdc/m7s-jt1078:latest
  1. 音视频启动 参考配置
docker run -d \
-v /home/m7s-jt1078/config.yaml:/app/config.yaml \
--network host \
cdcddcdc/m7s-jt1078:latest
  1. 增加对讲功能 参考配置
docker run -d \
-v /home/m7s-jt1078/go-jt808.online.crt:/app/go-jt808.online.crt \
-v /home/m7s-jt1078/go-jt808.online.key:/app/go-jt808.online.key \
-v /home/m7s-jt1078/config.yaml:/app/config.yaml \
--network host \
cdcddcdc/m7s-jt1078:latest

对讲流程参考

  • 需要设备连接到808服务 默认测试sim卡号(10088)的设备连接到124.221.30.46:12001

示意图

对讲操作流程

一、 下发9101指令

让设备上传jt1078流到指定端口
### 对讲测试 设备连接到服务器端口
POST https://124.221.30.46:12000/api/v1/jt808/9101
Content-Type: application/json

{
  "key": "10088",
  "data": {
    "serverIPLen": 13,
    "serverIPAddr": "124.221.30.46",
    "tcpPort": 12022,
    "udpPort": 0,
    "channelNo": 1,
    "dataType": 2,
    "streamType": 0
  }
}
  • 回调接口显示音频加入成功 说明设备对讲连接上来了
音频加入成功 {
  "port": 12022,
  "address": "124.221.30.46:57492",
  "startTime": "2025-05-30 14:09:08"
}

二、 下发9003指令

查询设备音视频属性
### 查询设备音视频属性
POST https://124.221.30.46:12000/api/v1/jt808/9003
Content-Type: application/json

{
  "key": "10088",
  "data": {

  }
}
{
  "code": 200,
  "msg": "success",
  "data": {
    "errDescribe": "",
    "command": 36867,
    "replyCommand": 4099,
    "details": {
      "enterAudioEncoding": 6,
      "enterAudioChannelsNumber": 1,
      "enterAudioSampleRate": 0,
      "enterAudioSampleDigits": 1,
      "audioFrameLength": 320,
      "hasSupportedAudioOutput": 0,
      "videoEncoding": 98,
      "terminalSupportedMaxNumberOfAudioPhysicalChannels": 8,
      "terminalSupportedMaxNumberOfVideoPhysicalChannels": 8
    },
    "terminalMessage": "7e1003000a0000000100884e0406010001014000620808ff7e",
    "platformMessage": "7e900300000000000100880c796f7e",
    "remark": "平台-查询终端音视频属性 -> 终端-上传音视频属性"
  }
}

三、 下发音频

浏览器webrtc下发音频给服务器
  • SDP格式如下所示 额外增加一个组 把音频下发给这个组的
  type Request struct {
    webrtc.SessionDescription
    Group []struct {
        Sim       string `json:"sim"`
        Channel   uint8  `json:"channel"`
        AudioPort int    `json:"audioPort"`
    }
    // EnterAudioEncoding 音频类型参数 根据jt1078-2016表12 2-G722 6-G711A 7-G711U
    // 默认6-G711A
    EnterAudioEncoding int `json:"enterAudioEncoding"`
  }
  • 服务器返回固定的外网IP和端口 ICE沟通可直接使用

四、关闭对讲

详情
  1. 浏览器端关闭对讲
  2. 下发9102指令 让设备结束对讲 (或者配置超时时间自动关闭)
### 关闭对讲
POST https://124.221.30.46:12000/api/v1/jt808/9102
Content-Type: application/json

{
  "key": "10088",
  "data": {
    "channelNo": 1,
    "controlCmd": 4,
    "closeAudioVideoData": 0,
    "streamType": 0
  }
}
  • 回调接口显示音频退出了 说明终端关闭了对讲 可重新使用该端口
  • 使用指令主动关闭 或者配置超时时间自动关闭(默认600秒)
音频离开 {
  "port": 12022,
  "address": "124.221.30.46:57492",
  "startTime": "2025-05-30 14:09:08",
  "endTime": "2025-05-30 14:09:56",
  "err": "over time 47.243093226s"
}

配置说明

jt1078:
  enable: true # 是否启用

  intercom:
    enable: true # 是否启用 用于双向对讲
    jt1078webrtc:
      port: 12020 # 外网UDP端口 用于浏览器webrtc把音频数据推到这个端口
      ip: 124.221.30.46 # 外网ip 用于SDP协商修改
    audio_ports: [12021, 12050] # 音频端口 [min,max] 因为支持广播 就多开一点
    on_join_url: "https://127.0.0.1:12000/api/v1/jt808/event/join-audio" # 设备连接到音频端口的回调
    on_leave_url: "https://127.0.0.1:12000/api/v1/jt808/event/leave-audio" # 设备断开了音频端口的回调
    overtime_second: 60 # 多久没有下发对讲语音的数据 就关闭这个链接

  realtime: # 实时视频
    addr: '0.0.0.0:12051'
    on_join_url: "https://127.0.0.1:12000/api/v1/jt808/event/real-time-join" # 设备连接到了实时视频指定端口的回调
    on_leave_url: "https://127.0.0.1:12000/api/v1/jt808/event/real-time-leave" # 设备断开了实时视频指定端口的回调
    prefix: "live/jt1078" # 默认自定义前缀-手机号-通道 如:live/jt1078-295696659617-1
    # 无人订阅的情况(需要曾经订阅过) 多久就关闭这个链接(小于等于0则不启用 默认0 推荐还是使用9102指令去触发关闭)
    overtime_second: 0
    debug: # 如果有流 就保存一段时间的流文件 文件名为流名称-debug.txt 如live-jt1078-295696659617-1-debug.txt
      enable: false # 是否启用调式日志 默认不调试
      dir: "./save/"
      save_time_second: 30

  playback: # 回放视频
    addr: '0.0.0.0:12052'
    on_join_url: "https://127.0.0.1:12000/api/v1/play-back-join" # 设备连接到了回放视频指定端口的回调
    on_leave_url: "https://127.0.0.1:12000/api/v1/play-back-leave" # 设备断开了回放视频指定端口的回调
    prefix: "live/jt1079" # 默认自定义前缀-手机号-通道 如:live/jt1079-295696659617-1
    # 无人订阅的情况(需要曾经订阅过) 多久就关闭这个链接(小于等于0则不启用 默认0 推荐还是使用9102指令去触发关闭)
    overtime_second: 0
    debug: # 如果有流 就保存一段时间的流文件 文件名为流名称-debug.txt 如live-jt1079-295696659617-1-debug.txt
      enable: false # 是否启用调式日志 默认不调试
      dir: "./save/"
      save_time_second: 30

  simulations:
    # jt1078文件 默认循环发送
    - name: ./data.txt
      addr: 127.0.0.1:12051 # 模拟实时
    - name: ./audio_data.txt
      addr: 127.0.0.1:12052 # 模拟回放

About

jt1078插件 支持音视频 对讲 广播

Topics

Resources

Stars

31 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages