Просмотр исходного кода

Supported new features for outbound.

sdk-team 4 лет назад
Родитель
Сommit
1f47213704
26 измененных файлов с 353 добавлено и 232 удалено
  1. 3 0
      CHANGELOG
  2. 1 1
      VERSION
  3. 3 0
      outboundbot/include/alibabacloud/outboundbot/model/CreateBatchRepeatJobRequest.h
  4. 3 0
      outboundbot/include/alibabacloud/outboundbot/model/CreateJobGroupRequest.h
  5. 8 1
      outboundbot/include/alibabacloud/outboundbot/model/CreateJobGroupResult.h
  6. 12 6
      outboundbot/include/alibabacloud/outboundbot/model/CreateScriptRequest.h
  7. 2 2
      outboundbot/include/alibabacloud/outboundbot/model/CreateScriptResult.h
  8. 10 3
      outboundbot/include/alibabacloud/outboundbot/model/DescribeJobGroupResult.h
  9. 1 0
      outboundbot/include/alibabacloud/outboundbot/model/ListScriptsResult.h
  10. 6 3
      outboundbot/include/alibabacloud/outboundbot/model/ModifyJobGroupRequest.h
  11. 8 1
      outboundbot/include/alibabacloud/outboundbot/model/ModifyJobGroupResult.h
  12. 1 0
      outboundbot/include/alibabacloud/outboundbot/model/QueryJobsWithResultResult.h
  13. 4 4
      outboundbot/src/model/AssignJobsResult.cc
  14. 11 0
      outboundbot/src/model/CreateBatchRepeatJobRequest.cc
  15. 4 4
      outboundbot/src/model/CreateBatchRepeatJobResult.cc
  16. 11 0
      outboundbot/src/model/CreateJobGroupRequest.cc
  17. 43 36
      outboundbot/src/model/CreateJobGroupResult.cc
  18. 44 22
      outboundbot/src/model/CreateScriptRequest.cc
  19. 16 16
      outboundbot/src/model/CreateScriptResult.cc
  20. 67 60
      outboundbot/src/model/DescribeJobGroupResult.cc
  21. 2 2
      outboundbot/src/model/DescribeTTSDemoResult.cc
  22. 22 20
      outboundbot/src/model/ListScriptsResult.cc
  23. 22 11
      outboundbot/src/model/ModifyJobGroupRequest.cc
  24. 43 36
      outboundbot/src/model/ModifyJobGroupResult.cc
  25. 2 0
      outboundbot/src/model/QueryJobsWithResultResult.cc
  26. 4 4
      outboundbot/src/model/SuspendCallWithFileResult.cc

+ 3 - 0
CHANGELOG

@@ -1,3 +1,6 @@
+2021-12-29 Version: 1.36.1002
+- Supported new features for outbound.
+
 2021-12-29 Version: 1.36.1001
 - Add ListDcdnEsTemplateInfo.
 

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.1001
+1.36.1002

+ 3 - 0
outboundbot/include/alibabacloud/outboundbot/model/CreateBatchRepeatJobRequest.h

@@ -35,6 +35,8 @@ namespace AlibabaCloud
 				CreateBatchRepeatJobRequest();
 				~CreateBatchRepeatJobRequest();
 
+				std::string getRecallStrategyJson()const;
+				void setRecallStrategyJson(const std::string& recallStrategyJson);
 				std::string getDescription()const;
 				void setDescription(const std::string& description);
 				std::string getScriptId()const;
@@ -53,6 +55,7 @@ namespace AlibabaCloud
 				void setSourceGroupId(const std::string& sourceGroupId);
 
             private:
+				std::string recallStrategyJson_;
 				std::string description_;
 				std::string scriptId_;
 				std::vector<std::string> callingNumber_;

+ 3 - 0
outboundbot/include/alibabacloud/outboundbot/model/CreateJobGroupRequest.h

@@ -35,6 +35,8 @@ namespace AlibabaCloud
 				CreateJobGroupRequest();
 				~CreateJobGroupRequest();
 
+				std::string getRecallStrategyJson()const;
+				void setRecallStrategyJson(const std::string& recallStrategyJson);
 				std::string getJobGroupDescription()const;
 				void setJobGroupDescription(const std::string& jobGroupDescription);
 				std::string getJobGroupName()const;
@@ -51,6 +53,7 @@ namespace AlibabaCloud
 				void setScenarioId(const std::string& scenarioId);
 
             private:
+				std::string recallStrategyJson_;
 				std::string jobGroupDescription_;
 				std::string jobGroupName_;
 				std::string scriptId_;

+ 8 - 1
outboundbot/include/alibabacloud/outboundbot/model/CreateJobGroupResult.h

@@ -63,10 +63,16 @@ namespace AlibabaCloud
 						std::string routingStrategy;
 						std::vector<std::string> repeatDays;
 					};
+					struct RecallStrategy
+					{
+						bool outOfServiceIgnore;
+						bool emptyNumberIgnore;
+						bool inArrearsIgnore;
+					};
 					std::string status;
 					std::string modifyTime;
-					std::string jobDataParsingTaskId;
 					std::string scenarioId;
+					std::string jobDataParsingTaskId;
 					std::string jobGroupName;
 					std::string scriptVersion;
 					std::string jobGroupDescription;
@@ -76,6 +82,7 @@ namespace AlibabaCloud
 					Strategy strategy;
 					std::string jobFilePath;
 					ExportProgress exportProgress;
+					RecallStrategy recallStrategy;
 					std::vector<std::string> callingNumbers;
 				};
 

+ 12 - 6
outboundbot/include/alibabacloud/outboundbot/model/CreateScriptRequest.h

@@ -43,14 +43,18 @@ namespace AlibabaCloud
 				void setScriptName(const std::string& scriptName);
 				std::string getScene()const;
 				void setScene(const std::string& scene);
-				std::string getChatbotId()const;
-				void setChatbotId(const std::string& chatbotId);
-				std::string getInstanceId()const;
-				void setInstanceId(const std::string& instanceId);
 				std::vector<std::string> getScriptWaveform()const;
 				void setScriptWaveform(const std::vector<std::string>& scriptWaveform);
 				std::string getAsrConfig()const;
 				void setAsrConfig(const std::string& asrConfig);
+				bool getNewBargeInEnable()const;
+				void setNewBargeInEnable(bool newBargeInEnable);
+				bool getMiniPlaybackEnable()const;
+				void setMiniPlaybackEnable(bool miniPlaybackEnable);
+				std::string getChatbotId()const;
+				void setChatbotId(const std::string& chatbotId);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
 				std::string getScriptDescription()const;
 				void setScriptDescription(const std::string& scriptDescription);
 				std::vector<std::string> getScriptContent()const;
@@ -61,10 +65,12 @@ namespace AlibabaCloud
 				std::string industry_;
 				std::string scriptName_;
 				std::string scene_;
-				std::string chatbotId_;
-				std::string instanceId_;
 				std::vector<std::string> scriptWaveform_;
 				std::string asrConfig_;
+				bool newBargeInEnable_;
+				bool miniPlaybackEnable_;
+				std::string chatbotId_;
+				std::string instanceId_;
 				std::string scriptDescription_;
 				std::vector<std::string> scriptContent_;
 

+ 2 - 2
outboundbot/include/alibabacloud/outboundbot/model/CreateScriptResult.h

@@ -34,12 +34,12 @@ namespace AlibabaCloud
 			public:
 				struct Script
 				{
-					std::string industry;
 					std::string status;
+					std::string industry;
 					bool isDrafted;
 					std::string scriptName;
-					std::string scriptDescription;
 					long updateTime;
+					std::string scriptDescription;
 					std::string scriptId;
 					std::string debugStatus;
 					std::string scene;

+ 10 - 3
outboundbot/include/alibabacloud/outboundbot/model/DescribeJobGroupResult.h

@@ -58,8 +58,8 @@ namespace AlibabaCloud
 						std::vector<KeyValuePair> briefs;
 						int executing;
 						int totalNotAnswered;
-						int paused;
 						int totalJobs;
+						int paused;
 					};
 					struct Strategy
 					{
@@ -84,19 +84,25 @@ namespace AlibabaCloud
 						std::string routingStrategy;
 						std::vector<std::string> repeatDays;
 					};
