繁体   English   中英

控制 Twilio 调用的事件

[英]Controlling events of a Twilio call

在下一个示例代码中,Twilio 将对话 OPERATOR_PHONE_NUMBER 放入 CLIENT_PHONE_NUMBER,并记录通话。

但我不知道控制某些东西的代码应该是什么,一部或两部手机......:

  1. 不存在。

  2. 存在但交流。

  3. 存在,不交流但不接听。

  4. 存在,不交流,接听并进行对话。

     import com.twilio.Twilio; import com.twilio.rest.api.v2010.account.Call; import com.twilio.rest.api.v2010.account.CallCreator; import com.twilio.type.PhoneNumber; import com.twilio.type.Twiml; public class SimpleCallWithRecording2 { private static final String ACCOUNT_SID = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; private static final String AUTH_TOKEN = "9ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"; private static final String ASSIGNED_PHONE_NUMBER = "+15999999999999"; //Must be verified numbers in trial account private static final String OPERATOR_PHONE_NUMBER = "+34888888888"; private static final String CLIENT_PHONE_NUMBER = "+34777777777"; public static void main(String[] args) throws Exception { Twilio.init(ACCOUNT_SID, AUTH_TOKEN); PhoneNumber to = new PhoneNumber(OPERATOR_PHONE_NUMBER); PhoneNumber from = new PhoneNumber(ASSIGNED_PHONE_NUMBER); Twiml twiml = new Twiml( "<?xml version=\\"1.0\\" encoding=\\"UTF-8\\"?> " + "<Response> " + " <Say voice=\\"woman\\">This is said by a robotic woman</Say> " + " <Dial> " + " <Number> " + CLIENT_PHONE_NUMBER + "</Number> " + " </Dial> " + "</Response> " ); CallCreator callCreator = Call.creator(to, from, twiml); callCreator.setRecord(true); Call call = callCreator.create(); System.out.println(call); }

    }

在文档中,我看到可以使用callCreator.setStatusCallback(URI.create("https://www.myapp.com/events"))和一些事件分类:“已启动”,“振铃”,“回答", "完成"。 但我还没有在“另一边”找到代​​码,我的意思是在https://www.myapp.com/eventsextreme ¿?

您需要设置一个该休息端点并将其设置为状态回调 url。 该 url 将接收来自 twilio 的事件。

参考这个

编辑:如果您还需要来自嵌套动词的事件,请为其定义属性“action”。

IE

 <Dial action="//callbackURL">
 <Number>   CLIENT_PHONE_NUMBER  </Number> 
 </Dial>

这样你就会知道你的案例 1 ,2 ,3 ,4 。

并“控制”呼叫,您只需使用所需的 TwiML 响应回调请求。 希望这能澄清。

edit2 :您需要执行以下操作:

//handles callback url
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
{  //...
   TwiMLResponse twiml = new TwiMLResponse();
   String callSid = request.getParameter("CallSid");
   //handle call specific data
   switch(request.getParameter("CallStatus")){
      case "no-answer": //construct twiML
      case "ringing" ://...
    }
    //...
   response.setContentType("application/xml");
   response.getWriter().print(twiml.toXML());
}

请参阅: IVR - 示例

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM