diff --git a/general/package/libre-openipc/libre-openipc.mk b/general/package/libre-openipc/libre-openipc.mk
index d604336a..52bb742d 100644
--- a/general/package/libre-openipc/libre-openipc.mk
+++ b/general/package/libre-openipc/libre-openipc.mk
@@ -5,53 +5,15 @@
 #############################################################
 
 LIBRE_OPENIPC_SITE = $(call github,baresip,re,$(LIBRE_OPENIPC_VERSION))
-LIBRE_OPENIPC_VERSION = v2.1.1
-
+LIBRE_OPENIPC_VERSION = v3.12.0
 LIBRE_OPENIPC_INSTALL_STAGING = YES
 
-ifeq ($(BR2_PACKAGE_OPENSSL),y)
-LIBRE_OPENIPC_DEPENDENCIES += openssl
-endif
+LIBRE_OPENIPC_DEPENDENCIES = mbedtls-openipc
 
-ifeq ($(BR2_PACKAGE_ZLIB),y)
-LIBRE_OPENIPC_DEPENDENCIES += zlib
-endif
+LIBRE_OPENIPC_CONF_OPTS = \
+	-DCMAKE_BUILD_TYPE=Release \
+	-DCMAKE_C_FLAGS_RELEASE="-DNDEBUG -s" \
+	-DUSE_MBEDTLS=ON \
+	-DLIBRE_BUILD_STATIC=OFF
 
-define LIBRE_OPENIPC_BUILD_CMDS
-$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
-	LIBRE_MK=$(STAGING_DIR)/usr/share/re/re.mk \
-	LIBRE_INC=$(STAGING_DIR)/usr/include/re \
-	LIBRE_SO=$(STAGING_DIR)/usr/lib \
-	CC="$(TARGET_CC)" \
-	EXTRA_CFLAGS="$(TARGET_CFLAGS) -D_GNU_SOURCE -fPIC -DOPENBSD" \
-	EXTRA_LFLAGS="-lm" \
-	DESTDIR="$(STAGING_DIR)" \
-	SYSROOT="$(STAGING_DIR)/usr" \
-	SYSROOT_ALT="$(STAGING_DIR)/usr" \
-	RELEASE=1 \
-	CROSS_COMPILE="$(TARGET_CROSS)" \
-	OS=linux \
-	all install
-endef
-
-define LIBRE_OPENIPC_INSTALL_STAGING_CMDS
-	$(INSTALL) -D -m 644 $(@D)/include/re.h $(STAGING_DIR)/usr/include/re/re.h
-endef
-
-define LIBRE_OPENIPC_INSTALL_TARGET_CMDS
-	$(INSTALL) -m 644 -D $(@D)/libre.so $(TARGET_DIR)/usr/lib/libre.so
-	ln -sf libre.so $(TARGET_DIR)/usr/lib/libre.so.2
-endef
-
-define LIBRE_OPENIPC_UNINSTALL_STAGING_CMDS
-	$(RM) -r $(STAGING_DIR)/usr/include/re
-	$(RM) $(STAGING_DIR)/usr/lib/libre.a
-	$(RM) $(STAGING_DIR)/usr/lib/libre.so
-endef
-
-define LIBRE_OPENIPC_UNINSTALL_TARGET_CMDS
-	$(RM) $(TARGET_DIR)/usr/lib/libre.so
-endef
-
-$(eval $(generic-package))
-$(eval $(host-generic-package))
+$(eval $(cmake-package))