Hi Juha!
i looked at partiSIPpation documentation and didn't quite understand why microphone and speaker volumes are part of the api. i would think that those are internal matters of the gui component. when gui places a call, i would imagine it gives to core an ip address and port that it wants to use for the media plus a list of codecs it supports. i don't understand what volume issue have to do with communication between gui and core.
The Core will be responsible for providing the audio, i.e. audio transport, accessing the sound devices (speaker, microphone), codecs and so on. So if the user wants to change the volume, the Core has to be notified and has to perform the change.
If another application is changing the volumes, or if the user does this manually, the Core has to notify the GUI that the volumes have been adjusted.
I hope the issue is somewhat clearer now.
-Matthias