Twilio 可编程语音自定义参数问题

问题描述

我们无法接收调用方发送的客户参数。 这是我们如何发送

  func performVoiceCall(uuid: UUID,client: String?,completionHandler: @escaping (Bool) -> 
      Void) {
      let connectOptions = ConnectOptions(accesstoken: accesstoken) { builder in
      builder.params = [twimlParamTo: self.callToUserId,"displayName": "zeshan"] 

       builder.uuid = uuid
    }

    let call = TwilioVoiceSDK.connect(options: connectOptions,delegate: self)
    activeCall = call
    activeCalls[call.uuid!.uuidString] = call
    callKitCompletionCallback = completionHandler
 }

这里是我们如何接收但在呼叫接收端无法获取任何客户参数

     func callInviteReceived(callInvite: CallInvite) {
       NSLog("callInviteReceived:")

       UserDefaults.standard.set(Date(),forKey: kCachedBindingDate)

       let callerInfo: TVOCallerInfo = callInvite.callerInfo
       if let verified: NSNumber = callerInfo.verified {
       if verified.boolValue {
          NSLog("Call invite received from verified caller number!")
       }
   }

   let from = (callInvite.from ?? "Voice Bot").replacingOccurrences(of: "client:",with: "")
   let customParam = callInvite.customParameters?["displayName"]

   // Always report to CallKit
   reportIncomingCall(from: from,uuid: callInvite.uuid)
   activeCallInvites[callInvite.uuid.uuidString] = callInvite
   }

customParam 收到 null 请指教

解决方法

这里是 Twilio 开发者布道者。

当您通过 Twilio Voice SDK connect 方法设置参数时,会将参数发送到您的 TwiML 应用程序的网络钩子。

为了发送这些参数,以便接收来电的 Twilio Voice SDK 客户端可以读取它们,您需要使用嵌套在 <Client> 元素中的 the <Parameter> TwiML element 再次设置它们。例如:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
   <Dial>
     <Client>
        <Identity>user-jane</Identity>
        <Parameter name="displayName" value="zeshan"/>
      </Client>
    </Dial>
</Response>

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...