HalcyonGrid / halcyon

Halcyon 3d virtual reality world simulator
BSD 3-Clause "New" or "Revised" License
20 stars 20 forks source link

New Integration for the New Vivox 5 Needed (plus an Integration for Mumble) #131

Open life777eternal opened 3 years ago

life777eternal commented 3 years ago

Greetings, I posted a reply to a comment on this: https://hypergridbusiness.com/2021/06/free-vivox-still-available-needs-new-plugin/ Which I'll add in below.

The problem is the pricing on the new Vivox Voice. It's free for up to 5000 "PCU" (Peak Concurrent Users) which no OpenSim nor Halcyon Grid will likely ever get up to. The lowest price they have currently is $2,500 per month (for 5k - 50k PCU). I have an approved 'app' on the New Vivox Voice Service, through https://developer.vivox.com though it doesn't work on my little Halcyon World either.

The only way I could get it (the "app") "approved" was to connect to the "sandbox environment" with the Unity program, using their Tanks Unity Game Sample. (I had tried their "Core Windows SDK" thing, though I could't figure that out.)

On the new Developer.Vivox.com site, an "app" has to be created. Enter the application or game name, select the game genre(s), which would be Simulation mostly for Halcyon Worlds. Optionally upload game images. Then select Vivox Core, most likely. (The other three options are "Unity," "Unreal," & "Vivox Web" and then select the platforms the "app" supports. Then install Unity and find their Tanks Unity Game Sample.

https://discord.com/channels/479340711507132420/479340712199061566/852577916063580211 https://discord.com/channels/479340711507132420/479340712199061566/852611663336964096

It seems like they won't talk to anyone now without a paid plan. I sent them an email at vivoxsupport at unity3d dot com almost a month ago, and they never responded at all. And I've been emailing support at unity3d dot com and they said, "After discussing this with my team they have informed me that the best way to get in touch with Vivox Support is to submit a ticket directly with them, via the Developer Support Portal. You should be able to log in to your Vivox Developer account here: https://developer.vivox.com." https://youtube.com/watch?v=YbgK_xrlMck

Though when I click on "Submit Ticket" this appears as a popover:

Also I have installed Mumble on my server, though it needs it's own plugin for Halcyon, and an entry in the Halcyon.ini which I'll have to wait for. I sent an email to contact@mumble.info (CC'd to Vinhold Starbrook) and received a reply from Robert Adam robert@robert-adam.de last night.

Hi,

The "plugin" that you have found is actually just a language binding for the new plugin framework that is introduced with Mumble 1.4.0. The framework itself uses a C API and the wrapper you discovered provides C++ bindings for everyone that prefers using C++ for developing their plugins. Therefore you could create a plugin for Halcyon Grid yourself by either making use of the C++ bindings or by using the C API yourself.

Since I don't know what functionality you would like in such a plugin I can't be more specific. In any case though the plugin framework is documented at https://github.com/mumble-voip/mumble/tree/master/docs/dev/plugins

Best regards Robert

On 12.10.21, wrote:

Hi, how are you doing? I see on your github page that you have a plugin there, is that one that would work on Halcyon Grid?

The reason I'm asking is because I have installed Mumble on my server, since we won't be able to use the New free Vivox Voice service (courtesy of Unity) until a New plugin is made for it for Halcyon. Halcyon needs a plugin for Mumble also and an entry in the Halcyon.ini file in order for Halcyon to use Mumble.

Thank you.

The new Vivox Voice doesn't have a "vivox_sip_uri" nor a "vivox_server" it has "API" info with ENVIRONMENT DETAILS of "API End-Point" and "Domain" & API KEYS of "Issuer" "Secret Key" "Admin User ID" & "Admin Password" ... That's why a new plug-in is needed.

https://unity.com/products/vivox

https://mumble.info/downloads/

Thank you.

(The Mumble Server isn't actually working on my Server right now, though hopefully they'll fix that problem soon.)https://github.com/mumble-voip/mumble/issues/5284

emperorstarfinder commented 3 years ago

So a couple of things.

First, Vivox voice does in fact work for virtual worlds using Halcyon or OpenSim. However, they are not providing Vivox Voice free for new virtual worlds through their old framework. Virtual Worlds that currently have Vivox Voice can continue to use it for the time being.

Second, in order for the viewer to work properly with Mumble Voice you have to modify the viewer because the SLVoice inside viewer code cannot speak with mumble at all.

Halcyon does already have support for FreeSwitchVoice which you can set up a FreeSwitchVoice server and use instead of VivoxVoice which will work with the SLVoice.

my team uses VivoxVoice on our platform under the old way. So I can confirm that it does work for current worlds.

life777eternal commented 3 years ago

Thanks @emperorstarfinder for the information. I am aware that the original Vivox Voice server(s) is/are still working, though that's limited and the folks at Unity are not allowing anyone else to use them now. I requested it twice back in December 2020, but never heard anything from them at all. Although Vinhold recently told me that one Grid was approved in January, and I still never saw any email. Plus there's no telling when they'll shut down the original Vivox Voice server(s) for good. So we might want to start thinking about how to make the New Vivox Voice setup work with Halcyon, since they have been gracious enough to make it free for up to 5000 PCU (Peak Concurrent Users). (which any grid would be hard-pressed to get close to, most likely.)

Also I'm not really wanting to edit every users copy of FirestormOS before they login, so I guess I'll look into that FreeSwitchVoice Server. I wasn't aware it was still available. Plus I don't even have the knowledge of coding that some of you here have, that's not something I learned when I was younger, probably unfortunately, though probably should have. It might be harder to learn it now.

emperorstarfinder commented 3 years ago

There are a number of virtual worlds that have independently been approved by Unity. My team has approval via our corporate account so for us, we probably are insulated from some of the fiasco their decision caused but many grids are using VivoxVoice so I am not sure Unity will be quick to shut those voice accounts down in the immediate future. Probably the best solution would be for Halcyon to have it's own builtin voice service that works with SLVoice. That however, I unfortunately do not see as something that would happen in the immediate future either. So until that does happen, the best approach would be FreeSwitchVoice at least then it won't require messing about in the viewer code to alter SLVoice logic that would cause users to have to use multiple viewers when going to other worlds.

life777eternal commented 3 years ago

Aye, that's a limited number, and no more virtual worlds are going to be approved for the original Vivox Voice service. They've even removed the form at https://opensim.vivox.com/opensim/

2021-10-13-Developer Portal - OpenSIM - Brave

life777eternal commented 3 years ago

The Issue I posted on the FS Jira yesterday has been assigned to Beq Janus https://jira.firestormviewer.org/browse/FIRE-31246?jql=resolution%20%3D%20Unresolved%20AND%20reporter%20in%20(Ashford_House%2C%20EdAshford)

beqjanus commented 3 years ago

As I noted on the FS Jira, sLVoice.exe is not something we can easily take on, it is not a case of modifying an existing piece of software to follow a new API, it would entail writing something from scratch (though there are some remnants of older projects that might form a basis). There is no realistic chance that one of us can take on the task we simply don;t have the personal bandwidth or motivation for the extra workload. I would happily answer questions and assist in a hands-off manner anyone who would wish to write a new SLVoice service.

It occurs to me that the primary motivation for the Unity End-of-life is the ongoing cost of maintaining the infrastructure services when they clearly want to migrate all their free-tier users to a consolidated modern offering. What might be viable would be to identify a formal representative for all the "OpenSim" offshoots who could negotiate a support contract for the community service, and then seek to crowdfund that license across all the interested grids.

life777eternal commented 3 years ago

@beqjanus That Second Life Jira feature request that I posted was just closed with a "Resolution" of "Unactionable."

"kyle.linden - Kyle Linden added a comment - 20/Oct/21 12:10 PM Hello, and thank you for your feature request.

Incoming suggestions are reviewed in the order they are received by a team of Lindens with diverse areas of expertise. We consider a number of factors: Is this change possible? Will it increase lag? Will it break existing content? Is it likely that the number of residents using this feature will justify the time to develop it? This wiki page further describes the reasoning we use: http://wiki.secondlife.com/wiki/Feature_Requests

This particular suggestion, unfortunately, cannot be tackled at this time. However, we regularly review previously deferred suggestions when circumstances change or resources become available.

We are grateful for the time you took to submit this feature request. We hope that you are not discouraged from submitting others in the future. Many excellent ideas to improve Second Life come from you, our residents. We can’t do it alone.

Thank you for your continued commitment to Second Life."

https://jira.secondlife.com/browse/BUG-231331

emperorstarfinder commented 3 years ago

Unfortunately, Kyle Linden's response though not surprising is actually correct.

Linden Labs has a commercial license with Vivox for voice services (where SLVoice.exe and the corresponding Vivox.dll file in the viewer are from). They are allowed to use the code internally to compile SLVoice.exe but they cannot give that code to Third-Party Viewers.

Even if the Third-Party Viewer Developers (i.e. Firestorm, Alchemy, Catznip, Darkstorm, Kokua, etc.) could compile the code, because of the way the license agreed to between Vivox and Linden Labs works they would not be able to modify it in any way that would violate that license.

Likewise, Because halcyon is not owned by Linden Labs, they really wouldn't have an interest in doing an upgrade to work on platforms other than theirs.

Mumble's API is not really compatible with SLVoice and so would need its own MumbleVoice.exe code in the viewer. Because TPVs have a lot of work to do to maintain compatibility with OpenSim and Secondlife and most of those teams don't have enough actual developers that are active, without contribution from third parties, it is not likely that would happen in the near future.

The best answer would be for a built-in voice service that is compatible with SLVoice that works similar to Vivox. I do know there are already teams working on this (my team included for our platform) so it really is probably just a matter of time before a good strong solution arrives. In the meantime, I do encourage using Freeswitch which is compatible with SLVoice if you do not already have a Vivox Voice account that was created when the registration of OpenSim grids was available. Even those grids could change over to Freeswitch if they chose to.

Vinhold commented 2 years ago

This issue is a viewer development problem, not a Halcyon issue. I recommend this issue be closed on that basis, but be accessible for historical reference.

kf6kjg commented 2 years ago

I disagree. There's a serverside component that is needed.

Additionally there would need to be viewer support, but that's another issue.

emperorstarfinder commented 2 years ago

This would be both viewer and server.

In order for mumble to work correctly, it would in fact require changes in the viewer and would require some work on the server side.

Additionally, Vivox has a positional update channel that Mumble (and Freeswitch do not currently have) which allows for determining the distance between avatars based on the camera position of an avatar.

The appropriate recommendation would be for this to be a medium term to long term project issue.

life777eternal commented 1 year ago

Thank you @emperorstarfinder for the information, obviously Vivox 5 would be preferable, though support for Mumble could be helpful.

Ana-Green commented 1 year ago

I agree @emperorstarfinder and @life777eternal Vivox 5 would be indeed preferable.

Ana-Green commented 1 year ago

For Grid Owners:

First, you log in @ https://www.vivox.com/ you need an account to be able to migrate, for that you need an account at Unity. If done, you get am email like this: Thank you for creating a Unity ID

Click the below link to confirm your email. The link will expire in 15 days, once done you can choose for the FREE version of Voice and Text Chat (Vivox) 0 5000 connections.

Latest release is a beta: July 2023, released: Vivox Text Chat in Open Beta. Includes the following features: Chat History, Edit/Delete, Adaptive Chat Filter, Anti-flooding, Text evidence management, and large channel support. Changed: Critical changes that render previous versions of Voice and Text Chat (Vivox) obsolete. v 5

Ana Green (Hope I got all correct so far)

life777eternal commented 1 year ago

Greetings @Ana-Green I've already imported my account(s) on https://Developer.vivox.com to my Unity account. Or if a person didn't have that setup, they'd just create a new one on a Unity account. That's the easy part. It's getting Vivox 5 to work in Halcyon that will be the challenge. Because I doubt it would work with the "sl-voice.exe" which is currently used on FirestormOS to connect to the nearby voice chat and IM & group voice calls, isn't it?

Also an addition to the default "Halcyon.ini" file will be needed for the voice section, right-o? It currently has input selections for the older Vivox 4.

 [VivoxVoice]

    ; NOTE: This requires contacting Vivox and putting in an application with them.

    ; ## Apply for Vivox at http://support.vivox.com/opensim/ for your free account. See listed terms there.

    enabled = true

    ; vivox voice server 

    vivox_server = 

    ; vivox SIP URI 

    vivox_sip_uri = 

    ; vivox admin user name

    vivox_admin_user = 

    ; vivox admin password

    vivox_admin_password = 

Thank you

life777eternal commented 1 year ago

@Ana-Green Please see this forum post on Vivox. Thank you.

life777eternal commented 1 year ago

The New Vivox 5 has three options when setting up a New Vivox Voice Service. Unity, Unreal, & Custom. And Custom would probably be the one for Halcyon, right-o? Though the plug-in for Vivox on Halcyon will still have to be modified, or completely rebuilt/rewritten as there's no vivox_sip_uri anymore. As @beqjanus stated above two years ago: https://github.com/HalcyonGrid/halcyon/issues/131#issuecomment-946922488 Also the vivox_admin_user & vivox_admin_password seems to have been replaced by Token issuer & Token key. If you select Custom, then you get the option to download the Windows/Mac SDKs.

The Credentials for the New Vivox 5 has four items.

  1. Server
  2. Domain .... (Realm)
  3. Token issuer
  4. Token key

Getting Started with Vivox - Custom

"Use this information to connect to the environment and to generate Vivox access tokens."

Multiplayer - Credentials - Voice and Text Chat (Vivox) _ Unity Gaming Services

That phrase, "Vivox access tokens" is a new one as well.

Thank you.

mdickson commented 1 year ago

The Vivox 5 voice capability is incompatible with the support in firestorm (which is still version 4 with no announced plans to update). In addition to changes in the viewer using vivox 5 would require updates to the region module that interfaces with it. SO this is not just a simple configuration thing. New software would be required and in specifically the viewer’s case there’s no plans I am aware of (this has been discussed at length in my NGC discord with a viewer dev present) to implement v5 at this time. If they switch to something else besides the v4 protocol version they’re as much or more likely to use what was acquired via Sansar.

From: Edward Ashford @.> Sent: Sunday, October 1, 2023 11:42 AM To: HalcyonGrid/halcyon @.> Cc: Subscribed @.***> Subject: Re: [HalcyonGrid/halcyon] New Plug-in for the New Vivox 5 Needed (plus a plug-in for Mumble) (#131)

The New Vivox 5 has three options when setting up a New Vivox Voice Service. Unity, Unreal, & Custom. And Custom would probably be the one for Halcyon, right-o? Though the plug-in for Vivox on Halcyon will still have to be modified, or completely rebuilt/rewritten as there's no vivox_sip_uri anymore. Also the vivox_admin_user & vivox_admin_password seems to have been replaced by Token issuer & Token key. If you select Custom, then you get the option to download the Windows/Mac SDKs.

The Credentials for the New Vivox 5 has four items.

  1. Server
  2. Domain .... (Realm)
  3. Token issuer
  4. Token key

"Use this information to connect to the environment and to generate Vivox access tokens."

https://user-images.githubusercontent.com/25623649/271812539-fd3770fe-9cd3-4d51-9f26-2141f0f91cd3.png

That phrase, "Vivox access tokens" is a new one as well.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you are subscribed to this thread. https://github.com/notifications/beacon/AAI3NM2O45MO26WIR7EK64LX5GFLLA5CNFSM5F3F44X2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOM7LKABY.gif Message ID: @.***>

life777eternal commented 1 year ago

Aye @mdickson I agree this is not just a simple configuration thing. I just wanted to show the differences in configuration for Vivox 5, which obviously requires changes/updates/additions on both the grid and viewer software. (or complete rewrites as @beqjanus stated two years ago. https://github.com/HalcyonGrid/halcyon/issues/131#issuecomment-946922488 Thank you.

andsim commented 9 months ago

well guys now it time all grid except paid one is down including opensim

Vinhold commented 9 months ago

It must have been a server glitch, since voice service has been restored in Halcyon worlds that have it. Verified 2/5/2024 6:30pm. I had not yet received any email notice from Unity regarding any server shutdown action on the voice support as they promised to do in their last notice sent out around a year or more ago.

emperorstarfinder commented 9 months ago

Any grids currently running Vivox that had accounts prior to the discontinuation of the ability to register for new Vivox Accounts (pre-unity) will likely not lose their accounts and Vivox server connections. Only newer worlds that do not have the Vivox Account will be affected. The guidance my team has recieved from Vivox (still its own company within the Unity Technologies umbrella) is that they do not intend to shut down accounts currently in use that were created before the discontinuation of the ability to create the account. I should note however, this could change at some point down the road but as of right now I would say current worlds with a currently active free Vivox account should be fine for the near future.

As far as the TPVs making changes to their voice protocol, I would say that it is safer not to count on that happening. Not only would that be an awful lot of work for them, but it could create problems with the SLVoice library which they do not have access to. Any viewers that support both Second Life and grids running on platforms such as Halcyon will probably not want to make such a change. If any TPV would be more open to doing so it probably would be DayTurn Viewer as the developer is only focusing on OpenSim based worlds including the various soft and hard forks of OpenSim which includes Halcyon.