From a9a3e896a3d397b2fbfd0d79481f82f97385d632 Mon Sep 17 00:00:00 2001 From: nicolas Date: Wed, 16 Aug 2017 11:34:15 +0200 Subject: [PATCH] fix(Cli): set if there is not a proxy config when joining a conference --- src/app/cli/Cli.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/app/cli/Cli.cpp b/src/app/cli/Cli.cpp index 8531ddb18..6bc21eec8 100644 --- a/src/app/cli/Cli.cpp +++ b/src/app/cli/Cli.cpp @@ -43,11 +43,16 @@ static void cliCall (QHash &args) { static void cliJoinConference (QHash &args) { const QString sipAddress = args.take("sip-address"); - const string displayName = ::Utils::appStringToCoreString(args.take("display-name")); - shared_ptr proxyConfig = CoreManager::getInstance()->getCore()->getDefaultProxyConfig(); - shared_ptr address = proxyConfig->getIdentityAddress()->clone(); - address->setDisplayName(displayName); - proxyConfig->setIdentityAddress(address); + if (!args["default-display-name"].isEmpty()) { + const shared_ptr core = CoreManager::getInstance()->getCore(); + const shared_ptr defaultProxyConfig = core->getDefaultProxyConfig(); + shared_ptr address; + if (!defaultProxyConfig) { + address = core->getPrimaryContactParsed(); + address->setDisplayName(::Utils::appStringToCoreString(args.take("default-display-name"))); + core->setPrimaryContact(address->asString()); + } + } args["method"] = QStringLiteral("join-conference"); CoreManager::getInstance()->getCallsListModel()->launchAudioCall(sipAddress, args); } @@ -151,6 +156,7 @@ void Cli::Command::execute (QHash &args) const { void Cli::Command::executeUri (const shared_ptr &address) const { QHash args; + //TODO: check if there is too much headers. for (const auto &argName : mArgsScheme.keys()) { const string header = address->getHeader(::Utils::appStringToCoreString(argName)); args[argName] = QByteArray::fromBase64(QByteArray(header.c_str(), header.length())); @@ -176,7 +182,7 @@ Cli::Cli (QObject *parent) : QObject(parent) { { "sip-address", {} }, { "conference-id", {} } }); 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 { return; } - // TODO: Check if there is any header when the `method` header is missing. const QString functionName = ::Utils::coreStringToAppString(address->getHeader("method")).isEmpty() ? QStringLiteral("call") : ::Utils::coreStringToAppString(address->getHeader("method"));