def test_does_secretary_filter_boss_with_2_bosses(self): first_boss_id = 1 second_boss_id = 2 secretary_id = 20 filter_id = self._insert_call_filter('testfilter') callfilter_dao.add_user_to_filter(secretary_id, filter_id, 'secretary') callfilter_dao.add_user_to_filter(first_boss_id, filter_id, 'boss') callfilter_dao.add_user_to_filter(second_boss_id, filter_id, 'boss') first_result = callfilter_dao.does_secretary_filter_boss(first_boss_id, secretary_id) second_result = callfilter_dao.does_secretary_filter_boss(second_boss_id, secretary_id) self.assertTrue(first_result) self.assertTrue(second_result)
def test_does_secretary_filter_boss_with_no_filters(self): boss_id = 1 secretary_id = 2 result = callfilter_dao.does_secretary_filter_boss(boss_id, secretary_id) self.assertFalse(result)
def test_does_secretary_filter_boss_with_2_bosses(self): first_boss_id = 1 second_boss_id = 2 secretary_id = 20 call_filter = self.add_call_filter() self._add_user_to_filter(secretary_id, call_filter.id, 'secretary') self._add_user_to_filter(first_boss_id, call_filter.id, 'boss') self._add_user_to_filter(second_boss_id, call_filter.id, 'boss') first_result = callfilter_dao.does_secretary_filter_boss( first_boss_id, secretary_id) second_result = callfilter_dao.does_secretary_filter_boss( second_boss_id, secretary_id) self.assertTrue(first_result) self.assertTrue(second_result)
def test_does_secretary_filter_boss_with_no_boss_or_secretary(self): boss_id = 1 secretary_id = 2 self._insert_call_filter('test1') result = callfilter_dao.does_secretary_filter_boss(boss_id, secretary_id) self.assertFalse(result)
def _call_filtering(self): caller = self._caller called = self._user if called.bsfilter != 'boss': return False if caller is not None and caller.bsfilter == 'secretary': secretary_can_call_boss = callfilter_dao.does_secretary_filter_boss(called.id, caller.id) if secretary_can_call_boss: return False try: boss_callfiltermember, callfilter = callfilter_dao.get_by_boss_id(called.id) except TypeError: return False callfilter_active = callfilter_dao.is_activated_by_callfilter_id(boss_callfiltermember.callfilterid) if callfilter_active == 0: return False in_zone = self._callfilter_check_in_zone(callfilter.callfrom) if not in_zone is True: return False secretaries = callfilter_dao.get_secretaries_by_callfiltermember_id(boss_callfiltermember.callfilterid) boss_line = self._line boss_interface = '%s/%s' % (boss_line.protocol.upper(), boss_line.name) if callfilter.bosssecretary in ("bossfirst-simult", "bossfirst-serial", "all"): self._agi.set_variable('XIVO_CALLFILTER_BOSS_INTERFACE', boss_interface) self._set_callfilter_ringseconds('BOSS_TIMEOUT', boss_callfiltermember.ringseconds) index = 0 ifaces = [] for secretary in secretaries: secretary_callfiltermember, ringseconds = secretary if secretary_callfiltermember.active: iface = user_line_dao.get_line_identity_by_user_id(secretary_callfiltermember.typeval) ifaces.append(iface) if callfilter.bosssecretary in ("bossfirst-serial", "secretary-serial"): self._agi.set_variable('XIVO_CALLFILTER_SECRETARY%d_INTERFACE' % index, iface) self._set_callfilter_ringseconds('SECRETARY%d_TIMEOUT' % index, ringseconds) index += 1 if callfilter.bosssecretary in ("bossfirst-simult", "secretary-simult", "all"): self._agi.set_variable('XIVO_CALLFILTER_INTERFACE', '&'.join(ifaces)) self._set_callfilter_ringseconds('TIMEOUT', callfilter.ringseconds) DialAction(self._agi, self._cursor, "noanswer", "callfilter", callfilter.id).set_variables() CallerID(self._agi, self._cursor, "callfilter", callfilter.id).rewrite(force_rewrite=True) self._agi.set_variable('XIVO_CALLFILTER', '1') self._agi.set_variable('XIVO_CALLFILTER_MODE', callfilter.bosssecretary) return True
def test_does_secretary_filter_boss_with_no_boss(self): boss_id = 1 secretary_id = 2 filter_id = self._insert_call_filter('test1') callfilter_dao.add_user_to_filter(secretary_id, filter_id, 'secretary') result = callfilter_dao.does_secretary_filter_boss(boss_id, secretary_id) self.assertFalse(result)
def test_does_secretary_filter_boss_with_boss_and_secretary_in_same_filter(self): boss_id = 1 secretary_id = 2 filter_id = self._insert_call_filter('testfilter') callfilter_dao.add_user_to_filter(boss_id, filter_id, 'boss') callfilter_dao.add_user_to_filter(secretary_id, filter_id, 'secretary') result = callfilter_dao.does_secretary_filter_boss(boss_id, secretary_id) self.assertTrue(result)
def test_does_secretary_filter_boss_with_no_boss(self): boss_id = 1 secretary_id = 2 call_filter = self.add_call_filter() self._add_user_to_filter(secretary_id, call_filter.id, 'secretary') result = callfilter_dao.does_secretary_filter_boss( boss_id, secretary_id) self.assertFalse(result)
def test_does_secretary_filter_boss_with_boss_and_secretary_in_different_filters(self): boss_id = 1 secretary_id = 2 boss_filter_id = self._insert_call_filter('bossfilter') secretatry_filter_id = self._insert_call_filter('secretaryfilter') callfilter_dao.add_user_to_filter(boss_id, boss_filter_id, 'boss') callfilter_dao.add_user_to_filter(secretary_id, secretatry_filter_id, 'secretary') result = callfilter_dao.does_secretary_filter_boss(boss_id, secretary_id) self.assertFalse(result)
def test_does_secretary_filter_boss_with_boss_and_secretary_in_same_filter( self): boss_id = 1 secretary_id = 2 call_filter = self.add_call_filter() self._add_user_to_filter(boss_id, call_filter.id, 'boss') self._add_user_to_filter(secretary_id, call_filter.id, 'secretary') result = callfilter_dao.does_secretary_filter_boss( boss_id, secretary_id) self.assertTrue(result)