diff --git a/assets/linphone.desktop b/assets/linphone.desktop index 98e74659d..663c8d701 100644 --- a/assets/linphone.desktop +++ b/assets/linphone.desktop @@ -7,7 +7,7 @@ Exec=linphone %u Icon=linphone Terminal=false Categories=Network;Telephony; -MimeType=x-scheme-handler/sip-linphone;x-scheme-handler/sip; +MimeType=x-scheme-handler/sip-linphone;x-scheme-handler/sip;x-scheme-handler/sips-linphone;x-scheme-handler/sips; # Translations diff --git a/cmake_builder/linphone_package/Info.plist.in b/cmake_builder/linphone_package/Info.plist.in index 4ad36963b..bcb50b2a3 100644 --- a/cmake_builder/linphone_package/Info.plist.in +++ b/cmake_builder/linphone_package/Info.plist.in @@ -41,6 +41,8 @@ sip sip-linphone + sips + sips-linphone diff --git a/cmake_builder/linphone_package/uninstall.nsi b/cmake_builder/linphone_package/uninstall.nsi index 84a21ede6..4ac26f09d 100644 --- a/cmake_builder/linphone_package/uninstall.nsi +++ b/cmake_builder/linphone_package/uninstall.nsi @@ -7,3 +7,5 @@ notRunningInUninstall: DeleteRegKey HKCR "sip" DeleteRegKey HKCR "sip-linphone" +DeleteRegKey HKCR "sips" +DeleteRegKey HKCR "sips-linphone" diff --git a/cmake_builder/linphone_package/uri-handler-install.nsi.in b/cmake_builder/linphone_package/uri-handler-install.nsi.in index 871a8de96..288e5f65c 100644 --- a/cmake_builder/linphone_package/uri-handler-install.nsi.in +++ b/cmake_builder/linphone_package/uri-handler-install.nsi.in @@ -10,4 +10,18 @@ WriteRegStr HKCR "sip-linphone" "URL Protocol" "" WriteRegExpandStr HKCR "sip-linphone\DefaultIcon" "" "@LINPHONE_DESKTOP_DIR@/assets/linphone.ico,1" WriteRegStr HKCR "sip-linphone\shell" "" "open" WriteRegStr HKCR "sip-linphone\shell\open" "" "command" -WriteRegStr HKCR "sip-linphone\shell\open\command" "" "$INSTDIR\bin\linphone.exe $\"%1$\"" \ No newline at end of file +WriteRegStr HKCR "sip-linphone\shell\open\command" "" "$INSTDIR\bin\linphone.exe $\"%1$\"" + +WriteRegStr HKCR "sips" "" "URL:sips Protocol" +WriteRegStr HKCR "sips" "URL Protocol" "" +WriteRegExpandStr HKCR "sips\DefaultIcon" "" "@LINPHONE_DESKTOP_DIR@/assets/linphone.ico,1" +WriteRegStr HKCR "sips\shell" "" "open" +WriteRegStr HKCR "sips\shell\open" "" "command" +WriteRegStr HKCR "sips\shell\open\command" "" "$INSTDIR\bin\linphone.exe $\"%1$\"" + +WriteRegStr HKCR "sips-linphone" "" "URL:sips-linphone Protocol" +WriteRegStr HKCR "sips-linphone" "URL Protocol" "" +WriteRegExpandStr HKCR "sips-linphone\DefaultIcon" "" "@LINPHONE_DESKTOP_DIR@/assets/linphone.ico,1" +WriteRegStr HKCR "sips-linphone\shell" "" "open" +WriteRegStr HKCR "sips-linphone\shell\open" "" "command" +WriteRegStr HKCR "sips-linphone\shell\open\command" "" "$INSTDIR\bin\linphone.exe $\"%1$\"" \ No newline at end of file diff --git a/src/app/cli/Cli.cpp b/src/app/cli/Cli.cpp index 2d201f741..9a8d12ddb 100644 --- a/src/app/cli/Cli.cpp +++ b/src/app/cli/Cli.cpp @@ -334,8 +334,8 @@ QMap Cli::mCommands = { void Cli::executeCommand (const QString &command, CommandFormat *format) { shared_ptr address = linphone::Factory::get()->createAddress( - ::Utils::appStringToCoreString(command) - ); + ::Utils::appStringToCoreString(command) + ); // Execute cli command. if (!address) { @@ -358,11 +358,14 @@ void Cli::executeCommand (const QString &command, CommandFormat *format) { qInfo() << QStringLiteral("Execute uri command: `%1`.").arg(command); string scheme = address->getScheme(); - if (scheme != "sip" && scheme != "sip-linphone") { - qWarning() << QStringLiteral("Not a valid uri: `%1`.").arg(command); - return; - } + for (const string &validScheme : { "sip", "sip-linphone", "sips", "sips-linphone" }) + if (scheme == validScheme) + goto success; + qWarning() << QStringLiteral("Not a valid uri: `%1` Unsupported scheme: `%2`.") + .arg(command).arg(::Utils::coreStringToAppString(scheme)); + return; +success: const QString functionName = ::Utils::coreStringToAppString(address->getHeader("method")).isEmpty() ? QStringLiteral("call") : ::Utils::coreStringToAppString(address->getHeader("method"));