Twilio Studio 및 기능-전화 귓속말

스테판 루소

상담원이 어떤 전화 번호 / 제품을 다이얼했는지 알려주는 간단한 통화 속삭임을 구현하려고합니다. 전화가 오면 발신자가 언어를 선택하는 스튜디오 흐름을 거칩니다. 그런 다음 호출은 "대기열에 넣기"위젯을 통해 작업 라우터 대기열로 라우팅됩니다. 설명서에서 읽은 내용에서 instruction: 'call'에이전트에 "재생"할 URL을 지정할 수 있도록 콜백 함수에 매개 변수 를 전달해야합니다 .

나는 현재 Studio 및 Functions를 통해 twilio 내부의 모든 것을 구현하는 것으로 제한되어 있습니다.

이것이 작동하지 않는 이유는 무엇이며 구체적으로 무엇을해야합니까?

감사!

할당 콜백 기능

exports.handler = function(context, event, callback) {
    const client = context.getTwilioClient();
    let eventInfo = JSON.parse(event.TaskAttributes);
    // const response = new Twilio.twiml.VoiceResponse();
    console.log(Object.keys(event));
    console.log(JSON.parse(event.TaskAttributes));
    console.log(Object.keys(JSON.parse(event.TaskAttributes)));
    // console.log(JSON.parse(event.WorkerAttributes));
    const worker = JSON.parse(event.WorkerAttributes);
    // console.log("ReservationSid: " + event.ReservationSid);
    // console.log(typeof eventInfo);

    // // ATTEMPT 1 
    // // This works to dequeue a call to a worker, but there is no whisper functionality
    // callback(null, {
    //   'instruction':'dequeue',
    //   'post_work_activity_sid' : 'WORKSPACEACTIVITYSID',
    //   'from' : eventInfo.from
    // });

    // // ATTEMPT 2
    // // This works to play the whisper to the agent, but the caller is never connected to the agent.
    let callbackURL = 'TWILIOFUNCTIONURL';
    callback(null, {
      'instruction':'call',
      'post_work_activity_sid' : 'WORKSPACEACTIVITYSID',
      'from' : eventInfo.from,
      'url' : callbackURL
    });

    // // ATTEMPT 3 - Building a twiml version of attempt #2
    // // This doesn't work.
    //
    // let callbackURL = 'TWILIOFUNCTIONURL';
    // let twiml = new Twilio.twiml.VoiceResponse();
    // const dial = twiml.dial();    
    // dial.queue({
    //     'instruction':'call',
    //     // 'post_work_activity_sid' : 'WORKSPACEACTIVITYSID',
    //     'from' : eventInfo.from,
    //     'accept' : true,
    //     'url' : callbackURL,
    //     // 'reservationSid' : event.ReservationSid
    // }, event.selected_language);
    // console.log(dial.toString());
    // console.log(twiml.toString());
    // callback(null, twiml);

    // // ATTEMPT 4 - Build a twiml version of attempt #1
    // // This doesn't work.
    //
    // let twiml = new Twilio.twiml.VoiceResponse();
    // twiml.dial({
    //   'instruction':'dequeue',
    //   'post_work_activity_sid' : 'WORKSPACEACTIVITYSID',
    //   'from' : eventInfo.from
    // //   'to' : 'WORKSPACEQUEUESID'
    // });
    // console.log(twiml.toString());
    // callback(null, twiml);
};

대기열 알림 내용이 포함 된 콜백 URL입니다.

exports.handler = function(context, event, callback) {
    let twiml = new Twilio.twiml.VoiceResponse();
//  let client = context.getTwilioClient();
//  console.log("BEGIN Queue Announcer - context");
//  console.log(Object.keys(context));
//  console.log(context);
//  console.log("BEGIN Queue Announcer - event");
//  console.log(Object.keys(event));
//  console.log(event);
//  console.log("BEGIN Queue Announcer - client");
//  console.log(Object.keys(client));
//  console.log(client);
//  console.log("END Queue Announcer");

// Random attempt to get the call info
//  console.log("BEGIN Queue Announcer - CallSid");
//  console.log(event.CallSid);
//  client.calls(event.CallSid)
//      .fetch()
//      .then(call => console.log("Call: " + call));
//  console.log("END Queue Announcer - CallSid");


    let client = context.getTwilioClient();
    twiml.say("QUEUE NAME GOES HERE");
    twiml.dial()
    .queue({
        // 'reservationSid' : event.ReservationSid
    }, 'english');
    callback(null, twiml);
};
스테판 루소

내가 한 일이 여기에 있습니다. 이는 사실상 "할당 콜백 URL"인 함수 내에 포함됩니다.

단계 :

  1. 'echo'twimlet을 사용하여 Twiml을 생성합니다. 적절한 경우 'event.RegistrationSid'를 포함하도록 제공된 URL을 수정하십시오.
  2. POST 요청을 통해 등록을 수락합니다.
  3. 'instruction : call'매개 변수를 포함하여 콜백을 수행합니다.

exports.handler = function(context, event, callback) {
const client = context.getTwilioClient();
let eventInfo = JSON.parse(event.TaskAttributes);

// Generate the callback url
let callbackURL = `http://twimlets.com/echo?Twiml=%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%0A%3CResponse%3E%0A%3CSay%3ECALLWHISPERGOESHERE%3C%2FSay%3E%0A%3CDial%3E%0A%3CQueue%20reservationSid%3D%22${event.ReservationSid}%22%3E%3C%2FQueue%3E%0A%3C%2FDial%3E%0A%3C%2FResponse%3E&`;

// Generate POST request to accept the reservation
const rp = require("request-promise");
const postURI = `https://taskrouter.twilio.com/v1/Workspaces/${event.WorkspaceSid}/Tasks/${event.TaskSid}/Reservations/${event.ReservationSid}`;
const postForm = {
    ReservationStatus: "accepted"
};
const postAuth = {
    user: context.ACCOUNT_SID,
    pass: context.AUTH_TOKEN
};
const options = {
    method: "POST",
    uri: postURI,
    auth: postAuth,
    form: postForm
};
rp(options)
    .then(body => {
        console.log(body);
        callback(null, null);
    })
    .catch(err => {
        console.log(err);
        callback(null, err);
    });

// Call the agent
callback(null, {
    instruction: "call",
    post_work_activity_sid: "POSTWORKACTIVITYSID",
    from: eventInfo.from,
    url: callbackURL
});
};

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Visual Studio에서 기능 성능 및 속도 향상

분류에서Dev

이전 데이터 포인트에 대해 귓속말 집계가 작동하지 않음

분류에서Dev

Twilio, 이번 달 국제 전화 받기

분류에서Dev

Twilio SIP : 발신 전화 걸기

분류에서Dev

상속 및 기능

분류에서Dev

Twilio : From 및 To 번호에 대해 각각 두 개의 오디오로 전화 걸기 : PHP

분류에서Dev

Twilio의 기록 및 스크립트 기능에 대한 설명

분류에서Dev

Twilio 프로그래밍 가능 음성 SDK를 사용하여 전화 받기

분류에서Dev

동적 전체 화면 생성 및 Div 기능 최소화

분류에서Dev

수신 전화 번호를 기반으로 Twilio 착신 전환

분류에서Dev

개별 기능 및 전체 프로그램의 속도

분류에서Dev

Twilio 보안 기능

분류에서Dev

Lua 기능의 성능 및 최적화

분류에서Dev

상속 및 가상 기능

분류에서Dev

onBackPressed 및 새로 고침 기능의 안드로이드 전화

분류에서Dev

Twilio : 기존 회의에서 전화 끊기, 오류 20404

분류에서Dev

데이터 가져 오기 기능 가속화 (팬더 및 DataFrame에 추가)

분류에서Dev

지속적인 배포, 버전 관리 및 기능 분기 혼란

분류에서Dev

동기화 기능 약속

분류에서Dev

Twilio로 브라우저에서 전화 받기

분류에서Dev

Twilio IfMachine => 전화 끊기가 작동하지 않음

분류에서Dev

기존 전화 핸드셋과 함께 Twilio 사용

분류에서Dev

Twilio에서 전화를 걸어 기록을 받으세요

분류에서Dev

Meteor Twilio SMS 기능 문제 및 백분위 수 JS 쿼리 애니메이션

분류에서Dev

Ruby on Rails 및 Twilio

분류에서Dev

Twilio 발신 전화 ID

분류에서Dev

Raw Export Twilio Studio 실행 로그 및 디버거 메시지?

분류에서Dev

전문화 규칙이있는 기능적 종속성

분류에서Dev

메모 화 및 기능 추적

Related 관련 기사

  1. 1

    Visual Studio에서 기능 성능 및 속도 향상

  2. 2

    이전 데이터 포인트에 대해 귓속말 집계가 작동하지 않음

  3. 3

    Twilio, 이번 달 국제 전화 받기

  4. 4

    Twilio SIP : 발신 전화 걸기

  5. 5

    상속 및 기능

  6. 6

    Twilio : From 및 To 번호에 대해 각각 두 개의 오디오로 전화 걸기 : PHP

  7. 7

    Twilio의 기록 및 스크립트 기능에 대한 설명

  8. 8

    Twilio 프로그래밍 가능 음성 SDK를 사용하여 전화 받기

  9. 9

    동적 전체 화면 생성 및 Div 기능 최소화

  10. 10

    수신 전화 번호를 기반으로 Twilio 착신 전환

  11. 11

    개별 기능 및 전체 프로그램의 속도

  12. 12

    Twilio 보안 기능

  13. 13

    Lua 기능의 성능 및 최적화

  14. 14

    상속 및 가상 기능

  15. 15

    onBackPressed 및 새로 고침 기능의 안드로이드 전화

  16. 16

    Twilio : 기존 회의에서 전화 끊기, 오류 20404

  17. 17

    데이터 가져 오기 기능 가속화 (팬더 및 DataFrame에 추가)

  18. 18

    지속적인 배포, 버전 관리 및 기능 분기 혼란

  19. 19

    동기화 기능 약속

  20. 20

    Twilio로 브라우저에서 전화 받기

  21. 21

    Twilio IfMachine => 전화 끊기가 작동하지 않음

  22. 22

    기존 전화 핸드셋과 함께 Twilio 사용

  23. 23

    Twilio에서 전화를 걸어 기록을 받으세요

  24. 24

    Meteor Twilio SMS 기능 문제 및 백분위 수 JS 쿼리 애니메이션

  25. 25

    Ruby on Rails 및 Twilio

  26. 26

    Twilio 발신 전화 ID

  27. 27

    Raw Export Twilio Studio 실행 로그 및 디버거 메시지?

  28. 28

    전문화 규칙이있는 기능적 종속성

  29. 29

    메모 화 및 기능 추적

뜨겁다태그

보관