Дуудлага хийх
- RTC-Web SDK, Socket.IO аш игласан жишээ код:
Гарах дуудлага
1. Дуудлага эхлүүлэх
Socket.IO серверт холбогдож, доорх мэдээллийг явуулна.
Socket.IO серверт холбогдох заавар
destination: Холбох утасны дугаар
fromNumber: Хэрэглэгчийн утасны дугаар
fromName: Хэрэглэгчийн нэр
roomId: Дуудлагын сигнал дамжуулах өрөөний нэр ( click.tenantName.outbound.callId )
video: Видео дуудлага эсэх
import { io } from "socket.io-client";
import { v4 as uuid4 } from "uuid";
// Socket серверт холбогдох, socket_url-г хариуцсан борлуулалтай ажилтантай холбогдож авна.
const socket = io("${socket_url}");
try {
// Дуудлагуудын мэдээлэл болон signaling өрөөний ID хүлээж авах өрөө
const masterRoom = "click.master.outbound";
// Тухайн дуудлагын signaling өрөө
const callRoom = `click.${tenantName}.outbound.${uuidv4()}`;
// Дуудлагын өгөгдөл бэлдэх
const callData = {
destination: `${phoneNumber}`,
fromNumber: fromNumber,
fromName: fromName,
video: "false",
roomId: callRoom,
callType: "audio"
}
// Master өрөө-рүү орох
socket.current.emit("joinRoom", {room: masterRoom, username: fromName});
// Master өрөө-рүү дуудлага хийх мэдээлэл болон тухайн дуудлагын signaling өрөөний ID дамжуулах
socket.current.emit("sendMessage", {room: masterRoom, username: fromName, message: JSON.stringify(callData)});
// Тухайн дуудлагын signaling өрөө-рүү орох
socket.current.emit("joinRoom", {room: callRoom, username: fromName });
} catch (error) {
console.log("Connection error: ", error);
}
2. RTC серверт холбогдох
Эхний алхам дээр үүсгэсэн Socket өрөөнд CallPro Socket серверээс дуудлагын мэдээлэл илгээнэ. Дуудлагын мэдээллийг ашиглан RTC серверт холбогдоно.
RTC серверт холбогдох заавар
- appId: Rtc-н өрөөнд нэвтрэхэд ашиглах appId
- rtcToken: Rtc-н өрөөнд нэвтрэхэд ашиглах token
- serverUrl: Rtc-н өрөөнд нэвтрэхэд ашиглах серверийн хаяг
- userId: Rtc-н өрөөнд нэвтрэхэд ашиглах хэрэглэгчийн ID
- video: Видео дуудлага эсэх
- method: Сигналын төрөл
{
"data": {
"appId": "sNxxxxxxxxxxxxSwxxx3Jg",
"roomId": "sNxxxxxxxxxxxxSwxxx3Jg_0edb1ee7-4712-4860-9fca-72d13c1b4e23",
"rtcToken": "001eJxTYFj64YbyR/s9K3TPvvE7Km9htPbmUSnnX9078rvS/tS75C0UY0edb1ee7471248609fca72d13c1b4e23IslXYCPgeFOyB5WR0edb1ee7471248609fca72d13c1b4e23wszA13LtOREXXOjFEPjZMMkk1QjYw4GSygAAGVLMZ0=",
"serverUrl": "wss://xxx/",
"userId": "sNxxxxxxxxxxxxSwxxx3Jg_0edb1ee7-4712-4860-9fca-72d13c1b4e23_99999999",
"video": "false",
"method": "call_init"
},
"message": {
"reason": "connected"
},
"status": "success"
}
- error: Алдаа - message: Алдааны мессеж - reason: Алдааны шалтгаан - reason: Алдааны тайлбар - status: Алдаа
{
"data": null,
"message": {
"reason": "number_not_found",
"text": "Дугаар олдсонгүй"
},
"status": "error",
}
3. Сигнал хүлээн авах
Эхний алхам дээр үүсгэсэн Socket.IO өрөөнд дамжуулан дуудаж буй, дуудлага таслах зэрэг сигнал хүлээн авна.
- method: Сигналын төрөл ( calling, ringing, answered, hangup, busy )
- calling: Холбогдож байна.
- ringing: Дуудаж байна.
- answered: Хэрэглэгч дуудлагыг хүлээн авсан.
- hangup: Хэрэглэгч дуудлагыг тасалсан.
- busy: Хэрэглэгч завгүй байна.
{
"data": {
"method": "calling"
},
"message": {
"reason": null,
"text": "Холбогдож байна"
},
"status": "success"
}
4. Сигнал илгээх
Эхний алхам дээр үүсгэсэн Socket.IO өрөөнд дамж уулан дуудлага таслах сигнал илгээх боломжтой.
- method: Сигналын төрөл ( hangup, busy )
- hangup: Дуудлага таслах.
{
"method": "hangup"
}
Орох дуудлага
1. Бусад хэрэглэгчээс дуудлага ирэх
CallPro Socket.IO серверт холбогдон click.[tenantName].inbound socket.io өрөө-c дараах мэдээллийг хүлээн авч, RTC серверт холбогдоно.
Socket.IO серверт холбогдох заавар
RTC серверт холбогдох заавар
- appId: Rtc-н өрөөнд нэвтрэхэд ашиглах appId
- rtcToken: Rtc-н өрөөнд нэвтрэхэд ашиглах token
- serverUrl: Rtc-н өрөөнд нэвтрэхэд ашиглах серверийн хаяг
- userId: Rtc-н өрөөнд нэвтрэхэд ашиглах хэрэглэгчийн ID
- video: Видео дуудлага эсэх
- method: Сигналын төрөл
{
"data": {
"appId": "sNxxxxxxxxxxxxSwxxx3Jg",
"roomId": "sNxxxxxxxxxxxxSwxxx3Jg_0edb1ee7-4712-4860-9fca-72d13c1b4e23",
"rtcToken": "001eJxTYFj64YbyR/s9K3TPvvE7Km9htPbmUSnnX9078rvS/tS75C0UY0edb1ee7471248609fca72d13c1b4e23IslXYCPgeFOyB5WR0edb1ee7471248609fca72d13c1b4e23wszA13LtOREXXOjFEPjZMMkk1QjYw4GSygAAGVLMZ0=",
"serverUrl": "wss://xxx/",
"userId": "sNxxxxxxxxxxxxSwxxx3Jg_0edb1ee7-4712-4860-9fca-72d13c1b4e23_99999999",
"video": "false",
},
"message": {
"reason": "connected"
},
"status": "success"
}
2. Сигнал хүлээн авах
Эхний алхам дээр серверээс ирсэн roomId-р дамжуулан дуудлага таслах сигнал хүлээн авна.
- method: Сигналын төрөл ( hangup, busy )
- hangup: Хэрэглэгч дуудлагыг тасалсан.
{
"data": {
"method": "hangup"
},
"message": {
"reason": null,
"text": "Хүлээн авагч тасаллаа"
},
"status": "success"
}
3. Сигнал илгээх
Эхний алхам дээр серверээс ирсэн roomId-р дамжуулан дуудаж буй, дуудлага таслах зэрэг сигнал илгээх боломжтой.
- method: Сигналын төрөл ( calling, ringing, answered, hangup, busy )
- calling: Хэрэглэгч холбогдож байна.
- ringing: Дуудаж байна.
- answered: Хэрэглэгч дуудлагыг хүлээн авсан.
- hangup: Хэрэглэгч дуудлагыг тасалсан.
- busy: Хэрэглэгч завгүй байна.
{
"method": "calling"
}