Giter VIP home page Giter VIP logo

mumble-web-proxy's People

Contributors

haslersn avatar johni0702 avatar seeba8 avatar skgland avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mumble-web-proxy's Issues

Build fails with Rust 1.49

The build is successful with Rust v1.45.0, however, with the latest version of Rust (1.49.0), the build fails with the following error :

Compiling rtp v0.1.0 (https://github.com/johni0702/rtp?rev=6c0223d#6c0223d8)
error[E0282]: type annotations needed
   --> /home/walui/.cargo/git/checkouts/rtp-23e67d7854ed482f/6c0223d/src/rfc3711.rs:477:19
    |
476 |         let iv = iv ^ (BigUint::from(1_u8) << (context.session_encr_key.len() * 8));
    |             -- consider giving `iv` a type
477 |         let iv = &iv.to_bytes_be()[1..context.session_encr_key.len() + 1];
    |                   ^^ cannot infer type
    |
    = note: type must be known at this point

error[E0282]: type annotations needed
   --> /home/walui/.cargo/git/checkouts/rtp-23e67d7854ed482f/6c0223d/src/rfc3711.rs:511:19
    |
510 |         let iv = iv ^ (BigUint::from(1_u8) << (context.session_encr_key.len() * 8));
    |             -- consider giving `iv` a type
511 |         let iv = &iv.to_bytes_be()[1..context.session_encr_key.len() + 1];
    |                   ^^ cannot infer type
    |
    = note: type must be known at this point

error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0282`.
error: could not compile `rtp`

Possible to configure verbose output after launch?

I'm testing out mumble-web-proxy and have found that no terminal / stdout updates after the proxy has launched is making troubleshooting rather difficult. Right now the proxy exits within 20 seconds of launch, and not having any feedback means I'm sort of feeling around in the dark trying to isolate the issue. Are there logs you can point me to that the proxy might be writing?

Error about Self Signed Certs

ServerTls(Ssl(Error { code: ErrorCode(1), cause: Some(Ssl(ErrorStack([Error { code: 337047686, library: "SSL routines", function: "tls_process_server_certificate", reason: "certificate verify failed", file: "../ssl/statem/statem_clnt.c", line: 1924 }]))) }, X509VerifyResult { code: 18, error: "self signed certificate" }))

Cleaning up Source files after Compiling

Can you walk me through the process of cleaning up the source files after building this?

I was able to build this on my Ubuntu 20.10 ZFS on Raspberry Pi, and I would like to save some space, but I am not overly familiar with Cargo.

Build fails

Compiling rtp v0.1.0 (https://github.com/johni0702/rtp?rev=6c0223d#6c0223d8)
error[E0282]: type annotations needed
--> /home/donpimpin/.cargo/git/checkouts/rtp-23e67d7854ed482f/6c0223d/src/rfc3711.rs:477:19
|
476 | let iv = iv ^ (BigUint::from(1_u8) << (context.session_encr_key.len() * 8));
| -- consider giving iv a type
477 | let iv = &iv.to_bytes_be()[1..context.session_encr_key.len() + 1];
| ^^ cannot infer type
|
= note: type must be known at this point

error[E0282]: type annotations needed
--> /home/donpimpin/.cargo/git/checkouts/rtp-23e67d7854ed482f/6c0223d/src/rfc3711.rs:511:19
|
510 | let iv = iv ^ (BigUint::from(1_u8) << (context.session_encr_key.len() * 8));
| -- consider giving iv a type
511 | let iv = &iv.to_bytes_be()[1..context.session_encr_key.len() + 1];
| ^^ cannot infer type
|
= note: type must be known at this point

error: aborting due to 2 previous errors

For more information about this error, try rustc --explain E0282.
error: could not compile rtp

To learn more, run the command again with --verbose.
warning: build failed, waiting for other jobs to finish...
error: build failed

Have followed every installation step.

Running this behind a NAT with a dynamic IP

I realize that in order to run this properly behind a NAT we need to pass our public IP through the --ice-ipv4 argument otherwise nobody can hear or speak. Would it be possible to add support for resolving domain names to this argument so that it can be ran with a dynamic IP? If not I think the only option other than getting a static IP is to come up with some kind of script on my own that resolves the domain and runs the web-proxy with that passed. Apologies if this doesn't belong here since it's more of a feature request/question.

failed to run custom build command for `libnice-sys v0.3.0`

I am trying to build the program again, but this time running into a different build error.

error: failed to run custom build command for `libnice-sys v0.3.0`

Caused by:
  process didn't exit successfully: `/home/admin/mumble-web-proxy/target/release/build/libnice-sys-4bc01e3cb880e762/build-script-build` (exit code: 101)
--- stdout
cargo:rustc-link-search=native=/usr/lib/x86_64-linux-gnu
cargo:rustc-link-lib=nice
cargo:rustc-link-lib=gio-2.0
cargo:rustc-link-lib=gobject-2.0
cargo:rustc-link-lib=glib-2.0
cargo:warning=couldn't execute `llvm-config --prefix` (error: No such file or directory (os error 2))
cargo:warning=set the LLVM_CONFIG_PATH environment variable to the full path to a valid `llvm-config` executable (including the executable itself)

--- stderr
/usr/include/glib-2.0/glib/gmacros.h:38:10: fatal error: 'stddef.h' file not found
/usr/include/glib-2.0/glib/gmacros.h:38:10: fatal error: 'stddef.h' file not found, err: true
thread 'main' panicked at 'Unable to generate bindings: ()', /root/.cargo/registry/src/github.com-1ecc6299db9ec823/libnice-sys-0.3.0/build.rs:13:20
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

The following is the list of previous components that built without issue. I'm not sure how much this helps but I want to be verbose.

 Compiling libc v0.2.68
   Compiling cfg-if v0.1.10
   Compiling proc-macro2 v1.0.10
   Compiling unicode-xid v0.2.0
   Compiling pkg-config v0.3.17
   Compiling autocfg v1.0.0
   Compiling log v0.4.8
   Compiling memchr v2.3.3
   Compiling cc v1.0.50
   Compiling syn v1.0.17
   Compiling lazy_static v1.4.0
   Compiling bitflags v1.2.1
   Compiling byteorder v1.3.4
   Compiling slab v0.4.2
   Compiling futures-core v0.3.4
   Compiling bytes v0.5.4
   Compiling fnv v1.0.6
   Compiling futures-sink v0.3.4
   Compiling glob v0.3.0
   Compiling futures-io v0.3.4
   Compiling proc-macro-nested v0.1.4
   Compiling foreign-types-shared v0.1.1
   Compiling openssl v0.10.28
   Compiling version_check v0.9.1
   Compiling arc-swap v0.4.5
   Compiling futures v0.1.29
   Compiling proc-macro-hack v0.5.15
   Compiling typenum v1.11.2
   Compiling pin-project-lite v0.1.4
   Compiling futures-task v0.3.4
   Compiling matches v0.1.8
   Compiling regex-syntax v0.6.17
   Compiling quick-error v1.2.3
   Compiling pin-utils v0.1.0-alpha.4
   Compiling getrandom v0.1.14
   Compiling unicode-width v0.1.7
   Compiling smallvec v1.2.0
   Compiling protobuf v2.12.0
   Compiling vec_map v0.8.1
   Compiling bindgen v0.53.2
   Compiling ansi_term v0.11.0
   Compiling rustc-serialize v0.3.24
   Compiling strsim v0.8.0
   Compiling termcolor v1.1.0
   Compiling shlex v0.1.1
   Compiling lazycell v1.2.1
   Compiling percent-encoding v2.1.0
   Compiling byte-tools v0.3.1
   Compiling rustc-hash v1.1.0
   Compiling peeking_take_while v0.1.2
   Compiling native-tls v0.2.4
   Compiling serde_derive v1.0.113
   Compiling gcc v0.3.55
   Compiling httparse v1.3.4
   Compiling ppv-lite86 v0.2.6
   Compiling openssl-probe v0.1.2
   Compiling fake-simd v0.1.2
   Compiling serde v1.0.113
   Compiling opaque-debug v0.2.3
   Compiling itoa v0.4.5
   Compiling utf-8 v0.7.5
   Compiling base64 v0.11.0
   Compiling fixedbitset v0.1.9
   Compiling argparse v0.2.2
   Compiling glib-sys v0.9.1
   Compiling gobject-sys v0.9.1
   Compiling gio-sys v0.9.1
   Compiling num-traits v0.2.11
   Compiling num-integer v0.1.42
   Compiling num-iter v0.1.40
   Compiling openssl-sys v0.9.54
   Compiling libloading v0.5.2
   Compiling thread_local v1.0.1
   Compiling input_buffer v0.3.1
   Compiling futures-channel v0.3.4
   Compiling clang-sys v0.29.3
   Compiling foreign-types v0.3.2
   Compiling nom v5.1.1
   Compiling unicode-bidi v0.3.4
   Compiling humantime v1.3.0
   Compiling textwrap v0.11.0
   Compiling unicode-normalization v0.1.12
   Compiling block-padding v0.1.5
   Compiling rust-crypto v0.2.36 (https://github.com/awmath/rust-crypto.git?branch=avx2#394c2472)
   Compiling http v0.2.1
   Compiling idna v0.2.0
   Compiling iovec v0.1.4
   Compiling net2 v0.2.33
   Compiling signal-hook-registry v1.2.0
   Compiling num_cpus v1.12.0
   Compiling atty v0.2.14
   Compiling rand v0.4.6
   Compiling which v3.1.1
   Compiling time v0.1.42
   Compiling quote v1.0.3
   Compiling aho-corasick v0.7.10
   Compiling handy_async v0.2.13
   Compiling generic-array v0.12.3
   Compiling url v2.1.1
   Compiling protobuf-codegen v2.12.0
   Compiling bytes v0.4.12
   Compiling mio v0.6.21
   Compiling clap v2.33.0
   Compiling rand v0.3.23
   Compiling rand_core v0.5.1
   Compiling num-complex v0.1.43
   Compiling regex v1.3.6
   Compiling cexpr v0.4.0
   Compiling digest v0.8.1
   Compiling block-buffer v0.7.3
   Compiling webrtc-sdp v0.3.4
   Compiling protobuf-codegen-pure v2.12.0
   Compiling tokio-io v0.1.13
   Compiling mio-uds v0.6.7
   Compiling trackable v0.1.8
   Compiling rand_chacha v0.2.2
   Compiling tokio-macros v0.2.5
   Compiling futures-macro v0.3.4
   Compiling pin-project-internal v0.4.8
   Compiling async-trait v0.1.29
   Compiling num-bigint v0.1.44
   Compiling env_logger v0.7.1
   Compiling sha-1 v0.8.2
   Compiling mumble-protocol v0.3.0
   Compiling rand v0.7.3
   Compiling tokio v0.2.15
   Compiling futures-util v0.3.4
   Compiling pin-project v0.4.8
   Compiling num-rational v0.1.42
   Compiling tungstenite v0.10.1
   Compiling tokio-util v0.3.1
   Compiling tokio-openssl v0.4.0
   Compiling tokio-tls v0.3.0
   Compiling futures-executor v0.3.4
   Compiling toml v0.5.6
   Compiling num v0.1.42
   Compiling libnice-sys v0.3.0
   Compiling futures v0.3.4
   Compiling glib v0.9.3

Let me know if there is anything else I can add to help out. Thank you!

connection issue: Invalid token?

I always try to set mumble-web-proxy up but it always returns this error: ClientConnection(Io(Custom { kind: Other, error: "invalid token" })) on a new connection. I couldnt really find out what that means and what that token is.

Docker support

Could you please provide official Dockerfile for proxy?
Would be nice to run it in docker.

Needs glib

I needed libglib2.0-dev (not listed in readme) for the build.

cargo: command not found

Hi,

to install https://github.com/johni0702/mumble-web I followed the instructions there and on https://github.com/Johni0702/mumble-web-proxy but got

mumble-web@vm-mumble:~/mumble-web-proxy$ cargo build --release
-bash: cargo: command not found
mumble-web@vm-mumble:~/mumble-web-proxy$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

I've installed rustup under root via curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh which ends up with Rust is installed now. Great!:

root@vm-mumble:~# echo $PATH
/root/.cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
root@vm-mumble:~# 

I thought it would be a good idea to use an non-privileged user for mumble-web-proxy so I used the same user for mumble-web-proxy which I use for mumble-web.

Edit: If I install cargo via apt install cargo under root I can run cargo build --release under mumble-web but https://github.com/Johni0702/mumble-web-proxy#building indicates that this is not necessary:

Make sure you have Cargo (Rust's package manager) installed (e.g. via rustup), then run:

Which part did I miss?

error: failed to run custom build command for `openssl v0.9.24`

I get a build error on Ubuntu 18.10. I tried with both libssl1.0-dev (1.0.2n) and libssl-dev (1.1.1). Any idea how I can fix it, I never build any rust sources before. rustc 1.30.0, cargo 0.31.0.

# cargo build --release
[...]
   Compiling openssl-sys v0.9.39                                                                                             
   Compiling openssl v0.10.15   
   Compiling openssl v0.9.24                                                                                                 
error: failed to run custom build command for `openssl v0.9.24`                                                              
process didn't exit successfully: `/root/repos/mumble-web-proxy/target/release/build/openssl-08d84935427db742/build-script-build` (exit code: 101)
--- stderr
thread 'main' panicked at 'Unable to detect OpenSSL version', /root/.cargo/registry/src/github.com-1ecc6299db9ec823/openssl-0.9.24/build.rs:16:14
stack backtrace:
   0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
   1: std::sys_common::backtrace::print
   2: std::panicking::default_hook::{{closure}}
   3: std::panicking::default_hook
   4: std::panicking::rust_panic_with_hook
   5: std::panicking::begin_panic
   6: build_script_build::main
   7: std::rt::lang_start::{{closure}}
   8: std::panicking::try::do_call
   9: __rust_maybe_catch_panic
  10: std::rt::lang_start_internal
  11: main
  12: __libc_start_main
  13: _start

Error compliling dependency glib-sys v0.9.1

Running Ubuntu 20.04 LTS, I get the following when I try to compile the code:

error: failed to run custom build command for `glib-sys v0.9.1`

Caused by:
  process didn't exit successfully: `/home/admin/mumble-web-proxy/target/release/build/glib-sys-3c005632c7e0737a/build-script-build` (exit code: 1)
--- stderr
`"pkg-config" "--libs" "--cflags" "glib-2.0" "glib-2.0 >= 2.42"` did not exit successfully: exit code: 1
--- stderr
Package glib-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `glib-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'glib-2.0' found
Package glib-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `glib-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'glib-2.0' found

Would there be a package I'm missing or a path to a package I'm missing? I checked and I have glib-2.0 installed.

Thank you!

Invalid Token

I have a local mumble server. It has no password and I'm able to connect to it with both the desktop and an android client.

When trying to set up the web client with mumble-web-proxy, I get an "invalid token" error.

ClientConnection(Protocol("invalid token"))

Is there additional configuration that I may be missing?

crash with "Illegal instruction"

mumble-web-proxy crashed on first webrtc connection.

New connection from [::1]:37144
MSG Authenticate: username: "asdasdasd" password: "" opus: false webrtc: true
Local ice candidate: 1 1 UDP 2013266431 fe80::116:3eff:fe89:525c 30893 typ host
Local ice candidate: 2 1 TCP 1015022847 fe80::116:3eff:fe89:525c 0 typ host tcptype active
Local ice candidate: 3 1 TCP 1010828543 fe80::116:3eff:fe89:525c 30009 typ host tcptype passive
Local ice candidate: 4 1 UDP 2013266430 10.3.3.16 30347 typ host
Local ice candidate: 5 1 TCP 1015022079 10.3.3.16 0 typ host tcptype active
Local ice candidate: 6 1 TCP 1010827775 10.3.3.16 30096 typ host tcptype passive
Got WebRTC: ice_pwd: "4O8O+a7Cz3Dx8LyugavQUdUZ" ice_ufrag: "971X" dtls_fingerprint: "58:53:64:C3:5F:E3:77:CD:82:49:9F:19:2E:6F:8B:3D:6E:25:EC:9C:32:37:94:E5:6B:3D:20:F0:89:DF:BC:AD"
Got ice candidate: "candidate:854070991 1 udp 2122260223 192.168.1.11 60363 typ host generation 0 ufrag 971X network-id 1"
Got ice candidate: "candidate:2558760555 1 udp 2122194687 10.20.0.2 59813 typ host generation 0 ufrag 971X network-id 2"
Got ice candidate: "candidate:2087447103 1 tcp 1518280447 192.168.1.11 9 typ host tcptype active generation 0 ufrag 971X network-id 1"
Got ice candidate: "candidate:3590351515 1 tcp 1518214911 10.20.0.2 9 typ host tcptype active generation 0 ufrag 971X network-id 2"
DTLS-SRTP connection established.
Illegal instruction

mumble-web-proxy fails to run when server has ipv6 disabled?

I had mumble-web-proxy working, but for another service I had to disable ipv6. Now when I run mumble-web-proxy, I get the following output:

Error: Io(Os { code: 97, kind: Other, message: "Address family not supported by protocol" })

I recompiled just in case this was something impacted at build time, and it didn't change anything.

how to crash mumble-web-proxy over the network

It's very easy to crash mumble-web-proxy over the network:

nc localhost 64737
STRG-C

It immediately crashes when netcat closes the connection.

thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Io(Custom { kind: Other, error: StringError("bytes remaining on stream") })', libcore/result.rs:1009:5
stack backtrace:
   0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
   1: std::sys_common::backtrace::print
   2: std::panicking::default_hook::{{closure}}
   3: std::panicking::default_hook
   4: std::panicking::rust_panic_with_hook
   5: std::panicking::continue_panic_fmt
   6: rust_begin_unwind
   7: core::panicking::panic_fmt
   8: core::result::unwrap_failed
   9: mumble_web_proxy::main
  10: std::rt::lang_start::{{closure}}
  11: std::panicking::try::do_call
  12: __rust_maybe_catch_panic
  13: std::rt::lang_start_internal
  14: main
  15: __libc_start_main
  16: _start

I'm not sure if this is a mumble-web-proxy bug, a bug in some rust library or something else.

Add ability to configure via TOML

It would be great if all options currently configured by command line args could alternatively be configured with TOML file in the current working directory of the process.

This would make creating a systemd service for mumble-web-proxy simpler.

"thread 'main' panicked at 'peer to have an address" ...

mumble-web-proxy exited. I don't know when I why it happened. I'm using RUST_BACKTRACE=1 now.

[...]
DTLS-SRTP connection established.
Client connection closed: [::ffff:10.3.3.19]:34710
thread 'main' panicked at 'peer to have an address: Os { code: 107, kind: NotConnected, message: "Socket not connected" }', src/libcore/result.rs:1165:5
note: run with RUST_BACKTRACE=1 environment variable to display a backtrace.

Does not work with LibreSSL

I made a Docker container for mumble-web-proxy. It works like that. However, if you replace openssl by libressl, then it doesn't work, because the DTLS handshake between the user agent and mumble-web-proxy fails:

New connection from [::ffff:10.100.164.143]:41662
mumble-web-proxy-584b58c4cc-2zvzt mumble-web-proxy MSG Authenticate: username: "has2" password: "" opus: false webrtc: true
mumble-web-proxy-584b58c4cc-2zvzt mumble-web-proxy SystemTime { tv_sec: 1615180182, tv_nsec: 106587785 }
mumble-web-proxy-584b58c4cc-2zvzt mumble-web-proxy Local ice candidate: 1 1 UDP 2015363327 10.100.34.62 50093 typ host
mumble-web-proxy-584b58c4cc-2zvzt mumble-web-proxy Local ice candidate: 2 1 TCP 1015021823 10.100.34.62 0 typ host tcptype active
mumble-web-proxy-584b58c4cc-2zvzt mumble-web-proxy Local ice candidate: 3 1 TCP 1010827519 10.100.34.62 50010 typ host tcptype passive
mumble-web-proxy-584b58c4cc-2zvzt mumble-web-proxy Local ice candidate: 4 1 UDP 2015363583 fe80::fc7e:adff:fe92:3ed5 50045 typ host
mumble-web-proxy-584b58c4cc-2zvzt mumble-web-proxy Local ice candidate: 5 1 TCP 1015022079 fe80::fc7e:adff:fe92:3ed5 0 typ host tcptype active
mumble-web-proxy-584b58c4cc-2zvzt mumble-web-proxy Local ice candidate: 6 1 TCP 1010827775 fe80::fc7e:adff:fe92:3ed5 50073 typ host tcptype passive
mumble-web-proxy-584b58c4cc-2zvzt mumble-web-proxy Got WebRTC: ice_pwd: "d978fc954a5a373c75f84ae5d542d8fc" ice_ufrag: "9f0c1c5c" dtls_fingerprint: "0F:C2:BD:3C:80:26:0C:C9:48:9E:53:1B:B5:2E:D7:BD:5D:4E:2B:99:47:9E:5F:EA:FB:93:94:89:8E:31:25:E9"
mumble-web-proxy-584b58c4cc-2zvzt mumble-web-proxy Got ice candidate: "candidate:0 1 UDP 2122252543 192.168.129.186 60437 typ host"
mumble-web-proxy-584b58c4cc-2zvzt mumble-web-proxy Got ice candidate: "candidate:1 1 UDP 2122187007 172.17.0.1 34821 typ host"
mumble-web-proxy-584b58c4cc-2zvzt mumble-web-proxy Got ice candidate: "candidate:2 1 TCP 2105524479 192.168.129.186 9 typ host tcptype active"
mumble-web-proxy-584b58c4cc-2zvzt mumble-web-proxy Got ice candidate: "candidate:3 1 TCP 2105458943 172.17.0.1 9 typ host tcptype active"
- mumble-web-proxy-645bf4c77c-pwlvj
mumble-web-proxy-584b58c4cc-2zvzt mumble-web-proxy Error on connection [::ffff:10.100.164.143]:41662: Io(Custom { kind: Other, error: "handshake error" })

This might be related: libressl/portable#380

Through some debugging, I found that the handshake error is a tokio_openssl::HandshakeError that contains the following.

Failure(
    MidHandshakeSslStream {
        stream: SslStream {
            stream: Compat {
                inner: DtlsSrtpMuxerPart {
                    muxer: Mutex {
                        data: DtlsSrtpMuxer {
                            inner: StreamComponent {
                                _recv_handle: AttachRecvHandle(
                                    NiceAgent {
                                        inner: ObjectRef {
                                            inner: 0x5598424870c0, type: NiceAgent
                                        }
                                    }, 1, 1, MainContext(
                                        Shared {
                                            inner: 0x55984247e780
                                        }
                                    ), Any
                                ), stream_id: 1, component_id: 1, state: Connected, state_stream: Receiver {
                                    inner: Some(
                                        BoundedInner {
                                            buffer: 8, state: 9223372036854775808, message_queue: Queue {
                                                head: 0x5598424b17c0, tail: UnsafeCell
                                            }, parked_queue: Queue {
                                                head: 0x559842491720, tail: UnsafeCell
                                            }, num_senders: 1, recv_task: AtomicWaker
                                        }
                                    )
                                }, source: Receiver {
                                    inner: Some(
                                        BoundedInner {
                                            buffer: 10, state: 9223372036854775808, message_queue: Queue {
                                                head: 0x5598424ad7c0, tail: UnsafeCell
                                            }, parked_queue: Queue {
                                                head: 0x55984248cfe0, tail: UnsafeCell
                                            }, num_senders: 1, recv_task: AtomicWaker
                                        }
                                    )
                                }
                            }, dtls_buf: [], srtp_buf: []
                        }
                    }, srtp: false
                }
            }, ssl: Ssl {
                state: \"SSLv3 read client hello B\", verify_result: X509VerifyResult {
                    code: 0, error: \"ok\"
                }
            }
        }, error: Error {
            code: ErrorCode(5), cause: None
        }
    }
)

rtp v0.1.0 compilation?

Hello and sorry if i'm posting this in the wrong repo. I'm trying to compile this with:

OS - Ubuntu 18.04.5 LTS
Cargo - 1.49.0 (d00d64df9 2020-12-05)
rustc - 1.49.0 (e1884a8e3 2020-12-29)

and command: cargo build --release with these packages installed already (and up to date system):

  • libnice-dev
  • libssl-dev
  • clang

When I run that command to build, I get the following error:

error[E0282]: type annotations needed
   --> /root/.cargo/git/checkouts/rtp-23e67d7854ed482f/1444b3c/src/rfc3711.rs:476:19
    |
475 |         let iv = iv ^ (BigUint::from(1_u8) << (context.session_encr_key.len() * 8));
    |             -- consider giving `iv` a type
476 |         let iv = &iv.to_bytes_be()[1..context.session_encr_key.len() + 1];
    |                   ^^ cannot infer type
    |
    = note: type must be known at this point

error[E0282]: type annotations needed
   --> /root/.cargo/git/checkouts/rtp-23e67d7854ed482f/1444b3c/src/rfc3711.rs:512:19
    |
511 |         let iv = iv ^ (BigUint::from(1_u8) << (context.session_encr_key.len() * 8));
    |             -- consider giving `iv` a type
512 |         let iv = &iv.to_bytes_be()[1..context.session_encr_key.len() + 1];
    |                   ^^ cannot infer type
    |
    = note: type must be known at this point

error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0282`.
error: could not compile `rtp`

Screen Shot 2021-01-04 at 14 06 24

Any idea how i can go about solving this? Thank you very much

How I got the build working

Since many people are having trouble getting it to build, here's the environment that I finally got it to build in:

OS: Debian 11 64bit (virtual machine)
Dependencies: libnice-dev, libssl-dev, make, gcc, clang

Before building, you need to swap out rtp in Cargo.toml with the following:

rtp = { git = "https://github.com/Skgland/rtp", rev = "83eb4dd", features = ["rfc5764-openssl"] }

I installed the latest Rust from rustup.rs and did cargo build --release.

Perhaps the dependency can be switched in a PR.

"Packet too long" error

I tried to use last versions fo mumble-web and mumble-web-proxy, but when i tried to connect, mumble-web-proxy shows this error:

Error on connection [::ffff:127.0.0.1]:54672: Io(Custom { kind: Other, error: "packet too long" })

Process user disconnect

I don't get any events when user disconnects:

  • MediaStream.onremovetrack not called
  • MediaStreamTrack.onmute not called too

error: Edition 2018 is unstable and only available for nightly builds of rustc.

another problem with rustc on Ubuntu 18.10

   Compiling mumble-protocol v0.1.0                                                                                          
     Running `rustc --edition=2018 --crate-name build_script_build /root/.cargo/registry/src/github.com-1ecc6299db9ec823/mumble-protocol-0.1.0/build.rs --color always --crate-type bin --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="openssl"' --cfg 'feature="webrtc-extensions"' -C metadata=095398d284102528 -C extra-filename=-095398d284102528 --out-dir /root/repos/mumble-web-proxy/target/release/build/mumble-protocol-095398d284102528 -L dependency=/root/repos/mumble-web-proxy/target/release/deps --extern protobuf_codegen_pure=/root/repos/mumble-web-proxy/target/release/deps/libprotobuf_codegen_pure-45ce27c7cdfca6c5.rlib --cap-lints allow`
error: Edition 2018 is unstable and only available for nightly builds of rustc.                                              
                                                                                                                             
error: Could not compile `mumble-protocol`.                                                                                  

Caused by:
  process didn't exit successfully: `rustc --edition=2018 --crate-name build_script_build /root/.cargo/registry/src/github.com-1ecc6299db9ec823/mumble-protocol-0.1.0/build.rs --color always --crate-type bin --emit=dep-info,link -C opt-level=3 --cfg 'feature="default"' --cfg 'feature="openssl"' --cfg 'feature="webrtc-extensions"' -C metadata=095398d284102528 -C extra-filename=-095398d284102528 --out-dir /root/repos/mumble-web-proxy/target/release/build/mumble-protocol-095398d284102528 -L dependency=/root/repos/mumble-web-proxy/target/release/deps --extern protobuf_codegen_pure=/root/repos/mumble-web-proxy/target/release/deps/libprotobuf_codegen_pure-45ce27c7cdfca6c5.rlib --cap-lints allow` (exit code: 1)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.