@cometchat/skills 4.4.2 → 5.0.1

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 (518) hide show
  1. package/.claude-plugin/marketplace.json +55 -0
  2. package/.claude-plugin/plugin.json +14 -0
  3. package/CHANGELOG.md +44 -0
  4. package/LICENSE +21 -0
  5. package/MIGRATING.md +187 -0
  6. package/README.md +52 -156
  7. package/RULES.md +125 -0
  8. package/bin/cometchat-skills.mjs +1280 -0
  9. package/bin/legacy-skills.json +95 -0
  10. package/catalogs/android-v6.json +1646 -0
  11. package/catalogs/flutter-v6.json +651 -0
  12. package/catalogs/ios-v5.json +1383 -0
  13. package/catalogs/rn-calls-v5.json +134 -0
  14. package/catalogs/rn-calls-v5.symbols.txt +58 -0
  15. package/catalogs/rn-sdk-v4.json +672 -0
  16. package/catalogs/rn-v5.json +449 -0
  17. package/catalogs/rn-v5.symbols.txt +216 -0
  18. package/catalogs/sdk-android-v5.json +514 -0
  19. package/contracts.android-calls-v5.json +122 -0
  20. package/contracts.android-v6.json +135 -0
  21. package/contracts.angular-v5.json +694 -0
  22. package/contracts.flutter-calls-v5.json +77 -0
  23. package/contracts.flutter-v6.json +126 -0
  24. package/contracts.ios-calls-v5.json +67 -0
  25. package/contracts.ios-v5.json +436 -0
  26. package/contracts.json +82 -0
  27. package/contracts.rn-calls-v5.json +77 -0
  28. package/contracts.rn-v5.json +727 -0
  29. package/contracts.sdk-android-v5.json +15 -0
  30. package/contracts.web-calls-v5.json +45 -0
  31. package/features.android-calls-v5.json +246 -0
  32. package/features.android-v6.json +65 -0
  33. package/features.angular-v5.json +521 -0
  34. package/features.flutter-calls-v5.json +286 -0
  35. package/features.flutter-v6.json +484 -0
  36. package/features.ios-calls-v5.json +236 -0
  37. package/features.ios-v5.json +573 -0
  38. package/features.json +61 -0
  39. package/features.rn-calls-v5.json +187 -0
  40. package/features.rn-v5.json +614 -0
  41. package/features.sdk-android-v5.json +40 -0
  42. package/features.sdk-jsv4.json +24 -0
  43. package/features.web-calls-v5.json +108 -0
  44. package/package.json +156 -74
  45. package/peers.yaml +355 -0
  46. package/registry/README.md +31 -0
  47. package/registry/android-calls-v5.json +94 -0
  48. package/registry/android-v6.json +177 -0
  49. package/registry/angular-v5.json +154 -0
  50. package/registry/flutter-calls-v5.json +94 -0
  51. package/registry/flutter-v6.json +159 -0
  52. package/registry/ios-calls-v5.json +99 -0
  53. package/registry/ios-v5.json +152 -0
  54. package/registry/rn-calls-v5.json +99 -0
  55. package/registry/rn-v5.json +169 -0
  56. package/registry/sdk-android-v5.json +93 -0
  57. package/registry/sdk-jsv4.json +93 -0
  58. package/registry/web-calls-v5.json +94 -0
  59. package/registry/web-v7.json +154 -0
  60. package/skills/cometchat/SKILL.md +47 -2096
  61. package/skills/cometchat-a11y/SKILL.md +44 -472
  62. package/skills/cometchat-analytics/SKILL.md +61 -0
  63. package/skills/cometchat-android-v5-calls-sdk/SKILL.md +206 -0
  64. package/skills/cometchat-android-v5-calls-sdk/references/build-truth.md +63 -0
  65. package/skills/cometchat-android-v5-calls-sdk/references/docs-map.md +119 -0
  66. package/skills/cometchat-android-v5-calls-sdk/references/method-map.md +53 -0
  67. package/skills/cometchat-android-v5-calls-sdk/references/pitfalls.md +72 -0
  68. package/skills/cometchat-android-v5-calls-sdk/references/ringing.md +92 -0
  69. package/skills/cometchat-android-v5-calls-sdk/references/user-switch.md +90 -0
  70. package/skills/cometchat-android-v5-sdk/SKILL.md +127 -0
  71. package/skills/cometchat-android-v5-sdk/references/app-surface.md +88 -0
  72. package/skills/cometchat-android-v5-sdk/references/docs-map.md +91 -0
  73. package/skills/cometchat-android-v6-builder-settings/SKILL.md +51 -137
  74. package/skills/cometchat-android-v6-calls/SKILL.md +128 -413
  75. package/skills/cometchat-android-v6-compose-components/SKILL.md +84 -194
  76. package/skills/cometchat-android-v6-compose-customization/SKILL.md +66 -411
  77. package/skills/cometchat-android-v6-compose-placement/SKILL.md +154 -237
  78. package/skills/cometchat-android-v6-core/SKILL.md +236 -672
  79. package/skills/cometchat-android-v6-core/references/anti-patterns.md +31 -0
  80. package/skills/cometchat-android-v6-core/references/component-props.md +168 -0
  81. package/skills/cometchat-android-v6-core/references/docs-map.md +153 -0
  82. package/skills/cometchat-android-v6-core/references/layout.md +112 -0
  83. package/skills/cometchat-android-v6-core/references/lifecycle.md +75 -0
  84. package/skills/cometchat-android-v6-core/references/setup-credentials.md +105 -0
  85. package/skills/cometchat-android-v6-core/references/troubleshooting.md +36 -0
  86. package/skills/cometchat-android-v6-events/SKILL.md +46 -184
  87. package/skills/cometchat-android-v6-extensions/SKILL.md +39 -179
  88. package/skills/cometchat-android-v6-features/SKILL.md +74 -143
  89. package/skills/cometchat-android-v6-kotlin-components/SKILL.md +75 -193
  90. package/skills/cometchat-android-v6-kotlin-customization/SKILL.md +67 -419
  91. package/skills/cometchat-android-v6-kotlin-placement/SKILL.md +77 -223
  92. package/skills/cometchat-android-v6-migration/SKILL.md +67 -378
  93. package/skills/cometchat-android-v6-production/SKILL.md +41 -179
  94. package/skills/cometchat-android-v6-push/SKILL.md +39 -289
  95. package/skills/cometchat-android-v6-testing/SKILL.md +50 -265
  96. package/skills/cometchat-android-v6-troubleshooting/SKILL.md +70 -254
  97. package/skills/cometchat-angular-v5-calls/SKILL.md +193 -0
  98. package/skills/cometchat-angular-v5-components/SKILL.md +131 -0
  99. package/skills/cometchat-angular-v5-components/references/catalog.md +111 -0
  100. package/skills/cometchat-angular-v5-components/references/host-composed.md +46 -0
  101. package/skills/cometchat-angular-v5-core/SKILL.md +300 -0
  102. package/skills/cometchat-angular-v5-core/references/anti-patterns.md +49 -0
  103. package/skills/cometchat-angular-v5-core/references/component-props.md +55 -0
  104. package/skills/cometchat-angular-v5-core/references/dependencies.md +66 -0
  105. package/skills/cometchat-angular-v5-core/references/docs-map.md +132 -0
  106. package/skills/cometchat-angular-v5-core/references/layout.md +64 -0
  107. package/skills/cometchat-angular-v5-core/references/lifecycle.md +202 -0
  108. package/skills/cometchat-angular-v5-core/references/setup-credentials.md +137 -0
  109. package/skills/cometchat-angular-v5-core/references/theming.md +70 -0
  110. package/skills/cometchat-angular-v5-core/references/troubleshooting.md +27 -0
  111. package/skills/cometchat-angular-v5-customization/SKILL.md +94 -0
  112. package/skills/cometchat-angular-v5-features/SKILL.md +107 -0
  113. package/skills/cometchat-angular-v5-features/references/custom-messages.md +133 -0
  114. package/skills/cometchat-angular-v5-features/references/formatters.md +28 -0
  115. package/skills/cometchat-angular-v5-features/references/host-composed-extensions.md +85 -0
  116. package/skills/cometchat-angular-v5-migration/SKILL.md +40 -0
  117. package/skills/cometchat-angular-v5-migration/references/migration-guide.md +165 -0
  118. package/skills/cometchat-angular-v5-patterns/SKILL.md +107 -0
  119. package/skills/cometchat-angular-v5-placement/SKILL.md +133 -0
  120. package/skills/cometchat-angular-v5-placement/references/combined-app.md +174 -0
  121. package/skills/cometchat-angular-v5-placement/references/core-surface.md +199 -0
  122. package/skills/cometchat-angular-v5-production/SKILL.md +102 -0
  123. package/skills/cometchat-angular-v5-push/SKILL.md +61 -0
  124. package/skills/cometchat-angular-v5-testing/SKILL.md +112 -0
  125. package/skills/cometchat-angular-v5-troubleshooting/SKILL.md +96 -0
  126. package/skills/cometchat-audit/SKILL.md +61 -0
  127. package/skills/cometchat-compliance/SKILL.md +63 -0
  128. package/skills/cometchat-flutter-v5-sdk/SKILL.md +188 -0
  129. package/skills/cometchat-flutter-v5-sdk/references/doc-corrections.md +55 -0
  130. package/skills/cometchat-flutter-v5-sdk/references/docs-map.md +211 -0
  131. package/skills/cometchat-flutter-v5-sdk/references/platform-notes.md +48 -0
  132. package/skills/cometchat-flutter-v5-sdk/references/transcription.md +87 -0
  133. package/skills/cometchat-flutter-v6-calls/SKILL.md +75 -389
  134. package/skills/cometchat-flutter-v6-components/SKILL.md +88 -361
  135. package/skills/cometchat-flutter-v6-core/SKILL.md +154 -593
  136. package/skills/cometchat-flutter-v6-core/references/anti-patterns.md +55 -0
  137. package/skills/cometchat-flutter-v6-core/references/docs-map.md +143 -0
  138. package/skills/cometchat-flutter-v6-core/references/layout.md +45 -0
  139. package/skills/cometchat-flutter-v6-core/references/lifecycle.md +87 -0
  140. package/skills/cometchat-flutter-v6-core/references/setup-credentials.md +84 -0
  141. package/skills/cometchat-flutter-v6-core/references/troubleshooting.md +26 -0
  142. package/skills/cometchat-flutter-v6-customization/SKILL.md +70 -712
  143. package/skills/cometchat-flutter-v6-events/SKILL.md +79 -174
  144. package/skills/cometchat-flutter-v6-features/SKILL.md +55 -394
  145. package/skills/cometchat-flutter-v6-migration/SKILL.md +68 -367
  146. package/skills/cometchat-flutter-v6-migration/references/migration-guide.md +132 -0
  147. package/skills/cometchat-flutter-v6-patterns/SKILL.md +61 -0
  148. package/skills/cometchat-flutter-v6-placement/SKILL.md +94 -381
  149. package/skills/cometchat-flutter-v6-production/SKILL.md +59 -615
  150. package/skills/cometchat-flutter-v6-push/SKILL.md +46 -455
  151. package/skills/cometchat-flutter-v6-testing/SKILL.md +68 -299
  152. package/skills/cometchat-flutter-v6-troubleshooting/SKILL.md +54 -878
  153. package/skills/cometchat-i18n/SKILL.md +35 -404
  154. package/skills/cometchat-ios-calls/SKILL.md +112 -563
  155. package/skills/cometchat-ios-components/SKILL.md +44 -834
  156. package/skills/cometchat-ios-core/SKILL.md +182 -1068
  157. package/skills/cometchat-ios-core/references/anti-patterns.md +113 -0
  158. package/skills/cometchat-ios-core/references/docs-map.md +124 -0
  159. package/skills/cometchat-ios-core/references/install.md +23 -0
  160. package/skills/cometchat-ios-core/references/layout.md +219 -0
  161. package/skills/cometchat-ios-core/references/setup-credentials.md +197 -0
  162. package/skills/cometchat-ios-core/references/swiftui.md +91 -0
  163. package/skills/cometchat-ios-core/references/troubleshooting.md +100 -0
  164. package/skills/cometchat-ios-customization/SKILL.md +33 -968
  165. package/skills/cometchat-ios-features/SKILL.md +29 -738
  166. package/skills/cometchat-ios-migration/SKILL.md +39 -0
  167. package/skills/cometchat-ios-placement/SKILL.md +51 -729
  168. package/skills/cometchat-ios-production/SKILL.md +67 -723
  169. package/skills/cometchat-ios-push/SKILL.md +24 -602
  170. package/skills/cometchat-ios-testing/SKILL.md +36 -355
  171. package/skills/cometchat-ios-troubleshooting/SKILL.md +31 -989
  172. package/skills/cometchat-ios-v5-sdk/SKILL.md +161 -0
  173. package/skills/cometchat-ios-v5-sdk/references/docs-map.md +326 -0
  174. package/skills/cometchat-js-v5-sdk/SKILL.md +95 -0
  175. package/skills/cometchat-js-v5-sdk/references/docs-map.md +114 -0
  176. package/skills/cometchat-migrate-from-getstream/SKILL.md +65 -0
  177. package/skills/cometchat-migrate-from-getstream/references/concept-map.md +98 -0
  178. package/skills/cometchat-migrate-from-getstream/references/data-migration.md +74 -0
  179. package/skills/cometchat-migrate-from-getstream/references/feature-map.md +108 -0
  180. package/skills/cometchat-migrate-from-getstream/references/inventory.md +82 -0
  181. package/skills/cometchat-migrate-from-getstream/references/native-build.md +9 -0
  182. package/skills/cometchat-migrate-from-getstream/references/report-template.md +59 -0
  183. package/skills/cometchat-migrate-from-sendbird/SKILL.md +64 -0
  184. package/skills/cometchat-migrate-from-sendbird/references/concept-map.md +99 -0
  185. package/skills/cometchat-migrate-from-sendbird/references/data-migration.md +74 -0
  186. package/skills/cometchat-migrate-from-sendbird/references/feature-map.md +104 -0
  187. package/skills/cometchat-migrate-from-sendbird/references/inventory.md +86 -0
  188. package/skills/cometchat-migrate-from-sendbird/references/native-build.md +10 -0
  189. package/skills/cometchat-migrate-from-sendbird/references/report-template.md +59 -0
  190. package/skills/cometchat-migrate-from-twilio/SKILL.md +52 -0
  191. package/skills/cometchat-migrate-from-twilio/references/concept-map.md +49 -0
  192. package/skills/cometchat-migrate-from-twilio/references/data-migration.md +50 -0
  193. package/skills/cometchat-migrate-from-twilio/references/feature-map.md +27 -0
  194. package/skills/cometchat-migrate-from-twilio/references/inventory.md +53 -0
  195. package/skills/cometchat-migrate-from-twilio/references/report-template.md +52 -0
  196. package/skills/cometchat-moderation/SKILL.md +58 -0
  197. package/skills/cometchat-onboarding/SKILL.md +92 -0
  198. package/skills/cometchat-onboarding/references/archetypes.md +51 -0
  199. package/skills/cometchat-onboarding/references/calling-first.md +77 -0
  200. package/skills/cometchat-onboarding/references/not-in-this-pack.md +8 -0
  201. package/skills/cometchat-onboarding/references/plan-artifact.md +133 -0
  202. package/skills/cometchat-onboarding/references/platforms.md +105 -0
  203. package/skills/cometchat-react-native-bare-patterns/SKILL.md +120 -0
  204. package/skills/cometchat-react-native-calls/SKILL.md +200 -0
  205. package/skills/cometchat-react-native-components/SKILL.md +142 -0
  206. package/skills/cometchat-react-native-core/SKILL.md +335 -0
  207. package/skills/cometchat-react-native-core/references/anti-patterns.md +79 -0
  208. package/skills/cometchat-react-native-core/references/component-props.md +105 -0
  209. package/skills/cometchat-react-native-core/references/dependencies.md +62 -0
  210. package/skills/cometchat-react-native-core/references/docs-map.md +127 -0
  211. package/skills/cometchat-react-native-core/references/layout.md +61 -0
  212. package/skills/cometchat-react-native-core/references/lifecycle.md +64 -0
  213. package/skills/cometchat-react-native-core/references/setup-credentials.md +39 -0
  214. package/skills/cometchat-react-native-customization/SKILL.md +198 -0
  215. package/skills/cometchat-react-native-expo-patterns/SKILL.md +116 -0
  216. package/skills/cometchat-react-native-features/SKILL.md +122 -0
  217. package/skills/cometchat-react-native-migration/SKILL.md +103 -0
  218. package/skills/cometchat-react-native-placement/SKILL.md +158 -0
  219. package/skills/cometchat-react-native-production/SKILL.md +79 -0
  220. package/skills/cometchat-react-native-push/SKILL.md +88 -0
  221. package/skills/cometchat-react-native-sdk/SKILL.md +133 -0
  222. package/skills/cometchat-react-native-sdk/references/method-map.md +239 -0
  223. package/skills/cometchat-react-native-sdk/references/page-map.md +96 -0
  224. package/skills/cometchat-react-native-testing/SKILL.md +94 -0
  225. package/skills/cometchat-react-native-troubleshooting/SKILL.md +174 -0
  226. package/skills/cometchat-react-native-v5-sdk/SKILL.md +150 -0
  227. package/skills/cometchat-react-native-v5-sdk/references/docs-map.md +127 -0
  228. package/skills/cometchat-react-native-v5-sdk/references/ringing-voip.md +369 -0
  229. package/skills/cometchat-react-v7-calls/SKILL.md +75 -0
  230. package/skills/cometchat-react-v7-components/SKILL.md +72 -0
  231. package/skills/cometchat-react-v7-core/SKILL.md +101 -0
  232. package/skills/cometchat-react-v7-core/references/anti-patterns.md +19 -0
  233. package/skills/cometchat-react-v7-core/references/component-props.md +82 -0
  234. package/skills/cometchat-react-v7-core/references/dependencies.md +23 -0
  235. package/skills/cometchat-react-v7-core/references/docs-map.md +117 -0
  236. package/skills/cometchat-react-v7-core/references/layout.md +150 -0
  237. package/skills/cometchat-react-v7-core/references/lifecycle.md +74 -0
  238. package/skills/cometchat-react-v7-core/references/setup-credentials.md +58 -0
  239. package/skills/cometchat-react-v7-core/references/ssr.md +11 -0
  240. package/skills/cometchat-react-v7-core/references/theming.md +52 -0
  241. package/skills/cometchat-react-v7-customization/SKILL.md +84 -0
  242. package/skills/cometchat-react-v7-features/SKILL.md +92 -0
  243. package/skills/cometchat-react-v7-migration/SKILL.md +39 -0
  244. package/skills/cometchat-react-v7-migration/references/migration-guide.md +119 -0
  245. package/skills/cometchat-react-v7-patterns/SKILL.md +43 -0
  246. package/skills/cometchat-react-v7-placement/SKILL.md +106 -0
  247. package/skills/cometchat-react-v7-placement/references/recipes.md +354 -0
  248. package/skills/cometchat-react-v7-production/SKILL.md +84 -0
  249. package/skills/cometchat-react-v7-push/SKILL.md +53 -0
  250. package/skills/cometchat-react-v7-testing/SKILL.md +60 -0
  251. package/skills/cometchat-react-v7-troubleshooting/SKILL.md +47 -0
  252. package/skills/cometchat-security/SKILL.md +80 -0
  253. package/skills/cometchat-self-host/SKILL.md +56 -0
  254. package/test-suite/README.md +70 -0
  255. package/test-suite/catalogs/android-calls-v5.json +830 -0
  256. package/test-suite/catalogs/android-calls-v5.symbols.txt +499 -0
  257. package/test-suite/catalogs/android-v6.json +1646 -0
  258. package/test-suite/catalogs/android-v6.symbols.txt +298 -0
  259. package/test-suite/catalogs/angular-v5.json +7587 -0
  260. package/test-suite/catalogs/flutter-calls-v5.json +196 -0
  261. package/test-suite/catalogs/flutter-calls-v5.symbols.txt +59 -0
  262. package/test-suite/catalogs/flutter-v6.json +651 -0
  263. package/test-suite/catalogs/ios-calls-v5.json +158 -0
  264. package/test-suite/catalogs/ios-calls-v5.symbols.txt +70 -0
  265. package/test-suite/catalogs/ios-v5.json +1383 -0
  266. package/test-suite/catalogs/ios-v5.symbols.txt +699 -0
  267. package/test-suite/catalogs/rn-calls-v5.json +134 -0
  268. package/test-suite/catalogs/rn-sdk-v4.json +672 -0
  269. package/test-suite/catalogs/rn-v5.json +449 -0
  270. package/test-suite/catalogs/sdk-android-v5.json +514 -0
  271. package/test-suite/catalogs/sdk-android-v5.symbols.txt +254 -0
  272. package/test-suite/catalogs/sdk-jsv4.json +800 -0
  273. package/test-suite/catalogs/web-calls-v5.json +195 -0
  274. package/test-suite/catalogs/web-v7.json +1243 -0
  275. package/test-suite/scripts/build-registry.mjs +113 -0
  276. package/test-suite/scripts/catalog-refresh-dart.mjs +151 -0
  277. package/test-suite/scripts/catalog-refresh.mjs +100 -0
  278. package/test-suite/scripts/lint-skills.mjs +932 -0
  279. package/test-suite/scripts/measure-tokens.mjs +169 -0
  280. package/test-suite/scripts/typecheck-fences-dart.mjs +437 -0
  281. package/test-suite/scripts/typecheck-fences-kotlin.mjs +269 -0
  282. package/test-suite/scripts/typecheck-fences.mjs +206 -0
  283. package/test-suite/scripts/verify-catalog.mjs +242 -0
  284. package/test-suite/scripts/verify-contract-fences.mjs +94 -0
  285. package/test-suite/scripts/verify-detection.mjs +178 -0
  286. package/test-suite/scripts/verify-docs-base.mjs +91 -0
  287. package/test-suite/scripts/verify-family-agnostic.mjs +134 -0
  288. package/test-suite/scripts/verify-golden-path.mjs +138 -0
  289. package/test-suite/scripts/verify-oracle-components.mjs +133 -0
  290. package/test-suite/scripts/verify-template-bindings.mjs +148 -0
  291. package/test-suite/typecheck/angular-v5/package.json +21 -0
  292. package/test-suite/typecheck/angular-v5/tsconfig.json +21 -0
  293. package/test-suite/typecheck/flutter-v6/analysis_options.yaml +25 -0
  294. package/test-suite/typecheck/flutter-v6/pubspec.yaml +21 -0
  295. package/test-suite/typecheck/web-v7/package.json +18 -0
  296. package/test-suite/typecheck/web-v7/tsconfig.json +19 -0
  297. package/bin/install.js +0 -1003
  298. package/skills/.claude-plugin/marketplace.json +0 -86
  299. package/skills/cometchat/references/asking-questions.md +0 -48
  300. package/skills/cometchat-android-v5/SKILL.md +0 -121
  301. package/skills/cometchat-android-v5-calls/SKILL.md +0 -429
  302. package/skills/cometchat-android-v5-calls/references/README.md +0 -53
  303. package/skills/cometchat-android-v5-calls/references/add-calls-to-existing-chat.md +0 -197
  304. package/skills/cometchat-android-v5-calls/references/audio-controls.md +0 -91
  305. package/skills/cometchat-android-v5-calls/references/background-handling.md +0 -168
  306. package/skills/cometchat-android-v5-calls/references/call-layouts.md +0 -131
  307. package/skills/cometchat-android-v5-calls/references/call-logs.md +0 -113
  308. package/skills/cometchat-android-v5-calls/references/call-session.md +0 -274
  309. package/skills/cometchat-android-v5-calls/references/custom-ui.md +0 -150
  310. package/skills/cometchat-android-v5-calls/references/event-listeners.md +0 -123
  311. package/skills/cometchat-android-v5-calls/references/group-calls.md +0 -205
  312. package/skills/cometchat-android-v5-calls/references/idle-timeout.md +0 -117
  313. package/skills/cometchat-android-v5-calls/references/in-call-chat.md +0 -134
  314. package/skills/cometchat-android-v5-calls/references/join-session.md +0 -120
  315. package/skills/cometchat-android-v5-calls/references/migration-v4-to-v5.md +0 -222
  316. package/skills/cometchat-android-v5-calls/references/participant-management.md +0 -110
  317. package/skills/cometchat-android-v5-calls/references/picture-in-picture.md +0 -106
  318. package/skills/cometchat-android-v5-calls/references/raise-hand.md +0 -248
  319. package/skills/cometchat-android-v5-calls/references/recording.md +0 -101
  320. package/skills/cometchat-android-v5-calls/references/ringing-integration.md +0 -152
  321. package/skills/cometchat-android-v5-calls/references/screen-sharing.md +0 -78
  322. package/skills/cometchat-android-v5-calls/references/server-fcm-voip.md +0 -215
  323. package/skills/cometchat-android-v5-calls/references/session-settings.md +0 -121
  324. package/skills/cometchat-android-v5-calls/references/setup.md +0 -137
  325. package/skills/cometchat-android-v5-calls/references/share-invite.md +0 -156
  326. package/skills/cometchat-android-v5-calls/references/video-controls.md +0 -87
  327. package/skills/cometchat-android-v5-calls/references/voip-calling.md +0 -526
  328. package/skills/cometchat-android-v5-components/SKILL.md +0 -431
  329. package/skills/cometchat-android-v5-core/SKILL.md +0 -486
  330. package/skills/cometchat-android-v5-customization/SKILL.md +0 -469
  331. package/skills/cometchat-android-v5-extensions/SKILL.md +0 -127
  332. package/skills/cometchat-android-v5-features/SKILL.md +0 -131
  333. package/skills/cometchat-android-v5-placement/SKILL.md +0 -277
  334. package/skills/cometchat-android-v5-production/SKILL.md +0 -95
  335. package/skills/cometchat-android-v5-push/SKILL.md +0 -619
  336. package/skills/cometchat-android-v5-testing/SKILL.md +0 -188
  337. package/skills/cometchat-android-v5-theming/SKILL.md +0 -167
  338. package/skills/cometchat-android-v5-troubleshooting/SKILL.md +0 -74
  339. package/skills/cometchat-android-v6/SKILL.md +0 -108
  340. package/skills/cometchat-android-v6-calls/references/add-calls-to-existing-chat.md +0 -97
  341. package/skills/cometchat-android-v6-calls/references/advanced-features.md +0 -87
  342. package/skills/cometchat-android-v6-calls/references/call-layouts.md +0 -100
  343. package/skills/cometchat-android-v6-calls/references/call-session.md +0 -163
  344. package/skills/cometchat-android-v6-calls/references/device-management.md +0 -172
  345. package/skills/cometchat-android-v6-calls/references/group-calls.md +0 -191
  346. package/skills/cometchat-android-v6-calls/references/idle-timeout.md +0 -110
  347. package/skills/cometchat-android-v6-calls/references/in-call-chat.md +0 -141
  348. package/skills/cometchat-android-v6-calls/references/raise-hand.md +0 -188
  349. package/skills/cometchat-android-v6-calls/references/ringing-integration.md +0 -176
  350. package/skills/cometchat-android-v6-calls/references/server-fcm-voip.md +0 -127
  351. package/skills/cometchat-android-v6-calls/references/share-invite.md +0 -105
  352. package/skills/cometchat-android-v6-compose-theming/SKILL.md +0 -250
  353. package/skills/cometchat-android-v6-kotlin-theming/SKILL.md +0 -233
  354. package/skills/cometchat-angular-calls/SKILL.md +0 -380
  355. package/skills/cometchat-angular-calls/references/add-calls-to-existing-chat.md +0 -96
  356. package/skills/cometchat-angular-calls/references/call-layouts.md +0 -123
  357. package/skills/cometchat-angular-calls/references/call-session.md +0 -167
  358. package/skills/cometchat-angular-calls/references/custom-ui.md +0 -239
  359. package/skills/cometchat-angular-calls/references/device-management.md +0 -154
  360. package/skills/cometchat-angular-calls/references/group-calls.md +0 -433
  361. package/skills/cometchat-angular-calls/references/idle-timeout.md +0 -161
  362. package/skills/cometchat-angular-calls/references/in-call-chat.md +0 -148
  363. package/skills/cometchat-angular-calls/references/lazy-loading-pitfalls.md +0 -205
  364. package/skills/cometchat-angular-calls/references/migration-v4-to-v5.md +0 -53
  365. package/skills/cometchat-angular-calls/references/ngzone-and-async-callbacks.md +0 -184
  366. package/skills/cometchat-angular-calls/references/picture-in-picture.md +0 -285
  367. package/skills/cometchat-angular-calls/references/raise-hand.md +0 -172
  368. package/skills/cometchat-angular-calls/references/recording-screen-share.md +0 -260
  369. package/skills/cometchat-angular-calls/references/ringing-integration.md +0 -133
  370. package/skills/cometchat-angular-calls/references/server-web-push-vapid.md +0 -100
  371. package/skills/cometchat-angular-calls/references/share-invite.md +0 -122
  372. package/skills/cometchat-angular-calls/references/virtual-background.md +0 -29
  373. package/skills/cometchat-angular-components/SKILL.md +0 -235
  374. package/skills/cometchat-angular-core/SKILL.md +0 -386
  375. package/skills/cometchat-angular-customization/SKILL.md +0 -616
  376. package/skills/cometchat-angular-features/SKILL.md +0 -329
  377. package/skills/cometchat-angular-patterns/SKILL.md +0 -256
  378. package/skills/cometchat-angular-placement/SKILL.md +0 -314
  379. package/skills/cometchat-angular-production/SKILL.md +0 -564
  380. package/skills/cometchat-angular-push/SKILL.md +0 -389
  381. package/skills/cometchat-angular-testing/SKILL.md +0 -605
  382. package/skills/cometchat-angular-theming/SKILL.md +0 -290
  383. package/skills/cometchat-angular-troubleshooting/SKILL.md +0 -364
  384. package/skills/cometchat-astro-patterns/SKILL.md +0 -708
  385. package/skills/cometchat-calls/SKILL.md +0 -364
  386. package/skills/cometchat-calls/references/use-case-broadcast.md +0 -199
  387. package/skills/cometchat-calls/references/use-case-marketplace.md +0 -157
  388. package/skills/cometchat-calls/references/use-case-support.md +0 -189
  389. package/skills/cometchat-calls/references/use-case-team.md +0 -180
  390. package/skills/cometchat-calls/references/use-case-telehealth.md +0 -153
  391. package/skills/cometchat-components/SKILL.md +0 -1142
  392. package/skills/cometchat-core/SKILL.md +0 -1048
  393. package/skills/cometchat-customization/SKILL.md +0 -580
  394. package/skills/cometchat-customization/references/component-catalog.md +0 -236
  395. package/skills/cometchat-features/SKILL.md +0 -861
  396. package/skills/cometchat-flutter-v5/SKILL.md +0 -173
  397. package/skills/cometchat-flutter-v5-calls/SKILL.md +0 -455
  398. package/skills/cometchat-flutter-v5-calls/references/add-calls-to-existing-chat.md +0 -193
  399. package/skills/cometchat-flutter-v5-calls/references/call-layouts.md +0 -103
  400. package/skills/cometchat-flutter-v5-calls/references/call-session.md +0 -285
  401. package/skills/cometchat-flutter-v5-calls/references/device-management.md +0 -124
  402. package/skills/cometchat-flutter-v5-calls/references/group-calls.md +0 -181
  403. package/skills/cometchat-flutter-v5-calls/references/idle-timeout.md +0 -99
  404. package/skills/cometchat-flutter-v5-calls/references/in-call-chat.md +0 -135
  405. package/skills/cometchat-flutter-v5-calls/references/migration-v4-to-v5.md +0 -210
  406. package/skills/cometchat-flutter-v5-calls/references/raise-hand.md +0 -255
  407. package/skills/cometchat-flutter-v5-calls/references/ringing-integration.md +0 -196
  408. package/skills/cometchat-flutter-v5-calls/references/server-push-bridge.md +0 -101
  409. package/skills/cometchat-flutter-v5-calls/references/share-invite.md +0 -148
  410. package/skills/cometchat-flutter-v5-conversations/SKILL.md +0 -118
  411. package/skills/cometchat-flutter-v5-core/SKILL.md +0 -239
  412. package/skills/cometchat-flutter-v5-customization/SKILL.md +0 -358
  413. package/skills/cometchat-flutter-v5-events/SKILL.md +0 -156
  414. package/skills/cometchat-flutter-v5-messages/SKILL.md +0 -259
  415. package/skills/cometchat-flutter-v5-production/SKILL.md +0 -216
  416. package/skills/cometchat-flutter-v5-push/SKILL.md +0 -285
  417. package/skills/cometchat-flutter-v5-testing/SKILL.md +0 -401
  418. package/skills/cometchat-flutter-v5-theming/SKILL.md +0 -161
  419. package/skills/cometchat-flutter-v5-troubleshooting/SKILL.md +0 -130
  420. package/skills/cometchat-flutter-v5-users-groups/SKILL.md +0 -152
  421. package/skills/cometchat-flutter-v6/SKILL.md +0 -446
  422. package/skills/cometchat-flutter-v6-calls/references/add-calls-to-existing-chat.md +0 -136
  423. package/skills/cometchat-flutter-v6-calls/references/advanced-features.md +0 -89
  424. package/skills/cometchat-flutter-v6-calls/references/call-layouts.md +0 -105
  425. package/skills/cometchat-flutter-v6-calls/references/call-session.md +0 -229
  426. package/skills/cometchat-flutter-v6-calls/references/device-management.md +0 -105
  427. package/skills/cometchat-flutter-v6-calls/references/group-calls.md +0 -190
  428. package/skills/cometchat-flutter-v6-calls/references/idle-timeout.md +0 -88
  429. package/skills/cometchat-flutter-v6-calls/references/in-call-chat.md +0 -125
  430. package/skills/cometchat-flutter-v6-calls/references/raise-hand.md +0 -275
  431. package/skills/cometchat-flutter-v6-calls/references/ringing-integration.md +0 -171
  432. package/skills/cometchat-flutter-v6-calls/references/server-push-bridge.md +0 -93
  433. package/skills/cometchat-flutter-v6-calls/references/share-invite.md +0 -102
  434. package/skills/cometchat-flutter-v6-conversations/SKILL.md +0 -238
  435. package/skills/cometchat-flutter-v6-messages/SKILL.md +0 -384
  436. package/skills/cometchat-flutter-v6-theming/SKILL.md +0 -293
  437. package/skills/cometchat-flutter-v6-users-groups/SKILL.md +0 -224
  438. package/skills/cometchat-ios/SKILL.md +0 -325
  439. package/skills/cometchat-ios-calls/references/add-calls-to-existing-chat.md +0 -181
  440. package/skills/cometchat-ios-calls/references/audio-modes-and-controls.md +0 -45
  441. package/skills/cometchat-ios-calls/references/avaudiosession-routing.md +0 -188
  442. package/skills/cometchat-ios-calls/references/call-layouts.md +0 -76
  443. package/skills/cometchat-ios-calls/references/call-session.md +0 -218
  444. package/skills/cometchat-ios-calls/references/callkit-and-pushkit.md +0 -357
  445. package/skills/cometchat-ios-calls/references/custom-ui.md +0 -322
  446. package/skills/cometchat-ios-calls/references/device-management.md +0 -171
  447. package/skills/cometchat-ios-calls/references/group-calls.md +0 -359
  448. package/skills/cometchat-ios-calls/references/idle-timeout.md +0 -184
  449. package/skills/cometchat-ios-calls/references/in-call-chat.md +0 -179
  450. package/skills/cometchat-ios-calls/references/migration-v4-to-v5.md +0 -196
  451. package/skills/cometchat-ios-calls/references/picture-in-picture.md +0 -246
  452. package/skills/cometchat-ios-calls/references/raise-hand.md +0 -26
  453. package/skills/cometchat-ios-calls/references/recording-screen-share.md +0 -252
  454. package/skills/cometchat-ios-calls/references/ringing-integration.md +0 -143
  455. package/skills/cometchat-ios-calls/references/server-apns-pushkit.md +0 -267
  456. package/skills/cometchat-ios-calls/references/share-invite.md +0 -148
  457. package/skills/cometchat-ios-calls/references/swiftui-uikit-hosting.md +0 -246
  458. package/skills/cometchat-ios-calls/references/voip-cert-setup.md +0 -166
  459. package/skills/cometchat-ios-theming/SKILL.md +0 -667
  460. package/skills/cometchat-native-bare-patterns/SKILL.md +0 -550
  461. package/skills/cometchat-native-calls/SKILL.md +0 -671
  462. package/skills/cometchat-native-calls/references/add-calls-to-existing-chat.md +0 -203
  463. package/skills/cometchat-native-calls/references/call-layouts.md +0 -125
  464. package/skills/cometchat-native-calls/references/call-session.md +0 -182
  465. package/skills/cometchat-native-calls/references/custom-ui.md +0 -254
  466. package/skills/cometchat-native-calls/references/device-management.md +0 -158
  467. package/skills/cometchat-native-calls/references/expo-vs-bare.md +0 -179
  468. package/skills/cometchat-native-calls/references/group-calls.md +0 -296
  469. package/skills/cometchat-native-calls/references/idle-timeout.md +0 -128
  470. package/skills/cometchat-native-calls/references/in-call-chat.md +0 -145
  471. package/skills/cometchat-native-calls/references/migration-v4-to-v5.md +0 -72
  472. package/skills/cometchat-native-calls/references/picture-in-picture.md +0 -276
  473. package/skills/cometchat-native-calls/references/raise-hand.md +0 -205
  474. package/skills/cometchat-native-calls/references/recording-screen-share.md +0 -169
  475. package/skills/cometchat-native-calls/references/ringing-integration.md +0 -118
  476. package/skills/cometchat-native-calls/references/server-push-bridge.md +0 -135
  477. package/skills/cometchat-native-calls/references/server-push-payloads.md +0 -193
  478. package/skills/cometchat-native-calls/references/share-invite.md +0 -146
  479. package/skills/cometchat-native-calls/references/voip-push-end-to-end.md +0 -319
  480. package/skills/cometchat-native-components/SKILL.md +0 -628
  481. package/skills/cometchat-native-core/SKILL.md +0 -679
  482. package/skills/cometchat-native-customization/SKILL.md +0 -716
  483. package/skills/cometchat-native-expo-patterns/SKILL.md +0 -552
  484. package/skills/cometchat-native-features/SKILL.md +0 -638
  485. package/skills/cometchat-native-placement/SKILL.md +0 -509
  486. package/skills/cometchat-native-production/SKILL.md +0 -700
  487. package/skills/cometchat-native-push/SKILL.md +0 -594
  488. package/skills/cometchat-native-testing/SKILL.md +0 -582
  489. package/skills/cometchat-native-theming/SKILL.md +0 -681
  490. package/skills/cometchat-native-troubleshooting/SKILL.md +0 -501
  491. package/skills/cometchat-nextjs-patterns/SKILL.md +0 -899
  492. package/skills/cometchat-placement/SKILL.md +0 -1360
  493. package/skills/cometchat-production/SKILL.md +0 -1027
  494. package/skills/cometchat-react-calls/SKILL.md +0 -752
  495. package/skills/cometchat-react-calls/references/add-calls-to-existing-chat.md +0 -146
  496. package/skills/cometchat-react-calls/references/call-layouts.md +0 -160
  497. package/skills/cometchat-react-calls/references/call-session.md +0 -235
  498. package/skills/cometchat-react-calls/references/custom-ui.md +0 -247
  499. package/skills/cometchat-react-calls/references/device-management.md +0 -210
  500. package/skills/cometchat-react-calls/references/group-calls.md +0 -257
  501. package/skills/cometchat-react-calls/references/idle-timeout.md +0 -188
  502. package/skills/cometchat-react-calls/references/in-call-chat.md +0 -212
  503. package/skills/cometchat-react-calls/references/migration-v4-to-v5.md +0 -170
  504. package/skills/cometchat-react-calls/references/picture-in-picture.md +0 -245
  505. package/skills/cometchat-react-calls/references/raise-hand.md +0 -238
  506. package/skills/cometchat-react-calls/references/recording-screen-share.md +0 -144
  507. package/skills/cometchat-react-calls/references/ringing-integration.md +0 -255
  508. package/skills/cometchat-react-calls/references/server-web-push-vapid.md +0 -241
  509. package/skills/cometchat-react-calls/references/share-invite.md +0 -175
  510. package/skills/cometchat-react-calls/references/testing-calls-on-web.md +0 -216
  511. package/skills/cometchat-react-calls/references/virtual-background.md +0 -32
  512. package/skills/cometchat-react-calls/references/voip-and-web-push.md +0 -165
  513. package/skills/cometchat-react-patterns/SKILL.md +0 -628
  514. package/skills/cometchat-react-push/SKILL.md +0 -634
  515. package/skills/cometchat-react-router-patterns/SKILL.md +0 -758
  516. package/skills/cometchat-react-testing/SKILL.md +0 -413
  517. package/skills/cometchat-theming/SKILL.md +0 -498
  518. package/skills/cometchat-troubleshooting/SKILL.md +0 -294
