예제 #1
0
파일: views.py 프로젝트: smielgo99/testRepo
def handle(request):
    ''' expone la interfaz como parte servidora para gestionar las peticiones handelCallEvent'''
    
    log.debug("handle")    
    
    #Check that is a POST request
    status_code, json_data =check_request_type(request,'views.tags','POST')
    
    if(status_code == 200):
        nes_manager = NESManager()
        status_code, result = nes_manager.handle(request)
        
        #transform to json string
        json_data = CustomEncoder().encode(result)
        log.debug('json_data: '+ json_data)

    #json_data = '{"action": {"announcementId": "3", "callingPartyAddress":{"phoneNumber": "0034600222200"}, "defaultErrorHandling": true, "legId":"1", "actionToPerform": "OnHold"}, "callSessionIdentifier":"129916513689383"}'   
    response = HttpResponse(json_data,mimetype="application/json",status = status_code)     
    return response
예제 #2
0
파일: views.py 프로젝트: smielgo99/testRepo
def control_messages(request):
    '''vista para enviar el mensaje a la url de Jajah'''
    
    log.debug("control_messages")
    try:
        request_message = get_post_values(request,'message', "")
        log.debug('message' + request_message)
        manager = NESManager()
        manager.send_text_message(request_message)
        mimetype = 'text/plain'
        return HttpResponse("", mimetype)


    except NESException as inst:
     
        jsonException = CustomEncoder().encode(JSONException(inst))
        log.debug(jsonException)
        return HttpResponse(content=jsonException, mimetype=mimetype, status=inst.code)
    except Exception as e:
     
        log.debug(e.value)
        return HttpResponse(content=e.value, mimetype=mimetype)
예제 #3
0
파일: views.py 프로젝트: smielgo99/testRepo
def delete_subscription(real_number, log_number):   
    '''
    controla el borrado de las suscripciones 
    - recupera los correladores
    - borra las entradas de la tabla ActiveSuscriptions
    - borra la suscripcion del NES
    '''
    log.debug('delete_susbcription')
    #recuperamos los correladores de la BD para el real_number y el log_number
    active_subscription = ActiveSubscription.objects.get(phone_number=real_number)
    active_subscription.delete()
    log.debug( active_subscription )
    
    correlators_list = active_subscription.subscriptionId
    
    active_subscription = ActiveSubscription.objects.get(phone_number=log_number)
    active_subscription.delete()
    log.debug( active_subscription )
    
    correlators_list += ','+active_subscription.subscriptionId
    log.debug( 'correlator_list: '+correlators_list)
    manager = NESManager()
    manager.delete_subscription(correlators_list)
예제 #4
0
파일: views.py 프로젝트: smielgo99/testRepo
def create_subscription(real_number, log_number):
    '''
    crea las suscripciones necesarias para el phone roaming:
    - Both: para el numero real
    - Terminante: para el numero logueado
    - Crea las entradas en la tabla ActiveSubscriptions
    '''
    log.debug('create_subscription')
    try:
        #suscripcion en originante y terminante para el numero real
    
        endpoint = "http://212.179.159.77/nesphase2" 
        reference = ReferenceType(endpoint)
        
    
        interface = "ParlayX"
        
        reference.endpoint = endpoint
        reference.interfaceName = interface
        
    
        criteriaList = []
        criteria = CallEventsType()
        criteriaList.append(criteria.CalledNumber);
        
        monitoredParty = UserIdType()
        #phoneNumber
        monitoredParty.phoneNumber = real_number
        startCallNotificationRequest = StartCallNotificationRequest(reference, monitoredParty)
        startCallNotificationRequest.criteria = criteriaList
        startCallNotificationRequest.addressDirection = "Both"
        startCallNotificationRequest.directionMode = True
        subscription = StartCallNotification(startCallNotificationRequest)
        manager = NESManager()
            
        correlator = manager.save_subscription(subscription)   
      
        # guardar el correlator en la BD
            
        active_subscription = ActiveSubscription(phone_number   = subscription.startCallNotification.monitoredParty.phoneNumber, 
                                                 urlcallback    = subscription.startCallNotification.reference.endpoint,
                                                 subscriptionId = correlator,
                                                 direction      = subscription.startCallNotification.addressDirection)
        active_subscription.save();
        
      
        criteriaList = []
        criteria = CallEventsType()
        criteriaList.append(criteria.CalledNumber);
        
        monitoredParty = UserIdType()
        #phoneNumber
        monitoredParty.phoneNumber = log_number
        startCallNotificationRequest = StartCallNotificationRequest(reference, monitoredParty)
        startCallNotificationRequest.criteria = criteriaList
        startCallNotificationRequest.addressDirection = "Called"
        startCallNotificationRequest.directionMode = True
        subscription = StartCallNotification(startCallNotificationRequest)
        correlator = manager.save_subscription(subscription)
        # guardar el correlator en la BD
        
        active_subscription = ActiveSubscription(phone_number   = subscription.startCallNotification.monitoredParty.phoneNumber, 
                                                 urlcallback    = subscription.startCallNotification.reference.endpoint,
                                                 subscriptionId = correlator,
                                                 direction      = subscription.startCallNotification.addressDirection)
        active_subscription.save();
    except NESException as inst:
        print inst.message
        raise inst
    except Exception as inst:
        print inst.message
        raise inst