a_commMessages.release(msg);
}
-void Launcher::baseProtocolSetupAsClient(anna::diameter::codec::Engine *codecEngine) throw(anna::RuntimeException) {
+void Launcher::baseProtocolSetupAsClient() throw(anna::RuntimeException) {
+
+ anna::diameter::codec::Engine *codecEngine;
+
+ codecEngine = getCodecEngine();
+ // XXXXXXXXXXXXXXXXXXXX codecEngine = a_myDiameterEngine->getBaseProtocolCodecEngine();
+
+
// Build CER
// <CER> ::= < Diameter Header: 257, REQ >
// { Origin-Host } 264 diameterIdentity
std::string dictionaryParameter = cl.getValue("dictionary");
lst.apply(dictionaryParameter, ",");
- if(lst.size() >= 1) { // always true (at least one, because -dictionary is mandatory)
+ if(lst.size() >= 1) { // always true (at least one, because --dictionary is mandatory)
anna::Tokenizer::const_iterator tok_min(lst.begin());
anna::Tokenizer::const_iterator tok_max(lst.end());
anna::Tokenizer::const_iterator tok_iter;
getCodecEngine()->ignoreFlagsOnValidation(cl.exists("ignoreFlags")); // XXXXXXXXXXXXXXXXXXXXXXX
+ // Base protocol for internal use (CEA, DWA, DPA and tracing:
+ a_myDiameterEngine->setBaseProtocolCodecEngine(getCodecEngine());
+
+
// Diameter Server:
if(cl.exists("diameterServer"))
startDiameterServer(cl.exists("diameterServerSessions") ? cl.getIntegerValue("diameterServerSessions") : 1);
int entityServerSessions = cl.exists("entityServerSessions") ? cl.getIntegerValue("entityServerSessions") : 1;
if(entityServerSessions > 0) {
- baseProtocolSetupAsClient(getCodecEngine()); // Same CER/CEA, DWR/DWA for all diameter servers XXXXXXXXXXXXXXXXXXXXXXXXX
+ baseProtocolSetupAsClient();
anna::socket_v servers = anna::functions::getSocketVectorFromString(cl.getValue("entity"));
a_myDiameterEngine->setNumberOfClientSessionsPerServer(entityServerSessions);
a_entity = (MyDiameterEntity*)(a_myDiameterEngine->createEntity(servers, "Launcher diameter entity"));
if(!entity) throw anna::RuntimeException("No entity configured to send the message", ANNA_FILE_LOCATION);
anna::diameter::comm::Message *msg = createCommMessage();
+//xxxxxxxxxxxxx
+ msg->setRetries(4);
+ msg->setOnExpiry(anna::diameter::comm::Message::OnExpiry::Retransmit);
if((opType == "sendxml") || (opType == "sendxml2e")) {
codecMsg.loadXML(param1);
if(sessionBasedModelsType == "SessionIdOptionalPart") return (atoi(optional.c_str()) % maxClientSessions);
}
- //case anna::diameter::helpers::dcca::ChargingContext::SMS:
- //case anna::diameter::helpers::dcca::ChargingContext::MMS:
- //default:
- // return -1; // IEC model and Unknown traffic types
+
+ case anna::diameter::helpers::dcca::ChargingContext::SMS:
+ case anna::diameter::helpers::dcca::ChargingContext::MMS:
+ case anna::diameter::helpers::dcca::ChargingContext::Unknown:
+ default:
+ return -1;
}
} catch(anna::RuntimeException &ex) {
LOGDEBUG(