def __init__(self, server_name, server_ip, ws_port, admin_ws_port=0, pingpong_interval=5, statistic_interval=10, request_timeout=10, hwm_threshold=0, admin_secret=''): self.server_name = server_name if self.server_name is None or self.server_name == '': self.server_name = str(uuid.uuid1()) # for empty, use uuid as server name self.server_local_ip = server_ip self.server_public_ip = server_ip if server_ip == '127.0.0.1': self.server_public_ip = get_host_ip() self.ws_port = ws_port self.session_num = -1 # unknown initially self.handle_num = -1 # unknown initially self.start_time = 0 self.status = JANUS_SERVER_STATUS_ABNORMAL self._in_maintenance = False self._admin_ws_port = admin_ws_port self._hwm_threshold = hwm_threshold self._admin_secret = admin_secret self._ws_client = None self._admin_ws_client = None self._transactions = {} self._has_destroy = False self._poll_greenlet = gevent.spawn(self._poll_routine) self._poll_interval = pingpong_interval self._statistic_greenlet = None if self._admin_ws_port: self._statistic_greenlet = gevent.spawn(self._statistic_routine) self._statistic_interval = statistic_interval self._request_timeout = request_timeout self._state_change_cbs = [] self._listeners = []
def get_api_base_url(proxy_config): server_addr = None server_name = proxy_config['general']['server_name'].strip() if len(server_name) > 0 and server_name != '127.0.0.1' and 'localhost' not in server_name: server_addr = server_name # try: # ip = socket.gethostbyname(server_name) # if ip and ip not in {'127.0.0.1', '0.0.0.0'}: # server_addr = server_name # except socket.error as e: # # server_name is not a valid host domain name # pass listen_addr, sep, port = proxy_config['admin_api']['http_listen'].strip().partition(':') if server_addr is None and listen_addr != '0.0.0.0': server_addr = listen_addr.strip() if server_addr is None: server_addr = get_host_ip() return 'http://' + server_addr + ':' + str(port) + JANUS_P2PCALL_API_BASE_PATH