panjinya / coturn Goto Github PK
View Code? Open in Web Editor NEWAutomatically exported from code.google.com/p/coturn
License: Other
Automatically exported from code.google.com/p/coturn
License: Other
GENERAL INFORMATION turnadmin is a TURN administration tool. This tool can be used to manage the user accounts (add/remove users, generate TURN keys for the users). For security reasons, we do not recommend storing passwords openly. The better option is to use pre-processed "keys" which are then used for authentication. These keys are generated by turnadmin. Turnadmin is a link to turnserver binary, but turnadmin performs different functions. Options note: turnadmin has long and short option names, for most options. Some options have only long form, some options have only short form. Their syntax somewhat different, if an argument is required: The short form must be used as this (for example): $ turnadmin -u <username> ... The long form equivalent must use the "=" character: $ turnadmin --user=<username> ... If this is a flag option (no argument required) then their usage are the same, for example: $ turnadmin -k ... is equivalent to: $ turnadmin --key ... You have always the use the -r <realm> option with commands for long term credentials - because data for multiple realms can be stored in the same database. ===================================== NAME turnadmin - a TURN relay administration tool. SYNOPSIS $ turnadmin [command] [options] $ turnadmin [ -h | --help] DESCRIPTION Commands: -P, --generate-encrypted-password Generate and print to the standard output an encrypted form of a password (for web admin user or CLI). The value then can be used as a safe key for the password storage on disk or in the database. Every invocation for the same password produces a different result. The for mat of the encrypted password is: $5$<...salt...>$<...sha256(salt+password)...>. Salt is 16 characters, the sha256 output is 64 characters. Character 5 is the algorithm id (sha256). Only sha256 is supported as the hash function. -k, --key Generate key for a long-term credentials mechanism user. -a, --add Add or update a long-term user. -A, --add-admin Add or update an admin user. -d, --delete Delete a long-term user. -D, --delete-admin Delete an admin user. -l, --list List long-term users in the database. -L, --list-admin List admin users in the database. -s, --set-secret=<value> Add shared secret for TURN RESP API -S, --show-secret Show stored shared secrets for TURN REST API -X, --delete-secret=<value> Delete a shared secret. --delete-all_secrets Delete all shared secrets for REST API. -O, --add-origin Add origin-to-realm relation. -R, --del-origin Delete origin-to-realm relation. -I, --list-origins List origin-to-realm relations. -g, --set-realm-option Set realm params: max-bps, total-quota, user-quota. -G, --list-realm-options List realm params. Options with required values: -b, --db, --userdb SQLite user database file name (default - /var/db/turndb or /usr/local/var/db/turndb or /var/lib/turn/turndb). See the same option in the turnserver section. -e, --psql-userdb PostgreSQL user database connection string. See the --psql-userdb option in the turnserver section. -M, --mysql-userdb MySQL user database connection string. See the --mysql-userdb option in the turnserver section. -J, --mongo-userdb MongoDB user database connection string. See the --mysql-mongo option in the turnserver section. -N, --redis-userdb Redis user database connection string. See the --redis-userdb option in the turnserver section. -u, --user User name. -r, --realm Realm. -p, --password Password. -o, --origin Origin --max-bps Set value of realm's max-bps parameter. --total-quota Set value of realm's total-quota parameter. --user-quota Set value of realm's user-quota parameter. -h, --help Help. Command examples: Generate an encrypted form of a password: $ turnadmin -P -p <password> Generate a key: $ turnadmin -k -u <username> -r <realm> -p <password> Add/update a user in the in the database: $ turnadmin -a [-b <userdb-file> | -e <db-connection-string> | -M <db-connection-string> | -N <db-connection-string> ] -u <username> -r <realm> -p <password> Delete a user from the database: $ turnadmin -d [-b <userdb-file> | -e <db-connection-string> | -M <db-connection-string> | -N <db-connection-string> ] -u <username> -r <realm> List all long-term users in MySQL database: $ turnadmin -l --mysql-userdb="<db-connection-string>" -r <realm> List all admin users in Redis database: $ turnadmin -L --redis-userdb="<db-connection-string>" Set secret in MySQL database: $ turnadmin -s <secret> --mysql-userdb="<db-connection-string>" -r <realm> Show secret stored in PostgreSQL database: $ turnadmin -S --psql-userdb="<db-connection-string>" -r <realm> Set origin-to-realm relation in MySQL database: $ turnadmin --mysql-userdb="<db-connection-string>" -r <realm> -o <origin> Delete origin-to-realm relation from Redis DB: $ turnadmin --redis-userdb="<db-connection-string>" -o <origin> List all origin-to-realm relations in Redis DB: $ turnadmin --redis-userdb="<db-connection-string>" -I List the origin-to-realm relations in PostgreSQL DB for a single realm: $ turnadmin --psql-userdb="<db-connection-string>" -I -r <realm> Help: $ turnadmin -h ======================================= DOCS After installation, run the command: $ man turnadmin or in the project root directory: $ man -M man turnadmin to see the man page. ===================================== FILES /etc/turnserver.conf /var/db/turndb /usr/local/var/db/turndb /var/lib/turn/turndb /usr/local/etc/turnserver.conf ===================================== DIRECTORIES /usr/local/share/turnserver /usr/local/share/doc/turnserver /usr/local/share/examples/turnserver ====================================== SEE ALSO turnserver, turnutils ====================================== WEB RESOURCES project page: http://code.google.com/p/coturn/ Wiki page: http://code.google.com/p/coturn/wiki/Readme forum: https://groups.google.com/forum/?fromgroups=#!forum/turn-server-project-rfc5766-turn-server/ ====================================== AUTHORS Oleg Moskalenko <[email protected]> Gabor Kovesdan http://kovesdan.org/ Daniel Pocock http://danielpocock.com/ John Selbie ([email protected]) Lee Sylvester <[email protected]> Erik Johnston <[email protected]> Roman Lisagor <[email protected]> Vladimir Tsanev <[email protected]> Po-sheng Lin <[email protected]> Peter Dunkley <[email protected]> Mutsutoshi Yoshimoto <[email protected]> Federico Pinna <[email protected]> Bradley T. Hughes <[email protected]>
The server operation may become erratic when the clients are using native SCTP
connections. That is especially true for the FreeBSD server platform.
Original issue reported on code.google.com by [email protected]
on 6 Apr 2015 at 4:08
What steps will reproduce the problem?
1. install turnserver v4.1.1.1 on CentOS 6.5
2. install kamailio-4.1.5
3. install imsdroid on android endpoint
What is the expected output? What do you see instead?
After several necessary configuration, turnserver work only in relay mode with
two imsdroid UAs
What version of the product are you using? On what operating system?
turnserver v4.1.1.1 on CentOS 6.5
kamailio-4.1.5
imsdroid v2.569.1089
Please provide any additional information below.
Original issue reported on code.google.com by [email protected]
on 5 Sep 2014 at 9:27
Coturn and Turnserver cannot be installed side by side.
Currently both projects share a few similar files which means they cannot be
installed side by side. So far I can see that /etc/init.d/rfc5766-turn-server
is the same, I propose to change this to: /etc/init.d/coturn
Secondly the config files, (userdb.conf & turnserver.conf) these should be
changed to be coturn specific to prevent conflicts.
Original issue reported on code.google.com by [email protected]
on 28 Aug 2014 at 4:48
When I set a DSCP tag (by using googDscp constraint : true when setting up a
peer connection), packets from client to TURN server are marked.
Differentiated Services Field: 0x88 (DSCP 0x22: Assured Forwarding 41; (...)
1000 10 .. = Differentiated Services Codepoint: Assured Forwarding 41 (0x22)
DSCP in packets after going through the server are set back to zero:
Differentiated Services Field: 0x00 (DSCP 0x00: Default; (...)
0000 00 .. = Differentiated Services Codepoint: Default (0x00)
On linux preferred behaviour is used mleaning that the outgoing value is set to
the incoming value. But given my tests, this value is set to zero.
I have checked it on coturn 4.3.1.2 (Ubuntu server 14.04) and on turn-5766
3.2.2.4 (Ubuntu server 12.04).
What version of the product are you using? On what operating system?
Please provide any additional information below.
Original issue reported on code.google.com by [email protected]
on 3 Feb 2015 at 9:00
What steps will reproduce the problem?
1. Start a redis-server in localhost, as turn-server's user-statsdb:
./redis-server &
2. Start turn-server with statsdb enabled:
./turnserver -p 10001 -L 10.10.10.15 -a -f -v --no-cli -r localhost -O
port=6379
3. Kill or restart the redis-server started in "step 1":
kill
4. run top command, watch the cpu usage of turn-server:
top
What is the expected output? What do you see instead?
Expected output:
Turn server runs normally, and cpu usage is low.
Real output:
The cpu usage is over 99% per thread:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
30877 xxxxxxxx 20 0 696m 18m 2424 R 99.4 0.5 0:22.79 turnserver
30876 xxxxxxxx 20 0 696m 18m 2424 R 99.1 0.5 0:22.80 turnserver
30878 xxxxxxxx 20 0 696m 18m 2424 R 99.1 0.5 0:22.72 turnserver
What version of the product are you using? On what operating system?
Version:
Version Coturn-4.4.5.1 'Ardee West'
Operating system:
Linux tmpserver 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012
x86_64 x86_64 x86_64 GNU/Linux
Please provide any additional information below.
Original issue reported on code.google.com by [email protected]
on 4 May 2015 at 1:43
When trying to set a mongodb uri in the turnserver.conf configuration I get the
following error:
"Bad configuration format: mongo-userdb"
My configuration looks like this
mongo-userdb="mongodb://user:pass@host/db"
Any ideas on what the correct format should be? I checked out this page (side
note the docs point to an invalid webpage, this is the correct):
http://hergert.me/docs/mongo-c-driver-docs-0.94.2/mongoc_uri.html
My configuration directive looks to be right! I can connect using the shell
script for schema population.
Original issue reported on code.google.com by [email protected]
on 28 Aug 2014 at 6:24
In Ubuntu the firewall is managed by UFW. The rules can be manually added or an
application configuration file can be added to simplify the process.
I've attached a file with the default ports to simplify firewall setup on
Ubuntu.
To use run these commands
cp turnserver /etc/ufw/applications.d/turnserver
ufw add turnserver
This file should probably be automatically copied as part of the Ubuntu package
install (not quite sure how to do this but it's a standard practise).
Original issue reported on code.google.com by [email protected]
on 20 Aug 2014 at 3:40
Attachments:
Hello currently i would like to use turnserver with peerjs. One think that
bothers me is how to set users for turn.
I would like to store users in file turnuserdb.conf. My problem is when I use
deafult user: ninefingers:youhavetoberealistic everything is fine(I can make
video chat), but when I specify for example myuser:passw and then appy it to
the example 1) as:
var peer = new Peer({host: peerJsServerHost, port: peerJsServerPort, path: peerJsServerPath, debug:3,
config: {'iceServers': [
{ url: 'turn:'+stunTurnServerHost+':3478', credential: 'passw', username: 'myuser' },
{ url: 'stun:'+stunTurnServerHost+':3478', credential: 'passw', username: 'myuser' }
]}
});
there is no connection between those two peerjs. Can anybody give me hint or
solution to this problem.
I'm starting turnserver with command: turnserver -o -c
/etc/turnserver/turnserver.conf -a
1) https://github.com/peers/peerjs/blob/master/examples/videochat/index.html
Original issue reported on code.google.com by [email protected]
on 24 Oct 2014 at 11:39
Hi,
The attached patch allows the listening-ip and relay-ip configuration fields to
contain a hostname, which is then resolved with getaddrinfo(). Tested under
Linux and OSX.
Rationale:
In some environments (for example, Google Cloud Servers) the host gets a
dynamic private IPv4 upon restart which may change at any time. Fortunately an
alias for the private IP is automatically added into /etc/hosts. For some
reasons one may need to make Coturn to just listen into the private address and
avoid IP autodiscovery. The patch makes this scenario easier to live with.
Original issue reported on code.google.com by [email protected]
on 8 Sep 2014 at 10:50
Attachments:
What steps will reproduce the problem?
1. Setup coturn in AWS Amazon instances, lt-cred-mech, use-auth-secret,
static-auth-secret=Veureka123, without database, just generic username
(timestamp:userx), credential base64(hmac(Veureka123, username)).
2. Use SimpleWebRTC in client side.
3. Create crdentials like:
self.webrtc.config.peerConnectionConfig.iceServers = [{"url" :
"stun:myStunIP:3478"},
{
"url" : "turn:myTurnIP:3478?transport=udp",
"username": username,
"credential":hashEncoded
}];
What is the expected output? What do you see instead?
In Firefox it works fine, but in Chrome it isn't.
What version of the product are you using? On what operating system?
I test coTurn 4.2.3.1, 4.0.0.0 and 4.1.1.1, all fails.
Is there any reason of structure in ice servers config?? I tried use adapterjs
but simplewebrtc don't supports it.
Regards,
Original issue reported on code.google.com by [email protected]
on 18 Nov 2014 at 10:54
What steps will reproduce the problem?
The call flow is :
SIP PHONE APP (with ICE) ==> ASTERISK (with ICE)
What is the expected output? What do you see instead?
ICE failed : I receiveid the following error :
Received invalid STUN packet from 176.182.63.143:7076: MESSAGE_INTEGRITY
attribute missing
176.182.63.143 is the IP address from SIP PHONE APP.
What version of the product are you using? On what operating system?
Androïd and iOS Linphone APP.
Please provide any additional information below.
May be, coturn provide a parameter to disable control message integrity ?
Regards.
AfriCallShop
Original issue reported on code.google.com by [email protected]
on 22 May 2015 at 7:50
I currently have a database with some collection names that follow a
convention. I want to share this DB with Turnserver but unfortunately a couple
of the collection names used are the same.
I would like the option in the conf file to set the string collection name used
for each function.
e.g. in the config we would have the following
mongodb-collection-allowed-peer-ip="allowed_peer_ip"
mongodb-collection-denied-peer-ip="denied_peer_ip"
mongodb-collection-realms="realms"
mongodb-collection-turn-secret="turn_secret"
mongodb-collection-turnusers-lt="turnusers_lt"
mongodb-collection-turnusers-st="turnusers-st"
Original issue reported on code.google.com by [email protected]
on 28 Aug 2014 at 4:54
What steps will reproduce the problem?
1. run this command to start turn server, "10.0.0.12" is turn server's local ip
address:
./turnserver -E 10.0.0.12 -E 127.0.0.1 -E 10.0.0.12
2. Watch command output, about "Relay address to use".
What is the expected output? What do you see instead?
Expected output:
... ...
0: Relay address to use: 10.0.0.12
0: Relay address to use: 127.0.0.1
... ...
Real output:
... ...
0: Relay address to use: 10.0.0.12
0: Relay address to use: 127.0.0.1
0: Relay address to use: 10.0.0.12
... ...
What version of the product are you using? On what operating system?
Version Coturn-4.4.5.1 'Ardee West'
Please provide any additional information below.
Patch file in attached.
Original issue reported on code.google.com by [email protected]
on 28 Apr 2015 at 3:34
Attachments:
What steps will reproduce the problem?
1. start coturn with default configuration
2. call turnutils_uclient -T -n 50 -l 10000 host
3.
What is the expected output? What do you see instead?
I see Total lost packets 100 (100.000000%)
What version of the product are you using? On what operating system?
Linux32, Version Coturn-4.2.1.2
Please provide any additional information below.
Original issue reported on code.google.com by [email protected]
on 26 Jun 2015 at 9:27
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.