Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

技术咨询:录制计划录制的文件只有1分29秒左右 #1744

Open
sebarswee opened this issue Jan 3, 2025 · 1 comment
Open

技术咨询:录制计划录制的文件只有1分29秒左右 #1744

sebarswee opened this issue Jan 3, 2025 · 1 comment

Comments

@sebarswee
Copy link

环境信息:

    1. 部署方式 wvp-pro 编译 / zlm(docker)
    1. 部署环境 macOs
    1. 端口开放情况:全开放了,没有防火墙
    1. 是否是公网部署 : 内网
    1. 是否使用https:否
    1. 方便的话提供下使用的设备品牌或平台:大华
    1. 你做过哪些尝试:wvp-pro无人观看配置stream-on-demand设置为false
    1. 代码更新时间(旧版本请更新最新版本代码测试):wvp为最新代码,zlm为最新docker镜像

内容描述:
配置录制计划为连续的时间段,查看云端录像,发现文件都只有1分29秒左右

截图
1735871076365
1735871103186

抓包文件

** ZLM docker-compose.yml **

services:
  ZLMediaKit:
    image: zlmediakit/zlmediakit:master
    container_name: ZLMediaKit
    privileged: true
    volumes:
      - ./conf/config.ini:/opt/media/conf/config.ini
    environment:
      - TZ=Asia/Shanghai
    ports:
      # rtmp服务器监听端口
      - 1935:1935
      # http服务器监听端口
      - 8080:80
      # https服务器监听端口
      - 8443:443
      # rtsp服务器监听地址
      - 8554:554
      # udp和tcp代理服务器,支持rtp(必须是ts或ps类型)代理
      - 11000:10000/tcp
      - 11000:10000/udp
      # rtc udp服务器监听端口号,需要注意的是,如果服务器在nat内,需要做端口映射时,必须确保外网映射端口跟该端口一致
      - 8000:8000/udp
      # srt udp服务器监听端口号,所有srt客户端将通过该端口传输srt数据
      - 9000:9000/udp
      # 该范围同时限制rtsp服务器udp端口范围
      - 30000-30500:30000-30500/tcp
      - 30000-30500:30000-30500/udp

** ZLM配置 **

