فهرست منبع

由峰远发起的DYVMSAPI SDK自动发布, 版本号:1.10.3

Signed-off-by: haowei.yao <haowei.yao@alibaba-inc.com>
haowei.yao 8 سال پیش
والد
کامیت
02c620b5a5
43فایلهای تغییر یافته به همراه3649 افزوده شده و 2 حذف شده
  1. 5 0
      CHANGELOG
  2. 2 1
      CMakeLists.txt
  3. 1 1
      VERSION
  4. 118 0
      dyvmsapi/CMakeLists.txt
  5. 118 0
      dyvmsapi/include/alibabacloud/dyvmsapi/DyvmsapiClient.h
  6. 32 0
      dyvmsapi/include/alibabacloud/dyvmsapi/DyvmsapiExport.h
  7. 60 0
      dyvmsapi/include/alibabacloud/dyvmsapi/model/CancelCallRequest.h
  8. 55 0
      dyvmsapi/include/alibabacloud/dyvmsapi/model/CancelCallResult.h
  9. 84 0
      dyvmsapi/include/alibabacloud/dyvmsapi/model/ClickToDialRequest.h
  10. 55 0
      dyvmsapi/include/alibabacloud/dyvmsapi/model/ClickToDialResult.h
  11. 93 0
      dyvmsapi/include/alibabacloud/dyvmsapi/model/IvrCallRequest.h
  12. 55 0
      dyvmsapi/include/alibabacloud/dyvmsapi/model/IvrCallResult.h
  13. 66 0
      dyvmsapi/include/alibabacloud/dyvmsapi/model/QueryCallDetailByCallIdRequest.h
  14. 55 0
      dyvmsapi/include/alibabacloud/dyvmsapi/model/QueryCallDetailByCallIdResult.h
  15. 81 0
      dyvmsapi/include/alibabacloud/dyvmsapi/model/SingleCallByTtsRequest.h
  16. 55 0
      dyvmsapi/include/alibabacloud/dyvmsapi/model/SingleCallByTtsResult.h
  17. 78 0
      dyvmsapi/include/alibabacloud/dyvmsapi/model/SingleCallByVoiceRequest.h
  18. 55 0
      dyvmsapi/include/alibabacloud/dyvmsapi/model/SingleCallByVoiceResult.h
  19. 93 0
      dyvmsapi/include/alibabacloud/dyvmsapi/model/SmartCallRequest.h
  20. 55 0
      dyvmsapi/include/alibabacloud/dyvmsapi/model/SmartCallResult.h
  21. 60 0
      dyvmsapi/include/alibabacloud/dyvmsapi/model/VoipAddAccountRequest.h
  22. 55 0
      dyvmsapi/include/alibabacloud/dyvmsapi/model/VoipAddAccountResult.h
  23. 63 0
      dyvmsapi/include/alibabacloud/dyvmsapi/model/VoipGetTokenRequest.h
  24. 55 0
      dyvmsapi/include/alibabacloud/dyvmsapi/model/VoipGetTokenResult.h
  25. 377 0
      dyvmsapi/src/DyvmsapiClient.cc
  26. 82 0
      dyvmsapi/src/model/CancelCallRequest.cc
  27. 66 0
      dyvmsapi/src/model/CancelCallResult.cc
  28. 170 0
      dyvmsapi/src/model/ClickToDialRequest.cc
  29. 66 0
      dyvmsapi/src/model/ClickToDialResult.cc
  30. 188 0
      dyvmsapi/src/model/IvrCallRequest.cc
  31. 66 0
      dyvmsapi/src/model/IvrCallResult.cc
  32. 104 0
      dyvmsapi/src/model/QueryCallDetailByCallIdRequest.cc
  33. 66 0
      dyvmsapi/src/model/QueryCallDetailByCallIdResult.cc
  34. 159 0
      dyvmsapi/src/model/SingleCallByTtsRequest.cc
  35. 66 0
      dyvmsapi/src/model/SingleCallByTtsResult.cc
  36. 148 0
      dyvmsapi/src/model/SingleCallByVoiceRequest.cc
  37. 66 0
      dyvmsapi/src/model/SingleCallByVoiceResult.cc
  38. 203 0
      dyvmsapi/src/model/SmartCallRequest.cc
  39. 66 0
      dyvmsapi/src/model/SmartCallResult.cc
  40. 82 0
      dyvmsapi/src/model/VoipAddAccountRequest.cc
  41. 66 0
      dyvmsapi/src/model/VoipAddAccountResult.cc
  42. 93 0
      dyvmsapi/src/model/VoipGetTokenRequest.cc
  43. 66 0
      dyvmsapi/src/model/VoipGetTokenResult.cc

+ 5 - 0
CHANGELOG

@@ -1,3 +1,8 @@
+2018-05-23 Version: 1.10.3
+1, This is an example of release-log.
+2, Please strictly follow this format to edit in English.
+3, Format:Number + , + Space + Description
+
 2018-05-22 Version: 1.10.2
 1, add DescribeMigrateTasks,DescribeOssDownloads,CheckRecoveryConditions.
 2, modify DescribeDBInstanceAttribute.

+ 2 - 1
CMakeLists.txt

@@ -72,4 +72,5 @@ add_subdirectory(green)
 add_subdirectory(hsm)
 add_subdirectory(dcdn)
 add_subdirectory(pvtz)
-add_subdirectory(cloudauth)
+add_subdirectory(cloudauth)
+add_subdirectory(dyvmsapi)

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.10.2
+1.10.3

+ 118 - 0
dyvmsapi/CMakeLists.txt

@@ -0,0 +1,118 @@
+#
+# Copyright 2009-2017 Alibaba Cloud All rights reserved.
+# 
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+# 
+#      http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+set(public_header_dir ${CMAKE_CURRENT_SOURCE_DIR}/../include)
+
+set(dyvmsapi_public_header 
+	include/alibabacloud/dyvmsapi/DyvmsapiClient.h
+	include/alibabacloud/dyvmsapi/DyvmsapiExport.h )
+
+set(dyvmsapi_public_header_model 
+	include/alibabacloud/dyvmsapi/model/SmartCallRequest.h
+	include/alibabacloud/dyvmsapi/model/SmartCallResult.h
+	include/alibabacloud/dyvmsapi/model/QueryCallDetailByCallIdRequest.h
+	include/alibabacloud/dyvmsapi/model/QueryCallDetailByCallIdResult.h
+	include/alibabacloud/dyvmsapi/model/VoipAddAccountRequest.h
+	include/alibabacloud/dyvmsapi/model/VoipAddAccountResult.h
+	include/alibabacloud/dyvmsapi/model/CancelCallRequest.h
+	include/alibabacloud/dyvmsapi/model/CancelCallResult.h
+	include/alibabacloud/dyvmsapi/model/VoipGetTokenRequest.h
+	include/alibabacloud/dyvmsapi/model/VoipGetTokenResult.h
+	include/alibabacloud/dyvmsapi/model/ClickToDialRequest.h
+	include/alibabacloud/dyvmsapi/model/ClickToDialResult.h
+	include/alibabacloud/dyvmsapi/model/IvrCallRequest.h
+	include/alibabacloud/dyvmsapi/model/IvrCallResult.h
+	include/alibabacloud/dyvmsapi/model/SingleCallByVoiceRequest.h
+	include/alibabacloud/dyvmsapi/model/SingleCallByVoiceResult.h
+	include/alibabacloud/dyvmsapi/model/SingleCallByTtsRequest.h
+	include/alibabacloud/dyvmsapi/model/SingleCallByTtsResult.h )
+
+set(dyvmsapi_src 
+	src/DyvmsapiClient.cc
+	src/model/SmartCallRequest.cc
+	src/model/SmartCallResult.cc
+	src/model/QueryCallDetailByCallIdRequest.cc
+	src/model/QueryCallDetailByCallIdResult.cc
+	src/model/VoipAddAccountRequest.cc
+	src/model/VoipAddAccountResult.cc
+	src/model/CancelCallRequest.cc
+	src/model/CancelCallResult.cc
+	src/model/VoipGetTokenRequest.cc
+	src/model/VoipGetTokenResult.cc
+	src/model/ClickToDialRequest.cc
+	src/model/ClickToDialResult.cc
+	src/model/IvrCallRequest.cc
+	src/model/IvrCallResult.cc
+	src/model/SingleCallByVoiceRequest.cc
+	src/model/SingleCallByVoiceResult.cc
+	src/model/SingleCallByTtsRequest.cc
+	src/model/SingleCallByTtsResult.cc )
+
+add_library(dyvmsapi ${LIB_TYPE}
+	${dyvmsapi_public_header}
+	${dyvmsapi_public_header_model}
+	${dyvmsapi_src})
+
+set_target_properties(dyvmsapi
+	PROPERTIES
+	LINKER_LANGUAGE CXX
+	ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
+	LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
+	RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
+	OUTPUT_NAME ${TARGET_OUTPUT_NAME_PREFIX}dyvmsapi
+	)
+
+if(${LIB_TYPE} STREQUAL "SHARED")
+	set_target_properties(dyvmsapi
+		PROPERTIES
+		DEFINE_SYMBOL ALIBABACLOUD_DYVMSAPI_LIBRARY)
+endif()
+
+target_include_directories(dyvmsapi
+	PRIVATE include
+		${CMAKE_SOURCE_DIR}/core/include
+	)
+target_link_libraries(dyvmsapi
+	core)
+
+if(CMAKE_HOST_WIN32)
+	ExternalProject_Get_Property(jsoncpp INSTALL_DIR)
+	set(jsoncpp_install_dir ${INSTALL_DIR})
+	add_dependencies(dyvmsapi
+		jsoncpp)
+	target_include_directories(dyvmsapi
+		PRIVATE	${jsoncpp_install_dir}/include)
+	target_link_libraries(dyvmsapi
+		${jsoncpp_install_dir}/lib/jsoncpp.lib)
+	set_target_properties(dyvmsapi
+    	PROPERTIES
+    		COMPILE_OPTIONS "/bigobj")
+else()
+	target_include_directories(dyvmsapi
+		PRIVATE /usr/include/jsoncpp)
+	target_link_libraries(dyvmsapi
+		jsoncpp)
+endif()
+
+install(FILES ${dyvmsapi_public_header}
+	DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/alibabacloud/dyvmsapi)
+install(FILES ${dyvmsapi_public_header_model}
+	DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/alibabacloud/dyvmsapi/model)
+install(TARGETS dyvmsapi
+	ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+	LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+	RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+	)

+ 118 - 0
dyvmsapi/include/alibabacloud/dyvmsapi/DyvmsapiClient.h

