Twilio Studio使用TwiML Bin收集多语言呼叫小部件上的输入

时间:2018-11-05 09:43:27

标签: twilio multilingual twilio-studio

使用Twilio Studio构建多语言IVR。

首先,它以通话时收集输入小部件开始,该小部件用于确定用户的语言,例如。 1个代表英语,2个代表西班牙语,等等。

默认情况下,小部件中的要说的文字字段支持一种语音语言,并且不能拆分为多个字段。这很重要,因为如果系统使用英语语音说西班牙语,那么发音几乎是无法识别的。

一种可能的解决方法是创建一个 TwiML Bin (在下面),该语言将以相关语言声明文本。但是,“呼叫时收集输入”窗口小部件不接受此 TwiML Bin 的URL,因为它可以播放某些内容,并将该窗口小部件视为没有立即跳入下一个窗口小部件的输入。

这怎么做。即使将它包含在功能中,将其保留在Studio中也将更加容易,以便与此相关的必需客户端能够随时间编辑IVR。

TwiML Bin:

enum class ProductItem constructor(
        val color: String,
        val price: String,
        val position: Int
) {
    SHOES("red", "$", 2),
    CAR("blue", "$$$$$", 1),
    BOAT("green", "$$$$$$$$$$$$$", 3)
}

data class Order(val ProductItem: ProductItem? = null)

val orders = listOf(Order(ProductItem.SHOES), Order(ProductItem.CAR), Order(ProductItem.BOAT))
val sortedOrders = orders.sortedBy { it.ProductItem?.position }

2 个答案:

答案 0 :(得分:2)

正如您所指出的,这不可能在一个Gather小部件中全部实现。如果在“收集”窗口小部件之前有多个“说/播放”窗口小部件,则呼叫者将无法插入并做出不理想的选择。

您可以记录媒体/ mp3文件并显示多语言提示,或者记录TwiML bin / TTS输出的结果,并将该记录用作Gather小部件的媒体文件。

艾伦

答案 1 :(得分:1)

这对我来说是这样的:

  • 您必须为每种语言创建一个 gather_input_on_call 和一个 split_basedon
  • 在每个 spit_basedon 中设置所有条件。 (因此每当它发生时都会执行条目)
  • 将每一个无 key_match 链接到下一个语言gather_inputoncall。
  • 将每个 no_input 链接到下一个收集语言。
  • 将每个 split_based 中的每个条件分配到应定向到的位置。
  • 享受多样性