class Request(object): request_schema = Schema({ "janus": StrRe(r"^\S+$"), "transaction": StrRe(r"^\S+$"), Optional("session_id"): IntVal(), Optional("handle_id"): IntVal(), Optional("apisecret"): StrVal(), DoNotCare(str): object # for all other key we don't care }) def __init__(self, transport_session, message): message = self.request_schema.validate(message) self.transport = transport_session self.message = message self.janus = message['janus'] self.transaction = message['transaction'] self.session_id = message.get('session_id', 0) self.handle_id = message.get('handle_id', 0) self.apisecret = message.get('apisecret', '')
Optional("error_restart_interval"): Default(IntVal(min=0, max=86400), default=30), Optional("poll_interval"): Default(IntVal(min=1, max=3600), default=1), AutoDel(str): object # for all other key remove }, default={}), Optional("admin_api"): Default( { Optional("json"): Default(EnumVal(['indented', 'plain', 'compact']), default='indented'), Optional("http_listen"): Default(StrRe('^\S+:\d+$'), default='0.0.0.0:8200'), AutoDel(str): object # for all other key we don't care }, default={}), Optional("posters"): Default( [{ "post_type": StrVal(min_len=1, max_len=64), "name": StrVal(min_len=0, max_len=64), DoNotCare(str): object # for all other key we don't care }], default=[]), }) http_poster_schema = Schema({ "post_type":
JANUS_P2PCALL_ERROR_USE_ECHO_TEST = 479 JANUS_P2PCALL_ERROR_NO_CALL = 481 JANUS_P2PCALL_ERROR_MISSING_SDP = 482 JANUS_P2PCALL_VERSION = 6 JANUS_P2PCALL_VERSION_STRING = '0.0.6' JANUS_P2PCALL_DESCRIPTION = 'This is a simple P2P video call plugin for Janus-cloud, ' \ 'allow two WebRTC peer communicate with each other in P2P mode' JANUS_P2PCALL_NAME = 'JANUS P2PCall plugin' JANUS_P2PCALL_AUTHOR = 'opensight.cn' JANUS_P2PCALL_PACKAGE = 'janus.plugin.p2pcall' JANUS_P2PCALL_API_BASE_PATH = '/plugins/p2pcall' username_schema = Schema({ 'username': StrRe('^\w{1,128}$'), DoNotCare(str): object # for all other key we don't care }) class P2PCallUser(object): def __init__(self, username, handle=None, incall=False, peer_name='', api_url=''): self.username = username self.incall = incall self.peer_name = peer_name self.handle = handle
JANUS_VIDEOCALL_VERSION = 6 JANUS_VIDEOCALL_VERSION_STRING = '0.0.6' JANUS_VIDEOCALL_DESCRIPTION = 'This is a a simple video call plugin for Janus-cloud, ' \ 'which allow two WebRTC peer communicate with each other through Janus server. ' \ 'Its API is kept sync with videocall of Janus-server until ' + \ JANUS_VIDEOCALL_API_SYNC_VERSION JANUS_VIDEOCALL_NAME = 'JANUS VideoCall plugin' JANUS_VIDEOCALL_AUTHOR = 'opensight.cn' JANUS_VIDEOCALL_PACKAGE = 'janus.plugin.videocall' JANUS_VIDEOCALL_API_BASE_PATH = '/plugins/videocall' INCOMMING_CALL_TIMEOUT = 10 username_schema = Schema({ 'username': StrRe('^\w{1,128}$'), DoNotCare(str): object # for all other key we don't care }) set_schema = Schema({ Optional('audio'): BoolVal(), Optional('video'): BoolVal(), Optional('bitrate'): IntVal(min=1), Optional('record'): BoolVal(), Optional('restart'): BoolVal(), Optional('filename'): StrVal(), Optional('substream'): IntVal(min=0, max=2), Optional('temporal'): IntVal(min=0, max=2), Optional('fallback'): IntVal(min=0), AutoDel(str): object # for all other key we must delete })
def includeme(config): config.add_route('sentinel_callback', '/sentinel_callback') config.add_route('backend_server_list', '/backend_servers') config.add_route('backend_server', '/backend_servers/{server_name}') @get_view(route_name='backend_server_list') def get_backend_server_list(request): backend_server_manager = request.registry.backend_server_manager server_list = backend_server_manager.get_all_server_list() return server_list server_update_schema = Schema({ 'name': StrRe('^\S{1,64}$'), 'url': StrRe('^(ws|wss)://\S+$'), 'status': IntVal(values=(JANUS_SERVER_STATUS_NORMAL, JANUS_SERVER_STATUS_ABNORMAL, JANUS_SERVER_STATUS_MAINTENANCE)), Optional("session_timeout"): IntVal(min=0, max=86400), Optional("session_num"): IntVal(min=0, max=10000), Optional("handle_num"): IntVal(min=0, max=100000), Optional("location"): StrVal(min_len=0, max_len=64), Optional("isp"): StrVal(min_len=0, max_len=64),
def includeme(config): config.add_route('sentinel_callback', '/sentinel_callback') config.add_route('backend_server_list', '/backend_servers') config.add_route('backend_server', '/backend_servers/{server_name}') @get_view(route_name='backend_server_list') def get_backend_server_list(request): backend_server_manager = request.registry.backend_server_manager server_list = backend_server_manager.get_all_server_list() return server_list server_update_schema = Schema({ 'name': StrRe('^[\w-]{1,64}$'), 'url': StrRe('^(ws|wss)://\S+$'), 'status': IntVal(values=(JANUS_SERVER_STATUS_NORMAL, JANUS_SERVER_STATUS_ABNORMAL, JANUS_SERVER_STATUS_MAINTENANCE)), Optional("session_timeout"): IntVal(min=0, max=86400), Optional("session_num"): IntVal(min=0, max=10000), Optional("handle_num"): IntVal(min=0, max=100000), Optional("location"): StrVal(min_len=0, max_len=64), Optional("isp"): StrVal(min_len=0, max_len=64),
JANUS_VIDEOCALL_DESCRIPTION = 'This is a a simple video call plugin for Janus-cloud, ' \ 'which allow two WebRTC peer communicate with each other through Janus server. ' \ 'Its API is kept sync with videocall of Janus-gateway until ' + \ JANUS_VIDEOCALL_API_SYNC_VERSION JANUS_VIDEOCALL_NAME = 'JANUS VideoCall plugin' JANUS_VIDEOCALL_AUTHOR = 'opensight.cn' JANUS_VIDEOCALL_PACKAGE = 'janus.plugin.videocall' JANUS_VIDEOCALL_API_BASE_PATH = '/plugins/videocall' INCOMMING_CALL_TIMEOUT = 10 username_schema = Schema({ 'username': StrRe('^\w{1,128}$'), DoNotCare(str): object # for all other key we don't care }) exists_schema = Schema({ 'username': StrRe('^\w{1,128}$'), DoNotCare(str): object # for all other key we don't care }) set_schema = Schema({ 'request': StrVal(), Optional('audio'): BoolVal(), Optional('video'): BoolVal(), Optional('bitrate'): IntVal(min=1), Optional('record'): BoolVal(), Optional('restart'): BoolVal(),
# -*- coding: utf-8 -*- from januscloud.common.schema import Schema, StrVal, Default, AutoDel, Optional, BoolVal, IntVal, \ StrRe, EnumVal, Or from januscloud.common.confparser import parse as parse_config from pkg_resources import Requirement, resource_filename import os config_schema = Schema({ Optional("general"): Default({ Optional("daemonize"): Default(BoolVal(), default=False), Optional("configs_folder"): Default(StrVal(), default=''), Optional("server_name"): Default(StrRe(r'^\S*$'), default=''), Optional("session_timeout"): Default(IntVal(min=0, max=86400), default=60), Optional("server_db"): Default(StrVal(), default='memory'), Optional("server_select"): Default(StrVal(), default='rr'), Optional('api_secret'): Default(StrVal(), default=''), AutoDel(str): object # for all other key we don't care }, default={}), Optional("log"): Default({ Optional('log_to_stdout'): Default(BoolVal(), default=True), Optional('log_to_file'): Default(StrVal(), default=''), Optional('debug_level'): Default(EnumVal(['DEBUG', 'INFO', 'WARN', 'ERROR', 'FATAL']), default='DEBUG'), Optional('log_file_size'): Default(IntVal(), default=104857600), Optional('log_file_rotate'): Default(IntVal(), default=10), AutoDel(str): object # for all other key we don't care }, default={}), Optional("certificates"): Default({ Optional("cert_pem"): StrVal(), Optional("cert_key"): StrVal(), Optional("cert_pwd"): StrVal(),
from pkg_resources import Requirement, resource_filename import os import logging log = logging.getLogger(__name__) config_schema = Schema({ Optional("general"): Default( { Optional("daemonize"): Default(BoolVal(), default=False), Optional("configs_folder"): Default(StrVal(), default=''), Optional("server_name"): Default(StrRe(r'^\S*$'), default=''), Optional("session_timeout"): Default(IntVal(min=0, max=86400), default=60), Optional("server_db"): Default(StrVal(), default='memory'), Optional("server_select"): Default(StrVal(), default='rr'), Optional('api_secret'): Default(StrVal(), default=''), AutoDel(str): object # for all other key we don't care }, default={}), Optional("log"): Default( {