diff --git a/extensions/openpower-pels/callout.cpp b/extensions/openpower-pels/callout.cpp
index 66181ff..a477803 100644
--- a/extensions/openpower-pels/callout.cpp
+++ b/extensions/openpower-pels/callout.cpp
@@ -108,6 +108,22 @@
     _size = flattenedSize();
 }
 
+Callout::Callout(CalloutPriority priority,
+                 const std::string& symbolicFRUFromRegistry,
+                 const std::string& locationCode, bool trustedLocationCode)
+{
+    _flags = calloutType | fruIdentIncluded;
+
+    _priority = static_cast<uint8_t>(priority);
+
+    setLocationCode(locationCode);
+
+    _fruIdentity = std::make_unique<FRUIdentity>(symbolicFRUFromRegistry,
+                                                 trustedLocationCode);
+
+    _size = flattenedSize();
+}
+
 void Callout::setLocationCode(const std::string& locationCode)
 {
     if (locationCode.empty())
diff --git a/extensions/openpower-pels/callout.hpp b/extensions/openpower-pels/callout.hpp
index 6b7dbc7..fda0024 100644
--- a/extensions/openpower-pels/callout.hpp
+++ b/extensions/openpower-pels/callout.hpp
@@ -84,7 +84,7 @@
      * @brief Constructor
      *
      * Creates the objects with a FRUIdentity substructure that calls
-     * out maintenance procedure.
+     * out a maintenance procedure.
      *
      * @param[in] priority - The priority of the callout
      * @param[in] procedureFromRegistry - The maintenance procedure name
@@ -93,6 +93,22 @@
     Callout(CalloutPriority priority, const std::string& procedureFromRegistry);
 
     /**
+     * @brief Constructor
+     *
+     * Creates the objects with a FRUIdentity substructure that calls
+     * out a symbolic FRU.
+     *
+     * @param[in] priority - The priority of the callout
+     * @param[in] symbolicFRUFromRegistry - The symbolic FRU name as
+     *                                      defined in the message registry.
+     * @param[in] locationCode - The location code of the callout
+     * @param[in] trustedLocationCode - If the location is trusted
+     */
+    Callout(CalloutPriority priority,
+            const std::string& symbolicFRUFromRegistry,
+            const std::string& locationCode, bool trustedLocationCode);
+
+    /**
      * @brief Returns the size of this object when flattened into a PEL
      *
      * @return size_t - The size of the section
