Exemple #1
0
    def get_context_data(self, **kwargs):
        context = super(ConsolaAgenteView, self).get_context_data(**kwargs)
        campanas_preview_activas = []
        usuario_agente = self.request.user
        agente_profile = usuario_agente.get_agente_profile()
        kamailio_service = KamailioService()
        sip_usuario = kamailio_service.generar_sip_user(
            agente_profile.sip_extension)
        sip_password = kamailio_service.generar_sip_password(sip_usuario)

        hoy = fecha_local(now())
        registros = LlamadaLog.objects.obtener_llamadas_finalizadas_del_dia(
            agente_profile.id, hoy)
        campanas_preview_activas = \
            agente_profile.has_campanas_preview_activas_miembro()
        context['pausas'] = Pausa.objects.activas
        context['registros'] = registros
        context['tipos_salientes'] = LlamadaLog.TIPOS_LLAMADAS_SALIENTES
        context['campanas_preview_activas'] = campanas_preview_activas
        context['agente_profile'] = agente_profile
        context['sip_usuario'] = sip_usuario
        context['sip_password'] = sip_password
        context['agentes'] = AgenteProfile.objects.obtener_activos().exclude(
            id=agente_profile.id)
        context['max_session_age'] = settings.SESSION_COOKIE_AGE

        return context
Exemple #2
0
    def get_context_data(self, **kwargs):
        context = super(SupervisionAgentesView,
                        self).get_context_data(**kwargs)
        supervisor = self.request.user.get_supervisor_profile()
        kamailio_service = KamailioService()
        sip_usuario = kamailio_service.generar_sip_user(
            supervisor.sip_extension)
        sip_password = kamailio_service.generar_sip_password(sip_usuario)
        if self.request.user.get_is_administrador():
            campanas = Campana.objects.obtener_all_dialplan_asterisk()
            grupo = Grupo.objects.all()
        else:
            campanas = supervisor.campanas_asignadas_actuales_no_finalizadas()
            ids_agentes = list(campanas.values_list(
                'queue_campana__members__pk', flat=True).distinct())
            id_grupo = AgenteProfile.objects.filter(id__in=ids_agentes).values_list(
                'grupo_id', flat=True).distinct()
            grupo = Grupo.objects.filter(id__in=id_grupo).values_list(
                'nombre', flat=True)
        context['campanas'] = campanas
        context['grupo'] = grupo
        context['sip_usuario'] = sip_usuario
        context['sip_password'] = sip_password

        RedisGearsService().registra_stream_supervisor(supervisor.id)
        return context
Exemple #3
0
def supervision_url_externa(request):
    """Vista que redirect a la supervision externa de marce"""
    user = request.user
    # TODO: Simon abarque el supervisor administrador del sistema pueda ver la supervision
    # hasta que este resuelto el tema de perfiles de supervisor por la tarjeta 652
    # que no permitia que un usuario administrador del sistema vea la sueprvision
    if user.get_es_administrador_o_supervisor_normal() or user.get_is_supervisor_customer():
        supervisor = user.get_supervisor_profile()
        sip_extension = supervisor.sip_extension
        kamailio_service = KamailioService()
        timestamp = int(kamailio_service.generar_sip_timestamp())
        sip_usuario = kamailio_service.generar_sip_user(sip_extension, timestamp)
        supervisor.timestamp = timestamp
        supervisor.sip_password = kamailio_service.generar_sip_password(sip_usuario)
        supervisor.save()
        url = settings.OML_SUPERVISION_URL + str(supervisor.pk)
        if supervisor.is_administrador:
            # TODO: Con los nuevos permisos nunca se puede dar este caso
            # Discutir si este caso de uso queda descartado
            url += "&es_admin=t"
        else:
            url += "&es_admin=f"
        return redirect(url)
    message = _("Supervision: Funcion valida para usuario tipo supervisor!!!")
    messages.warning(request, message)
    return HttpResponseRedirect(reverse('index'))
Exemple #4
0
 def get_context_data(self, **kwargs):
     context = super(SupervisionAgentesView,
                     self).get_context_data(**kwargs)
     supervisor = self.request.user.get_supervisor_profile()
     kamailio_service = KamailioService()
     sip_usuario = kamailio_service.generar_sip_user(
         supervisor.sip_extension)
     sip_password = kamailio_service.generar_sip_password(sip_usuario)
     context['sip_usuario'] = sip_usuario
     context['sip_password'] = sip_password
     return context
Exemple #5
0
    def get(self, request):
        usuario_agente = request.user
        agente_profile = usuario_agente.get_agente_profile()
        kamailio_service = KamailioService()
        sip_user = kamailio_service.generar_sip_user(agente_profile.sip_extension)
        sip_password = kamailio_service.generar_sip_password(sip_user)

        if sip_password is None:
            return Response(data={
                'status': 'ERROR',
                'message': _('Error al generar sip password'),
            })
        return Response(data={
            'status': 'OK',
            'sip_user': sip_user,
            'sip_password': sip_password,
        })
Exemple #6
0
    def get_context_data(self, **kwargs):
        context = super(ConsolaAgenteView, self).get_context_data(**kwargs)
        campanas_preview_activas = []
        usuario_agente = self.request.user
        agente_profile = usuario_agente.get_agente_profile()
        kamailio_service = KamailioService()
        sip_usuario = kamailio_service.generar_sip_user(
            agente_profile.sip_extension)
        sip_password = kamailio_service.generar_sip_password(sip_usuario)
        video_domain = ''
        if 'WEBPHONE_VIDEO_DOMAIN' in settings.CONSTANCE_CONFIG:
            video_domain = config_constance.WEBPHONE_VIDEO_DOMAIN
        fechas_agendas = AgendaContacto.objects.proximas(
            agente_profile).values_list('fecha', 'hora')
        fechas_agendas = [
            make_aware(datetime.combine(x[0], x[1])).isoformat()
            for x in fechas_agendas
        ]

        hoy = fecha_local(now())
        registros = LlamadaLog.objects.obtener_llamadas_finalizadas_del_dia(
            agente_profile.id, hoy)
        campanas_preview_activas = \
            agente_profile.has_campanas_preview_activas_miembro()
        context['pausas'] = Pausa.objects.activas
        context['registros'] = registros
        context['tipos_salientes'] = LlamadaLog.TIPOS_LLAMADAS_SALIENTES
        context['campanas_preview_activas'] = campanas_preview_activas
        context['agente_profile'] = agente_profile
        context['sip_usuario'] = sip_usuario
        context['sip_password'] = sip_password
        context['agentes'] = AgenteProfile.objects.obtener_activos().exclude(
            id=agente_profile.id)
        context['max_session_age'] = settings.SESSION_COOKIE_AGE
        context['video_domain'] = video_domain
        context['fechas_agendas_json'] = json.dumps(fechas_agendas)
        context['listas_rapidas'] = ContactoListaRapida.objects.all()

        return context