Coder Social home page Coder Social logo

muggot / openmcu Goto Github PK

View Code? Open in Web Editor NEW
215.0 52.0 154.0 28.8 MB

openmcu.ru

License: Other

Shell 3.00% HTML 0.28% Makefile 4.91% C++ 44.12% C 45.59% CSS 0.16% XSLT 0.01% Python 0.07% Assembly 0.12% Objective-C 0.72% Awk 0.06% MATLAB 0.01% Inno Setup 0.01% JavaScript 0.61% NSIS 0.05% PHP 0.03% Batchfile 0.07% DIGITAL Command Language 0.01% Yacc 0.17% Lex 0.03%

openmcu's Introduction

----------------------------------
Video conference server OpenMCU-ru
----------------------------------

Authors are listed in the file "AUTHORS".

License: MPL, see file "COPYING" for details. Some plugins have
other (open source) licenses - see the appropriate files in the plugin folders.

Installation instructions can be found in the file "INSTALL".

Changelog can be found in the file "NEWS".

---------------
1. Introduction
---------------

OpenMCU-ru is an open-source Mutli Conference Unit using the H.323, SIP and RTSP
protocols (software MCU). It is fork of the original OpenMCU with many new features.
Server runs on Linux, Windows and FreeBSD.

-----------
2. Features
-----------

