예제 #1
0
    def test_devuelve_correctamente_values_campana_entrante_asterisk(self):
        """
        este test testea los values del diccionario de la family de la campana
        entrante
        """
        servicio = CampanaFamily()
        dict_campana = servicio._create_dict(self.campana_entrante)

        nombre_campana = "{0}_{1}".format(self.campana_entrante.id,
                                          self.campana_entrante.nombre)
        self.assertEqual(dict_campana['QNAME'], nombre_campana)
        self.assertEqual(dict_campana['TYPE'], self.campana_entrante.type)
        self.assertEqual(dict_campana['REC'], self.campana_entrante.queue_campana.auto_grabacion)
        self.assertEqual(dict_campana['AMD'],
                         self.campana_entrante.queue_campana.detectar_contestadores)
        self.assertEqual(dict_campana['CALLAGENTACTION'], self.campana_entrante.tipo_interaccion)
        self.assertEqual(dict_campana['RINGTIME'], self.campana_entrante.queue_campana.timeout)
        self.assertEqual(dict_campana['QUEUETIME'], self.campana_entrante.queue_campana.wait)
        self.assertEqual(dict_campana['MAXQCALLS'], self.campana_entrante.queue_campana.maxlen)
        self.assertEqual(dict_campana['SL'], self.campana_entrante.queue_campana.servicelevel)
        audio = "{0}{1}".format(
            settings.OML_AUDIO_FOLDER,
            self.campana_entrante.queue_campana.audio_de_ingreso.get_filename_audio_asterisk())
        self.assertEqual(dict_campana['WELCOMEPLAY'], audio)
        self.assertEqual(dict_campana['TC'], "")
        self.assertEqual(dict_campana['IDJSON'], "")
        self.assertEqual(dict_campana['PERMITOCCULT'], "")
        self.assertEqual(dict_campana['MAXCALLS'], "")
        self.assertEqual(dict_campana['FAILOVER'], str(0))
        self.assertNotIn('MOH', dict_campana['FAILOVER'])
예제 #2
0
class ActivacionQueueService(object):
    """ Sincronizador de configuracion de Campaña / Queue """
    def __init__(self):
        self.queues_config_creator = QueuesCreator()
        self.reload_asterisk_config = AsteriskConfigReloader()
        self.asterisk_database = CampanaFamily()

    def _generar_y_recargar_configuracion_asterisk(self):
        proceso_ok = True
        mensaje_error = ""

        try:
            self.queues_config_creator.create_dialplan()
        except Exception:
            logger.exception(
                _("ActivacionQueueService: error al "
                  "intentar queues_config_creator()"))

            proceso_ok = False
            mensaje_error += (_("Hubo un inconveniente al crear el archivo de "
                                "configuracion del queues de Asterisk. "))

        if not proceso_ok:
            raise (RestablecerDialplanError(mensaje_error))
        else:
            self.reload_asterisk_config.reload_asterisk()
            self.asterisk_database.regenerar_families()

    def activar(self):
        self._generar_y_recargar_configuracion_asterisk()
예제 #3
0
    def test_falla_key_dict_campana_asterisk(self):
        """
        este test testea el diccionario de la family de la campana y
         no encuentra key
        """
        servicio = CampanaFamily()
        dict_campana = servicio._create_dict(self.campana_entrante)

        self.assertNotIn('WAITTIME', dict_campana.keys())

        self.assertNotIn('DELAY', dict_campana.keys())
예제 #4
0
    def test_devuelve_correctamente_dict_campana_asterisk(self):
        """
        este test testea el diccionario de la family de la campana
        """
        servicio = CampanaFamily()
        dict_campana = servicio._create_dict(self.campana_entrante)

        keys_asterisk = ['QNAME', 'TYPE', 'REC', 'AMD', 'CALLAGENTACTION',
                         'RINGTIME', 'QUEUETIME', 'MAXQCALLS', 'SL', 'TC',
                         'IDJSON', 'PERMITOCCULT', 'MAXCALLS', 'FAILOVER']
        for key in keys_asterisk:
            self.assertIn(key, dict_campana.keys())
예제 #5
0
 def test_devuelve_correctamente_value_MOH_campana_entrante_asterisk(self):
     playlist = PlaylistFactory()
     self.campana_entrante.queue_campana.musiconhold = playlist
     servicio = CampanaFamily()
     dict_campana = servicio._create_dict(self.campana_entrante)
     self.assertEqual(dict_campana['MOH'], playlist.nombre)
예제 #6
0
 def __init__(self):
     self.queues_config_creator = QueuesCreator()
     self.reload_asterisk_config = AsteriskConfigReloader()
     self.asterisk_database = CampanaFamily()