+					struct RecallStrategy
+					{
+						bool outOfServiceIgnore;
+						bool emptyNumberIgnore;
+						bool inArrearsIgnore;
+					};
 					struct Result
 					{
 						int unrecognizedNum;
-						int noInteractNum;
 						int finishedNum;
+						int noInteractNum;
 						int clientHangupNum;
 						int timeoutHangupNum;
 					};
 					std::string status;
 					std::string modifyTime;
 					Progress progress;
-					std::string jobDataParsingTaskId;
 					std::string scenarioId;
+					std::string jobDataParsingTaskId;
 					std::string jobGroupName;
 					std::string scriptVersion;
 					std::string scriptId;
@@ -108,6 +114,7 @@ namespace AlibabaCloud
 					Strategy strategy;
 					std::string jobFilePath;
 					ExportProgress exportProgress;
+					RecallStrategy recallStrategy;
 					std::vector<std::string> callingNumbers;
 				};
 

+ 1 - 0
outboundbot/include/alibabacloud/outboundbot/model/ListScriptsResult.h

@@ -39,6 +39,7 @@ namespace AlibabaCloud
 						std::string status;
 						std::string scriptDescription;
 						std::string scriptId;
+						bool newBargeInEnable;
 						std::string failReason;
 						std::string debugStatus;
 						std::string scene;

+ 6 - 3
outboundbot/include/alibabacloud/outboundbot/model/ModifyJobGroupRequest.h

@@ -35,12 +35,14 @@ namespace AlibabaCloud
 				ModifyJobGroupRequest();
 				~ModifyJobGroupRequest();
 
+				std::string getRecallStrategyJson()const;
+				void setRecallStrategyJson(const std::string& recallStrategyJson);
 				std::string getDescription()const;
 				void setDescription(const std::string& description);
-				std::vector<std::string> getCallingNumber()const;
-				void setCallingNumber(const std::vector<std::string>& callingNumber);
 				std::string getScriptId()const;
 				void setScriptId(const std::string& scriptId);
+				std::vector<std::string> getCallingNumber()const;
+				void setCallingNumber(const std::vector<std::string>& callingNumber);
 				std::string getInstanceId()const;
 				void setInstanceId(const std::string& instanceId);
 				std::string getStrategyJson()const;
@@ -53,9 +55,10 @@ namespace AlibabaCloud
 				void setScenarioId(const std::string& scenarioId);
 
             private:
+				std::string recallStrategyJson_;
 				std::string description_;
-				std::vector<std::string> callingNumber_;
 				std::string scriptId_;
+				std::vector<std::string> callingNumber_;
 				std::string instanceId_;
 				std::string strategyJson_;
 				std::string jobGroupId_;

+ 8 - 1
outboundbot/include/alibabacloud/outboundbot/model/ModifyJobGroupResult.h

@@ -63,10 +63,16 @@ namespace AlibabaCloud
 						std::string routingStrategy;
 						std::vector<std::string> repeatDays;
 					};
+					struct RecallStrategy
+					{
+						bool outOfServiceIgnore;
+						bool emptyNumberIgnore;
+						bool inArrearsIgnore;
+					};
 					std::string status;
 					std::string modifyTime;
-					std::string jobDataParsingTaskId;
 					std::string scenarioId;
+					std::string jobDataParsingTaskId;
 					std::string jobGroupName;
 					std::string scriptVersion;
 					std::string jobGroupDescription;
@@ -76,6 +82,7 @@ namespace AlibabaCloud
 					Strategy strategy;
 					std::string jobFilePath;
 					ExportProgress exportProgress;
+					RecallStrategy recallStrategy;
 					std::vector<std::string> callingNumbers;
 				};
 

+ 1 - 0
outboundbot/include/alibabacloud/outboundbot/model/QueryJobsWithResultResult.h

@@ -76,6 +76,7 @@ namespace AlibabaCloud
 							int callDuration;
 							bool hasReachedEndOfFlow;
 							Contact contact;
+							bool hasLastPlaybackCompleted;
 							std::string taskEndReason;
 							std::string callDurationDisplay;
 							long callTime;

+ 4 - 4
outboundbot/src/model/AssignJobsResult.cc

@@ -42,16 +42,16 @@ void AssignJobsResult::parse(const std::string &payload)
 	auto allJobsId = value["JobsId"]["JobsId"];
 	for (const auto &item : allJobsId)
 		jobsId_.push_back(item.asString());
-	if(!value["Code"].isNull())
-		code_ = value["Code"].asString();
 	if(!value["HttpStatusCode"].isNull())
 		httpStatusCode_ = std::stoi(value["HttpStatusCode"].asString());
 	if(!value["JobGroupId"].isNull())
 		jobGroupId_ = value["JobGroupId"].asString();
-	if(!value["Message"].isNull())
-		message_ = value["Message"].asString();
 	if(!value["Success"].isNull())
 		success_ = value["Success"].asString() == "true";
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
 
 }
 

+ 11 - 0
outboundbot/src/model/CreateBatchRepeatJobRequest.cc

@@ -27,6 +27,17 @@ CreateBatchRepeatJobRequest::CreateBatchRepeatJobRequest() :
 CreateBatchRepeatJobRequest::~CreateBatchRepeatJobRequest()
 {}
 
+std::string CreateBatchRepeatJobRequest::getRecallStrategyJson()const
+{
+	return recallStrategyJson_;
+}
+
+void CreateBatchRepeatJobRequest::setRecallStrategyJson(const std::string& recallStrategyJson)
+{
+	recallStrategyJson_ = recallStrategyJson;
+	setParameter("RecallStrategyJson", recallStrategyJson);
+}
+
 std::string CreateBatchRepeatJobRequest::getDescription()const
 {
 	return description_;

+ 4 - 4
outboundbot/src/model/CreateBatchRepeatJobResult.cc

@@ -42,14 +42,14 @@ void CreateBatchRepeatJobResult::parse(const std::string &payload)
 	auto jobGroupNode = value["JobGroup"];
 	if(!jobGroupNode["Id"].isNull())
 		jobGroup_.id = jobGroupNode["Id"].asString();
-	if(!value["Success"].isNull())
-		success_ = value["Success"].asString() == "true";
+	if(!value["HttpStatusCode"].isNull())
+		httpStatusCode_ = std::stoi(value["HttpStatusCode"].asString());
 	if(!value["Code"].isNull())
 		code_ = value["Code"].asString();
 	if(!value["Message"].isNull())
 		message_ = value["Message"].asString();
-	if(!value["HttpStatusCode"].isNull())
-		httpStatusCode_ = std::stoi(value["HttpStatusCode"].asString());
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
 
 }
 

+ 11 - 0
outboundbot/src/model/CreateJobGroupRequest.cc

@@ -27,6 +27,17 @@ CreateJobGroupRequest::CreateJobGroupRequest() :
 CreateJobGroupRequest::~CreateJobGroupRequest()
 {}
 
