API & SDK FAQ

Updated at:

This topic provides answers to FAQ about the Voice Service API and SDK.

Does the Voice Service SDK support Android devices?

The Voice Service SDK does not currently support building for Android or iOS.

Is a message pushed again after the VoiceReport API operation returns a response?

No. After a message is pushed at the end of a call, it is not pushed again if one of your servers receives it.

What do I do if the connection to dyvmsapi.aliyuncs.com fails?

dyvmsapi.aliyuncs.com is the endpoint for the Voice Service API. It is a public domain name.

Why do I receive a 408 timeout error for a voice call?

Error code 408 usually indicates that the callee did not answer the call within the specified timeout period, or that an issue occurred with the callee's server.

What does error 487 mean for an outbound call?

Log on to the Voice Service console. On the Business Statistics > Voice Record Query page, you can view the reason for the failure. If no result is found, provide the caller and callee numbers and the time of the call, and then contact customer support for verification.

The API operation to send a templated message returns a success response, but the call record shows the line is busy. Why?

A successful API response only indicates that the API operation was invoked successfully. It does not represent the call result. To view call details, log on to the Voice Service console and go to the Business Statistics > Voice Record Query page.

Why do I receive the isv.BLACK_KEY_CONTROL_LIMIT error, indicating a blacklisted keyword in a template variable?

The isv.BLACK_KEY_CONTROL_LIMIT error indicates that a template variable contains a blacklisted keyword. This means there is an issue with your request parameter. Confirm that the template does not contain prohibited content. For more information, see Voice message template specifications. For API error codes, see API error codes.

Why do I receive the "order quota has been used up" error

If you receive an "order quota has been used up" error when calling a Voice Service API operation, but your account balance is sufficient and the call succeeds in your test environment, the error is typically not caused by an issue on the Alibaba Cloud side. We recommend that you contact your third-party service provider. You can also check API error codes to confirm whether the error is an official error code defined by Alibaba Cloud.

Is the policy for public endpoints bidirectional?

Public domain names provide bidirectional access. For a list of public endpoints, see Endpoints.

Note

Voice Service API operations can be accessed only through public domain names. Access through IP addresses is not supported.

Why does error code 200005 appear in the call details in the Voice Service console?

The carrier receipt error code 200005 indicates that the callee could not be reached. This may be because of a carrier issue or because the callee rejected the call. For more information about carrier receipt error codes, see Carrier receipt error codes.

How do I set the number of playbacks for a voice call?

For the SingleCallByVoice and SingleCallByTts API operations, you can set the PlayTimes request parameter to specify the number of playbacks. If the call is connected, the message is played the specified number of times. If the call is not connected, the message is not played. For more information, see Send a voice call and Send a Captcha message by voice.

Note

If a voice call fails, the message is not automatically replayed.

Can I call an API operation to view or create a voice message template?

No, you cannot. Text-to-speech (TTS) templates for Voice Service can be created only in the Voice Service console. You cannot create templates by calling an API operation. You can create or view templates in the Voice Service console.

When I call the QueryCallDetailByCallId operation, why does the `state` parameter in the `Data` object equal 200, with no corresponding carrier error code?

The endpoint for the QueryCallDetailByCallId operation is the public domain name dyvmsapi.aliyuncs.com, and the complete request URL is https://dyvmsapi.aliyuncs.com/.

When you call the QueryCallDetailByCallId operation, a `state` value of 200 in the `Data` object indicates that the operation was called successfully. The generation of carrier receipt error codes may be delayed immediately after a call ends. This can cause the `state` to be 200 without a corresponding carrier receipt error code. You can query again 3 to 5 minutes after the call ends.

How do I set multiple IP addresses as the webhook address for Voice Service?

A single Alibaba Cloud account supports the configuration of only one webhook address for each type of receipt message. To use multiple IP addresses to receive receipt messages, you must use multiple Alibaba Cloud accounts and configure a different IP address for each account. For more information about how to configure receipt messages, see Introduction to receipt messages and configuration process.

Why do I get an error when setting the webhook address for VoiceReport?

This error can occur if the test content is not parsed correctly. The Alibaba Cloud server sends the test content {"json":"test-content"} in JSON format, not JSON array format. When you set the webhook address for testing, you must validate it locally in JSON format. After the test is complete, validate the actual receipt messages in JSON array format.