|
@@ -26,11 +26,7 @@ from service.CommonService import CommonService
|
|
|
from object.RedisObject import RedisObject
|
|
|
from azoauth.config import *
|
|
|
|
|
|
-SERVER_PREFIX = 'http://www.dvema.com'
|
|
|
-PORT_PREFIX = '8554'
|
|
|
-# PORT_PREFIX = '443'
|
|
|
-# RTSP_PREFIX = 'rtsps'
|
|
|
-RTSP_PREFIX = 'rtsp'
|
|
|
+
|
|
|
|
|
|
class authView(TemplateView):
|
|
|
def post(self, request, *args, **kwargs):
|
|
@@ -83,7 +79,8 @@ class loginHandleView(TemplateView):
|
|
|
# 返回code
|
|
|
print(user)
|
|
|
print(pwd)
|
|
|
- auth_request_url = '{SERVER_PREFIX}/oalexa/auth'.format(SERVER_PREFIX=SERVER_PREFIX)
|
|
|
+ auth_request_url = '{SERVER_PREFIX}/oalexa/auth'.\
|
|
|
+ format(SERVER_PREFIX=SERVER_PREFIX)
|
|
|
print(auth_request_url)
|
|
|
# auth_request_url = 'http://192.168.136.40:8077/oalexa/auth'
|
|
|
requests_data = {'userName': user, 'userPwd': pwd}
|
|
@@ -97,7 +94,10 @@ class loginHandleView(TemplateView):
|
|
|
nowTime = int(time.time())
|
|
|
user_qs = UserModel.objects.filter(userID=userID)
|
|
|
if not user_qs.exists():
|
|
|
- UserModel.objects.create(userID=userID, addTime=nowTime, updTime=nowTime)
|
|
|
+ UserModel.objects.create(
|
|
|
+ userID=userID,
|
|
|
+ addTime=nowTime,
|
|
|
+ updTime=nowTime)
|
|
|
user_qs = UserModel.objects.filter(userID=userID)
|
|
|
code = CommonService.encrypt_data(32)
|
|
|
user_qs.update(code=code)
|
|
@@ -165,8 +165,9 @@ def runSendRtspMsg_thread(UID, PWD, MSG):
|
|
|
command = "./pushtool {UID} {PWD} {MSG} 1".format(UID=UID, PWD=PWD, MSG=MSG)
|
|
|
print('command=>{command}'.format(command=command))
|
|
|
try:
|
|
|
- back = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate(
|
|
|
- timeout=10)
|
|
|
+ back = subprocess. \
|
|
|
+ Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE). \
|
|
|
+ communicate(timeout=10)
|
|
|
except Exception as e:
|
|
|
return False
|
|
|
else:
|
|
@@ -210,12 +211,19 @@ class oa2RtspStartView(TemplateView):
|
|
|
if user_qs.exists():
|
|
|
print('select by mysql data')
|
|
|
# userID = user_qs[0].userID
|
|
|
- ur_qs = UidRtspModel.objects.filter(uid=id).values('uid', 'nick', 'rtsp_url', 'password')
|
|
|
+ ur_qs = UidRtspModel.objects.filter(uid=id).values('uid', 'nick', 'rtsp_url', 'password','region')
|
|
|
# ur_qs = UidRtspModel.objects.filter(usermodel__userID=userID,uid=)
|
|
|
UID = ur_qs[0]['uid']
|
|
|
+ region = ur_qs[0]['region']
|
|
|
PWD = ur_qs[0]['password']
|
|
|
+ stream_name = ur_qs[0]['rtsp_url']
|
|
|
+ nick = ur_qs[0]['nick']
|
|
|
+ RESP_SERVER_DOMAIN = RESP_SERVER_DOMAIN_DATA[region]
|
|
|
MSG = '{RTSP_PREFIX}://{RESP_SERVER_DOMAIN}:{PORT_PREFIX}/{stream_name}'. \
|
|
|
- format(RESP_SERVER_DOMAIN=RESP_SERVER_DOMAIN, stream_name=ur_qs[0]['rtsp_url'],PORT_PREFIX=PORT_PREFIX,RTSP_PREFIX=RTSP_PREFIX)
|
|
|
+ format(RESP_SERVER_DOMAIN=RESP_SERVER_DOMAIN,
|
|
|
+ stream_name=stream_name,
|
|
|
+ PORT_PREFIX=PORT_PREFIX,
|
|
|
+ RTSP_PREFIX=RTSP_PREFIX)
|
|
|
# po = Pool(10)
|
|
|
# po.apply_async(self.runSendRtspMsg, (UID, PWD, MSG))
|
|
|
print(UID)
|
|
@@ -229,22 +237,24 @@ class oa2RtspStartView(TemplateView):
|
|
|
return JsonResponse({'msg': 'stop no', 'code': 0})
|
|
|
# threading.Thread(target=runSendRtspMsg_thread, args=(UID, PWD, MSG)).start()
|
|
|
send_flag = self.runSendRtspMsg(UID, PWD, MSG)
|
|
|
- rtsp_uri = '{RTSP_PREFIX}://{RESP_SERVER_DOMAIN}:443/{stream_name}'.\
|
|
|
- format(RESP_SERVER_DOMAIN=RESP_SERVER_DOMAIN,stream_name=ur_qs[0]['rtsp_url'],RTSP_PREFIX=RTSP_PREFIX)
|
|
|
+ rtsp_uri = '{RTSP_PREFIX}://{RESP_SERVER_DOMAIN}:443/{stream_name}'. \
|
|
|
+ format(RESP_SERVER_DOMAIN=RESP_SERVER_DOMAIN,
|
|
|
+ stream_name=stream_name,
|
|
|
+ RTSP_PREFIX=RTSP_PREFIX)
|
|
|
res_json = {
|
|
|
'endpointId': id,
|
|
|
'manufacturerName': 'Axis',
|
|
|
'manufacturerId': 'axis-ACCC8E5E7513',
|
|
|
'modelName': 'P1425-LE',
|
|
|
- 'friendlyName': 'Camera {nick}'.format(nick=ur_qs[0]['nick']),
|
|
|
- 'description': 'Camera {nick}'.format(nick=ur_qs[0]['nick']),
|
|
|
+ 'friendlyName': 'Camera {nick}'.format(nick=nick),
|
|
|
+ 'description': 'Camera {nick}'.format(nick=nick),
|
|
|
'resolutions': [{'width': 1280, 'height': 720}],
|
|
|
'videoCodecs': ['H264'],
|
|
|
# 'audioCodecs': ['ACC'],
|
|
|
'audioCodecs': ['G711'],
|
|
|
'protocols': ['RTSP'],
|
|
|
'authorizationTypes': ['NONE'],
|
|
|
- 'uri':rtsp_uri
|
|
|
+ 'uri': rtsp_uri
|
|
|
}
|
|
|
if send_flag:
|
|
|
redisObj.set_data(key=key, val=str(res_json), expire=30)
|
|
@@ -256,8 +266,8 @@ class oa2RtspStartView(TemplateView):
|
|
|
command = "./pushtool {UID} {PWD} {MSG} 1".format(UID=UID, PWD=PWD, MSG=MSG)
|
|
|
print('command=>{command}'.format(command=command))
|
|
|
try:
|
|
|
- back = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate(
|
|
|
- timeout=10)
|
|
|
+ back = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).\
|
|
|
+ communicate(timeout=10)
|
|
|
except Exception as e:
|
|
|
return False
|
|
|
else:
|
|
@@ -269,8 +279,8 @@ class oa2RtspStartView(TemplateView):
|
|
|
command = "./pushtool {UID} {PWD} {MSG} 0".format(UID=UID, PWD=PWD, MSG=MSG)
|
|
|
print('command=>{command}'.format(command=command))
|
|
|
try:
|
|
|
- back = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate(
|
|
|
- timeout=10)
|
|
|
+ back = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).\
|
|
|
+ communicate(timeout=10)
|
|
|
except Exception as e:
|
|
|
return False
|
|
|
else:
|
|
@@ -293,6 +303,7 @@ class oa2DiscoveryDevice(TemplateView):
|
|
|
def validate(self, request_dict):
|
|
|
# 增加对code和client_id的校验代码,返回access_token和refresh_token
|
|
|
access_token = request_dict.get("access_token", None)
|
|
|
+ region = request_dict.get("region", 'cn')
|
|
|
try:
|
|
|
user_qs = UserModel.objects.get(access_token=access_token)
|
|
|
except Exception as e:
|
|
@@ -303,8 +314,8 @@ class oa2DiscoveryDevice(TemplateView):
|
|
|
auth_request_url = '{SERVER_PREFIX}/oalexa/discoveryuid'.format(SERVER_PREFIX=SERVER_PREFIX)
|
|
|
requests_data = {'sid': 'admin', 'sst': 'admin', 'alexa_user_id': userID}
|
|
|
res = requests.post(url=auth_request_url, data=requests_data)
|
|
|
- print(res.json())
|
|
|
res_json = res.json()
|
|
|
+ print(res_json)
|
|
|
if res_json['result_code'] == 0:
|
|
|
uid_arr = res_json['result']['uid_arr']
|
|
|
rtko = tkObject(rank=1)
|
|
@@ -318,17 +329,19 @@ class oa2DiscoveryDevice(TemplateView):
|
|
|
try:
|
|
|
uid_rtsp_qs = UidRtspModel.objects.get(uid=uid)
|
|
|
except UidRtspModel.DoesNotExist:
|
|
|
- uid_rtsp_qs = UidRtspModel.objects.create(
|
|
|
- uid=uid_a['uid'],
|
|
|
- password=uid_a['password'],
|
|
|
- nick=uid_a['nick'],
|
|
|
- addTime=now_time,
|
|
|
- updTime=now_time,
|
|
|
- rtsp_url=rtsp_url,
|
|
|
- )
|
|
|
+ uid_rtsp_qs = UidRtspModel.objects.create(uid=uid_a['uid'],
|
|
|
+ password=uid_a['password'],
|
|
|
+ nick=uid_a['nick'],
|
|
|
+ addTime=now_time,
|
|
|
+ updTime=now_time,
|
|
|
+ rtsp_url=rtsp_url,
|
|
|
+ region=region)
|
|
|
uid_rtsp_id_list.append(uid_rtsp_qs.id)
|
|
|
- rtsp_uri = '{RTSP_PREFIX}://{RESP_SERVER_DOMAIN}:443/{stream_name}'.\
|
|
|
- format(RESP_SERVER_DOMAIN=RESP_SERVER_DOMAIN, stream_name=rtsp_url,RTSP_PREFIX=RTSP_PREFIX)
|
|
|
+ RESP_SERVER_DOMAIN = RESP_SERVER_DOMAIN_DATA[region]
|
|
|
+ rtsp_uri = '{RTSP_PREFIX}://{RESP_SERVER_DOMAIN}:443/{stream_name}'. \
|
|
|
+ format(RESP_SERVER_DOMAIN=RESP_SERVER_DOMAIN,
|
|
|
+ stream_name=rtsp_url,
|
|
|
+ RTSP_PREFIX=RTSP_PREFIX)
|
|
|
ur_data = {
|
|
|
'endpointId': uid_a['uid'],
|
|
|
'manufacturerName': 'Axis',
|