slomkowski / mumsi

SIP to Mumble gateway/bridge using PJSUA stack.
Apache License 2.0
41 stars 33 forks source link

Add multi-call SIP support #19

Closed mrscotty closed 7 years ago

mrscotty commented 7 years ago

The underlying pjsua library supports multiple SIP calls with a single SIP account. By implementing this in mumsi, each SIP dial-in caller can get their own Mumble user connection to the server. This allows each user, then, to be managed in the chat sessions (i.e. mute/priority) by the other users logged in with a regular Mumble client.

For the implementation, the pjsua _Account is still a singleton, but each _Call gets tracked separately in a "calls" array in the pjsuaCommunicator. At initialization, instead of a single mumbleCommunicator, one instance is created for each supported call and the callbacks of the _Call and mumbleCommunicator instances are connected.

mrscotty commented 7 years ago

There's now an pre-alpha version available at [https://github.com/mrscotty/mumsi/tree/feature/multiline].

It has some issues in the mumlib::Transport layer, so it's not ready for prime time.

It depends on the latest work from mumlib [https://github.com/mrscotty/mumlib/tree/develop].

slomkowski commented 7 years ago

I myself was thinking about this feature for some time, but I didn't have the time to implement it. Thank you for your contribution! I'll look at the code later.

mrscotty commented 7 years ago

Implemented in pull request #18

mrscotty commented 7 years ago

Hi Michal,

The pull request from my develop branches for mumlib and mumsi now also include the code for implementing client certificates. There's also a bash script for creating self-signed client certs for the mumble users.

I didn't bother with the passphrase support (yet) because it involves a callback and I figured either the passphrase is in the config.ini or there is none on the certs, and it wasn't important to me at the moment.

BTW, my C++ is rusty--it's been quite a few years since those courses in college--so please feel free to be critical on the implementation and make suggestions with regards to memory management, etc.

Best regards,

Scott

On May 29, 2017, at 16:26, Michał Słomkowski notifications@github.com wrote:

I myself was thinking about this feature for some time, but I didn't have the time to implement it. Thank you for your contribution! I'll look at the code later.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub, or mute the thread.