; auto-generated by mINI class {

[api]
apiDebug=1
defaultSnap=./www/logo.png
downloadRoot=./www
secret=yFeSSvvlR928F252T4q89qhXL94HdwwZ
snapRoot=./www/snap/

[cluster]
origin_url=
retry_count=3
timeout_sec=15

[ffmpeg]
bin=/usr/bin/ffmpeg
cmd=%s -re -i %s -c:a aac -vf drawtext=text='demo':x=0:y=0:fontcolor=red:fontsize=50 -strict -2 -ar 44100 -ab 48k -c:v libx264 -f flv %s
log=./ffmpeg/ffmpeg.log
restart_sec=0
snap=%s -rtsp_transport tcp -i %s -y -f mjpeg -frames:v 1 %s

[general]
broadcast_player_count_changed=0
check_nvidia_dev=1
enableVhost=0
enable_ffmpeg_log=0
flowThreshold=1024
listen_ip=::
maxStreamWaitMS=15000
mediaServerId=zlmediakit-local
mergeWriteMS=0
resetWhenRePlay=1
streamNoneReaderDelayMS=20000
unready_frame_cache=100
wait_add_track_ms=3000
wait_audio_track_data_ms=1000
wait_track_ready_ms=10000

[hls]
broadcastRecordTs=0
deleteDelaySec=10
fastRegister=0
fileBufSize=65536
segDelay=0
segDur=2
segKeep=0
segNum=3
segRetain=5

[hook]
alive_interval=10.0
enable=1
on_flow_report=
on_http_access=
on_play=http://192.168.1.68:18080/index/hook/on_play
on_publish=http://192.168.1.68:18080/index/hook/on_publish
on_record_mp4=http://192.168.1.68:18080/index/hook/on_record_mp4
on_record_ts=
on_rtp_server_timeout=http://192.168.1.68:18080/index/hook/on_rtp_server_timeout
on_rtsp_auth=
on_rtsp_realm=
on_send_rtp_stopped=http://192.168.1.68:18080/index/hook/on_send_rtp_stopped
on_server_exited=
on_server_keepalive=http://192.168.1.68:18080/index/hook/on_server_keepalive
on_server_started=http://192.168.1.68:18080/index/hook/on_server_started
on_shell_login=
on_stream_changed=http://192.168.1.68:18080/index/hook/on_stream_changed
on_stream_none_reader=http://192.168.1.68:18080/index/hook/on_stream_none_reader
on_stream_not_found=http://192.168.1.68:18080/index/hook/on_stream_not_found
retry=1
retry_delay=3.0
stream_changed_schemas=rtsp/rtmp/fmp4/ts/hls/hls.fmp4
timeoutSec=30

[http]
allow_cross_domains=1
#allow_ip_range=::1,127.0.0.1,172.16.0.0-172.31.255.255,192.168.0.0-192.168.255.255,10.0.0.0-10.255.255.255
allow_ip_range=
charSet=utf-8
dirMenu=1
forbidCacheSuffix=
forwarded_ip_header=
keepAliveSecond=30
maxReqSize=40960
notFound=<html><head><title>404 Not Found</title></head><body bgcolor="white"><center><h1>您访问的资源不存在!</h1></center><hr><center>ZLMediaKit(git hash:1c8ed1c/2024-12-28T20:21:29+08:00,branch:master,build time:2024-12-28T12:22:43)</center></body></html>
port=80
rootPath=./www
sendBufSize=65536
sslport=443
virtualPath=

[multicast]
addrMax=239.255.255.255
addrMin=239.0.0.0
udpTTL=64

[protocol]
add_mute_audio=1
auto_close=0
continue_push_ms=3000
enable_audio=1
enable_fmp4=1
enable_hls=1
enable_hls_fmp4=0
enable_mp4=0
enable_rtmp=1
enable_rtsp=1
enable_ts=1
fmp4_demand=0
hls_demand=0
hls_save_path=./www
modify_stamp=2
mp4_as_player=0
mp4_max_second=3600
mp4_save_path=./www
paced_sender_ms=0
rtmp_demand=0
rtsp_demand=0
ts_demand=0

[record]
appName=record
enableFmp4=0
fastStart=0
fileBufSize=65536
fileRepeat=0
sampleMS=500

[rtc]
datachannel_echo=1
externIP=192.168.1.68
maxRtpCacheMS=5000
maxRtpCacheSize=2048
max_bitrate=0
min_bitrate=0
nackIntervalRatio=1.0
nackMaxCount=15
nackMaxMS=3000
nackMaxSize=2048
nackRtpSize=8
port=8000
preferredCodecA=PCMA,PCMU,opus,mpeg4-generic
preferredCodecV=H264,H265,AV1,VP9,VP8
rembBitRate=0
start_bitrate=0
tcpPort=8000
timeoutSec=15

[rtmp]
directProxy=1
enhanced=0
handshakeSecond=15
keepAliveSecond=15
port=1935
sslport=0

[rtp]
audioMtuSize=600
h264_stap_a=1
lowLatency=0
rtpMaxSize=10
videoMtuSize=1400

[rtp_proxy]
dumpDir=
gop_cache=1
h264_pt=98
h265_pt=99
opus_pt=100
port=11000
port_range=30000-30500
ps_pt=96
rtp_g711_dur_ms=100
timeoutSec=15
udp_recv_socket_buffer=4194304

[rtsp]
authBasic=0
directProxy=1
handshakeSecond=15
keepAliveSecond=15
lowLatency=0
port=554
rtpTransportType=-1
sslport=0

[shell]
maxReqSize=1024
port=0

[srt]
latencyMul=4
passPhrase=
pktBufSize=8192
port=9000
timeoutSec=5

; } ---

** WVP配置 **

