@azure/communication-call-automation 1.5.0-beta.2 → 1.6.0-alpha.20250711.2

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 (415) hide show
  1. package/README.md +51 -1
  2. package/dist/browser/callAutomationClient.d.ts +9 -2
  3. package/dist/browser/callAutomationClient.d.ts.map +1 -1
  4. package/dist/browser/callAutomationClient.js +115 -10
  5. package/dist/browser/callAutomationClient.js.map +1 -1
  6. package/dist/browser/callAutomationEventParser.d.ts.map +1 -1
  7. package/dist/browser/callAutomationEventParser.js +47 -1
  8. package/dist/browser/callAutomationEventParser.js.map +1 -1
  9. package/dist/browser/callConnection.d.ts +16 -6
  10. package/dist/browser/callConnection.d.ts.map +1 -1
  11. package/dist/browser/callConnection.js +166 -15
  12. package/dist/browser/callConnection.js.map +1 -1
  13. package/dist/browser/callMedia.d.ts +20 -10
  14. package/dist/browser/callMedia.d.ts.map +1 -1
  15. package/dist/browser/callMedia.js +190 -22
  16. package/dist/browser/callMedia.js.map +1 -1
  17. package/dist/browser/callRecording.d.ts +8 -2
  18. package/dist/browser/callRecording.d.ts.map +1 -1
  19. package/dist/browser/callRecording.js +20 -5
  20. package/dist/browser/callRecording.js.map +1 -1
  21. package/dist/browser/eventprocessor/callAutomationEventProcessor.d.ts +39 -0
  22. package/dist/browser/eventprocessor/callAutomationEventProcessor.d.ts.map +1 -0
  23. package/dist/browser/eventprocessor/callAutomationEventProcessor.js +137 -0
  24. package/dist/browser/eventprocessor/callAutomationEventProcessor.js.map +1 -0
  25. package/dist/browser/eventprocessor/eventResponses.d.ts +134 -0
  26. package/dist/browser/eventprocessor/eventResponses.d.ts.map +1 -0
  27. package/dist/browser/eventprocessor/eventResponses.js +4 -0
  28. package/dist/browser/eventprocessor/eventResponses.js.map +1 -0
  29. package/dist/browser/generated/src/callAutomationApiClient.d.ts +2 -1
  30. package/dist/browser/generated/src/callAutomationApiClient.d.ts.map +1 -1
  31. package/dist/browser/generated/src/callAutomationApiClient.js +4 -3
  32. package/dist/browser/generated/src/callAutomationApiClient.js.map +1 -1
  33. package/dist/browser/generated/src/models/index.d.ts +971 -206
  34. package/dist/browser/generated/src/models/index.d.ts.map +1 -1
  35. package/dist/browser/generated/src/models/index.js +124 -46
  36. package/dist/browser/generated/src/models/index.js.map +1 -1
  37. package/dist/browser/generated/src/models/mappers.d.ts +59 -11
  38. package/dist/browser/generated/src/models/mappers.d.ts.map +1 -1
  39. package/dist/browser/generated/src/models/mappers.js +2122 -466
  40. package/dist/browser/generated/src/models/mappers.js.map +1 -1
  41. package/dist/browser/generated/src/models/parameters.d.ts +8 -1
  42. package/dist/browser/generated/src/models/parameters.d.ts.map +1 -1
  43. package/dist/browser/generated/src/models/parameters.js +45 -6
  44. package/dist/browser/generated/src/models/parameters.js.map +1 -1
  45. package/dist/browser/generated/src/operations/callConnection.d.ts +16 -2
  46. package/dist/browser/generated/src/operations/callConnection.d.ts.map +1 -1
  47. package/dist/browser/generated/src/operations/callConnection.js +65 -1
  48. package/dist/browser/generated/src/operations/callConnection.js.map +1 -1
  49. package/dist/browser/generated/src/operations/callDialog.d.ts +35 -0
  50. package/dist/browser/generated/src/operations/callDialog.d.ts.map +1 -0
  51. package/dist/browser/generated/src/operations/callDialog.js +111 -0
  52. package/dist/browser/generated/src/operations/callDialog.js.map +1 -0
  53. package/dist/browser/generated/src/operations/callMedia.d.ts +15 -8
  54. package/dist/browser/generated/src/operations/callMedia.d.ts.map +1 -1
  55. package/dist/browser/generated/src/operations/callMedia.js +50 -25
  56. package/dist/browser/generated/src/operations/callMedia.js.map +1 -1
  57. package/dist/browser/generated/src/operations/callRecording.d.ts +7 -1
  58. package/dist/browser/generated/src/operations/callRecording.d.ts.map +1 -1
  59. package/dist/browser/generated/src/operations/callRecording.js +24 -0
  60. package/dist/browser/generated/src/operations/callRecording.js.map +1 -1
  61. package/dist/browser/generated/src/operations/index.d.ts +1 -0
  62. package/dist/browser/generated/src/operations/index.d.ts.map +1 -1
  63. package/dist/browser/generated/src/operations/index.js +1 -0
  64. package/dist/browser/generated/src/operations/index.js.map +1 -1
  65. package/dist/browser/generated/src/operationsInterfaces/callConnection.d.ts +16 -2
  66. package/dist/browser/generated/src/operationsInterfaces/callConnection.d.ts.map +1 -1
  67. package/dist/browser/generated/src/operationsInterfaces/callConnection.js.map +1 -1
  68. package/dist/browser/generated/src/operationsInterfaces/callDialog.d.ts +27 -0
  69. package/dist/browser/generated/src/operationsInterfaces/callDialog.d.ts.map +1 -0
  70. package/dist/browser/generated/src/operationsInterfaces/callDialog.js +9 -0
  71. package/dist/browser/generated/src/operationsInterfaces/callDialog.js.map +1 -0
  72. package/dist/browser/generated/src/operationsInterfaces/callMedia.d.ts +15 -8
  73. package/dist/browser/generated/src/operationsInterfaces/callMedia.d.ts.map +1 -1
  74. package/dist/browser/generated/src/operationsInterfaces/callMedia.js.map +1 -1
  75. package/dist/browser/generated/src/operationsInterfaces/callRecording.d.ts +7 -1
  76. package/dist/browser/generated/src/operationsInterfaces/callRecording.d.ts.map +1 -1
  77. package/dist/browser/generated/src/operationsInterfaces/callRecording.js.map +1 -1
  78. package/dist/browser/generated/src/operationsInterfaces/index.d.ts +1 -0
  79. package/dist/browser/generated/src/operationsInterfaces/index.d.ts.map +1 -1
  80. package/dist/browser/generated/src/operationsInterfaces/index.js +1 -0
  81. package/dist/browser/generated/src/operationsInterfaces/index.js.map +1 -1
  82. package/dist/browser/index.d.ts +2 -0
  83. package/dist/browser/index.d.ts.map +1 -1
  84. package/dist/browser/index.js +2 -0
  85. package/dist/browser/index.js.map +1 -1
  86. package/dist/browser/models/constants.js +1 -1
  87. package/dist/browser/models/constants.js.map +1 -1
  88. package/dist/browser/models/events.d.ts +188 -62
  89. package/dist/browser/models/events.d.ts.map +1 -1
  90. package/dist/browser/models/events.js.map +1 -1
  91. package/dist/browser/models/models.d.ts +85 -7
  92. package/dist/browser/models/models.d.ts.map +1 -1
  93. package/dist/browser/models/models.js +3 -1
  94. package/dist/browser/models/models.js.map +1 -1
  95. package/dist/browser/models/options.d.ts +49 -2
  96. package/dist/browser/models/options.d.ts.map +1 -1
  97. package/dist/browser/models/options.js.map +1 -1
  98. package/dist/browser/models/responses.d.ts +82 -10
  99. package/dist/browser/models/responses.d.ts.map +1 -1
  100. package/dist/browser/models/responses.js.map +1 -1
  101. package/dist/browser/utli/converters.d.ts +26 -2
  102. package/dist/browser/utli/converters.d.ts.map +1 -1
  103. package/dist/browser/utli/converters.js +114 -19
  104. package/dist/browser/utli/converters.js.map +1 -1
  105. package/dist/commonjs/callAutomationClient.d.ts +9 -2
  106. package/dist/commonjs/callAutomationClient.d.ts.map +1 -1
  107. package/dist/commonjs/callAutomationClient.js +116 -11
  108. package/dist/commonjs/callAutomationClient.js.map +1 -1
  109. package/dist/commonjs/callAutomationEventParser.d.ts.map +1 -1
  110. package/dist/commonjs/callAutomationEventParser.js +46 -0
  111. package/dist/commonjs/callAutomationEventParser.js.map +1 -1
  112. package/dist/commonjs/callConnection.d.ts +16 -6
  113. package/dist/commonjs/callConnection.d.ts.map +1 -1
  114. package/dist/commonjs/callConnection.js +167 -16
  115. package/dist/commonjs/callConnection.js.map +1 -1
  116. package/dist/commonjs/callMedia.d.ts +20 -10
  117. package/dist/commonjs/callMedia.d.ts.map +1 -1
  118. package/dist/commonjs/callMedia.js +209 -41
  119. package/dist/commonjs/callMedia.js.map +1 -1
  120. package/dist/commonjs/callRecording.d.ts +8 -2
  121. package/dist/commonjs/callRecording.d.ts.map +1 -1
  122. package/dist/commonjs/callRecording.js +20 -5
  123. package/dist/commonjs/callRecording.js.map +1 -1
  124. package/dist/commonjs/eventprocessor/callAutomationEventProcessor.d.ts +39 -0
  125. package/dist/commonjs/eventprocessor/callAutomationEventProcessor.d.ts.map +1 -0
  126. package/dist/commonjs/eventprocessor/callAutomationEventProcessor.js +141 -0
  127. package/dist/commonjs/eventprocessor/callAutomationEventProcessor.js.map +1 -0
  128. package/dist/commonjs/eventprocessor/eventResponses.d.ts +134 -0
  129. package/dist/commonjs/eventprocessor/eventResponses.d.ts.map +1 -0
  130. package/dist/commonjs/eventprocessor/eventResponses.js +5 -0
  131. package/dist/commonjs/eventprocessor/eventResponses.js.map +1 -0
  132. package/dist/commonjs/generated/src/callAutomationApiClient.d.ts +2 -1
  133. package/dist/commonjs/generated/src/callAutomationApiClient.d.ts.map +1 -1
  134. package/dist/commonjs/generated/src/callAutomationApiClient.js +3 -2
  135. package/dist/commonjs/generated/src/callAutomationApiClient.js.map +1 -1
  136. package/dist/commonjs/generated/src/models/index.d.ts +971 -206
  137. package/dist/commonjs/generated/src/models/index.d.ts.map +1 -1
  138. package/dist/commonjs/generated/src/models/index.js +125 -47
  139. package/dist/commonjs/generated/src/models/index.js.map +1 -1
  140. package/dist/commonjs/generated/src/models/mappers.d.ts +59 -11
  141. package/dist/commonjs/generated/src/models/mappers.d.ts.map +1 -1
  142. package/dist/commonjs/generated/src/models/mappers.js +2125 -469
  143. package/dist/commonjs/generated/src/models/mappers.js.map +1 -1
  144. package/dist/commonjs/generated/src/models/parameters.d.ts +8 -1
  145. package/dist/commonjs/generated/src/models/parameters.d.ts.map +1 -1
  146. package/dist/commonjs/generated/src/models/parameters.js +45 -6
  147. package/dist/commonjs/generated/src/models/parameters.js.map +1 -1
  148. package/dist/commonjs/generated/src/operations/callConnection.d.ts +16 -2
  149. package/dist/commonjs/generated/src/operations/callConnection.d.ts.map +1 -1
  150. package/dist/commonjs/generated/src/operations/callConnection.js +65 -1
  151. package/dist/commonjs/generated/src/operations/callConnection.js.map +1 -1
  152. package/dist/commonjs/generated/src/operations/callDialog.d.ts +35 -0
  153. package/dist/commonjs/generated/src/operations/callDialog.d.ts.map +1 -0
  154. package/dist/commonjs/generated/src/operations/callDialog.js +116 -0
  155. package/dist/commonjs/generated/src/operations/callDialog.js.map +1 -0
  156. package/dist/commonjs/generated/src/operations/callMedia.d.ts +15 -8
  157. package/dist/commonjs/generated/src/operations/callMedia.d.ts.map +1 -1
  158. package/dist/commonjs/generated/src/operations/callMedia.js +50 -25
  159. package/dist/commonjs/generated/src/operations/callMedia.js.map +1 -1
  160. package/dist/commonjs/generated/src/operations/callRecording.d.ts +7 -1
  161. package/dist/commonjs/generated/src/operations/callRecording.d.ts.map +1 -1
  162. package/dist/commonjs/generated/src/operations/callRecording.js +24 -0
  163. package/dist/commonjs/generated/src/operations/callRecording.js.map +1 -1
  164. package/dist/commonjs/generated/src/operations/index.d.ts +1 -0
  165. package/dist/commonjs/generated/src/operations/index.d.ts.map +1 -1
  166. package/dist/commonjs/generated/src/operations/index.js +1 -0
  167. package/dist/commonjs/generated/src/operations/index.js.map +1 -1
  168. package/dist/commonjs/generated/src/operationsInterfaces/callConnection.d.ts +16 -2
  169. package/dist/commonjs/generated/src/operationsInterfaces/callConnection.d.ts.map +1 -1
  170. package/dist/commonjs/generated/src/operationsInterfaces/callConnection.js.map +1 -1
  171. package/dist/commonjs/generated/src/operationsInterfaces/callDialog.d.ts +27 -0
  172. package/dist/commonjs/generated/src/operationsInterfaces/callDialog.d.ts.map +1 -0
  173. package/dist/commonjs/generated/src/operationsInterfaces/callDialog.js +10 -0
  174. package/dist/commonjs/generated/src/operationsInterfaces/callDialog.js.map +1 -0
  175. package/dist/commonjs/generated/src/operationsInterfaces/callMedia.d.ts +15 -8
  176. package/dist/commonjs/generated/src/operationsInterfaces/callMedia.d.ts.map +1 -1
  177. package/dist/commonjs/generated/src/operationsInterfaces/callMedia.js.map +1 -1
  178. package/dist/commonjs/generated/src/operationsInterfaces/callRecording.d.ts +7 -1
  179. package/dist/commonjs/generated/src/operationsInterfaces/callRecording.d.ts.map +1 -1
  180. package/dist/commonjs/generated/src/operationsInterfaces/callRecording.js.map +1 -1
  181. package/dist/commonjs/generated/src/operationsInterfaces/index.d.ts +1 -0
  182. package/dist/commonjs/generated/src/operationsInterfaces/index.d.ts.map +1 -1
  183. package/dist/commonjs/generated/src/operationsInterfaces/index.js +1 -0
  184. package/dist/commonjs/generated/src/operationsInterfaces/index.js.map +1 -1
  185. package/dist/commonjs/index.d.ts +2 -0
  186. package/dist/commonjs/index.d.ts.map +1 -1
  187. package/dist/commonjs/index.js +2 -0
  188. package/dist/commonjs/index.js.map +1 -1
  189. package/dist/commonjs/models/constants.js +1 -1
  190. package/dist/commonjs/models/constants.js.map +1 -1
  191. package/dist/commonjs/models/events.d.ts +188 -62
  192. package/dist/commonjs/models/events.d.ts.map +1 -1
  193. package/dist/commonjs/models/events.js.map +1 -1
  194. package/dist/commonjs/models/models.d.ts +85 -7
  195. package/dist/commonjs/models/models.d.ts.map +1 -1
  196. package/dist/commonjs/models/models.js +11 -6
  197. package/dist/commonjs/models/models.js.map +1 -1
  198. package/dist/commonjs/models/options.d.ts +49 -2
  199. package/dist/commonjs/models/options.d.ts.map +1 -1
  200. package/dist/commonjs/models/options.js.map +1 -1
  201. package/dist/commonjs/models/responses.d.ts +82 -10
  202. package/dist/commonjs/models/responses.d.ts.map +1 -1
  203. package/dist/commonjs/models/responses.js.map +1 -1
  204. package/dist/commonjs/tsdoc-metadata.json +1 -1
  205. package/dist/commonjs/utli/converters.d.ts +26 -2
  206. package/dist/commonjs/utli/converters.d.ts.map +1 -1
  207. package/dist/commonjs/utli/converters.js +119 -18
  208. package/dist/commonjs/utli/converters.js.map +1 -1
  209. package/dist/esm/callAutomationClient.d.ts +9 -2
  210. package/dist/esm/callAutomationClient.d.ts.map +1 -1
  211. package/dist/esm/callAutomationClient.js +115 -10
  212. package/dist/esm/callAutomationClient.js.map +1 -1
  213. package/dist/esm/callAutomationEventParser.d.ts.map +1 -1
  214. package/dist/esm/callAutomationEventParser.js +47 -1
  215. package/dist/esm/callAutomationEventParser.js.map +1 -1
  216. package/dist/esm/callConnection.d.ts +16 -6
  217. package/dist/esm/callConnection.d.ts.map +1 -1
  218. package/dist/esm/callConnection.js +166 -15
  219. package/dist/esm/callConnection.js.map +1 -1
  220. package/dist/esm/callMedia.d.ts +20 -10
  221. package/dist/esm/callMedia.d.ts.map +1 -1
  222. package/dist/esm/callMedia.js +190 -22
  223. package/dist/esm/callMedia.js.map +1 -1
  224. package/dist/esm/callRecording.d.ts +8 -2
  225. package/dist/esm/callRecording.d.ts.map +1 -1
  226. package/dist/esm/callRecording.js +20 -5
  227. package/dist/esm/callRecording.js.map +1 -1
  228. package/dist/esm/eventprocessor/callAutomationEventProcessor.d.ts +39 -0
  229. package/dist/esm/eventprocessor/callAutomationEventProcessor.d.ts.map +1 -0
  230. package/dist/esm/eventprocessor/callAutomationEventProcessor.js +137 -0
  231. package/dist/esm/eventprocessor/callAutomationEventProcessor.js.map +1 -0
  232. package/dist/esm/eventprocessor/eventResponses.d.ts +134 -0
  233. package/dist/esm/eventprocessor/eventResponses.d.ts.map +1 -0
  234. package/dist/esm/eventprocessor/eventResponses.js +4 -0
  235. package/dist/esm/eventprocessor/eventResponses.js.map +1 -0
  236. package/dist/esm/generated/src/callAutomationApiClient.d.ts +2 -1
  237. package/dist/esm/generated/src/callAutomationApiClient.d.ts.map +1 -1
  238. package/dist/esm/generated/src/callAutomationApiClient.js +4 -3
  239. package/dist/esm/generated/src/callAutomationApiClient.js.map +1 -1
  240. package/dist/esm/generated/src/models/index.d.ts +971 -206
  241. package/dist/esm/generated/src/models/index.d.ts.map +1 -1
  242. package/dist/esm/generated/src/models/index.js +124 -46
  243. package/dist/esm/generated/src/models/index.js.map +1 -1
  244. package/dist/esm/generated/src/models/mappers.d.ts +59 -11
  245. package/dist/esm/generated/src/models/mappers.d.ts.map +1 -1
  246. package/dist/esm/generated/src/models/mappers.js +2122 -466
  247. package/dist/esm/generated/src/models/mappers.js.map +1 -1
  248. package/dist/esm/generated/src/models/parameters.d.ts +8 -1
  249. package/dist/esm/generated/src/models/parameters.d.ts.map +1 -1
  250. package/dist/esm/generated/src/models/parameters.js +45 -6
  251. package/dist/esm/generated/src/models/parameters.js.map +1 -1
  252. package/dist/esm/generated/src/operations/callConnection.d.ts +16 -2
  253. package/dist/esm/generated/src/operations/callConnection.d.ts.map +1 -1
  254. package/dist/esm/generated/src/operations/callConnection.js +65 -1
  255. package/dist/esm/generated/src/operations/callConnection.js.map +1 -1
  256. package/dist/esm/generated/src/operations/callDialog.d.ts +35 -0
  257. package/dist/esm/generated/src/operations/callDialog.d.ts.map +1 -0
  258. package/dist/esm/generated/src/operations/callDialog.js +111 -0
  259. package/dist/esm/generated/src/operations/callDialog.js.map +1 -0
  260. package/dist/esm/generated/src/operations/callMedia.d.ts +15 -8
  261. package/dist/esm/generated/src/operations/callMedia.d.ts.map +1 -1
  262. package/dist/esm/generated/src/operations/callMedia.js +50 -25
  263. package/dist/esm/generated/src/operations/callMedia.js.map +1 -1
  264. package/dist/esm/generated/src/operations/callRecording.d.ts +7 -1
  265. package/dist/esm/generated/src/operations/callRecording.d.ts.map +1 -1
  266. package/dist/esm/generated/src/operations/callRecording.js +24 -0
  267. package/dist/esm/generated/src/operations/callRecording.js.map +1 -1
  268. package/dist/esm/generated/src/operations/index.d.ts +1 -0
  269. package/dist/esm/generated/src/operations/index.d.ts.map +1 -1
  270. package/dist/esm/generated/src/operations/index.js +1 -0
  271. package/dist/esm/generated/src/operations/index.js.map +1 -1
  272. package/dist/esm/generated/src/operationsInterfaces/callConnection.d.ts +16 -2
  273. package/dist/esm/generated/src/operationsInterfaces/callConnection.d.ts.map +1 -1
  274. package/dist/esm/generated/src/operationsInterfaces/callConnection.js.map +1 -1
  275. package/dist/esm/generated/src/operationsInterfaces/callDialog.d.ts +27 -0
  276. package/dist/esm/generated/src/operationsInterfaces/callDialog.d.ts.map +1 -0
  277. package/dist/esm/generated/src/operationsInterfaces/callDialog.js +9 -0
  278. package/dist/esm/generated/src/operationsInterfaces/callDialog.js.map +1 -0
  279. package/dist/esm/generated/src/operationsInterfaces/callMedia.d.ts +15 -8
  280. package/dist/esm/generated/src/operationsInterfaces/callMedia.d.ts.map +1 -1
  281. package/dist/esm/generated/src/operationsInterfaces/callMedia.js.map +1 -1
  282. package/dist/esm/generated/src/operationsInterfaces/callRecording.d.ts +7 -1
  283. package/dist/esm/generated/src/operationsInterfaces/callRecording.d.ts.map +1 -1
  284. package/dist/esm/generated/src/operationsInterfaces/callRecording.js.map +1 -1
  285. package/dist/esm/generated/src/operationsInterfaces/index.d.ts +1 -0
  286. package/dist/esm/generated/src/operationsInterfaces/index.d.ts.map +1 -1
  287. package/dist/esm/generated/src/operationsInterfaces/index.js +1 -0
  288. package/dist/esm/generated/src/operationsInterfaces/index.js.map +1 -1
  289. package/dist/esm/index.d.ts +2 -0
  290. package/dist/esm/index.d.ts.map +1 -1
  291. package/dist/esm/index.js +2 -0
  292. package/dist/esm/index.js.map +1 -1
  293. package/dist/esm/models/constants.js +1 -1
  294. package/dist/esm/models/constants.js.map +1 -1
  295. package/dist/esm/models/events.d.ts +188 -62
  296. package/dist/esm/models/events.d.ts.map +1 -1
  297. package/dist/esm/models/events.js.map +1 -1
  298. package/dist/esm/models/models.d.ts +85 -7
  299. package/dist/esm/models/models.d.ts.map +1 -1
  300. package/dist/esm/models/models.js +3 -1
  301. package/dist/esm/models/models.js.map +1 -1
  302. package/dist/esm/models/options.d.ts +49 -2
  303. package/dist/esm/models/options.d.ts.map +1 -1
  304. package/dist/esm/models/options.js.map +1 -1
  305. package/dist/esm/models/responses.d.ts +82 -10
  306. package/dist/esm/models/responses.d.ts.map +1 -1
  307. package/dist/esm/models/responses.js.map +1 -1
  308. package/dist/esm/utli/converters.d.ts +26 -2
  309. package/dist/esm/utli/converters.d.ts.map +1 -1
  310. package/dist/esm/utli/converters.js +114 -19
  311. package/dist/esm/utli/converters.js.map +1 -1
  312. package/dist/react-native/callAutomationClient.d.ts +9 -2
  313. package/dist/react-native/callAutomationClient.d.ts.map +1 -1
  314. package/dist/react-native/callAutomationClient.js +115 -10
  315. package/dist/react-native/callAutomationClient.js.map +1 -1
  316. package/dist/react-native/callAutomationEventParser.d.ts.map +1 -1
  317. package/dist/react-native/callAutomationEventParser.js +47 -1
  318. package/dist/react-native/callAutomationEventParser.js.map +1 -1
  319. package/dist/react-native/callConnection.d.ts +16 -6
  320. package/dist/react-native/callConnection.d.ts.map +1 -1
  321. package/dist/react-native/callConnection.js +166 -15
  322. package/dist/react-native/callConnection.js.map +1 -1
  323. package/dist/react-native/callMedia.d.ts +20 -10
  324. package/dist/react-native/callMedia.d.ts.map +1 -1
  325. package/dist/react-native/callMedia.js +190 -22
  326. package/dist/react-native/callMedia.js.map +1 -1
  327. package/dist/react-native/callRecording.d.ts +8 -2
  328. package/dist/react-native/callRecording.d.ts.map +1 -1
  329. package/dist/react-native/callRecording.js +20 -5
  330. package/dist/react-native/callRecording.js.map +1 -1
  331. package/dist/react-native/eventprocessor/callAutomationEventProcessor.d.ts +39 -0
  332. package/dist/react-native/eventprocessor/callAutomationEventProcessor.d.ts.map +1 -0
  333. package/dist/react-native/eventprocessor/callAutomationEventProcessor.js +137 -0
  334. package/dist/react-native/eventprocessor/callAutomationEventProcessor.js.map +1 -0
  335. package/dist/react-native/eventprocessor/eventResponses.d.ts +134 -0
  336. package/dist/react-native/eventprocessor/eventResponses.d.ts.map +1 -0
  337. package/dist/react-native/eventprocessor/eventResponses.js +4 -0
  338. package/dist/react-native/eventprocessor/eventResponses.js.map +1 -0
  339. package/dist/react-native/generated/src/callAutomationApiClient.d.ts +2 -1
  340. package/dist/react-native/generated/src/callAutomationApiClient.d.ts.map +1 -1
  341. package/dist/react-native/generated/src/callAutomationApiClient.js +4 -3
  342. package/dist/react-native/generated/src/callAutomationApiClient.js.map +1 -1
  343. package/dist/react-native/generated/src/models/index.d.ts +971 -206
  344. package/dist/react-native/generated/src/models/index.d.ts.map +1 -1
  345. package/dist/react-native/generated/src/models/index.js +124 -46
  346. package/dist/react-native/generated/src/models/index.js.map +1 -1
  347. package/dist/react-native/generated/src/models/mappers.d.ts +59 -11
  348. package/dist/react-native/generated/src/models/mappers.d.ts.map +1 -1
  349. package/dist/react-native/generated/src/models/mappers.js +2122 -466
  350. package/dist/react-native/generated/src/models/mappers.js.map +1 -1
  351. package/dist/react-native/generated/src/models/parameters.d.ts +8 -1
  352. package/dist/react-native/generated/src/models/parameters.d.ts.map +1 -1
  353. package/dist/react-native/generated/src/models/parameters.js +45 -6
  354. package/dist/react-native/generated/src/models/parameters.js.map +1 -1
  355. package/dist/react-native/generated/src/operations/callConnection.d.ts +16 -2
  356. package/dist/react-native/generated/src/operations/callConnection.d.ts.map +1 -1
  357. package/dist/react-native/generated/src/operations/callConnection.js +65 -1
  358. package/dist/react-native/generated/src/operations/callConnection.js.map +1 -1
  359. package/dist/react-native/generated/src/operations/callDialog.d.ts +35 -0
  360. package/dist/react-native/generated/src/operations/callDialog.d.ts.map +1 -0
  361. package/dist/react-native/generated/src/operations/callDialog.js +111 -0
  362. package/dist/react-native/generated/src/operations/callDialog.js.map +1 -0
  363. package/dist/react-native/generated/src/operations/callMedia.d.ts +15 -8
  364. package/dist/react-native/generated/src/operations/callMedia.d.ts.map +1 -1
  365. package/dist/react-native/generated/src/operations/callMedia.js +50 -25
  366. package/dist/react-native/generated/src/operations/callMedia.js.map +1 -1
  367. package/dist/react-native/generated/src/operations/callRecording.d.ts +7 -1
  368. package/dist/react-native/generated/src/operations/callRecording.d.ts.map +1 -1
  369. package/dist/react-native/generated/src/operations/callRecording.js +24 -0
  370. package/dist/react-native/generated/src/operations/callRecording.js.map +1 -1
  371. package/dist/react-native/generated/src/operations/index.d.ts +1 -0
  372. package/dist/react-native/generated/src/operations/index.d.ts.map +1 -1
  373. package/dist/react-native/generated/src/operations/index.js +1 -0
  374. package/dist/react-native/generated/src/operations/index.js.map +1 -1
  375. package/dist/react-native/generated/src/operationsInterfaces/callConnection.d.ts +16 -2
  376. package/dist/react-native/generated/src/operationsInterfaces/callConnection.d.ts.map +1 -1
  377. package/dist/react-native/generated/src/operationsInterfaces/callConnection.js.map +1 -1
  378. package/dist/react-native/generated/src/operationsInterfaces/callDialog.d.ts +27 -0
  379. package/dist/react-native/generated/src/operationsInterfaces/callDialog.d.ts.map +1 -0
  380. package/dist/react-native/generated/src/operationsInterfaces/callDialog.js +9 -0
  381. package/dist/react-native/generated/src/operationsInterfaces/callDialog.js.map +1 -0
  382. package/dist/react-native/generated/src/operationsInterfaces/callMedia.d.ts +15 -8
  383. package/dist/react-native/generated/src/operationsInterfaces/callMedia.d.ts.map +1 -1
  384. package/dist/react-native/generated/src/operationsInterfaces/callMedia.js.map +1 -1
  385. package/dist/react-native/generated/src/operationsInterfaces/callRecording.d.ts +7 -1
  386. package/dist/react-native/generated/src/operationsInterfaces/callRecording.d.ts.map +1 -1
  387. package/dist/react-native/generated/src/operationsInterfaces/callRecording.js.map +1 -1
  388. package/dist/react-native/generated/src/operationsInterfaces/index.d.ts +1 -0
  389. package/dist/react-native/generated/src/operationsInterfaces/index.d.ts.map +1 -1
  390. package/dist/react-native/generated/src/operationsInterfaces/index.js +1 -0
  391. package/dist/react-native/generated/src/operationsInterfaces/index.js.map +1 -1
  392. package/dist/react-native/index.d.ts +2 -0
  393. package/dist/react-native/index.d.ts.map +1 -1
  394. package/dist/react-native/index.js +2 -0
  395. package/dist/react-native/index.js.map +1 -1
  396. package/dist/react-native/models/constants.js +1 -1
  397. package/dist/react-native/models/constants.js.map +1 -1
  398. package/dist/react-native/models/events.d.ts +188 -62
  399. package/dist/react-native/models/events.d.ts.map +1 -1
  400. package/dist/react-native/models/events.js.map +1 -1
  401. package/dist/react-native/models/models.d.ts +85 -7
  402. package/dist/react-native/models/models.d.ts.map +1 -1
  403. package/dist/react-native/models/models.js +3 -1
  404. package/dist/react-native/models/models.js.map +1 -1
  405. package/dist/react-native/models/options.d.ts +49 -2
  406. package/dist/react-native/models/options.d.ts.map +1 -1
  407. package/dist/react-native/models/options.js.map +1 -1
  408. package/dist/react-native/models/responses.d.ts +82 -10
  409. package/dist/react-native/models/responses.d.ts.map +1 -1
  410. package/dist/react-native/models/responses.js.map +1 -1
  411. package/dist/react-native/utli/converters.d.ts +26 -2
  412. package/dist/react-native/utli/converters.d.ts.map +1 -1
  413. package/dist/react-native/utli/converters.js +114 -19
  414. package/dist/react-native/utli/converters.js.map +1 -1
  415. package/package.json +16 -22
