Fix transport setting in account parameters
This commit is contained in:
parent
b91c3842a1
commit
521c4eeb02
3 changed files with 36 additions and 19 deletions
|
|
@ -60,8 +60,8 @@ AccountCore::AccountCore(const std::shared_ptr<linphone::Account> &account) : QO
|
||||||
mRegisterEnabled = params->registerEnabled();
|
mRegisterEnabled = params->registerEnabled();
|
||||||
mMwiServerAddress =
|
mMwiServerAddress =
|
||||||
params->getMwiServerAddress() ? Utils::coreStringToAppString(params->getMwiServerAddress()->asString()) : "";
|
params->getMwiServerAddress() ? Utils::coreStringToAppString(params->getMwiServerAddress()->asString()) : "";
|
||||||
mTransports << "TCP"
|
mTransports << "UDP"
|
||||||
<< "UDP"
|
<< "TCP"
|
||||||
<< "TLS"
|
<< "TLS"
|
||||||
<< "DTLS";
|
<< "DTLS";
|
||||||
mTransport = LinphoneEnums::toString(LinphoneEnums::fromLinphone(params->getTransport()));
|
mTransport = LinphoneEnums::toString(LinphoneEnums::fromLinphone(params->getTransport()));
|
||||||
|
|
@ -521,16 +521,24 @@ void AccountCore::setVoicemailAddress(QString value) {
|
||||||
|
|
||||||
void AccountCore::setTransport(QString value) {
|
void AccountCore::setTransport(QString value) {
|
||||||
if (mTransport != value) {
|
if (mTransport != value) {
|
||||||
mTransport = value;
|
mAccountModelConnection->invokeToModel([this, value] {
|
||||||
emit transportChanged();
|
mustBeInLinphoneThread(getClassName() + Q_FUNC_INFO);
|
||||||
|
LinphoneEnums::TransportType transport;
|
||||||
|
LinphoneEnums::fromString(value, &transport);
|
||||||
|
mAccountModel->setTransport(LinphoneEnums::toLinphone(transport), false);
|
||||||
|
});
|
||||||
setIsSaved(false);
|
setIsSaved(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void AccountCore::setServerAddress(QString value) {
|
void AccountCore::setServerAddress(QString value) {
|
||||||
if (mServerAddress != value) {
|
if (mServerAddress != value) {
|
||||||
mServerAddress = value;
|
mAccountModelConnection->invokeToModel([this, value, transportString = mTransport] {
|
||||||
emit serverAddressChanged();
|
LinphoneEnums::TransportType transport;
|
||||||
|
LinphoneEnums::fromString(transportString, &transport);
|
||||||
|
mustBeInLinphoneThread(getClassName() + Q_FUNC_INFO);
|
||||||
|
mAccountModel->setServerAddress(value, LinphoneEnums::toLinphone(transport), false);
|
||||||
|
});
|
||||||
setIsSaved(false);
|
setIsSaved(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -720,8 +728,8 @@ void AccountCore::writeIntoModel(std::shared_ptr<AccountModel> model) const {
|
||||||
model->setMwiServerAddress(mMwiServerAddress);
|
model->setMwiServerAddress(mMwiServerAddress);
|
||||||
LinphoneEnums::TransportType transport;
|
LinphoneEnums::TransportType transport;
|
||||||
LinphoneEnums::fromString(mTransport, &transport);
|
LinphoneEnums::fromString(mTransport, &transport);
|
||||||
model->setTransport(LinphoneEnums::toLinphone(transport));
|
model->setTransport(LinphoneEnums::toLinphone(transport), true);
|
||||||
model->setServerAddress(mServerAddress);
|
model->setServerAddress(mServerAddress, LinphoneEnums::toLinphone(transport), true);
|
||||||
model->setOutboundProxyEnabled(mOutboundProxyEnabled);
|
model->setOutboundProxyEnabled(mOutboundProxyEnabled);
|
||||||
model->setStunServer(mStunServer);
|
model->setStunServer(mStunServer);
|
||||||
model->setIceEnabled(mIceEnabled);
|
model->setIceEnabled(mIceEnabled);
|
||||||
|
|
|
||||||
|
|
@ -92,7 +92,7 @@ void AccountModel::setPictureUri(QString uri) {
|
||||||
// Hack because Account doesn't provide callbacks on updated data
|
// Hack because Account doesn't provide callbacks on updated data
|
||||||
// emit pictureUriChanged(uri);
|
// emit pictureUriChanged(uri);
|
||||||
auto core = CoreModel::getInstance()->getCore();
|
auto core = CoreModel::getInstance()->getCore();
|
||||||
emit CoreModel::getInstance()->defaultAccountChanged(core, core->getDefaultAccount());
|
emit CoreModel::getInstance() -> defaultAccountChanged(core, core->getDefaultAccount());
|
||||||
}
|
}
|
||||||
|
|
||||||
void AccountModel::onDefaultAccountChanged() {
|
void AccountModel::onDefaultAccountChanged() {
|
||||||
|
|
@ -150,7 +150,7 @@ void AccountModel::setDisplayName(QString displayName) {
|
||||||
// Hack because Account doesn't provide callbacks on updated data
|
// Hack because Account doesn't provide callbacks on updated data
|
||||||
// emit displayNameChanged(displayName);
|
// emit displayNameChanged(displayName);
|
||||||
auto core = CoreModel::getInstance()->getCore();
|
auto core = CoreModel::getInstance()->getCore();
|
||||||
emit CoreModel::getInstance()->defaultAccountChanged(core, core->getDefaultAccount());
|
emit CoreModel::getInstance() -> defaultAccountChanged(core, core->getDefaultAccount());
|
||||||
}
|
}
|
||||||
|
|
||||||
void AccountModel::setDialPlan(int index) {
|
void AccountModel::setDialPlan(int index) {
|
||||||
|
|
@ -222,26 +222,35 @@ linphone::TransportType AccountModel::getTransport() const {
|
||||||
return mMonitor->getParams()->getTransport();
|
return mMonitor->getParams()->getTransport();
|
||||||
}
|
}
|
||||||
|
|
||||||
void AccountModel::setTransport(linphone::TransportType value) {
|
void AccountModel::setTransport(linphone::TransportType value, bool save) {
|
||||||
mustBeInLinphoneThread(log().arg(Q_FUNC_INFO));
|
mustBeInLinphoneThread(log().arg(Q_FUNC_INFO));
|
||||||
auto params = mMonitor->getParams()->clone();
|
auto params = mMonitor->getParams()->clone();
|
||||||
params->setTransport(value);
|
if (params->getServerAddress()) {
|
||||||
mMonitor->setParams(params);
|
auto addressClone = params->getServerAddress()->clone();
|
||||||
emit transportChanged(value);
|
addressClone->setTransport(value);
|
||||||
|
params->setServerAddress(addressClone);
|
||||||
|
if (save) mMonitor->setParams(params);
|
||||||
|
emit transportChanged(value);
|
||||||
|
emit serverAddressChanged(Utils::coreStringToAppString(addressClone->asString()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QString AccountModel::getServerAddress() const {
|
QString AccountModel::getServerAddress() const {
|
||||||
return Utils::coreStringToAppString(mMonitor->getParams()->getServerAddress()->asString());
|
if (mMonitor->getParams()->getServerAddress())
|
||||||
|
return Utils::coreStringToAppString(mMonitor->getParams()->getServerAddress()->asString());
|
||||||
|
else return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
void AccountModel::setServerAddress(QString value) {
|
void AccountModel::setServerAddress(QString value, linphone::TransportType transport, bool save) {
|
||||||
mustBeInLinphoneThread(log().arg(Q_FUNC_INFO));
|
mustBeInLinphoneThread(log().arg(Q_FUNC_INFO));
|
||||||
auto params = mMonitor->getParams()->clone();
|
auto params = mMonitor->getParams()->clone();
|
||||||
auto address = CoreModel::getInstance()->getCore()->interpretUrl(Utils::appStringToCoreString(value), false);
|
auto address = CoreModel::getInstance()->getCore()->interpretUrl(Utils::appStringToCoreString(value), false);
|
||||||
if (address) {
|
if (address) {
|
||||||
|
if (save) address->setTransport(transport);
|
||||||
params->setServerAddress(address);
|
params->setServerAddress(address);
|
||||||
mMonitor->setParams(params);
|
if (save) mMonitor->setParams(params);
|
||||||
emit serverAddressChanged(value);
|
emit serverAddressChanged(value);
|
||||||
|
emit transportChanged(address->getTransport());
|
||||||
} else qWarning() << "Unable to set ServerAddress, failed creating address from" << value;
|
} else qWarning() << "Unable to set ServerAddress, failed creating address from" << value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -57,9 +57,9 @@ public:
|
||||||
QString getMwiServerAddress() const;
|
QString getMwiServerAddress() const;
|
||||||
void setMwiServerAddress(QString value);
|
void setMwiServerAddress(QString value);
|
||||||
linphone::TransportType getTransport() const;
|
linphone::TransportType getTransport() const;
|
||||||
void setTransport(linphone::TransportType value);
|
void setTransport(linphone::TransportType value, bool save);
|
||||||
QString getServerAddress() const;
|
QString getServerAddress() const;
|
||||||
void setServerAddress(QString value);
|
void setServerAddress(QString value, linphone::TransportType transport, bool save);
|
||||||
bool getOutboundProxyEnabled() const;
|
bool getOutboundProxyEnabled() const;
|
||||||
void setOutboundProxyEnabled(bool value);
|
void setOutboundProxyEnabled(bool value);
|
||||||
QString getStunServer() const;
|
QString getStunServer() const;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue