在编写REST api和TwiML应用程序一段时间之后,我一直在尝试在REST api中编写一个顺序拨号应用程序但是在经历了很多错误和问题之后我感到难过。我在TwiML中编写了一个顺序拨号应用程序,但在REST中编写相同的应用程序是地狱......
我在REST api中尝试做的是创建这个程序,其中人A有一个人BCDEFGHIJK列表,A人想要发送短信到twilio号码,然后Twilio会使用REST api调用该列表一个接一个的人,直到其中一个人接受。过程如下:
1) Person A text's Twilio number
2) Twilio gathers its array of phone numbers of persons B C D E F G H I J K
3) Twilio's REST api calls person B
4) Person B does **NOT** pick up (busy or doesn't pick up so answering machine) so then REST api calls person C next
5) Person C does **NOT** pick up (busy or doesn't pick up so answering machine) so then the REST api calls person D
6) Person D **DOES** pick up and twilio **reads the SMS sent by person A and then hangs up**
7) application ends, so person E F G H I J K are not called because one person picked up so **not everyone** had to be called
我试图在REST api中做这个但是经过几个小时的尝试后我放弃了...我唯一的问题是:REST api这可能吗?如果是这样的话?
我已经能够创建一个应用程序,我发短信twilio,twilio用REST api回电话给我读短信,但顺序拨号是如此不同......
我曾尝试与Twilio工作人员交谈,但我无法找到一种方法来进行顺序调用工作,因为我不知道还能做什么....我尝试过使用StatusCallback等等但是现在我没有想法。
答案 0 :(得分:4)
是的,这是可能的。
以下是需要做的大致概述:
这就是你指向Twilio号码的短信的原因。它应该采用Body
参数并将其存储到数据库中(因为不知何故,您需要在多个请求中保留它)。它还需要获取应该调用的数字列表(可能来自数据库或公共配置文件)。
存储正文后,SMS脚本应启动对列表中第一个号码的调用,其中“重拨脚本”为StatusCallback
,“消息”脚本为Url
将id
参数添加到StatusCallback
和Url
(使用查询字符串应该没问题),这样这些脚本就可以识别应该播放的消息。
这会处理列表中的工作,它应检查CallStatus
以查看是否已接听电话。如果是的话,那么就退出吧。如果没有,它通过数字列表(再次,从数据库或公共配置文件中提取),直到它将To
参数与列表中的nubmer匹配。
完成匹配后,脚本应启动对列表中 next 号码的调用,再次使用“重拨脚本”作为StatusCallback
和“消息”脚本为Url
将消息id
作为参数传递给两个脚本。
这是Twilio在应答呼叫时请求的脚本,它只是检查id
参数,从数据库中提取消息并读取它。
请注意,使用数据库不是必需,您可以传递完整邮件而不是ID。您还可以使用Twimlet替换邮件脚本。