用途:在 React Native(Android 与 iOS)应用中集成 Telnyx 实时语音通话能力,使用 @telnyx/react-voice-commons-sdk 库。前置条件:需先用 Telnyx 服务端 SDK 创建 WebRTC 凭据并生成登录令牌,可参考对应服务端语言插件中的 telnyx-webrtc-* 技能。
主要能力:基于 RxJS 的响应式状态管理;自动处理前后台生命周期;原生通话界面 CallKit(iOS)与 ConnectionService(Android);推送通知 FCM(Android)与 APNs/PushKit(iOS);完整 TypeScript 类型定义。
安装:npm install @telnyx/react-voice-commons-sdk
基本用法:用 createTelnyxVoipClient 创建客户端实例,并用 TelnyxVoiceApp 包裹应用内容。认证支持凭据登录(createCredentialConfig)与 JWT 令牌登录(createTokenConfig),也可通过 loginFromStoredConfig 使用已存凭据自动重连。通过 voipClient.connectionState$ 与 voipClient.calls$ 订阅连接状态和活动通话,单个通话可订阅 call.callState$。发起通话用 voipClient.newCall('+18004377950');来电由推送通知与 TelnyxVoiceApp 自动处理并展示原生界面。通话控制包括 answer、mute/unmute、hold/unhold、hangup、dtmf。
推送配置:Android 需放置 google-services.json,MainActivity 继承 TelnyxMainActivity,并用 messaging().setBackgroundMessageHandler 调用 TelnyxVoiceApp.handleBackgroundPush;iOS 需在 AppDelegate 实现 PKPushRegistryDelegate 并调用 TelnyxVoipPushHandler 相关方法,CallKit 由内部 CallBridge 自动处理。
配置项:createTelnyxVoipClient 支持 enableAppStateManagement(默认 true)与 debug(默认 false);TelnyxVoiceApp 支持 voipClient、enableAutoReconnect、debug。库内部自动管理 AsyncStorage 键(@telnyx_username、@telnyx_password、@credential_token、@push_token)。
限制与注意:使用 TelnyxVoiceApp 自动重连时不要手动调用 login(),以免重复登录;需在 useEffect 清理函数中取消订阅 RxJS observable 以避免内存泄漏;Android 推送需检查 google-services.json 与 MainActivity 继承;iOS 推送需确保 AppDelegate 实现 PKPushRegistryDelegate。服务端 WebRTC API(凭据创建、令牌生成、推送设置)见 references/webrtc-server-api.md,配置认证或推送时必须阅读。