OpenMCU-ru has the following features:
  * configuration and control via the web interface on port 1420
    (use for connecting: http://host:1420)
  * supported interface languages: English, French, Japanese, Portuguese, Russian, Ukrainian
  * supported protocols: H.323, RTSP, SIP
    - built-in H.323 Gatekeeper
    - built-in SIP registrar
    - RTSP server and client
    - internal calls, including between different protocols
  * supported video codecs: H.261, H.263, H.263+, H.264, MP4V-ES, VP8
  * supported audio codecs: G.711, G.722, G.722.1, G.722.1C, G.722.2, G723.1, G.726, G.729, iLBC, Speex, SILK, OPUS
  * does not require codec hardware to operate
  * outgoing video is cached to reduce the load on the server
  * several different conferences can be taking place at the same time
    using different 'rooms'
  * display statistics on calls in real time
  * initiate calls from the MCU to remote endpoints
  * conference recording
  * conference translation as web stream


------------
3. Operation
------------

OpenMCU-ru listens on H.323 and SIP ports for incoming connections.

On incoming connection server creates room, specified by remote
terminal and connects client to this room. If client did not specify
any room then client will be connected to default room
("room101" by default, can be changed in options).

You can call to the server using the destination address:
"room_name@hostname_or_ip_address".

New rooms are created automatically when they are accessed.
Also, there is default room for clients which did not specify room
or which are unable to specify it (for example NetMeeting).

During the conference you will hear other members and will see them
in the video window. You can setup voice activation detection (VAD),
change screen layout and configure other parameters via the web interface.

openmcu's People

Contributors

aghasi avatar andreas-schwab avatar kay27 avatar muggot avatar rayanayar avatar sandronimus avatar schmel avatar willamowius avatar xak-mcu avatar yidaoru 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  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  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

openmcu's Issues

[RPMLINT] Program causes undefined operation

I: Program causes undefined operation
(likely same variable used twice and post/pre incremented in the same expression).
e.g. x = x++; Split it in two operations.

openmcu sequence-point ./iLBC/iCBSearch.c:124

MCU will crash while receive bye event

To do loop test of join&quit from a room by sip endpoint.
Openmcu-ru process sometimes crash while received bye event.

The system log while crash:
57:54.878
recv 521 bytes from udp/[120.25.57.97]:5060 at 08:39:02.143366:


BYE sip:[email protected]:7060;transport=udp SIP/2.0
Via: SIP/2.0/UDP 120.25.57.97:5060;branch=z9hG4bKb24a.0e30a351.0
Via: SIP/2.0/UDP 183.16.191.192:64186;received=183.16.191.192;rport=64186;branch=z9hG4bKPjof.phL.HVAVW1IPp4qeA6bBRxo9Y6-m.
Max-Forwards: 69
From: sip:[email protected];tag=T5.8SmEAeRjXI4wegAZ2bCsTpgXU6Uqj
To: sip:[email protected];tag=Hm6a2F6HSmUSp
Call-ID: YzpwbSrIID9yvzBjKikmNPqZZo0inNWC
CSeq: 16698 BYE
User-Agent: PJSUA v2.4 Linux-3.19.0.33/i686/glibc-2.19
Content-Length: 0


The trace log:
0:00.021 ThreadID=0x7eff50d737e0 OpenMCU-ru (0) Version 4.1.6 by OpenMCU-ru Team on Unix Linux (2.6.32-573.18.1.el6.x86_64-x86_64) at 2016/7/1 15:41:07.284
0:00.021 ThreadID=0x7eff50d737e0 OpenMCU-ru mcu.cxx(589) OpenMCU-ru Trace Level 0
0:00.021 ThreadID=0x7eff50d737e0 OpenMCU-ru mcu.cxx(765) OpenMCU-ru git revision:
0:00.021 ThreadID=0x7eff50d737e0 OpenMCU-ru mcu.cxx(768) OpenMCU-ru GCC 4.4.7 20120313 (Red Hat 4.4.7-17)
0:00.021 ThreadID=0x7eff50d737e0 OpenMCU-ru mcu.cxx(771) OpenMCU-ru PTLib 2.0.1
0:00.021 ThreadID=0x7eff50d737e0 OpenMCU-ru mcu.cxx(774) OpenMCU-ru H323Plus 1.20.2
0:00.021 ThreadID=0x7eff50d737e0 OpenMCU-ru mcu.cxx(777) OpenMCU-ru Sofia-SIP 1.12.11
0:00.021 ThreadID=0x7eff50d737e0 OpenMCU-ru mcu.cxx(787) OpenMCU-ru libavcodec 53.61.100
0:00.021 ThreadID=0x7eff50d737e0 OpenMCU-ru mcu.cxx(790) OpenMCU-ru libavutil 51.35.100
0:00.021 ThreadID=0x7eff50d737e0 OpenMCU-ru mcu.cxx(793) OpenMCU-ru libavformat 53.32.100
0:00.021 ThreadID=0x7eff50d737e0 OpenMCU-ru mcu.cxx(796) OpenMCU-ru libswscale 2.1.100
0:00.021 ThreadID=0x7eff50d737e0 OpenMCU-ru mcu.cxx(800) OpenMCU-ru libswresample 0.6.100
0:00.084 ThreadID=0x7eff50d737e0 OpenMCU-ru mcu.cxx(412) OpenMCU-ru Opened master socket for HTTP: 0.0.0.0:1420

Ended registration of OPENMCU.RU domain name | Закончилась регистрация доменного имени OPENMCU.RU

But don't panic. You could access OPENMCU.RU by adding the following lines in 'hosts' file of your operating system: / Сохраняем спокойствие. По-прежнему можно попасть на сайт, добавив такие строки в файл 'hosts' вашей операционной системы:

85.237.59.170 openmcu.ru
85.237.59.170 www.openmcu.ru

We apologize. Приносим извинения.

web interface - lock the templates crashes daemon

Hi,

Today, trying to figure out how to reproduces some crashes I'm having on my box, I found a sequence of action(not used on normal operation) that crashed the daemon.

Here is the sequence:

create a room
select a template
connect one or more clients
lock this room
change a template

control on web interface returns : on the fly control error: reply code 0

Without any client connected, I'm able to change template without any crash or issue.

Is openmcu still supported?

Hi to all,

I used the openmcu a couple of years ago, was really impressed with the possibilities of this software.
Unfortunately, neither the website nor the good old forum are working.

Is the project dead?

Do you have documentation?

I cannot find documentation. Reference in Wiki does't work also. Do you have any source of actual documentation?

H.239

Does openMCU supports h.239 dual stream which is supported by most of video conference equipment

What it does It create 2 separate video streams and send to MCU.

Scenario 1
Content which is 2nd stream is set to priority. A fix Video layout (1 large 5 Small ) is selected when 2nd stream is detected.

scenario 2

dual stream Supported end points can auto layout on local machine and provide 2 separate videos on 2 separate screens.

please let me know if you have tried it. Thank you

openmcu-ru critical memory leak

I have a big problem with openmcu, it has a critical leak memory issue.

  • sip registeration with sofia-sip is leaking memory.
  • big memory leak in video call.

Is there any solution or tools for me to check and fix the leak memory?

@P/S: I used the current version from github.

avcodec.h missing while configure OpenMCU-ru 4.0

Hi Muggot,

I am trying to build OpenMCU again, this time using the 4.0 source code version on CENTOS 7 as you suggested, the problem this time ocurs while running ./configure script, the output shows the avcodec headers missing and recomended to install either FFMpeg or Libav but I already have both packages installed.

I will appreaciate any light you can shed in this matter, in order to help me advance.

Best regards

Separate RTP Port Ranges for QoS Classification

This is a feature request.

It would be extremely helpful to be able to specify different port ranges for each type of service for proper QoS classification on the network rather than lumping both the RTP audio streams and RTP video streams into a single RTP range. For example, most organizations would want to be able to specify 46 or the EF dscp for the audio RTP stream, 34 dscp for the video RTP stream, and then 26 dscp for the signaling. As it is right now, we are forced to incorrectly classify the different aspects of traffic into categories they should not be in and in situations where there is traffic congestion on the network, you would more than likely want to dump the video before any audio traffic. Thanks!

Openmcu operational issues

I am facing following issues in Openmcu ver 4.1.6-

  1. Whenever I call from Polycom HDX 8000 HD VC system, it always goes to default room. I tried call both ways i.e. @ and ## ?
  2. How to append room name while calling from a SIP client ?
  3. Does Openmcu support password based authentication for SIP/H323 endpoints ?
  4. Is is possible to send a user's presentation from a PC as endpoint ?

Problems compiling Raspberry PI 2

I tried to compile the openmcu in a Raspberry PI 2 (ARM7 processor) and I can go pretty far. However, eventually I get the error included below. Apparently, the assembly instruction 'pause' is being included in the compilation of video.cxx and it does not exist in ARM processors. I'm puzzled because I could not find any inline assembly anywhere. BTW, I am getting the following warning in 'configure'

$ ./configure
...
configure: WARNING: "CPU armv7l not recognized - proceed with caution!"
configure: OSTYPE set to linux
configure: OSRELEASE set to "3.18.0-trunk-rpi2"
configure: MACHTYPE set to armv7l
...

$ make
...
make[1]: Entering directory '/home/pi/RaspberryPi/telepresence/openMCU-ru/openmcu/openmcu-ru'
[CC] obj/main.o
[CC] obj/video.o
video.cxx: In member function ‘virtual BOOL TestVideoMixer::AddVideoSource(ConferenceMemberId, ConferenceMember&)’:
video.cxx:1780:19: warning: variable ‘o’ set but not used [-Wunused-but-set-variable]
video.cxx: In member function ‘virtual void TestVideoMixer::MyChangeLayout(unsigned int)’:
video.cxx:1820:19: warning: variable ‘o’ set but not used [-Wunused-but-set-variable]
/tmp/ccISdYAV.s: Assembler messages:
/tmp/ccISdYAV.s:30568: Error: bad instruction pause' /tmp/ccISdYAV.s:38891: Error: bad instructionpause'
/tmp/ccISdYAV.s:42873: Error: bad instruction pause' /tmp/ccISdYAV.s:46336: Error: bad instructionpause'
Makefile:59: recipe for target 'obj/video.o' failed
make[1]: *** [obj/video.o] Error 1

Compiling error

Hello, i tried compile into debian testing (buster 10) and this is the link error

/usr/bin/ld: -r and -pie may not be used together

gcc -std=c99 -O2 -g3 -Wall -Wextra -Wno-unused-parameter -fno-strict-aliasing -fPIC -DZRTP_AUTOMAKE=1 -DHAVE_CONFIG_H -I../../include -I../../include/enterprise -I../../projects/gnu/config -I../../third_party/bgaes -I. -I. -o lbn00.o -Wl,-r -nostdlib lbn00.c -lgcc

gcc 6.4.0 20170704 (Debian 6.4.0-1)

Asking about project status

Hi @muggot and thanks for this great project, I found that last update on wiki is about debian 7, by the now the latest debian stable in 9. Also the ptlib version that used in openmcu is 2.0 but the latest ptlib version is 2.16. Are there any plan to update this project?

Thanks.

Architecture does not scale well

Having the web frontend, MCU, H.323 and SIP in one package does not scale and is a single point of failure.

I'm currently working on creating a web frontend which handles conference scheduling, realtime presiding using WebRTC and authentication through SAML federation.

To do this, I need to interface with the MCU using either websockets+json, ajax+json or xmlrpc. At present, I have a working WebRTC client for MedoozeMCU, and would like to get it working using OpenMCU-ru. This is the architecture I'm proposing:

  • Add a Websocket+JSON interface to control the MCU
  • Implement SRTP with DTLS + STUN in the MCU for WebRTC
  • Drop H.323 support at the MCU, convert to SIP at FreeSwitch/Asterisk
  • Drop Web support at the MCU, implement externally
          clients                   presider/webrtc clients
  | | | | | | | | | | | |             | | | | | | | | | |
 ________________________           __________ __________
|            |            |         |          |          |
| FreeSwitch | FreeSwitch |<--[DB]--| Frontend | Frontend |
|____________|____________|         |__________|__________|
      |            |                      |          |
 [SIP/RTP routed to MCUs]   [Realtime control+RTP traffic routed to
MCUs]    
 _______ _______ _______ _______ _______ _______ _______
|       |       |       |       |       |       |       |
|  MCU  |  MCU  |  MCU  |  MCU  |  MCU  |  MCU  |  MCU  |
|_______|_______|_______|_______|_______|_______|_______|

I currently have this working with MedoozeMCU at http://github.com/synnack/videoconference/ with realtime participation and drag and drop support for the conference presider.

It is prepared for OpenMCU-ru, but I stopped working on it because of the lack of SRTP/STUN which is required for use with WebRTC RTP streams.

Dose openmcu support WebRtc?

Sorry, don't know where to ask questions. If it is not the right place please fell free to delete it.

Currently I am trying to create a MCU with open source project, worked on erizo for weeks, still can't make it work, I am thinking switch to something else.

So:

Dose openmcu support WebRtc?

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.