Exemplo n.º 1
0
    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 = []
Exemplo n.º 2
0
    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