# need help with mumble-ruby



## Killer_Rubber_Ducky (Sep 11, 2013)

Hey guys,

So I am running a headless mumble client called mumble-ruby. I ahve followed all the listed instructions for setting it up. The problem is that there is no information on how to setup the SSL cert for the headless client. This makes it so that i can not register the headless client when it connects to the server. i want to set ACLs for it but I can not if it is not registered.

Any suggestions?


----------



## Crone (Sep 15, 2013)

Hey, I have also been playing with mumble-ruby recently and I stepped into this issue aswell.

I am not sure it can be done given the current API of client.rb but I will post here if I find anything. My best guess would be to implement a new function for the client doing exactly that by using the protocol documentation of mumble.

In any case if you find anything, it would be wonderful if you contact me via this thread or through a pm. I will do the same thing.

cya


----------



## Crone (Sep 16, 2013)

Ok so I did it. In the end I needed to add code that generates and SSL certificate to the source files of the mumble-ruby gem.

I attached the required files.
You need to replace the files in /var/lib/gems/1.9.1/gems/mumble-ruby-0.0.3/lib/mumble-ruby/ (or wherever you have mumble ruby) with the ones I gave you (don't put config.rb there though). Of course store a backup first.

So here is how it works:

Lets assume we have a headless bot like this one


```
#!/usr/bin/ruby

require 'mumble-ruby'
require './config.rb'
cli = Mumble::Client.new('host', 64738, 'BotName','serverpassword', $options)
cli.connect
cli.on_text_message do |msg|
	if msg.message == '!text'
              cli.text_channel('cli.current_channel','reply')
	end
end
sleep(1)
print 'Press enter to terminate script';
gets
cli.disconnect
```

It is a simple bot that replies to the command !text with 'reply'. The deal is that you now need to parse $options to the client initialization function, which means it now has an extra argument. The config.rb file (notice that I require it) stores these options. They are certificate parameters required for the generation of the certificate. 

So all you need to do is

1) edit the config.rb file to your needs
2) write a headless client and require the config.rb file (*which must be in the same folder with the client, or you will need to require its full path*) and initialize like I am.

Notice that there will be a new folder created in the headless client's folder with the name you gave to the client. This stores the certificates. The first time you may need to run the client as root since making a directory is kind of weird in this situation. After the first time you can run it normally. That's pretty much it, you can now register your client. 

If you are wondering about the details of what I did, it's nothing crazy, I just found a simple certificate generation engine in a github bot project and implemented it to mumble-ruby's source. Just compare the source files and you'll figure it out.

If you have any questions, please pm me so I get emailed since I am not a regular forum member.


----------

