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.
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.