@@ -1,197 +0,0 @@
1
- # Adding calls to an existing chat integration (Android V5)
2
-
3
- You have `chatuikit-android` (V5 cohort) working. Adding calls = `calls-sdk-android` + ConnectionService + foreground service permissions.
4
-
5
- **Read first:** `cometchat-android-v5-calls/SKILL.md` — seven hard rules (init order, ConnectionService, foreground service type, hangup teardown).
6
-
7
- ---
8
-
9
- ## Step 1 — Install Calls SDK from Cloudsmith
10
-
11
- ```kotlin
12
- // settings.gradle.kts (or settings.gradle)
13
- dependencyResolutionManagement {
14
- repositories {
15
- maven { url = uri("https://dl.cloudsmith.io/public/cometchat/cometchat/maven/") }
16
- google()
17
- mavenCentral()
18
- }
19
- }
20
-
21
- // app/build.gradle.kts
22
- dependencies {
23
- implementation("com.cometchat:calls-sdk-android:5.+")
24
- // existing chat-uikit dependency stays
25
- }
26
- ```
27
-
28
- ```bash
29
- ./gradlew :app:dependencies | grep calls-sdk-android
30
- ```
31
-
32
- Should resolve to `5.x.x`.
33
-
34
- ---
35
-
36
- ## Step 2 — Permissions + manifest
37
-
38
- ```xml
39
- <!-- AndroidManifest.xml -->
40
- <uses-permission android:name="android.permission.RECORD_AUDIO"/>
41
- <uses-permission android:name="android.permission.CAMERA"/>
42
- <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
43
- <uses-permission android:name="android.permission.BLUETOOTH"/>
44
- <uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>
45
- <uses-permission android:name="android.permission.MANAGE_OWN_CALLS"/>
46
- <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
47
- <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE"/>
48
- <uses-permission android:name="android.permission.FOREGROUND_SERVICE_CAMERA"/>
49
-
50
- <application ...>
51
- <service
52
- android:name=".AppConnectionService"
53
- android:permission="android.permission.BIND_TELECOM_CONNECTION_SERVICE"
54
- android:foregroundServiceType="microphone|camera"
55
- android:exported="true">
56
- <intent-filter>
57
- <action android:name="android.telecom.ConnectionService"/>
58
- </intent-filter>
59
- </service>
60
- </application>
61
- ```
62
-
63
- `foregroundServiceType="microphone|camera"` is mandatory on Android 14+.
64
-
65
- ---
66
-
67
- ## Step 3 — Init order: chat → calls
68
-
69
- In your existing `Application.onCreate` or your init activity:
70
-
71
- ```kotlin
72
- import com.cometchat.calls.core.CometChatCalls
73
- import com.cometchat.calls.core.CallAppSettings
74
-
75
- // Existing chat init
76
- CometChatUIKit.init(this, uikitSettings, object : CometChat.CallbackListener<String>() {
77
- override fun onSuccess(s: String) {
78
- // NEW: Calls init AFTER chat init
79
- val callsSettings = CallAppSettings(appId = APP_ID, region = REGION)
80
- CometChatCalls.init(callsSettings, object : CometChatCalls.CallbackListener<String>() {
81
- override fun onSuccess(s: String) { /* both initialized */ }
82
- override fun onError(e: CometChatException) { Log.e("App", "Calls init failed", e) }
83
- })
84
- }
85
-
86
- override fun onError(e: CometChatException) {}
87
- })
88
- ```
89
-
90
- ---
91
-
92
- ## Step 4 — Login both SDKs
93
-
94
- After your existing login flow:
95
-
96
- ```kotlin
97
- CometChat.login(uid, authKey, object : CometChat.CallbackListener<User>() {
98
- override fun onSuccess(user: User) {
99
- // Calls SDK login uses the SAME uid + authKey (the chat `User` has no
100
- // `authToken` accessor — if you need a token it's the static
101
- // `CometChat.getUserAuthToken()`). Callback type is CallUser, not User.
102
- CometChatCalls.login(uid, authKey, object : CometChatCalls.CallbackListener<CallUser>() {
103
- override fun onSuccess(callUser: CallUser) { /* calls SDK ready */ }
104
- override fun onError(e: com.cometchat.calls.exceptions.CometChatException) {}
105
- })
106
- }
107
- override fun onError(e: CometChatException) {}
108
- })
109
- ```
110
-
111
- ---
112
-
113
- ## Step 5 — IncomingCall via ConnectionService
114
-
115
- Implement `AppConnectionService` (see `cometchat-android-v5-calls/SKILL.md` rule 4). The ConnectionService receives FCM data-message → calls `addNewIncomingCall` → OS shows incoming-call UI.
116
-
117
- Plus an `IncomingCallActivity` that handles user action (accept/reject) and routes to your chat UI's call surface:
118
-
119
- ```kotlin
120
- class IncomingCallActivity : AppCompatActivity() {
121
- override fun onCreate(savedInstanceState: Bundle?) {
122
- super.onCreate(savedInstanceState)
123
- // Show over lock screen
124
- setShowWhenLocked(true)
125
- setTurnScreenOn(true)
126
- // ... bind your incoming-call layout
127
- }
128
- }
129
- ```
130
-
131
- ---
132
-
133
- ## Step 6 — FCM token registration
134
-
135
- Add a `FirebaseMessagingService` subclass and POST tokens to your server (see `cometchat-android-v5-calls/references/server-fcm-voip.md`):
136
-
137
- ```kotlin
138
- class VoipMessagingService : FirebaseMessagingService() {
139
- override fun onNewToken(token: String) {
140
- // POST to your server, keyed to current user UID
141
- api.registerCallToken(currentUid, "android-fcm", token)
142
- }
143
-
144
- override fun onMessageReceived(message: RemoteMessage) {
145
- if (message.data["type"] != "incoming_call") return
146
- // Hand off to ConnectionService — see V5 server-fcm-voip reference
147
- }
148
- }
149
- ```
150
-
151
- Register in manifest:
152
- ```xml
153
- <service
154
- android:name=".VoipMessagingService"
155
- android:exported="false">
156
- <intent-filter>
157
- <action android:name="com.google.firebase.MESSAGING_EVENT" />
158
- </intent-filter>
159
- </service>
160
- ```
161
-
162
- ---
163
-
164
- ## Step 7 — Hangup teardown
165
-
166
- ```kotlin
167
- fun endCall(sessionId: String) {
168
- CometChatCalls.endSession() // static teardown (there is NO static CometChatCalls.leaveSession() — leaveSession is instance-only on CallSession.getInstance())
169
- CometChat.endCall(sessionId, object : CometChat.CallbackListener<Call>() { /* ... */ })
170
- // ConnectionService disconnect
171
- activeConnection?.setDisconnected(DisconnectCause(DisconnectCause.LOCAL))
172
- activeConnection?.destroy()
173
- }
174
- ```
175
-
176
- ---
177
-
178
- ## Verification checklist
179
-
180
- - [ ] Cloudsmith Maven repo added
181
- - [ ] `calls-sdk-android:5.+` in app/build.gradle
182
- - [ ] Manifest permissions: RECORD_AUDIO, CAMERA, MANAGE_OWN_CALLS, FOREGROUND_SERVICE_MICROPHONE/CAMERA
183
- - [ ] AppConnectionService declared with `foregroundServiceType` + permission
184
- - [ ] Calls init runs AFTER chat init's onSuccess
185
- - [ ] Calls login runs AFTER chat login's onSuccess
186
- - [ ] FCM token registered + POSTed to server
187
- - [ ] Hangup tears down all 3: leaveSession, endCall, ConnectionService disconnect
188
- - [ ] Real-device smoke: app killed → caller dials → recipient phone rings on lock screen
189
- - [ ] Run `cometchat verify --calls` — should pass
190
-
191
- ---
192
-
193
- ## Pointers
194
-
195
- - `cometchat-react-calls/references/add-calls-to-existing-chat.md` — canonical
196
- - `cometchat-android-v5-calls/SKILL.md` — seven hard rules
197
- - `cometchat-android-v5-calls/references/server-fcm-voip.md` — server-side FCM
@@ -1,91 +0,0 @@
1
- ---
2
- name: audio-controls
3
- description: Control audio during calls — mute/unmute microphone, switch audio output device (speaker, earpiece, bluetooth). Use when implementing audio toggle, audio mode switching, or custom mute buttons. Triggers on "mute audio", "unmute", "audio mode", "speaker", "earpiece", "bluetooth audio".
4
- inclusion: manual
5
- ---
6
-
7
- # CometChat Calls SDK v5 — Audio Controls
8
-
9
- ## Overview
10
-
11
- Programmatically control the local microphone (mute/unmute) and audio output device (speaker, earpiece, Bluetooth, headphones) during an active call.
12
-
13
- ## Key Imports
14
-
15
- ```kotlin
16
- import com.cometchat.calls.core.CallSession
17
- import com.cometchat.calls.model.AudioMode
18
- import com.cometchat.calls.listeners.MediaEventsListener
19
- ```
20
-
21
- ## Implementation
22
-
23
- ### Mute / Unmute
24
-
25
- ```kotlin
26
- val callSession = CallSession.getInstance()
27
-
28
- callSession.muteAudio() // mute microphone
29
- callSession.unmuteAudio() // unmute microphone
30
- ```
31
-
32
- ### Switch Audio Output
33
-
34
- ```kotlin
35
- callSession.setAudioMode(AudioMode.SPEAKER) // loudspeaker
36
- callSession.setAudioMode(AudioMode.EARPIECE) // phone earpiece
37
- callSession.setAudioMode(AudioMode.BLUETOOTH) // connected Bluetooth device
38
- callSession.setAudioMode(AudioMode.HEADPHONES) // wired headphones
39
- ```
40
-
41
- ### Listen for Audio Events
42
-
43
- ```kotlin
44
- callSession.addMediaEventsListener(this, object : MediaEventsListener() {
45
- override fun onAudioMuted() {
46
- // Update mute button to "muted" state
47
- }
48
- override fun onAudioUnMuted() {
49
- // Update mute button to "unmuted" state
50
- }
51
- override fun onAudioModeChanged(audioMode: AudioMode) {
52
- when (audioMode) {
53
- AudioMode.SPEAKER -> { /* update icon */ }
54
- AudioMode.EARPIECE -> { /* update icon */ }
55
- AudioMode.BLUETOOTH -> { /* update icon */ }
56
- AudioMode.HEADPHONES -> { /* update icon */ }
57
- }
58
- }
59
- // ... other required overrides
60
- override fun onVideoPaused() {}
61
- override fun onVideoResumed() {}
62
- override fun onRecordingStarted() {}
63
- override fun onRecordingStopped() {}
64
- override fun onCameraFacingChanged(facing: CameraFacing) {}
65
- })
66
- // Screen-share is observed via ParticipantEventListener.onParticipantStartedScreenShare /
67
- // onParticipantStoppedScreenShare — NOT MediaEventsListener.
68
- ```
69
-
70
- ### Initial Audio Settings (Pre-Session)
71
-
72
- ```kotlin
73
- val sessionSettings = CometChatCalls.SessionSettingsBuilder()
74
- .startAudioMuted(true) // join muted
75
- .setAudioMode(AudioMode.SPEAKER) // initial output device
76
- .hideToggleAudioButton(false) // show mute button
77
- .hideAudioModeButton(false) // show audio mode button
78
- .build()
79
- ```
80
-
81
- ## Gotchas
82
-
83
- - `muteAudio()` / `unmuteAudio()` only work during an active session
84
- - Audio mode changes trigger `onAudioModeChanged()` on `MediaEventsListener`
85
- - `AudioMode` enum: `SPEAKER`, `EARPIECE`, `BLUETOOTH`, `HEADPHONES`
86
- - For voice calls, default to `AudioMode.EARPIECE`; for video calls, default to `AudioMode.SPEAKER`
87
- - Bluetooth audio mode only works when a Bluetooth device is connected
88
-
89
- ## Sample App Reference
90
-
91
- - `CallActivity.kt` — Sets `AudioMode.EARPIECE` for voice calls, `AudioMode.SPEAKER` for video calls
@@ -1,168 +0,0 @@
1
- ---
2
- name: background-handling
3
- description: Keep calls alive in background using CometChatOngoingCallService foreground service. Use when handling home button press during calls, ongoing call notifications, or preventing call termination. Triggers on "background handling", "foreground service", "ongoing call", "CometChatOngoingCallService", "keep call alive".
4
- inclusion: manual
5
- ---
6
-
7
- # CometChat Calls SDK v5 — Background Handling
8
-
9
- ## Overview
10
-
11
- `CometChatOngoingCallService` is a foreground service that keeps calls alive when users press HOME or switch apps. Shows an ongoing notification with tap-to-return and hangup actions.
12
-
13
- ## Prerequisites
14
-
15
- - Active call session
16
- - Foreground service permissions in manifest
17
-
18
- ## Key Imports
19
-
20
- ```kotlin
21
- import com.cometchat.calls.services.CometChatOngoingCallService
22
- import com.cometchat.calls.utils.OngoingNotification
23
- import com.cometchat.calls.core.CallSession
24
- import com.cometchat.calls.listeners.SessionStatusListener
25
- import com.cometchat.calls.listeners.ButtonClickListener
26
- ```
27
-
28
- ## Implementation
29
-
30
- ### 1. Manifest Permissions
31
-
32
- ```xml
33
- <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
34
- <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK" />
35
- <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE" />
36
- <uses-permission android:name="android.permission.FOREGROUND_SERVICE_CAMERA" />
37
- <uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION" />
38
- <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
39
- ```
40
-
41
- ### 2. Start/Stop Service
42
-
43
- ```kotlin
44
- callSession.addSessionStatusListener(this, object : SessionStatusListener() {
45
- override fun onSessionJoined() {
46
- CometChatOngoingCallService.launch(this@CallActivity)
47
- }
48
- override fun onSessionLeft() {
49
- CometChatOngoingCallService.abort(this@CallActivity)
50
- finish()
51
- }
52
- override fun onConnectionClosed() {
53
- CometChatOngoingCallService.abort(this@CallActivity)
54
- finish()
55
- }
56
- override fun onSessionTimedOut() {
57
- CometChatOngoingCallService.abort(this@CallActivity)
58
- finish()
59
- }
60
- override fun onConnectionLost() {}
61
- override fun onConnectionRestored() {}
62
- })
63
- ```
64
-
65
- ### 3. Handle Leave Button
66
-
67
- ```kotlin
68
- callSession.addButtonClickListener(this, object : ButtonClickListener() {
69
- override fun onLeaveSessionButtonClicked() {
70
- endCall()
71
- }
72
- })
73
- ```
74
-
75
- ### 4. Handle Remote Call End
76
-
77
- Register a `CometChat.CallListener` to detect when the remote party ends the call, then clean up the foreground service:
78
-
79
- ```kotlin
80
- CometChat.addCallListener(LISTENER_ID, object : CometChat.CallListener() {
81
- override fun onCallEndedMessageReceived(call: Call?) {
82
- val session = CallSession.getInstance()
83
- if (session.isSessionActive) {
84
- session.leaveSession()
85
- }
86
- CometChatOngoingCallService.abort(this@CallActivity)
87
- runOnUiThread { finish() }
88
- }
89
- override fun onIncomingCallReceived(call: Call?) {}
90
- override fun onOutgoingCallAccepted(call: Call?) {}
91
- override fun onOutgoingCallRejected(call: Call?) {}
92
- override fun onIncomingCallCancelled(call: Call?) {}
93
- })
94
- ```
95
-
96
- ### 5. Always Stop in onDestroy
97
-
98
- ```kotlin
99
- override fun onDestroy() {
100
- super.onDestroy()
101
- CometChat.removeCallListener(LISTENER_ID)
102
- CometChatOngoingCallService.abort(this)
103
- }
104
- ```
105
-
106
- ### 6. Custom Notification (Optional)
107
-
108
- ```kotlin
109
- private fun buildCustomNotification(): Notification {
110
- val channelId = "CometChat_Call_Ongoing_Conference" // must use this ID
111
- val intent = Intent(this, CallActivity::class.java).apply {
112
- flags = Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_SINGLE_TOP
113
- }
114
- val pendingIntent = PendingIntent.getActivity(
115
- this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE
116
- )
117
- return NotificationCompat.Builder(this, channelId)
118
- .setSmallIcon(R.drawable.ic_call)
119
- .setContentTitle("Ongoing Call")
120
- .setContentText("Tap to return to your call")
121
- .setPriority(NotificationCompat.PRIORITY_HIGH)
122
- .setContentIntent(pendingIntent)
123
- .setOngoing(true)
124
- .setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
125
- .build()
126
- }
127
-
128
- // Set before launching service
129
- OngoingNotification.buildOngoingConferenceNotification(buildCustomNotification())
130
- CometChatOngoingCallService.launch(this)
131
- ```
132
-
133
- ### 7. VoIP Integration — Additional Cleanup (Optional)
134
-
135
- When using background handling with VoIP calling (ConnectionService + TelecomManager), also disconnect the `CallConnection` and cancel any VoIP notifications on every terminal state:
136
-
137
- ```kotlin
138
- // In each terminal callback (onSessionLeft, onSessionTimedOut, onConnectionClosed, onCallEndedMessageReceived):
139
- CometChatOngoingCallService.abort(this@CallActivity)
140
- CallConnectionHolder.endCall()
141
- CallNotificationManager.cancelNotification(this@CallActivity)
142
- finish()
143
- ```
144
-
145
- See the `sample-app-voip` CallActivity for the full VoIP-integrated pattern.
146
-
147
- ## API Reference
148
-
149
- | Method | Description |
150
- |--------|-------------|
151
- | `CometChatOngoingCallService.launch(context)` | Start foreground service |
152
- | `CometChatOngoingCallService.abort(context)` | Stop foreground service |
153
- | `OngoingNotification.buildOngoingConferenceNotification(notification)` | Set custom notification (call before `launch()`) |
154
-
155
- ## Gotchas
156
-
157
- - The notification channel ID **must** be `"CometChat_Call_Ongoing_Conference"`
158
- - Always call `abort()` in `onDestroy()` to prevent leaked services
159
- - Always remove `CometChat.CallListener` in `onDestroy()` to prevent leaks
160
- - This is for keeping **active** calls alive — for receiving calls when app is killed, use VoIP Calling
161
- - Call `launch()` only after `onSessionJoined()` — not before joining
162
- - Custom notification must be set **before** calling `launch()`
163
- - When using VoIP (ConnectionService), also call `CallConnectionHolder.endCall()` in every terminal state to properly disconnect the Telecom connection
164
-
165
- ## Sample App Reference
166
-
167
- - `sample-app-ringing` — `CallActivity.kt` — basic foreground service pattern with `launch()` in `onSessionJoined()`, `abort()` in `onSessionLeft()` and `onDestroy()`
168
- - `sample-app-voip` — `CallActivity.kt` — full VoIP-integrated pattern with foreground service + CallConnection cleanup + notification cancellation on every terminal state
@@ -1,131 +0,0 @@
1
- # Call layouts on Android V5 (Views)
2
-
3
- Same three layouts (TILE/SIDEBAR/SPOTLIGHT). Android V5 uses Java/Kotlin builders + `MaterialButtonToggleGroup` for the switcher (Material Components for Android).
4
-
5
- **Canonical docs:** https://www.cometchat.com/docs/calls/android/call-layouts
6
- **Read first:** `cometchat-react-calls/references/call-layouts.md` — layout matrix + when to lock.
7
-
8
- ---
9
-
10
- ## SDK API
11
-
12
- ```kotlin
13
- import com.cometchat.calls.core.CometChatCalls
14
- import com.cometchat.calls.listeners.LayoutListener
15
- import com.cometchat.calls.model.SessionType
16
- import com.cometchat.calls.model.LayoutType
17
-
18
- val settings = CometChatCalls.SessionSettingsBuilder()
19
- .setSessionType(SessionType.VIDEO)
20
- .setLayout(LayoutType.TILE) // TILE | SIDEBAR | SPOTLIGHT
21
- .hideChangeLayoutButton(false)
22
- .build()
23
-
24
- // There is no static mid-call setter in v5. Layout is set at join via
25
- // SessionSettingsBuilder.setLayout(...); to change it mid-call, re-join the
26
- // session with a new SessionSettingsBuilder. Layout CHANGES are observed
27
- // via LayoutListener.onCallLayoutChanged(layoutType) — register on the
28
- // CallSession instance returned from joinSession's onSuccess callback.
29
- callSession.addLayoutListener(this, object : LayoutListener() {
30
- override fun onCallLayoutChanged(layoutType: LayoutType) {
31
- activity.runOnUiThread {
32
- // Update segmented button state
33
- }
34
- }
35
- })
36
- ```
37
-
38
- ---
39
-
40
- ## XML — MaterialButtonToggleGroup
41
-
42
- ```xml
43
- <com.google.android.material.button.MaterialButtonToggleGroup
44
- android:id="@+id/layoutToggle"
45
- android:layout_width="wrap_content"
46
- android:layout_height="wrap_content"
47
- app:singleSelection="true"
48
- app:selectionRequired="true"
49
- android:contentDescription="@string/call_layout">
50
-
51
- <com.google.android.material.button.MaterialButton
52
- android:id="@+id/layoutTile"
53
- style="@style/Widget.Material3.Button.OutlinedButton"
54
- android:text="@string/layout_tile" />
55
-
56
- <com.google.android.material.button.MaterialButton
57
- android:id="@+id/layoutSidebar"
58
- style="@style/Widget.Material3.Button.OutlinedButton"
59
- android:text="@string/layout_sidebar" />
60
-
61
- <com.google.android.material.button.MaterialButton
62
- android:id="@+id/layoutSpotlight"
63
- style="@style/Widget.Material3.Button.OutlinedButton"
64
- android:text="@string/layout_spotlight" />
65
- </com.google.android.material.button.MaterialButtonToggleGroup>
66
- ```
67
-
68
- ---
69
-
70
- ## Wire-up in Activity
71
-
72
- ```kotlin
73
- binding.layoutToggle.addOnButtonCheckedListener { _, checkedId, isChecked ->
74
- if (!isChecked) return@addOnButtonCheckedListener
75
-
76
- val layout = when (checkedId) {
77
- R.id.layoutTile -> LayoutType.TILE
78
- R.id.layoutSidebar -> LayoutType.SIDEBAR
79
- R.id.layoutSpotlight -> LayoutType.SPOTLIGHT
80
- else -> return@addOnButtonCheckedListener
81
- }
82
- // v5 has no static mid-call setter — re-join the session with new settings
83
- // to apply the chosen layout.
84
- val settings = CometChatCalls.SessionSettingsBuilder()
85
- .setSessionType(SessionType.VIDEO)
86
- .setLayout(layout)
87
- .build()
88
- // CometChatCalls.joinSession(sessionId, callToken, settings, ...) — see join-session.md
89
- }
90
-
91
- // Sync from kit's switcher — observed via LayoutListener.onCallLayoutChanged
92
- override fun onCallLayoutChanged(layoutType: LayoutType) {
93
- runOnUiThread {
94
- val id = when (layoutType) {
95
- LayoutType.TILE -> R.id.layoutTile
96
- LayoutType.SIDEBAR -> R.id.layoutSidebar
97
- LayoutType.SPOTLIGHT -> R.id.layoutSpotlight
98
- else -> return@runOnUiThread
99
- }
100
- binding.layoutToggle.check(id)
101
- }
102
- }
103
- ```
104
-
105
- ---
106
-
107
- ## Anti-patterns
108
-
109
- Web sister rules apply, plus Android-specific:
110
-
111
- 1. **`Spinner` instead of `MaterialButtonToggleGroup`.** Spinner hides options; toggle group is the radio-group native pattern in Material.
112
- 2. **`onCheckedChange` without `isChecked` guard.** Fires twice (once for unchecked, once for checked) — spurious `setLayout` calls.
113
- 3. **Forgetting `runOnUiThread` in the listener.** Crash on view updates from background thread.
114
-
115
- ---
116
-
117
- ## Verification checklist
118
-
119
- - [ ] Initial layout via `setLayout(LayoutType.X)` on `SessionSettingsBuilder`
120
- - [ ] `MaterialButtonToggleGroup` with `singleSelection="true"`
121
- - [ ] `addOnButtonCheckedListener` guards on `isChecked`
122
- - [ ] `onCallLayoutChanged` updates toggle group on UI thread
123
- - [ ] Real-device smoke: switcher cycles all 3, kit's switcher syncs custom UI
124
-
125
- ---
126
-
127
- ## Pointers
128
-
129
- - `cometchat-react-calls/references/call-layouts.md` — sister
130
- - `cometchat-android-v5-calls` SKILL.md
131
- - Canonical docs: https://www.cometchat.com/docs/calls/android/call-layouts
@@ -1,113 +0,0 @@
1
- ---
2
- name: call-logs
3
- description: Fetch call history using CallLogRequest with pagination and filters. Use when displaying call logs, filtering by type/status/recording, or accessing recordings. Triggers on "call logs", "call history", "CallLogRequest", "fetch recordings".
4
- inclusion: manual
5
- ---
6
-
7
- # CometChat Calls SDK v5 — Call Logs
8
-
9
- ## Overview
10
-
11
- Retrieve call history using `CallLogRequest` with pagination, filtering by type, status, direction, recordings, and specific users/groups.
12
-
13
- ## Key Imports
14
-
15
- ```kotlin
16
- import com.cometchat.calls.core.CometChatCalls
17
- import com.cometchat.calls.model.CallLog
18
- import com.cometchat.calls.model.CallLogRequest
19
- import com.cometchat.calls.model.Recording
20
- import com.cometchat.calls.exceptions.CometChatException
21
- ```
22
-
23
- ## Implementation
24
-
25
- ### Basic Fetch
26
-
27
- ```kotlin
28
- val callLogRequest = CallLogRequest.CallLogRequestBuilder()
29
- .setLimit(30)
30
- .build()
31
-
32
- callLogRequest.fetchNext(object : CometChatCalls.CallbackListener<List<CallLog>>() {
33
- override fun onSuccess(callLogs: List<CallLog>) {
34
- for (log in callLogs) {
35
- Log.d(TAG, "Session: ${log.sessionID}, Duration: ${log.totalDuration}, Status: ${log.status}")
36
- }
37
- }
38
- override fun onError(e: CometChatException) {
39
- Log.e(TAG, "Error: ${e.message}")
40
- }
41
- })
42
- ```
43
-
44
- ### Filtered Queries
45
-
46
- ```kotlin
47
- // Video calls only
48
- CallLogRequest.CallLogRequestBuilder().setSessionType("video").setLimit(20).build()
49
-
50
- // Calls with recordings
51
- CallLogRequest.CallLogRequestBuilder().setHasRecording(true).build()
52
-
53
- // Missed incoming calls
54
- CallLogRequest.CallLogRequestBuilder().setCallStatus("missed").setCallDirection("incoming").build()
55
-
56
- // Calls with a specific user
57
- CallLogRequest.CallLogRequestBuilder().setUid("user_id").build()
58
-
59
- // Meeting calls only
60
- CallLogRequest.CallLogRequestBuilder().setCallCategory("meet").build()
61
- ```
62
-
63
- ### Pagination
64
-
65
- ```kotlin
66
- // Forward pagination
67
- callLogRequest.fetchNext(listener)
68
-
69
- // Backward pagination
70
- callLogRequest.fetchPrevious(listener)
71
- ```
72
-
73
- ### Access Recordings
74
-
75
- ```kotlin
76
- for (callLog in callLogs) {
77
- if (callLog.isHasRecording) {
78
- callLog.recordings?.forEach { recording ->
79
- Log.d(TAG, "URL: ${recording.recordingURL}")
80
- Log.d(TAG, "Duration: ${recording.duration} seconds")
81
- }
82
- }
83
- }
84
- ```
85
-
86
- ### CallLog Properties
87
-
88
- | Property | Type | Description |
89
- |----------|------|-------------|
90
- | `sessionID` | String | Session identifier |
91
- | `type` | String | `video` or `audio` |
92
- | `status` | String | `ended`, `missed`, `rejected`, `cancelled`, etc. |
93
- | `callCategory` | String | `call` or `meet` |
94
- | `totalDuration` | String | Human-readable duration |
95
- | `totalParticipants` | int | Participant count |
96
- | `hasRecording` | boolean | Whether recorded |
97
- | `recordings` | List\<Recording\> | Recording objects |
98
- | `initiator` | CallEntity | Who started the call |
99
- | `receiver` | CallEntity | Who received the call |
100
-
101
- ## Gotchas
102
-
103
- - `CallLogRequest` is from the **Calls SDK**, not the Chat SDK
104
- - `setSessionType()` takes lowercase strings: `"video"` or `"audio"`
105
- - `setCallDirection()` takes `"incoming"` or `"outgoing"`
106
- - `setCallCategory()` takes `"call"` or `"meet"`
107
- - Create a new `CallLogRequest` to reset pagination
108
- - The sample app uses Chat SDK's `MessagesRequest` for call logs — the Calls SDK's `CallLogRequest` provides richer data
109
-
110
- ## Sample App Reference
111
-
112
- - `Repository.kt` — `fetchCallLogs()` (uses Chat SDK approach)
113
- - For Calls SDK approach, use `CallLogRequest` as shown above