Exemplo n.º 1
0
 def _create_dict(self, family_member):
     nodo = DestinoEntrante.get_nodo_ruta_entrante(family_member)
     externalurl = family_member.url if family_member.url is not None else ''
     longitud_id_esperado = ''
     if family_member.longitud_id_esperado is not None:
         longitud_id_esperado = family_member.longitud_id_esperado
     dict_identificador_cliente = {
         'NAME':
         family_member.nombre,
         'TYPE':
         family_member.tipo_interaccion,
         'EXTERNALURL':
         externalurl,
         'AUDIO':
         convert_audio_asterisk_path_astdb(
             family_member.audio.audio_asterisk),
         'LENGTH':
         longitud_id_esperado,
         'TIMEOUT':
         family_member.timeout,
         'RETRIES':
         family_member.intentos,
     }
     for opcion in nodo.destinos_siguientes.all():
         dst = "{0},{1}".format(opcion.destino_siguiente.tipo,
                                opcion.destino_siguiente.object_id)
         if opcion.valor == IdentificadorCliente.DESTINO_MATCH:
             dict_identificador_cliente.update({'TRUEDST': dst})
         elif opcion.valor == IdentificadorCliente.DESTINO_NO_MATCH:
             dict_identificador_cliente.update({'FALSEDST': dst})
     return dict_identificador_cliente
Exemplo n.º 2
0
 def test_identificador_cliente_interaccion_externa_tipo1_envia_datos_correctos_creacion_astdb(
         self):
     campana_entrante_1 = CampanaFactory(type=Campana.TYPE_ENTRANTE)
     campana_entrante_2 = CampanaFactory(type=Campana.TYPE_ENTRANTE)
     ident_cliente = IdentificadorClienteFactory(
         tipo_interaccion=IdentificadorCliente.INTERACCION_EXTERNA_1)
     dest_entrante_1 = DestinoEntrante.crear_nodo_ruta_entrante(campana_entrante_1)
     dest_entrante_2 = DestinoEntrante.crear_nodo_ruta_entrante(campana_entrante_2)
     dest_entrante_ident_client = DestinoEntrante.crear_nodo_ruta_entrante(ident_cliente)
     OpcionDestino.crear_opcion_destino(
         dest_entrante_ident_client, dest_entrante_1, IdentificadorCliente.DESTINO_MATCH)
     OpcionDestino.crear_opcion_destino(
         dest_entrante_ident_client, dest_entrante_2, IdentificadorCliente.DESTINO_NO_MATCH)
     sync_ident_cliente = SincronizadorDeConfiguracionIdentificadorClienteAsterisk()
     gen_family = sync_ident_cliente._obtener_generador_family()
     dict_astdb = gen_family._create_dict(ident_cliente)
     self.assertEqual(dict_astdb['NAME'], ident_cliente.nombre)
     self.assertEqual(dict_astdb['TYPE'], ident_cliente.tipo_interaccion)
     self.assertEqual(dict_astdb['EXTERNALURL'], ident_cliente.url)
     audio_path = convert_audio_asterisk_path_astdb(ident_cliente.audio.audio_asterisk)
     self.assertEqual(dict_astdb['AUDIO'], audio_path)
     self.assertEqual(dict_astdb['LENGTH'], ident_cliente.longitud_id_esperado)
     self.assertEqual(dict_astdb['TIMEOUT'], ident_cliente.timeout)
     self.assertEqual(dict_astdb['RETRIES'], ident_cliente.intentos)
     self.assertEqual(dict_astdb['TRUEDST'], "{0},{1}".format(
         dest_entrante_1.tipo, dest_entrante_1.object_id))
     self.assertEqual(dict_astdb['FALSEDST'], "{0},{1}".format(
         dest_entrante_2.tipo, dest_entrante_2.object_id))
Exemplo n.º 3
0
    def _create_dict(self, ivr):
        destinos_siguientes = self._obtener_destinos_siguientes(ivr)
        ivr_audio = convert_audio_asterisk_path_astdb(
            ivr.audio_principal.audio_asterisk)

        timeout_audio = 'NONE'
        if ivr.time_out_audio:
            timeout_audio = convert_audio_asterisk_path_astdb(
                ivr.time_out_audio.audio_asterisk)

        invalid_audio = 'NONE'
        if ivr.invalid_audio:
            invalid_audio = convert_audio_asterisk_path_astdb(
                ivr.invalid_audio.audio_asterisk)

        dict_ivr = {
            'NAME': ivr.nombre,
            'AUDIO': ivr_audio,
            'TIMEOUT': ivr.time_out,
            'TORETRY': ivr.time_out_retries,
            'TOAUDIO': timeout_audio,
            'INVRETRY': ivr.invalid_retries,
            'INVAUDIO': invalid_audio,
            'OPTIONS': len(destinos_siguientes) - 2
        }

        contador_orden = 0
        for opcion in destinos_siguientes:
            # cambiar por contante de la clase ivr
            dst = "{0},{1}".format(opcion.destino_siguiente.tipo,
                                   opcion.destino_siguiente.object_id)
            if opcion.valor == IVR.VALOR_TIME_OUT:
                dict_ivr.update({'DEFAULTTODST': dst})
            elif opcion.valor == IVR.VALOR_DESTINO_INVALIDO:
                dict_ivr.update({'DEFAULTINVDST': dst})
            else:
                contador_orden += 1
                clave_dst = "OPTIONDST-{0}".format(contador_orden)
                clave_dmtf = "OPTIONDTMF-{0}".format(contador_orden)
                dict_ivr.update({clave_dst: dst})
                dict_ivr.update({clave_dmtf: opcion.valor})

        return dict_ivr
Exemplo n.º 4
0
 def test_identificador_cliente_interaccion_externa_tipo2_envia_datos_correctos_creacion_astdb(
         self):
     ident_cliente = IdentificadorClienteFactory(
         tipo_interaccion=IdentificadorCliente.INTERACCION_EXTERNA_2)
     DestinoEntrante.crear_nodo_ruta_entrante(ident_cliente)
     sync_ident_cliente = SincronizadorDeConfiguracionIdentificadorClienteAsterisk()
     gen_family = sync_ident_cliente._obtener_generador_family()
     dict_astdb = gen_family._create_dict(ident_cliente)
     self.assertEqual(dict_astdb['NAME'], ident_cliente.nombre)
     self.assertEqual(dict_astdb['TYPE'], ident_cliente.tipo_interaccion)
     self.assertEqual(dict_astdb['EXTERNALURL'], ident_cliente.url)
     audio_path = convert_audio_asterisk_path_astdb(ident_cliente.audio.audio_asterisk)
     self.assertEqual(dict_astdb['AUDIO'], audio_path)
     self.assertEqual(dict_astdb['LENGTH'], ident_cliente.longitud_id_esperado)
     self.assertEqual(dict_astdb['TIMEOUT'], ident_cliente.timeout)
     self.assertFalse(dict_astdb.get('TRUEDST', False))
     self.assertFalse(dict_astdb.get('FALSEDST', False))