+std::string CreateJobGroupRequest::getRecallStrategyJson()const
+{
+	return recallStrategyJson_;
+}
+
+void CreateJobGroupRequest::setRecallStrategyJson(const std::string& recallStrategyJson)
+{
+	recallStrategyJson_ = recallStrategyJson;
+	setParameter("RecallStrategyJson", recallStrategyJson);
+}
+
 std::string CreateJobGroupRequest::getJobGroupDescription()const
 {
 	return jobGroupDescription_;

+ 43 - 36
outboundbot/src/model/CreateJobGroupResult.cc

@@ -40,82 +40,89 @@ void CreateJobGroupResult::parse(const std::string &payload)
 	reader.parse(payload, value);
 	setRequestId(value["RequestId"].asString());
 	auto jobGroupNode = value["JobGroup"];
+	if(!jobGroupNode["Status"].isNull())
+		jobGroup_.status = jobGroupNode["Status"].asString();
+	if(!jobGroupNode["ScenarioId"].isNull())
+		jobGroup_.scenarioId = jobGroupNode["ScenarioId"].asString();
+	if(!jobGroupNode["JobGroupId"].isNull())
+		jobGroup_.jobGroupId = jobGroupNode["JobGroupId"].asString();
 	if(!jobGroupNode["CreationTime"].isNull())
 		jobGroup_.creationTime = std::stol(jobGroupNode["CreationTime"].asString());
-	if(!jobGroupNode["JobDataParsingTaskId"].isNull())
-		jobGroup_.jobDataParsingTaskId = jobGroupNode["JobDataParsingTaskId"].asString();
+	if(!jobGroupNode["JobGroupName"].isNull())
+		jobGroup_.jobGroupName = jobGroupNode["JobGroupName"].asString();
 	if(!jobGroupNode["JobFilePath"].isNull())
 		jobGroup_.jobFilePath = jobGroupNode["JobFilePath"].asString();
 	if(!jobGroupNode["JobGroupDescription"].isNull())
 		jobGroup_.jobGroupDescription = jobGroupNode["JobGroupDescription"].asString();
-	if(!jobGroupNode["JobGroupId"].isNull())
-		jobGroup_.jobGroupId = jobGroupNode["JobGroupId"].asString();
-	if(!jobGroupNode["JobGroupName"].isNull())
-		jobGroup_.jobGroupName = jobGroupNode["JobGroupName"].asString();
-	if(!jobGroupNode["ModifyTime"].isNull())
-		jobGroup_.modifyTime = jobGroupNode["ModifyTime"].asString();
-	if(!jobGroupNode["ScenarioId"].isNull())
-		jobGroup_.scenarioId = jobGroupNode["ScenarioId"].asString();
+	if(!jobGroupNode["JobDataParsingTaskId"].isNull())
+		jobGroup_.jobDataParsingTaskId = jobGroupNode["JobDataParsingTaskId"].asString();
 	if(!jobGroupNode["ScriptName"].isNull())
 		jobGroup_.scriptName = jobGroupNode["ScriptName"].asString();
 	if(!jobGroupNode["ScriptVersion"].isNull())
 		jobGroup_.scriptVersion = jobGroupNode["ScriptVersion"].asString();
-	if(!jobGroupNode["Status"].isNull())
-		jobGroup_.status = jobGroupNode["Status"].asString();
+	if(!jobGroupNode["ModifyTime"].isNull())
+		jobGroup_.modifyTime = jobGroupNode["ModifyTime"].asString();
 	auto exportProgressNode = jobGroupNode["ExportProgress"];
+	if(!exportProgressNode["Status"].isNull())
+		jobGroup_.exportProgress.status = exportProgressNode["Status"].asString();
 	if(!exportProgressNode["FileHttpUrl"].isNull())
 		jobGroup_.exportProgress.fileHttpUrl = exportProgressNode["FileHttpUrl"].asString();
 	if(!exportProgressNode["Progress"].isNull())
 		jobGroup_.exportProgress.progress = exportProgressNode["Progress"].asString();
-	if(!exportProgressNode["Status"].isNull())
-		jobGroup_.exportProgress.status = exportProgressNode["Status"].asString();
 	auto strategyNode = jobGroupNode["Strategy"];
-	if(!strategyNode["Customized"].isNull())
-		jobGroup_.strategy.customized = strategyNode["Customized"].asString();
-	if(!strategyNode["EndTime"].isNull())
-		jobGroup_.strategy.endTime = std::stol(strategyNode["EndTime"].asString());
+	if(!strategyNode["Type"].isNull())
+		jobGroup_.strategy.type = strategyNode["Type"].asString();
+	if(!strategyNode["StrategyName"].isNull())
+		jobGroup_.strategy.strategyName = strategyNode["StrategyName"].asString();
+	if(!strategyNode["MaxAttemptsPerDay"].isNull())
+		jobGroup_.strategy.maxAttemptsPerDay = std::stoi(strategyNode["MaxAttemptsPerDay"].asString());
 	if(!strategyNode["FollowUpStrategy"].isNull())
 		jobGroup_.strategy.followUpStrategy = strategyNode["FollowUpStrategy"].asString();
+	if(!strategyNode["EndTime"].isNull())
+		jobGroup_.strategy.endTime = std::stol(strategyNode["EndTime"].asString());
+	if(!strategyNode["Customized"].isNull())
+		jobGroup_.strategy.customized = strategyNode["Customized"].asString();
 	if(!strategyNode["IsTemplate"].isNull())
 		jobGroup_.strategy.isTemplate = strategyNode["IsTemplate"].asString() == "true";
-	if(!strategyNode["MaxAttemptsPerDay"].isNull())
-		jobGroup_.strategy.maxAttemptsPerDay = std::stoi(strategyNode["MaxAttemptsPerDay"].asString());
-	if(!strategyNode["MinAttemptInterval"].isNull())
-		jobGroup_.strategy.minAttemptInterval = std::stoi(strategyNode["MinAttemptInterval"].asString());
-	if(!strategyNode["RepeatBy"].isNull())
-		jobGroup_.strategy.repeatBy = strategyNode["RepeatBy"].asString();
-	if(!strategyNode["RoutingStrategy"].isNull())
-		jobGroup_.strategy.routingStrategy = strategyNode["RoutingStrategy"].asString();
 	if(!strategyNode["StartTime"].isNull())
 		jobGroup_.strategy.startTime = std::stol(strategyNode["StartTime"].asString());
-	if(!strategyNode["StrategyDescription"].isNull())
-		jobGroup_.strategy.strategyDescription = strategyNode["StrategyDescription"].asString();
 	if(!strategyNode["StrategyId"].isNull())
 		jobGroup_.strategy.strategyId = strategyNode["StrategyId"].asString();
-	if(!strategyNode["StrategyName"].isNull())
-		jobGroup_.strategy.strategyName = strategyNode["StrategyName"].asString();
-	if(!strategyNode["Type"].isNull())
-		jobGroup_.strategy.type = strategyNode["Type"].asString();
+	if(!strategyNode["RoutingStrategy"].isNull())
+		jobGroup_.strategy.routingStrategy = strategyNode["RoutingStrategy"].asString();
+	if(!strategyNode["MinAttemptInterval"].isNull())
+		jobGroup_.strategy.minAttemptInterval = std::stoi(strategyNode["MinAttemptInterval"].asString());
+	if(!strategyNode["StrategyDescription"].isNull())
+		jobGroup_.strategy.strategyDescription = strategyNode["StrategyDescription"].asString();
+	if(!strategyNode["RepeatBy"].isNull())
+		jobGroup_.strategy.repeatBy = strategyNode["RepeatBy"].asString();
 	auto allWorkingTimeNode = strategyNode["WorkingTime"]["TimeFrame"];
 	for (auto strategyNodeWorkingTimeTimeFrame : allWorkingTimeNode)
 	{
 		JobGroup::Strategy::TimeFrame timeFrameObject;
-		if(!strategyNodeWorkingTimeTimeFrame["BeginTime"].isNull())
-			timeFrameObject.beginTime = strategyNodeWorkingTimeTimeFrame["BeginTime"].asString();
 		if(!strategyNodeWorkingTimeTimeFrame["EndTime"].isNull())
 			timeFrameObject.endTime = strategyNodeWorkingTimeTimeFrame["EndTime"].asString();
+		if(!strategyNodeWorkingTimeTimeFrame["BeginTime"].isNull())
+			timeFrameObject.beginTime = strategyNodeWorkingTimeTimeFrame["BeginTime"].asString();
 		jobGroup_.strategy.workingTime.push_back(timeFrameObject);
 	}
 		auto allRepeatDays = strategyNode["RepeatDays"]["Integer"];
 		for (auto value : allRepeatDays)
 			jobGroup_.strategy.repeatDays.push_back(value.asString());
+	auto recallStrategyNode = jobGroupNode["RecallStrategy"];
+	if(!recallStrategyNode["EmptyNumberIgnore"].isNull())
+		jobGroup_.recallStrategy.emptyNumberIgnore = recallStrategyNode["EmptyNumberIgnore"].asString() == "true";
+	if(!recallStrategyNode["InArrearsIgnore"].isNull())
+		jobGroup_.recallStrategy.inArrearsIgnore = recallStrategyNode["InArrearsIgnore"].asString() == "true";
+	if(!recallStrategyNode["OutOfServiceIgnore"].isNull())
+		jobGroup_.recallStrategy.outOfServiceIgnore = recallStrategyNode["OutOfServiceIgnore"].asString() == "true";
 		auto allCallingNumbers = jobGroupNode["CallingNumbers"]["String"];
 		for (auto value : allCallingNumbers)
 			jobGroup_.callingNumbers.push_back(value.asString());
-	if(!value["Code"].isNull())
-		code_ = value["Code"].asString();
 	if(!value["HttpStatusCode"].isNull())
 		httpStatusCode_ = std::stoi(value["HttpStatusCode"].asString());
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
 	if(!value["Message"].isNull())
 		message_ = value["Message"].asString();
 	if(!value["Success"].isNull())

+ 44 - 22
outboundbot/src/model/CreateScriptRequest.cc

@@ -71,28 +71,6 @@ void CreateScriptRequest::setScene(const std::string& scene)
 	setParameter("Scene", scene);
 }
 