@@ -0,0 +1,118 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_DYVMSAPI_DYVMSAPICLIENT_H_
+#define ALIBABACLOUD_DYVMSAPI_DYVMSAPICLIENT_H_
+
+#include <future>
+#include <alibabacloud/core/AsyncCallerContext.h>
+#include <alibabacloud/core/EndpointProvider.h>
+#include <alibabacloud/core/RpcServiceClient.h>
+#include "DyvmsapiExport.h"
+#include "model/SmartCallRequest.h"
+#include "model/SmartCallResult.h"
+#include "model/QueryCallDetailByCallIdRequest.h"
+#include "model/QueryCallDetailByCallIdResult.h"
+#include "model/VoipAddAccountRequest.h"
+#include "model/VoipAddAccountResult.h"
+#include "model/CancelCallRequest.h"
+#include "model/CancelCallResult.h"
+#include "model/VoipGetTokenRequest.h"
+#include "model/VoipGetTokenResult.h"
+#include "model/ClickToDialRequest.h"
+#include "model/ClickToDialResult.h"
+#include "model/IvrCallRequest.h"
+#include "model/IvrCallResult.h"
+#include "model/SingleCallByVoiceRequest.h"
+#include "model/SingleCallByVoiceResult.h"
+#include "model/SingleCallByTtsRequest.h"
+#include "model/SingleCallByTtsResult.h"
+
+
+namespace AlibabaCloud
+{
+	namespace Dyvmsapi
+	{
+		class ALIBABACLOUD_DYVMSAPI_EXPORT DyvmsapiClient : public RpcServiceClient
+		{
+		public:
+			typedef Outcome<Error, Model::SmartCallResult> SmartCallOutcome;
+			typedef std::future<SmartCallOutcome> SmartCallOutcomeCallable;
+			typedef std::function<void(const DyvmsapiClient*, const Model::SmartCallRequest&, const SmartCallOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> SmartCallAsyncHandler;
+			typedef Outcome<Error, Model::QueryCallDetailByCallIdResult> QueryCallDetailByCallIdOutcome;
+			typedef std::future<QueryCallDetailByCallIdOutcome> QueryCallDetailByCallIdOutcomeCallable;
+			typedef std::function<void(const DyvmsapiClient*, const Model::QueryCallDetailByCallIdRequest&, const QueryCallDetailByCallIdOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> QueryCallDetailByCallIdAsyncHandler;
+			typedef Outcome<Error, Model::VoipAddAccountResult> VoipAddAccountOutcome;
+			typedef std::future<VoipAddAccountOutcome> VoipAddAccountOutcomeCallable;
+			typedef std::function<void(const DyvmsapiClient*, const Model::VoipAddAccountRequest&, const VoipAddAccountOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> VoipAddAccountAsyncHandler;
+			typedef Outcome<Error, Model::CancelCallResult> CancelCallOutcome;
+			typedef std::future<CancelCallOutcome> CancelCallOutcomeCallable;
+			typedef std::function<void(const DyvmsapiClient*, const Model::CancelCallRequest&, const CancelCallOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CancelCallAsyncHandler;
+			typedef Outcome<Error, Model::VoipGetTokenResult> VoipGetTokenOutcome;
+			typedef std::future<VoipGetTokenOutcome> VoipGetTokenOutcomeCallable;
+			typedef std::function<void(const DyvmsapiClient*, const Model::VoipGetTokenRequest&, const VoipGetTokenOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> VoipGetTokenAsyncHandler;
+			typedef Outcome<Error, Model::ClickToDialResult> ClickToDialOutcome;
+			typedef std::future<ClickToDialOutcome> ClickToDialOutcomeCallable;
+			typedef std::function<void(const DyvmsapiClient*, const Model::ClickToDialRequest&, const ClickToDialOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ClickToDialAsyncHandler;
+			typedef Outcome<Error, Model::IvrCallResult> IvrCallOutcome;
+			typedef std::future<IvrCallOutcome> IvrCallOutcomeCallable;
+			typedef std::function<void(const DyvmsapiClient*, const Model::IvrCallRequest&, const IvrCallOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> IvrCallAsyncHandler;
+			typedef Outcome<Error, Model::SingleCallByVoiceResult> SingleCallByVoiceOutcome;
+			typedef std::future<SingleCallByVoiceOutcome> SingleCallByVoiceOutcomeCallable;
+			typedef std::function<void(const DyvmsapiClient*, const Model::SingleCallByVoiceRequest&, const SingleCallByVoiceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> SingleCallByVoiceAsyncHandler;
+			typedef Outcome<Error, Model::SingleCallByTtsResult> SingleCallByTtsOutcome;
+			typedef std::future<SingleCallByTtsOutcome> SingleCallByTtsOutcomeCallable;
+			typedef std::function<void(const DyvmsapiClient*, const Model::SingleCallByTtsRequest&, const SingleCallByTtsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> SingleCallByTtsAsyncHandler;
+
+			DyvmsapiClient(const Credentials &credentials, const ClientConfiguration &configuration);
+			DyvmsapiClient(const std::shared_ptr<CredentialsProvider> &credentialsProvider, const ClientConfiguration &configuration);
+			DyvmsapiClient(const std::string &accessKeyId, const std::string &accessKeySecret, const ClientConfiguration &configuration);
+			~DyvmsapiClient();
+			SmartCallOutcome smartCall(const Model::SmartCallRequest &request)const;
+			void smartCallAsync(const Model::SmartCallRequest& request, const SmartCallAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			SmartCallOutcomeCallable smartCallCallable(const Model::SmartCallRequest& request) const;
+			QueryCallDetailByCallIdOutcome queryCallDetailByCallId(const Model::QueryCallDetailByCallIdRequest &request)const;
+			void queryCallDetailByCallIdAsync(const Model::QueryCallDetailByCallIdRequest& request, const QueryCallDetailByCallIdAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			QueryCallDetailByCallIdOutcomeCallable queryCallDetailByCallIdCallable(const Model::QueryCallDetailByCallIdRequest& request) const;
+			VoipAddAccountOutcome voipAddAccount(const Model::VoipAddAccountRequest &request)const;
+			void voipAddAccountAsync(const Model::VoipAddAccountRequest& request, const VoipAddAccountAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			VoipAddAccountOutcomeCallable voipAddAccountCallable(const Model::VoipAddAccountRequest& request) const;
+			CancelCallOutcome cancelCall(const Model::CancelCallRequest &request)const;
+			void cancelCallAsync(const Model::CancelCallRequest& request, const CancelCallAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CancelCallOutcomeCallable cancelCallCallable(const Model::CancelCallRequest& request) const;
+			VoipGetTokenOutcome voipGetToken(const Model::VoipGetTokenRequest &request)const;
+			void voipGetTokenAsync(const Model::VoipGetTokenRequest& request, const VoipGetTokenAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			VoipGetTokenOutcomeCallable voipGetTokenCallable(const Model::VoipGetTokenRequest& request) const;
+			ClickToDialOutcome clickToDial(const Model::ClickToDialRequest &request)const;
+			void clickToDialAsync(const Model::ClickToDialRequest& request, const ClickToDialAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ClickToDialOutcomeCallable clickToDialCallable(const Model::ClickToDialRequest& request) const;
+			IvrCallOutcome ivrCall(const Model::IvrCallRequest &request)const;
+			void ivrCallAsync(const Model::IvrCallRequest& request, const IvrCallAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			IvrCallOutcomeCallable ivrCallCallable(const Model::IvrCallRequest& request) const;
+			SingleCallByVoiceOutcome singleCallByVoice(const Model::SingleCallByVoiceRequest &request)const;
+			void singleCallByVoiceAsync(const Model::SingleCallByVoiceRequest& request, const SingleCallByVoiceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			SingleCallByVoiceOutcomeCallable singleCallByVoiceCallable(const Model::SingleCallByVoiceRequest& request) const;
+			SingleCallByTtsOutcome singleCallByTts(const Model::SingleCallByTtsRequest &request)const;
+			void singleCallByTtsAsync(const Model::SingleCallByTtsRequest& request, const SingleCallByTtsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			SingleCallByTtsOutcomeCallable singleCallByTtsCallable(const Model::SingleCallByTtsRequest& request) const;
+	
+		private:
+			std::shared_ptr<EndpointProvider> endpointProvider_;
+		};
+	}
+}
+
+#endif // !ALIBABACLOUD_DYVMSAPI_DYVMSAPICLIENT_H_

+ 32 - 0
dyvmsapi/include/alibabacloud/dyvmsapi/DyvmsapiExport.h

@@ -0,0 +1,32 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_DYVMSAPI_DYVMSAPIEXPORT_H_
+#define ALIBABACLOUD_DYVMSAPI_DYVMSAPIEXPORT_H_
+
+#include <alibabacloud/core/Global.h>
+
+#if defined(ALIBABACLOUD_SHARED)
+#	if defined(ALIBABACLOUD_DYVMSAPI_LIBRARY)
+#		define ALIBABACLOUD_DYVMSAPI_EXPORT ALIBABACLOUD_DECL_EXPORT
+#	else
+#		define ALIBABACLOUD_DYVMSAPI_EXPORT ALIBABACLOUD_DECL_IMPORT
+#	endif
+#else
+#	define ALIBABACLOUD_DYVMSAPI_EXPORT
+#endif
+
+#endif // !ALIBABACLOUD_DYVMSAPI_DYVMSAPIEXPORT_H_

+ 60 - 0
dyvmsapi/include/alibabacloud/dyvmsapi/model/CancelCallRequest.h

@@ -0,0 +1,60 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_DYVMSAPI_MODEL_CANCELCALLREQUEST_H_
+#define ALIBABACLOUD_DYVMSAPI_MODEL_CANCELCALLREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/dyvmsapi/DyvmsapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Dyvmsapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_DYVMSAPI_EXPORT CancelCallRequest : public RpcServiceRequest
+			{
+
+			public:
+				CancelCallRequest();
+				~CancelCallRequest();
+
+				std::string getCallId()const;
+				void setCallId(const std::string& callId);
+				long getResourceOwnerId()const;
+				void setResourceOwnerId(long resourceOwnerId);
+				std::string getResourceOwnerAccount()const;
+				void setResourceOwnerAccount(const std::string& resourceOwnerAccount);
+				long getOwnerId()const;
+				void setOwnerId(long ownerId);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+
+            private:
+				std::string callId_;
+				long resourceOwnerId_;
+				std::string resourceOwnerAccount_;
+				long ownerId_;
+				std::string accessKeyId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_DYVMSAPI_MODEL_CANCELCALLREQUEST_H_

+ 55 - 0
dyvmsapi/include/alibabacloud/dyvmsapi/model/CancelCallResult.h

@@ -0,0 +1,55 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_DYVMSAPI_MODEL_CANCELCALLRESULT_H_
+#define ALIBABACLOUD_DYVMSAPI_MODEL_CANCELCALLRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/dyvmsapi/DyvmsapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Dyvmsapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_DYVMSAPI_EXPORT CancelCallResult : public ServiceResult
+			{
+			public:
+
+
+				CancelCallResult();
+				explicit CancelCallResult(const std::string &payload);
+				~CancelCallResult();
+				bool getStatus()const;
+				std::string getMessage()const;
+				std::string getCode()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				bool status_;
+				std::string message_;
+				std::string code_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_DYVMSAPI_MODEL_CANCELCALLRESULT_H_

+ 84 - 0
dyvmsapi/include/alibabacloud/dyvmsapi/model/ClickToDialRequest.h

@@ -0,0 +1,84 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_DYVMSAPI_MODEL_CLICKTODIALREQUEST_H_
+#define ALIBABACLOUD_DYVMSAPI_MODEL_CLICKTODIALREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/dyvmsapi/DyvmsapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Dyvmsapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_DYVMSAPI_EXPORT ClickToDialRequest : public RpcServiceRequest
+			{
+
+			public:
+				ClickToDialRequest();
+				~ClickToDialRequest();
+
+				long getResourceOwnerId()const;
+				void setResourceOwnerId(long resourceOwnerId);
+				std::string getResourceOwnerAccount()const;
+				void setResourceOwnerAccount(const std::string& resourceOwnerAccount);
+				bool getRecordFlag()const;
+				void setRecordFlag(bool recordFlag);
+				long getOwnerId()const;
+				void setOwnerId(long ownerId);
+				std::string getCallerShowNumber()const;
+				void setCallerShowNumber(const std::string& callerShowNumber);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+				int getSessionTimeout()const;
+				void setSessionTimeout(int sessionTimeout);
+				std::string getCalledNumber()const;
+				void setCalledNumber(const std::string& calledNumber);
+				std::string getCalledShowNumber()const;
+				void setCalledShowNumber(const std::string& calledShowNumber);
+				std::string getOutId()const;
+				void setOutId(const std::string& outId);
+				bool getAsrFlag()const;
+				void setAsrFlag(bool asrFlag);
+				std::string getAsrModelId()const;
+				void setAsrModelId(const std::string& asrModelId);
+				std::string getCallerNumber()const;
+				void setCallerNumber(const std::string& callerNumber);
+
+            private:
+				long resourceOwnerId_;
+				std::string resourceOwnerAccount_;
+				bool recordFlag_;
+				long ownerId_;
+				std::string callerShowNumber_;
+				std::string accessKeyId_;
+				int sessionTimeout_;
+				std::string calledNumber_;
+				std::string calledShowNumber_;
+				std::string outId_;
+				bool asrFlag_;
+				std::string asrModelId_;
+				std::string callerNumber_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_DYVMSAPI_MODEL_CLICKTODIALREQUEST_H_

+ 55 - 0
dyvmsapi/include/alibabacloud/dyvmsapi/model/ClickToDialResult.h

@@ -0,0 +1,55 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_DYVMSAPI_MODEL_CLICKTODIALRESULT_H_
+#define ALIBABACLOUD_DYVMSAPI_MODEL_CLICKTODIALRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/dyvmsapi/DyvmsapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Dyvmsapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_DYVMSAPI_EXPORT ClickToDialResult : public ServiceResult
+			{
+			public:
+
+
+				ClickToDialResult();
+				explicit ClickToDialResult(const std::string &payload);
+				~ClickToDialResult();
+				std::string getMessage()const;
+				std::string getCallId()const;
+				std::string getCode()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string message_;
+				std::string callId_;
+				std::string code_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_DYVMSAPI_MODEL_CLICKTODIALRESULT_H_

+ 93 - 0
dyvmsapi/include/alibabacloud/dyvmsapi/model/IvrCallRequest.h

@@ -0,0 +1,93 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_DYVMSAPI_MODEL_IVRCALLREQUEST_H_
+#define ALIBABACLOUD_DYVMSAPI_MODEL_IVRCALLREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/dyvmsapi/DyvmsapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Dyvmsapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_DYVMSAPI_EXPORT IvrCallRequest : public RpcServiceRequest
+			{
+				struct MenuKeyMap
+				{
+					std::string key;
+					std::string code;
+					std::string ttsParams;
+				};
+
+			public:
+				IvrCallRequest();
+				~IvrCallRequest();
+
+				std::string getByeCode()const;
+				void setByeCode(const std::string& byeCode);
+				std::vector<MenuKeyMap> getMenuKeyMap()const;
+				void setMenuKeyMap(const std::vector<MenuKeyMap>& menuKeyMap);
+				long getResourceOwnerId()const;
+				void setResourceOwnerId(long resourceOwnerId);
+				std::string getResourceOwnerAccount()const;
+				void setResourceOwnerAccount(const std::string& resourceOwnerAccount);
+				std::string getStartTtsParams()const;
+				void setStartTtsParams(const std::string& startTtsParams);
+				long getPlayTimes()const;
+				void setPlayTimes(long playTimes);
+				long getOwnerId()const;
+				void setOwnerId(long ownerId);
+				int getTimeout()const;
+				void setTimeout(int timeout);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getStartCode()const;
+				void setStartCode(const std::string& startCode);
+				std::string getCalledNumber()const;
+				void setCalledNumber(const std::string& calledNumber);
+				std::string getCalledShowNumber()const;
+				void setCalledShowNumber(const std::string& calledShowNumber);
+				std::string getOutId()const;
+				void setOutId(const std::string& outId);
+				std::string getByeTtsParams()const;
+				void setByeTtsParams(const std::string& byeTtsParams);
+
+            private:
+				std::string byeCode_;
+				std::vector<MenuKeyMap> menuKeyMap_;
+				long resourceOwnerId_;
+				std::string resourceOwnerAccount_;
+				std::string startTtsParams_;
+				long playTimes_;
+				long ownerId_;
+				int timeout_;
+				std::string accessKeyId_;
+				std::string startCode_;
+				std::string calledNumber_;
+				std::string calledShowNumber_;
+				std::string outId_;
+				std::string byeTtsParams_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_DYVMSAPI_MODEL_IVRCALLREQUEST_H_

+ 55 - 0
dyvmsapi/include/alibabacloud/dyvmsapi/model/IvrCallResult.h

@@ -0,0 +1,55 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_DYVMSAPI_MODEL_IVRCALLRESULT_H_
+#define ALIBABACLOUD_DYVMSAPI_MODEL_IVRCALLRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/dyvmsapi/DyvmsapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Dyvmsapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_DYVMSAPI_EXPORT IvrCallResult : public ServiceResult
+			{
+			public:
+
+
+				IvrCallResult();
+				explicit IvrCallResult(const std::string &payload);
+				~IvrCallResult();
+				std::string getMessage()const;
+				std::string getCallId()const;
+				std::string getCode()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string message_;
+				std::string callId_;
+				std::string code_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_DYVMSAPI_MODEL_IVRCALLRESULT_H_

+ 66 - 0
dyvmsapi/include/alibabacloud/dyvmsapi/model/QueryCallDetailByCallIdRequest.h

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_DYVMSAPI_MODEL_QUERYCALLDETAILBYCALLIDREQUEST_H_
+#define ALIBABACLOUD_DYVMSAPI_MODEL_QUERYCALLDETAILBYCALLIDREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/dyvmsapi/DyvmsapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Dyvmsapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_DYVMSAPI_EXPORT QueryCallDetailByCallIdRequest : public RpcServiceRequest
+			{
+
+			public:
+				QueryCallDetailByCallIdRequest();
+				~QueryCallDetailByCallIdRequest();
+
+				std::string getCallId()const;
+				void setCallId(const std::string& callId);
+				long getResourceOwnerId()const;
+				void setResourceOwnerId(long resourceOwnerId);
+				long getQueryDate()const;
+				void setQueryDate(long queryDate);
+				std::string getResourceOwnerAccount()const;
+				void setResourceOwnerAccount(const std::string& resourceOwnerAccount);
+				long getProdId()const;
+				void setProdId(long prodId);
+				long getOwnerId()const;
+				void setOwnerId(long ownerId);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+
+            private:
+				std::string callId_;
+				long resourceOwnerId_;
+				long queryDate_;
+				std::string resourceOwnerAccount_;
+				long prodId_;
+				long ownerId_;
+				std::string accessKeyId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_DYVMSAPI_MODEL_QUERYCALLDETAILBYCALLIDREQUEST_H_

+ 55 - 0
dyvmsapi/include/alibabacloud/dyvmsapi/model/QueryCallDetailByCallIdResult.h

@@ -0,0 +1,55 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_DYVMSAPI_MODEL_QUERYCALLDETAILBYCALLIDRESULT_H_
+#define ALIBABACLOUD_DYVMSAPI_MODEL_QUERYCALLDETAILBYCALLIDRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/dyvmsapi/DyvmsapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Dyvmsapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_DYVMSAPI_EXPORT QueryCallDetailByCallIdResult : public ServiceResult
+			{
+			public:
+
+
+				QueryCallDetailByCallIdResult();
+				explicit QueryCallDetailByCallIdResult(const std::string &payload);
+				~QueryCallDetailByCallIdResult();
+				std::string getMessage()const;
+				std::string getData()const;
+				std::string getCode()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string message_;
+				std::string data_;
+				std::string code_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_DYVMSAPI_MODEL_QUERYCALLDETAILBYCALLIDRESULT_H_

+ 81 - 0
dyvmsapi/include/alibabacloud/dyvmsapi/model/SingleCallByTtsRequest.h

@@ -0,0 +1,81 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_DYVMSAPI_MODEL_SINGLECALLBYTTSREQUEST_H_
+#define ALIBABACLOUD_DYVMSAPI_MODEL_SINGLECALLBYTTSREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/dyvmsapi/DyvmsapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Dyvmsapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_DYVMSAPI_EXPORT SingleCallByTtsRequest : public RpcServiceRequest
+			{
+
+			public:
+				SingleCallByTtsRequest();
+				~SingleCallByTtsRequest();
+
+				long getResourceOwnerId()const;
+				void setResourceOwnerId(long resourceOwnerId);
+				std::string getResourceOwnerAccount()const;
+				void setResourceOwnerAccount(const std::string& resourceOwnerAccount);
+				std::string getTtsCode()const;
+				void setTtsCode(const std::string& ttsCode);
+				int getPlayTimes()const;
+				void setPlayTimes(int playTimes);
+				std::string getTtsParam()const;
+				void setTtsParam(const std::string& ttsParam);
+				long getOwnerId()const;
+				void setOwnerId(long ownerId);
+				int getSpeed()const;
+				void setSpeed(int speed);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+				int getVolume()const;
+				void setVolume(int volume);
+				std::string getCalledNumber()const;
+				void setCalledNumber(const std::string& calledNumber);
+				std::string getCalledShowNumber()const;
+				void setCalledShowNumber(const std::string& calledShowNumber);
+				std::string getOutId()const;
+				void setOutId(const std::string& outId);
+
+            private:
+				long resourceOwnerId_;
+				std::string resourceOwnerAccount_;
+				std::string ttsCode_;
+				int playTimes_;
+				std::string ttsParam_;
+				long ownerId_;
+				int speed_;
+				std::string accessKeyId_;
+				int volume_;
+				std::string calledNumber_;
+				std::string calledShowNumber_;
+				std::string outId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_DYVMSAPI_MODEL_SINGLECALLBYTTSREQUEST_H_

+ 55 - 0
dyvmsapi/include/alibabacloud/dyvmsapi/model/SingleCallByTtsResult.h

@@ -0,0 +1,55 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_DYVMSAPI_MODEL_SINGLECALLBYTTSRESULT_H_
+#define ALIBABACLOUD_DYVMSAPI_MODEL_SINGLECALLBYTTSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/dyvmsapi/DyvmsapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Dyvmsapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_DYVMSAPI_EXPORT SingleCallByTtsResult : public ServiceResult
+			{
+			public:
+
+
+				SingleCallByTtsResult();
+				explicit SingleCallByTtsResult(const std::string &payload);
+				~SingleCallByTtsResult();
+				std::string getMessage()const;
+				std::string getCallId()const;
+				std::string getCode()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string message_;
+				std::string callId_;
+				std::string code_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_DYVMSAPI_MODEL_SINGLECALLBYTTSRESULT_H_

+ 78 - 0
dyvmsapi/include/alibabacloud/dyvmsapi/model/SingleCallByVoiceRequest.h

@@ -0,0 +1,78 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_DYVMSAPI_MODEL_SINGLECALLBYVOICEREQUEST_H_
+#define ALIBABACLOUD_DYVMSAPI_MODEL_SINGLECALLBYVOICEREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/dyvmsapi/DyvmsapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Dyvmsapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_DYVMSAPI_EXPORT SingleCallByVoiceRequest : public RpcServiceRequest
+			{
+
+			public:
+				SingleCallByVoiceRequest();
+				~SingleCallByVoiceRequest();
+
+				int getVolume()const;
+				void setVolume(int volume);
+				long getResourceOwnerId()const;
+				void setResourceOwnerId(long resourceOwnerId);
+				std::string getResourceOwnerAccount()const;
+				void setResourceOwnerAccount(const std::string& resourceOwnerAccount);
+				std::string getCalledNumber()const;
+				void setCalledNumber(const std::string& calledNumber);
+				std::string getVoiceCode()const;
+				void setVoiceCode(const std::string& voiceCode);
+				std::string getCalledShowNumber()const;
+				void setCalledShowNumber(const std::string& calledShowNumber);
+				int getPlayTimes()const;
+				void setPlayTimes(int playTimes);
+				std::string getOutId()const;
+				void setOutId(const std::string& outId);
+				long getOwnerId()const;
+				void setOwnerId(long ownerId);
+				int getSpeed()const;
+				void setSpeed(int speed);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+
+            private:
+				int volume_;
+				long resourceOwnerId_;
+				std::string resourceOwnerAccount_;
+				std::string calledNumber_;
+				std::string voiceCode_;
+				std::string calledShowNumber_;
+				int playTimes_;
+				std::string outId_;
+				long ownerId_;
+				int speed_;
+				std::string accessKeyId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_DYVMSAPI_MODEL_SINGLECALLBYVOICEREQUEST_H_

+ 55 - 0
dyvmsapi/include/alibabacloud/dyvmsapi/model/SingleCallByVoiceResult.h

@@ -0,0 +1,55 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_DYVMSAPI_MODEL_SINGLECALLBYVOICERESULT_H_
+#define ALIBABACLOUD_DYVMSAPI_MODEL_SINGLECALLBYVOICERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/dyvmsapi/DyvmsapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Dyvmsapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_DYVMSAPI_EXPORT SingleCallByVoiceResult : public ServiceResult
+			{
+			public:
+
+
+				SingleCallByVoiceResult();
+				explicit SingleCallByVoiceResult(const std::string &payload);
+				~SingleCallByVoiceResult();
+				std::string getMessage()const;
+				std::string getCallId()const;
+				std::string getCode()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string message_;
+				std::string callId_;
+				std::string code_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_DYVMSAPI_MODEL_SINGLECALLBYVOICERESULT_H_

+ 93 - 0
dyvmsapi/include/alibabacloud/dyvmsapi/model/SmartCallRequest.h

@@ -0,0 +1,93 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_DYVMSAPI_MODEL_SMARTCALLREQUEST_H_
+#define ALIBABACLOUD_DYVMSAPI_MODEL_SMARTCALLREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/dyvmsapi/DyvmsapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Dyvmsapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_DYVMSAPI_EXPORT SmartCallRequest : public RpcServiceRequest
+			{
+
+			public:
+				SmartCallRequest();
+				~SmartCallRequest();
+
+				long getResourceOwnerId()const;
+				void setResourceOwnerId(long resourceOwnerId);
+				bool getActionCodeBreak()const;
+				void setActionCodeBreak(bool actionCodeBreak);
+				std::string getResourceOwnerAccount()const;
+				void setResourceOwnerAccount(const std::string& resourceOwnerAccount);
+				bool getRecordFlag()const;
+				void setRecordFlag(bool recordFlag);
+				long getOwnerId()const;
+				void setOwnerId(long ownerId);
+				int getSpeed()const;
+				void setSpeed(int speed);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+				int getVolume()const;
+				void setVolume(int volume);
+				std::string getDynamicId()const;
+				void setDynamicId(const std::string& dynamicId);
+				std::string getCalledNumber()const;
+				void setCalledNumber(const std::string& calledNumber);
+				std::string getVoiceCode()const;
+				void setVoiceCode(const std::string& voiceCode);
+				int getMuteTime()const;
+				void setMuteTime(int muteTime);
+				std::string getCalledShowNumber()const;
+				void setCalledShowNumber(const std::string& calledShowNumber);
+				std::string getOutId()const;
+				void setOutId(const std::string& outId);
+				std::string getAsrModelId()const;
+				void setAsrModelId(const std::string& asrModelId);
+				int getPauseTime()const;
+				void setPauseTime(int pauseTime);
+
+            private:
+				long resourceOwnerId_;
+				bool actionCodeBreak_;
+				std::string resourceOwnerAccount_;
+				bool recordFlag_;
+				long ownerId_;
+				int speed_;
+				std::string accessKeyId_;
+				int volume_;
+				std::string dynamicId_;
+				std::string calledNumber_;
+				std::string voiceCode_;
+				int muteTime_;
+				std::string calledShowNumber_;
+				std::string outId_;
+				std::string asrModelId_;
+				int pauseTime_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_DYVMSAPI_MODEL_SMARTCALLREQUEST_H_

+ 55 - 0
dyvmsapi/include/alibabacloud/dyvmsapi/model/SmartCallResult.h

@@ -0,0 +1,55 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_DYVMSAPI_MODEL_SMARTCALLRESULT_H_
+#define ALIBABACLOUD_DYVMSAPI_MODEL_SMARTCALLRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/dyvmsapi/DyvmsapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Dyvmsapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_DYVMSAPI_EXPORT SmartCallResult : public ServiceResult
+			{
+			public:
+
+
+				SmartCallResult();
+				explicit SmartCallResult(const std::string &payload);
+				~SmartCallResult();
+				std::string getMessage()const;
+				std::string getCallId()const;
+				std::string getCode()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string message_;
+				std::string callId_;
+				std::string code_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_DYVMSAPI_MODEL_SMARTCALLRESULT_H_

+ 60 - 0
dyvmsapi/include/alibabacloud/dyvmsapi/model/VoipAddAccountRequest.h

@@ -0,0 +1,60 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_DYVMSAPI_MODEL_VOIPADDACCOUNTREQUEST_H_
+#define ALIBABACLOUD_DYVMSAPI_MODEL_VOIPADDACCOUNTREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/dyvmsapi/DyvmsapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Dyvmsapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_DYVMSAPI_EXPORT VoipAddAccountRequest : public RpcServiceRequest
+			{
+
+			public:
+				VoipAddAccountRequest();
+				~VoipAddAccountRequest();
+
+				long getResourceOwnerId()const;
+				void setResourceOwnerId(long resourceOwnerId);
+				std::string getResourceOwnerAccount()const;
+				void setResourceOwnerAccount(const std::string& resourceOwnerAccount);
+				long getOwnerId()const;
+				void setOwnerId(long ownerId);
+				std::string getDeviceId()const;
+				void setDeviceId(const std::string& deviceId);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+
+            private:
+				long resourceOwnerId_;
+				std::string resourceOwnerAccount_;
+				long ownerId_;
+				std::string deviceId_;
+				std::string accessKeyId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_DYVMSAPI_MODEL_VOIPADDACCOUNTREQUEST_H_

+ 55 - 0
dyvmsapi/include/alibabacloud/dyvmsapi/model/VoipAddAccountResult.h

@@ -0,0 +1,55 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_DYVMSAPI_MODEL_VOIPADDACCOUNTRESULT_H_
+#define ALIBABACLOUD_DYVMSAPI_MODEL_VOIPADDACCOUNTRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/dyvmsapi/DyvmsapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Dyvmsapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_DYVMSAPI_EXPORT VoipAddAccountResult : public ServiceResult
+			{
+			public:
+
+
+				VoipAddAccountResult();
+				explicit VoipAddAccountResult(const std::string &payload);
+				~VoipAddAccountResult();
+				std::string getMessage()const;
+				std::string getModule()const;
+				std::string getCode()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string message_;
+				std::string module_;
+				std::string code_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_DYVMSAPI_MODEL_VOIPADDACCOUNTRESULT_H_

+ 63 - 0
dyvmsapi/include/alibabacloud/dyvmsapi/model/VoipGetTokenRequest.h

@@ -0,0 +1,63 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_DYVMSAPI_MODEL_VOIPGETTOKENREQUEST_H_
+#define ALIBABACLOUD_DYVMSAPI_MODEL_VOIPGETTOKENREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/dyvmsapi/DyvmsapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Dyvmsapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_DYVMSAPI_EXPORT VoipGetTokenRequest : public RpcServiceRequest
+			{
+
+			public:
+				VoipGetTokenRequest();
+				~VoipGetTokenRequest();
+
+				long getResourceOwnerId()const;
+				void setResourceOwnerId(long resourceOwnerId);
+				std::string getVoipId()const;
+				void setVoipId(const std::string& voipId);
+				std::string getResourceOwnerAccount()const;
+				void setResourceOwnerAccount(const std::string& resourceOwnerAccount);
+				long getOwnerId()const;
+				void setOwnerId(long ownerId);
+				std::string getDeviceId()const;
+				void setDeviceId(const std::string& deviceId);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+
+            private:
+				long resourceOwnerId_;
+				std::string voipId_;
+				std::string resourceOwnerAccount_;
+				long ownerId_;
+				std::string deviceId_;
+				std::string accessKeyId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_DYVMSAPI_MODEL_VOIPGETTOKENREQUEST_H_

+ 55 - 0
dyvmsapi/include/alibabacloud/dyvmsapi/model/VoipGetTokenResult.h

@@ -0,0 +1,55 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_DYVMSAPI_MODEL_VOIPGETTOKENRESULT_H_
+#define ALIBABACLOUD_DYVMSAPI_MODEL_VOIPGETTOKENRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/dyvmsapi/DyvmsapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Dyvmsapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_DYVMSAPI_EXPORT VoipGetTokenResult : public ServiceResult
+			{
+			public:
+
+
+				VoipGetTokenResult();
+				explicit VoipGetTokenResult(const std::string &payload);
+				~VoipGetTokenResult();
+				std::string getMessage()const;
+				std::string getModule()const;
+				std::string getCode()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string message_;
+				std::string module_;
+				std::string code_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_DYVMSAPI_MODEL_VOIPGETTOKENRESULT_H_

+ 377 - 0
dyvmsapi/src/DyvmsapiClient.cc

@@ -0,0 +1,377 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/dyvmsapi/DyvmsapiClient.h>
+#include <alibabacloud/core/SimpleCredentialsProvider.h>
+
+using namespace AlibabaCloud;
+using namespace AlibabaCloud::Location;
+using namespace AlibabaCloud::Dyvmsapi;
+using namespace AlibabaCloud::Dyvmsapi::Model;
+
+namespace
+{
+	const std::string SERVICE_NAME = "Dyvmsapi";
+}
+
+DyvmsapiClient::DyvmsapiClient(const Credentials &credentials, const ClientConfiguration &configuration) :
+	RpcServiceClient(SERVICE_NAME, std::make_shared<SimpleCredentialsProvider>(credentials), configuration)
+{
+	auto locationClient = std::make_shared<LocationClient>(credentials, configuration);
+	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "");
+}
+
+DyvmsapiClient::DyvmsapiClient(const std::shared_ptr<CredentialsProvider>& credentialsProvider, const ClientConfiguration & configuration) :
+	RpcServiceClient(SERVICE_NAME, credentialsProvider, configuration)
+{
+	auto locationClient = std::make_shared<LocationClient>(credentialsProvider, configuration);
+	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "");
+}
+
+DyvmsapiClient::DyvmsapiClient(const std::string & accessKeyId, const std::string & accessKeySecret, const ClientConfiguration & configuration) :
+	RpcServiceClient(SERVICE_NAME, std::make_shared<SimpleCredentialsProvider>(accessKeyId, accessKeySecret), configuration)
+{
+	auto locationClient = std::make_shared<LocationClient>(accessKeyId, accessKeySecret, configuration);
+	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "");
+}
+
+DyvmsapiClient::~DyvmsapiClient()
+{}
+
+DyvmsapiClient::SmartCallOutcome DyvmsapiClient::smartCall(const SmartCallRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return SmartCallOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return SmartCallOutcome(SmartCallResult(outcome.result()));
+	else
+		return SmartCallOutcome(outcome.error());
+}
+
+void DyvmsapiClient::smartCallAsync(const SmartCallRequest& request, const SmartCallAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, smartCall(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+DyvmsapiClient::SmartCallOutcomeCallable DyvmsapiClient::smartCallCallable(const SmartCallRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<SmartCallOutcome()>>(
+			[this, request]()
+			{
+			return this->smartCall(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+DyvmsapiClient::QueryCallDetailByCallIdOutcome DyvmsapiClient::queryCallDetailByCallId(const QueryCallDetailByCallIdRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return QueryCallDetailByCallIdOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return QueryCallDetailByCallIdOutcome(QueryCallDetailByCallIdResult(outcome.result()));
+	else
+		return QueryCallDetailByCallIdOutcome(outcome.error());
+}
+
+void DyvmsapiClient::queryCallDetailByCallIdAsync(const QueryCallDetailByCallIdRequest& request, const QueryCallDetailByCallIdAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, queryCallDetailByCallId(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+DyvmsapiClient::QueryCallDetailByCallIdOutcomeCallable DyvmsapiClient::queryCallDetailByCallIdCallable(const QueryCallDetailByCallIdRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<QueryCallDetailByCallIdOutcome()>>(
+			[this, request]()
+			{
+			return this->queryCallDetailByCallId(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+DyvmsapiClient::VoipAddAccountOutcome DyvmsapiClient::voipAddAccount(const VoipAddAccountRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return VoipAddAccountOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return VoipAddAccountOutcome(VoipAddAccountResult(outcome.result()));
+	else
+		return VoipAddAccountOutcome(outcome.error());
+}
+
+void DyvmsapiClient::voipAddAccountAsync(const VoipAddAccountRequest& request, const VoipAddAccountAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, voipAddAccount(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+DyvmsapiClient::VoipAddAccountOutcomeCallable DyvmsapiClient::voipAddAccountCallable(const VoipAddAccountRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<VoipAddAccountOutcome()>>(
+			[this, request]()
+			{
+			return this->voipAddAccount(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+DyvmsapiClient::CancelCallOutcome DyvmsapiClient::cancelCall(const CancelCallRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CancelCallOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CancelCallOutcome(CancelCallResult(outcome.result()));
+	else
+		return CancelCallOutcome(outcome.error());
+}
+
+void DyvmsapiClient::cancelCallAsync(const CancelCallRequest& request, const CancelCallAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, cancelCall(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+DyvmsapiClient::CancelCallOutcomeCallable DyvmsapiClient::cancelCallCallable(const CancelCallRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CancelCallOutcome()>>(
+			[this, request]()
+			{
+			return this->cancelCall(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+DyvmsapiClient::VoipGetTokenOutcome DyvmsapiClient::voipGetToken(const VoipGetTokenRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return VoipGetTokenOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return VoipGetTokenOutcome(VoipGetTokenResult(outcome.result()));
+	else
+		return VoipGetTokenOutcome(outcome.error());
+}
+
+void DyvmsapiClient::voipGetTokenAsync(const VoipGetTokenRequest& request, const VoipGetTokenAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, voipGetToken(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+DyvmsapiClient::VoipGetTokenOutcomeCallable DyvmsapiClient::voipGetTokenCallable(const VoipGetTokenRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<VoipGetTokenOutcome()>>(
+			[this, request]()
+			{
+			return this->voipGetToken(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+DyvmsapiClient::ClickToDialOutcome DyvmsapiClient::clickToDial(const ClickToDialRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ClickToDialOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ClickToDialOutcome(ClickToDialResult(outcome.result()));
+	else
+		return ClickToDialOutcome(outcome.error());
+}
+
+void DyvmsapiClient::clickToDialAsync(const ClickToDialRequest& request, const ClickToDialAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, clickToDial(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+DyvmsapiClient::ClickToDialOutcomeCallable DyvmsapiClient::clickToDialCallable(const ClickToDialRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ClickToDialOutcome()>>(
+			[this, request]()
+			{
+			return this->clickToDial(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+DyvmsapiClient::IvrCallOutcome DyvmsapiClient::ivrCall(const IvrCallRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return IvrCallOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return IvrCallOutcome(IvrCallResult(outcome.result()));
+	else
+		return IvrCallOutcome(outcome.error());
+}
+
+void DyvmsapiClient::ivrCallAsync(const IvrCallRequest& request, const IvrCallAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, ivrCall(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+DyvmsapiClient::IvrCallOutcomeCallable DyvmsapiClient::ivrCallCallable(const IvrCallRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<IvrCallOutcome()>>(
+			[this, request]()
+			{
+			return this->ivrCall(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+DyvmsapiClient::SingleCallByVoiceOutcome DyvmsapiClient::singleCallByVoice(const SingleCallByVoiceRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return SingleCallByVoiceOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return SingleCallByVoiceOutcome(SingleCallByVoiceResult(outcome.result()));
+	else
+		return SingleCallByVoiceOutcome(outcome.error());
+}
+
+void DyvmsapiClient::singleCallByVoiceAsync(const SingleCallByVoiceRequest& request, const SingleCallByVoiceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, singleCallByVoice(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+DyvmsapiClient::SingleCallByVoiceOutcomeCallable DyvmsapiClient::singleCallByVoiceCallable(const SingleCallByVoiceRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<SingleCallByVoiceOutcome()>>(
+			[this, request]()
+			{
+			return this->singleCallByVoice(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+DyvmsapiClient::SingleCallByTtsOutcome DyvmsapiClient::singleCallByTts(const SingleCallByTtsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return SingleCallByTtsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return SingleCallByTtsOutcome(SingleCallByTtsResult(outcome.result()));
+	else
+		return SingleCallByTtsOutcome(outcome.error());
+}
+
+void DyvmsapiClient::singleCallByTtsAsync(const SingleCallByTtsRequest& request, const SingleCallByTtsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, singleCallByTts(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+DyvmsapiClient::SingleCallByTtsOutcomeCallable DyvmsapiClient::singleCallByTtsCallable(const SingleCallByTtsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<SingleCallByTtsOutcome()>>(
+			[this, request]()
+			{
+			return this->singleCallByTts(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+

+ 82 - 0
dyvmsapi/src/model/CancelCallRequest.cc

@@ -0,0 +1,82 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/dyvmsapi/model/CancelCallRequest.h>
+
+using AlibabaCloud::Dyvmsapi::Model::CancelCallRequest;
+
+CancelCallRequest::CancelCallRequest() :
+	RpcServiceRequest("dyvmsapi", "2017-05-25", "CancelCall")
+{}
+
+CancelCallRequest::~CancelCallRequest()
+{}
+
+std::string CancelCallRequest::getCallId()const
+{
+	return callId_;
+}
+
+void CancelCallRequest::setCallId(const std::string& callId)
+{
+	callId_ = callId;
+	setParameter("CallId", callId);
+}
+
+long CancelCallRequest::getResourceOwnerId()const
+{
+	return resourceOwnerId_;
+}
+
+void CancelCallRequest::setResourceOwnerId(long resourceOwnerId)
+{
+	resourceOwnerId_ = resourceOwnerId;
+	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
+}
+
+std::string CancelCallRequest::getResourceOwnerAccount()const
+{
+	return resourceOwnerAccount_;
+}
+
+void CancelCallRequest::setResourceOwnerAccount(const std::string& resourceOwnerAccount)
+{
+	resourceOwnerAccount_ = resourceOwnerAccount;
+	setParameter("ResourceOwnerAccount", resourceOwnerAccount);
+}
+
+long CancelCallRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void CancelCallRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+std::string CancelCallRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void CancelCallRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+

+ 66 - 0
dyvmsapi/src/model/CancelCallResult.cc

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/dyvmsapi/model/CancelCallResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Dyvmsapi;
+using namespace AlibabaCloud::Dyvmsapi::Model;
+
+CancelCallResult::CancelCallResult() :
+	ServiceResult()
+{}
+
+CancelCallResult::CancelCallResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CancelCallResult::~CancelCallResult()
+{}
+
+void CancelCallResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+
+	setRequestId(value["RequestId"].asString());
+	if(!value["Status"].isNull())
+		status_ = value["Status"].asString() == "true";
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+
+}
+
+bool CancelCallResult::getStatus()const
+{
+	return status_;
+}
+
+std::string CancelCallResult::getMessage()const
+{
+	return message_;
+}
+
+std::string CancelCallResult::getCode()const
+{
+	return code_;
+}
+

+ 170 - 0
dyvmsapi/src/model/ClickToDialRequest.cc

@@ -0,0 +1,170 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/dyvmsapi/model/ClickToDialRequest.h>
+
+using AlibabaCloud::Dyvmsapi::Model::ClickToDialRequest;
+
+ClickToDialRequest::ClickToDialRequest() :
+	RpcServiceRequest("dyvmsapi", "2017-05-25", "ClickToDial")
+{}
+
+ClickToDialRequest::~ClickToDialRequest()
+{}
+
+long ClickToDialRequest::getResourceOwnerId()const
+{
+	return resourceOwnerId_;
+}
+
+void ClickToDialRequest::setResourceOwnerId(long resourceOwnerId)
+{
+	resourceOwnerId_ = resourceOwnerId;
+	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
+}
+
+std::string ClickToDialRequest::getResourceOwnerAccount()const
+{
+	return resourceOwnerAccount_;
+}
+
+void ClickToDialRequest::setResourceOwnerAccount(const std::string& resourceOwnerAccount)
+{
+	resourceOwnerAccount_ = resourceOwnerAccount;
+	setParameter("ResourceOwnerAccount", resourceOwnerAccount);
+}
+
+bool ClickToDialRequest::getRecordFlag()const
+{
+	return recordFlag_;
+}
+
+void ClickToDialRequest::setRecordFlag(bool recordFlag)
+{
+	recordFlag_ = recordFlag;
+	setParameter("RecordFlag", std::to_string(recordFlag));
+}
+
+long ClickToDialRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void ClickToDialRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+std::string ClickToDialRequest::getCallerShowNumber()const
+{
+	return callerShowNumber_;
+}
+
+void ClickToDialRequest::setCallerShowNumber(const std::string& callerShowNumber)
+{
+	callerShowNumber_ = callerShowNumber;
+	setParameter("CallerShowNumber", callerShowNumber);
+}
+
+std::string ClickToDialRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void ClickToDialRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+
+int ClickToDialRequest::getSessionTimeout()const
+{
+	return sessionTimeout_;
+}
+
+void ClickToDialRequest::setSessionTimeout(int sessionTimeout)
+{
+	sessionTimeout_ = sessionTimeout;
+	setParameter("SessionTimeout", std::to_string(sessionTimeout));
+}
+
+std::string ClickToDialRequest::getCalledNumber()const
+{
+	return calledNumber_;
+}
+
+void ClickToDialRequest::setCalledNumber(const std::string& calledNumber)
+{
+	calledNumber_ = calledNumber;
+	setParameter("CalledNumber", calledNumber);
+}
+
+std::string ClickToDialRequest::getCalledShowNumber()const
+{
+	return calledShowNumber_;
+}
+
+void ClickToDialRequest::setCalledShowNumber(const std::string& calledShowNumber)
+{
+	calledShowNumber_ = calledShowNumber;
+	setParameter("CalledShowNumber", calledShowNumber);
+}
+
+std::string ClickToDialRequest::getOutId()const
+{
+	return outId_;
+}
+
+void ClickToDialRequest::setOutId(const std::string& outId)
+{
+	outId_ = outId;
+	setParameter("OutId", outId);
+}
+
+bool ClickToDialRequest::getAsrFlag()const
+{
+	return asrFlag_;
+}
+
+void ClickToDialRequest::setAsrFlag(bool asrFlag)
+{
+	asrFlag_ = asrFlag;
+	setParameter("AsrFlag", std::to_string(asrFlag));
+}
+
+std::string ClickToDialRequest::getAsrModelId()const
+{
+	return asrModelId_;
+}
+
+void ClickToDialRequest::setAsrModelId(const std::string& asrModelId)
+{
+	asrModelId_ = asrModelId;
+	setParameter("AsrModelId", asrModelId);
+}
+
+std::string ClickToDialRequest::getCallerNumber()const
+{
+	return callerNumber_;
+}
+
+void ClickToDialRequest::setCallerNumber(const std::string& callerNumber)
+{
+	callerNumber_ = callerNumber;
+	setParameter("CallerNumber", callerNumber);
+}
+

+ 66 - 0
dyvmsapi/src/model/ClickToDialResult.cc

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/dyvmsapi/model/ClickToDialResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Dyvmsapi;
+using namespace AlibabaCloud::Dyvmsapi::Model;
+
+ClickToDialResult::ClickToDialResult() :
+	ServiceResult()
+{}
+
+ClickToDialResult::ClickToDialResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ClickToDialResult::~ClickToDialResult()
+{}
+
+void ClickToDialResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+
+	setRequestId(value["RequestId"].asString());
+	if(!value["CallId"].isNull())
+		callId_ = value["CallId"].asString();
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+
+}
+
+std::string ClickToDialResult::getMessage()const
+{
+	return message_;
+}
+
+std::string ClickToDialResult::getCallId()const
+{
+	return callId_;
+}
+
+std::string ClickToDialResult::getCode()const
+{
+	return code_;
+}
+

+ 188 - 0
dyvmsapi/src/model/IvrCallRequest.cc

@@ -0,0 +1,188 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/dyvmsapi/model/IvrCallRequest.h>
+
+using AlibabaCloud::Dyvmsapi::Model::IvrCallRequest;
+
+IvrCallRequest::IvrCallRequest() :
+	RpcServiceRequest("dyvmsapi", "2017-05-25", "IvrCall")
+{}
+
+IvrCallRequest::~IvrCallRequest()
+{}
+
+std::string IvrCallRequest::getByeCode()const
+{
+	return byeCode_;
+}
+
+void IvrCallRequest::setByeCode(const std::string& byeCode)
+{
+	byeCode_ = byeCode;
+	setParameter("ByeCode", byeCode);
+}
+
+std::vector<IvrCallRequest::MenuKeyMap> IvrCallRequest::getMenuKeyMap()const
+{
+	return menuKeyMap_;
+}
+
+void IvrCallRequest::setMenuKeyMap(const std::vector<MenuKeyMap>& menuKeyMap)
+{
+	menuKeyMap_ = menuKeyMap;
+	int i = 0;
+	for(int i = 0; i!= menuKeyMap.size(); i++)	{
+		auto obj = menuKeyMap.at(i);
+		std::string str ="MenuKeyMap."+ std::to_string(i);
+		setParameter(str + ".Key", obj.key);
+		setParameter(str + ".Code", obj.code);
+		setParameter(str + ".TtsParams", obj.ttsParams);
+	}
+}
+
+long IvrCallRequest::getResourceOwnerId()const
+{
+	return resourceOwnerId_;
+}
+
+void IvrCallRequest::setResourceOwnerId(long resourceOwnerId)
+{
+	resourceOwnerId_ = resourceOwnerId;
+	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
+}
+
+std::string IvrCallRequest::getResourceOwnerAccount()const
+{
+	return resourceOwnerAccount_;
+}
+
+void IvrCallRequest::setResourceOwnerAccount(const std::string& resourceOwnerAccount)
+{
+	resourceOwnerAccount_ = resourceOwnerAccount;
+	setParameter("ResourceOwnerAccount", resourceOwnerAccount);
+}
+
+std::string IvrCallRequest::getStartTtsParams()const
+{
+	return startTtsParams_;
+}
+
+void IvrCallRequest::setStartTtsParams(const std::string& startTtsParams)
+{
+	startTtsParams_ = startTtsParams;
+	setParameter("StartTtsParams", startTtsParams);
+}
+
+long IvrCallRequest::getPlayTimes()const
+{
+	return playTimes_;
+}
+
+void IvrCallRequest::setPlayTimes(long playTimes)
+{
+	playTimes_ = playTimes;
+	setParameter("PlayTimes", std::to_string(playTimes));
+}
+
+long IvrCallRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void IvrCallRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+int IvrCallRequest::getTimeout()const
+{
+	return timeout_;
+}
+
+void IvrCallRequest::setTimeout(int timeout)
+{
+	timeout_ = timeout;
+	setParameter("Timeout", std::to_string(timeout));
+}
+
+std::string IvrCallRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void IvrCallRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+
+std::string IvrCallRequest::getStartCode()const
+{
+	return startCode_;
+}
+
+void IvrCallRequest::setStartCode(const std::string& startCode)
+{
+	startCode_ = startCode;
+	setParameter("StartCode", startCode);
+}
+
+std::string IvrCallRequest::getCalledNumber()const
+{
+	return calledNumber_;
+}
+
+void IvrCallRequest::setCalledNumber(const std::string& calledNumber)
+{
+	calledNumber_ = calledNumber;
+	setParameter("CalledNumber", calledNumber);
+}
+
+std::string IvrCallRequest::getCalledShowNumber()const
+{
+	return calledShowNumber_;
+}
+
+void IvrCallRequest::setCalledShowNumber(const std::string& calledShowNumber)
+{
+	calledShowNumber_ = calledShowNumber;
+	setParameter("CalledShowNumber", calledShowNumber);
+}
+
+std::string IvrCallRequest::getOutId()const
+{
+	return outId_;
+}
+
+void IvrCallRequest::setOutId(const std::string& outId)
+{
+	outId_ = outId;
+	setParameter("OutId", outId);
+}
+
+std::string IvrCallRequest::getByeTtsParams()const
+{
+	return byeTtsParams_;
+}
+
+void IvrCallRequest::setByeTtsParams(const std::string& byeTtsParams)
+{
+	byeTtsParams_ = byeTtsParams;
+	setParameter("ByeTtsParams", byeTtsParams);
+}
+

+ 66 - 0
dyvmsapi/src/model/IvrCallResult.cc

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/dyvmsapi/model/IvrCallResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Dyvmsapi;
+using namespace AlibabaCloud::Dyvmsapi::Model;
+
+IvrCallResult::IvrCallResult() :
+	ServiceResult()
+{}
+
+IvrCallResult::IvrCallResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+IvrCallResult::~IvrCallResult()
+{}
+
+void IvrCallResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+
+	setRequestId(value["RequestId"].asString());
+	if(!value["CallId"].isNull())
+		callId_ = value["CallId"].asString();
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+
+}
+
+std::string IvrCallResult::getMessage()const
+{
+	return message_;
+}
+
+std::string IvrCallResult::getCallId()const
+{
+	return callId_;
+}
+
+std::string IvrCallResult::getCode()const
+{
+	return code_;
+}
+

+ 104 - 0
dyvmsapi/src/model/QueryCallDetailByCallIdRequest.cc

@@ -0,0 +1,104 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/dyvmsapi/model/QueryCallDetailByCallIdRequest.h>
+
+using AlibabaCloud::Dyvmsapi::Model::QueryCallDetailByCallIdRequest;
+
+QueryCallDetailByCallIdRequest::QueryCallDetailByCallIdRequest() :
+	RpcServiceRequest("dyvmsapi", "2017-05-25", "QueryCallDetailByCallId")
+{}
+
+QueryCallDetailByCallIdRequest::~QueryCallDetailByCallIdRequest()
+{}
+
+std::string QueryCallDetailByCallIdRequest::getCallId()const
+{
+	return callId_;
+}
+
+void QueryCallDetailByCallIdRequest::setCallId(const std::string& callId)
+{
+	callId_ = callId;
+	setParameter("CallId", callId);
+}
+
+long QueryCallDetailByCallIdRequest::getResourceOwnerId()const
+{
+	return resourceOwnerId_;
+}
+
+void QueryCallDetailByCallIdRequest::setResourceOwnerId(long resourceOwnerId)
+{
+	resourceOwnerId_ = resourceOwnerId;
+	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
+}
+
+long QueryCallDetailByCallIdRequest::getQueryDate()const
+{
+	return queryDate_;
+}
+
+void QueryCallDetailByCallIdRequest::setQueryDate(long queryDate)
+{
+	queryDate_ = queryDate;
+	setParameter("QueryDate", std::to_string(queryDate));
+}
+
+std::string QueryCallDetailByCallIdRequest::getResourceOwnerAccount()const
+{
+	return resourceOwnerAccount_;
+}
+
+void QueryCallDetailByCallIdRequest::setResourceOwnerAccount(const std::string& resourceOwnerAccount)
+{
+	resourceOwnerAccount_ = resourceOwnerAccount;
+	setParameter("ResourceOwnerAccount", resourceOwnerAccount);
+}
+
+long QueryCallDetailByCallIdRequest::getProdId()const
+{
+	return prodId_;
+}
+
+void QueryCallDetailByCallIdRequest::setProdId(long prodId)
+{
+	prodId_ = prodId;
+	setParameter("ProdId", std::to_string(prodId));
+}
+
+long QueryCallDetailByCallIdRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void QueryCallDetailByCallIdRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+std::string QueryCallDetailByCallIdRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void QueryCallDetailByCallIdRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+

+ 66 - 0
dyvmsapi/src/model/QueryCallDetailByCallIdResult.cc

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/dyvmsapi/model/QueryCallDetailByCallIdResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Dyvmsapi;
+using namespace AlibabaCloud::Dyvmsapi::Model;
+
+QueryCallDetailByCallIdResult::QueryCallDetailByCallIdResult() :
+	ServiceResult()
+{}
+
+QueryCallDetailByCallIdResult::QueryCallDetailByCallIdResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+QueryCallDetailByCallIdResult::~QueryCallDetailByCallIdResult()
+{}
+
+void QueryCallDetailByCallIdResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+
+	setRequestId(value["RequestId"].asString());
+	if(!value["Data"].isNull())
+		data_ = value["Data"].asString();
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+
+}
+
+std::string QueryCallDetailByCallIdResult::getMessage()const
+{
+	return message_;
+}
+
+std::string QueryCallDetailByCallIdResult::getData()const
+{
+	return data_;
+}
+
+std::string QueryCallDetailByCallIdResult::getCode()const
+{
+	return code_;
+}
+

+ 159 - 0
dyvmsapi/src/model/SingleCallByTtsRequest.cc

@@ -0,0 +1,159 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/dyvmsapi/model/SingleCallByTtsRequest.h>
+
+using AlibabaCloud::Dyvmsapi::Model::SingleCallByTtsRequest;
+
+SingleCallByTtsRequest::SingleCallByTtsRequest() :
+	RpcServiceRequest("dyvmsapi", "2017-05-25", "SingleCallByTts")
+{}
+
+SingleCallByTtsRequest::~SingleCallByTtsRequest()
+{}
+
+long SingleCallByTtsRequest::getResourceOwnerId()const
+{
+	return resourceOwnerId_;
+}
+
+void SingleCallByTtsRequest::setResourceOwnerId(long resourceOwnerId)
+{
+	resourceOwnerId_ = resourceOwnerId;
+	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
+}
+
+std::string SingleCallByTtsRequest::getResourceOwnerAccount()const
+{
+	return resourceOwnerAccount_;
+}
+
+void SingleCallByTtsRequest::setResourceOwnerAccount(const std::string& resourceOwnerAccount)
+{
+	resourceOwnerAccount_ = resourceOwnerAccount;
+	setParameter("ResourceOwnerAccount", resourceOwnerAccount);
+}
+
+std::string SingleCallByTtsRequest::getTtsCode()const
+{
+	return ttsCode_;
+}
+
+void SingleCallByTtsRequest::setTtsCode(const std::string& ttsCode)
+{
+	ttsCode_ = ttsCode;
+	setParameter("TtsCode", ttsCode);
+}
+
+int SingleCallByTtsRequest::getPlayTimes()const
+{
+	return playTimes_;
+}
+
+void SingleCallByTtsRequest::setPlayTimes(int playTimes)
+{
+	playTimes_ = playTimes;
+	setParameter("PlayTimes", std::to_string(playTimes));
+}
+
+std::string SingleCallByTtsRequest::getTtsParam()const
+{
+	return ttsParam_;
+}
+
+void SingleCallByTtsRequest::setTtsParam(const std::string& ttsParam)
+{
+	ttsParam_ = ttsParam;
+	setParameter("TtsParam", ttsParam);
+}
+
+long SingleCallByTtsRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void SingleCallByTtsRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+int SingleCallByTtsRequest::getSpeed()const
+{
+	return speed_;
+}
+
+void SingleCallByTtsRequest::setSpeed(int speed)
+{
+	speed_ = speed;
+	setParameter("Speed", std::to_string(speed));
+}
+
+std::string SingleCallByTtsRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void SingleCallByTtsRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+
+int SingleCallByTtsRequest::getVolume()const
+{
+	return volume_;
+}
+
+void SingleCallByTtsRequest::setVolume(int volume)
+{
+	volume_ = volume;
+	setParameter("Volume", std::to_string(volume));
+}
+
+std::string SingleCallByTtsRequest::getCalledNumber()const
+{
+	return calledNumber_;
+}
+
+void SingleCallByTtsRequest::setCalledNumber(const std::string& calledNumber)
+{
+	calledNumber_ = calledNumber;
+	setParameter("CalledNumber", calledNumber);
+}
+
+std::string SingleCallByTtsRequest::getCalledShowNumber()const
+{
+	return calledShowNumber_;
+}
+
+void SingleCallByTtsRequest::setCalledShowNumber(const std::string& calledShowNumber)
+{
+	calledShowNumber_ = calledShowNumber;
+	setParameter("CalledShowNumber", calledShowNumber);
+}
+
+std::string SingleCallByTtsRequest::getOutId()const
+{
+	return outId_;
+}
+
+void SingleCallByTtsRequest::setOutId(const std::string& outId)
+{
+	outId_ = outId;
+	setParameter("OutId", outId);
+}
+

+ 66 - 0
dyvmsapi/src/model/SingleCallByTtsResult.cc

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/dyvmsapi/model/SingleCallByTtsResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Dyvmsapi;
+using namespace AlibabaCloud::Dyvmsapi::Model;
+
+SingleCallByTtsResult::SingleCallByTtsResult() :
+	ServiceResult()
+{}
+
+SingleCallByTtsResult::SingleCallByTtsResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+SingleCallByTtsResult::~SingleCallByTtsResult()
+{}
+
+void SingleCallByTtsResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+
+	setRequestId(value["RequestId"].asString());
+	if(!value["CallId"].isNull())
+		callId_ = value["CallId"].asString();
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+
+}
+
+std::string SingleCallByTtsResult::getMessage()const
+{
+	return message_;
+}
+
+std::string SingleCallByTtsResult::getCallId()const
+{
+	return callId_;
+}
+
+std::string SingleCallByTtsResult::getCode()const
+{
+	return code_;
+}
+

+ 148 - 0
dyvmsapi/src/model/SingleCallByVoiceRequest.cc

@@ -0,0 +1,148 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/dyvmsapi/model/SingleCallByVoiceRequest.h>
+
+using AlibabaCloud::Dyvmsapi::Model::SingleCallByVoiceRequest;
+
+SingleCallByVoiceRequest::SingleCallByVoiceRequest() :
+	RpcServiceRequest("dyvmsapi", "2017-05-25", "SingleCallByVoice")
+{}
+
+SingleCallByVoiceRequest::~SingleCallByVoiceRequest()
+{}
+
+int SingleCallByVoiceRequest::getVolume()const
+{
+	return volume_;
+}
+
+void SingleCallByVoiceRequest::setVolume(int volume)
+{
+	volume_ = volume;
+	setParameter("Volume", std::to_string(volume));
+}
+
+long SingleCallByVoiceRequest::getResourceOwnerId()const
+{
+	return resourceOwnerId_;
+}
+
+void SingleCallByVoiceRequest::setResourceOwnerId(long resourceOwnerId)
+{
+	resourceOwnerId_ = resourceOwnerId;
+	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
+}
+
+std::string SingleCallByVoiceRequest::getResourceOwnerAccount()const
+{
+	return resourceOwnerAccount_;
+}
+
+void SingleCallByVoiceRequest::setResourceOwnerAccount(const std::string& resourceOwnerAccount)
+{
+	resourceOwnerAccount_ = resourceOwnerAccount;
+	setParameter("ResourceOwnerAccount", resourceOwnerAccount);
+}
+
+std::string SingleCallByVoiceRequest::getCalledNumber()const
+{
+	return calledNumber_;
+}
+
+void SingleCallByVoiceRequest::setCalledNumber(const std::string& calledNumber)
+{
+	calledNumber_ = calledNumber;
+	setParameter("CalledNumber", calledNumber);
+}
+
+std::string SingleCallByVoiceRequest::getVoiceCode()const
+{
+	return voiceCode_;
+}
+
+void SingleCallByVoiceRequest::setVoiceCode(const std::string& voiceCode)
+{
+	voiceCode_ = voiceCode;
+	setParameter("VoiceCode", voiceCode);
+}
+
+std::string SingleCallByVoiceRequest::getCalledShowNumber()const
+{
+	return calledShowNumber_;
+}
+
+void SingleCallByVoiceRequest::setCalledShowNumber(const std::string& calledShowNumber)
+{
+	calledShowNumber_ = calledShowNumber;
+	setParameter("CalledShowNumber", calledShowNumber);
+}
+
+int SingleCallByVoiceRequest::getPlayTimes()const
+{
+	return playTimes_;
+}
+
+void SingleCallByVoiceRequest::setPlayTimes(int playTimes)
+{
+	playTimes_ = playTimes;
+	setParameter("PlayTimes", std::to_string(playTimes));
+}
+
+std::string SingleCallByVoiceRequest::getOutId()const
+{
+	return outId_;
+}
+
+void SingleCallByVoiceRequest::setOutId(const std::string& outId)
+{
+	outId_ = outId;
+	setParameter("OutId", outId);
+}
+
+long SingleCallByVoiceRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void SingleCallByVoiceRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+int SingleCallByVoiceRequest::getSpeed()const
+{
+	return speed_;
+}
+
+void SingleCallByVoiceRequest::setSpeed(int speed)
+{
+	speed_ = speed;
+	setParameter("Speed", std::to_string(speed));
+}
+
+std::string SingleCallByVoiceRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void SingleCallByVoiceRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+

+ 66 - 0
dyvmsapi/src/model/SingleCallByVoiceResult.cc

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/dyvmsapi/model/SingleCallByVoiceResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Dyvmsapi;
+using namespace AlibabaCloud::Dyvmsapi::Model;
+
+SingleCallByVoiceResult::SingleCallByVoiceResult() :
+	ServiceResult()
+{}
+
+SingleCallByVoiceResult::SingleCallByVoiceResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+SingleCallByVoiceResult::~SingleCallByVoiceResult()
+{}
+
+void SingleCallByVoiceResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+
+	setRequestId(value["RequestId"].asString());
+	if(!value["CallId"].isNull())
+		callId_ = value["CallId"].asString();
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+
+}
+
+std::string SingleCallByVoiceResult::getMessage()const
+{
+	return message_;
+}
+
+std::string SingleCallByVoiceResult::getCallId()const
+{
+	return callId_;
+}
+
+std::string SingleCallByVoiceResult::getCode()const
+{
+	return code_;
+}
+

+ 203 - 0
dyvmsapi/src/model/SmartCallRequest.cc

@@ -0,0 +1,203 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/dyvmsapi/model/SmartCallRequest.h>
+
+using AlibabaCloud::Dyvmsapi::Model::SmartCallRequest;
+
+SmartCallRequest::SmartCallRequest() :
+	RpcServiceRequest("dyvmsapi", "2017-05-25", "SmartCall")
+{}
+
+SmartCallRequest::~SmartCallRequest()
+{}
+
+long SmartCallRequest::getResourceOwnerId()const
+{
+	return resourceOwnerId_;
+}
+
+void SmartCallRequest::setResourceOwnerId(long resourceOwnerId)
+{
+	resourceOwnerId_ = resourceOwnerId;
+	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
+}
+
+bool SmartCallRequest::getActionCodeBreak()const
+{
+	return actionCodeBreak_;
+}
+
+void SmartCallRequest::setActionCodeBreak(bool actionCodeBreak)
+{
+	actionCodeBreak_ = actionCodeBreak;
+	setParameter("ActionCodeBreak", std::to_string(actionCodeBreak));
+}
+
+std::string SmartCallRequest::getResourceOwnerAccount()const
+{
+	return resourceOwnerAccount_;
+}
+
+void SmartCallRequest::setResourceOwnerAccount(const std::string& resourceOwnerAccount)
+{
+	resourceOwnerAccount_ = resourceOwnerAccount;
+	setParameter("ResourceOwnerAccount", resourceOwnerAccount);
+}
+
+bool SmartCallRequest::getRecordFlag()const
+{
+	return recordFlag_;
+}
+
+void SmartCallRequest::setRecordFlag(bool recordFlag)
+{
+	recordFlag_ = recordFlag;
+	setParameter("RecordFlag", std::to_string(recordFlag));
+}
+
+long SmartCallRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void SmartCallRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+int SmartCallRequest::getSpeed()const
+{
+	return speed_;
+}
+
+void SmartCallRequest::setSpeed(int speed)
+{
+	speed_ = speed;
+	setParameter("Speed", std::to_string(speed));
+}
+
+std::string SmartCallRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void SmartCallRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+
+int SmartCallRequest::getVolume()const
+{
+	return volume_;
+}
+
+void SmartCallRequest::setVolume(int volume)
+{
+	volume_ = volume;
+	setParameter("Volume", std::to_string(volume));
+}
+
+std::string SmartCallRequest::getDynamicId()const
+{
+	return dynamicId_;
+}
+
+void SmartCallRequest::setDynamicId(const std::string& dynamicId)
+{
+	dynamicId_ = dynamicId;
+	setParameter("DynamicId", dynamicId);
+}
+
+std::string SmartCallRequest::getCalledNumber()const
+{
+	return calledNumber_;
+}
+
+void SmartCallRequest::setCalledNumber(const std::string& calledNumber)
+{
+	calledNumber_ = calledNumber;
+	setParameter("CalledNumber", calledNumber);
+}
+
+std::string SmartCallRequest::getVoiceCode()const
+{
+	return voiceCode_;
+}
+
+void SmartCallRequest::setVoiceCode(const std::string& voiceCode)
+{
+	voiceCode_ = voiceCode;
+	setParameter("VoiceCode", voiceCode);
+}
+
+int SmartCallRequest::getMuteTime()const
+{
+	return muteTime_;
+}
+
+void SmartCallRequest::setMuteTime(int muteTime)
+{
+	muteTime_ = muteTime;
+	setParameter("MuteTime", std::to_string(muteTime));
+}
+
+std::string SmartCallRequest::getCalledShowNumber()const
+{
+	return calledShowNumber_;
+}
+
+void SmartCallRequest::setCalledShowNumber(const std::string& calledShowNumber)
+{
+	calledShowNumber_ = calledShowNumber;
+	setParameter("CalledShowNumber", calledShowNumber);
+}
+
+std::string SmartCallRequest::getOutId()const
+{
+	return outId_;
+}
+
+void SmartCallRequest::setOutId(const std::string& outId)
+{
+	outId_ = outId;
+	setParameter("OutId", outId);
+}
+
+std::string SmartCallRequest::getAsrModelId()const
+{
+	return asrModelId_;
+}
+
+void SmartCallRequest::setAsrModelId(const std::string& asrModelId)
+{
+	asrModelId_ = asrModelId;
+	setParameter("AsrModelId", asrModelId);
+}
+
+int SmartCallRequest::getPauseTime()const
+{
+	return pauseTime_;
+}
+
+void SmartCallRequest::setPauseTime(int pauseTime)
+{
+	pauseTime_ = pauseTime;
+	setParameter("PauseTime", std::to_string(pauseTime));
+}
+

+ 66 - 0
dyvmsapi/src/model/SmartCallResult.cc

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/dyvmsapi/model/SmartCallResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Dyvmsapi;
+using namespace AlibabaCloud::Dyvmsapi::Model;
+
+SmartCallResult::SmartCallResult() :
+	ServiceResult()
+{}
+
+SmartCallResult::SmartCallResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+SmartCallResult::~SmartCallResult()
+{}
+
+void SmartCallResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+
+	setRequestId(value["RequestId"].asString());
+	if(!value["CallId"].isNull())
+		callId_ = value["CallId"].asString();
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+
+}
+
+std::string SmartCallResult::getMessage()const
+{
+	return message_;
+}
+
+std::string SmartCallResult::getCallId()const
+{
+	return callId_;
+}
+
+std::string SmartCallResult::getCode()const
+{
+	return code_;
+}
+

+ 82 - 0
dyvmsapi/src/model/VoipAddAccountRequest.cc

@@ -0,0 +1,82 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/dyvmsapi/model/VoipAddAccountRequest.h>
+
+using AlibabaCloud::Dyvmsapi::Model::VoipAddAccountRequest;
+
+VoipAddAccountRequest::VoipAddAccountRequest() :
+	RpcServiceRequest("dyvmsapi", "2017-05-25", "VoipAddAccount")
+{}
+
+VoipAddAccountRequest::~VoipAddAccountRequest()
+{}
+
+long VoipAddAccountRequest::getResourceOwnerId()const
+{
+	return resourceOwnerId_;
+}
+
+void VoipAddAccountRequest::setResourceOwnerId(long resourceOwnerId)
+{
+	resourceOwnerId_ = resourceOwnerId;
+	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
+}
+
+std::string VoipAddAccountRequest::getResourceOwnerAccount()const
+{
+	return resourceOwnerAccount_;
+}
+
+void VoipAddAccountRequest::setResourceOwnerAccount(const std::string& resourceOwnerAccount)
+{
+	resourceOwnerAccount_ = resourceOwnerAccount;
+	setParameter("ResourceOwnerAccount", resourceOwnerAccount);
+}
+
+long VoipAddAccountRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void VoipAddAccountRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+std::string VoipAddAccountRequest::getDeviceId()const
+{
+	return deviceId_;
+}
+
+void VoipAddAccountRequest::setDeviceId(const std::string& deviceId)
+{
+	deviceId_ = deviceId;
+	setParameter("DeviceId", deviceId);
+}
+
+std::string VoipAddAccountRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void VoipAddAccountRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+

+ 66 - 0
dyvmsapi/src/model/VoipAddAccountResult.cc

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/dyvmsapi/model/VoipAddAccountResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Dyvmsapi;
+using namespace AlibabaCloud::Dyvmsapi::Model;
+
+VoipAddAccountResult::VoipAddAccountResult() :
+	ServiceResult()
+{}
+
+VoipAddAccountResult::VoipAddAccountResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+VoipAddAccountResult::~VoipAddAccountResult()
+{}
+
+void VoipAddAccountResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+
+	setRequestId(value["RequestId"].asString());
+	if(!value["Module"].isNull())
+		module_ = value["Module"].asString();
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+
+}
+
+std::string VoipAddAccountResult::getMessage()const
+{
+	return message_;
+}
+
+std::string VoipAddAccountResult::getModule()const
+{
+	return module_;
+}
+
+std::string VoipAddAccountResult::getCode()const
+{
+	return code_;
+}
+

+ 93 - 0
dyvmsapi/src/model/VoipGetTokenRequest.cc

@@ -0,0 +1,93 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/dyvmsapi/model/VoipGetTokenRequest.h>
+
+using AlibabaCloud::Dyvmsapi::Model::VoipGetTokenRequest;
+
+VoipGetTokenRequest::VoipGetTokenRequest() :
+	RpcServiceRequest("dyvmsapi", "2017-05-25", "VoipGetToken")
+{}
+
+VoipGetTokenRequest::~VoipGetTokenRequest()
+{}
+
+long VoipGetTokenRequest::getResourceOwnerId()const
+{
+	return resourceOwnerId_;
+}
+
+void VoipGetTokenRequest::setResourceOwnerId(long resourceOwnerId)
+{
+	resourceOwnerId_ = resourceOwnerId;
+	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
+}
+
+std::string VoipGetTokenRequest::getVoipId()const
+{
+	return voipId_;
+}
+
+void VoipGetTokenRequest::setVoipId(const std::string& voipId)
+{
+	voipId_ = voipId;
+	setParameter("VoipId", voipId);
+}
+
+std::string VoipGetTokenRequest::getResourceOwnerAccount()const
+{
+	return resourceOwnerAccount_;
+}
+
+void VoipGetTokenRequest::setResourceOwnerAccount(const std::string& resourceOwnerAccount)
+{
+	resourceOwnerAccount_ = resourceOwnerAccount;
+	setParameter("ResourceOwnerAccount", resourceOwnerAccount);
+}
+
+long VoipGetTokenRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void VoipGetTokenRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+std::string VoipGetTokenRequest::getDeviceId()const
+{
+	return deviceId_;
+}
+
+void VoipGetTokenRequest::setDeviceId(const std::string& deviceId)
+{
+	deviceId_ = deviceId;
+	setParameter("DeviceId", deviceId);
+}
+
+std::string VoipGetTokenRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void VoipGetTokenRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+

+ 66 - 0
dyvmsapi/src/model/VoipGetTokenResult.cc

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/dyvmsapi/model/VoipGetTokenResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Dyvmsapi;
+using namespace AlibabaCloud::Dyvmsapi::Model;
+
+VoipGetTokenResult::VoipGetTokenResult() :
+	ServiceResult()
+{}
+
+VoipGetTokenResult::VoipGetTokenResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+VoipGetTokenResult::~VoipGetTokenResult()
+{}
+
+void VoipGetTokenResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+
+	setRequestId(value["RequestId"].asString());
+	if(!value["Module"].isNull())
+		module_ = value["Module"].asString();
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+
+}
+
+std::string VoipGetTokenResult::getMessage()const
+{
+	return message_;
+}
+
+std::string VoipGetTokenResult::getModule()const
+{
+	return module_;
+}
+
+std::string VoipGetTokenResult::getCode()const
+{
+	return code_;
+}
+