@telnyx/react-voice-commons-sdk 0.1.6 → 0.1.7-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/README.md +24 -24
  2. package/ios/CallKitBridge.m +1 -1
  3. package/ios/CallKitBridge.swift +1 -11
  4. package/ios/README.md +2 -2
  5. package/lib/callkit/callkit-coordinator.js +6 -2
  6. package/lib/internal/calls/call-state-controller.d.ts +9 -0
  7. package/lib/internal/calls/call-state-controller.js +51 -24
  8. package/lib/telnyx-voice-app.js +127 -151
  9. package/lib/telnyx-voip-client.d.ts +21 -0
  10. package/lib/telnyx-voip-client.js +30 -0
  11. package/package.json +4 -2
  12. package/src/callkit/callkit-coordinator.ts +8 -2
  13. package/src/internal/calls/call-state-controller.ts +56 -24
  14. package/src/telnyx-voice-app.tsx +154 -170
  15. package/src/telnyx-voip-client.ts +31 -0
  16. package/android/build/.transforms/35d64beab84343a7420320f8057c40b9/results.bin +0 -1
  17. package/android/build/.transforms/35d64beab84343a7420320f8057c40b9/transformed/classes/classes_dex/classes.dex +0 -0
  18. package/android/build/.transforms/81896f393ea3c2e44a76283db01ad461/results.bin +0 -1
  19. package/android/build/.transforms/81896f393ea3c2e44a76283db01ad461/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/telnyx/react_voice_commons/BuildConfig.dex +0 -0
  20. package/android/build/.transforms/81896f393ea3c2e44a76283db01ad461/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/telnyx/react_voice_commons/CallForegroundService$Companion.dex +0 -0
  21. package/android/build/.transforms/81896f393ea3c2e44a76283db01ad461/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/telnyx/react_voice_commons/CallForegroundService.dex +0 -0
  22. package/android/build/.transforms/81896f393ea3c2e44a76283db01ad461/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/telnyx/react_voice_commons/TelnyxFirebaseMessagingService.dex +0 -0
  23. package/android/build/.transforms/81896f393ea3c2e44a76283db01ad461/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/telnyx/react_voice_commons/TelnyxMainActivity$Companion.dex +0 -0
  24. package/android/build/.transforms/81896f393ea3c2e44a76283db01ad461/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/telnyx/react_voice_commons/TelnyxMainActivity.dex +0 -0
  25. package/android/build/.transforms/81896f393ea3c2e44a76283db01ad461/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/telnyx/react_voice_commons/TelnyxNotificationActionReceiver.dex +0 -0
  26. package/android/build/.transforms/81896f393ea3c2e44a76283db01ad461/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/telnyx/react_voice_commons/TelnyxNotificationHelper$Companion.dex +0 -0
  27. package/android/build/.transforms/81896f393ea3c2e44a76283db01ad461/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/telnyx/react_voice_commons/TelnyxNotificationHelper.dex +0 -0
  28. package/android/build/.transforms/81896f393ea3c2e44a76283db01ad461/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/telnyx/react_voice_commons/VoicePnBridgeModule$Companion.dex +0 -0
  29. package/android/build/.transforms/81896f393ea3c2e44a76283db01ad461/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/telnyx/react_voice_commons/VoicePnBridgeModule.dex +0 -0
  30. package/android/build/.transforms/81896f393ea3c2e44a76283db01ad461/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/telnyx/react_voice_commons/VoicePnBridgePackage.dex +0 -0
  31. package/android/build/.transforms/81896f393ea3c2e44a76283db01ad461/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/telnyx/react_voice_commons/VoicePnManager.dex +0 -0
  32. package/android/build/.transforms/81896f393ea3c2e44a76283db01ad461/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  33. package/android/build/.transforms/8ebc6907344eccd2b9c23d903854d4fb/results.bin +0 -1
  34. package/android/build/.transforms/8ebc6907344eccd2b9c23d903854d4fb/transformed/classes/classes_dex/classes.dex +0 -0
  35. package/android/build/.transforms/af1ab9e262e91ec4942977987fb9a0ae/results.bin +0 -1
  36. package/android/build/.transforms/af1ab9e262e91ec4942977987fb9a0ae/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/telnyx/react_voice_commons/BuildConfig.dex +0 -0
  37. package/android/build/.transforms/af1ab9e262e91ec4942977987fb9a0ae/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/telnyx/react_voice_commons/TelnyxFirebaseMessagingService.dex +0 -0
  38. package/android/build/.transforms/af1ab9e262e91ec4942977987fb9a0ae/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/telnyx/react_voice_commons/TelnyxMainActivity$Companion.dex +0 -0
  39. package/android/build/.transforms/af1ab9e262e91ec4942977987fb9a0ae/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/telnyx/react_voice_commons/TelnyxMainActivity.dex +0 -0
  40. package/android/build/.transforms/af1ab9e262e91ec4942977987fb9a0ae/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/telnyx/react_voice_commons/TelnyxNotificationActionReceiver.dex +0 -0
  41. package/android/build/.transforms/af1ab9e262e91ec4942977987fb9a0ae/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/telnyx/react_voice_commons/TelnyxNotificationHelper$Companion.dex +0 -0
  42. package/android/build/.transforms/af1ab9e262e91ec4942977987fb9a0ae/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/telnyx/react_voice_commons/TelnyxNotificationHelper.dex +0 -0
  43. package/android/build/.transforms/af1ab9e262e91ec4942977987fb9a0ae/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/telnyx/react_voice_commons/VoicePnBridgeModule.dex +0 -0
  44. package/android/build/.transforms/af1ab9e262e91ec4942977987fb9a0ae/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/telnyx/react_voice_commons/VoicePnBridgePackage.dex +0 -0
  45. package/android/build/.transforms/af1ab9e262e91ec4942977987fb9a0ae/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/telnyx/react_voice_commons/VoicePnManager.dex +0 -0
  46. package/android/build/.transforms/af1ab9e262e91ec4942977987fb9a0ae/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  47. package/android/build/generated/source/buildConfig/debug/com/telnyx/react_voice_commons/BuildConfig.java +0 -10
  48. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +0 -42
  49. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +0 -18
  50. package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +0 -6
  51. package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +0 -1
  52. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  53. package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
  54. package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +0 -0
  55. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +0 -1
  56. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +0 -2
  57. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +0 -2
  58. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +0 -2
  59. package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +0 -2
  60. package/android/build/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/telnyx_react-voice-commons-sdk_debug.kotlin_module +0 -0
  61. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/telnyx/react_voice_commons/BuildConfig.class +0 -0
  62. package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +0 -2
  63. package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +0 -75
  64. package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +0 -42
  65. package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +0 -1
  66. package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +0 -1
  67. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/META-INF/telnyx_react-voice-commons-sdk_debug.kotlin_module +0 -0
  68. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/telnyx/react_voice_commons/BuildConfig.class +0 -0
  69. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/telnyx/react_voice_commons/CallForegroundService$Companion.class +0 -0
  70. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/telnyx/react_voice_commons/CallForegroundService.class +0 -0
  71. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/telnyx/react_voice_commons/TelnyxFirebaseMessagingService.class +0 -0
  72. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/telnyx/react_voice_commons/TelnyxMainActivity$Companion.class +0 -0
  73. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/telnyx/react_voice_commons/TelnyxMainActivity.class +0 -0
  74. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/telnyx/react_voice_commons/TelnyxNotificationActionReceiver.class +0 -0
  75. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/telnyx/react_voice_commons/TelnyxNotificationHelper$Companion.class +0 -0
  76. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/telnyx/react_voice_commons/TelnyxNotificationHelper.class +0 -0
  77. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/telnyx/react_voice_commons/VoicePnBridgeModule$Companion.class +0 -0
  78. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/telnyx/react_voice_commons/VoicePnBridgeModule.class +0 -0
  79. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/telnyx/react_voice_commons/VoicePnBridgePackage.class +0 -0
  80. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/telnyx/react_voice_commons/VoicePnManager.class +0 -0
  81. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  82. package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +0 -1
  83. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  84. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
  85. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
  86. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
  87. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  88. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
  89. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
  90. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  91. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
  92. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
  93. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
  94. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  95. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
  96. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
  97. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  98. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
  99. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
  100. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
  101. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  102. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
  103. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
  104. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab +0 -0
  105. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream +0 -0
  106. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len +0 -0
  107. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len +0 -0
  108. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at +0 -0
  109. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i +0 -0
  110. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len +0 -0
  111. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  112. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  113. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  114. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  115. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  116. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  117. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
  118. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  119. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
  120. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
  121. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
  122. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  123. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
  124. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
  125. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  126. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
  127. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
  128. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
  129. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  130. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
  131. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
  132. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  133. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
  134. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
  135. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
  136. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  137. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
  138. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
  139. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  140. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
  141. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
  142. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
  143. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  144. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
  145. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
  146. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +0 -2
  147. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
  148. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
  149. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
  150. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
  151. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  152. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
  153. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
  154. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
  155. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  156. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  157. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
  158. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  159. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
  160. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
  161. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  162. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  163. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  164. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  165. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  166. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  167. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
  168. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  169. package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  170. package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
  171. package/android/build/outputs/logs/manifest-merger-debug-report.txt +0 -82
  172. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  173. package/android/build/tmp/kotlin-classes/debug/META-INF/telnyx_react-voice-commons-sdk_debug.kotlin_module +0 -0
  174. package/android/build/tmp/kotlin-classes/debug/com/telnyx/react_voice_commons/CallForegroundService$Companion.class +0 -0
  175. package/android/build/tmp/kotlin-classes/debug/com/telnyx/react_voice_commons/CallForegroundService.class +0 -0
  176. package/android/build/tmp/kotlin-classes/debug/com/telnyx/react_voice_commons/TelnyxFirebaseMessagingService.class +0 -0
  177. package/android/build/tmp/kotlin-classes/debug/com/telnyx/react_voice_commons/TelnyxMainActivity$Companion.class +0 -0
  178. package/android/build/tmp/kotlin-classes/debug/com/telnyx/react_voice_commons/TelnyxMainActivity.class +0 -0
  179. package/android/build/tmp/kotlin-classes/debug/com/telnyx/react_voice_commons/TelnyxNotificationActionReceiver.class +0 -0
  180. package/android/build/tmp/kotlin-classes/debug/com/telnyx/react_voice_commons/TelnyxNotificationHelper$Companion.class +0 -0
  181. package/android/build/tmp/kotlin-classes/debug/com/telnyx/react_voice_commons/TelnyxNotificationHelper.class +0 -0
  182. package/android/build/tmp/kotlin-classes/debug/com/telnyx/react_voice_commons/VoicePnBridgeModule$Companion.class +0 -0
  183. package/android/build/tmp/kotlin-classes/debug/com/telnyx/react_voice_commons/VoicePnBridgeModule.class +0 -0
  184. package/android/build/tmp/kotlin-classes/debug/com/telnyx/react_voice_commons/VoicePnBridgePackage.class +0 -0
  185. package/android/build/tmp/kotlin-classes/debug/com/telnyx/react_voice_commons/VoicePnManager.class +0 -0
  186. package/android/local.properties +0 -8
package/README.md CHANGED
@@ -51,7 +51,7 @@ export default function App() {
51
51
 
52
52
  ### Core Components
53
53
 
54
- #### 1. VoIP Client Configuration
54
+ ### 1. VoIP Client Configuration
55
55
 
56
56
  ```tsx
57
57
  const voipClient = createTelnyxVoipClient({
@@ -65,7 +65,7 @@ const voipClient = createTelnyxVoipClient({
65
65
  - **`enableAppStateManagement: true`** - **Optional (default: true)**: Enables automatic background/foreground app state management. When enabled, the library automatically disconnects when the app goes to background (unless there's an active call) and handles reconnection logic. Set to `false` if you want to handle app lifecycle manually.
66
66
  - **`debug: true`** - **Optional**: Enables detailed logging for connection states, call transitions, and push notification processing. Useful for development and troubleshooting.
67
67
 
68
- #### 2. TelnyxVoiceApp Wrapper
68
+ ### 2. TelnyxVoiceApp Wrapper
69
69
 
70
70
  The `TelnyxVoiceApp` component handles:
71
71
 
@@ -74,7 +74,7 @@ The `TelnyxVoiceApp` component handles:
74
74
  - Login state management with automatic reconnection
75
75
  - Background client management for push notifications
76
76
 
77
- #### 3. Reactive State Management
77
+ ### 3. Reactive State Management
78
78
 
79
79
  ```tsx
80
80
  // Listen to connection state
@@ -93,7 +93,7 @@ call.callState$.subscribe((state) => {
93
93
  });
94
94
  ```
95
95
 
96
- #### 4. Call Management
96
+ ### 4. Call Management
97
97
 
98
98
  ```tsx
99
99
  // Make a call
@@ -112,9 +112,9 @@ await call.hangup();
112
112
 
113
113
  The library supports both credential-based and token-based authentication with automatic persistence for seamless reconnection.
114
114
 
115
- #### Authentication Methods
115
+ ### Authentication Methods
116
116
 
117
- ##### 1. Credential-Based Authentication
117
+ ### 1. Credential-Based Authentication
118
118
 
119
119
  ```tsx
120
120
  import { createCredentialConfig } from '@telnyx/react-voice-commons-sdk';
@@ -127,7 +127,7 @@ const config = createCredentialConfig('your_sip_username', 'your_sip_password',
127
127
  await voipClient.login(config);
128
128
  ```
129
129
 
130
- ##### 2. Token-Based Authentication
130
+ ### 2. Token-Based Authentication
131
131
 
132
132
  ```tsx
133
133
  import { createTokenConfig } from '@telnyx/react-voice-commons-sdk';
@@ -140,11 +140,11 @@ const config = createTokenConfig('your_jwt_token', {
140
140
  await voipClient.loginWithToken(config);
141
141
  ```
142
142
 
143
- #### Automatic Storage & Reconnection
143
+ ### Automatic Storage & Reconnection
144
144
 
145
145
  The library automatically stores authentication data securely for seamless reconnection. **You don't need to manually manage these storage keys** - the library handles everything internally.
146
146
 
147
- ##### Internal Storage (Managed Automatically)
147
+ ### Internal Storage (Managed Automatically)
148
148
 
149
149
  The library uses these AsyncStorage keys internally:
150
150
 
@@ -155,7 +155,7 @@ The library uses these AsyncStorage keys internally:
155
155
 
156
156
  **Note**: These are managed automatically by the library. You only need to call `login()` once, and the library will handle storage and future reconnections.
157
157
 
158
- ##### Auto-Reconnection
158
+ ### Auto-Reconnection
159
159
 
160
160
  ```tsx
161
161
  // Automatically reconnects using internally stored credentials or token
@@ -176,7 +176,7 @@ if (!success) {
176
176
 
177
177
  **Demo App Note**: When using the library in a demo application, the `TelnyxLoginForm` component may do additional storage for UI convenience (pre-filling login forms). This is separate from the library's internal authentication storage and is not required for production apps.
178
178
 
179
- ##### Manual Storage Management (Advanced Use Only)
179
+ ### Manual Storage Management (Advanced Use Only)
180
180
 
181
181
  If you need to clear stored authentication data manually:
182
182
 
@@ -198,9 +198,9 @@ await AsyncStorage.multiRemove([
198
198
 
199
199
  The library provides complete native integration for both platforms. These integrations are required for production apps using the library.
200
200
 
201
- #### Android Integration
201
+ ### Android Integration
202
202
 
203
- ##### 1. MainActivity Setup
203
+ ### 1. MainActivity Setup
204
204
 
205
205
  Your app's MainActivity should extend `TelnyxMainActivity` for automatic push notification handling:
206
206
 
@@ -225,7 +225,7 @@ The `TelnyxMainActivity` provides:
225
225
  - Proper lifecycle management for VoIP functionality
226
226
  - Integration with `VoicePnManager` for push notification state
227
227
 
228
- ##### 2. Push Notification Setup
228
+ ### 2. Push Notification Setup
229
229
 
230
230
  1. Place `google-services.json` in the project root
231
231
  2. Register background message handler:
@@ -239,9 +239,9 @@ messaging().setBackgroundMessageHandler(async (remoteMessage) => {
239
239
  });
240
240
  ```
241
241
 
242
- #### iOS Integration
242
+ ### iOS Integration
243
243
 
244
- ##### 1. AppDelegate Setup
244
+ ### 1. AppDelegate Setup
245
245
 
246
246
  Your AppDelegate only needs to implement `PKPushRegistryDelegate` for VoIP push notifications. CallKit integration is automatically handled by CallBridge:
247
247
 
@@ -277,13 +277,13 @@ public class AppDelegate: ExpoAppDelegate, PKPushRegistryDelegate {
277
277
 
278
278
  **Note**: CallKit integration (CXProvider, CXProviderDelegate, audio session management) is automatically handled by the internal CallBridge component. You don't need to implement any CallKit delegate methods manually.
279
279
 
280
- ##### 2. VoIP Push Certificate Setup
280
+ ### 2. VoIP Push Certificate Setup
281
281
 
282
282
  - Configure VoIP push certificates in your Apple Developer account
283
283
  - The `TelnyxVoipPushHandler` automatically handles token registration and push processing
284
284
  - CallKit integration is automatically managed by CallBridge - no manual setup required
285
285
 
286
- #### Key Native Features Integrated
286
+ ### Key Native Features Integrated
287
287
 
288
288
  1. **Push Notification Handling**: Both platforms handle background push notifications properly
289
289
  2. **Native Call UI**: CallKit (iOS, managed by CallBridge) and ConnectionService (Android) integration
@@ -416,15 +416,15 @@ npx expo run:ios
416
416
 
417
417
  ### Common Integration Issues
418
418
 
419
- #### Double Login
419
+ ### Double Login
420
420
 
421
421
  Ensure you're not calling login methods manually when using `TelnyxVoiceApp` with auto-reconnection enabled.
422
422
 
423
- #### Background Disconnection
423
+ ### Background Disconnection
424
424
 
425
425
  Check if `enableAutoReconnect` is set appropriately for your use case in the `TelnyxVoiceApp` configuration.
426
426
 
427
- #### Push Notifications Not Working
427
+ ### Push Notifications Not Working
428
428
 
429
429
  - **Android**:
430
430
  - Verify `google-services.json` is in the correct location and Firebase is properly configured
@@ -436,19 +436,19 @@ Check if `enableAutoReconnect` is set appropriately for your use case in the `Te
436
436
  - Check that `TelnyxVoipPushHandler.initializeVoipRegistration()` is called in `didFinishLaunchingWithOptions`
437
437
  - **Both**: Check that background message handlers are properly registered
438
438
 
439
- #### Native Integration Issues
439
+ ### Native Integration Issues
440
440
 
441
441
  - **Android**: Ensure MainActivity extends `TelnyxMainActivity` for proper intent handling
442
442
  - **iOS**: Verify AppDelegate implements `PKPushRegistryDelegate` and delegates to `TelnyxVoipPushHandler`
443
443
  - **CallKit**: On iOS, CallKit integration is automatically handled by CallBridge - no manual setup required
444
444
 
445
- #### Audio Issues
445
+ ### Audio Issues
446
446
 
447
447
  - **iOS**: Audio session management is automatically handled by CallBridge
448
448
  - **Android**: Verify ConnectionService is properly configured for audio routing
449
449
  - **Both**: Ensure proper audio permissions are granted
450
450
 
451
- #### Memory Leaks
451
+ ### Memory Leaks
452
452
 
453
453
  Ensure you're unsubscribing from RxJS observables in your React components:
454
454
 
@@ -28,7 +28,7 @@ RCT_EXTERN_METHOD(reportCallConnected:(NSString *)callUUID
28
28
  rejecter:(RCTPromiseRejectBlock)reject)
29
29
 
30
30
  RCT_EXTERN_METHOD(reportCallEnded:(NSString *)callUUID
31
- reason:(NSNumber *)reason
31
+ reason:(nonnull NSNumber *)reason
32
32
  resolver:(RCTPromiseResolveBlock)resolve
33
33
  rejecter:(RCTPromiseRejectBlock)reject)
34
34
 
@@ -358,15 +358,7 @@ import React
358
358
  )
359
359
  }
360
360
 
361
- func configureAudioSession() {
362
- let audioSession = AVAudioSession.sharedInstance()
363
- do {
364
- try audioSession.setCategory(.playAndRecord, mode: .voiceChat)
365
- NSLog("Succeeded to activate audio session")
366
- } catch {
367
- NSLog("Failed to activate audio session: \(error)")
368
- }
369
- }
361
+
370
362
 
371
363
  private func observeAppDelegate() {
372
364
  // Automatically hook into app lifecycle if needed
@@ -760,8 +752,6 @@ import React
760
752
 
761
753
  NSLog("[TelnyxVoipPushHandler] ✅ CallKit provider ready, reporting incoming call")
762
754
 
763
- // Configure audio session before reporting the call
764
- //callKitManager.configureAudioSession()
765
755
 
766
756
  // Store call data manually and report to CallKit
767
757
  let isAppRunning = CallKitBridge.shared != nil
package/ios/README.md CHANGED
@@ -32,7 +32,7 @@ Add the following to your iOS app's `Info.plist`:
32
32
 
33
33
  ### 2. AppDelegate Integration
34
34
 
35
- #### Option A: Easy Integration (Recommended)
35
+ ### Option A: Easy Integration (Recommended)
36
36
 
37
37
  Import and use the `TelnyxVoiceAppDelegate` protocol:
38
38
 
@@ -77,7 +77,7 @@ extension AppDelegate: PKPushRegistryDelegate {}
77
77
  extension AppDelegate: CXProviderDelegate {}
78
78
  ```
79
79
 
80
- #### Option B: Manual Integration
80
+ ### Option B: Manual Integration
81
81
 
82
82
  If you prefer to implement the delegates manually:
83
83
 
@@ -320,6 +320,12 @@ class CallKitCoordinator {
320
320
  console.log('CallKitCoordinator: End action already being processed, skipping duplicate');
321
321
  return;
322
322
  }
323
+ if (this.endedCalls.has(callKitUUID)) {
324
+ console.log('CallKitCoordinator: Call already ended, skipping duplicate end action');
325
+ return;
326
+ }
327
+ // Mark as ended immediately to prevent any duplicate processing
328
+ this.endedCalls.add(callKitUUID);
323
329
  const call = this.callMap.get(callKitUUID);
324
330
  if (!call) {
325
331
  console.warn('CallKitCoordinator: No WebRTC call found for CallKit end action', {
@@ -598,9 +604,7 @@ class CallKitCoordinator {
598
604
  * Clean up call mappings and listeners
599
605
  */
600
606
  cleanupCall(callKitUUID) {
601
- // Remove from all tracking sets
602
607
  this.processingCalls.delete(callKitUUID);
603
- this.endedCalls.delete(callKitUUID);
604
608
  this.connectedCalls.delete(callKitUUID);
605
609
  // Get the call before removing it
606
610
  const call = this.callMap.get(callKitUUID);
@@ -31,6 +31,15 @@ export declare class CallStateController {
31
31
  * Current active call (synchronous access)
32
32
  */
33
33
  get currentActiveCall(): Call | null;
34
+ /**
35
+ * Access any active call tracked by the client.
36
+ * A call will be accessible until it has ended (transitioned to the ENDED state).
37
+ * This matches the TelnyxRTC `getCall(callId)` method for multi-call support.
38
+ *
39
+ * @param callId The unique identifier of a call.
40
+ * @returns The Call object that matches the requested callId, or null if not found.
41
+ */
42
+ getCall(callId: string): Call | null;
34
43
  /**
35
44
  * Set a call to connecting state (used for push notification calls when answered via CallKit)
36
45
  * @param callId The ID of the call to set to connecting state
@@ -18,7 +18,7 @@ class CallStateController {
18
18
  this._calls = new rxjs_1.BehaviorSubject([]);
19
19
  this._callMap = new Map();
20
20
  this._disposed = false;
21
- console.log('🔧 CallStateController: Constructor called - instance created');
21
+ console.log('CallStateController: Constructor called - instance created');
22
22
  // Don't set up client listeners here - client doesn't exist yet
23
23
  // Will be called when client is available
24
24
  }
@@ -69,6 +69,17 @@ class CallStateController {
69
69
  ) || null
70
70
  );
71
71
  }
72
+ /**
73
+ * Access any active call tracked by the client.
74
+ * A call will be accessible until it has ended (transitioned to the ENDED state).
75
+ * This matches the TelnyxRTC `getCall(callId)` method for multi-call support.
76
+ *
77
+ * @param callId The unique identifier of a call.
78
+ * @returns The Call object that matches the requested callId, or null if not found.
79
+ */
80
+ getCall(callId) {
81
+ return this._callMap.get(callId) || null;
82
+ }
72
83
  /**
73
84
  * Set a call to connecting state (used for push notification calls when answered via CallKit)
74
85
  * @param callId The ID of the call to set to connecting state
@@ -99,14 +110,11 @@ class CallStateController {
99
110
  * This should be called by the session manager after client creation
100
111
  */
101
112
  initializeClientListeners() {
102
- console.log('🔧 CallStateController: initializeClientListeners called');
103
- console.log(
104
- '🔧 CallStateController: Current client exists:',
105
- !!this._sessionManager.telnyxClient
106
- );
113
+ console.log('CallStateController: initializeClientListeners called');
114
+ console.log('CallStateController: Current client exists:', !!this._sessionManager.telnyxClient);
107
115
  this._setupClientListeners();
108
116
  // CallKit integration now handled by CallKitCoordinator
109
- console.log('🔧 CallStateController: Using CallKitCoordinator for CallKit integration');
117
+ console.log('CallStateController: Using CallKitCoordinator for CallKit integration');
110
118
  }
111
119
  /**
112
120
  * Initiate a new outgoing call
@@ -170,24 +178,24 @@ class CallStateController {
170
178
  * Set up event listeners for the Telnyx client
171
179
  */
172
180
  _setupClientListeners() {
173
- console.log('🔧 CallStateController: Setting up client listeners...');
181
+ console.log('CallStateController: Setting up client listeners...');
174
182
  if (!this._sessionManager.telnyxClient) {
175
- console.log('🔧 CallStateController: No telnyxClient available yet, skipping listener setup');
183
+ console.log('CallStateController: No telnyxClient available yet, skipping listener setup');
176
184
  return;
177
185
  }
178
- console.log('🔧 CallStateController: TelnyxClient found, setting up incoming call listener');
186
+ console.log('CallStateController: TelnyxClient found, setting up incoming call listener');
179
187
  console.log(
180
- '🔧 CallStateController: Client instance:',
188
+ 'CallStateController: Client instance:',
181
189
  this._sessionManager.telnyxClient.constructor.name
182
190
  );
183
191
  // Listen for incoming calls
184
192
  this._sessionManager.telnyxClient.on('telnyx.call.incoming', (telnyxCall, msg) => {
185
- console.log('📞 CallStateController: Incoming call received:', telnyxCall.callId);
193
+ console.log('CallStateController: Incoming call received:', telnyxCall.callId);
186
194
  this._handleIncomingCall(telnyxCall, msg, false);
187
195
  });
188
196
  // Listen for reattached calls (after network reconnection)
189
197
  this._sessionManager.telnyxClient.on('telnyx.call.reattached', (telnyxCall, msg) => {
190
- console.log('📞 CallStateController: Reattached call received:', telnyxCall.callId);
198
+ console.log('CallStateController: Reattached call received:', telnyxCall.callId);
191
199
  this._handleIncomingCall(telnyxCall, msg, true);
192
200
  });
193
201
  // Verify listeners are set up
@@ -196,14 +204,33 @@ class CallStateController {
196
204
  const reattachedListeners =
197
205
  this._sessionManager.telnyxClient.listenerCount('telnyx.call.reattached');
198
206
  console.log(
199
- '🔧 CallStateController: Listeners registered - incoming:',
207
+ 'CallStateController: Listeners registered - incoming:',
200
208
  incomingListeners,
201
209
  'reattached:',
202
210
  reattachedListeners
203
211
  );
204
- // Listen for other call events if needed
205
- // this._sessionManager.telnyxClient.on('telnyx.call.stateChange', this._handleCallStateChange.bind(this));
206
- console.log('🔧 CallStateController: Client listeners set up successfully');
212
+ // Listen for call state changes from the TelnyxRTC client (multi-call support)
213
+ this._sessionManager.telnyxClient.on('telnyx.call.stateChanged', (telnyxCall, state) => {
214
+ console.log(
215
+ 'CallStateController: Call state changed from TelnyxRTC:',
216
+ telnyxCall.callId,
217
+ state
218
+ );
219
+ // Find our wrapper call and update if needed
220
+ const call = this.findCallByTelnyxCall(telnyxCall);
221
+ if (call) {
222
+ console.log(
223
+ 'CallStateController: Found wrapper call, state sync handled by Call subscription'
224
+ );
225
+ }
226
+ });
227
+ // Listen for call removal events from TelnyxRTC (multi-call support)
228
+ this._sessionManager.telnyxClient.on('telnyx.call.removed', (callId) => {
229
+ console.log('CallStateController: Call removed from TelnyxRTC:', callId);
230
+ // The call cleanup is already handled by our call state subscription
231
+ // This event is informational for logging/debugging
232
+ });
233
+ console.log('CallStateController: Client listeners set up successfully');
207
234
  }
208
235
  /**
209
236
  * Handle incoming call or reattached call
@@ -211,20 +238,20 @@ class CallStateController {
211
238
  _handleIncomingCall(telnyxCall, inviteMsg, isReattached = false) {
212
239
  const callId = telnyxCall.callId || this._generateCallId();
213
240
  console.log(
214
- '📞 CallStateController: Handling incoming call:',
241
+ 'CallStateController: Handling incoming call:',
215
242
  callId,
216
243
  'isReattached:',
217
244
  isReattached
218
245
  );
219
- console.log('📞 CallStateController: TelnyxCall object:', telnyxCall);
220
- console.log('📞 CallStateController: Invite message:', inviteMsg);
246
+ console.log('CallStateController: TelnyxCall object:', telnyxCall);
247
+ console.log('CallStateController: Invite message:', inviteMsg);
221
248
  // For reattached calls, remove existing call and create new one
222
249
  if (isReattached && this._callMap.has(callId)) {
223
- console.log('📞 CallStateController: Removing existing call for reattachment');
250
+ console.log('CallStateController: Removing existing call for reattachment');
224
251
  const existingCall = this._callMap.get(callId);
225
252
  if (existingCall) {
226
253
  console.log(
227
- '📞 CallStateController: Existing call state before removal:',
254
+ 'CallStateController: Existing call state before removal:',
228
255
  existingCall.currentState
229
256
  );
230
257
  this._removeCall(callId);
@@ -242,7 +269,7 @@ class CallStateController {
242
269
  callerNumber = inviteMsg.params.caller_id_number || '';
243
270
  callerName = inviteMsg.params.caller_id_name || '';
244
271
  console.log(
245
- '📞 CallStateController: Extracted caller info from invite - Number:',
272
+ 'CallStateController: Extracted caller info from invite - Number:',
246
273
  callerNumber,
247
274
  'Name:',
248
275
  callerName
@@ -252,7 +279,7 @@ class CallStateController {
252
279
  callerNumber = telnyxCall.remoteCallerIdNumber || '';
253
280
  callerName = telnyxCall.remoteCallerIdName || '';
254
281
  console.log(
255
- '📞 CallStateController: Extracted caller info from TelnyxCall - Number:',
282
+ 'CallStateController: Extracted caller info from TelnyxCall - Number:',
256
283
  callerNumber,
257
284
  'Name:',
258
285
  callerName