Exemple #1
0
def requestVideoCallWithUsername(request):
    """
        This method is called when a user request a video conference.

        Example:
            username=ddmbr&callToUsername=test
    """
    if request.method == 'POST':
        caller = request.POST['username']
        caller_uid = user.getIdByUsername(caller)
        reviever = request.POST['callToUsername']
        reviever_uid = user.getIdByUsername(reciever)
        #
        # check the caller's and reciever's languages
        reciever_lang = user.getLanguageByID(reciever_uid)
        caller_lang = user.getLanguageByID(caller_uid)
        #
        # find a proper translator
        user.callTranslator(caller_lang, reciever_lang)
        #
        # call the reciever
        logging.info("%s want to start a conference with %s", caller, reciever)
        user.startCall(caller_uid, reciever_uid)
        #
        # Try to send a notification
        callInfo = getMyInfo( username )
        data = {"callType":"videoCall", 
                "callContact": callInfo
                        }
        user.sendPushMsg(reciever_uid)
        #
        # get he's tokbox session id
        session_id = user.getVideoSessionById(caller_uid)
        #
        # generate a corresponding token
        token = opentok_sdk.generate_token(session_id)

        to_json = {'requestType':'videoCall',
                'message':'accept',
                'sessionId':session_id,
                'token':token}

        response = HttpResponse(simplejson.dumps(to_json), mimetype='application/json')
    else:
        response = HttpResponse("Error!")
    if request.META['HTTP_USER_AGENT'].find("iPhone") == -1:
        response['Access-Control-Allow-Origin']='*'

    return response
Exemple #2
0
def updateStatusWithUsername(request):
    """
        Called to sync with the server.
        TODO: More wrap needed!
    """
    if request.method == 'POST':
        username = request.POST['username']
        uid = user.getIdByUsername(username)
        privilege_id = user.getPrivilegeById(uid)

        if privilege_id == '0':
            #
            # then he is a user
            # check comming call
            session_id = user.checkCallById(uid)
            if session_id != '':
                #
                # generate a corresponding token
                token = opentok_sdk.generate_token(session_id)
                to_json = {'requestType':'answerVideoCall',
                        'message':'accept',
                        'sessionId':session_id,
                        'token':token}
                logging.info('%s get a comming call', username)

            else:
                #
                # There's no comming call
                to_json = {'sessionId':'', 'token':'', 'message':'reject'}
            response = HttpResponse(simplejson.dumps(to_json), mimetype='application/json')

        if privilege_id == '2':
            #
            # he is a translator
            (lang_1, lang_2) = user.getLanguageByID(uid)
            session_id = user.getTransTask()
            if session_id != '':
                #
                # generate a corresponding token
                token = opentok_sdk.generate_token(session_id)
                to_json = {'requestType':'answerVideoCall',
                        'message':'accept',
                        'sessionId':session_id,
                        'token':token}
            else:
                to_json = {'sessionId':'', 'token':'', 'message':'reject'}
            response = HttpResponse(simplejson.dumps(to_json), mimetype='application/json')
    else:
        response = HttpResponse("Error!")

    #logging.info("response: %s", to_json)
    if request.META['HTTP_USER_AGENT'].find("iPhone") == -1:
        response['Access-Control-Allow-Origin']='*'
    return response