PHP code example of call-center / php-sdk

1. Go to this page and download the library: Download call-center/php-sdk library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

call-center / php-sdk example snippets




allCenter\SDK\CallCenterSDK;

// 初始化SDK
$sdk = new CallCenterSDK('http://127.0.0.1:8200');

// 生成Token
$tokenData = $sdk->token()->generate(
    'your_app_key',      // 应用密钥
    'your_app_secret',   // 应用机密
    3600                 // 过期时间(秒),可选,默认3600
);

// 获取Token字符串
$token = $tokenData['token'];

// 设置Token到SDK(后续API调用将使用此Token)
$sdk->setToken($token);

try {
    $taskData = [
        'callee' => [
            'phone' => '13800138000',  // 被叫电话号码(必填)
            'name' => '张三'            // 被叫姓名(可选)
        ],
        'caller' => [
            'user_id' => 'USER123'     // 主叫用户ID(必填)
        ],
        'biz_id' => 'BIZ123456',      // 业务ID(可选)
        'business_type' => 'normal',   // 业务类型:normal|marketing|notification|verification(可选)
        'adapter_name' => 'sflai',    // 适配器名称(可选,默认sflai)
        'template_code' => 'TEMPLATE001', // 模板代码(可选)
        'schedule_at' => '2023-01-01T12:00:00Z', // 计划执行时间(可选)
        'metadata' => [                // 元数据(可选)
            'key' => 'value'
        ]
    ];

    $result = $sdk->task()->create($taskData);
    $taskId = $result['task_id'];
    echo "任务创建成功,任务ID: {$taskId}\n";
} catch (\CallCenter\SDK\Exception\ApiException $e) {
    echo "API错误: {$e->getMessage()}\n";
    echo "错误代码: {$e->getCode()}\n";
} catch (\CallCenter\SDK\Exception\NetworkException $e) {
    echo "网络错误: {$e->getMessage()}\n";
}

try {
    $result = $sdk->task()->list(1, 20); // 第1页,每页20条
    
    $tasks = $result['tasks'];
    $pagination = $result['pagination'];
    
    echo "共 {$pagination['total']} 条任务,当前第 {$pagination['page']} 页\n";
    
    foreach ($tasks as $task) {
        echo "任务ID: {$task['id']}, 状态: {$task['status']}\n";
    }
} catch (\CallCenter\SDK\Exception\ApiException $e) {
    echo "错误: {$e->getMessage()}\n";
}

try {
    $status = $sdk->task()->getStatus('task1234567890');
    
    echo "任务ID: {$status['task_id']}\n";
    echo "状态: {$status['status']}\n";
    echo "是否成功: " . ($status['success'] ? '是' : '否') . "\n";
} catch (\CallCenter\SDK\Exception\ApiException $e) {
    echo "错误: {$e->getMessage()}\n";
}

try {
    $result = $sdk->task()->cancel('task1234567890');
    echo "取消成功: {$result['msg']}\n";
} catch (\CallCenter\SDK\Exception\ApiException $e) {
    echo "错误: {$e->getMessage()}\n";
}

try {
    $result = $sdk->task()->getRecords('task1234567890', 1, 20);
    
    $records = $result['records'];
    $pagination = $result['pagination'];
    
    echo "共 {$pagination['total']} 条通话记录\n";
    
    foreach ($records as $record) {
        echo "记录ID: {$record['id']}\n";
        echo "通话时长: {$record['duration']} 秒\n";
        echo "开始时间: {$record['start_at']}\n";
        echo "结果: {$record['result_msg']}\n";
        if (isset($record['record_file_url'])) {
            echo "录音文件: {$record['record_file_url']}\n";
        }
        echo "---\n";
    }
} catch (\CallCenter\SDK\Exception\ApiException $e) {
    echo "错误: {$e->getMessage()}\n";
}



allCenter\SDK\CallCenterSDK;
use CallCenter\SDK\Exception\ApiException;
use CallCenter\SDK\Exception\NetworkException;

// 1. 初始化SDK
$sdk = new CallCenterSDK('http://127.0.0.1:8200');

try {
    // 2. 生成Token
    $tokenData = $sdk->token()->generate('your_app_key', 'your_app_secret');
    $sdk->setToken($tokenData['token']);
    echo "Token生成成功\n";

    // 3. 创建外呼任务
    $taskData = [
        'callee' => [
            'phone' => '13800138000',
            'name' => '张三'
        ],
        'caller' => [
            'user_id' => 'USER123'
        ],
        'biz_id' => 'BIZ123456',
        'business_type' => 'normal'
    ];
    
    $createResult = $sdk->task()->create($taskData);
    $taskId = $createResult['task_id'];
    echo "任务创建成功,任务ID: {$taskId}\n";

    // 4. 查询任务状态
    sleep(2); // 等待一下
    $status = $sdk->task()->getStatus($taskId);
    echo "任务状态: {$status['status']}\n";

    // 5. 获取通话记录
    $records = $sdk->task()->getRecords($taskId);
    echo "通话记录数量: " . count($records['records']) . "\n";

    // 6. 获取任务列表
    $taskList = $sdk->task()->list(1, 10);
    echo "任务总数: {$taskList['pagination']['total']}\n";

} catch (ApiException $e) {
    echo "API错误 [{$e->getCode()}]: {$e->getMessage()}\n";
    $responseData = $e->getResponseData();
    if (!empty($responseData)) {
        print_r($responseData);
    }
} catch (NetworkException $e) {
    echo "网络错误: {$e->getMessage()}\n";
} catch (\Exception $e) {
    echo "未知错误: {$e->getMessage()}\n";
}

[
    'token' => 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',
    'expires_at' => 'Sun, 01 Jan 2023 01:00:00 GMT'
]

[
    'task_id' => 'd2c9c8f0-1234-5678-9abc-def012345678'
]

[
    'tasks' => [...],
    'pagination' => [
        'page' => 1,
        'page_size' => 20,
        'pages' => 1,
        'total' => 1
    ]
]

[
    'task_id' => 'task1234567890',
    'status' => 'pending',
    'success' => true
]

[
    'records' => [...],
    'pagination' => [...]
]

try {
    $result = $sdk->task()->create($taskData);
} catch (\CallCenter\SDK\Exception\ApiException $e) {
    // API业务错误
    echo "错误代码: {$e->getCode()}\n";
    echo "错误消息: {$e->getMessage()}\n";
    $responseData = $e->getResponseData(); // 获取原始响应数据
} catch (\CallCenter\SDK\Exception\NetworkException $e) {
    // 网络错误
    echo "网络错误: {$e->getMessage()}\n";
}

$sdk->getClient()->setHttpOptions([
    CURLOPT_SSL_VERIFYPEER => false,
    CURLOPT_SSL_VERIFYHOST => false,
]);

$sdk->getClient()->setTimeout(60); // 60秒超时

$client = $sdk->getClient();
$response = $client->get('/api/custom/endpoint', ['param' => 'value']);