Go to file
Scott Hardin dc77504338 add caller pin for entering mumble session
caller must enter pin before being unmuted/undeafened in mumble room
2017-05-21 23:12:14 +02:00
.gitignore Refactor PJSUA callbacks. 2015-11-06 02:23:48 +01:00
AudioFramesMixer.cpp Implement AudioFramesMixer class. #1 2015-11-18 02:20:35 +01:00
AudioFramesMixer.hpp Implement AudioFramesMixer class. #1 2015-11-18 02:20:35 +01:00
CMakeLists.txt Allow joining specific channel on start 2015-11-30 23:24:41 +01:00
config.ini.example add caller pin for entering mumble session 2017-05-21 23:12:14 +02:00
Configuration.cpp Add option to set frame length in PJSIP. #14 2016-04-18 02:12:27 +02:00
Configuration.hpp Clean up CMakeFiles.txt and includes. 2015-11-04 01:31:46 +01:00
IncomingConnectionValidator.cpp Fix URI validator to include '.'. 2016-04-18 01:46:54 +02:00
IncomingConnectionValidator.hpp Use boost::regex instead of std::regex 2015-11-23 20:09:32 +01:00
LICENSE Add license and README. 2015-11-07 20:02:49 +01:00
main.cpp add caller pin for entering mumble session 2017-05-21 23:12:14 +02:00
MumbleChannelJoiner.cpp Forgot MumbleChannelJoiner component 2015-11-30 23:42:37 +01:00
MumbleChannelJoiner.hpp Forgot MumbleChannelJoiner component 2015-11-30 23:42:37 +01:00
MumbleCommunicator.cpp autodeaf: modify logic to cause less state chg 2017-05-21 19:42:56 +02:00
MumbleCommunicator.hpp Add autodeaf so users in other groups see status 2017-05-20 22:37:17 +02:00
PjsuaCommunicator.cpp add caller pin for entering mumble session 2017-05-21 23:12:14 +02:00
PjsuaCommunicator.hpp add caller pin for entering mumble session 2017-05-21 23:12:14 +02:00
README.md Add donation info to README. 2016-04-08 00:50:38 +02:00

mumsi - SIP to Mumble gateway

SIP to Mumble gateway based on PJSIP stack and mumlib library. It registers to SIP registrar and listens for incoming connections on the SIP account.

This enables the user to participate in Mumble conference using SIP client or perhaps ordinary telephone, by VoIP provider.

Dependencies

Build and usage

  • Install all needed dependencies

  • Clone and compile Mumlib library. Since it doesn't have any installer, clone it to common directory:

mkdir mumsi-dist && cd mumsi-dist
git clone https://github.com/slomkowski/mumlib.git
mkdir mumlib/build && cd mumlib/build
cmake ..
make
cd -
  • Then clone and build mumsi:
git clone https://github.com/slomkowski/mumsi.git
mkdir mumsi/build && cd mumsi/build
cmake ..
make
  • Copy example config.ini file and edit it according to your needs:
cp config.ini.example config.ini

Remember to add URIs which you want to make calls from. Calls from other URIs won't be answered.

  • To run the service, type:
./mumsi config.ini

Start at boot

mumsi provides no init.d scripts, but you can use great daemon mangaer, Supervisor. The sample configuration file:

[program:mumsi]
command=/home/mumsi/mumsi-dist/mumsi/build/mumsi config.ini
directory=/home/mumsi/mumsi-dist/mumsi
user=mumsi

stdout_logfile=/home/mumsi/console.log
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=4
stdout_capture_maxbytes=1MB
redirect_stderr=true

Issues

Port and NAT

Remember to allow incoming connections on port 5060 UDP in your firewall. If you're connecting to public SIP provider from machine behind NAT, make sure your setup works using some generic SIP client. Since SIP is not NAT-friendly by design, PJSIP usually takes care of connection negotiation and NAT traversal, but might fail. The most reliable solution is to configure port forwarding on your home router to your PC.

PJ_EINVALIDOP error

You may encounter following error when running mumsi on older distros

pjsua_conf_add_port(mediaPool, (pjmedia_port *)port, &id) error: Invalid operation (PJ_EINVALIDOP)

Some older versions of PJSIP are affected (confirmed for 2.3). In this case you have to update PJSIP to most recent version (2.4.5).

TODO:

  • multiple simultaneous connections
  • outgoing connections
  • text chat commands

Credits

2015, 2016 Michał Słomkowski. The code is published under the terms of Apache License 2.0.

Donations

If this project has helped you and you feel generous, you can donate some money to 14qNqXwqb6zsEKZ6vUhWVbuNLGdg8hnk8b.