Commit a9a3e896 authored by nicolas's avatar nicolas

fix(Cli): set if there is not a proxy config when joining a conference

parent 34759e3a
...@@ -43,11 +43,16 @@ static void cliCall (QHash<QString, QString> &args) { ...@@ -43,11 +43,16 @@ static void cliCall (QHash<QString, QString> &args) {
static void cliJoinConference (QHash<QString, QString> &args) { static void cliJoinConference (QHash<QString, QString> &args) {
const QString sipAddress = args.take("sip-address"); const QString sipAddress = args.take("sip-address");
const string displayName = ::Utils::appStringToCoreString(args.take("display-name")); if (!args["default-display-name"].isEmpty()) {
shared_ptr<linphone::ProxyConfig> proxyConfig = CoreManager::getInstance()->getCore()->getDefaultProxyConfig(); const shared_ptr<linphone::Core> core = CoreManager::getInstance()->getCore();
shared_ptr<linphone::Address> address = proxyConfig->getIdentityAddress()->clone(); const shared_ptr<linphone::ProxyConfig> defaultProxyConfig = core->getDefaultProxyConfig();
address->setDisplayName(displayName); shared_ptr<linphone::Address> address;
proxyConfig->setIdentityAddress(address); if (!defaultProxyConfig) {
address = core->getPrimaryContactParsed();
address->setDisplayName(::Utils::appStringToCoreString(args.take("default-display-name")));
core->setPrimaryContact(address->asString());
}
}
args["method"] = QStringLiteral("join-conference"); args["method"] = QStringLiteral("join-conference");
CoreManager::getInstance()->getCallsListModel()->launchAudioCall(sipAddress, args); CoreManager::getInstance()->getCallsListModel()->launchAudioCall(sipAddress, args);
} }
...@@ -151,6 +156,7 @@ void Cli::Command::execute (QHash<QString, QString> &args) const { ...@@ -151,6 +156,7 @@ void Cli::Command::execute (QHash<QString, QString> &args) const {
void Cli::Command::executeUri (const shared_ptr<linphone::Address> &address) const { void Cli::Command::executeUri (const shared_ptr<linphone::Address> &address) const {
QHash<QString, QString> args; QHash<QString, QString> args;
//TODO: check if there is too much headers.
for (const auto &argName : mArgsScheme.keys()) { for (const auto &argName : mArgsScheme.keys()) {
const string header = address->getHeader(::Utils::appStringToCoreString(argName)); const string header = address->getHeader(::Utils::appStringToCoreString(argName));
args[argName] = QByteArray::fromBase64(QByteArray(header.c_str(), header.length())); args[argName] = QByteArray::fromBase64(QByteArray(header.c_str(), header.length()));
...@@ -176,7 +182,7 @@ Cli::Cli (QObject *parent) : QObject(parent) { ...@@ -176,7 +182,7 @@ Cli::Cli (QObject *parent) : QObject(parent) {
{ "sip-address", {} }, { "conference-id", {} } { "sip-address", {} }, { "conference-id", {} }
}); });
addCommand("join-conference", tr("joinConferenceFunctionDescription"), ::cliJoinConference, { addCommand("join-conference", tr("joinConferenceFunctionDescription"), ::cliJoinConference, {
{ "sip-address", {} }, { "conference-id", {} }, { "display-name", {STRING, true } } { "sip-address", {} }, { "conference-id", {} }, { "default-display-name", {STRING, true} }
}); });
} }
...@@ -227,7 +233,6 @@ void Cli::executeCommand (const QString &command, CommandFormat *format) const { ...@@ -227,7 +233,6 @@ void Cli::executeCommand (const QString &command, CommandFormat *format) const {
return; return;
} }
// TODO: Check if there is any header when the `method` header is missing.
const QString functionName = ::Utils::coreStringToAppString(address->getHeader("method")).isEmpty() const QString functionName = ::Utils::coreStringToAppString(address->getHeader("method")).isEmpty()
? QStringLiteral("call") ? QStringLiteral("call")
: ::Utils::coreStringToAppString(address->getHeader("method")); : ::Utils::coreStringToAppString(address->getHeader("method"));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment