Bài viết

goitudong.vn
  • phucnd
  • 03/07/2021

Hướng dẫn cách sử dụng tính năng gọi điện qua API

Tính năng gọi điện qua API trên ứng dụng Auto Call - Gọi Tự Động sẽ giúp bạn có thể tích hợp gọi điện từ chính điện thoại/số điện thoại của mình vào bất kỳ hệ thống CRM hay ứng dụng bên thứ 3 nào (không cần đăng ký đầu số). Nhiều bạn sẽ thắc mắc không hiểu cách thức hoạt động của tính năng này là như thế nào? Bài viết này chúng tôi sẽ giải thích chi tiết để các bạn hiểu rõ và sử dụng nó.

*** Chúng tôi đã tích hợp tính năng gọi điện qua API vào website: https://call.goitudong.vn/, bạn có thể vào website này để gọi điện từ máy tính.

➡️ Đầu tiên bạn cần hiểu API là gì?

API là các phương thức, giao thức để kết nối với các thư viện và ứng dụng khác. Nó là viết tắt của Application Programming Interface – giao diện lập trình ứng dụng. API cung cấp khả năng truy xuất đến một tập các hàm hay dùng. Và từ đó có thể trao đổi dữ liệu giữa các ứng dụng.

 

➡️ Vậy gọi điện qua API là như thế nào?

Gọi điện qua API là cách thức gọi điện thông qua hàm API do chúng tôi định nghĩa với các tham số chỉ định sẵn (secret key, số điện thoại, tên khách hàng,...). Khi hàm API này được gọi, nó sẽ kết nối và gửi các thông số nhận được đến ứng dụng Auto Call - Gọi Tự Động. Sau đó, ứng dụng sẽ lấy các thông số mà bạn đã cấu hình trên ứng dụng điện thoại: gọi với tệp ghi âm, tự động ngắt cuộc gọi, có gửi kèm tin nhắn hay không, SIM gọi,... để gọi đến số điện thoại khách hàng mà bạn đã truyền vào ở trên. Để có thể tích hợp được tính năng này thì bạn cần:

- Có thiết bị (điện thoại/máy tính bảng chạy Android) đã cài đặt và kích hoạt bản quyền ứng dụng Auto Call - Gọi Tự Động.

- Hiểu biết một chút về kỹ thuật lập trình.

*** Với khách hàng không biết về lập trình thì việc tích hợp này cần nhờ bên phát triển hệ thống web / app để giúp tích hợp.

 

➡️ Kịch bản áp dụng

Kịch bản áp dụng phổ biến nhất đó là tích hợp vào hệ thống CRM. Tức là, nếu hệ thống CRM của bạn tích hợp tính năng gọi điện qua API thì ở màn hình danh sách khách hàng (có các thông tin như: số điện thoại, họ tên,...), nhân viên có thể click gọi cho từng khách hàng để chăm sóc một cách hoàn toàn tự động. Tính năng này cũng cho phép hệ thống CRM có thể lắng nghe thông tin chi tiết cuộc gọi được trả về từ ứng dụng: thời lượng cuộc gọi, thời lượng trả lời, có gửi kèm tin nhắn hay không,...

 

➡️ Chi tiết các tham số của hàm API chúng tôi cung cấp để gọi điện qua API như sau:

Api Url: https://api.goitudong.vn/campaign/callone/

Method: POST

Post body: JSON object

{
  "secretKey" : "[Lấy trong ứng dụng]", //bắt buộc
  "customerPhone" : "[Số điện thoại của khách hàng muốn gọi]", //bắt buộc
  "customerName" : "[Tên khách hàng]", //không bắt buộc
  "customerGender" : "[Giới tính khách hàng (Nam/Nữ/Công Ty)]", //không bắt buộc
  "customerInfo" : "[Thông tin khác của khách hàng]" //không bắt buộc 
  "callId" : "[Id riêng của từng cuộc gọi]", //không bắt buộc,
  "apiCallbackUrl" : "[POST API để lắng nghe trạng thái cuộc gọi]" //không bắt buộc
}

Kết quả trả về dạng JSON object như sau:

Gửi yêu cầu gọi thành công

{

"errorCode": 0, // mã lỗi = 0

 "hasError": false //không có lỗi

}

Gửi lỗi

{

"errorCode": [một trong các mã lỗi: 2111, 2112, 2113, 2114, 2115, 2116, 211721182222], //mã lỗi khác 0

 "hasError": true //có lỗi

}

Chi tiết các mã lỗi:

2111: Secret Key hoặc Số điện thoại khách hàng trống

2112: Secret Key không đúng

2113: Không tìm thấy tài khoản

2114: Tài khoản chưa được kích hoạt

2115: Tài khoản không được phép gọi điện qua API

2116: Tính năng gọi điện qua API đang bị TẮT

2117: Secret Key đã hết hạn

2118: Đã dùng hết số lượng API requests cho tháng hiện tại

2222: Lỗi hệ thống

 

➡️ Code mẫu trên một số ngôn ngữ lập trình

