微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何设置 Twilio iOS SDK 连接到服务器并拨打电话?

如何解决如何设置 Twilio iOS SDK 连接到服务器并拨打电话?

我是 iOS 开发新手,正在尝试使用 Twilio 交付语音会议应用程序。我按照文档设置了 https://github.com/twilio/video-quickstart-ios 中的示例,并成功拨打了几次电话给 Twilio Bin。

但是,当我尝试将它迁移到我自己的应用程序时,它以某种方式不起作用。我复制了 Server 文件夹并相应地设置了 .env,然后拨打了电话。我看到我的手机进入通话状态,但它没有接通任何电话。我检查了我的源代码,发现 callDidConnect 中的 CallDelegate 函数没有被触发。因此,我的电话挂在“拨号”上,但从未接通任何电话。无论如何,我没有看到任何网络活动。

这是我的问题:

  1. 我是否需要使用 Server 文件夹才能实际拨打电话?
  2. iOS 客户端如何连接到任何服务器,Twilio 或我自己的 Nodejs 服务器?我没有看到一条在做这件事。
  3. 如果我想构建自己的服务器,我应该把 API_SID_KEYAUTH_TOKEN ...等放在哪里?
  4. 谁能提供一个使用 Twilio 拨打电话的示例存储库?
  5. 我已经对 CallKit 有所了解,CallKit 是如何集成的

我在下面附上我的源代码,它们只是原型,我已经简化以帮助我弄清楚它是如何工作的:

用户点击拨号按钮时,它会调用这个函数

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

    let call = TwilioVoiceSDK.connect(options: connectOptions,delegate: self)
    callKitCompletionCallback = completionHandler
}

那么这个函数就会被上面的函数触发并且成功

 func provider(_ provider: CXProvider,perform action: CXStartCallAction) {
    provider.reportOutgoingCall(with: action.callUUID,startedConnectingAt: Date())

    performVoiceCall(uuid: action.callUUID,client: "") { success in
        if success {
            NSLog("performVoiceCall() successfully")
            provider.reportOutgoingCall(with: action.callUUID,connectedAt: Date())
        } else {
            NSLog("performVoiceCall() Failed")
        }
    }

    action.fulfill()
}

最终我预计会触发以下功能,但事实并非如此:

extension RoomPageviewmodel: CallDelegate {
func callDidConnect(call: Call) {
    print("Call did connect")
}

func callDidFailToConnect(call: Call,error: Error) {
    print("Call did fail to connect",error.localizedDescription)
}

func callDiddisconnect(call: Call,error: Error?) {
    print("Call did disconnect")
    }
}

我认为最大的问题是我不明白客户端实际上是如何与 Twilio 或我的 NodeJS 通信的,因此我不知道为什么 callDidConnect 函数是未触发

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。