# 作为28181服务器的配置
sip:
  # [必须修改] 本机的IP,对应你的网卡,监听什么ip就是使用什么网卡,
  ip: 192.168.1.68
  # [可选] 没有任何业务需求,仅仅是在前端展示的时候用
  show-ip: 192.168.1.68
  # [可选] 28181服务监听的端口
  port: 8116
  # 根据国标6.1.2中规定,domain宜采用ID统一编码的前十位编码。国标附录D中定义前8位为中心编码(由省级、市级、区级、基层编号组成,参照GB/T 2260-2007)
  # 后两位为行业编码,定义参照附录D.3
  # 3701020049标识山东济南历下区 信息行业接入
  # [可选]
  domain: 4400000000
  # [可选]
  id: 44000000004900000001
  # [可选] 默认设备认证密码,后续扩展使用设备单独密码, 移除密码将不进行校验
  password: 12345678
  # 是否存储alarm信息
  alarm: false

#zlm 默认服务器配置
media:
  # [必须修改] 需要与zlm服务器的general.mediaServerId一致
  id: zlmediakit-local
  # [必须修改] zlm服务器的内网IP
  ip: 192.168.1.68
  # [可选] 有公网IP就配置公网IP, 不可用域名
  wan_ip: 192.168.1.68
  # [可选] 返回流地址时的ip,置空使用 media.ip
  stream-ip: 192.168.1.68
  # [可选] wvp在国标信令中使用的ip,此ip为摄像机可以访问到的ip, 置空使用 media.ip
  sdp-ip: 192.168.1.68
  # [可选] zlm服务器访问WVP所使用的IP, 默认使用127.0.0.1,zlm和wvp没有部署在同一台服务器时必须配置
  hook-ip: 192.168.1.68
  # [必须修改] zlm服务器的http.port
  http-port: 8080
  # [可选] zlm服务器的http.sslport, 置空使用zlm配置文件配置
  http-ssl-port: 8443
  # [可选] zlm服务器的rtmp.port, 置空使用zlm配置文件配置
  rtmp-port: 1935
  # [可选] zlm服务器的 rtp_proxy.port, 置空使用zlm配置文件配置
  rtp-proxy-port: 11000
  # [可选] zlm服务器的 rtsp.port, 置空使用zlm配置文件配置
  rtsp-port: 8554
  # [可选] 是否自动配置ZLM, 如果希望手动配置ZLM, 可以设为false, 不建议新接触的用户修改
  auto-config: true
  # [必选选] zlm服务器的hook.admin_params=secret
  secret: yFeSSvvlR928F252T4q89qhXL94HdwwZ
  # 启用多端口模式, 多端口模式使用端口区分每路流,兼容性更好。 单端口使用流的ssrc区分, 点播超时建议使用多端口测试
  rtp:
    # [可选] 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输
    enable: true
    # [可选] 在此范围内选择端口用于媒体流传输, 必须提前在zlm上配置该属性,不然自动配置此属性可能不成功
    port-range: 30000,30500 # 端口范围
    # [可选] 国标级联在此范围内选择端口发送媒体流,
    send-port-range: 50000,50500 # 端口范围
  # 录像辅助服务, 部署此服务可以实现zlm录像的管理与下载, 0 表示不使用
  record-assist-port: 0
# [根据业务需求配置]
user-settings:
  # 服务ID,不写则为000000
  server-id: 000001
  # 点播/录像回放 等待超时时间,单位:毫秒
  play-timeout: 3600000
  # 上级点播等待超时时间,单位:毫秒
  platform-play-timeout: 3600000
  # [可选] 自动点播, 使用固定流地址进行播放时,如果未点播则自动进行点播, 需要rtp.enable=true
  auto-apply-play: true
  # 推流直播是否录制
  record-push-live: true
  # 国标是否录制
  record-sip: true
  # 国标点播 按需拉流, true:有人观看拉流,无人观看释放, false:拉起后不自动释放
  stream-on-demand: false
  # 是否开启sip日志
  sip-log: false
  # 是否开启sql日志
  sql-log: false
  # 登录超时时间(分钟),
  login-timeout: 30

日志

