diff --git a/src/conference/handlers/local-conference-event-handler.cpp b/src/conference/handlers/local-conference-event-handler.cpp index f9f5e2f8a..9847a93e9 100644 --- a/src/conference/handlers/local-conference-event-handler.cpp +++ b/src/conference/handlers/local-conference-event-handler.cpp @@ -404,15 +404,14 @@ void LocalConferenceEventHandler::subscribeReceived (LinphoneEvent *lev, bool on const LinphoneAddress *lContactAddr = linphone_event_get_remote_contact(lev); char *contactAddrStr = linphone_address_as_string(lContactAddr); - Address contactAddr(contactAddrStr); + IdentityAddress contactAddr(contactAddrStr); bctbx_free(contactAddrStr); - if (contactAddr.getUriParamValue("gr").empty()) { + shared_ptr device = participant->getPrivate()->findDevice(contactAddr); + if (!device) { lError() << "received SUBSCRIBE for conference: " << d->conf->getConferenceAddress().asString() - << "has no GRUU in it's contact address:" << contactAddr.asString() << ", no NOTIFY sent."; + << "device sending subscribe: " << contactAddr.asString() << " is not known, no NOTIFY sent."; return; } - IdentityAddress gruu(contactAddr); - shared_ptr device = participant->getPrivate()->addDevice(gruu); if (linphone_event_get_subscription_state(lev) == LinphoneSubscriptionActive) { unsigned int lastNotify = static_cast(Utils::stoi(linphone_event_get_custom_header(lev, "Last-Notify-Version")));