Ai đó trên diễn đàn Twilio quan tâm đến the very same question và câu trả lời hiện tại không có lệnh gọi API REST trực tiếp cho điều đó.
Điều bạn cần làm là khi người tham gia tham gia hội nghị, you'll use the REST API to make Twilio dial back in to your application. Bạn có thể chọn cách phát hiện ra rằng bạn đang gọi vào hội nghị của riêng bạn, tuy nhiên bạn thích (ví dụ, so sánh các số điện thoại đi và đến cho sự bình đẳng); khi bạn đã phát hiện ra rằng, bạn có thể tham gia cuộc gọi đó trực tiếp đến hội nghị và sử dụng các động từ TwiML<Say>
và <Play>
để phát lại phần giới thiệu cho mọi người.
Đó là một chút phức tạp, nhưng bằng cách này bạn sẽ không xóa từng người tham gia khỏi hội nghị (ngăn họ nghe nhau một lúc) và sau đó nối lại họ.
Đây là thứ tương tự như giải pháp tốt nhất từ đầu đến cuối.
Đầu tiên, người dùng quay số và bạn thực hiện các lời nhắc chuẩn để lấy mã PIN cho phòng hội nghị và tên của họ.
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Gather action="/conference/pin" finishOnKey="#">
<Say>Please the conference pin number followed by the pound key.</Say>
</Gather>
</Response>
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Say>Say your name and then press the pound key.</Say>
<Record action="/conference/name" finishOnKey="#" />
</Response>
Bây giờ, khi bạn có pin và ghi của người dùng, hai điều sẽ xảy ra; phản hồi từ bưu điện đến /conference/name
sẽ chứa <Conference>
động từ, đặt người sử dụng trong phòng:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Dial>
<Conference>{conference ID}</Conference>
</Dial>
</Response>
... và, không đồng bộ đó, nó sẽ sử dụng REST API để bắt đầu một cuộc gọi mới trở lại phòng họp.
POST /2010-04-01/Accounts/{AccountSid}/Calls
From = {your conference phone number}
To = {your conference phone number}
SendDigits = wwww{conference PIN}#
Url = /conference/announce?name={name ID}
Bây giờ, bit tiếp theo trở nên khó hiểu. Twilio bây giờ sẽ nói chuyện với URL gọi lại của bạn cho kết thúc cuộc gọi và URL bạn đã chỉ định ở trên cho kết thúc cuộc gọi đi. Trình xử lý cuộc gọi đến của bạn sẽ cần phải phát hiện ra rằng dòng hội nghị đang gọi lại vào chính nó và hoạt động khác nhau; đầu tiên nó sẽ cần phải đáp ứng với TwiML đơn giản cho phép kết thúc cuộc gọi để nhập mã pin cho phòng hội nghị.
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Gather action="/conference/announce-pin" finishOnKey="#" />
</Response>
Thông số SendDigits
của POST sẽ cung cấp các chữ số mà TwiML mong đợi. Hành động đó sau đó sẽ phản hồi bằng hội nghị trong cuộc gọi mới.
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Dial>
<Conference>{conference ID}</Conference>
</Dial>
</Response>
Đoạn cuối cùng của câu đố là TwiML được phát ra bởi URL bạn đã chỉ định trong POST. Đó là đánh dấu sẽ chạy khi cuộc gọi lặp lại được thêm vào hội nghị.
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Play>/conference/name-recordings/{name ID}</Play>
<Say>has joined the call.</Say>
<Hangup />
</Response>
Đánh dấu đó chạy, phát tên người gọi và tin nhắn vào phòng hội nghị, sau đó gác máy.
Tôi đang cố gắng suy nghĩ về giải pháp của bạn, nhưng tôi không theo dõi chính xác. Có lẽ nếu bạn tham chiếu các cuộc gọi API REST cụ thể. – Alex
Tôi đề xuất sử dụng "/ 2010-04-01/Accounts/{AccountSid}/Conferences/{ConferenceSid}/Participants" để nhận mỗi callSid, sau đó POST một Url cho mỗi "/ 2010-04-01/Accounts/{ AccountSid}/Calls/{CallSid} "có Play/Say TwiML. Tôi giả định điều này sẽ loại bỏ những người tham gia từ Hội nghị, nhưng tôi không chắc chắn về điều này. – Alex
Nó thực sự loại bỏ những người tham gia từ hội nghị. Tôi không thể tạo mẫu cho bạn ngay bây giờ, nhưng có lẽ sau ngày hôm nay hoặc ngày mai tôi có thể phác thảo toàn bộ quá trình cho bạn. –