-std::string CreateScriptRequest::getChatbotId()const
-{
-	return chatbotId_;
-}
-
-void CreateScriptRequest::setChatbotId(const std::string& chatbotId)
-{
-	chatbotId_ = chatbotId;
-	setParameter("ChatbotId", chatbotId);
-}
-
-std::string CreateScriptRequest::getInstanceId()const
-{
-	return instanceId_;
-}
-
-void CreateScriptRequest::setInstanceId(const std::string& instanceId)
-{
-	instanceId_ = instanceId;
-	setParameter("InstanceId", instanceId);
-}
-
 std::vector<std::string> CreateScriptRequest::getScriptWaveform()const
 {
 	return scriptWaveform_;
@@ -117,6 +95,50 @@ void CreateScriptRequest::setAsrConfig(const std::string& asrConfig)
 	setParameter("AsrConfig", asrConfig);
 }
 
+bool CreateScriptRequest::getNewBargeInEnable()const
+{
+	return newBargeInEnable_;
+}
+
+void CreateScriptRequest::setNewBargeInEnable(bool newBargeInEnable)
+{
+	newBargeInEnable_ = newBargeInEnable;
+	setParameter("NewBargeInEnable", newBargeInEnable ? "true" : "false");
+}
+
+bool CreateScriptRequest::getMiniPlaybackEnable()const
+{
+	return miniPlaybackEnable_;
+}
+
+void CreateScriptRequest::setMiniPlaybackEnable(bool miniPlaybackEnable)
+{
+	miniPlaybackEnable_ = miniPlaybackEnable;
+	setParameter("MiniPlaybackEnable", miniPlaybackEnable ? "true" : "false");
+}
+
+std::string CreateScriptRequest::getChatbotId()const
+{
+	return chatbotId_;
+}
+
+void CreateScriptRequest::setChatbotId(const std::string& chatbotId)
+{
+	chatbotId_ = chatbotId;
+	setParameter("ChatbotId", chatbotId);
+}
+
+std::string CreateScriptRequest::getInstanceId()const
+{
+	return instanceId_;
+}
+
+void CreateScriptRequest::setInstanceId(const std::string& instanceId)
+{
+	instanceId_ = instanceId;
+	setParameter("InstanceId", instanceId);
+}
+
 std::string CreateScriptRequest::getScriptDescription()const
 {
 	return scriptDescription_;

+ 16 - 16
outboundbot/src/model/CreateScriptResult.cc

@@ -40,36 +40,36 @@ void CreateScriptResult::parse(const std::string &payload)
 	reader.parse(payload, value);
 	setRequestId(value["RequestId"].asString());
 	auto scriptNode = value["Script"];
-	if(!scriptNode["DebugStatus"].isNull())
-		script_.debugStatus = scriptNode["DebugStatus"].asString();
+	if(!scriptNode["Status"].isNull())
+		script_.status = scriptNode["Status"].asString();
+	if(!scriptNode["UpdateTime"].isNull())
+		script_.updateTime = std::stol(scriptNode["UpdateTime"].asString());
 	if(!scriptNode["Industry"].isNull())
 		script_.industry = scriptNode["Industry"].asString();
-	if(!scriptNode["IsDebugDrafted"].isNull())
-		script_.isDebugDrafted = scriptNode["IsDebugDrafted"].asString() == "true";
-	if(!scriptNode["IsDrafted"].isNull())
-		script_.isDrafted = scriptNode["IsDrafted"].asString() == "true";
-	if(!scriptNode["Scene"].isNull())
-		script_.scene = scriptNode["Scene"].asString();
 	if(!scriptNode["ScriptDescription"].isNull())
 		script_.scriptDescription = scriptNode["ScriptDescription"].asString();
+	if(!scriptNode["IsDrafted"].isNull())
+		script_.isDrafted = scriptNode["IsDrafted"].asString() == "true";
+	if(!scriptNode["DebugStatus"].isNull())
+		script_.debugStatus = scriptNode["DebugStatus"].asString();
 	if(!scriptNode["ScriptId"].isNull())
 		script_.scriptId = scriptNode["ScriptId"].asString();
+	if(!scriptNode["IsDebugDrafted"].isNull())
+		script_.isDebugDrafted = scriptNode["IsDebugDrafted"].asString() == "true";
 	if(!scriptNode["ScriptName"].isNull())
 		script_.scriptName = scriptNode["ScriptName"].asString();
-	if(!scriptNode["Status"].isNull())
-		script_.status = scriptNode["Status"].asString();
-	if(!scriptNode["UpdateTime"].isNull())
-		script_.updateTime = std::stol(scriptNode["UpdateTime"].asString());
-	if(!value["Code"].isNull())
-		code_ = value["Code"].asString();
+	if(!scriptNode["Scene"].isNull())
+		script_.scene = scriptNode["Scene"].asString();
 	if(!value["HttpStatusCode"].isNull())
 		httpStatusCode_ = std::stoi(value["HttpStatusCode"].asString());
-	if(!value["Message"].isNull())
-		message_ = value["Message"].asString();
 	if(!value["Success"].isNull())
 		success_ = value["Success"].asString() == "true";
 	if(!value["ChatbotId"].isNull())
 		chatbotId_ = value["ChatbotId"].asString();
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
 
 }
 

+ 67 - 60
outboundbot/src/model/DescribeJobGroupResult.cc

@@ -42,58 +42,58 @@ void DescribeJobGroupResult::parse(const std::string &payload)
 	auto jobGroupNode = value["JobGroup"];
 	if(!jobGroupNode["CreationTime"].isNull())
 		jobGroup_.creationTime = std::stol(jobGroupNode["CreationTime"].asString());
-	if(!jobGroupNode["JobDataParsingTaskId"].isNull())
-		jobGroup_.jobDataParsingTaskId = jobGroupNode["JobDataParsingTaskId"].asString();
-	if(!jobGroupNode["JobFilePath"].isNull())
-		jobGroup_.jobFilePath = jobGroupNode["JobFilePath"].asString();
-	if(!jobGroupNode["JobGroupDescription"].isNull())
-		jobGroup_.jobGroupDescription = jobGroupNode["JobGroupDescription"].asString();
-	if(!jobGroupNode["JobGroupId"].isNull())
-		jobGroup_.jobGroupId = jobGroupNode["JobGroupId"].asString();
+	if(!jobGroupNode["Status"].isNull())
+		jobGroup_.status = jobGroupNode["Status"].asString();
 	if(!jobGroupNode["JobGroupName"].isNull())
 		jobGroup_.jobGroupName = jobGroupNode["JobGroupName"].asString();
