zoukankan      html  css  js  c++  java
  • coTurn 运行在Windows平台的方法及服务与客户端运行交互流程和原理

    coTurn是一个开源的STUN和TURN及ICE服务项目,只是不支持Windows。
    为了在window平台上使用coTurn源码,需要在windows平台下安装Cygwin环境,并编译coTurn源码,使其可以运行在windows平台上。

    步骤:

    1、安装Cygwin,地址:https://cygwin.com/install.html,按照其说明进行安装。参照说明地址:https://cygwin.com/cygwin-ug-net/cygwin-ug-net.html

       安装过程中选择的镜像源地址,为了更加快速,使用http://mirrors.163.com/cygwin/

    2、下载coTurn源码。目前Release最新版本的地址为:https://codeload.github.com/coturn/coturn/zip/4.5.0.4

    3、编译:

    XII. MS Windows and Cygwin support

    Currently, this project cannot be compiled under MS Windows.

    As the project is using fairly straightforward *NIX API, it is supported
    under Cygwin environment in MS Windows.

    One note for Cygwin users: we recommended libevent2 installation from the cygwin
    "ports" site: http://sourceware.org/cygwinports/ . You will have to install
    libevent2 runtime and libevent-devel packages. "Manual" libevent2 compilation
    and installation in Cygwin is not recommended and does not garantee a good
    outcome.

     编译过程简单记录:

    ①生成Makefile文件

    CC=gcc ./configure
     1 Dev@Dev-PC /bin/coturn-4.5.0.4
     2 $ CC=gcc ./configure
     3 install 是 /usr/bin/install
     4 pkill 是 /usr/bin/pkill
     5 sqlite3 是 /usr/bin/sqlite3
     6 Use TMP dir /var/tmp
     7 Compiler: gcc
     8 Library option -lsocket cannot be used
     9 CYGWIN ?
    10 Library option -lwldap64 cannot be used
    11 Library option -lnsl cannot be used
    12 Sockets code is fine: no sin_len field present
    13 Ignore IP_RECVERR
    14 Crypto SSL lib found.
    15 SSL lib found.
    16 Libevent2 development found.
    17 Libevent2 runtime found.
    18 Libevent2 runtime 'extra' found.
    19 Libevent2 openssl found.
    20 Libevent2 pthreads found.
    21 SQLite library found.
    22 SQLite development found.
    23 PostgreSQL found.
    24 MySQL found.
    25 
    26 MONGODB DEVELOPMENT LIBRARIES (libmongoc-1.0 and libbson-1.0) AND/OR HEADER (mongoc.h)
    27         ARE NOT INSTALLED PROPERLY ON THIS SYSTEM.
    28         THAT'S OK BUT THE TURN SERVER IS BUILDING WITHOUT MONGODB SUPPORT.
    29 
    30 
    31 HIREDIS DEVELOPMENT LIBRARY (libhiredis.*) AND/OR HEADERS (hiredis/*.h)
    32         ARE NOT INSTALLED PROPERLY ON THIS SYSTEM.
    33         THAT'S OK BUT THE TURN SERVER IS BUILDING WITHOUT REDIS SUPPORT.
    34 
    35 PREFIX=/usr/local LOCALSTATEDIR=/usr/local/var OSLIBS= -L/usr/local/lib/ -L/usr/local/lib/ -lrt -lwldap32 -lintl -lresolv -lcrypto -lssl -levent_core -levent_extra -levent_openssl -levent_pthreads -lsqlite3  -Wl,-rpath,/usr/local/lib/ -Wl,-rpath,/usr/local/lib/ -Wl,-rpath,/usr/lib/postgresql -Wl,-rpath,/usr/lib/mysql -Wl,-rpath,/usr/local/lib DBLIBS= -lsqlite3  -L/usr/local/lib/ -L/usr/local/lib/ -lrt -lwldap32 -lintl -lresolv -lcrypto -lssl -levent_core -levent_extra -levent_openssl -levent_pthreads -lsqlite3  -L/usr/lib/postgresql -lpq  -L/usr/local/lib/ -L/usr/local/lib/ -lrt -lwldap32 -lintl -lresolv -lcrypto -lssl -levent_core -levent_extra -levent_openssl -levent_pthreads -lsqlite3  -L/usr/lib/mysql -lmysqlclient OSCFLAGS=-g  -Wall -Wno-deprecated-declarations -Wextra -Wformat-security -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Wcast-qual -I/usr/local/include -I/usr/local/include/ -I/usr/local/include  -DTURN_HAS_DAEMON       -DINSTALL_PREFIX=/usr/local -DTURNDB=/usr/local/var/db/turndb DBCFLAGS= -I/usr/local/pgsql/include -I/usr/local/include/pgsql/ -I/usr/local/include/postgres/ -I/usr/local/postgres/include/ -I/usr/local/include/postgresql/ -I/usr/local/postgresql/include/ -I/usr/local/pgsql/include -I/usr/local/include/pgsql/ -I/usr/local/include/postgres/ -I/usr/local/postgres/include/ -I/usr/local/include/postgresql/ -I/usr/local/postgresql/include/ -I/usr/pgsql/include -I/usr/include/pgsql/ -I/usr/include/postgres/ -I/usr/postgres/include/ -I/usr/include/postgresql/ -I/usr/postgresql/include/ -I/usr/local/mysql/include -I/usr/local/include/mysql/ -I/usr/local/mysql/include -I/usr/local/include/mysql/ -I/usr/mysql/include -I/usr/include/mysql/
    36 Makefile created: success.
    View Code

    ②编译make

    Dev@Dev-PC /bin/coturn-4.5.0.4
    $ make
    mkdir -p build/obj
    gcc  -g  -Wall -Wno-deprecated-declarations -Wextra -Wformat-security -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Wcast-qual -I/usr/local/include -I/usr/local/include/ -I/usr/local/include  -DTURN_HAS_DAEMON       -DINSTALL_PREFIX=/usr/local -DTURNDB=/usr/local/var/db/turndb -Isrc -Isrc/apps/common -Isrc/server -Isrc/client -Isrc/client++ -I/usr/local/include/ -I/usr/local/include/  -c src/client/ns_turn_ioaddr.c -o build/obj/ns_turn_ioaddr.o
    mkdir -p build/obj
    gcc  -g  -Wall -Wno-deprecated-declarations -Wextra -Wformat-security -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Wcast-qual -I/usr/local/include -I/usr/local/include/ -I/usr/local/include  -DTURN_HAS_DAEMON       -DINSTALL_PREFIX=/usr/local -DTURNDB=/usr/local/var/db/turndb -Isrc -Isrc/apps/common -Isrc/server -Isrc/client -Isrc/client++ -I/usr/local/include/ -I/usr/local/include/  -c src/client/ns_turn_msg_addr.c -o build/obj/ns_turn_msg_addr.o
    mkdir -p build/obj
    gcc  -g  -Wall -Wno-deprecated-declarations -Wextra -Wformat-security -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Wcast-qual -I/usr/local/include -I/usr/local/include/ -I/usr/local/include  -DTURN_HAS_DAEMON       -DINSTALL_PREFIX=/usr/local -DTURNDB=/usr/local/var/db/turndb -Isrc -Isrc/apps/common -Isrc/server -Isrc/client -Isrc/client++ -I/usr/local/include/ -I/usr/local/include/  -c src/client/ns_turn_msg.c -o build/obj/ns_turn_msg.o
    mkdir -p lib
    ar -r lib/libturnclient.a build/obj/ns_turn_ioaddr.o build/obj/ns_turn_msg_addr.o build/obj/ns_turn_msg.o
    ar: 正在创建 lib/libturnclient.a
    pwd
    /bin/coturn-4.5.0.4
    mkdir -p bin
    gcc  -g  -Wall -Wno-deprecated-declarations -Wextra -Wformat-security -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Wcast-qual -I/usr/local/include -I/usr/local/include/ -I/usr/local/include  -DTURN_HAS_DAEMON       -DINSTALL_PREFIX=/usr/local -DTURNDB=/usr/local/var/db/turndb -Isrc -Isrc/apps/common -Isrc/server -Isrc/client -Isrc/client++ -I/usr/local/include/ -I/usr/local/include/  src/apps/stunclient/stunclient.c src/apps/common/apputils.c src/apps/common/ns_turn_utils.c src/apps/common/stun_buffer.c -o bin/turnutils_stunclient -Llib -lturnclient -Llib -L/usr/local/lib/ -L/usr/local/lib/ -lrt -lwldap32 -lintl -lresolv -lcrypto -lssl -levent_core -levent_extra -levent_openssl -levent_pthreads -lsqlite3  -Wl,-rpath,/usr/local/lib/ -Wl,-rpath,/usr/local/lib/ -Wl,-rpath,/usr/lib/postgresql -Wl,-rpath,/usr/lib/mysql -Wl,-rpath,/usr/local/lib
    pwd
    /bin/coturn-4.5.0.4
    mkdir -p bin
    gcc  -g  -Wall -Wno-deprecated-declarations -Wextra -Wformat-security -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Wcast-qual -I/usr/local/include -I/usr/local/include/ -I/usr/local/include  -DTURN_HAS_DAEMON       -DINSTALL_PREFIX=/usr/local -DTURNDB=/usr/local/var/db/turndb -Isrc -Isrc/apps/common -Isrc/server -Isrc/client -Isrc/client++ -I/usr/local/include/ -I/usr/local/include/  src/apps/rfc5769/rfc5769check.c src/apps/common/apputils.c src/apps/common/ns_turn_utils.c src/apps/common/stun_buffer.c -o bin/turnutils_rfc5769check -Llib -lturnclient -Llib -L/usr/local/lib/ -L/usr/local/lib/ -lrt -lwldap32 -lintl -lresolv -lcrypto -lssl -levent_core -levent_extra -levent_openssl -levent_pthreads -lsqlite3  -Wl,-rpath,/usr/local/lib/ -Wl,-rpath,/usr/local/lib/ -Wl,-rpath,/usr/lib/postgresql -Wl,-rpath,/usr/lib/mysql -Wl,-rpath,/usr/local/lib
    mkdir -p bin
    gcc  -g  -Wall -Wno-deprecated-declarations -Wextra -Wformat-security -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Wcast-qual -I/usr/local/include -I/usr/local/include/ -I/usr/local/include  -DTURN_HAS_DAEMON       -DINSTALL_PREFIX=/usr/local -DTURNDB=/usr/local/var/db/turndb -Isrc -Isrc/apps/common -Isrc/server -Isrc/client -Isrc/client++ -I/usr/local/include/ -I/usr/local/include/  src/apps/uclient/uclient.c src/apps/uclient/startuclient.c src/apps/uclient/mainuclient.c src/apps/common/apputils.c src/apps/common/ns_turn_utils.c src/apps/common/stun_buffer.c -o bin/turnutils_uclient -Llib -lturnclient -Llib -L/usr/local/lib/ -L/usr/local/lib/ -lrt -lwldap32 -lintl -lresolv -lcrypto -lssl -levent_core -levent_extra -levent_openssl -levent_pthreads -lsqlite3  -Wl,-rpath,/usr/local/lib/ -Wl,-rpath,/usr/local/lib/ -Wl,-rpath,/usr/lib/postgresql -Wl,-rpath,/usr/lib/mysql -Wl,-rpath,/usr/local/lib
    mkdir -p bin
    rm -rf bin/turnadmin
    gcc  -g  -Wall -Wno-deprecated-declarations -Wextra -Wformat-security -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Wcast-qual -I/usr/local/include -I/usr/local/include/ -I/usr/local/include  -DTURN_HAS_DAEMON       -DINSTALL_PREFIX=/usr/local -DTURNDB=/usr/local/var/db/turndb -Isrc -Isrc/apps/common -Isrc/server -Isrc/client -Isrc/client++ -I/usr/local/include/ -I/usr/local/include/  -I/usr/local/pgsql/include -I/usr/local/include/pgsql/ -I/usr/local/include/postgres/ -I/usr/local/postgres/include/ -I/usr/local/include/postgresql/ -I/usr/local/postgresql/include/ -I/usr/local/pgsql/include -I/usr/local/include/pgsql/ -I/usr/local/include/postgres/ -I/usr/local/postgres/include/ -I/usr/local/include/postgresql/ -I/usr/local/postgresql/include/ -I/usr/pgsql/include -I/usr/include/pgsql/ -I/usr/include/postgres/ -I/usr/postgres/include/ -I/usr/include/postgresql/ -I/usr/postgresql/include/ -I/usr/local/mysql/include -I/usr/local/include/mysql/ -I/usr/local/mysql/include -I/usr/local/include/mysql/ -I/usr/mysql/include -I/usr/include/mysql/    -DTURN_NO_MONGO -DTURN_NO_HIREDIS src/apps/relay/ns_ioalib_engine_impl.c src/apps/relay/turn_ports.c src/apps/relay/http_server.c -Ilib src/apps/relay/mainrelay.c src/apps/relay/netengine.c src/apps/relay/libtelnet.c src/apps/relay/turn_admin_server.c src/apps/relay/userdb.c src/apps/relay/tls_listener.c src/apps/relay/dtls_listener.c src/apps/common/hiredis_libevent2.c src/apps/relay/dbdrivers/dbdriver.c src/apps/relay/dbdrivers/dbd_sqlite.c src/apps/relay/dbdrivers/dbd_pgsql.c src/apps/relay/dbdrivers/dbd_mysql.c src/apps/relay/dbdrivers/dbd_mongo.c src/apps/relay/dbdrivers/dbd_redis.c src/apps/common/apputils.c src/apps/common/ns_turn_utils.c src/apps/common/stun_buffer.c src/client/ns_turn_ioaddr.c src/client/ns_turn_msg_addr.c src/client/ns_turn_msg.c  src/server/ns_turn_allocation.c src/server/ns_turn_maps_rtcp.c src/server/ns_turn_maps.c src/server/ns_turn_server.c -o bin/turnserver -lsqlite3  -L/usr/local/lib/ -L/usr/local/lib/ -lrt -lwldap32 -lintl -lresolv -lcrypto -lssl -levent_core -levent_extra -levent_openssl -levent_pthreads -lsqlite3  -L/usr/lib/postgresql -lpq  -L/usr/local/lib/ -L/usr/local/lib/ -lrt -lwldap32 -lintl -lresolv -lcrypto -lssl -levent_core -levent_extra -levent_openssl -levent_pthreads -lsqlite3  -L/usr/lib/mysql -lmysqlclient -L/usr/local/lib/ -L/usr/local/lib/ -lrt -lwldap32 -lintl -lresolv -lcrypto -lssl -levent_core -levent_extra -levent_openssl -levent_pthreads -lsqlite3  -Wl,-rpath,/usr/local/lib/ -Wl,-rpath,/usr/local/lib/ -Wl,-rpath,/usr/lib/postgresql -Wl,-rpath,/usr/lib/mysql -Wl,-rpath,/usr/local/lib
    cd bin; ln -s turnserver turnadmin
    mkdir -p bin
    gcc  -g  -Wall -Wno-deprecated-declarations -Wextra -Wformat-security -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpointer-arith -Wcast-qual -I/usr/local/include -I/usr/local/include/ -I/usr/local/include  -DTURN_HAS_DAEMON       -DINSTALL_PREFIX=/usr/local -DTURNDB=/usr/local/var/db/turndb -Isrc -Isrc/apps/common -Isrc/server -Isrc/client -Isrc/client++ -I/usr/local/include/ -I/usr/local/include/  src/apps/peer/mainudpserver.c src/apps/peer/udpserver.c src/apps/common/apputils.c src/apps/common/ns_turn_utils.c src/apps/common/stun_buffer.c -o bin/turnutils_peer -Llib -lturnclient -Llib -L/usr/local/lib/ -L/usr/local/lib/ -lrt -lwldap32 -lintl -lresolv -lcrypto -lssl -levent_core -levent_extra -levent_openssl -levent_pthreads -lsqlite3  -Wl,-rpath,/usr/local/lib/ -Wl,-rpath,/usr/local/lib/ -Wl,-rpath,/usr/lib/postgresql -Wl,-rpath,/usr/lib/mysql -Wl,-rpath,/usr/local/lib
    rm -rf include
    mkdir -p include/turn/client
    cp -pf src/client/*.h include/turn/client/
    cp -pf src/client++/*.h include/turn/client/
    cp -pf src/ns_turn_defs.h include/turn/
    install -d sqlite
    rm -rf sqlite/turndb
    sqlite3 sqlite/turndb < turndb/schema.sql
    View Code

     ③make install

     1 Dev@Dev-PC /bin/coturn-4.5.0.4
     2 $ make install
     3 install -d /usr/local
     4 install -d /usr/local/bin
     5 install -d /usr/local/var/db
     6 install -d /usr/local/man/man1
     7 install -d /usr/local/etc
     8 install -d /usr/local/lib
     9 install -d /usr/local/share/examples/turnserver
    10 install -d /usr/local/share/doc/turnserver
    11 install -d /usr/local/share/turnserver
    12 install -d /usr/local/include/turn
    13 install bin/turnserver /usr/local/bin
    14 install bin/turnadmin /usr/local/bin
    15 install bin/turnutils_uclient /usr/local/bin
    16 install bin/turnutils_peer /usr/local/bin
    17 install bin/turnutils_stunclient /usr/local/bin
    18 install man/man1/turnserver.1 /usr/local/man/man1/
    19 install man/man1/turnadmin.1 /usr/local/man/man1/
    20 install man/man1/turnutils.1 /usr/local/man/man1/
    21 install man/man1/turnutils_uclient.1 /usr/local/man/man1/
    22 install man/man1/turnutils_stunclient.1 /usr/local/man/man1/
    23 install man/man1/turnutils_peer.1 /usr/local/man/man1/
    24 install man/man1/coturn.1 /usr/local/man/man1/
    25 install lib/libturnclient.a /usr/local/lib
    26 install LICENSE /usr/local/share/doc/turnserver
    27 install README.turnserver /usr/local/share/doc/turnserver
    28 install README.turnadmin /usr/local/share/doc/turnserver
    29 install README.turnutils /usr/local/share/doc/turnserver
    30 install INSTALL /usr/local/share/doc/turnserver
    31 install postinstall.txt /usr/local/share/doc/turnserver
    32 install turndb/schema.sql /usr/local/share/doc/turnserver
    33 install turndb/schema.sql /usr/local/share/turnserver
    34 install turndb/schema.mongo.sh /usr/local/share/doc/turnserver
    35 install turndb/schema.mongo.sh /usr/local/share/turnserver
    36 install turndb/testredisdbsetup.sh /usr/local/share/turnserver
    37 install turndb/testmongosetup.sh /usr/local/share/turnserver
    38 install turndb/testsqldbsetup.sql /usr/local/share/turnserver
    39 install turndb/schema.userdb.redis /usr/local/share/doc/turnserver
    40 install turndb/schema.userdb.redis /usr/local/share/turnserver
    41 install turndb/schema.stats.redis /usr/local/share/doc/turnserver
    42 install turndb/schema.stats.redis /usr/local/share/turnserver
    43 if [ -f sqlite/turndb ] ; then install sqlite/turndb /usr/local/var/db/turndb; fi
    44 install examples/etc/turnserver.conf /usr/local/etc/turnserver.conf.default
    45 cp -rpf examples/etc /usr/local/share/examples/turnserver
    46 cp -rpf examples/scripts /usr/local/share/examples/turnserver
    47 rm -rf /usr/local/share/examples/turnserver/scripts/rfc5769.sh
    48 cp -rpf include/turn/client /usr/local/include/turn
    49 install include/turn/ns_turn_defs.h /usr/local/include/turn
    50 cat /usr/local/share/doc/turnserver/postinstall.txt
    51 ==================================================================
    52 
    53 1) If you system supports automatic start-up system daemon services,
    54 the, to enable the turnserver as an automatically started system
    55 service, you have to:
    56 
    57         a) Create and edit /etc/turnserver.conf or
    58         /usr/local/etc/turnserver.conf .
    59         Use /usr/local/etc/turnserver.conf.default as an example.
    60 
    61         b) For user accounts settings: set up SQLite or PostgreSQL or
    62         MySQL or MongoDB or Redis database for user accounts.
    63         Use /usr/local/share/turnserver/schema.sql as SQL database schema,
    64         or use /usr/local/share/turnserver/schema.userdb.redis as Redis
    65         database schema description and/or
    66         /usr/local/share/turnserver/schema.stats.redis
    67         as Redis status & statistics database schema description.
    68 
    69         If you are using SQLite, the default database location is in
    70         /var/db/turndb or in /usr/local/var/db/turndb or in /var/lib/turn/turndb.
    71 
    72         c) add whatever is necessary to enable start-up daemon for the
    73         /usr/local/bin/turnserver.
    74 
    75 2) If you do not want the turnserver to be a system service,
    76    then you can start/stop it "manually", using the "turnserver"
    77    executable with appropriate options (see the documentation).
    78 
    79 3) To create database schema, use schema in file
    80 /usr/local/share/turnserver/schema.sql.
    81 
    82 4) For additional information, run:
    83 
    84    $ man turnserver
    85    $ man turnadmin
    86    $ man turnutils
    87 
    88 ==================================================================
    View Code

     下载tar.gz包的编译方法:

    1 $ tar vfzx coturn-4.5.0.4.tar.gz
    2 $ cd coturn-4.5.0.4/
    3 
    4 $ ./configure
    5 
    6 Dev@Dev-PC /home/coturn-4.5.0.4
    7 $ make
    8 
    9 $ make install

     4、配置

     在bin目录下生成六个可执行文件

    turnadmin  turnutils_peer.exe  turnutils_stunclient.exe  turnserver.exe  turnutils_rfc5769check.exe  turnutils_uclient.exe

    turnserver.exe 就是我们需要的服务器. 

    turnadmin 用来管理账户. 

    turnutils_stunclient.exe 用于测试stun服务

    turnutils_uclient.exe 用于测试turn服务. 模拟多个UDP,TCP,TLS or DTLS 类型的客户端

    example 目录主要是示范如何配置和使用turn. 包含一些测试用例. 

    example/etc 下是pem证书和conf配置文件

    example/var/db 下是sqlite的db库. 用于示范数据库的格式.

    coturn 支持三种配置. 命令行, conf文件和数据库.

    数据库支持sqlite, mysql, postgresql, MongoDB, redis.目前测试的Cygwin环境下编译的coTurn不支持MongoDB和redis,因为暂时用不到,所以也就没有查找如何才能编译支持到上述数据库

    更具体的说明可以看源码目录下的README.turnserver README.turnadmin README.turnutils

    examplesscripts 下一些测试用例: 

    loadbalance 示范如何进行负载均衡.  设置一个master turn server 然后配置若干个slave turn server. 

    longtermsecure 示范如何使用long-term 验证

    longtermsecuredb 与 longtermsecure 类似, 不过是从数据库配置

    shorttermsecure 示范如何使用short-term验证. 

    restapi 示范了web方面的使用. 

    stun 定义了两种验证方式. 

    Long-Term Credential
    Short-Term Credential

    具体可以参考stun标准 http://tools.ietf.org/html/rfc5389#section-15.4

    若用于WebRTC,必须使用long-term

    简单配置:

    turnserver -o -a -f -v --mobility -m 10 --max-bps=100000 --min-port=32355 --max-port=65535 --user=ling:ling1234 --user=ling2:ling1234 -r demo

    -m 10 表示启动十个relay线程. 

    当TURN Server用于WebRTC时,必须使用long-term credential mechanism,  即指定 -a 或者 --lt-cred-mech

    --max-bps=100000 限制最大速度为100KB/s. 

    添加了两个用户ling 和ling2. 

    可以直接使用turnutils_uclient -u ling -w ling1234 来测试. turnutils_uclient 有很多参数可以配置的. 

    1
    2
    3
    4
    5
    webrtc::PeerConnectionInterface::IceServer turnServer;
    turnServer.uri = "turn:ip";
    turnServer.username = "ling";
    turnServer.password = "ling1234";
    servers.push_back(turnServer);

      

    c++ webrtc中可以这样配置turn. web/android/ios 也是类似的. 

    如果从安全性方面考虑. 可以为账户生成key, 这样就可以直接通过key登录. 而不需要提供密码. 

    key 通过turnadmin生成, 需要(username, password, realm) . realm是启动turn server时-r 参数指定的. 

    例如这样: 

    1
    2
    turnadmin -k -u ling -p ling1234 -r demo
    0xccba8f3a6a025a38eb4a0e795fc92705

    参考原文:

    https://www.webrtc-experiment.com/docs/TURN-server-installation-guide.html#windows

    https://www.slideshare.net/amiteshawa/web-rtc-media-stra

    其它:

    http://www.cppblog.com/tianhongye/archive/2015/01/15/209524.html

    http://www.cnblogs.com/lingdhox/p/4209659.html

    http://www.ietf.org/proceedings/87/slides/slides-87-behave-10.pdf
    TURN REST Server API ,这个PDF 描述了 turn服务器和客户端的交互流程.

  • 相关阅读:
    AC 自动机
    [HihoCoder-1424] Asa's Chess Problem
    C++ Tricks
    2017"百度之星"程序设计大赛
    后缀自动机
    ASP教程:gb2312和utf-8乱码问题解决
    cryto-js 常用加密库 md5加密
    nrm是什么?以及nrm的安装与命令
    MongoDB 安装
    koa2 安装与启动
  • 原文地址:https://www.cnblogs.com/mobilecard/p/6503301.html
Copyright © 2011-2022 走看看