Beispiel #1
0
def set_context_switchboard(entity):
    Session.add(
        Context(name='__switchboard_directory',
                displayname='Switchboard',
                entity=entity,
                contexttype='others',
                description=''))
Beispiel #2
0
    def list(self, line_id):
        user_line_query = (
            Session.query(UserLine.line_id, UserLine.extension_id).filter(
                UserLine.line_id == line_id).filter(
                    UserLine.extension_id != None)  # noqa
            .distinct())

        incall_query = (
            Session.query(UserLine.line_id,
                          Extension.id.label('extension_id')).join(
                              Dialaction,
                              and_(
                                  Dialaction.action == 'user',
                                  cast(Dialaction.actionarg1,
                                       Integer) == UserLine.user_id,
                                  UserLine.main_line == True))  # noqa
            .join(
                Incall,
                and_(Dialaction.category == 'incall',
                     cast(Dialaction.categoryval, Integer) == Incall.id)).join(
                         Extension,
                         and_(Incall.exten == Extension.exten,
                              Incall.context == Extension.context)).filter(
                                  UserLine.line_id == line_id))

        return [
            LineExtension(row.line_id, row.extension_id)
            for row in user_line_query.union(incall_query)
        ]
Beispiel #3
0
def set_context_outcall(context, entity):
    Session.add(
        Context(name='to-extern',
                displayname=context['display_name'],
                entity=entity,
                contexttype='outcall',
                description=''))
Beispiel #4
0
def check_line_has_users(line_id):
    query = (
        Session.query(UserLine).filter(UserLine.line_id == line_id).filter(
            UserLine.user_id != None)  # noqa
        .exists())

    return Session.query(query).scalar()
Beispiel #5
0
 def delete(self, template):
     self.validator.validate_delete(template)
     users = self.user_dao.find_all_by(func_key_template_id=template.id)
     self.template_dao.delete(template)
     for user in users:
         Session.expire(user, ['func_key_template_id'])
         self.device_updater.update_for_user(user)
     self.notifier.deleted(template)
Beispiel #6
0
def has_secondary_users(user_id, line_id):
    exists_query = (
        Session.query(UserLine).filter(UserLine.line_id == line_id).filter(
            UserLine.user_id != user_id).filter(
                UserLine.main_user == False)  # noqa
        .exists())

    return Session.query(exists_query).scalar()
Beispiel #7
0
def template_has_sccp_device(template_id):
    exists_query = (Session.query(UserFeatures).join(
        UserFeatures.main_line_rel).join(UserLine.main_line_rel).filter(
            or_(
                UserFeatures.func_key_template_id == template_id,
                UserFeatures.func_key_private_template_id == template_id,
            )).filter(LineFeatures.endpoint == "sccp").exists())

    return Session.query(exists_query).scalar()
Beispiel #8
0
def rollback():
    Session.rollback()

    sysconfd = g.get('sysconfd_publisher')
    if sysconfd:
        sysconfd.rollback()

    bus = g.get('bus_publisher')
    if bus:
        bus.rollback()
Beispiel #9
0
def associate_sccp_device(line, device):
    device_name = "SEP" + device.mac.replace(":", "").upper()

    sccpdevice = (Session.query(SCCPDevice).filter(
        SCCPDevice.device == device_name).first())

    if sccpdevice:
        sccpdevice.line = line.name
    else:
        Session.add(
            SCCPDevice(name=device_name, device=device_name, line=line.name))
    Session.flush()
Beispiel #10
0
def set_context_internal(context, entity):
    Session.add(
        Context(name='default',
                displayname=context['display_name'],
                entity=entity,
                contexttype='internal',
                description=''))

    Session.add(
        ContextNumbers(context='default',
                       type='user',
                       numberbeg=context['number_start'],
                       numberend=context['number_end']))
Beispiel #11
0
def set_resolvconf(hostname, domain, nameservers):
    row = Session.query(Resolvconf).first()
    row.hostname = hostname
    row.domain = domain
    row.search = domain
    row.description = 'Wizard Configuration'
    row.nameserver1 = nameservers[0]
    if len(nameservers) > 1:
        row.nameserver2 = nameservers[1]
        if len(nameservers) > 2:
            row.nameserver3 = nameservers[2]

    Session.add(row)
Beispiel #12
0
def set_netiface(interface, address, netmask, gateway):
    Session.add(
        Netiface(ifname=interface,
                 hwtypeid=1,
                 networktype='voip',
                 type='iface',
                 family='inet',
                 method='static',
                 address=address,
                 netmask=netmask,
                 broadcast='',
                 gateway=gateway,
                 mtu=1500,
                 options='',
                 description='Wizard Configuration'))
Beispiel #13
0
def set_context_incall(context, entity):
    Session.add(
        Context(name='from-extern',
                displayname=context['display_name'],
                entity=entity,
                contexttype='incall',
                description=''))

    if context.get('number_start') and context.get('number_end'):
        Session.add(
            ContextNumbers(context='from-extern',
                           type='incall',
                           numberbeg=context['number_start'],
                           numberend=context['number_end'],
                           didlength=context['did_length']))
