A SIP gateway for multiparty-meeting
Try it by calling: roomname@letsmeet.no
This will make you join the other participants at: https://letsmeet.no/roomname
For every incoming call, a Kurento MediaPipeline is created. The pipeline can be seen below, with some parts removed (waiting screen PlayerEndpoint, notification sound PlayerEndpoint, participant name GStreamerFilter). Apart from the RtpEndpoint connected to the SIP client, all other RtpEndpoints correspond to a Mediasoup Producer or Consumer depending on it sending or receiving respectively. All Mediasoup audio Consumers connected to Kurento RtpEndpoints are sent into a Kurento Composite hub for mixing before the single audio stream is sent to the SIP caller. Only one Mediasoup video Consumer RtpEndpoint is sent to the SIP caller at any given time, and this is determined by speaker detection.
To run this gateway you will need several external components, install them according to their installation guides and your local requirements:
Clone this project:
$ git clone https://github.com/havfo/multiparty-meeting-sipgw.git
$ cd multiparty-meeting-sipgwEdit config/default.json with appropriate settings.
Install node modules:
$ npm installRun the Node.js server application in a terminal:
$ npm startYou can test it by calling: roomname@yourdrachtioconfiguredsipdomain.com
Stop your locally running server. Copy systemd-service file multiparty-meeting-sipgw.service to /etc/systemd/system/ and check location path settings:
$ cp multiparty-meeting-sipgw.service /etc/systemd/system/
$ edit /etc/systemd/system/multiparty-meeting-sipgw.serviceReload SystemD configuration and start service:
$ systemctl daemon-reload
$ systemctl start multiparty-meeting-sipgwIf you want to start multiparty-meeting-sipgw at boot time:
$ systemctl enable multiparty-meeting-sipgw- Håvar Aambø Fosstveit
MIT