@@ -1,20 +1,18 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT License.
3
- import { CallAutomationApiClient, } from "./generated/src/index.js";
4
3
  import { KnownPlaySourceType, KnownRecognizeInputType } from "./generated/src/index.js";
5
4
  import { CallMediaImpl } from "./generated/src/operations/index.js";
6
- import { createCommunicationAuthPolicy, } from "@azure/communication-common";
7
5
  import { serializeCommunicationIdentifier } from "@azure/communication-common";
8
6
  import { randomUUID } from "@azure/core-util";
7
+ import { createCustomCallAutomationApiClient } from "./credential/callAutomationAuthPolicy.js";
9
8
  /**
10
9
  * CallMedia class represents call media related APIs.
11
10
  */
12
11
  export class CallMedia {
13
- constructor(callConnectionId, endpoint, credential, options) {
14
- this.callAutomationApiClient = new CallAutomationApiClient(endpoint, options);
15
- const authPolicy = createCommunicationAuthPolicy(credential);
16
- this.callAutomationApiClient.pipeline.addPolicy(authPolicy);
12
+ constructor(callConnectionId, endpoint, credential, eventProcessor, options) {
13
+ this.callAutomationApiClient = createCustomCallAutomationApiClient(credential, options, endpoint);
17
14
  this.callConnectionId = callConnectionId;
15
+ this.callAutomationEventProcessor = eventProcessor;
18
16
  this.callMedia = new CallMediaImpl(this.callAutomationApiClient);
19
17
  }
20
18
  createPlaySourceInternal(playSource) {
@@ -25,6 +23,9 @@ export class CallMedia {
25
23
  return {
26
24
  kind: KnownPlaySourceType.File,
27
25
  file: fileSource,
26
+ playSourceCacheId: playSource.playSourceCacheId
27
+ ? playSource.playSourceCacheId
28
+ : playSource.playsourcacheid,
28
29
  };
29
30
  }
30
31
  else if (playSource.kind === "textSource") {
@@ -38,6 +39,9 @@ export class CallMedia {
38
39
  return {
39
40
  kind: KnownPlaySourceType.Text,
40
41
  text: textSource,
42
+ playSourceCacheId: playSource.playSourceCacheId
43
+ ? playSource.playSourceCacheId
44
+ : playSource.playsourcacheid,
41
45
  };
42
46
  }
43
47
  else if (playSource.kind === "ssmlSource") {
@@ -48,6 +52,9 @@ export class CallMedia {
48
52
  return {
49
53
  kind: KnownPlaySourceType.Ssml,
50
54
  ssml: ssmlSource,
55
+ playSourceCacheId: playSource.playSourceCacheId
56
+ ? playSource.playSourceCacheId
57
+ : playSource.playsourcacheid,
51
58
  };
52
59
  }
53
60
  throw new Error("Invalid play source");
@@ -65,15 +72,51 @@ export class CallMedia {
65
72
  playTo: playTo.map((identifier) => serializeCommunicationIdentifier(identifier)),
66
73
  playOptions: {
67
74
  loop: false,
75
+ interruptHoldAudio: false,
68
76
  },
69
- operationContext: options.operationContext,
77
+ operationContext: options.operationContext ? options.operationContext : randomUUID(),
70
78
  operationCallbackUri: options.operationCallbackUrl,
71
79
  };
72
80
  if (options.loop !== undefined) {
73
81
  playRequest.playOptions = playRequest.playOptions || { loop: false }; // Ensure playOptions is defined
74
82
  playRequest.playOptions.loop = options.loop;
75
83
  }
76
- return this.callMedia.play(this.callConnectionId, playRequest, options);
84
+ if (options.interruptHoldAudio !== undefined) {
85
+ playRequest.playOptions = playRequest.playOptions || {
86
+ loop: false,
87
+ interruptHoldAudio: false,
88
+ }; // Ensure playOptions is defined
89
+ playRequest.playOptions.interruptHoldAudio = options.interruptHoldAudio;
90
+ }
91
+ await this.callMedia.play(this.callConnectionId, playRequest, options);
92
+ const playResult = {
93
+ waitForEventProcessor: async (abortSignal, timeoutInMs) => {
94
+ const playEventResult = {
95
+ isSuccess: false,
96
+ };
97
+ await this.callAutomationEventProcessor.waitForEventProcessor((event) => {
98
+ if (event.callConnectionId === this.callConnectionId &&
99
+ event.kind === "PlayCompleted" &&
100
+ event.operationContext === playRequest.operationContext) {
101
+ playEventResult.isSuccess = true;
102
+ playEventResult.successResult = event;
103
+ return true;
104
+ }
105
+ else if (event.callConnectionId === this.callConnectionId &&
106
+ event.kind === "PlayFailed" &&
107
+ event.operationContext === playRequest.operationContext) {
108
+ playEventResult.isSuccess = false;
109
+ playEventResult.failureResult = event;
110
+ return true;
111
+ }
112
+ else {
113
+ return false;
114
+ }
115
+ }, abortSignal, timeoutInMs);
116
+ return playEventResult;
117
+ },
118
+ };
119
+ return playResult;
77
120
  }
78
121
  /**
79
122
  * Play to all participants.
@@ -98,10 +141,39 @@ export class CallMedia {
98
141
  if (options.interruptCallMediaOperation !== undefined) {
99
142
  playRequest.playOptions = playRequest.playOptions || {
100
143
  loop: false,
101
- };
102
- playRequest.interruptCallMediaOperation = options.interruptCallMediaOperation;
144
+ interruptCallMediaOperation: false,
145
+ }; // Ensure playOptions is defined
146
+ playRequest.playOptions.interruptCallMediaOperation = options.interruptCallMediaOperation;
103
147
  }
104
- return this.callMedia.play(this.callConnectionId, playRequest, options);
148
+ await this.callMedia.play(this.callConnectionId, playRequest, options);
149
+ const playResult = {
150
+ waitForEventProcessor: async (abortSignal, timeoutInMs) => {
151
+ const playEventResult = {
152
+ isSuccess: false,
153
+ };
154
+ await this.callAutomationEventProcessor.waitForEventProcessor((event) => {
155
+ if (event.callConnectionId === this.callConnectionId &&
156
+ event.kind === "PlayCompleted" &&
157
+ event.operationContext === playRequest.operationContext) {
158
+ playEventResult.isSuccess = true;
159
+ playEventResult.successResult = event;
160
+ return true;
161
+ }
162
+ else if (event.callConnectionId === this.callConnectionId &&
163
+ event.kind === "PlayFailed" &&
164
+ event.operationContext === playRequest.operationContext) {
165
+ playEventResult.isSuccess = false;
166
+ playEventResult.failureResult = event;
167
+ return true;
168
+ }
169
+ else {
170
+ return false;
171
+ }
172
+ }, abortSignal, timeoutInMs);
173
+ return playEventResult;
174
+ },
175
+ };
176
+ return playResult;
105
177
  }
106
178
  createRecognizeRequest(targetParticipant, recognizeOptions) {
107
179
  if (recognizeOptions.kind === "callMediaRecognizeDtmfOptions") {
@@ -240,7 +312,35 @@ export class CallMedia {
240
312
  ? maxTonesOrOptions.operationContext
241
313
  : randomUUID();
242
314
  // New function signature logic
243
- return this.callMedia.recognize(this.callConnectionId, this.createRecognizeRequest(targetParticipant, maxTonesOrOptions), {});
315
+ await this.callMedia.recognize(this.callConnectionId, this.createRecognizeRequest(targetParticipant, maxTonesOrOptions), {});
316
+ const startRecognizingResult = {
317
+ waitForEventProcessor: async (abortSignal, timeoutInMs) => {
318
+ const startRecognizingEventResult = {
319
+ isSuccess: false,
320
+ };
321
+ await this.callAutomationEventProcessor.waitForEventProcessor((event) => {
322
+ if (event.callConnectionId === this.callConnectionId &&
323
+ event.kind === "RecognizeCompleted" &&
324
+ event.operationContext === maxTonesOrOptions.operationContext) {
325
+ startRecognizingEventResult.isSuccess = true;
326
+ startRecognizingEventResult.successResult = event;
327
+ return true;
328
+ }
329
+ else if (event.callConnectionId === this.callConnectionId &&
330
+ event.kind === "RecognizeFailed" &&
331
+ event.operationContext === maxTonesOrOptions.operationContext) {
332
+ startRecognizingEventResult.isSuccess = false;
333
+ startRecognizingEventResult.failureResult = event;
334
+ return true;
335
+ }
336
+ else {
337
+ return false;
338
+ }
339
+ }, abortSignal, timeoutInMs);
340
+ return startRecognizingEventResult;
341
+ },
342
+ };
343
+ return startRecognizingResult;
244
344
  }
245
345
  throw new Error("Invalid params");
246
346
  }
@@ -248,7 +348,32 @@ export class CallMedia {
248
348
  * Cancels all the queued media operations.
249
349
  */
250
350
  async cancelAllOperations() {
251
- return this.callMedia.cancelAllMediaOperations(this.callConnectionId, {});
351
+ await this.callMedia.cancelAllMediaOperations(this.callConnectionId, {});
352
+ const cancelAllMediaOperationsResult = {
353
+ waitForEventProcessor: async (abortSignal, timeoutInMs) => {
354
+ const cancelAllMediaOperationsEventResult = {
355
+ isSuccess: false,
356
+ };
357
+ await this.callAutomationEventProcessor.waitForEventProcessor((event) => {
358
+ if (event.callConnectionId === this.callConnectionId && event.kind === "PlayCanceled") {
359
+ cancelAllMediaOperationsEventResult.isSuccess = true;
360
+ cancelAllMediaOperationsEventResult.playCanceledSuccessResult = event;
361
+ return true;
362
+ }
363
+ else if (event.callConnectionId === this.callConnectionId &&
364
+ event.kind === "RecognizeCanceled") {
365
+ cancelAllMediaOperationsEventResult.isSuccess = false;
366
+ cancelAllMediaOperationsEventResult.recognizeCanceledSuccessResult = event;
367
+ return true;
368
+ }
369
+ else {
370
+ return false;
371
+ }
372
+ }, abortSignal, timeoutInMs);
373
+ return cancelAllMediaOperationsEventResult;
374
+ },
375
+ };
376
+ return cancelAllMediaOperationsResult;
252
377
  }
253
378
  /**
254
379
  * Start continuous Dtmf recognition by subscribing to tones.
@@ -258,7 +383,7 @@ export class CallMedia {
258
383
  async startContinuousDtmfRecognition(targetParticipant, options = {}) {
259
384
  const continuousDtmfRecognitionRequest = {
260
385
  targetParticipant: serializeCommunicationIdentifier(targetParticipant),
261
- operationContext: options.operationContext,
386
+ operationContext: options.operationContext ? options.operationContext : randomUUID(),
262
387
  };
263
388
  return this.callMedia.startContinuousDtmfRecognition(this.callConnectionId, continuousDtmfRecognitionRequest, {});
264
389
  }
@@ -270,7 +395,7 @@ export class CallMedia {
270
395
  async stopContinuousDtmfRecognition(targetParticipant, options = {}) {
271
396
  const continuousDtmfRecognitionRequest = {
272
397
  targetParticipant: serializeCommunicationIdentifier(targetParticipant),
273
- operationContext: options.operationContext,
398
+ operationContext: options.operationContext ? options.operationContext : randomUUID(),
274
399
  operationCallbackUri: options.operationCallbackUrl,
275
400
  };
276
401
  return this.callMedia.stopContinuousDtmfRecognition(this.callConnectionId, continuousDtmfRecognitionRequest, {});
@@ -285,12 +410,37 @@ export class CallMedia {
285
410
  const sendDtmfTonesRequest = {
286
411
  tones: tones,
287
412
  targetParticipant: serializeCommunicationIdentifier(targetParticipant),
288
- operationContext: options.operationContext,
413
+ operationContext: options.operationContext ? options.operationContext : randomUUID(),
289
414
  operationCallbackUri: options.operationCallbackUrl,
290
415
  };
291
- const optionsInternal = Object.assign(Object.assign({}, options), { repeatabilityFirstSent: new Date(), repeatabilityRequestID: randomUUID() });
292
- const result = await this.callMedia.sendDtmfTones(this.callConnectionId, sendDtmfTonesRequest, optionsInternal);
293
- const sendDtmfTonesResult = Object.assign({}, result);
416
+ await this.callMedia.sendDtmfTones(this.callConnectionId, sendDtmfTonesRequest, {});
417
+ const sendDtmfTonesResult = {
418
+ waitForEventProcessor: async (abortSignal, timeoutInMs) => {
419
+ const sendDtmfEventResult = {
420
+ isSuccess: false,
421
+ };
422
+ await this.callAutomationEventProcessor.waitForEventProcessor((event) => {
423
+ if (event.callConnectionId === this.callConnectionId &&
424
+ event.kind === "SendDtmfTonesCompleted" &&
425
+ event.operationContext === sendDtmfTonesResult.operationContext) {
426
+ sendDtmfEventResult.isSuccess = true;
427
+ sendDtmfEventResult.successResult = event;
428
+ return true;
429
+ }
430
+ else if (event.callConnectionId === this.callConnectionId &&
431
+ event.kind === "SendDtmfTonesFailed" &&
432
+ event.operationContext === sendDtmfTonesResult.operationContext) {
433
+ sendDtmfEventResult.isSuccess = false;
434
+ sendDtmfEventResult.failureResult = event;
435
+ return true;
436
+ }
437
+ else {
438
+ return false;
439
+ }
440
+ }, abortSignal, timeoutInMs);
441
+ return sendDtmfEventResult;
442
+ },
443
+ };
294
444
  return sendDtmfTonesResult;
295
445
  }
296
446
  /**
@@ -306,7 +456,7 @@ export class CallMedia {
306
456
  ? this.createPlaySourceInternal(options.playSource)
307
457
  : undefined,
308
458
  operationContext: options.operationContext !== undefined ? options.operationContext : undefined,
309
- operationCallbackUri: options.operationCallbackUrl !== undefined ? options.operationCallbackUrl : undefined,
459
+ operationCallbackUri: options.operationCallbackUri !== undefined ? options.operationCallbackUri : undefined,
310
460
  };
311
461
  return this.callMedia.hold(this.callConnectionId, holdRequest);
312
462
  }
@@ -331,7 +481,8 @@ export class CallMedia {
331
481
  const startTranscriptionRequest = {
332
482
  locale: options.locale,
333
483
  operationContext: options.operationContext,
334
- speechRecognitionModelEndpointId: options.speechRecognitionModelEndpointId,
484
+ speechModelEndpointId: options.speechRecognitionModelEndpointId,
485
+ operationCallbackUri: options.operationCallbackUrl,
335
486
  };
336
487
  return this.callMedia.startTranscription(this.callConnectionId, startTranscriptionRequest, {});
337
488
  }
@@ -342,6 +493,7 @@ export class CallMedia {
342
493
  async stopTranscription(options = {}) {
343
494
  const stopTranscriptionRequest = {
344
495
  operationContext: options.operationContext,
496
+ operationCallbackUri: options.operationCallbackUrl,
345
497
  };
346
498
  return this.callMedia.stopTranscription(this.callConnectionId, stopTranscriptionRequest, {});
347
499
  }
@@ -352,8 +504,9 @@ export class CallMedia {
352
504
  async updateTranscription(locale, options) {
353
505
  const updateTranscriptionRequest = {
354
506
  locale: locale,
355
- speechRecognitionModelEndpointId: options === null || options === void 0 ? void 0 : options.speechRecognitionModelEndpointId,
507
+ speechModelEndpointId: options === null || options === void 0 ? void 0 : options.speechRecognitionModelEndpointId,
356
508
  operationContext: options === null || options === void 0 ? void 0 : options.operationContext,
509
+ operationCallbackUri: options === null || options === void 0 ? void 0 : options.operationCallbackUrl,
357
510
  };
358
511
  return this.callMedia.updateTranscription(this.callConnectionId, updateTranscriptionRequest, {});
359
512
  }
@@ -379,5 +532,20 @@ export class CallMedia {
379
532
  };
380
533
  return this.callMedia.stopMediaStreaming(this.callConnectionId, stopMediaStreamingRequest, options);
381
534
  }
535
+ /**
536
+ * Interrupt audio and announce to specific participant.
537
+ *
538
+ * @param playSources - A PlaySource representing the sources to play.
539
+ * @param playTo - The targets to play to.
540
+ * @param options - Additional attributes for interrupt audio and announce.
541
+ */
542
+ async interruptAudioAndAnnounce(playSources, playTo, options = {}) {
543
+ const interruptAudioAndAnnounceRequest = {
544
+ playSources: playSources.map((source) => this.createPlaySourceInternal(source)),
545
+ playTo: serializeCommunicationIdentifier(playTo),
546
+ operationContext: options.operationContext,
547
+ };
548
+ return this.callMedia.interruptAudioAndAnnounce(this.callConnectionId, interruptAudioAndAnnounceRequest);
549
+ }
382
550
  }
383
551
  //# sourceMappingURL=callMedia.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"callMedia.js","sourceRoot":"","sources":["../../src/callMedia.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport {\n PlayRequest,\n PlaySourceInternal,\n FileSourceInternal,\n TextSourceInternal,\n SsmlSourceInternal,\n RecognizeRequest,\n RecognizeOptions,\n DtmfOptions,\n CallAutomationApiClient,\n CallAutomationApiClientOptionalParams,\n ContinuousDtmfRecognitionRequest,\n SendDtmfTonesRequest,\n Tone,\n SpeechOptions,\n StartTranscriptionRequest,\n StopTranscriptionRequest,\n UpdateTranscriptionRequest,\n HoldRequest,\n UnholdRequest,\n StartMediaStreamingRequest,\n StopMediaStreamingRequest,\n} from \"./generated/src/index.js\";\nimport { KnownPlaySourceType, KnownRecognizeInputType } from \"./generated/src/index.js\";\n\nimport { CallMediaImpl } from \"./generated/src/operations/index.js\";\n\nimport {\n CommunicationIdentifier,\n createCommunicationAuthPolicy,\n} from \"@azure/communication-common\";\nimport { serializeCommunicationIdentifier } from \"@azure/communication-common\";\n\nimport type { FileSource, TextSource, SsmlSource, DtmfTone } from \"./models/models.js\";\nimport type {\n PlayOptions,\n CallMediaRecognizeDtmfOptions,\n CallMediaRecognizeChoiceOptions,\n ContinuousDtmfRecognitionOptions,\n SendDtmfTonesOptions,\n CallMediaRecognizeSpeechOptions,\n CallMediaRecognizeSpeechOrDtmfOptions,\n StartTranscriptionOptions,\n StopTranscriptionOptions,\n HoldOptions,\n UnholdOptions,\n StartMediaStreamingOptions,\n StopMediaStreamingOptions,\n PlayToAllOptions,\n UpdateTranscriptionOptions,\n} from \"./models/options.js\";\nimport type { KeyCredential, TokenCredential } from \"@azure/core-auth\";\nimport type { SendDtmfTonesResult } from \"./models/responses.js\";\nimport { randomUUID } from \"@azure/core-util\";\n\n/**\n * CallMedia class represents call media related APIs.\n */\nexport class CallMedia {\n private readonly callConnectionId: string;\n private readonly callMedia: CallMediaImpl;\n private readonly callAutomationApiClient: CallAutomationApiClient;\n constructor(\n callConnectionId: string,\n endpoint: string,\n credential: KeyCredential | TokenCredential,\n options?: CallAutomationApiClientOptionalParams,\n ) {\n this.callAutomationApiClient = new CallAutomationApiClient(endpoint, options);\n const authPolicy = createCommunicationAuthPolicy(credential);\n this.callAutomationApiClient.pipeline.addPolicy(authPolicy);\n this.callConnectionId = callConnectionId;\n this.callMedia = new CallMediaImpl(this.callAutomationApiClient);\n }\n\n private createPlaySourceInternal(\n playSource: FileSource | TextSource | SsmlSource,\n ): PlaySourceInternal {\n if (playSource.kind === \"fileSource\") {\n const fileSource: FileSourceInternal = {\n uri: playSource.url,\n };\n return {\n kind: KnownPlaySourceType.File,\n file: fileSource,\n };\n } else if (playSource.kind === \"textSource\") {\n const textSource: TextSourceInternal = {\n text: playSource.text,\n sourceLocale: playSource.sourceLocale,\n voiceKind: playSource.voiceKind,\n voiceName: playSource.voiceName,\n customVoiceEndpointId: playSource.customVoiceEndpointId,\n };\n return {\n kind: KnownPlaySourceType.Text,\n text: textSource,\n };\n } else if (playSource.kind === \"ssmlSource\") {\n const ssmlSource: SsmlSourceInternal = {\n ssmlText: playSource.ssmlText,\n customVoiceEndpointId: playSource.customVoiceEndpointId,\n };\n return {\n kind: KnownPlaySourceType.Ssml,\n ssml: ssmlSource,\n };\n }\n throw new Error(\"Invalid play source\");\n }\n\n /**\n * Play audio to a specific participant.\n *\n * @param playSources - A PlaySource representing the sources to play. Currently only single play source per request is supported.\n * @param playTo - The targets to play to.\n * @param options - Additional attributes for play.\n */\n public async play(\n playSources: (FileSource | TextSource | SsmlSource)[],\n playTo: CommunicationIdentifier[],\n options: PlayOptions = { loop: false },\n ): Promise<void> {\n const playRequest: PlayRequest = {\n playSources: playSources.map((source) => this.createPlaySourceInternal(source)),\n playTo: playTo.map((identifier) => serializeCommunicationIdentifier(identifier)),\n playOptions: {\n loop: false,\n },\n operationContext: options.operationContext,\n operationCallbackUri: options.operationCallbackUrl,\n };\n\n if (options.loop !== undefined) {\n playRequest.playOptions = playRequest.playOptions || { loop: false }; // Ensure playOptions is defined\n playRequest.playOptions.loop = options.loop;\n }\n return this.callMedia.play(this.callConnectionId, playRequest, options);\n }\n\n /**\n * Play to all participants.\n *\n * @param playSources - A PlaySource representing the sources to play. Currently only single play source per request is supported.\n * @param options - Additional attributes for play.\n */\n public async playToAll(\n playSources: (FileSource | TextSource | SsmlSource)[],\n options: PlayToAllOptions = { loop: false },\n ): Promise<void> {\n const playRequest: PlayRequest = {\n playSources: playSources.map((source) => this.createPlaySourceInternal(source)),\n playTo: [],\n playOptions: {\n loop: false,\n },\n operationContext: options.operationContext ? options.operationContext : randomUUID(),\n operationCallbackUri: options.operationCallbackUrl,\n };\n\n if (options.loop !== undefined) {\n playRequest.playOptions = playRequest.playOptions || { loop: false }; // Ensure playOptions is defined\n playRequest.playOptions.loop = options.loop;\n }\n\n if (options.interruptCallMediaOperation !== undefined) {\n playRequest.playOptions = playRequest.playOptions || {\n loop: false,\n };\n playRequest.interruptCallMediaOperation = options.interruptCallMediaOperation;\n }\n\n return this.callMedia.play(this.callConnectionId, playRequest, options);\n }\n\n private createRecognizeRequest(\n targetParticipant: CommunicationIdentifier,\n recognizeOptions:\n | CallMediaRecognizeDtmfOptions\n | CallMediaRecognizeChoiceOptions\n | CallMediaRecognizeSpeechOptions\n | CallMediaRecognizeSpeechOrDtmfOptions,\n ): RecognizeRequest {\n if (recognizeOptions.kind === \"callMediaRecognizeDtmfOptions\") {\n const dtmfOptionsInternal: DtmfOptions = {\n interToneTimeoutInSeconds: recognizeOptions.interToneTimeoutInSeconds\n ? recognizeOptions.interToneTimeoutInSeconds\n : 2,\n maxTonesToCollect: recognizeOptions.maxTonesToCollect,\n stopTones: recognizeOptions.stopDtmfTones,\n };\n const recognizeOptionsInternal: RecognizeOptions = {\n interruptPrompt: recognizeOptions.interruptPrompt,\n initialSilenceTimeoutInSeconds: recognizeOptions.initialSilenceTimeoutInSeconds\n ? recognizeOptions.initialSilenceTimeoutInSeconds\n : 5,\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n dtmfOptions: dtmfOptionsInternal,\n };\n return {\n recognizeInputType: KnownRecognizeInputType.Dtmf,\n playPrompt: recognizeOptions.playPrompt\n ? this.createPlaySourceInternal(recognizeOptions.playPrompt)\n : undefined,\n playPrompts:\n recognizeOptions.playPrompts !== undefined\n ? recognizeOptions.playPrompts.map((source) => this.createPlaySourceInternal(source))\n : undefined,\n interruptCallMediaOperation: recognizeOptions.interruptCallMediaOperation,\n recognizeOptions: recognizeOptionsInternal,\n operationContext: recognizeOptions.operationContext,\n operationCallbackUri: recognizeOptions.operationCallbackUrl,\n };\n } else if (recognizeOptions.kind === \"callMediaRecognizeChoiceOptions\") {\n const recognizeOptionsInternal: RecognizeOptions = {\n interruptPrompt: recognizeOptions.interruptPrompt,\n initialSilenceTimeoutInSeconds: recognizeOptions.initialSilenceTimeoutInSeconds\n ? recognizeOptions.initialSilenceTimeoutInSeconds\n : 5,\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n speechLanguage: recognizeOptions.speechLanguage,\n speechRecognitionModelEndpointId: recognizeOptions.speechRecognitionModelEndpointId,\n choices: recognizeOptions.choices,\n };\n return {\n recognizeInputType: KnownRecognizeInputType.Choices,\n playPrompt: recognizeOptions.playPrompt\n ? this.createPlaySourceInternal(recognizeOptions.playPrompt)\n : undefined,\n playPrompts:\n recognizeOptions.playPrompts !== undefined\n ? recognizeOptions.playPrompts.map((source) => this.createPlaySourceInternal(source))\n : undefined,\n interruptCallMediaOperation: recognizeOptions.interruptCallMediaOperation,\n recognizeOptions: recognizeOptionsInternal,\n operationContext: recognizeOptions.operationContext,\n operationCallbackUri: recognizeOptions.operationCallbackUrl,\n };\n } else if (recognizeOptions.kind === \"callMediaRecognizeSpeechOptions\") {\n const speechOptions: SpeechOptions = {\n endSilenceTimeoutInMs: recognizeOptions.endSilenceTimeoutInSeconds\n ? recognizeOptions.endSilenceTimeoutInSeconds * 1000\n : 2000,\n };\n const recognizeOptionsInternal: RecognizeOptions = {\n interruptPrompt: recognizeOptions.interruptPrompt,\n initialSilenceTimeoutInSeconds: recognizeOptions.initialSilenceTimeoutInSeconds\n ? recognizeOptions.initialSilenceTimeoutInSeconds\n : 5,\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n speechOptions: speechOptions,\n speechLanguage: recognizeOptions.speechLanguage,\n speechRecognitionModelEndpointId: recognizeOptions.speechRecognitionModelEndpointId,\n };\n return {\n recognizeInputType: KnownRecognizeInputType.Speech,\n playPrompt: recognizeOptions.playPrompt\n ? this.createPlaySourceInternal(recognizeOptions.playPrompt)\n : undefined,\n playPrompts:\n recognizeOptions.playPrompts !== undefined\n ? recognizeOptions.playPrompts.map((source) => this.createPlaySourceInternal(source))\n : undefined,\n interruptCallMediaOperation: recognizeOptions.interruptCallMediaOperation,\n recognizeOptions: recognizeOptionsInternal,\n operationContext: recognizeOptions.operationContext,\n operationCallbackUri: recognizeOptions.operationCallbackUrl,\n };\n } else if (recognizeOptions.kind === \"callMediaRecognizeSpeechOrDtmfOptions\") {\n const dtmfOptionsInternal: DtmfOptions = {\n interToneTimeoutInSeconds: recognizeOptions.interToneTimeoutInSeconds\n ? recognizeOptions.interToneTimeoutInSeconds\n : 2,\n maxTonesToCollect: recognizeOptions.maxTonesToCollect,\n stopTones: recognizeOptions.stopDtmfTones,\n };\n const speechOptions: SpeechOptions = {\n endSilenceTimeoutInMs: recognizeOptions.endSilenceTimeoutInSeconds\n ? recognizeOptions.endSilenceTimeoutInSeconds * 1000\n : 2000,\n };\n const recognizeOptionsInternal: RecognizeOptions = {\n interruptPrompt: recognizeOptions.interruptPrompt,\n initialSilenceTimeoutInSeconds: recognizeOptions.initialSilenceTimeoutInSeconds\n ? recognizeOptions.initialSilenceTimeoutInSeconds\n : 5,\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n speechOptions: speechOptions,\n dtmfOptions: dtmfOptionsInternal,\n speechRecognitionModelEndpointId: recognizeOptions.speechRecognitionModelEndpointId,\n };\n return {\n recognizeInputType: KnownRecognizeInputType.SpeechOrDtmf,\n playPrompt: recognizeOptions.playPrompt\n ? this.createPlaySourceInternal(recognizeOptions.playPrompt)\n : undefined,\n playPrompts:\n recognizeOptions.playPrompts !== undefined\n ? recognizeOptions.playPrompts.map((source) => this.createPlaySourceInternal(source))\n : undefined,\n interruptCallMediaOperation: recognizeOptions.interruptCallMediaOperation,\n recognizeOptions: recognizeOptionsInternal,\n operationContext: recognizeOptions.operationContext,\n operationCallbackUri: recognizeOptions.operationCallbackUrl,\n };\n }\n throw new Error(\"Invalid recognizeOptions\");\n }\n\n /**\n * Recognize participant input.\n * @deprecated This method signature is deprecated. Please use the new signature with targetParticipant and options params instead, and set maxTonesToCollect in options.\n * @param targetParticipant - Target participant.\n * @param maxTonesToCollect - Maximum number of DTMF tones to be collected.\n * @param options - Different attributes for recognize.\n * */\n public async startRecognizing(\n targetParticipant: CommunicationIdentifier,\n maxTonesToCollect: number,\n options: CallMediaRecognizeDtmfOptions,\n ): Promise<void>;\n\n /**\n * Recognize participant input.\n * @param targetParticipant - Target participant.\n * @param options - Different attributes for recognize.\n * */\n public async startRecognizing(\n targetParticipant: CommunicationIdentifier,\n options:\n | CallMediaRecognizeDtmfOptions\n | CallMediaRecognizeChoiceOptions\n | CallMediaRecognizeSpeechOptions\n | CallMediaRecognizeSpeechOrDtmfOptions,\n ): Promise<void>;\n async startRecognizing(\n targetParticipant: CommunicationIdentifier,\n maxTonesOrOptions:\n | number\n | CallMediaRecognizeDtmfOptions\n | CallMediaRecognizeChoiceOptions\n | CallMediaRecognizeSpeechOptions\n | CallMediaRecognizeSpeechOrDtmfOptions,\n options?: CallMediaRecognizeDtmfOptions,\n ): Promise<void> {\n if (typeof maxTonesOrOptions === \"number\" && options) {\n // Old function signature logic\n console.warn(\n \"Deprecated function signature used. Please use the new signature with targetParticipant and options params instead, and set maxTonesToCollect in options.\",\n );\n options.maxTonesToCollect = maxTonesOrOptions;\n await this.callMedia.recognize(\n this.callConnectionId,\n this.createRecognizeRequest(targetParticipant, options),\n {},\n );\n } else if (typeof maxTonesOrOptions !== \"number\" && !options) {\n maxTonesOrOptions.operationContext = maxTonesOrOptions.operationContext\n ? maxTonesOrOptions.operationContext\n : randomUUID();\n // New function signature logic\n return this.callMedia.recognize(\n this.callConnectionId,\n this.createRecognizeRequest(targetParticipant, maxTonesOrOptions),\n {},\n );\n }\n throw new Error(\"Invalid params\");\n }\n\n /**\n * Cancels all the queued media operations.\n */\n public async cancelAllOperations(): Promise<void> {\n return this.callMedia.cancelAllMediaOperations(this.callConnectionId, {});\n }\n\n /**\n * Start continuous Dtmf recognition by subscribing to tones.\n * @param targetParticipant - Target participant.\n * @param options - Additional attributes for continuous Dtmf recognition.\n * */\n public async startContinuousDtmfRecognition(\n targetParticipant: CommunicationIdentifier,\n options: ContinuousDtmfRecognitionOptions = {},\n ): Promise<void> {\n const continuousDtmfRecognitionRequest: ContinuousDtmfRecognitionRequest = {\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n operationContext: options.operationContext,\n };\n return this.callMedia.startContinuousDtmfRecognition(\n this.callConnectionId,\n continuousDtmfRecognitionRequest,\n {},\n );\n }\n\n /**\n * Stop continuous Dtmf recognition by unsubscribing to tones.\n * @param targetParticipant - Target participant.\n * @param options - Additional attributes for continuous Dtmf recognition.\n * */\n public async stopContinuousDtmfRecognition(\n targetParticipant: CommunicationIdentifier,\n options: ContinuousDtmfRecognitionOptions = {},\n ): Promise<void> {\n const continuousDtmfRecognitionRequest: ContinuousDtmfRecognitionRequest = {\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n operationContext: options.operationContext,\n operationCallbackUri: options.operationCallbackUrl,\n };\n return this.callMedia.stopContinuousDtmfRecognition(\n this.callConnectionId,\n continuousDtmfRecognitionRequest,\n {},\n );\n }\n\n /**\n * Send Dtmf tones.\n * @param tones - List of tones to be sent to target participant.\n * @param targetParticipant - Target participant.\n * @param options - Additional attributes for send Dtmf tones.\n * */\n public async sendDtmfTones(\n tones: Tone[] | DtmfTone[],\n targetParticipant: CommunicationIdentifier,\n options: SendDtmfTonesOptions = {},\n ): Promise<SendDtmfTonesResult> {\n const sendDtmfTonesRequest: SendDtmfTonesRequest = {\n tones: tones,\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n operationContext: options.operationContext,\n operationCallbackUri: options.operationCallbackUrl,\n };\n const optionsInternal = {\n ...options,\n repeatabilityFirstSent: new Date(),\n repeatabilityRequestID: randomUUID(),\n };\n const result = await this.callMedia.sendDtmfTones(\n this.callConnectionId,\n sendDtmfTonesRequest,\n optionsInternal,\n );\n\n const sendDtmfTonesResult: SendDtmfTonesResult = {\n ...result,\n };\n\n return sendDtmfTonesResult;\n }\n\n /**\n * Put participant on hold while playing audio.\n *\n * @param targetParticipant - The targets to play to.\n * @param options - Additional attributes for hold participant.\n */\n public async hold(\n targetParticipant: CommunicationIdentifier,\n options: HoldOptions = {},\n ): Promise<void> {\n const holdRequest: HoldRequest = {\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n playSourceInfo:\n options.playSource !== undefined\n ? this.createPlaySourceInternal(options.playSource)\n : undefined,\n operationContext:\n options.operationContext !== undefined ? options.operationContext : undefined,\n operationCallbackUri:\n options.operationCallbackUrl !== undefined ? options.operationCallbackUrl : undefined,\n };\n return this.callMedia.hold(this.callConnectionId, holdRequest);\n }\n\n /**\n * Remove participant from hold.\n *\n * @param targetParticipant - The targets to play to.\n * @param options - Additional attributes for unhold participant.\n */\n public async unhold(\n targetParticipant: CommunicationIdentifier,\n options: UnholdOptions = {},\n ): Promise<void> {\n const unholdRequest: UnholdRequest = {\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n operationContext:\n options.operationContext !== undefined ? options.operationContext : undefined,\n };\n return this.callMedia.unhold(this.callConnectionId, unholdRequest);\n }\n\n /**\n * Starts transcription in the call\n * @param options - Additional attributes for start transcription.\n */\n public async startTranscription(options: StartTranscriptionOptions = {}): Promise<void> {\n const startTranscriptionRequest: StartTranscriptionRequest = {\n locale: options.locale,\n operationContext: options.operationContext,\n speechRecognitionModelEndpointId: options.speechRecognitionModelEndpointId,\n };\n return this.callMedia.startTranscription(this.callConnectionId, startTranscriptionRequest, {});\n }\n\n /**\n * Stops transcription in the call.\n * @param options - Additional attributes for stop transcription.\n */\n public async stopTranscription(options: StopTranscriptionOptions = {}): Promise<void> {\n const stopTranscriptionRequest: StopTranscriptionRequest = {\n operationContext: options.operationContext,\n };\n return this.callMedia.stopTranscription(this.callConnectionId, stopTranscriptionRequest, {});\n }\n\n /**\n * Update transcription language.\n * @param locale - Defines new locale for transcription.\n */\n public async updateTranscription(\n locale: string,\n options?: UpdateTranscriptionOptions,\n ): Promise<void> {\n const updateTranscriptionRequest: UpdateTranscriptionRequest = {\n locale: locale,\n speechRecognitionModelEndpointId: options?.speechRecognitionModelEndpointId,\n operationContext: options?.operationContext,\n };\n return this.callMedia.updateTranscription(\n this.callConnectionId,\n updateTranscriptionRequest,\n {},\n );\n }\n /**\n * Starts media streaming in the call.\n * @param options - Additional attributes for start media streaming.\n */\n public async startMediaStreaming(options: StartMediaStreamingOptions = {}): Promise<void> {\n const startMediaStreamingRequest: StartMediaStreamingRequest = {\n operationContext: options.operationContext,\n operationCallbackUri: options.operationCallbackUrl,\n };\n return this.callMedia.startMediaStreaming(\n this.callConnectionId,\n startMediaStreamingRequest,\n options,\n );\n }\n\n /**\n * Stops media streaming in the call.\n * @param options - Additional attributes for stop media streaming.\n */\n public async stopMediaStreaming(options: StopMediaStreamingOptions = {}): Promise<void> {\n const stopMediaStreamingRequest: StopMediaStreamingRequest = {\n operationCallbackUri: options.operationCallbackUrl,\n operationContext: options.operationContext,\n };\n return this.callMedia.stopMediaStreaming(\n this.callConnectionId,\n stopMediaStreamingRequest,\n options,\n );\n }\n}\n"]}
1
+ {"version":3,"file":"callMedia.js","sourceRoot":"","sources":["../../src/callMedia.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n PlayRequest,\n PlaySourceInternal,\n FileSourceInternal,\n TextSourceInternal,\n SsmlSourceInternal,\n RecognizeRequest,\n RecognizeOptions,\n DtmfOptions,\n CallAutomationApiClient,\n CallAutomationApiClientOptionalParams,\n ContinuousDtmfRecognitionRequest,\n SendDtmfTonesRequest,\n Tone,\n SpeechOptions,\n StartTranscriptionRequest,\n StopTranscriptionRequest,\n UpdateTranscriptionRequest,\n HoldRequest,\n UnholdRequest,\n StartMediaStreamingRequest,\n StopMediaStreamingRequest,\n} from \"./generated/src/index.js\";\nimport { KnownPlaySourceType, KnownRecognizeInputType } from \"./generated/src/index.js\";\n\nimport { CallMediaImpl } from \"./generated/src/operations/index.js\";\n\nimport type { CommunicationIdentifier } from \"@azure/communication-common\";\nimport { serializeCommunicationIdentifier } from \"@azure/communication-common\";\n\nimport type { FileSource, TextSource, SsmlSource, DtmfTone } from \"./models/models.js\";\nimport type {\n PlayOptions,\n CallMediaRecognizeDtmfOptions,\n CallMediaRecognizeChoiceOptions,\n ContinuousDtmfRecognitionOptions,\n SendDtmfTonesOptions,\n CallMediaRecognizeSpeechOptions,\n CallMediaRecognizeSpeechOrDtmfOptions,\n StartTranscriptionOptions,\n StopTranscriptionOptions,\n HoldOptions,\n UnholdOptions,\n StartMediaStreamingOptions,\n StopMediaStreamingOptions,\n PlayToAllOptions,\n UpdateTranscriptionOptions,\n InterruptAudioAndAnnounceOptions,\n} from \"./models/options.js\";\nimport type { KeyCredential, TokenCredential } from \"@azure/core-auth\";\nimport type {\n CancelAllMediaOperationsResult,\n PlayResult,\n SendDtmfTonesResult,\n StartRecognizingResult,\n} from \"./models/responses.js\";\nimport type {\n CancelAllMediaOperationsEventResult,\n PlayEventResult,\n SendDtmfEventResult,\n StartRecognizingEventResult,\n} from \"./eventprocessor/eventResponses.js\";\nimport type { CallAutomationEventProcessor } from \"./eventprocessor/callAutomationEventProcessor.js\";\nimport { randomUUID } from \"@azure/core-util\";\nimport { createCustomCallAutomationApiClient } from \"./credential/callAutomationAuthPolicy.js\";\nimport { InterruptAudioAndAnnounceRequest } from \"./generated/src/models/index.js\";\n\n/**\n * CallMedia class represents call media related APIs.\n */\nexport class CallMedia {\n private readonly callConnectionId: string;\n private readonly callMedia: CallMediaImpl;\n private readonly callAutomationApiClient: CallAutomationApiClient;\n private readonly callAutomationEventProcessor: CallAutomationEventProcessor;\n constructor(\n callConnectionId: string,\n endpoint: string,\n credential: KeyCredential | TokenCredential,\n eventProcessor: CallAutomationEventProcessor,\n options?: CallAutomationApiClientOptionalParams,\n ) {\n this.callAutomationApiClient = createCustomCallAutomationApiClient(\n credential,\n options,\n endpoint,\n );\n this.callConnectionId = callConnectionId;\n this.callAutomationEventProcessor = eventProcessor;\n this.callMedia = new CallMediaImpl(this.callAutomationApiClient);\n }\n\n private createPlaySourceInternal(\n playSource: FileSource | TextSource | SsmlSource,\n ): PlaySourceInternal {\n if (playSource.kind === \"fileSource\") {\n const fileSource: FileSourceInternal = {\n uri: playSource.url,\n };\n return {\n kind: KnownPlaySourceType.File,\n file: fileSource,\n playSourceCacheId: playSource.playSourceCacheId\n ? playSource.playSourceCacheId\n : playSource.playsourcacheid,\n };\n } else if (playSource.kind === \"textSource\") {\n const textSource: TextSourceInternal = {\n text: playSource.text,\n sourceLocale: playSource.sourceLocale,\n voiceKind: playSource.voiceKind,\n voiceName: playSource.voiceName,\n customVoiceEndpointId: playSource.customVoiceEndpointId,\n };\n return {\n kind: KnownPlaySourceType.Text,\n text: textSource,\n playSourceCacheId: playSource.playSourceCacheId\n ? playSource.playSourceCacheId\n : playSource.playsourcacheid,\n };\n } else if (playSource.kind === \"ssmlSource\") {\n const ssmlSource: SsmlSourceInternal = {\n ssmlText: playSource.ssmlText,\n customVoiceEndpointId: playSource.customVoiceEndpointId,\n };\n return {\n kind: KnownPlaySourceType.Ssml,\n ssml: ssmlSource,\n playSourceCacheId: playSource.playSourceCacheId\n ? playSource.playSourceCacheId\n : playSource.playsourcacheid,\n };\n }\n throw new Error(\"Invalid play source\");\n }\n\n /**\n * Play audio to a specific participant.\n *\n * @param playSources - A PlaySource representing the sources to play. Currently only single play source per request is supported.\n * @param playTo - The targets to play to.\n * @param options - Additional attributes for play.\n */\n public async play(\n playSources: (FileSource | TextSource | SsmlSource)[],\n playTo: CommunicationIdentifier[],\n options: PlayOptions = { loop: false },\n ): Promise<PlayResult> {\n const playRequest: PlayRequest = {\n playSources: playSources.map((source) => this.createPlaySourceInternal(source)),\n playTo: playTo.map((identifier) => serializeCommunicationIdentifier(identifier)),\n playOptions: {\n loop: false,\n interruptHoldAudio: false,\n },\n operationContext: options.operationContext ? options.operationContext : randomUUID(),\n operationCallbackUri: options.operationCallbackUrl,\n };\n\n if (options.loop !== undefined) {\n playRequest.playOptions = playRequest.playOptions || { loop: false }; // Ensure playOptions is defined\n playRequest.playOptions.loop = options.loop;\n }\n if (options.interruptHoldAudio !== undefined) {\n playRequest.playOptions = playRequest.playOptions || {\n loop: false,\n interruptHoldAudio: false,\n }; // Ensure playOptions is defined\n playRequest.playOptions.interruptHoldAudio = options.interruptHoldAudio;\n }\n await this.callMedia.play(this.callConnectionId, playRequest, options);\n\n const playResult: PlayResult = {\n waitForEventProcessor: async (abortSignal, timeoutInMs) => {\n const playEventResult: PlayEventResult = {\n isSuccess: false,\n };\n await this.callAutomationEventProcessor.waitForEventProcessor(\n (event) => {\n if (\n event.callConnectionId === this.callConnectionId &&\n event.kind === \"PlayCompleted\" &&\n event.operationContext === playRequest.operationContext\n ) {\n playEventResult.isSuccess = true;\n playEventResult.successResult = event;\n return true;\n } else if (\n event.callConnectionId === this.callConnectionId &&\n event.kind === \"PlayFailed\" &&\n event.operationContext === playRequest.operationContext\n ) {\n playEventResult.isSuccess = false;\n playEventResult.failureResult = event;\n return true;\n } else {\n return false;\n }\n },\n abortSignal,\n timeoutInMs,\n );\n return playEventResult;\n },\n };\n return playResult;\n }\n\n /**\n * Play to all participants.\n *\n * @param playSources - A PlaySource representing the sources to play. Currently only single play source per request is supported.\n * @param options - Additional attributes for play.\n */\n public async playToAll(\n playSources: (FileSource | TextSource | SsmlSource)[],\n options: PlayToAllOptions = { loop: false },\n ): Promise<PlayResult> {\n const playRequest: PlayRequest = {\n playSources: playSources.map((source) => this.createPlaySourceInternal(source)),\n playTo: [],\n playOptions: {\n loop: false,\n },\n operationContext: options.operationContext ? options.operationContext : randomUUID(),\n operationCallbackUri: options.operationCallbackUrl,\n };\n\n if (options.loop !== undefined) {\n playRequest.playOptions = playRequest.playOptions || { loop: false }; // Ensure playOptions is defined\n playRequest.playOptions.loop = options.loop;\n }\n\n if (options.interruptCallMediaOperation !== undefined) {\n playRequest.playOptions = playRequest.playOptions || {\n loop: false,\n interruptCallMediaOperation: false,\n }; // Ensure playOptions is defined\n playRequest.playOptions.interruptCallMediaOperation = options.interruptCallMediaOperation;\n }\n\n await this.callMedia.play(this.callConnectionId, playRequest, options);\n\n const playResult: PlayResult = {\n waitForEventProcessor: async (abortSignal, timeoutInMs) => {\n const playEventResult: PlayEventResult = {\n isSuccess: false,\n };\n await this.callAutomationEventProcessor.waitForEventProcessor(\n (event) => {\n if (\n event.callConnectionId === this.callConnectionId &&\n event.kind === \"PlayCompleted\" &&\n event.operationContext === playRequest.operationContext\n ) {\n playEventResult.isSuccess = true;\n playEventResult.successResult = event;\n return true;\n } else if (\n event.callConnectionId === this.callConnectionId &&\n event.kind === \"PlayFailed\" &&\n event.operationContext === playRequest.operationContext\n ) {\n playEventResult.isSuccess = false;\n playEventResult.failureResult = event;\n return true;\n } else {\n return false;\n }\n },\n abortSignal,\n timeoutInMs,\n );\n return playEventResult;\n },\n };\n return playResult;\n }\n\n private createRecognizeRequest(\n targetParticipant: CommunicationIdentifier,\n recognizeOptions:\n | CallMediaRecognizeDtmfOptions\n | CallMediaRecognizeChoiceOptions\n | CallMediaRecognizeSpeechOptions\n | CallMediaRecognizeSpeechOrDtmfOptions,\n ): RecognizeRequest {\n if (recognizeOptions.kind === \"callMediaRecognizeDtmfOptions\") {\n const dtmfOptionsInternal: DtmfOptions = {\n interToneTimeoutInSeconds: recognizeOptions.interToneTimeoutInSeconds\n ? recognizeOptions.interToneTimeoutInSeconds\n : 2,\n maxTonesToCollect: recognizeOptions.maxTonesToCollect,\n stopTones: recognizeOptions.stopDtmfTones,\n };\n const recognizeOptionsInternal: RecognizeOptions = {\n interruptPrompt: recognizeOptions.interruptPrompt,\n initialSilenceTimeoutInSeconds: recognizeOptions.initialSilenceTimeoutInSeconds\n ? recognizeOptions.initialSilenceTimeoutInSeconds\n : 5,\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n dtmfOptions: dtmfOptionsInternal,\n };\n return {\n recognizeInputType: KnownRecognizeInputType.Dtmf,\n playPrompt: recognizeOptions.playPrompt\n ? this.createPlaySourceInternal(recognizeOptions.playPrompt)\n : undefined,\n playPrompts:\n recognizeOptions.playPrompts !== undefined\n ? recognizeOptions.playPrompts.map((source) => this.createPlaySourceInternal(source))\n : undefined,\n interruptCallMediaOperation: recognizeOptions.interruptCallMediaOperation,\n recognizeOptions: recognizeOptionsInternal,\n operationContext: recognizeOptions.operationContext,\n operationCallbackUri: recognizeOptions.operationCallbackUrl,\n };\n } else if (recognizeOptions.kind === \"callMediaRecognizeChoiceOptions\") {\n const recognizeOptionsInternal: RecognizeOptions = {\n interruptPrompt: recognizeOptions.interruptPrompt,\n initialSilenceTimeoutInSeconds: recognizeOptions.initialSilenceTimeoutInSeconds\n ? recognizeOptions.initialSilenceTimeoutInSeconds\n : 5,\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n speechLanguage: recognizeOptions.speechLanguage,\n speechRecognitionModelEndpointId: recognizeOptions.speechRecognitionModelEndpointId,\n choices: recognizeOptions.choices,\n };\n return {\n recognizeInputType: KnownRecognizeInputType.Choices,\n playPrompt: recognizeOptions.playPrompt\n ? this.createPlaySourceInternal(recognizeOptions.playPrompt)\n : undefined,\n playPrompts:\n recognizeOptions.playPrompts !== undefined\n ? recognizeOptions.playPrompts.map((source) => this.createPlaySourceInternal(source))\n : undefined,\n interruptCallMediaOperation: recognizeOptions.interruptCallMediaOperation,\n recognizeOptions: recognizeOptionsInternal,\n operationContext: recognizeOptions.operationContext,\n operationCallbackUri: recognizeOptions.operationCallbackUrl,\n };\n } else if (recognizeOptions.kind === \"callMediaRecognizeSpeechOptions\") {\n const speechOptions: SpeechOptions = {\n endSilenceTimeoutInMs: recognizeOptions.endSilenceTimeoutInSeconds\n ? recognizeOptions.endSilenceTimeoutInSeconds * 1000\n : 2000,\n };\n const recognizeOptionsInternal: RecognizeOptions = {\n interruptPrompt: recognizeOptions.interruptPrompt,\n initialSilenceTimeoutInSeconds: recognizeOptions.initialSilenceTimeoutInSeconds\n ? recognizeOptions.initialSilenceTimeoutInSeconds\n : 5,\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n speechOptions: speechOptions,\n speechLanguage: recognizeOptions.speechLanguage,\n speechRecognitionModelEndpointId: recognizeOptions.speechRecognitionModelEndpointId,\n };\n return {\n recognizeInputType: KnownRecognizeInputType.Speech,\n playPrompt: recognizeOptions.playPrompt\n ? this.createPlaySourceInternal(recognizeOptions.playPrompt)\n : undefined,\n playPrompts:\n recognizeOptions.playPrompts !== undefined\n ? recognizeOptions.playPrompts.map((source) => this.createPlaySourceInternal(source))\n : undefined,\n interruptCallMediaOperation: recognizeOptions.interruptCallMediaOperation,\n recognizeOptions: recognizeOptionsInternal,\n operationContext: recognizeOptions.operationContext,\n operationCallbackUri: recognizeOptions.operationCallbackUrl,\n };\n } else if (recognizeOptions.kind === \"callMediaRecognizeSpeechOrDtmfOptions\") {\n const dtmfOptionsInternal: DtmfOptions = {\n interToneTimeoutInSeconds: recognizeOptions.interToneTimeoutInSeconds\n ? recognizeOptions.interToneTimeoutInSeconds\n : 2,\n maxTonesToCollect: recognizeOptions.maxTonesToCollect,\n stopTones: recognizeOptions.stopDtmfTones,\n };\n const speechOptions: SpeechOptions = {\n endSilenceTimeoutInMs: recognizeOptions.endSilenceTimeoutInSeconds\n ? recognizeOptions.endSilenceTimeoutInSeconds * 1000\n : 2000,\n };\n const recognizeOptionsInternal: RecognizeOptions = {\n interruptPrompt: recognizeOptions.interruptPrompt,\n initialSilenceTimeoutInSeconds: recognizeOptions.initialSilenceTimeoutInSeconds\n ? recognizeOptions.initialSilenceTimeoutInSeconds\n : 5,\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n speechOptions: speechOptions,\n dtmfOptions: dtmfOptionsInternal,\n speechRecognitionModelEndpointId: recognizeOptions.speechRecognitionModelEndpointId,\n };\n return {\n recognizeInputType: KnownRecognizeInputType.SpeechOrDtmf,\n playPrompt: recognizeOptions.playPrompt\n ? this.createPlaySourceInternal(recognizeOptions.playPrompt)\n : undefined,\n playPrompts:\n recognizeOptions.playPrompts !== undefined\n ? recognizeOptions.playPrompts.map((source) => this.createPlaySourceInternal(source))\n : undefined,\n interruptCallMediaOperation: recognizeOptions.interruptCallMediaOperation,\n recognizeOptions: recognizeOptionsInternal,\n operationContext: recognizeOptions.operationContext,\n operationCallbackUri: recognizeOptions.operationCallbackUrl,\n };\n }\n throw new Error(\"Invalid recognizeOptions\");\n }\n\n /**\n * Recognize participant input.\n * @deprecated This method signature is deprecated. Please use the new signature with targetParticipant and options params instead, and set maxTonesToCollect in options.\n * @param targetParticipant - Target participant.\n * @param maxTonesToCollect - Maximum number of DTMF tones to be collected.\n * @param options - Different attributes for recognize.\n * */\n public async startRecognizing(\n targetParticipant: CommunicationIdentifier,\n maxTonesToCollect: number,\n options: CallMediaRecognizeDtmfOptions,\n ): Promise<StartRecognizingResult>;\n\n /**\n * Recognize participant input.\n * @param targetParticipant - Target participant.\n * @param options - Different attributes for recognize.\n * */\n public async startRecognizing(\n targetParticipant: CommunicationIdentifier,\n options:\n | CallMediaRecognizeDtmfOptions\n | CallMediaRecognizeChoiceOptions\n | CallMediaRecognizeSpeechOptions\n | CallMediaRecognizeSpeechOrDtmfOptions,\n ): Promise<StartRecognizingResult>;\n async startRecognizing(\n targetParticipant: CommunicationIdentifier,\n maxTonesOrOptions:\n | number\n | CallMediaRecognizeDtmfOptions\n | CallMediaRecognizeChoiceOptions\n | CallMediaRecognizeSpeechOptions\n | CallMediaRecognizeSpeechOrDtmfOptions,\n options?: CallMediaRecognizeDtmfOptions,\n ): Promise<StartRecognizingResult> {\n if (typeof maxTonesOrOptions === \"number\" && options) {\n // Old function signature logic\n console.warn(\n \"Deprecated function signature used. Please use the new signature with targetParticipant and options params instead, and set maxTonesToCollect in options.\",\n );\n options.maxTonesToCollect = maxTonesOrOptions;\n await this.callMedia.recognize(\n this.callConnectionId,\n this.createRecognizeRequest(targetParticipant, options),\n {},\n );\n } else if (typeof maxTonesOrOptions !== \"number\" && !options) {\n maxTonesOrOptions.operationContext = maxTonesOrOptions.operationContext\n ? maxTonesOrOptions.operationContext\n : randomUUID();\n // New function signature logic\n await this.callMedia.recognize(\n this.callConnectionId,\n this.createRecognizeRequest(targetParticipant, maxTonesOrOptions),\n {},\n );\n const startRecognizingResult: StartRecognizingResult = {\n waitForEventProcessor: async (abortSignal, timeoutInMs) => {\n const startRecognizingEventResult: StartRecognizingEventResult = {\n isSuccess: false,\n };\n await this.callAutomationEventProcessor.waitForEventProcessor(\n (event) => {\n if (\n event.callConnectionId === this.callConnectionId &&\n event.kind === \"RecognizeCompleted\" &&\n event.operationContext === maxTonesOrOptions.operationContext\n ) {\n startRecognizingEventResult.isSuccess = true;\n startRecognizingEventResult.successResult = event;\n return true;\n } else if (\n event.callConnectionId === this.callConnectionId &&\n event.kind === \"RecognizeFailed\" &&\n event.operationContext === maxTonesOrOptions.operationContext\n ) {\n startRecognizingEventResult.isSuccess = false;\n startRecognizingEventResult.failureResult = event;\n return true;\n } else {\n return false;\n }\n },\n abortSignal,\n timeoutInMs,\n );\n return startRecognizingEventResult;\n },\n };\n return startRecognizingResult;\n }\n throw new Error(\"Invalid params\");\n }\n\n /**\n * Cancels all the queued media operations.\n */\n public async cancelAllOperations(): Promise<CancelAllMediaOperationsResult> {\n await this.callMedia.cancelAllMediaOperations(this.callConnectionId, {});\n\n const cancelAllMediaOperationsResult: CancelAllMediaOperationsResult = {\n waitForEventProcessor: async (abortSignal, timeoutInMs) => {\n const cancelAllMediaOperationsEventResult: CancelAllMediaOperationsEventResult = {\n isSuccess: false,\n };\n await this.callAutomationEventProcessor.waitForEventProcessor(\n (event) => {\n if (event.callConnectionId === this.callConnectionId && event.kind === \"PlayCanceled\") {\n cancelAllMediaOperationsEventResult.isSuccess = true;\n cancelAllMediaOperationsEventResult.playCanceledSuccessResult = event;\n return true;\n } else if (\n event.callConnectionId === this.callConnectionId &&\n event.kind === \"RecognizeCanceled\"\n ) {\n cancelAllMediaOperationsEventResult.isSuccess = false;\n cancelAllMediaOperationsEventResult.recognizeCanceledSuccessResult = event;\n return true;\n } else {\n return false;\n }\n },\n abortSignal,\n timeoutInMs,\n );\n return cancelAllMediaOperationsEventResult;\n },\n };\n return cancelAllMediaOperationsResult;\n }\n\n /**\n * Start continuous Dtmf recognition by subscribing to tones.\n * @param targetParticipant - Target participant.\n * @param options - Additional attributes for continuous Dtmf recognition.\n * */\n public async startContinuousDtmfRecognition(\n targetParticipant: CommunicationIdentifier,\n options: ContinuousDtmfRecognitionOptions = {},\n ): Promise<void> {\n const continuousDtmfRecognitionRequest: ContinuousDtmfRecognitionRequest = {\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n operationContext: options.operationContext ? options.operationContext : randomUUID(),\n };\n return this.callMedia.startContinuousDtmfRecognition(\n this.callConnectionId,\n continuousDtmfRecognitionRequest,\n {},\n );\n }\n\n /**\n * Stop continuous Dtmf recognition by unsubscribing to tones.\n * @param targetParticipant - Target participant.\n * @param options - Additional attributes for continuous Dtmf recognition.\n * */\n public async stopContinuousDtmfRecognition(\n targetParticipant: CommunicationIdentifier,\n options: ContinuousDtmfRecognitionOptions = {},\n ): Promise<void> {\n const continuousDtmfRecognitionRequest: ContinuousDtmfRecognitionRequest = {\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n operationContext: options.operationContext ? options.operationContext : randomUUID(),\n operationCallbackUri: options.operationCallbackUrl,\n };\n return this.callMedia.stopContinuousDtmfRecognition(\n this.callConnectionId,\n continuousDtmfRecognitionRequest,\n {},\n );\n }\n\n /**\n * Send Dtmf tones.\n * @param tones - List of tones to be sent to target participant.\n * @param targetParticipant - Target participant.\n * @param options - Additional attributes for send Dtmf tones.\n * */\n public async sendDtmfTones(\n tones: Tone[] | DtmfTone[],\n targetParticipant: CommunicationIdentifier,\n options: SendDtmfTonesOptions = {},\n ): Promise<SendDtmfTonesResult> {\n const sendDtmfTonesRequest: SendDtmfTonesRequest = {\n tones: tones,\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n operationContext: options.operationContext ? options.operationContext : randomUUID(),\n operationCallbackUri: options.operationCallbackUrl,\n };\n await this.callMedia.sendDtmfTones(this.callConnectionId, sendDtmfTonesRequest, {});\n\n const sendDtmfTonesResult: SendDtmfTonesResult = {\n waitForEventProcessor: async (abortSignal, timeoutInMs) => {\n const sendDtmfEventResult: SendDtmfEventResult = {\n isSuccess: false,\n };\n await this.callAutomationEventProcessor.waitForEventProcessor(\n (event) => {\n if (\n event.callConnectionId === this.callConnectionId &&\n event.kind === \"SendDtmfTonesCompleted\" &&\n event.operationContext === sendDtmfTonesResult.operationContext\n ) {\n sendDtmfEventResult.isSuccess = true;\n sendDtmfEventResult.successResult = event;\n return true;\n } else if (\n event.callConnectionId === this.callConnectionId &&\n event.kind === \"SendDtmfTonesFailed\" &&\n event.operationContext === sendDtmfTonesResult.operationContext\n ) {\n sendDtmfEventResult.isSuccess = false;\n sendDtmfEventResult.failureResult = event;\n return true;\n } else {\n return false;\n }\n },\n abortSignal,\n timeoutInMs,\n );\n return sendDtmfEventResult;\n },\n };\n return sendDtmfTonesResult;\n }\n\n /**\n * Put participant on hold while playing audio.\n *\n * @param targetParticipant - The targets to play to.\n * @param options - Additional attributes for hold participant.\n */\n public async hold(\n targetParticipant: CommunicationIdentifier,\n options: HoldOptions = {},\n ): Promise<void> {\n const holdRequest: HoldRequest = {\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n playSourceInfo:\n options.playSource !== undefined\n ? this.createPlaySourceInternal(options.playSource)\n : undefined,\n operationContext:\n options.operationContext !== undefined ? options.operationContext : undefined,\n operationCallbackUri:\n options.operationCallbackUri !== undefined ? options.operationCallbackUri : undefined,\n };\n return this.callMedia.hold(this.callConnectionId, holdRequest);\n }\n\n /**\n * Remove participant from hold.\n *\n * @param targetParticipant - The targets to play to.\n * @param options - Additional attributes for unhold participant.\n */\n public async unhold(\n targetParticipant: CommunicationIdentifier,\n options: UnholdOptions = {},\n ): Promise<void> {\n const unholdRequest: UnholdRequest = {\n targetParticipant: serializeCommunicationIdentifier(targetParticipant),\n operationContext:\n options.operationContext !== undefined ? options.operationContext : undefined,\n };\n return this.callMedia.unhold(this.callConnectionId, unholdRequest);\n }\n\n /**\n * Starts transcription in the call\n * @param options - Additional attributes for start transcription.\n */\n public async startTranscription(options: StartTranscriptionOptions = {}): Promise<void> {\n const startTranscriptionRequest: StartTranscriptionRequest = {\n locale: options.locale,\n operationContext: options.operationContext,\n speechModelEndpointId: options.speechRecognitionModelEndpointId,\n operationCallbackUri: options.operationCallbackUrl,\n };\n return this.callMedia.startTranscription(this.callConnectionId, startTranscriptionRequest, {});\n }\n\n /**\n * Stops transcription in the call.\n * @param options - Additional attributes for stop transcription.\n */\n public async stopTranscription(options: StopTranscriptionOptions = {}): Promise<void> {\n const stopTranscriptionRequest: StopTranscriptionRequest = {\n operationContext: options.operationContext,\n operationCallbackUri: options.operationCallbackUrl,\n };\n return this.callMedia.stopTranscription(this.callConnectionId, stopTranscriptionRequest, {});\n }\n\n /**\n * Update transcription language.\n * @param locale - Defines new locale for transcription.\n */\n public async updateTranscription(\n locale: string,\n options?: UpdateTranscriptionOptions,\n ): Promise<void> {\n const updateTranscriptionRequest: UpdateTranscriptionRequest = {\n locale: locale,\n speechModelEndpointId: options?.speechRecognitionModelEndpointId,\n operationContext: options?.operationContext,\n operationCallbackUri: options?.operationCallbackUrl,\n };\n return this.callMedia.updateTranscription(\n this.callConnectionId,\n updateTranscriptionRequest,\n {},\n );\n }\n /**\n * Starts media streaming in the call.\n * @param options - Additional attributes for start media streaming.\n */\n public async startMediaStreaming(options: StartMediaStreamingOptions = {}): Promise<void> {\n const startMediaStreamingRequest: StartMediaStreamingRequest = {\n operationContext: options.operationContext,\n operationCallbackUri: options.operationCallbackUrl,\n };\n return this.callMedia.startMediaStreaming(\n this.callConnectionId,\n startMediaStreamingRequest,\n options,\n );\n }\n\n /**\n * Stops media streaming in the call.\n * @param options - Additional attributes for stop media streaming.\n */\n public async stopMediaStreaming(options: StopMediaStreamingOptions = {}): Promise<void> {\n const stopMediaStreamingRequest: StopMediaStreamingRequest = {\n operationCallbackUri: options.operationCallbackUrl,\n operationContext: options.operationContext,\n };\n return this.callMedia.stopMediaStreaming(\n this.callConnectionId,\n stopMediaStreamingRequest,\n options,\n );\n }\n\n /**\n * Interrupt audio and announce to specific participant.\n *\n * @param playSources - A PlaySource representing the sources to play.\n * @param playTo - The targets to play to.\n * @param options - Additional attributes for interrupt audio and announce.\n */\n public async interruptAudioAndAnnounce(\n playSources: (FileSource | TextSource | SsmlSource)[],\n playTo: CommunicationIdentifier,\n options: InterruptAudioAndAnnounceOptions = {},\n ): Promise<void> {\n const interruptAudioAndAnnounceRequest: InterruptAudioAndAnnounceRequest = {\n playSources: playSources.map((source) => this.createPlaySourceInternal(source)),\n playTo: serializeCommunicationIdentifier(playTo),\n operationContext: options.operationContext,\n };\n return this.callMedia.interruptAudioAndAnnounce(\n this.callConnectionId,\n interruptAudioAndAnnounceRequest,\n );\n }\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import type { CallAutomationApiClientOptionalParams } from "./generated/src/models/index.js";
2
- import type { RecordingStateResult } from "./models/responses.js";
3
- import type { StartRecordingOptions, StopRecordingOptions, PauseRecordingOptions, GetRecordingPropertiesOptions, ResumeRecordingOptions, DeleteRecordingOptions, DownloadRecordingOptions } from "./models/options.js";
2
+ import type { RecordingResult, RecordingStateResult } from "./models/responses.js";
3
+ import type { StartRecordingOptions, StopRecordingOptions, PauseRecordingOptions, GetRecordingPropertiesOptions, GetRecordingResultOptions, ResumeRecordingOptions, DeleteRecordingOptions, DownloadRecordingOptions } from "./models/options.js";
4
4
  import type { KeyCredential, TokenCredential } from "@azure/core-auth";
5
5
  /**
6
6
  * CallRecording class represents call recording related APIs.
@@ -40,6 +40,12 @@ export declare class CallRecording {
40
40
  * @param options - Additional request options contains resumeRecording api options.
41
41
  */
42
42
  resume(recordingId: string, options?: ResumeRecordingOptions): Promise<void>;
43
+ /**
44
+ * Returns call recording result.
45
+ * @param recordingId - The recordingId associated with the recording.
46
+ * @param options - Additional request options contains getRecordingProperties api options.
47
+ */
48
+ getRecordingResult(recordingId: string, options?: GetRecordingResultOptions): Promise<RecordingResult>;
43
49
  /**
44
50
  * Deletes a recording.
45
51
  * @param recordingLocationUrl - The recording location url. Required.
@@ -1 +1 @@
1
- {"version":3,"file":"callRecording.d.ts","sourceRoot":"","sources":["../../src/callRecording.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,qCAAqC,EAEtC,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,6BAA6B,EAC7B,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAIvE;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IACtD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwB;IAC1D,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA0B;gBAGhE,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,aAAa,GAAG,eAAe,EAC3C,OAAO,CAAC,EAAE,qCAAqC;IAUjD;;;;OAIG;IACU,KAAK,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAuEjF;;;;OAIG;IACU,QAAQ,CACnB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,6BAAkC,GAC1C,OAAO,CAAC,oBAAoB,CAAC;IAYhC;;;;OAIG;IACU,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzF;;;;OAIG;IACU,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3F;;;;OAIG;IACU,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7F;;;;OAIG;IACU,MAAM,CACjB,oBAAoB,EAAE,MAAM,EAC5B,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,IAAI,CAAC;IAIhB;;;;OAIG;IACU,iBAAiB,CAC5B,iBAAiB,EAAE,MAAM,EACzB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC;IAUjC;;;;;OAKG;IACU,gBAAgB,CAC3B,iBAAiB,EAAE,MAAM,EACzB,iBAAiB,EAAE,MAAM,CAAC,cAAc,EACxC,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,IAAI,CAAC;IAehB;;;;;OAKG;IACU,cAAc,CACzB,iBAAiB,EAAE,MAAM,EACzB,eAAe,EAAE,MAAM,EACvB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,IAAI,CAAC;CAejB"}
1
+ {"version":3,"file":"callRecording.d.ts","sourceRoot":"","sources":["../../src/callRecording.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,qCAAqC,EAEtC,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACpB,qBAAqB,EACrB,6BAA6B,EAC7B,yBAAyB,EACzB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAIvE;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoB;IACtD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwB;IAC1D,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA0B;gBAGhE,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,aAAa,GAAG,eAAe,EAC3C,OAAO,CAAC,EAAE,qCAAqC;IAYjD;;;;OAIG;IACU,KAAK,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAuEjF;;;;OAIG;IACU,QAAQ,CACnB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,6BAAkC,GAC1C,OAAO,CAAC,oBAAoB,CAAC;IAYhC;;;;OAIG;IACU,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzF;;;;OAIG;IACU,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3F;;;;OAIG;IACU,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,sBAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;IAI7F;;;;OAIG;IACU,kBAAkB,CAC7B,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,eAAe,CAAC;IAgB3B;;;;OAIG;IACU,MAAM,CACjB,oBAAoB,EAAE,MAAM,EAC5B,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,IAAI,CAAC;IAIhB;;;;OAIG;IACU,iBAAiB,CAC5B,iBAAiB,EAAE,MAAM,EACzB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC;IAUjC;;;;;OAKG;IACU,gBAAgB,CAC3B,iBAAiB,EAAE,MAAM,EACzB,iBAAiB,EAAE,MAAM,CAAC,cAAc,EACxC,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,IAAI,CAAC;IAehB;;;;;OAKG;IACU,cAAc,CACzB,iBAAiB,EAAE,MAAM,EACzB,eAAe,EAAE,MAAM,EACvB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,IAAI,CAAC;CAejB"}
@@ -5,16 +5,13 @@ import { communicationIdentifierModelConverter } from "./utli/converters.js";
5
5
  import { ContentDownloaderImpl } from "./contentDownloader.js";
6
6
  import * as fs from "node:fs";
7
7
  import { randomUUID } from "@azure/core-util";
8
- import { CallAutomationApiClient } from "./generated/src/index.js";
9
- import { createCommunicationAuthPolicy } from "@azure/communication-common";
8
+ import { createCustomCallAutomationApiClient } from "./credential/callAutomationAuthPolicy.js";
10
9
  /**
11
10
  * CallRecording class represents call recording related APIs.
12
11
  */
13
12
  export class CallRecording {
14
13
  constructor(endpoint, credential, options) {
15
- this.callAutomationApiClient = new CallAutomationApiClient(endpoint, options);
16
- const authPolicy = createCommunicationAuthPolicy(credential);
17
- this.callAutomationApiClient.pipeline.addPolicy(authPolicy);
14
+ this.callAutomationApiClient = createCustomCallAutomationApiClient(credential, options, endpoint);
18
15
  this.callRecordingImpl = new CallRecordingImpl(this.callAutomationApiClient);
19
16
  this.contentDownloader = new ContentDownloaderImpl(this.callAutomationApiClient);
20
17
  }
@@ -120,6 +117,24 @@ export class CallRecording {
120
117
  async resume(recordingId, options = {}) {
121
118
  return this.callRecordingImpl.resumeRecording(recordingId, options);
122
119
  }
120
+ /**
121
+ * Returns call recording result.
122
+ * @param recordingId - The recordingId associated with the recording.
123
+ * @param options - Additional request options contains getRecordingProperties api options.
124
+ */
125
+ async getRecordingResult(recordingId, options = {}) {
126
+ const response = await this.callRecordingImpl.getRecordingResult(recordingId, options);
127
+ const result = {
128
+ recordingId: response.recordingId,
129
+ errors: response.errors,
130
+ recordingDurationMs: response.recordingDurationMs,
131
+ recordingExpirationTime: response.recordingExpirationTime,
132
+ recordingStartTime: response.recordingStartTime,
133
+ recordingStorageInfo: response.recordingStorageInfo,
134
+ sessionEndReason: response.sessionEndReason,
135
+ };
136
+ return result;
137
+ }
123
138
  /**
124
139
  * Deletes a recording.
125
140
  * @param recordingLocationUrl - The recording location url. Required.