# Tích hợp kênh thoại trên ứng dụng mobile

Trong nhiều trường hợp. Doanh nghiệp cần giữ thông suốt thông tin từ ứng dụng riêng biệt của mình trên điện thoại di động (ứng dụng trên nền tảng iOS hoặc Android).  CareSoft cung cấp giải pháp tích hợp kênh thoại trên ứng dụng mobile của đối tác, cho phép user có thể nhận cuộc gọi vào và thực hiện cuộc gọi ra ngay trên ứng dụng của đối tác.

> **Yêu cầu:**  Thiết bị di động của chuyên viên (điện thoại iPhone hoặc các thiết bị Android) đều cài đặt  ứng dụng của doanh nghiệp và ứng dụng CsCall

### Chuẩn bị thông tin

1. Lấy mã xác thực từ giao diện admin  CareSoft. \
   Truy cập vào CareSoft bằng tài khoản admin mà CareSoft cấp cho khách hàng.
2. Tại menu Admin --> Api --> Api Token. \
   Ở dòng Token voice api hiện tại chọn Tạo token mới  nếu chưa có hoặc Copy  nếu đã có và lưu lại thành 1 cấu hình {{apiVoiceAccessToken}}
3. Thư viện JWT phù hợp với ngôn ngữ lập trình của bạn để tạo mã token cho mỗi cuộc gọi. Xem thêm ở [ www.jwt.io](https://jwt.io/)​

<figure><img src="/files/y8Pq5q1RayXMVBeAnrdB" alt=""><figcaption><p>Cách lấy và khởi tạo Voice token trên giao diện Caresoft</p></figcaption></figure>

{% hint style="info" %}
**LƯU Ý**: Khi  bấm nút tạo mới hệ thống sẽ thay thế `apiVoiceAccessToken` cũ bằng `apiVoiceAccessToken` mới khiến các ứng dụng đang tích hợp sẽ mất quyền truy cập.  Vui lòng cập nhật token ở các ứng dụng theo token mới nếu bạn bấm "Tạo token mới" để đảm bảo hệ thống hoạt động liền mạch
{% endhint %}

## Cách thức tích hợp

### Chuẩn bị payload để tạo mã token cuộc gọi

```json
{
 "ipphone": "{{agent_id}}"
}
```

**Trong đó:**

* IpPhone Là số Iphone của Chuyên viên tương ứng (Xem thêm thông tin chuyên viên  ở[ Chuyên viên](https://docs.caresoft.vn/danh-muc/restful-api-cua-caresoft/chuyen-vien))

### Tạo chuỗi token

Lập trình với thư viện JWT để tạo ra chuỗi token  trong hình dưới là cách thức gen  token sử dụng trực tiếp từ trang web jwt.io.  Xem các hướng dẫn và thư viện tương thích trong mục "[Libraries](https://jwt.io/libraries)" của JWT

Ví dụ: Tạo chuỗi token đăng nhập vào hệ thống Caresoft sử dụng giao diện JWT.io

Copy chuỗi token JWT lưu thành biến **`{token}`**&#x20;

<figure><img src="/files/9mJHd2cJ4SIiQ0XPdOS8" alt=""><figcaption></figcaption></figure>

*Ví dụ ở trường hợp trên sẽ là*&#x20;

`eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9....e_ZYyfTxg3EDG6vrKxhbZXPx9tQXrLcB5oeyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9....e_ZYyfTxg3EDG6vrKxhbZXPx9tQXrLcB5o`

Token này sẽ lưu lại để thực hiện việc tích hợp click to call với ứng dụng CsCall.

### Thực hiện đăng nhập vào ứng dụng CsCall.

Để thực hiện đăng nhập với ứng dụng CsCall, từ ứng dụng của khách hàng, thực hiện truy cập liên kết sau:

`https://caresoftcall.page.link/?link={link}&apn=com.caresoft.caresoftcall&isi=6447892382&ibi=com.caresoft.caresoftcall&efr=1`

**Trong đó:**&#x20;

\- [https://caresoftcall.page.link](https://caresoft.page.link) là đường dẫn ứng dụng CsCall đã đăng ký để khi gọi đường dẫn này sẽ tự động mở ứng dụng CsCall và thực hiện các tác vụ tương ứng mà ở đây là thực hiện đăng nhập với token đã tạo ở bước trên

\- {link}: đường dẫn để gọi sang app có cấu trúc như sau:

`https://mapi.caresoft.vn/dangnhap?appToken={token}&appDomain={domain}`&#x20;

&#x20;    \+ {token}: token đã tạo và lưu ở bước tạo token

&#x20;    \+ {domain}: tên domain của khách hàng.

**Lưu ý**: đường dẫn khi tạo xong phải được encode

Ví dụ: Với token là 123456, domain là test, thì đường dẫn cuối cùng thực hiện gọi sẽ là:&#x20;

`https://caresoftcall.page.link/?link=https%3A%2F%2Fmapi.caresoft.vn%2Fdangnhap%3FappToken%3D123456%26appDomain%3Dtest&apn=com.caresoft.caresoftcall&isi=6447892382&ibi=com.caresoft.caresoftcall&efr=1`

### Tiếp nhận cuộc gọi vào

Khi Agent để chế độ tiếp nhận trên mobile, khi cuộc gọi đến Agent sẽ tiếp nhận cuộc gọi qua ứng dụng của CsCall, kết thúc cuộc gọi thì quay lại ứng dụng chính để làm việc tiếp.

### **Thực hiện cuộc gọi ra**

Để thực hiện luồng gọi ra, đối tác sẽ tích hợp theo dạng click to call từ ứng dụng của khách hàng bằng cách truy cập liên kết sau:

`https://caresoftcall.page.link/?link={link}&apn=com.caresoft.caresoftcall&isi=6447892382&ibi=com.caresoft.caresoftcall&efr=1`

**Trong đó:**&#x20;

\- [https://caresoftcall.page.link](https://caresoft.page.link) là đường dẫn ứng dụng CsCall đã đăng ký để khi gọi đường dẫn này sẽ tự động mở ứng dụng CsCall và thực hiện các tác vụ tương ứng mà ở đây là thực hiện gọi ra một số điện thoại

\- {link}: đường dẫn để gọi sang app có cấu trúc như sau:

`https://mapi.caresoft.vn/call?phone={phone}&appToken={token}&tempId={tempId}`&#x20;

&#x20;   \+ {phone}: số điện thoại thực hiện gọi ra

&#x20;   \+ {token}: token đã tạo và lưu ở bước tạo token. Sau khi ứng dụng Caresoft đã đúng token với token đăng nhập thì sẽ cho phép gọi ra, tránh việc gọi sai tài khoản.

&#x20;   \+ {tempId}: mã cuộc gọi do ứng dụng khách hàng tạo ra (đảm bảo mã này là duy nhất), dùng để truy xuất thông tin cuộc gọi sau này.

**Lưu ý**: đường dẫn khi tạo xong phải được encode

Ví dụ: Với token là 123456, số điện thoại gọi ra là 0988888888, mã cuộc gọi là 0123456789, thì đường dẫn cuối cùng thực hiện gọi sẽ là:&#x20;

`https://caresoftcall.page.link/?link=https%3A%2F%2Fmapi.caresoft.vn%2Fcall%3Fphone%3D0988888888%26appToken%3D123456%26tempId%3D0123456789&apn=com.caresoft.caresoftcall&isi=6447892382&ibi=com.caresoft.caresoftcall&efr=1`

### Trạng thái và lịch sử cuộc gọi

Lập trình viên có thể sử dụng API [Cuộc gọi](/danh-muc/restful-api-cua-caresoft/cuoc-goi.md) để lấy về danh sách cuộc gọi đã thực hiện của chuyên viên theo số điện thoại của khách. Xem thêm tại: \
[Cuộc gọi](/danh-muc/restful-api-cua-caresoft/cuoc-goi.md#vi-du-minh-hoa-lay-lich-su-cuoc-goi-theo-so-dien-thoai-cua-khach-cua-1-chuyen-vien)

#### **Thông tin thêm:**

Tải Ứng dụng CsCall cho Android [tại đây](https://play.google.com/store/apps/details?id=com.caresoft.caresoftcall\&pli=1) hoặc iOS [tại đây](https://apps.apple.com/vn/app/cscall/id6447892382)<br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.caresoft.vn/danh-muc/tich-hop-thoai/tich-hop-kenh-thoai-tren-ung-dung-mobile.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
