本示例介绍使用Alibaba Cloud SDK for Java调用QueryCallStatus接口查询呼叫状态。

在业务中使用已创建的绑定关系之前,建议通过接口QueryCallStatus查询呼叫状态,以免呼叫关系异常,影响实际业务。

前提条件

在调用QueryCallStatus接口前,确保:

  • 已经开通了号码隐私保护服务。
  • 已经安装Java SDK。
    <project>
        <modelVersion>4.0.0</modelVersion>
        <groupId>java.demo</groupId>
        <artifactId>test</artifactId>
        <version>1.0-SNAPSHOT</version>
        <dependencies>
            <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-core -->
            <dependency>
                <groupId>com.aliyun</groupId>
                <artifactId>aliyun-java-sdk-core</artifactId>
                <version>4.4.3</version>
            </dependency>
        </dependencies>
    </project>

示例代码

import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;

/**
 * 查询呼叫状态
 */
public class TestQueryCallStatus {

    public static void main(String[] args) {
        DefaultProfile profile = DefaultProfile.getProfile(
                        "<your-region-id>",            // 地域ID
                        "<your-access-key-id>",        // 您的AccessKey ID
                        "<your-access-key-secret>" );  // 您的AccessKey Secret
        IAcsClient client = new DefaultAcsClient(profile);

        CommonRequest request = new CommonRequest();

        request.setMethod(MethodType.POST);
        request.setDomain("dyplsapi.aliyuncs.com");
        request.setVersion("2017-05-25");
        request.setAction("QueryCallStatus");
        
        // 绑定关系ID。可以在控制台的号码管理 > 号码详情中查看绑定关系ID,或者在调用BindAxb等号码绑定API时查看返回参数中的SubsId。
        request.putQueryParameter("SubsId", "FC123456");        
        // 号码池Key。
        request.putQueryParameter("PoolKey", "1000000768798832");
        // 主叫号码。
        request.putQueryParameter("CallNo", "150000000");
        try {
            CommonResponse response = client.getCommonResponse(request);
            System.out.println(response.getData());
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
    }
}