.NET (C#)

      public async Task<ResponseView> Call(CallModel callModel)
        {
            const string apiUrl= "https://api.goitudong.vn/campaign/callone/";
            var responseInJsonString = await PostRequest(apiUrl, ToStringContent(callModel));
            return JsonConvert.DeserializeObject<ResponseView>(responseInJsonString);
        }

 

        public StringContent ToStringContent(object o)
             => new StringContent(JsonConvert.SerializeObject(o), Encoding.UTF8, "application/json");

 

        public async Task<string> PostRequest(string url, HttpContent httpContent)
        {
            var handler = new HttpClientHandler
            {
                ServerCertificateCustomValidationCallback = (message, xcert, chain, errors) =>
                {
                    return true;
                }
            };
            using (var webClient = new HttpClient(handler))
            {
                var result = await webClient.PostAsync(url, httpContent);
                return await result.Content.ReadAsStringAsync();
            }
        }

 

        public class CallModel
        {
            public string SecretKey { get; set; }

            public string CustomerPhone { get; set; }

            public string CustomerName { get; set; }

            public string CustomerGender { get; set; }

            public string CustomerInfo { get; set; }

            public string CallId { get; set; }

            public string ApiCallbackUrl { get; set; }
        }

 

        public class ResponseView
        {
            public int ErrorCode { get; set; }
            public bool HasError { get; set; }
        }

JAVASCRIPT/JQUERY

function apiCall(key, phone, name, gender, info, callId, callbackUrl) {
    $.ajax({
        url: "https://api.goitudong.vn/campaign/callone/",
        type: "POST",
        data: JSON.stringify({ secretKey: key, customerPhone: phone, customerName: name, customerGender: gender, customerInfo: info, callId: callId, apiCallbackUrl: callbackUrl }),
        contentType: "application/json; charset=UTF-8",
        success: function (data) {
            if (data.hasError) {
                //Có lỗi
            } else {
               //Gửi yêu cầu gọi điện thành công
            }
        },
        error: function () {
        }
    });
}

PHP

$url = 'https://api.goitudong.vn/campaign/callone/';
$ch = curl_init($url);

$data = array(
    'secretKey' => '[YOUR_KEY]',
    'customerPhone' => '[CUSTOMER_PHONE]',
    'customerName' => '[CUSTOMER_NAME]',
    'customerGender' => '[CUSTOMER_GENDER]',
    'customerInfo' => '[CUSTOMER_INFO]'',
    'callId' => '[CALL_ID]',
    'apiCallbackUrl' => '[API_CALLBACK_URL]'
);

$payload = json_encode($data);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);

//Get response
$data = json_decode(file_get_contents('php://input'), true);

 

CODE MẪU API CALLBACK ĐỂ LẮNG NGHE TRẠNG THÁI CUỘC GỌI TRÊN .NET (C#)

        [HttpPost("ListenCallState"), AllowAnonymous]
        public async Task<IActionResult> ListenCallState([FromBody] CallResponseModel callResponseModel)
        {
            //TODO: Cập nhật trạng thái cuộc gọi vào hệ thống
        }

        public class CallResponseModel
        {
            public string Phone { get; set; }
            public string Name { get; set; }
            public string Gender { get; set; }
            public string Info { get; set; }
            public string CallId { get; set; }
            public CallDetail CallDetail { get; set; }
        }

        public class CallDetail
        {
            public int CallStatus { get; set; }
            public string CallBySim { get; set; }
            public long CallDuration { get; set; }
            public long AnswerDuration { get; set; }
            public bool SendSms { get; set; }
            public string SmsContent { get; set; }
            public int ResponseStatus { get; set; } // 1 = Quan tâm, 2 = Không quan tâm, 3 = Chưa phản hồi, 4 = Không liên lạc được
            public string CallNotes { get; set; }
        }

 

➡️ Cách lấy Secret Key và cấu hình các thông số để gọi điện qua API

B1: Mở ứng dụng Auto Call - Gọi Tự Động -> click vào Menu ở phía trên bên phải -> chọn Cấu hình gọi điện qua API:

Menu gọi điện qua API

 

B2: Sau khi màn hình cấu hình gọi điện qua API hiển thị, bạn click vào nút LẤY để lấy Secret Key và bật tính năng này. Sau đó bạn cấu hình các thông số như: Gọi với tệp thoại, Tự động ngắt cuộc gọi, chọn SIM gọi mặc định, tùy chọn Gửi kèm tin nhắn, cấu hình SIM gọi.

Màn hình cấu hình gọi điện qua API

 

B3: Sau khi thiết lập các thông số, bạn nhấn vào nút LƯU LẠI để lưu các cấu hình vừa thiết lập. Khi tích hợp thì sao chép Secret Key này để truyền vào hàm API mà chúng tôi cung cấp.

*** Chú ý:

- Secret Key là rất quan trọng, chỉ chia sẻ với những ai thật sự cần thiết

- Nếu muốn TẮT tính năng gọi điện qua API thì hãy xóa Secret Key, bạn vẫn có thể lấy lại và BẬT tính năng này vào bất cứ lúc nào bạn muốn.

Màn hình cấu hình cho tính năng gọi điện qua API

 

❤️ Hi vọng qua bài viết chúng tôi vừa chia sẻ, các bạn sẽ hiểu và sử dụng được tính năng tuyệt vời này.

*** Tư vấn và hỗ trợ cài đặt: Gọi hotline: 0798 110 885 hoặc gửi email đến: [email protected] 

 

 
 

Thông Tin Liên Hệ

Phone

0798 110 885

Address

21A Nguyễn Khang, Cầu Giấy, Hà Nội