コード例 #1
0
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', '')
コード例 #2
0
ファイル: config.py プロジェクト: yin-zhang/janus-cloud
            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":
コード例 #3
0
ファイル: p2pcall.py プロジェクト: yin-zhang/janus-cloud
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
コード例 #4
0
ファイル: videocall.py プロジェクト: yin-zhang/janus-cloud
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
})
コード例 #5
0
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),
コード例 #6
0
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),
コード例 #7
0
ファイル: videocall.py プロジェクト: voicon/janus-cloud
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(),
コード例 #8
0
ファイル: config.py プロジェクト: yin-zhang/janus-cloud
# -*- 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(),
コード例 #9
0
ファイル: config.py プロジェクト: soitun/janus-cloud
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(
        {