-	if(!jobGroupNode["ModifyTime"].isNull())
-		jobGroup_.modifyTime = jobGroupNode["ModifyTime"].asString();
-	if(!jobGroupNode["ScenarioId"].isNull())
-		jobGroup_.scenarioId = jobGroupNode["ScenarioId"].asString();
 	if(!jobGroupNode["ScriptId"].isNull())
 		jobGroup_.scriptId = jobGroupNode["ScriptId"].asString();
+	if(!jobGroupNode["JobGroupId"].isNull())
+		jobGroup_.jobGroupId = jobGroupNode["JobGroupId"].asString();
+	if(!jobGroupNode["ScenarioId"].isNull())
+		jobGroup_.scenarioId = jobGroupNode["ScenarioId"].asString();
+	if(!jobGroupNode["JobFilePath"].isNull())
+		jobGroup_.jobFilePath = jobGroupNode["JobFilePath"].asString();
+	if(!jobGroupNode["JobGroupDescription"].isNull())
+		jobGroup_.jobGroupDescription = jobGroupNode["JobGroupDescription"].asString();
+	if(!jobGroupNode["JobDataParsingTaskId"].isNull())
+		jobGroup_.jobDataParsingTaskId = jobGroupNode["JobDataParsingTaskId"].asString();
 	if(!jobGroupNode["ScriptName"].isNull())
 		jobGroup_.scriptName = jobGroupNode["ScriptName"].asString();
+	if(!jobGroupNode["ModifyTime"].isNull())
+		jobGroup_.modifyTime = jobGroupNode["ModifyTime"].asString();
 	if(!jobGroupNode["ScriptVersion"].isNull())
 		jobGroup_.scriptVersion = jobGroupNode["ScriptVersion"].asString();
-	if(!jobGroupNode["Status"].isNull())
-		jobGroup_.status = jobGroupNode["Status"].asString();
 	auto exportProgressNode = jobGroupNode["ExportProgress"];
+	if(!exportProgressNode["Status"].isNull())
+		jobGroup_.exportProgress.status = exportProgressNode["Status"].asString();
 	if(!exportProgressNode["FileHttpUrl"].isNull())
 		jobGroup_.exportProgress.fileHttpUrl = exportProgressNode["FileHttpUrl"].asString();
 	if(!exportProgressNode["Progress"].isNull())
 		jobGroup_.exportProgress.progress = exportProgressNode["Progress"].asString();
-	if(!exportProgressNode["Status"].isNull())
-		jobGroup_.exportProgress.status = exportProgressNode["Status"].asString();
 	auto progressNode = jobGroupNode["Progress"];
-	if(!progressNode["Cancelled"].isNull())
-		jobGroup_.progress.cancelled = std::stoi(progressNode["Cancelled"].asString());
-	if(!progressNode["Duration"].isNull())
-		jobGroup_.progress.duration = std::stoi(progressNode["Duration"].asString());
-	if(!progressNode["Executing"].isNull())
-		jobGroup_.progress.executing = std::stoi(progressNode["Executing"].asString());
-	if(!progressNode["Failed"].isNull())
-		jobGroup_.progress.failed = std::stoi(progressNode["Failed"].asString());
-	if(!progressNode["Paused"].isNull())
-		jobGroup_.progress.paused = std::stoi(progressNode["Paused"].asString());
-	if(!progressNode["Scheduling"].isNull())
-		jobGroup_.progress.scheduling = std::stoi(progressNode["Scheduling"].asString());
-	if(!progressNode["StartTime"].isNull())
-		jobGroup_.progress.startTime = std::stol(progressNode["StartTime"].asString());
+	if(!progressNode["TotalNotAnswered"].isNull())
+		jobGroup_.progress.totalNotAnswered = std::stoi(progressNode["TotalNotAnswered"].asString());
 	if(!progressNode["Status"].isNull())
 		jobGroup_.progress.status = progressNode["Status"].asString();
-	if(!progressNode["TotalCompleted"].isNull())
-		jobGroup_.progress.totalCompleted = std::stoi(progressNode["TotalCompleted"].asString());
+	if(!progressNode["StartTime"].isNull())
+		jobGroup_.progress.startTime = std::stol(progressNode["StartTime"].asString());
+	if(!progressNode["Failed"].isNull())
+		jobGroup_.progress.failed = std::stoi(progressNode["Failed"].asString());
+	if(!progressNode["Executing"].isNull())
+		jobGroup_.progress.executing = std::stoi(progressNode["Executing"].asString());
 	if(!progressNode["TotalJobs"].isNull())
 		jobGroup_.progress.totalJobs = std::stoi(progressNode["TotalJobs"].asString());
-	if(!progressNode["TotalNotAnswered"].isNull())
-		jobGroup_.progress.totalNotAnswered = std::stoi(progressNode["TotalNotAnswered"].asString());
+	if(!progressNode["TotalCompleted"].isNull())
+		jobGroup_.progress.totalCompleted = std::stoi(progressNode["TotalCompleted"].asString());
+	if(!progressNode["Duration"].isNull())
+		jobGroup_.progress.duration = std::stoi(progressNode["Duration"].asString());
+	if(!progressNode["Scheduling"].isNull())
+		jobGroup_.progress.scheduling = std::stoi(progressNode["Scheduling"].asString());
+	if(!progressNode["Paused"].isNull())
+		jobGroup_.progress.paused = std::stoi(progressNode["Paused"].asString());
+	if(!progressNode["Cancelled"].isNull())
+		jobGroup_.progress.cancelled = std::stoi(progressNode["Cancelled"].asString());
 	auto allBriefsNode = progressNode["Briefs"]["KeyValuePair"];
 	for (auto progressNodeBriefsKeyValuePair : allBriefsNode)
 	{
@@ -115,63 +115,70 @@ void DescribeJobGroupResult::parse(const std::string &payload)
 		jobGroup_.progress.categories.push_back(keyValuePairObject);
 	}
 	auto strategyNode = jobGroupNode["Strategy"];
-	if(!strategyNode["Customized"].isNull())
-		jobGroup_.strategy.customized = strategyNode["Customized"].asString();
-	if(!strategyNode["EndTime"].isNull())
-		jobGroup_.strategy.endTime = std::stol(strategyNode["EndTime"].asString());
+	if(!strategyNode["Type"].isNull())
+		jobGroup_.strategy.type = strategyNode["Type"].asString();
+	if(!strategyNode["StrategyName"].isNull())
+		jobGroup_.strategy.strategyName = strategyNode["StrategyName"].asString();
+	if(!strategyNode["MaxAttemptsPerDay"].isNull())
+		jobGroup_.strategy.maxAttemptsPerDay = std::stoi(strategyNode["MaxAttemptsPerDay"].asString());
 	if(!strategyNode["FollowUpStrategy"].isNull())
 		jobGroup_.strategy.followUpStrategy = strategyNode["FollowUpStrategy"].asString();
+	if(!strategyNode["EndTime"].isNull())
+		jobGroup_.strategy.endTime = std::stol(strategyNode["EndTime"].asString());
+	if(!strategyNode["Customized"].isNull())
+		jobGroup_.strategy.customized = strategyNode["Customized"].asString();
 	if(!strategyNode["IsTemplate"].isNull())
 		jobGroup_.strategy.isTemplate = strategyNode["IsTemplate"].asString() == "true";
-	if(!strategyNode["MaxAttemptsPerDay"].isNull())
-		jobGroup_.strategy.maxAttemptsPerDay = std::stoi(strategyNode["MaxAttemptsPerDay"].asString());
-	if(!strategyNode["MinAttemptInterval"].isNull())
-		jobGroup_.strategy.minAttemptInterval = std::stoi(strategyNode["MinAttemptInterval"].asString());
-	if(!strategyNode["RepeatBy"].isNull())
-		jobGroup_.strategy.repeatBy = strategyNode["RepeatBy"].asString();
-	if(!strategyNode["RoutingStrategy"].isNull())
-		jobGroup_.strategy.routingStrategy = strategyNode["RoutingStrategy"].asString();
 	if(!strategyNode["StartTime"].isNull())
 		jobGroup_.strategy.startTime = std::stol(strategyNode["StartTime"].asString());
-	if(!strategyNode["StrategyDescription"].isNull())
-		jobGroup_.strategy.strategyDescription = strategyNode["StrategyDescription"].asString();
 	if(!strategyNode["StrategyId"].isNull())
 		jobGroup_.strategy.strategyId = strategyNode["StrategyId"].asString();
-	if(!strategyNode["StrategyName"].isNull())
-		jobGroup_.strategy.strategyName = strategyNode["StrategyName"].asString();
-	if(!strategyNode["Type"].isNull())
-		jobGroup_.strategy.type = strategyNode["Type"].asString();
+	if(!strategyNode["RoutingStrategy"].isNull())
+		jobGroup_.strategy.routingStrategy = strategyNode["RoutingStrategy"].asString();
+	if(!strategyNode["MinAttemptInterval"].isNull())
+		jobGroup_.strategy.minAttemptInterval = std::stoi(strategyNode["MinAttemptInterval"].asString());
+	if(!strategyNode["StrategyDescription"].isNull())
+		jobGroup_.strategy.strategyDescription = strategyNode["StrategyDescription"].asString();
+	if(!strategyNode["RepeatBy"].isNull())
+		jobGroup_.strategy.repeatBy = strategyNode["RepeatBy"].asString();
 	auto allWorkingTimeNode = strategyNode["WorkingTime"]["TimeFrame"];
 	for (auto strategyNodeWorkingTimeTimeFrame : allWorkingTimeNode)
 	{
 		JobGroup::Strategy::TimeFrame timeFrameObject;
-		if(!strategyNodeWorkingTimeTimeFrame["BeginTime"].isNull())
-			timeFrameObject.beginTime = strategyNodeWorkingTimeTimeFrame["BeginTime"].asString();
 		if(!strategyNodeWorkingTimeTimeFrame["EndTime"].isNull())
 			timeFrameObject.endTime = strategyNodeWorkingTimeTimeFrame["EndTime"].asString();
+		if(!strategyNodeWorkingTimeTimeFrame["BeginTime"].isNull())
+			timeFrameObject.beginTime = strategyNodeWorkingTimeTimeFrame["BeginTime"].asString();
 		jobGroup_.strategy.workingTime.push_back(timeFrameObject);
 	}
 		auto allRepeatDays = strategyNode["RepeatDays"]["Integer"];
 		for (auto value : allRepeatDays)
 			jobGroup_.strategy.repeatDays.push_back(value.asString());
+	auto recallStrategyNode = jobGroupNode["RecallStrategy"];
+	if(!recallStrategyNode["EmptyNumberIgnore"].isNull())
+		jobGroup_.recallStrategy.emptyNumberIgnore = recallStrategyNode["EmptyNumberIgnore"].asString() == "true";
+	if(!recallStrategyNode["InArrearsIgnore"].isNull())
+		jobGroup_.recallStrategy.inArrearsIgnore = recallStrategyNode["InArrearsIgnore"].asString() == "true";
+	if(!recallStrategyNode["OutOfServiceIgnore"].isNull())
+		jobGroup_.recallStrategy.outOfServiceIgnore = recallStrategyNode["OutOfServiceIgnore"].asString() == "true";
 	auto resultNode = jobGroupNode["Result"];
-	if(!resultNode["NoInteractNum"].isNull())
-		jobGroup_.result.noInteractNum = std::stoi(resultNode["NoInteractNum"].asString());
+	if(!resultNode["TimeoutHangupNum"].isNull())
+		jobGroup_.result.timeoutHangupNum = std::stoi(resultNode["TimeoutHangupNum"].asString());
 	if(!resultNode["FinishedNum"].isNull())
 		jobGroup_.result.finishedNum = std::stoi(resultNode["FinishedNum"].asString());
+	if(!resultNode["NoInteractNum"].isNull())
+		jobGroup_.result.noInteractNum = std::stoi(resultNode["NoInteractNum"].asString());
 	if(!resultNode["ClientHangupNum"].isNull())
 		jobGroup_.result.clientHangupNum = std::stoi(resultNode["ClientHangupNum"].asString());
-	if(!resultNode["TimeoutHangupNum"].isNull())
-		jobGroup_.result.timeoutHangupNum = std::stoi(resultNode["TimeoutHangupNum"].asString());
 	if(!resultNode["UnrecognizedNum"].isNull())
 		jobGroup_.result.unrecognizedNum = std::stoi(resultNode["UnrecognizedNum"].asString());
 		auto allCallingNumbers = jobGroupNode["CallingNumbers"]["String"];
 		for (auto value : allCallingNumbers)
 			jobGroup_.callingNumbers.push_back(value.asString());
-	if(!value["Code"].isNull())
-		code_ = value["Code"].asString();
 	if(!value["HttpStatusCode"].isNull())
 		httpStatusCode_ = std::stoi(value["HttpStatusCode"].asString());
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
 	if(!value["Message"].isNull())
 		message_ = value["Message"].asString();
 	if(!value["Success"].isNull())

+ 2 - 2
outboundbot/src/model/DescribeTTSDemoResult.cc

@@ -39,14 +39,14 @@ void DescribeTTSDemoResult::parse(const std::string &payload)
 	Json::Value value;
 	reader.parse(payload, value);
 	setRequestId(value["RequestId"].asString());
+	if(!value["HttpStatusCode"].isNull())
+		httpStatusCode_ = std::stoi(value["HttpStatusCode"].asString());
 	if(!value["Success"].isNull())
 		success_ = value["Success"].asString() == "true";
 	if(!value["Code"].isNull())
 		code_ = value["Code"].asString();
 	if(!value["Message"].isNull())
 		message_ = value["Message"].asString();
-	if(!value["HttpStatusCode"].isNull())
-		httpStatusCode_ = std::stoi(value["HttpStatusCode"].asString());
 	if(!value["AuditionUrl"].isNull())
 		auditionUrl_ = value["AuditionUrl"].asString();
 

+ 22 - 20
outboundbot/src/model/ListScriptsResult.cc

@@ -50,38 +50,40 @@ void ListScriptsResult::parse(const std::string &payload)
 	for (auto scriptsNodeListScript : allListNode)
 	{
 		Scripts::Script scriptObject;
-		if(!scriptsNodeListScript["DebugStatus"].isNull())
-			scriptObject.debugStatus = scriptsNodeListScript["DebugStatus"].asString();
-		if(!scriptsNodeListScript["FailReason"].isNull())
-			scriptObject.failReason = scriptsNodeListScript["FailReason"].asString();
-		if(!scriptsNodeListScript["Industry"].isNull())
-			scriptObject.industry = scriptsNodeListScript["Industry"].asString();
+		if(!scriptsNodeListScript["Status"].isNull())
+			scriptObject.status = scriptsNodeListScript["Status"].asString();
+		if(!scriptsNodeListScript["UpdateTime"].isNull())
+			scriptObject.updateTime = std::stol(scriptsNodeListScript["UpdateTime"].asString());
+		if(!scriptsNodeListScript["ScriptId"].isNull())
+			scriptObject.scriptId = scriptsNodeListScript["ScriptId"].asString();
 		if(!scriptsNodeListScript["IsDebugDrafted"].isNull())
 			scriptObject.isDebugDrafted = scriptsNodeListScript["IsDebugDrafted"].asString() == "true";
+		if(!scriptsNodeListScript["Industry"].isNull())
+			scriptObject.industry = scriptsNodeListScript["Industry"].asString();
+		if(!scriptsNodeListScript["ScriptDescription"].isNull())
+			scriptObject.scriptDescription = scriptsNodeListScript["ScriptDescription"].asString();
 		if(!scriptsNodeListScript["IsDrafted"].isNull())
 			scriptObject.isDrafted = scriptsNodeListScript["IsDrafted"].asString() == "true";
+		if(!scriptsNodeListScript["DebugStatus"].isNull())
+			scriptObject.debugStatus = scriptsNodeListScript["DebugStatus"].asString();
+		if(!scriptsNodeListScript["MiniPlaybackEnabled"].isNull())
+			scriptObject.miniPlaybackEnabled = scriptsNodeListScript["MiniPlaybackEnabled"].asString() == "true";
+		if(!scriptsNodeListScript["RejectReason"].isNull())
+			scriptObject.rejectReason = scriptsNodeListScript["RejectReason"].asString();
+		if(!scriptsNodeListScript["FailReason"].isNull())
+			scriptObject.failReason = scriptsNodeListScript["FailReason"].asString();
 		if(!scriptsNodeListScript["Scene"].isNull())
 			scriptObject.scene = scriptsNodeListScript["Scene"].asString();
-		if(!scriptsNodeListScript["ScriptDescription"].isNull())
-			scriptObject.scriptDescription = scriptsNodeListScript["ScriptDescription"].asString();
-		if(!scriptsNodeListScript["ScriptId"].isNull())
-			scriptObject.scriptId = scriptsNodeListScript["ScriptId"].asString();
 		if(!scriptsNodeListScript["ScriptName"].isNull())
 			scriptObject.scriptName = scriptsNodeListScript["ScriptName"].asString();
-		if(!scriptsNodeListScript["Status"].isNull())
-			scriptObject.status = scriptsNodeListScript["Status"].asString();
-		if(!scriptsNodeListScript["UpdateTime"].isNull())
-			scriptObject.updateTime = std::stol(scriptsNodeListScript["UpdateTime"].asString());
-		if(!scriptsNodeListScript["RejectReason"].isNull())
-			scriptObject.rejectReason = scriptsNodeListScript["RejectReason"].asString();
-		if(!scriptsNodeListScript["MiniPlaybackEnabled"].isNull())
-			scriptObject.miniPlaybackEnabled = scriptsNodeListScript["MiniPlaybackEnabled"].asString() == "true";
+		if(!scriptsNodeListScript["NewBargeInEnable"].isNull())
+			scriptObject.newBargeInEnable = scriptsNodeListScript["NewBargeInEnable"].asString() == "true";
 		scripts_.list.push_back(scriptObject);
 	}
-	if(!value["Code"].isNull())
-		code_ = value["Code"].asString();
 	if(!value["HttpStatusCode"].isNull())
 		httpStatusCode_ = std::stoi(value["HttpStatusCode"].asString());
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
 	if(!value["Message"].isNull())
 		message_ = value["Message"].asString();
 	if(!value["Success"].isNull())

+ 22 - 11
outboundbot/src/model/ModifyJobGroupRequest.cc

@@ -27,6 +27,17 @@ ModifyJobGroupRequest::ModifyJobGroupRequest() :
 ModifyJobGroupRequest::~ModifyJobGroupRequest()
 {}
 
+std::string ModifyJobGroupRequest::getRecallStrategyJson()const
+{
+	return recallStrategyJson_;
+}
+
+void ModifyJobGroupRequest::setRecallStrategyJson(const std::string& recallStrategyJson)
+{
+	recallStrategyJson_ = recallStrategyJson;
+	setParameter("RecallStrategyJson", recallStrategyJson);
+}
+
 std::string ModifyJobGroupRequest::getDescription()const
 {
 	return description_;
@@ -38,6 +49,17 @@ void ModifyJobGroupRequest::setDescription(const std::string& description)
 	setParameter("Description", description);
 }
 
+std::string ModifyJobGroupRequest::getScriptId()const
+{
+	return scriptId_;
+}
+
+void ModifyJobGroupRequest::setScriptId(const std::string& scriptId)
+{
+	scriptId_ = scriptId;
+	setParameter("ScriptId", scriptId);
+}
+
 std::vector<std::string> ModifyJobGroupRequest::getCallingNumber()const
 {
 	return callingNumber_;
@@ -51,17 +73,6 @@ void ModifyJobGroupRequest::setCallingNumber(const std::vector<std::string>& cal
 	}
 }
 
