> Inspired by my refusal to run Skype, I'm looking to set up a voice chat
> server to run on OpenBSD, and I came across murmur a few weeks ago. It meets
> my requirements of being able to encrypt traffic, being BSD licensed, and
> having a client for windows so that my not-yet-enlightened friends would be
> able to chat with me on my server.
>
> I looked for an OpenBSD port, but the only thing I found was hs-murmur-hash,
> but this is " a good, fast, general purpose, non-cryptographic hashing
> function". (Not what I'm looking for.) I see that murmur runs on FreeBSD and
> based on the archives it appears to have run on OpenBSD under linux
> emulation in the past (although linux emulation has just been removed?).
>
> Has anyone had any recent success with murmur? Or perhaps could someone
> suggest alternative/better voice chat software?
>
> Any insight is much appreciated.


I've been running umurmur for the same purpose for several months, now.

https://code.google.com/p/umurmur/

UDP does not work for me--only TCP mode--and I disabled realtime
scheduling.  Aside from that, it compiles fairly and installs well on
OpenBSD, and has a much smaller footprint than its progenitor.  A patch
for 0.2.4 is below; I haven't tried anything newer yet.


--- src/Makefile
+++ src/Makefile
@@ -26,8 +26,8 @@ OBJS:=$(patsubst %.c, %.o, $(SRCS))
 # EXTRA_CFLAGS:=
 # EXTRA_LDFLAGS:=-lcrypto -lssl 
 
-CFLAGS:=$(CFLAGS) -I. -Wall $(EXTRA_CFLAGS)
-LDFLAGS:=$(EXTRA_LDFLAGS) $(LDFLAGS) -lconfig 
+CFLAGS:=$(CFLAGS) -I. -Wall $(EXTRA_CFLAGS) -I/usr/local/include
+LDFLAGS:=$(EXTRA_LDFLAGS) $(LDFLAGS) -L /usr/local/lib -lconfig -lcrypto -lssl
 
 umurmurd:google/protobuf-c/libprotobuf_c.a $(OBJS)
        $(CC) $(LDFLAGS) $(OBJS) $(SSL_LIB) google/protobuf-c/libprotobuf_c.a 
-o umurmurd
--- src/client.c
+++ src/client.c
@@ -28,6 +28,7 @@
    NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
+#include <sys/types.h>
 #include <sys/poll.h>
 #include <sys/socket.h>
 #include <fcntl.h>
--- src/google/protobuf-c/protobuf-c-data-buffer.c
+++ src/google/protobuf-c/protobuf-c-data-buffer.c
@@ -23,7 +23,7 @@
 #include <unistd.h>
 #include <string.h>
 #include <errno.h>
-#include <alloca.h>
+#include <stdlib.h>
 #include "protobuf-c-data-buffer.h"
 
 #undef TRUE
--- src/main.c
+++ src/main.c
@@ -37,7 +37,7 @@
 #include <sys/utsname.h>
 #include <fcntl.h>
 #include <signal.h>
-#include <sched.h>
+/* #include <sched.h> */
 #include <errno.h>
 #include <string.h>
 #include <stdlib.h>
@@ -109,18 +109,6 @@ void daemonize()
                
 }
 
-void setscheduler()
-{
-       int rc;
-       struct sched_param sp;
-
-       sp.sched_priority = sched_get_priority_min(SCHED_RR); /* Should suffice 
*/
-       Log_info("Setting SCHED_RR prio %d", sp.sched_priority);
-       rc = sched_setscheduler(0, SCHED_RR, &sp);
-       if (rc < 0)
-               Log_warn("Failed to set scheduler: %s", strerror(errno));
-}
-
 void printhelp()
 {
        printf("uMurmur version %s. Mumble protocol %d.%d.%d\n", 
UMURMUR_VERSION, PROTVER_MAJOR, PROTVER_MINOR, PROTVER_PATCH);
@@ -128,7 +116,6 @@ void printhelp()
        printf("       -d             - Do not deamonize\n");
        printf("       -p <pidfile>   - Write PID to this file\n");
        printf("       -c <conf file> - Specify configuration file\n");
-       printf("       -r             - Run with realtime priority\n");
        printf("       -h             - Print this help\n");
        exit(0);
 }
@@ -142,7 +129,7 @@ int main(int argc, char **argv)
        struct utsname utsbuf;
        
        /* Arguments */
-       while ((c = getopt(argc, argv, "drp:c:h")) != EOF) {
+       while ((c = getopt(argc, argv, "dp:c:h")) != EOF) {
                switch(c) {
                case 'c':
                        conffile = optarg;
@@ -156,9 +143,6 @@ int main(int argc, char **argv)
                case 'h':
                        printhelp();
                        break;
-               case 'r':
-                       realtime = true;
-                       break;
                default:
                        fprintf(stderr, "Unrecognized option\n");
                        printhelp();
@@ -203,9 +187,6 @@ int main(int argc, char **argv)
        Chan_init();
        Client_init();
 
-       if (realtime)
-               setscheduler();
-       
        Server_run();
        
        SSLi_deinit();

Reply via email to