2025-01-03 09:07:13.116 [schedule]  INFO --- c.g.iot.vmp.service.impl.RecordPlanServiceImpl: 85 [录制计划] 执行
2025-01-03 09:07:13.311 [schedule]  INFO --- c.g.iot.vmp.gb28181.service.impl.PlayServiceImpl: 428 [点播开始] deviceId: 44010400002000000002, channelId: 44010400002000000002,码流类型:stream:0, 收流端口: 30158, 码流:44010400002000000002_44010400002000000002, 收流模式:UDP, SSRC: 0000003692, SSRC校验:false
2025-01-03 09:07:13.430 [async-9]  INFO --- c.g.i.v.g.t.e.r.impl.InviteResponseProcessor: 81 [回复ack] 44010400002000000002-> 192.168.1.158:8005 
2025-01-03 09:07:13.594 [http-nio-18080-exec-5]  INFO --- c.genersoft.iot.vmp.media.zlm.ZLMHttpHookListener: 100 [ZLM HOOK]推流鉴权:zlmediakit-local->OnPublishHookParam{id='44010400002000000002_44010400002000000002', app='rtp', stream='44010400002000000002_44010400002000000002', ip='172.20.0.1', params='', port=64820, schema='rtp', vhost='__defaultVhost__'}
2025-01-03 09:07:13.644 [http-nio-18080-exec-5]  INFO --- c.genersoft.iot.vmp.media.zlm.ZLMHttpHookListener: 112 [ZLM HOOK]推流鉴权 响应:zlmediakit-local->OnPublishHookParam{id='44010400002000000002_44010400002000000002', app='rtp', stream='44010400002000000002_44010400002000000002', ip='172.20.0.1', params='', port=64820, schema='rtp', vhost='__defaultVhost__'}->>>>HookResultForOnPublish{enable_audio=false, enable_mp4=true, mp4_max_second=0, mp4_save_path='null', stream_replace='null', modify_stamp='null'}
2025-01-03 09:07:13.809 [http-nio-18080-exec-10]  INFO --- c.genersoft.iot.vmp.media.zlm.ZLMHttpHookListener: 139 [ZLM HOOK] 流注册, zlmediakit-local->rtsp->rtp/44010400002000000002_44010400002000000002
2025-01-03 09:07:13.813 [async-12]  INFO --- c.g.i.v.media.service.impl.MediaServerServiceImpl: 91 流变化:注册 app->rtp, stream->44010400002000000002_44010400002000000002
2025-01-03 09:07:13.897 [async-11]  INFO --- c.g.iot.vmp.service.impl.RecordPlanServiceImpl: 115 [录像] 开启成功, 通道ID: 2
2025-01-03 09:07:13.897 [async-11]  INFO --- c.g.iot.vmp.gb28181.service.impl.PlayServiceImpl: 398 [点播成功] deviceId: 44010400002000000002, channelId:44010400002000000002, 码流类型:stream:0
2025-01-03 09:07:13.898 [async-11]  INFO --- c.g.iot.vmp.gb28181.service.impl.PlayServiceImpl: 669 [请求截图]: 44010400002000000002_44010400002000000002.jpg
2025-01-03 09:07:44.037 [http-nio-18080-exec-10]  INFO --- c.genersoft.iot.vmp.media.zlm.ZLMHttpHookListener: 171 [ZLM HOOK]流无人观看:zlmediakit-local->hls->rtp/44010400002000000002_44010400002000000002
2025-01-03 09:09:01.387 [http-nio-18080-exec-2]  INFO --- c.genersoft.iot.vmp.media.zlm.ZLMHttpHookListener: 270 [ZLM HOOK] rtpServer收流超时:zlmediakit-local->44010400002000000002_44010400002000000002(0)
2025-01-03 09:09:01.390 [http-nio-18080-exec-5]  INFO --- c.genersoft.iot.vmp.media.zlm.ZLMHttpHookListener: 155 [ZLM HOOK] 流注销, zlmediakit-local->rtsp->rtp/44010400002000000002_44010400002000000002
2025-01-03 09:09:01.403 [async-9]  INFO --- c.g.i.v.media.service.impl.MediaServerServiceImpl: 105 流变化:注销, app->rtp, stream->44010400002000000002_44010400002000000002
2025-01-03 09:09:01.415 [http-nio-18080-exec-4]  INFO --- c.genersoft.iot.vmp.media.zlm.ZLMHttpHookListener: 293 [ZLM HOOK] 录像完成:时长: 88.64900207519531, zlmediakit-local->/opt/media/bin/www/record/rtp/44010400002000000002_44010400002000000002/2025-01-03/09-07-13-0.mp4
2025-01-03 09:09:01.440 [async-7]  INFO --- c.g.iot.vmp.gb28181.service.impl.PlayServiceImpl: 1634 [停止点播/回放/下载] 44010400002000000002/44010400002000000002
2025-01-03 09:09:01.444 [async-7]  INFO --- c.g.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander: 631 [发送BYE] 设备: device: 44010400002000000002, channel: 44010400002000000002, callId: [email protected]
2025-01-03 09:09:01.446 [async-15]  INFO --- c.g.iot.vmp.storager.impl.RedisCatchStorageImpl: 122 [redis 流变化事件] 发送 WVP_MSG_STREAM_CHANGE_RTP: {"serverId":"1","app":"rtp","stream":"44010400002000000002_44010400002000000002","register":false,"mediaServerId":"zlmediakit-local"}
2025-01-03 09:09:01.464 [async-16]  INFO --- c.g.iot.vmp.service.impl.CloudRecordServiceImpl: 118 [添加录像记录] rtp/44010400002000000002_44010400002000000002, callId: [email protected], 内容:RecordInfo{文件名称='09-07-13-0.mp4', 文件路径='/opt/media/bin/www/record/rtp/44010400002000000002_44010400002000000002/2025-01-03/09-07-13-0.mp4', 文件大小=46309848, 开始时间=1735866433, 时长=88.64900207519531, params=null}
2025-01-03 09:09:01.519 [async-7]  INFO --- com.genersoft.iot.vmp.media.zlm.ZLMServerFactory: 101 关闭RTP Server {"code":0,"hit":0}
2025-01-03 09:09:01.526 [async-10]  INFO --- c.g.iot.vmp.gb28181.service.impl.PlayServiceImpl: 428 [点播开始] deviceId: 44010400002000000002, channelId: 44010400002000000002,码流类型:stream:0, 收流端口: 30426, 码流:44010400002000000002_44010400002000000002, 收流模式:UDP, SSRC: 0000000969, SSRC校验:false
2025-01-03 09:09:01.592 [async-19]  INFO --- c.g.i.v.g.t.e.r.impl.InviteResponseProcessor: 81 [回复ack] 44010400002000000002-> 192.168.1.158:8005 
2025-01-03 09:09:01.779 [http-nio-18080-exec-9]  INFO --- c.genersoft.iot.vmp.media.zlm.ZLMHttpHookListener: 100 [ZLM HOOK]推流鉴权:zlmediakit-local->OnPublishHookParam{id='44010400002000000002_44010400002000000002', app='rtp', stream='44010400002000000002_44010400002000000002', ip='172.20.0.1', params='', port=65115, schema='rtp', vhost='__defaultVhost__'}
2025-01-03 09:09:01.802 [http-nio-18080-exec-9]  INFO --- c.genersoft.iot.vmp.media.zlm.ZLMHttpHookListener: 112 [ZLM HOOK]推流鉴权 响应:zlmediakit-local->OnPublishHookParam{id='44010400002000000002_44010400002000000002', app='rtp', stream='44010400002000000002_44010400002000000002', ip='172.20.0.1', params='', port=65115, schema='rtp', vhost='__defaultVhost__'}->>>>HookResultForOnPublish{enable_audio=false, enable_mp4=true, mp4_max_second=0, mp4_save_path='null', stream_replace='null', modify_stamp='null'}
2025-01-03 09:09:01.917 [http-nio-18080-exec-10]  INFO --- c.genersoft.iot.vmp.media.zlm.ZLMHttpHookListener: 139 [ZLM HOOK] 流注册, zlmediakit-local->rtsp->rtp/44010400002000000002_44010400002000000002
2025-01-03 09:09:01.918 [async-22]  INFO --- c.g.i.v.media.service.impl.MediaServerServiceImpl: 91 流变化:注册 app->rtp, stream->44010400002000000002_44010400002000000002
2025-01-03 09:09:01.955 [async-21]  INFO --- c.g.iot.vmp.service.impl.RecordPlanServiceImpl: 71 [录像] 流离开时拉起需要录像的流, 开启成功, 通道ID: 2
2025-01-03 09:09:01.956 [async-21]  INFO --- c.g.iot.vmp.gb28181.service.impl.PlayServiceImpl: 398 [点播成功] deviceId: 44010400002000000002, channelId:44010400002000000002, 码流类型:stream:0
2025-01-03 09:09:01.956 [async-21]  INFO --- c.g.iot.vmp.gb28181.service.impl.PlayServiceImpl: 669 [请求截图]: 44010400002000000002_44010400002000000002.jpg
2025-01-03 09:09:31.973 [http-nio-18080-exec-10]  INFO --- c.genersoft.iot.vmp.media.zlm.ZLMHttpHookListener: 171 [ZLM HOOK]流无人观看:zlmediakit-local->hls->rtp/44010400002000000002_44010400002000000002
2025-01-03 09:10:49.560 [http-nio-18080-exec-4]  INFO --- c.genersoft.iot.vmp.media.zlm.ZLMHttpHookListener: 270 [ZLM HOOK] rtpServer收流超时:zlmediakit-local->44010400002000000002_44010400002000000002(0)
2025-01-03 09:10:49.564 [http-nio-18080-exec-10]  INFO --- c.genersoft.iot.vmp.media.zlm.ZLMHttpHookListener: 155 [ZLM HOOK] 流注销, zlmediakit-local->rtsp->rtp/44010400002000000002_44010400002000000002
2025-01-03 09:10:49.565 [async-17]  INFO --- c.g.i.v.media.service.impl.MediaServerServiceImpl: 105 流变化:注销, app->rtp, stream->44010400002000000002_44010400002000000002
2025-01-03 09:10:49.565 [http-nio-18080-exec-6]  INFO --- c.genersoft.iot.vmp.media.zlm.ZLMHttpHookListener: 293 [ZLM HOOK] 录像完成:时长: 89.8479995727539, zlmediakit-local->/opt/media/bin/www/record/rtp/44010400002000000002_44010400002000000002/2025-01-03/09-09-01-0.mp4
2025-01-03 09:10:49.585 [async-24]  INFO --- c.g.iot.vmp.service.impl.CloudRecordServiceImpl: 118 [添加录像记录] rtp/44010400002000000002_44010400002000000002, callId: [email protected], 内容:RecordInfo{文件名称='09-09-01-0.mp4', 文件路径='/opt/media/bin/www/record/rtp/44010400002000000002_44010400002000000002/2025-01-03/09-09-01-0.mp4', 文件大小=47140465, 开始时间=1735866541, 时长=89.8479995727539, params=null}
2025-01-03 09:10:49.636 [async-20]  INFO --- c.g.iot.vmp.storager.impl.RedisCatchStorageImpl: 122 [redis 流变化事件] 发送 WVP_MSG_STREAM_CHANGE_RTP: {"serverId":"1","app":"rtp","stream":"44010400002000000002_44010400002000000002","register":false,"mediaServerId":"zlmediakit-local"}
2025-01-03 09:10:49.643 [async-10]  INFO --- c.g.iot.vmp.gb28181.service.impl.PlayServiceImpl: 1634 [停止点播/回放/下载] 44010400002000000002/44010400002000000002
2025-01-03 09:10:49.648 [async-10]  INFO --- c.g.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander: 631 [发送BYE] 设备: device: 44010400002000000002, channel: 44010400002000000002, callId: [email protected]
2025-01-03 09:10:49.680 [async-18]  INFO --- c.g.iot.vmp.gb28181.service.impl.PlayServiceImpl: 428 [点播开始] deviceId: 44010400002000000002, channelId: 44010400002000000002,码流类型:stream:0, 收流端口: 30190, 码流:44010400002000000002_44010400002000000002, 收流模式:UDP, SSRC: 0000005155, SSRC校验:false
2025-01-03 09:10:49.729 [async-10]  INFO --- com.genersoft.iot.vmp.media.zlm.ZLMServerFactory: 101 关闭RTP Server {"code":0,"hit":1}
2025-01-03 09:10:49.758 [async-5]  INFO --- c.g.i.v.g.t.e.r.impl.InviteResponseProcessor: 81 [回复ack] 44010400002000000002-> 192.168.1.158:8005 
@648540858
Copy link
Owner

看日志猜测是网络不稳定导致推流超时了, 流传输模式使用tcp被动试试

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants