|
@@ -250,13 +250,17 @@ class oa2RtspStartView(TemplateView):
|
|
|
region = ur_qs[0]['region']
|
|
|
stream_name = ur_qs[0]['rtsp_url']
|
|
|
|
|
|
+ channel = '0'
|
|
|
+ if '_' in UID:
|
|
|
+ # 多通道设备
|
|
|
+ channel = UID[-1:]
|
|
|
+ UID = UID[:-2]
|
|
|
+
|
|
|
RESP_SERVER_DOMAIN = RESP_SERVER_DOMAIN_DATA['EN']
|
|
|
- MSG = '{RTSP_PREFIX}://{RESP_SERVER_DOMAIN}:8554/{stream_name}'. \
|
|
|
- format(RTSP_PREFIX=RTSP_PREFIX, RESP_SERVER_DOMAIN=RESP_SERVER_DOMAIN, stream_name=stream_name)
|
|
|
+ MSG = '{}://{}:8554/{}'.format(RTSP_PREFIX, RESP_SERVER_DOMAIN, stream_name)
|
|
|
|
|
|
logger = logging.getLogger('django')
|
|
|
- logger.info('------开始向设备下发推流指令------')
|
|
|
- logger.info('技能名称: {}'.format(app_name))
|
|
|
+ logger.info('------{} 开始向设备下发推流指令------'.format(app_name))
|
|
|
|
|
|
# 此处后续应该用异步去发送指令
|
|
|
if int(st) == 1:
|
|
@@ -269,7 +273,7 @@ class oa2RtspStartView(TemplateView):
|
|
|
|
|
|
# 请求MQTT发布消息
|
|
|
url = '{}/iot/requestPublishMessage'.format(SERVER_PREFIX_TEST) # 测试服务器
|
|
|
- requests_data = {'UID': UID, 'MSG': MSG+' 1'} # 1: 开始推流,0: 停止推流
|
|
|
+ requests_data = {'UID': UID, 'MSG': MSG+' 1'+channel} # 1: 开始推流,0: 停止推流; channel: 推流通道
|
|
|
r = requests.post(url, requests_data)
|
|
|
if r.status_code != 200:
|
|
|
return JsonResponse({'错误': '请求响应异常'})
|
|
@@ -279,15 +283,14 @@ class oa2RtspStartView(TemplateView):
|
|
|
if res['result_code'] == 0:
|
|
|
logger.info('请求MQTT下发指令成功')
|
|
|
elif res['result_code'] == 10043:
|
|
|
- command = "./pushtool {UID} {PWD} {MSG} 1".format(UID=UID, PWD=PWD, MSG=MSG)
|
|
|
+ command = "./pushtool {UID} {PWD} {MSG} 1 {channel}".format(UID=UID, PWD=PWD, MSG=MSG, channel=channel)
|
|
|
logger.info('------------推流指令: {}---------------'.format(command))
|
|
|
self.runSendRtspMsg(logger, region, command)
|
|
|
else:
|
|
|
return JsonResponse({'错误': '请求MQTT发布消息异常'})
|
|
|
|
|
|
# 拉流地址
|
|
|
- rtsp_uri = '{RTSP_PREFIX}://{RESP_SERVER_DOMAIN}:443/{stream_name}'. \
|
|
|
- format(RTSP_PREFIX=RTSP_PREFIX, RESP_SERVER_DOMAIN=RESP_SERVER_DOMAIN, stream_name=stream_name)
|
|
|
+ rtsp_uri = '{}://{}:443/{}'.format(RTSP_PREFIX, RESP_SERVER_DOMAIN, stream_name)
|
|
|
stop_time = int(time.time()) + 2*60
|
|
|
expirationTime = time.strftime('%Y-%m-%dT%H:%MZ',time.localtime(stop_time))
|
|
|
|
|
@@ -371,8 +374,7 @@ class oa2DiscoveryDevice(TemplateView):
|
|
|
access_token = request_dict.get("access_token", None)
|
|
|
|
|
|
logger = logging.getLogger('django')
|
|
|
- logger.info('--------开始搜索设备--------')
|
|
|
- logger.info('技能名称: {}'.format(app_name))
|
|
|
+ logger.info('--------{} 开始搜索设备--------'.format(app_name))
|
|
|
|
|
|
user_qs = UserModel.objects.filter(access_token=access_token)
|
|
|
if not user_qs.exists():
|
|
@@ -439,14 +441,15 @@ class oa2DiscoveryDevice(TemplateView):
|
|
|
uid = uid_a['uid']
|
|
|
nick = uid_a['nick']
|
|
|
|
|
|
+ rtsp_url = rtko.encrypt(data=uid)
|
|
|
+ region = 'CN' if uid_a['region'] == 'CN' else 'EN'
|
|
|
+
|
|
|
if test_flag:
|
|
|
multi_channel = uid_a['multi_channel']
|
|
|
if multi_channel:
|
|
|
# 多通道设备: uid_通道号
|
|
|
uid += '_' + str(uid_a['channel'])
|
|
|
|
|
|
- region = 'CN' if uid_a['region'] == 'CN' else 'EN'
|
|
|
- rtsp_url = rtko.encrypt(data=uid)
|
|
|
try:
|
|
|
uid_rtsp_qs = UidRtspModel.objects.get(uid=uid)
|
|
|
except UidRtspModel.DoesNotExist:
|