def test_se_muestran_los_tiempos_de_pausa_correctamente(self): horas_sesion = 1 tiempo_inicial = now() pausa1 = PausaFactory(tipo=Pausa.TIPO_PRODUCTIVA) pausa2 = PausaFactory(tipo=Pausa.TIPO_RECREATIVA) ActividadAgenteLogFactory.create(event='UNPAUSEALL', agente_id=self.agente_profile.id, time=tiempo_inicial) tiempo_removemember_1 = tiempo_inicial + timedelta(microseconds=20000) ActividadAgenteLogFactory.create(event='REMOVEMEMBER', agente_id=self.agente_profile.id, time=tiempo_removemember_1) tiempo_addmember = tiempo_removemember_1 + timedelta(microseconds=3000) ActividadAgenteLogFactory.create(time=tiempo_addmember, event='ADDMEMBER', agente_id=self.agente_profile.id, pausa_id='') tiempo_inicio_pausa_1 = tiempo_addmember + timedelta(minutes=2) ActividadAgenteLogFactory.create(time=tiempo_inicio_pausa_1, event='PAUSEALL', agente_id=self.agente_profile.id, pausa_id=pausa1.id) tiempo_final_pausa_1 = tiempo_inicio_pausa_1 + timedelta(minutes=2) ActividadAgenteLogFactory.create(time=tiempo_final_pausa_1, event='UNPAUSEALL', agente_id=self.agente_profile.id, pausa_id=pausa1.id) tiempo_inicio_pausa_2 = tiempo_final_pausa_1 + timedelta(minutes=2) ActividadAgenteLogFactory.create(time=tiempo_inicio_pausa_2, event='PAUSEALL', agente_id=self.agente_profile.id, pausa_id=pausa2.id) tiempo_final_pausa_2 = tiempo_inicio_pausa_2 + timedelta(minutes=2) ActividadAgenteLogFactory.create(time=tiempo_final_pausa_2, event='UNPAUSEALL', agente_id=self.agente_profile.id, pausa_id=pausa2.id) tiempo_removemember_2 = tiempo_final_pausa_2 + timedelta( hours=horas_sesion) ActividadAgenteLogFactory.create(time=tiempo_removemember_2, event='REMOVEMEMBER', agente_id=self.agente_profile.id, pausa_id='') reporte = ReporteEstadisticasDiariaAgente() reporte_agente = reporte.estadisticas[self.agente_profile.pk] self.assertEqual(reporte_agente['tiempos'].pausa, timedelta(minutes=4)) self.assertEqual(reporte_agente['tiempos'].pausa_recreativa, timedelta(minutes=2))
def setUp(self): usr_agente = self.crear_user_agente(username='******') self.agente = self.crear_agente_profile(usr_agente) url = reverse('api_login') post_data = { 'username': self.agente.user.username, 'password': PASSWORD } response = self.client.post(url, post_data) self.auth_header = 'Bearer ' + response.json()['token'] self.pausa = PausaFactory(nombre='pausa')
def setUp(self): super(RedisDatabaseTest, self).setUp() audio_1 = ArchivoDeAudioFactory(audio_asterisk='oml/audio_1') audio_2 = ArchivoDeAudioFactory(audio_asterisk='oml/audio_2') audio_3 = ArchivoDeAudioFactory(audio_asterisk='oml/audio_3') self.ivr = IVRFactory(nombre='IVR 1', time_out=10, time_out_retries=5, invalid_retries=1, audio_principal=audio_1, time_out_audio=audio_2, invalid_audio=audio_3) self.nodo_ivr = DestinoEntrante.crear_nodo_ruta_entrante(self.ivr) self.grupo_horario = GrupoHorarioFactory() self.validacion_tiempo = ValidacionTiempoFactory( grupo_horario=self.grupo_horario) self.tc = ValidacionFechaHoraFactory() self.nodo_tc = DestinoEntrante.crear_nodo_ruta_entrante(self.tc) self.id_cliente = IdentificadorClienteFactory(audio=audio_1) self.nodo_id_cliente = DestinoEntrante.crear_nodo_ruta_entrante( self.id_cliente) self.pausa = PausaFactory() self.inr = RutaEntranteFactory(destino=self.nodo_ivr) self.trunk = TroncalSIPFactory() self.destino_personalizado = DestinoPersonalizadoFactory() self.nodo_destino_personalizado = DestinoEntrante.crear_nodo_ruta_entrante( self.destino_personalizado) self.campana_entrante = CampanaFactory(type=Campana.TYPE_ENTRANTE) QueueFactory(campana=self.campana_entrante) self.campana_dialer = CampanaFactory(type=Campana.TYPE_DIALER) QueueFactory(campana=self.campana_dialer) self.campana_preview = CampanaFactory(type=Campana.TYPE_PREVIEW) QueueFactory(campana=self.campana_preview) self.campana_manual = CampanaFactory(type=Campana.TYPE_MANUAL) QueueFactory(campana=self.campana_manual)
def _crear_datos_entorno(self): self.admin = User.objects.filter(is_staff=True).first() # crear grupo grupo = GrupoFactory() # crear agente agente = AgenteProfileFactory(grupo=grupo, reported_by=self.admin) agente.user.username = self.agent_username agente.user.set_password(self.agent_password) agente.sip_extension = 1000 + agente.id agente.user.is_agente = True agente.user.save() agente.save() agente.user.groups.add(Group.objects.get(name='Agente')) asterisk_sip_service = ActivacionAgenteService() asterisk_sip_service.activar() # crear audio ArchivoDeAudioFactory() # crear pausa PausaFactory() # crear formulario (2 campos) form = FormularioFactory() FieldFormularioFactory.create_batch(2, formulario=form) # crear califs.(1 gestion y 1 normal) self.success = NombreCalificacionFactory(nombre='Success') self.angry = NombreCalificacionFactory(nombre='Hangs up angry') # crear BD (3 contactos) self.bd_contacto = BaseDatosContactoFactory() ContactoFactory.create_batch(3, bd_contacto=self.bd_contacto) campana_manual = self._crear_campana_manual() campana_entrante = self._crear_campana_entrante() activacion_queue_service = ActivacionQueueService() activacion_queue_service.activar() # crea un troncal y con este una ruta entrante hacia el pbx-emulator text_config = ("type=friend\n" "host=pbx-emulator\n" "defaultuser=01177660010\n" "secret=OMLtraining72\n" "qualify=yes\n" "insecure=invite\n" "context=from-pstn\n" "disallow=all\n" "allow=alaw\n") register_string = "01177660010:OMLtraining72@pbx-emulator" troncal_pbx_emulator = TroncalSIPFactory( text_config=text_config, register_string=register_string, canales_maximos=1000, caller_id='') sincronizador_troncal = SincronizadorDeConfiguracionTroncalSipEnAsterisk( ) sincronizador_troncal.regenerar_troncales(troncal_pbx_emulator) ruta_saliente = RutaSalienteFactory(ring_time=25, dial_options="Tt") PatronDeDiscadoFactory(ruta_saliente=ruta_saliente, match_pattern="X.") OrdenTroncalFactory(ruta_saliente=ruta_saliente, orden=0, troncal=troncal_pbx_emulator) sincronizador_ruta_saliente = SincronizadorDeConfiguracionDeRutaSalienteEnAsterisk( ) sincronizador_ruta_saliente.regenerar_asterisk(ruta_saliente) # crear ruta entrante self._crear_ruta_entrante(campana_entrante) self._asignar_agente_a_campana(agente, campana_manual) self._asignar_agente_a_campana(agente, campana_entrante)
def _crear_datos_entorno(self): admin = User.objects.filter(is_staff=True).first() # crear grupo grupo = GrupoFactory() # crear modulo modulo = ModuloFactory() # crear agente agente = AgenteProfileFactory(grupo=grupo, reported_by=admin) agente.modulos.add(modulo) agente.user.username = self.agent_username agente.user.set_password(self.agent_password) agente.sip_extension = 1000 + agente.id agente.user.is_agente = True agente.user.save() agente.save() asterisk_sip_service = ActivacionAgenteService() asterisk_sip_service.activar() # crear audio ArchivoDeAudioFactory() # crear pausa PausaFactory() # crear formulario (2 campos) form = FormularioFactory() FieldFormularioFactory.create_batch(2, formulario=form) # crear califs.(1 gestion y 1 normal) success = NombreCalificacionFactory(nombre='Success') angry = NombreCalificacionFactory(nombre='Hangs up angry') # crear BD (3 contactos) bd_contacto = BaseDatosContactoFactory() ContactoFactory.create_batch(3, bd_contacto=bd_contacto) # crear campaña manual campana_manual = CampanaFactory( nombre='test_manual_campaign', bd_contacto=bd_contacto, type=Campana.TYPE_MANUAL, reported_by=admin, es_manual=True, estado=Campana.ESTADO_ACTIVA ) # crear Queue para la campaña Queue.objects.create( campana=campana_manual, name=campana_manual.nombre, maxlen=5, wrapuptime=5, servicelevel=30, strategy='rrmemory', eventmemberstatus=True, eventwhencalled=True, ringinuse=True, setinterfacevar=True, weight=0, wait=120 ) # opciones de calificacion OpcionCalificacionFactory( nombre=success.nombre, campana=campana_manual, tipo=OpcionCalificacion.GESTION) OpcionCalificacionFactory( nombre=angry.nombre, campana=campana_manual, tipo=OpcionCalificacion.NO_ACCION) activacion_queue_service = ActivacionQueueService() activacion_queue_service.activar() # crea un troncal y con este una ruta entrante hacia el pbx-emulator text_config = ("type=friend\n" "host=pbx-emulator\n" "defaultuser=01177660010\n" "secret=OMLtraining72\n" "qualify=yes\n" "insecure=invite\n" "context=from-pstn\n" "disallow=all\n" "allow=alaw\n") register_string = "01177660010:OMLtraining72@pbx-emulator" troncal_pbx_emulator = TroncalSIPFactory( text_config=text_config, register_string=register_string, canales_maximos=1000, caller_id='') sincronizador_troncal = SincronizadorDeConfiguracionTroncalSipEnAsterisk() sincronizador_troncal.regenerar_troncales(troncal_pbx_emulator) ruta_saliente = RutaSalienteFactory(ring_time=25, dial_options="Tt") PatronDeDiscadoFactory(ruta_saliente=ruta_saliente, match_pattern="X.") OrdenTroncalFactory(ruta_saliente=ruta_saliente, orden=0, troncal=troncal_pbx_emulator) sincronizador_ruta_saliente = SincronizadorDeConfiguracionDeRutaSalienteEnAsterisk() sincronizador_ruta_saliente.regenerar_rutas_salientes(ruta_saliente)
def _crear_datos_entorno(self): self.admin = User.objects.filter(is_staff=True).first() # crear grupo grupo = GrupoFactory() # crear agente agente = AgenteProfileFactory(grupo=grupo, reported_by=self.admin) agente.user.username = self.agent_username agente.user.set_password(self.agent_password) agente.sip_extension = 1000 + agente.user.id agente.user.is_agente = True agente.user.save() agente.save() agente.user.groups.add(Group.objects.get(name='Agente')) asterisk_sip_service = ActivacionAgenteService() asterisk_sip_service.activar() # crear audio ArchivoDeAudioFactory() # crear pausa PausaFactory() # crear formulario (2 campos) form = FormularioFactory() FieldFormularioFactory.create_batch(2, formulario=form) # crear califs.(1 gestion y 1 normal) self.success = NombreCalificacionFactory(nombre='Success') self.angry = NombreCalificacionFactory(nombre='Hangs up angry') # crear BD (3 contactos) self.bd_contacto = BaseDatosContactoFactory() ContactoFactory.create_batch(3, bd_contacto=self.bd_contacto) campana_manual = self._crear_campana_manual() campana_entrante = self._crear_campana_entrante() activacion_queue_service = ActivacionQueueService() activacion_queue_service.activar() # crea un troncal y con este una ruta entrante hacia el pbx-emulator text_config = ("type=wizard\n" "transport=trunk-transport\n" "accepts_registrations=no\n" "accepts_auth=no\n" "sends_registrations=yes\n" "sends_auth=yes\n" "endpoint/rtp_symmetric=no\n" "endpoint/force_rport=no\n" "endpoint/rewrite_contact=yes\n" "endpoint/timers=yes\n" "aor/qualify_frequency=60\n" "endpoint/allow=alaw,ulaw\n" "endpoint/dtmf_mode=rfc4733\n" "endpoint/context=from-pstn\n" "remote_hosts=pbxemulator:5060\n" "outbound_auth/username=01177660010\n" "outbound_auth/password=OMLtraining72\n") troncal_pbx_emulator = TroncalSIPFactory(text_config=text_config, canales_maximos=1000, tecnologia=1, caller_id='') sincronizador_troncal = SincronizadorDeConfiguracionTroncalSipEnAsterisk( ) sincronizador_troncal.regenerar_troncales(troncal_pbx_emulator) ruta_saliente = RutaSalienteFactory(ring_time=25, dial_options="Tt") PatronDeDiscadoFactory(ruta_saliente=ruta_saliente, match_pattern="X.") OrdenTroncalFactory(ruta_saliente=ruta_saliente, orden=0, troncal=troncal_pbx_emulator) sincronizador_ruta_saliente = SincronizadorDeConfiguracionDeRutaSalienteEnAsterisk( ) sincronizador_ruta_saliente.regenerar_asterisk(ruta_saliente) # crear ruta entrante self._crear_ruta_entrante(campana_entrante) self._asignar_agente_a_campana(agente, campana_manual) self._asignar_agente_a_campana(agente, campana_entrante)