def _check_raw_config_validity(raw_config): # XXX this is bit repetitive... _check_common_raw_config_validity(raw_config) if raw_config.get(u'ntp_enabled'): if u'ntp_ip' not in raw_config: raise RawConfigError('missing ntp_ip parameter') if raw_config.get(u'vlan_enabled'): if u'vlan_id' not in raw_config: raise RawConfigError('missing vlan_id parameter') if raw_config.get(u'syslog_enabled'): if u'syslog_ip' not in raw_config: raise RawConfigError('missing syslog_ip parameter') if u'sip_lines' in raw_config: for line_no, line in six.iteritems(raw_config[u'sip_lines']): if u'proxy_ip' not in line and u'sip_proxy_ip' not in raw_config: raise RawConfigError('missing proxy_ip parameter for line %s' % line_no) if u'protocol' in raw_config and raw_config[u'protocol'] == 'SIP': for param in [u'username', u'password', u'display_name']: if param not in line: raise RawConfigError('missing %s parameter for line %s' % (param, line_no)) if u'sccp_call_managers' in raw_config: for priority, call_manager in six.iteritems(raw_config[u'sccp_call_managers']): if u'ip' not in call_manager: raise RawConfigError('missing ip parameter for call manager %s' % priority) if u'funckeys' in raw_config: funckeys = raw_config[u'funckeys'] for funckey_no, funckey in six.iteritems(funckeys): try: type_ = funckey[u'type'] except KeyError: raise RawConfigError('missing type parameter for funckey %s' % funckey_no) else: if (type_ == u'speeddial' or type_ == u'blf') and u'value' not in funckey: raise RawConfigError('missing value parameter for funckey %s' % funckey_no)
def _check_config(self, raw_config): if u'http_port' not in raw_config: raise RawConfigError('only support configuration via HTTP')
def _check_common_raw_config_validity(raw_config): for param in [u'ip', u'http_port', u'tftp_port']: if param not in raw_config: raise RawConfigError('missing %s parameter' % param)
def _check_config(self, raw_config): if u'http_port' not in raw_config: raise RawConfigError('only support configuration via HTTP') if not raw_config[u'sip_lines']: # the phone won't be configured properly if a sip line is not defined raise RawConfigError('need at least one sip lines defined')