Why don't my conference input settings work?

Any settings which are used to configure a conference input must be set after the input has been added to a conference. This means that

sm_conf_prim_add() must have been called on that channel - sm_conf_prim_start() only affects the output and is not sufficient (it's also not necessary unless the output is also being used for conferencing).

For conference outputs, there are two API functions, sm_conf_prim_start()and sm_conf_prim_abort() which explicitly specify the lifetime of the conference output. When a conference output setting is changed (for example, volume) this setting is retained for the lifetime of the output.

However there are no API functions that explicitly specify the lifetime of conference inputs. Instead the API library creates a conference input resource when sm_conf_prim_add() specifies an input channel which was not previously a conference input. Similarly, it deletes the conference input resource when sm_conf_prim_leave() removes an input from its last conference. A side effect of this is that input settings cannot be set until an input is already in a conference and the settings will be lost when the input is no longer in a conference.