I just compiled a version of my binary with InitialAudio. It failed with exactly the same error as I had described. InitialAudio is the culprit! It seems that the spirit CM "should" ignore it when used with EnsureChannel as mentioned in the docs, but it causes it to fail...
Tp::ConnectionCapabilities *pCap = m_account.data()->connection().data()->capabilities(); qDebug() << ">> supportsAudioCalls: " << pCap->supportsAudioCalls();
qDebug() << "----- requestable channels"; Tp::RequestableChannelClassList list = pCap->requestableChannelClasses(); foreach ( Tp::RequestableChannelClass klass, list) { QString channelType = klass.fixedProperties["org.freedesktop.Telepathy.Channel.ChannelType"].toString(); // "org.freedesktop.Telepathy.Channel.Type.StreamedMedia" if (channelType==TELEPATHY_INTERFACE_CHANNEL_TYPE_STREAMED_MEDIA) { qDebug() << ">> supports Streamed media"; qDebug() << ">> properties: " << klass.allowedProperties; if ( klass.allowedProperties.contains(TELEPATHY_INTERFACE_CHANNEL ".Type.StreamedMedia.InitialAudio") ) { qDebug() << ">> supports audio"; } if ( klass.allowedProperties.contains(TELEPATHY_INTERFACE_CHANNEL ".Type.StreamedMedia.InitialVideo") ) { qDebug() << ">> supports video"; } continue; } }