2013-07-10 5 views
4

Twilio 문서에서 정답을 찾지 못했습니다. 전화를 걸 때만 상대방을 보류 상태로 둘 수있는 전화 시스템을 구축하려고합니다. 예 : 현장에서 저와 함께 일하는 두 명의 요원이 있습니다. 내 모바일 (컴퓨터에서 멀리 떨어진 곳)에서 전화를 받고 다른 에이전트가 내가 전화를 거는 사람과 통화해야한다는 것을 알았습니다. 다른 사람을 상담원에게 직접 전송하거나 대기열에 배치 할 수있는 전화로 무언가를 누를 수 있기를 원합니다. 그런 다음 다른 상담원에게 전화를 걸 수 있으며 대기중인 사람을 검색 할 수 있습니다. 이 모든 것은 우리 휴대폰에서만 일어날 필요가 있습니다.Twilio 통화 전송 (in-call)

나는 이것에 대한 몇 가지 문서를 찾았지만, 나는 그것이 가능할 수없는 컴퓨터에 있어야한다고 생각합니다.

Twilio에서도이 기능을 사용할 수 있습니까?

답변

5

여기에 Twilio 전도사가 있습니다.

이것은 use some <Conference>s에 좋은 장소 인 것처럼 들립니다.

시나리오의 액터를 Agent1, Agent2, Field로 정의 할 수 있습니다.

Field는 Agent1을 호출합니다. 두 개를 직접 <Dial>에 연결하는 대신 <Dial> 필드를 <Conference> (ConferenceA)으로 호출 한 다음 REST API를 사용하여 Agent1에 대한 아웃 바운드 호출을 시작할 수 있습니다. 그들이 대답 <Dial> 그들에게 같은 <Conference>로 대답하면. 시스템은 Agent1과 Field의 CallSid와 <Conference>의 Sid를 가져와 나중에 사용할 수 있도록 일부 유형의 저장소에 유지해야합니다.

이 시나리오에서 <Conference>을 사용하면 <Dial>을 사용하여 Field와 Agent1을 연결하는 경우와는 별도로 호출의 각 레그를보다 유연하게 조작 할 수 있습니다.

이제 Agent2가 Field를 호출합니다. Agent2는 동일한 프로세스를 거치며 역순으로 진행됩니다. Agent2는 <Conference>으로 전화를 걸었고 (ConferenceB로 전화를 걸 수 있음) 시스템에서 REST API를 사용하여 Field를 호출했습니다. 필드가 응답하면 <Dial>이 Agent2와 같은 회의에 참가하게됩니다. 다시 시스템은 Agent2와 Field의 CallSid와 <Conference>의 Sid를 가져 와서 나중에 사용할 수있는 저장 장치 유형으로 유지해야합니다.

이제 필드에는 Agent1과 Agent2를 연결하도록 시스템에 지시하는 방법이 필요합니다. 이를 위해 ConferenceB에 필드를 다이얼 할 때 TwilIO를 TwiML에서 hangupOnStar 속성 인 <Dial>을 사용할 수 있습니다.

<Dial hangupOnStar="true" action="[process_hangup_url]"> 
    <Conference>ConferenceB</Conference> 
</Dial> 

hangupOnStar들이 <Dial> 에드 (회의)가, 여전히 <Dial> 동사의 action 속성에 정의 된 URL에 요청을 누구로부터 호출 (필드)을 분리 Twilio을 알려줍니다 것처럼 <Dial> 동사가 보일 것입니다 . 이는 Field가 Agent1을 통해 Conference2로 Agent2를 리다이렉트하도록 시스템에 알려야 할 때 중요하며, action 속성의 URL에 대한 요청은 시스템이 Field에 프롬프트하여 원하는 작업인지 확인하도록합니다. 이 필드를 하나의 시스템 (여기에 관련 당사자 모두의 CallSids을 모두 알고 있으며, 회의 실용 기자재)를 누르면

<Response> 
    <Gather action=[gather_handler]> 
     <Say>Press 1 to connect this caller to another<Say> 
    </Gather> 
</Response> 

경우, REST를 사용할 수 있습니다 그래서 당신은 Twilio는 다음과 같이 몇 가지 TwiML을 실행해야 할 수도 있습니다 상담원 2를 ConferenceB에서 ConferenceA로 리디렉션하는 API입니다.

시스템의 복잡성은 조금 더 복잡해 지지만 제대로 작동해야합니다.

0
Redirect an incoming call to new url:  

<?php 
// Get the PHP helper library from twilio.com/docs/php/install 
require_once '/path/to/vendor/autoload.php'; // Loads the library 
use Twilio\Rest\Client; 
// Your Account Sid and Auth Token from twilio.com/user/account 
$sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; 
$token = "your_auth_token"; 
$client = new Client($sid, $token); 
// Get an object from its sid. If you do not have a sid, 
$call = $client 
    ->calls("CAe1644a7eed5088b159577c5802d8be38") 
    ->update(
     array(
      "url" => "your_url/test.xml", 
      "method" => "POST" 
     ) 
    ); 

echo $call->to; 

XML Code: 
--------- 
<Response> 
    <Redirect method="POST">url goes here</Redirect> 
</Response> 
+0

을하는 데 도움이

희망이 코드는 미래의 독자를 지원하기 위해 작동하는 이유를 설명 할 수? – WhatsThePoint

관련 문제