using namespace anna::diameter::comm;
-Engine::Engine(const char *className) :
+Engine::Engine(const char *className, codec::Engine *baseProtocolCodecEngine) :
anna::app::Component(className),
+ a_baseProtocolCodecEngine(baseProtocolCodecEngine),
a_autoBind(true),
a_availableForEntities(false),
a_availableForLocalServers(false),
// [Error-Message].................................(281,0)
// *[Failed-AVP]....................................(279,0)
try {
- anna::diameter::codec::Message diameterDPA;
- anna::diameter::codec::Avp avpRC;
- anna::diameter::codec::Avp avpOH;
- anna::diameter::codec::Avp avpOR;
+ anna::diameter::codec::Message diameterDPA(getBaseProtocolCodecEngine());
+ anna::diameter::codec::Avp avpRC(getBaseProtocolCodecEngine());
+ anna::diameter::codec::Avp avpOH(getBaseProtocolCodecEngine());
+ anna::diameter::codec::Avp avpOR(getBaseProtocolCodecEngine());
// Message header
diameterDPA.setId(anna::diameter::helpers::base::COMMANDID__Disconnect_Peer_Answer);
diameterDPA.setVersion(1);
// Encode
dpa = diameterDPA.code();
} catch(anna::RuntimeException &ex) {
- ex.trace();
+ std::string msg = ex.getText();
+ msg += " | Use diameter::comm::Engine::setBaseProtocolCodecEngine() to allow internal base protocol messages encoding (unable to answer with DPA)";
+ anna::Logger::error(msg, ANNA_FILE_LOCATION);
+ //throw anna::RuntimeException(msg, ANNA_FILE_LOCATION);
}
}
// [Firmware-Revision].............................(267,0)
// *[AVP]...........................................(0,0)
try {
- anna::diameter::codec::Message diameterCEA;
- anna::diameter::codec::Avp avpRC;
- anna::diameter::codec::Avp avpOH;
- anna::diameter::codec::Avp avpOR;
+ anna::diameter::codec::Message diameterCEA(getBaseProtocolCodecEngine());
+ anna::diameter::codec::Avp avpRC(getBaseProtocolCodecEngine());
+ anna::diameter::codec::Avp avpOH(getBaseProtocolCodecEngine());
+ anna::diameter::codec::Avp avpOR(getBaseProtocolCodecEngine());
// Message header
diameterCEA.setId(anna::diameter::helpers::base::COMMANDID__Capabilities_Exchange_Answer);
diameterCEA.setVersion(1);
// Encode
cea = diameterCEA.code();
} catch(anna::RuntimeException &ex) {
- ex.trace();
+ std::string msg = ex.getText();
+ msg += " | Use diameter::comm::Engine::setBaseProtocolCodecEngine() to allow internal base protocol messages encoding (unable to answer with CEA)";
+ anna::Logger::error(msg, ANNA_FILE_LOCATION);
+ //throw anna::RuntimeException(msg, ANNA_FILE_LOCATION);
}
}
// *[Failed-AVP]....................................(279,0)
// [Origin-State-Id]...............................(278,0)
try {
- anna::diameter::codec::Message diameterDWA;
- anna::diameter::codec::Avp avpRC;
- anna::diameter::codec::Avp avpOH;
- anna::diameter::codec::Avp avpOR;
+ anna::diameter::codec::Message diameterDWA(getBaseProtocolCodecEngine());
+ anna::diameter::codec::Avp avpRC(getBaseProtocolCodecEngine());
+ anna::diameter::codec::Avp avpOH(getBaseProtocolCodecEngine());
+ anna::diameter::codec::Avp avpOR(getBaseProtocolCodecEngine());
// Message header
diameterDWA.setId(anna::diameter::helpers::base::COMMANDID__Device_Watchdog_Answer);
diameterDWA.setVersion(1);
// Encode
dwa = diameterDWA.code();
} catch(anna::RuntimeException &ex) {
- ex.trace();
+ std::string msg = ex.getText();
+ msg += " | Use diameter::comm::Engine::setBaseProtocolCodecEngine() to allow internal base protocol messages encoding (unable to answer with DWA)";
+ anna::Logger::error(msg, ANNA_FILE_LOCATION);
+ //throw anna::RuntimeException(msg, ANNA_FILE_LOCATION);
}
}