如何解决如何设置 Twilio iOS SDK 连接到服务器并拨打电话?
我是 iOS 开发新手,正在尝试使用 Twilio
交付语音会议应用程序。我按照文档设置了 https://github.com/twilio/video-quickstart-ios 中的示例,并成功拨打了几次电话给 Twilio
Bin。
但是,当我尝试将它迁移到我自己的应用程序时,它以某种方式不起作用。我复制了 Server
文件夹并相应地设置了 .env
,然后拨打了电话。我看到我的手机进入通话状态,但它没有接通任何电话。我检查了我的源代码,发现 callDidConnect
中的 CallDelegate
函数没有被触发。因此,我的电话挂在“拨号”上,但从未接通任何电话。无论如何,我没有看到任何网络活动。
这是我的问题:
- 我是否需要使用
Server
文件夹才能实际拨打电话? - iOS 客户端如何连接到任何服务器,
Twilio
或我自己的Nodejs
服务器?我没有看到一条在做这件事。 - 如果我想构建自己的服务器,我应该把
API_SID_KEY
、AUTH_TOKEN
...等放在哪里? - 谁能提供一个使用
Twilio
拨打电话的示例存储库? - 我已经对
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 举报,一经查实,本站将立刻删除。