用途
Telnyx WebRTC - iOS SDK 用于在 iOS 应用中构建实时语音通信功能,帮助开发者将 VoIP 通话能力集成到 App 中,包括呼叫认证、拨出电话、接听来电以及通过推送通知唤醒应用处理来电。
安装方式
支持 CocoaPods:pod 'TelnyxRTC', '~> 0.1.0',随后运行 pod install --repo-update。也支持 Swift Package Manager,在 Xcode 中通过 File → Add Packages,输入仓库地址 https://github.com/team-telnyx/telnyx-webrtc-ios.git,选择 main 分支。
项目配置要求
需在 Build Settings 中将 Bitcode 设为 NO;在 Signing & Capabilities 中启用 Background Modes 的 Voice over IP 与 Audio, AirPlay, and Picture in Picture;在 Info.plist 中添加麦克风权限说明 NSMicrophoneUsageDescription。
前置条件
需创建 WebRTC 凭据并使用 Telnyx 服务端 SDK 生成登录令牌,参见对应服务端语言的 telnyx-webrtc-* 技能。
认证方式
提供两种登录方式:基于凭据的登录(传入 sipUser、password、pushDeviceToken 等构建 TxConfig 后调用 connect)与基于 JWT 令牌的登录(传入 token)。TxConfig 还支持 ringtone、ringBackTone、logLevel、forceRelayCandidate 等参数配置,并可通过 TxServerConfiguration 选择区域(auto、usEast、usCentral、usWest、caCentral、eu、apac)。
主要能力
- 客户端事件回调:实现 TxClientDelegate,处理连接、就绪、错误、来电、推送来电与通话状态更新。
- 拨出电话:通过 newCall 传入呼叫方名称、号码、目标号码与 callId 发起呼叫。
- 接听来电:在 onIncomingCall 中保存引用并调用 answer。
- 通话控制:hangup、muteAudio/unmuteAudio、hold/unhold、dtmf 等;扬声器切换通过 AVAudioSession 路由。
- 推送通知:集成 PushKit 获取 VoIP 令牌并处理收到的 VoIP 推送,同时按 iOS 13+ 要求向 CallKit 上报来电。
- CallKit 集成:在 CXProviderDelegate 中处理音频会话激活/停用以及接听、挂断动作。
- 通话质量指标:以 debug: true 启用,通过 onCallQualityChange 获取 MOS、抖动、RTT 与质量等级。
- AI 助手集成:anonymousLogin 匿名登录、newInvite 发起会话、subscribeToTranscriptUpdates 接收转录、sendAIAssistantMessage 发送文本消息。
- 自定义日志:实现 TxLogger 接口将日志送到自有服务。
适用场景
需要在 iOS 端实现 VoIP 通话、来电推送唤醒与 CallKit 系统级通话界面的应用,以及需要接入 Telnyx AI 助手进行语音对话的场景。
限制与注意事项
需先在 Telnyx 门户配置凭据;推送需在门户验证 APNS 证书;iOS 13+ 必须向 CallKit 上报来电;音频路由问题需在 CXProviderDelegate 中正确调用 enableAudioSession/disableAudioSession。具体收费、价格、平台支持范围等资料中暂未提供。