Beispiel #14
0
def find_all_by_line_id(line_id):
    return (Session.query(UserLine.line_id,
                          UserLine.extension_id)
            .filter(UserLine.line_id == line_id)
            .filter(UserLine.extension_id != None)  # noqa
            .distinct()
            .all())
Beispiel #15
0
def get_associated_resource(extension_id):
    row = (Session.query(Extension.type.label('resource'),
                         Extension.typeval.label('resource_id'))
           .filter(Extension.id == extension_id)
           .first())

    return row.resource, row.resource_id
Beispiel #16
0
def find_main_endpoint_sip_by_user(user_uuid):

    query = (Session.query(SIP).join(User.main_line_rel).join(
        UserLine.main_line_rel).join(
            Line.sip_endpoint).filter(User.uuid == str(user_uuid)))

    return query.first()
Beispiel #17
0
    def _get_associator(self, extension):
        context_type = (Session.query(Context.contexttype).filter(
            Context.name == extension.context).scalar())

        if context_type not in self.associators:
            raise NotImplementedError(
                "Cannot associate extension with context type '{}'".format(
                    context_type))

        return self.associators[context_type]
def find_all_dst_user(user_id):

    query = (Session.query(FuncKeyTemplate).join(
        FuncKeyMapping, FuncKeyTemplate.id == FuncKeyMapping.template_id).join(
            FuncKey, FuncKeyMapping.func_key_id == FuncKey.id).join(
                FuncKeyDestUser,
                FuncKey.id == FuncKeyDestUser.func_key_id).filter(
                    FuncKeyDestUser.user_id == user_id))

    return query.all()
Beispiel #19
0
 def update_ring_seconds(self, entry):
     ring_seconds = entry.extract_field('incall', 'ring_seconds')
     if ring_seconds:
         user = entry.get_resource('user')
         (Session.query(Dialaction).filter_by(
             event='answer',
             category='incall',
             action='user',
             actionarg1=str(user.id)).update(
                 {'actionarg2': str(ring_seconds)}))
Beispiel #20
0
def set_language(language):

    row = Session.query(StaticSIP).filter(
        StaticSIP.var_name == 'language').first()
    row.var_val = language
    Session.add(row)

    row = Session.query(StaticIAX).filter(
        StaticIAX.var_name == 'language').first()
    row.var_val = language
    Session.add(row)

    row = (Session.query(SCCPGeneralSettings).filter(
        SCCPGeneralSettings.option_name == 'language').first())
    row.option_value = language
    Session.add(row)
Beispiel #21
0
def sip_lines_for_device(device_id):
    query = (Session.query(LineFeatures, UserSIP, Extension).join(
        LineFeatures.endpoint_sip).join(LineFeatures.user_lines).join(
            UserLine.main_user_rel).join(LineFeatures.line_extensions).join(
                LineExtension.main_extension_rel).filter(
                    LineFeatures.device == device_id).options(
                        Load(LineFeatures).load_only("id", "configregistrar"),
                        Load(UserSIP).load_only("id", "callerid", "name",
                                                "secret"),
                        Load(Extension).load_only("id", "exten"),
                    ))

    return query.all()
Beispiel #22
0
def commit_database():
    try:
        Session.commit()
    except SQLAlchemyError:
        Session.rollback()
        raise
    finally:
        Session.remove()
Beispiel #23
0
def get_xivo_configured():
    return Session.query(General).first()
Beispiel #24
0
def set_xivo_configured():
    row = Session.query(General).first()
    row.configured = True
    Session.add(row)
Beispiel #25
0
def set_timezone(timezone):
    row = Session.query(General).first()
    row.timezone = timezone
    Session.add(row)
Beispiel #26
0
def entity_id_exists(entity_id):
    query = (Session.query(Entity).filter_by(id=entity_id).exists())

    return Session.query(query).scalar()
Beispiel #27
0
def set_default_entity(display_name, name):
    row = Entity(displayname=display_name,
                 name=name,
                 description='Wizard Entity')
    Session.add(row)
Beispiel #28
0
def set_autoprov_name(autoprov_username):
    Session.add(
        StaticSIP(category='general',
                  filename='sip.conf',
                  var_name='autocreate_prefix',
                  var_val=autoprov_username))
Beispiel #29
0
def set_admin_password(password):
    row = Session.query(User).filter(User.login == 'root').first()
    row.passwd = password
    Session.add(row)
Beispiel #30
0
def include_outcall_context_in_internal_context():
    Session.add(
        ContextInclude(context='default', include='to-extern', priority=0))
Beispiel #31
0
 def rollback(self):
     Session.rollback()
     sysconfd.rollback()
     bus.rollback()
     auth_client.rollback()