-std::string ModifyJobGroupRequest::getScriptId()const
-{
-	return scriptId_;
-}
-
-void ModifyJobGroupRequest::setScriptId(const std::string& scriptId)
-{
-	scriptId_ = scriptId;
-	setParameter("ScriptId", scriptId);
-}
-
 std::string ModifyJobGroupRequest::getInstanceId()const
 {
 	return instanceId_;

+ 43 - 36
outboundbot/src/model/ModifyJobGroupResult.cc

@@ -40,82 +40,89 @@ void ModifyJobGroupResult::parse(const std::string &payload)
 	reader.parse(payload, value);
 	setRequestId(value["RequestId"].asString());
 	auto jobGroupNode = value["JobGroup"];
+	if(!jobGroupNode["Status"].isNull())
+		jobGroup_.status = jobGroupNode["Status"].asString();
+	if(!jobGroupNode["ScenarioId"].isNull())
+		jobGroup_.scenarioId = jobGroupNode["ScenarioId"].asString();
+	if(!jobGroupNode["JobGroupId"].isNull())
+		jobGroup_.jobGroupId = jobGroupNode["JobGroupId"].asString();
 	if(!jobGroupNode["CreationTime"].isNull())
 		jobGroup_.creationTime = std::stol(jobGroupNode["CreationTime"].asString());
-	if(!jobGroupNode["JobDataParsingTaskId"].isNull())
-		jobGroup_.jobDataParsingTaskId = jobGroupNode["JobDataParsingTaskId"].asString();
+	if(!jobGroupNode["JobGroupName"].isNull())
+		jobGroup_.jobGroupName = jobGroupNode["JobGroupName"].asString();
 	if(!jobGroupNode["JobFilePath"].isNull())
 		jobGroup_.jobFilePath = jobGroupNode["JobFilePath"].asString();
 	if(!jobGroupNode["JobGroupDescription"].isNull())
 		jobGroup_.jobGroupDescription = jobGroupNode["JobGroupDescription"].asString();
-	if(!jobGroupNode["JobGroupId"].isNull())
-		jobGroup_.jobGroupId = jobGroupNode["JobGroupId"].asString();
-	if(!jobGroupNode["JobGroupName"].isNull())
-		jobGroup_.jobGroupName = jobGroupNode["JobGroupName"].asString();
-	if(!jobGroupNode["ModifyTime"].isNull())
-		jobGroup_.modifyTime = jobGroupNode["ModifyTime"].asString();
-	if(!jobGroupNode["ScenarioId"].isNull())
-		jobGroup_.scenarioId = jobGroupNode["ScenarioId"].asString();
+	if(!jobGroupNode["JobDataParsingTaskId"].isNull())
+		jobGroup_.jobDataParsingTaskId = jobGroupNode["JobDataParsingTaskId"].asString();
 	if(!jobGroupNode["ScriptName"].isNull())
 		jobGroup_.scriptName = jobGroupNode["ScriptName"].asString();
 	if(!jobGroupNode["ScriptVersion"].isNull())
 		jobGroup_.scriptVersion = jobGroupNode["ScriptVersion"].asString();
-	if(!jobGroupNode["Status"].isNull())
-		jobGroup_.status = jobGroupNode["Status"].asString();
+	if(!jobGroupNode["ModifyTime"].isNull())
+		jobGroup_.modifyTime = jobGroupNode["ModifyTime"].asString();
 	auto exportProgressNode = jobGroupNode["ExportProgress"];
+	if(!exportProgressNode["Status"].isNull())
+		jobGroup_.exportProgress.status = exportProgressNode["Status"].asString();
 	if(!exportProgressNode["FileHttpUrl"].isNull())
 		jobGroup_.exportProgress.fileHttpUrl = exportProgressNode["FileHttpUrl"].asString();
 	if(!exportProgressNode["Progress"].isNull())
 		jobGroup_.exportProgress.progress = exportProgressNode["Progress"].asString();
-	if(!exportProgressNode["Status"].isNull())
-		jobGroup_.exportProgress.status = exportProgressNode["Status"].asString();
 	auto strategyNode = jobGroupNode["Strategy"];
-	if(!strategyNode["Customized"].isNull())
-		jobGroup_.strategy.customized = strategyNode["Customized"].asString();
-	if(!strategyNode["EndTime"].isNull())
-		jobGroup_.strategy.endTime = std::stol(strategyNode["EndTime"].asString());
+	if(!strategyNode["Type"].isNull())
+		jobGroup_.strategy.type = strategyNode["Type"].asString();
+	if(!strategyNode["StrategyName"].isNull())
+		jobGroup_.strategy.strategyName = strategyNode["StrategyName"].asString();
+	if(!strategyNode["MaxAttemptsPerDay"].isNull())
+		jobGroup_.strategy.maxAttemptsPerDay = std::stoi(strategyNode["MaxAttemptsPerDay"].asString());
 	if(!strategyNode["FollowUpStrategy"].isNull())
 		jobGroup_.strategy.followUpStrategy = strategyNode["FollowUpStrategy"].asString();
+	if(!strategyNode["EndTime"].isNull())
+		jobGroup_.strategy.endTime = std::stol(strategyNode["EndTime"].asString());
+	if(!strategyNode["Customized"].isNull())
+		jobGroup_.strategy.customized = strategyNode["Customized"].asString();
 	if(!strategyNode["IsTemplate"].isNull())
 		jobGroup_.strategy.isTemplate = strategyNode["IsTemplate"].asString() == "true";
-	if(!strategyNode["MaxAttemptsPerDay"].isNull())
-		jobGroup_.strategy.maxAttemptsPerDay = std::stoi(strategyNode["MaxAttemptsPerDay"].asString());
-	if(!strategyNode["MinAttemptInterval"].isNull())
-		jobGroup_.strategy.minAttemptInterval = std::stoi(strategyNode["MinAttemptInterval"].asString());
-	if(!strategyNode["RepeatBy"].isNull())
-		jobGroup_.strategy.repeatBy = strategyNode["RepeatBy"].asString();
-	if(!strategyNode["RoutingStrategy"].isNull())
-		jobGroup_.strategy.routingStrategy = strategyNode["RoutingStrategy"].asString();
 	if(!strategyNode["StartTime"].isNull())
 		jobGroup_.strategy.startTime = std::stol(strategyNode["StartTime"].asString());
-	if(!strategyNode["StrategyDescription"].isNull())
-		jobGroup_.strategy.strategyDescription = strategyNode["StrategyDescription"].asString();
 	if(!strategyNode["StrategyId"].isNull())
 		jobGroup_.strategy.strategyId = strategyNode["StrategyId"].asString();
-	if(!strategyNode["StrategyName"].isNull())
-		jobGroup_.strategy.strategyName = strategyNode["StrategyName"].asString();
-	if(!strategyNode["Type"].isNull())
-		jobGroup_.strategy.type = strategyNode["Type"].asString();
+	if(!strategyNode["RoutingStrategy"].isNull())
+		jobGroup_.strategy.routingStrategy = strategyNode["RoutingStrategy"].asString();
+	if(!strategyNode["MinAttemptInterval"].isNull())
+		jobGroup_.strategy.minAttemptInterval = std::stoi(strategyNode["MinAttemptInterval"].asString());
+	if(!strategyNode["StrategyDescription"].isNull())
+		jobGroup_.strategy.strategyDescription = strategyNode["StrategyDescription"].asString();
+	if(!strategyNode["RepeatBy"].isNull())
+		jobGroup_.strategy.repeatBy = strategyNode["RepeatBy"].asString();
 	auto allWorkingTimeNode = strategyNode["WorkingTime"]["TimeFrame"];
 	for (auto strategyNodeWorkingTimeTimeFrame : allWorkingTimeNode)
 	{
 		JobGroup::Strategy::TimeFrame timeFrameObject;
-		if(!strategyNodeWorkingTimeTimeFrame["BeginTime"].isNull())
-			timeFrameObject.beginTime = strategyNodeWorkingTimeTimeFrame["BeginTime"].asString();
 		if(!strategyNodeWorkingTimeTimeFrame["EndTime"].isNull())
 			timeFrameObject.endTime = strategyNodeWorkingTimeTimeFrame["EndTime"].asString();
+		if(!strategyNodeWorkingTimeTimeFrame["BeginTime"].isNull())
+			timeFrameObject.beginTime = strategyNodeWorkingTimeTimeFrame["BeginTime"].asString();
 		jobGroup_.strategy.workingTime.push_back(timeFrameObject);
 	}
 		auto allRepeatDays = strategyNode["RepeatDays"]["Integer"];
 		for (auto value : allRepeatDays)
 			jobGroup_.strategy.repeatDays.push_back(value.asString());
+	auto recallStrategyNode = jobGroupNode["RecallStrategy"];
+	if(!recallStrategyNode["EmptyNumberIgnore"].isNull())
+		jobGroup_.recallStrategy.emptyNumberIgnore = recallStrategyNode["EmptyNumberIgnore"].asString() == "true";
+	if(!recallStrategyNode["InArrearsIgnore"].isNull())
+		jobGroup_.recallStrategy.inArrearsIgnore = recallStrategyNode["InArrearsIgnore"].asString() == "true";
+	if(!recallStrategyNode["OutOfServiceIgnore"].isNull())
+		jobGroup_.recallStrategy.outOfServiceIgnore = recallStrategyNode["OutOfServiceIgnore"].asString() == "true";
 		auto allCallingNumbers = jobGroupNode["CallingNumbers"]["String"];
 		for (auto value : allCallingNumbers)
 			jobGroup_.callingNumbers.push_back(value.asString());
-	if(!value["Code"].isNull())
-		code_ = value["Code"].asString();
 	if(!value["HttpStatusCode"].isNull())
 		httpStatusCode_ = std::stoi(value["HttpStatusCode"].asString());
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
 	if(!value["Message"].isNull())
 		message_ = value["Message"].asString();
 	if(!value["Success"].isNull())

+ 2 - 0
outboundbot/src/model/QueryJobsWithResultResult.cc

@@ -79,6 +79,8 @@ void QueryJobsWithResultResult::parse(const std::string &payload)
 			jobObject.latestTask.callDurationDisplay = latestTaskNode["CallDurationDisplay"].asString();
 		if(!latestTaskNode["HasHangUpByRejection"].isNull())
 			jobObject.latestTask.hasHangUpByRejection = latestTaskNode["HasHangUpByRejection"].asString() == "true";
+		if(!latestTaskNode["HasLastPlaybackCompleted"].isNull())
+			jobObject.latestTask.hasLastPlaybackCompleted = latestTaskNode["HasLastPlaybackCompleted"].asString() == "true";
 		auto allExtrasNode = latestTaskNode["Extras"]["Extra"];
 		for (auto latestTaskNodeExtrasExtra : allExtrasNode)
 		{

+ 4 - 4
outboundbot/src/model/SuspendCallWithFileResult.cc

@@ -39,14 +39,14 @@ void SuspendCallWithFileResult::parse(const std::string &payload)
 	Json::Value value;
 	reader.parse(payload, value);
 	setRequestId(value["RequestId"].asString());
-	if(!value["Success"].isNull())
-		success_ = value["Success"].asString() == "true";
+	if(!value["HttpStatusCode"].isNull())
+		httpStatusCode_ = std::stoi(value["HttpStatusCode"].asString());
 	if(!value["Code"].isNull())
 		code_ = value["Code"].asString();
 	if(!value["Message"].isNull())
 		message_ = value["Message"].asString();
-	if(!value["HttpStatusCode"].isNull())
-		httpStatusCode_ = std::stoi(value["HttpStatusCode"].asString());
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
 
 }