@azure/communication-call-automation 1.5.0 → 1.6.0-alpha.20250901.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 (481) hide show
  1. package/README.md +48 -0
  2. package/dist/browser/callAutomationClient.d.ts +8 -0
  3. package/dist/browser/callAutomationClient.d.ts.map +1 -1
  4. package/dist/browser/callAutomationClient.js +141 -84
  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 +56 -9
  8. package/dist/browser/callAutomationEventParser.js.map +1 -1
  9. package/dist/browser/callConnection.d.ts +15 -5
  10. package/dist/browser/callConnection.d.ts.map +1 -1
  11. package/dist/browser/callConnection.js +193 -86
  12. package/dist/browser/callConnection.js.map +1 -1
  13. package/dist/browser/callMedia.d.ts +19 -9
  14. package/dist/browser/callMedia.d.ts.map +1 -1
  15. package/dist/browser/callMedia.js +175 -28
  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 +26 -16
  20. package/dist/browser/callRecording.js.map +1 -1
  21. package/dist/browser/contentDownloader.js +12 -11
  22. package/dist/browser/contentDownloader.js.map +1 -1
  23. package/dist/browser/credential/callAutomationAccessKeyCredentialPolicy.js +2 -1
  24. package/dist/browser/credential/callAutomationAccessKeyCredentialPolicy.js.map +1 -1
  25. package/dist/browser/credential/callAutomationAuthPolicy.js +1 -1
  26. package/dist/browser/credential/callAutomationAuthPolicy.js.map +1 -1
  27. package/dist/browser/credential/cryptoUtils-browser.mjs.map +1 -1
  28. package/dist/browser/credential/cryptoUtils.js +2 -1
  29. package/dist/browser/eventprocessor/callAutomationEventProcessor.d.ts +39 -0
  30. package/dist/browser/eventprocessor/callAutomationEventProcessor.d.ts.map +1 -0
  31. package/dist/browser/eventprocessor/callAutomationEventProcessor.js +137 -0
  32. package/dist/browser/eventprocessor/callAutomationEventProcessor.js.map +1 -0
  33. package/dist/browser/eventprocessor/eventResponses.d.ts +134 -0
  34. package/dist/browser/eventprocessor/eventResponses.d.ts.map +1 -0
  35. package/dist/browser/eventprocessor/eventResponses.js +4 -0
  36. package/dist/browser/eventprocessor/eventResponses.js.map +1 -0
  37. package/dist/browser/generated/src/callAutomationApiClient.d.ts +2 -1
  38. package/dist/browser/generated/src/callAutomationApiClient.d.ts.map +1 -1
  39. package/dist/browser/generated/src/callAutomationApiClient.js +7 -15
  40. package/dist/browser/generated/src/callAutomationApiClient.js.map +1 -1
  41. package/dist/browser/generated/src/models/index.d.ts +1129 -347
  42. package/dist/browser/generated/src/models/index.d.ts.map +1 -1
  43. package/dist/browser/generated/src/models/index.js +159 -75
  44. package/dist/browser/generated/src/models/index.js.map +1 -1
  45. package/dist/browser/generated/src/models/mappers.d.ts +88 -47
  46. package/dist/browser/generated/src/models/mappers.d.ts.map +1 -1
  47. package/dist/browser/generated/src/models/mappers.js +2136 -499
  48. package/dist/browser/generated/src/models/mappers.js.map +1 -1
  49. package/dist/browser/generated/src/models/parameters.d.ts +8 -1
  50. package/dist/browser/generated/src/models/parameters.d.ts.map +1 -1
  51. package/dist/browser/generated/src/models/parameters.js +45 -6
  52. package/dist/browser/generated/src/models/parameters.js.map +1 -1
  53. package/dist/browser/generated/src/operations/callConnection.d.ts +16 -2
  54. package/dist/browser/generated/src/operations/callConnection.d.ts.map +1 -1
  55. package/dist/browser/generated/src/operations/callConnection.js +105 -24
  56. package/dist/browser/generated/src/operations/callConnection.js.map +1 -1
  57. package/dist/browser/generated/src/operations/callDialog.d.ts +35 -0
  58. package/dist/browser/generated/src/operations/callDialog.d.ts.map +1 -0
  59. package/dist/browser/generated/src/operations/callDialog.js +111 -0
  60. package/dist/browser/generated/src/operations/callDialog.js.map +1 -0
  61. package/dist/browser/generated/src/operations/callMedia.d.ts +15 -8
  62. package/dist/browser/generated/src/operations/callMedia.d.ts.map +1 -1
  63. package/dist/browser/generated/src/operations/callMedia.js +50 -26
  64. package/dist/browser/generated/src/operations/callMedia.js.map +1 -1
  65. package/dist/browser/generated/src/operations/callRecording.d.ts +7 -1
  66. package/dist/browser/generated/src/operations/callRecording.d.ts.map +1 -1
  67. package/dist/browser/generated/src/operations/callRecording.js +24 -1
  68. package/dist/browser/generated/src/operations/callRecording.js.map +1 -1
  69. package/dist/browser/generated/src/operations/index.d.ts +1 -0
  70. package/dist/browser/generated/src/operations/index.d.ts.map +1 -1
  71. package/dist/browser/generated/src/operations/index.js +1 -0
  72. package/dist/browser/generated/src/operations/index.js.map +1 -1
  73. package/dist/browser/generated/src/operationsInterfaces/callConnection.d.ts +16 -2
  74. package/dist/browser/generated/src/operationsInterfaces/callConnection.d.ts.map +1 -1
  75. package/dist/browser/generated/src/operationsInterfaces/callConnection.js.map +1 -1
  76. package/dist/browser/generated/src/operationsInterfaces/callDialog.d.ts +27 -0
  77. package/dist/browser/generated/src/operationsInterfaces/callDialog.d.ts.map +1 -0
  78. package/dist/browser/generated/src/operationsInterfaces/callDialog.js +9 -0
  79. package/dist/browser/generated/src/operationsInterfaces/callDialog.js.map +1 -0
  80. package/dist/browser/generated/src/operationsInterfaces/callMedia.d.ts +15 -8
  81. package/dist/browser/generated/src/operationsInterfaces/callMedia.d.ts.map +1 -1
  82. package/dist/browser/generated/src/operationsInterfaces/callMedia.js.map +1 -1
  83. package/dist/browser/generated/src/operationsInterfaces/callRecording.d.ts +7 -1
  84. package/dist/browser/generated/src/operationsInterfaces/callRecording.d.ts.map +1 -1
  85. package/dist/browser/generated/src/operationsInterfaces/callRecording.js.map +1 -1
  86. package/dist/browser/generated/src/operationsInterfaces/index.d.ts +1 -0
  87. package/dist/browser/generated/src/operationsInterfaces/index.d.ts.map +1 -1
  88. package/dist/browser/generated/src/operationsInterfaces/index.js +1 -0
  89. package/dist/browser/generated/src/operationsInterfaces/index.js.map +1 -1
  90. package/dist/browser/generated/src/pagingHelper.js +4 -2
  91. package/dist/browser/generated/src/pagingHelper.js.map +1 -1
  92. package/dist/browser/index.d.ts +2 -0
  93. package/dist/browser/index.d.ts.map +1 -1
  94. package/dist/browser/index.js +2 -0
  95. package/dist/browser/index.js.map +1 -1
  96. package/dist/browser/models/constants.d.ts.map +1 -1
  97. package/dist/browser/models/constants.js +1 -1
  98. package/dist/browser/models/constants.js.map +1 -1
  99. package/dist/browser/models/events.d.ts +336 -296
  100. package/dist/browser/models/events.d.ts.map +1 -1
  101. package/dist/browser/models/events.js.map +1 -1
  102. package/dist/browser/models/models.d.ts +76 -38
  103. package/dist/browser/models/models.d.ts.map +1 -1
  104. package/dist/browser/models/models.js +3 -1
  105. package/dist/browser/models/models.js.map +1 -1
  106. package/dist/browser/models/options.d.ts +34 -4
  107. package/dist/browser/models/options.d.ts.map +1 -1
  108. package/dist/browser/models/options.js.map +1 -1
  109. package/dist/browser/models/responses.d.ts +82 -10
  110. package/dist/browser/models/responses.d.ts.map +1 -1
  111. package/dist/browser/models/responses.js.map +1 -1
  112. package/dist/browser/models/streaming.d.ts +27 -26
  113. package/dist/browser/models/streaming.d.ts.map +1 -1
  114. package/dist/browser/models/streaming.js +57 -28
  115. package/dist/browser/models/streaming.js.map +1 -1
  116. package/dist/browser/streamingData.d.ts.map +1 -1
  117. package/dist/browser/streamingData.js +1 -10
  118. package/dist/browser/streamingData.js.map +1 -1
  119. package/dist/browser/utli/converters.d.ts +26 -2
  120. package/dist/browser/utli/converters.d.ts.map +1 -1
  121. package/dist/browser/utli/converters.js +122 -48
  122. package/dist/browser/utli/converters.js.map +1 -1
  123. package/dist/commonjs/callAutomationClient.d.ts +8 -0
  124. package/dist/commonjs/callAutomationClient.d.ts.map +1 -1
  125. package/dist/commonjs/callAutomationClient.js +139 -82
  126. package/dist/commonjs/callAutomationClient.js.map +1 -1
  127. package/dist/commonjs/callAutomationEventParser.d.ts.map +1 -1
  128. package/dist/commonjs/callAutomationEventParser.js +55 -8
  129. package/dist/commonjs/callAutomationEventParser.js.map +1 -1
  130. package/dist/commonjs/callConnection.d.ts +15 -5
  131. package/dist/commonjs/callConnection.d.ts.map +1 -1
  132. package/dist/commonjs/callConnection.js +194 -87
  133. package/dist/commonjs/callConnection.js.map +1 -1
  134. package/dist/commonjs/callMedia.d.ts +19 -9
  135. package/dist/commonjs/callMedia.d.ts.map +1 -1
  136. package/dist/commonjs/callMedia.js +183 -36
  137. package/dist/commonjs/callMedia.js.map +1 -1
  138. package/dist/commonjs/callRecording.d.ts +8 -2
  139. package/dist/commonjs/callRecording.d.ts.map +1 -1
  140. package/dist/commonjs/callRecording.js +27 -17
  141. package/dist/commonjs/callRecording.js.map +1 -1
  142. package/dist/commonjs/contentDownloader.js +12 -11
  143. package/dist/commonjs/contentDownloader.js.map +1 -1
  144. package/dist/commonjs/credential/callAutomationAccessKeyCredentialPolicy.js +2 -1
  145. package/dist/commonjs/credential/callAutomationAccessKeyCredentialPolicy.js.map +1 -1
  146. package/dist/commonjs/credential/callAutomationAuthPolicy.js +1 -1
  147. package/dist/commonjs/credential/callAutomationAuthPolicy.js.map +1 -1
  148. package/dist/commonjs/eventprocessor/callAutomationEventProcessor.d.ts +39 -0
  149. package/dist/commonjs/eventprocessor/callAutomationEventProcessor.d.ts.map +1 -0
  150. package/dist/commonjs/eventprocessor/callAutomationEventProcessor.js +141 -0
  151. package/dist/commonjs/eventprocessor/callAutomationEventProcessor.js.map +1 -0
  152. package/dist/commonjs/eventprocessor/eventResponses.d.ts +134 -0
  153. package/dist/commonjs/eventprocessor/eventResponses.d.ts.map +1 -0
  154. package/dist/commonjs/eventprocessor/eventResponses.js +5 -0
  155. package/dist/commonjs/eventprocessor/eventResponses.js.map +1 -0
  156. package/dist/commonjs/generated/src/callAutomationApiClient.d.ts +2 -1
  157. package/dist/commonjs/generated/src/callAutomationApiClient.d.ts.map +1 -1
  158. package/dist/commonjs/generated/src/callAutomationApiClient.js +6 -14
  159. package/dist/commonjs/generated/src/callAutomationApiClient.js.map +1 -1
  160. package/dist/commonjs/generated/src/models/index.d.ts +1129 -347
  161. package/dist/commonjs/generated/src/models/index.d.ts.map +1 -1
  162. package/dist/commonjs/generated/src/models/index.js +160 -76
  163. package/dist/commonjs/generated/src/models/index.js.map +1 -1
  164. package/dist/commonjs/generated/src/models/mappers.d.ts +88 -47
  165. package/dist/commonjs/generated/src/models/mappers.d.ts.map +1 -1
  166. package/dist/commonjs/generated/src/models/mappers.js +2139 -502
  167. package/dist/commonjs/generated/src/models/mappers.js.map +1 -1
  168. package/dist/commonjs/generated/src/models/parameters.d.ts +8 -1
  169. package/dist/commonjs/generated/src/models/parameters.d.ts.map +1 -1
  170. package/dist/commonjs/generated/src/models/parameters.js +45 -6
  171. package/dist/commonjs/generated/src/models/parameters.js.map +1 -1
  172. package/dist/commonjs/generated/src/operations/callConnection.d.ts +16 -2
  173. package/dist/commonjs/generated/src/operations/callConnection.d.ts.map +1 -1
  174. package/dist/commonjs/generated/src/operations/callConnection.js +104 -24
  175. package/dist/commonjs/generated/src/operations/callConnection.js.map +1 -1
  176. package/dist/commonjs/generated/src/operations/callDialog.d.ts +35 -0
  177. package/dist/commonjs/generated/src/operations/callDialog.d.ts.map +1 -0
  178. package/dist/commonjs/generated/src/operations/callDialog.js +116 -0
  179. package/dist/commonjs/generated/src/operations/callDialog.js.map +1 -0
  180. package/dist/commonjs/generated/src/operations/callMedia.d.ts +15 -8
  181. package/dist/commonjs/generated/src/operations/callMedia.d.ts.map +1 -1
  182. package/dist/commonjs/generated/src/operations/callMedia.js +50 -26
  183. package/dist/commonjs/generated/src/operations/callMedia.js.map +1 -1
  184. package/dist/commonjs/generated/src/operations/callRecording.d.ts +7 -1
  185. package/dist/commonjs/generated/src/operations/callRecording.d.ts.map +1 -1
  186. package/dist/commonjs/generated/src/operations/callRecording.js +24 -1
  187. package/dist/commonjs/generated/src/operations/callRecording.js.map +1 -1
  188. package/dist/commonjs/generated/src/operations/index.d.ts +1 -0
  189. package/dist/commonjs/generated/src/operations/index.d.ts.map +1 -1
  190. package/dist/commonjs/generated/src/operations/index.js +1 -0
  191. package/dist/commonjs/generated/src/operations/index.js.map +1 -1
  192. package/dist/commonjs/generated/src/operationsInterfaces/callConnection.d.ts +16 -2
  193. package/dist/commonjs/generated/src/operationsInterfaces/callConnection.d.ts.map +1 -1
  194. package/dist/commonjs/generated/src/operationsInterfaces/callConnection.js.map +1 -1
  195. package/dist/commonjs/generated/src/operationsInterfaces/callDialog.d.ts +27 -0
  196. package/dist/commonjs/generated/src/operationsInterfaces/callDialog.d.ts.map +1 -0
  197. package/dist/commonjs/generated/src/operationsInterfaces/callDialog.js +10 -0
  198. package/dist/commonjs/generated/src/operationsInterfaces/callDialog.js.map +1 -0
  199. package/dist/commonjs/generated/src/operationsInterfaces/callMedia.d.ts +15 -8
  200. package/dist/commonjs/generated/src/operationsInterfaces/callMedia.d.ts.map +1 -1
  201. package/dist/commonjs/generated/src/operationsInterfaces/callMedia.js.map +1 -1
  202. package/dist/commonjs/generated/src/operationsInterfaces/callRecording.d.ts +7 -1
  203. package/dist/commonjs/generated/src/operationsInterfaces/callRecording.d.ts.map +1 -1
  204. package/dist/commonjs/generated/src/operationsInterfaces/callRecording.js.map +1 -1
  205. package/dist/commonjs/generated/src/operationsInterfaces/index.d.ts +1 -0
  206. package/dist/commonjs/generated/src/operationsInterfaces/index.d.ts.map +1 -1
  207. package/dist/commonjs/generated/src/operationsInterfaces/index.js +1 -0
  208. package/dist/commonjs/generated/src/operationsInterfaces/index.js.map +1 -1
  209. package/dist/commonjs/generated/src/pagingHelper.js +4 -2
  210. package/dist/commonjs/generated/src/pagingHelper.js.map +1 -1
  211. package/dist/commonjs/index.d.ts +2 -0
  212. package/dist/commonjs/index.d.ts.map +1 -1
  213. package/dist/commonjs/index.js +2 -0
  214. package/dist/commonjs/index.js.map +1 -1
  215. package/dist/commonjs/models/constants.d.ts.map +1 -1
  216. package/dist/commonjs/models/constants.js +1 -1
  217. package/dist/commonjs/models/constants.js.map +1 -1
  218. package/dist/commonjs/models/events.d.ts +336 -296
  219. package/dist/commonjs/models/events.d.ts.map +1 -1
  220. package/dist/commonjs/models/events.js.map +1 -1
  221. package/dist/commonjs/models/models.d.ts +76 -38
  222. package/dist/commonjs/models/models.d.ts.map +1 -1
  223. package/dist/commonjs/models/models.js +21 -2
  224. package/dist/commonjs/models/models.js.map +1 -1
  225. package/dist/commonjs/models/options.d.ts +34 -4
  226. package/dist/commonjs/models/options.d.ts.map +1 -1
  227. package/dist/commonjs/models/options.js.map +1 -1
  228. package/dist/commonjs/models/responses.d.ts +82 -10
  229. package/dist/commonjs/models/responses.d.ts.map +1 -1
  230. package/dist/commonjs/models/responses.js.map +1 -1
  231. package/dist/commonjs/models/streaming.d.ts +27 -26
  232. package/dist/commonjs/models/streaming.d.ts.map +1 -1
  233. package/dist/commonjs/models/streaming.js +59 -31
  234. package/dist/commonjs/models/streaming.js.map +1 -1
  235. package/dist/commonjs/streamingData.d.ts.map +1 -1
  236. package/dist/commonjs/streamingData.js +1 -10
  237. package/dist/commonjs/streamingData.js.map +1 -1
  238. package/dist/commonjs/tsdoc-metadata.json +11 -11
  239. package/dist/commonjs/utli/converters.d.ts +26 -2
  240. package/dist/commonjs/utli/converters.d.ts.map +1 -1
  241. package/dist/commonjs/utli/converters.js +127 -47
  242. package/dist/commonjs/utli/converters.js.map +1 -1
  243. package/dist/esm/callAutomationClient.d.ts +8 -0
  244. package/dist/esm/callAutomationClient.d.ts.map +1 -1
  245. package/dist/esm/callAutomationClient.js +141 -84
  246. package/dist/esm/callAutomationClient.js.map +1 -1
  247. package/dist/esm/callAutomationEventParser.d.ts.map +1 -1
  248. package/dist/esm/callAutomationEventParser.js +56 -9
  249. package/dist/esm/callAutomationEventParser.js.map +1 -1
  250. package/dist/esm/callConnection.d.ts +15 -5
  251. package/dist/esm/callConnection.d.ts.map +1 -1
  252. package/dist/esm/callConnection.js +193 -86
  253. package/dist/esm/callConnection.js.map +1 -1
  254. package/dist/esm/callMedia.d.ts +19 -9
  255. package/dist/esm/callMedia.d.ts.map +1 -1
  256. package/dist/esm/callMedia.js +175 -28
  257. package/dist/esm/callMedia.js.map +1 -1
  258. package/dist/esm/callRecording.d.ts +8 -2
  259. package/dist/esm/callRecording.d.ts.map +1 -1
  260. package/dist/esm/callRecording.js +26 -16
  261. package/dist/esm/callRecording.js.map +1 -1
  262. package/dist/esm/contentDownloader.js +12 -11
  263. package/dist/esm/contentDownloader.js.map +1 -1
  264. package/dist/esm/credential/callAutomationAccessKeyCredentialPolicy.js +2 -1
  265. package/dist/esm/credential/callAutomationAccessKeyCredentialPolicy.js.map +1 -1
  266. package/dist/esm/credential/callAutomationAuthPolicy.js +1 -1
  267. package/dist/esm/credential/callAutomationAuthPolicy.js.map +1 -1
  268. package/dist/esm/eventprocessor/callAutomationEventProcessor.d.ts +39 -0
  269. package/dist/esm/eventprocessor/callAutomationEventProcessor.d.ts.map +1 -0
  270. package/dist/esm/eventprocessor/callAutomationEventProcessor.js +137 -0
  271. package/dist/esm/eventprocessor/callAutomationEventProcessor.js.map +1 -0
  272. package/dist/esm/eventprocessor/eventResponses.d.ts +134 -0
  273. package/dist/esm/eventprocessor/eventResponses.d.ts.map +1 -0
  274. package/dist/esm/eventprocessor/eventResponses.js +4 -0
  275. package/dist/esm/eventprocessor/eventResponses.js.map +1 -0
  276. package/dist/esm/generated/src/callAutomationApiClient.d.ts +2 -1
  277. package/dist/esm/generated/src/callAutomationApiClient.d.ts.map +1 -1
  278. package/dist/esm/generated/src/callAutomationApiClient.js +7 -15
  279. package/dist/esm/generated/src/callAutomationApiClient.js.map +1 -1
  280. package/dist/esm/generated/src/models/index.d.ts +1129 -347
  281. package/dist/esm/generated/src/models/index.d.ts.map +1 -1
  282. package/dist/esm/generated/src/models/index.js +159 -75
  283. package/dist/esm/generated/src/models/index.js.map +1 -1
  284. package/dist/esm/generated/src/models/mappers.d.ts +88 -47
  285. package/dist/esm/generated/src/models/mappers.d.ts.map +1 -1
  286. package/dist/esm/generated/src/models/mappers.js +2136 -499
  287. package/dist/esm/generated/src/models/mappers.js.map +1 -1
  288. package/dist/esm/generated/src/models/parameters.d.ts +8 -1
  289. package/dist/esm/generated/src/models/parameters.d.ts.map +1 -1
  290. package/dist/esm/generated/src/models/parameters.js +45 -6
  291. package/dist/esm/generated/src/models/parameters.js.map +1 -1
  292. package/dist/esm/generated/src/operations/callConnection.d.ts +16 -2
  293. package/dist/esm/generated/src/operations/callConnection.d.ts.map +1 -1
  294. package/dist/esm/generated/src/operations/callConnection.js +105 -24
  295. package/dist/esm/generated/src/operations/callConnection.js.map +1 -1
  296. package/dist/esm/generated/src/operations/callDialog.d.ts +35 -0
  297. package/dist/esm/generated/src/operations/callDialog.d.ts.map +1 -0
  298. package/dist/esm/generated/src/operations/callDialog.js +111 -0
  299. package/dist/esm/generated/src/operations/callDialog.js.map +1 -0
  300. package/dist/esm/generated/src/operations/callMedia.d.ts +15 -8
  301. package/dist/esm/generated/src/operations/callMedia.d.ts.map +1 -1
  302. package/dist/esm/generated/src/operations/callMedia.js +50 -26
  303. package/dist/esm/generated/src/operations/callMedia.js.map +1 -1
  304. package/dist/esm/generated/src/operations/callRecording.d.ts +7 -1
  305. package/dist/esm/generated/src/operations/callRecording.d.ts.map +1 -1
  306. package/dist/esm/generated/src/operations/callRecording.js +24 -1
  307. package/dist/esm/generated/src/operations/callRecording.js.map +1 -1
  308. package/dist/esm/generated/src/operations/index.d.ts +1 -0
  309. package/dist/esm/generated/src/operations/index.d.ts.map +1 -1
  310. package/dist/esm/generated/src/operations/index.js +1 -0
  311. package/dist/esm/generated/src/operations/index.js.map +1 -1
  312. package/dist/esm/generated/src/operationsInterfaces/callConnection.d.ts +16 -2
  313. package/dist/esm/generated/src/operationsInterfaces/callConnection.d.ts.map +1 -1
  314. package/dist/esm/generated/src/operationsInterfaces/callConnection.js.map +1 -1
  315. package/dist/esm/generated/src/operationsInterfaces/callDialog.d.ts +27 -0
  316. package/dist/esm/generated/src/operationsInterfaces/callDialog.d.ts.map +1 -0
  317. package/dist/esm/generated/src/operationsInterfaces/callDialog.js +9 -0
  318. package/dist/esm/generated/src/operationsInterfaces/callDialog.js.map +1 -0
  319. package/dist/esm/generated/src/operationsInterfaces/callMedia.d.ts +15 -8
  320. package/dist/esm/generated/src/operationsInterfaces/callMedia.d.ts.map +1 -1
  321. package/dist/esm/generated/src/operationsInterfaces/callMedia.js.map +1 -1
  322. package/dist/esm/generated/src/operationsInterfaces/callRecording.d.ts +7 -1
  323. package/dist/esm/generated/src/operationsInterfaces/callRecording.d.ts.map +1 -1
  324. package/dist/esm/generated/src/operationsInterfaces/callRecording.js.map +1 -1
  325. package/dist/esm/generated/src/operationsInterfaces/index.d.ts +1 -0
  326. package/dist/esm/generated/src/operationsInterfaces/index.d.ts.map +1 -1
  327. package/dist/esm/generated/src/operationsInterfaces/index.js +1 -0
  328. package/dist/esm/generated/src/operationsInterfaces/index.js.map +1 -1
  329. package/dist/esm/generated/src/pagingHelper.js +4 -2
  330. package/dist/esm/generated/src/pagingHelper.js.map +1 -1
  331. package/dist/esm/index.d.ts +2 -0
  332. package/dist/esm/index.d.ts.map +1 -1
  333. package/dist/esm/index.js +2 -0
  334. package/dist/esm/index.js.map +1 -1
  335. package/dist/esm/models/constants.d.ts.map +1 -1
  336. package/dist/esm/models/constants.js +1 -1
  337. package/dist/esm/models/constants.js.map +1 -1
  338. package/dist/esm/models/events.d.ts +336 -296
  339. package/dist/esm/models/events.d.ts.map +1 -1
  340. package/dist/esm/models/events.js.map +1 -1
  341. package/dist/esm/models/models.d.ts +76 -38
  342. package/dist/esm/models/models.d.ts.map +1 -1
  343. package/dist/esm/models/models.js +3 -1
  344. package/dist/esm/models/models.js.map +1 -1
  345. package/dist/esm/models/options.d.ts +34 -4
  346. package/dist/esm/models/options.d.ts.map +1 -1
  347. package/dist/esm/models/options.js.map +1 -1
  348. package/dist/esm/models/responses.d.ts +82 -10
  349. package/dist/esm/models/responses.d.ts.map +1 -1
  350. package/dist/esm/models/responses.js.map +1 -1
  351. package/dist/esm/models/streaming.d.ts +27 -26
  352. package/dist/esm/models/streaming.d.ts.map +1 -1
  353. package/dist/esm/models/streaming.js +57 -28
  354. package/dist/esm/models/streaming.js.map +1 -1
  355. package/dist/esm/streamingData.d.ts.map +1 -1
  356. package/dist/esm/streamingData.js +1 -10
  357. package/dist/esm/streamingData.js.map +1 -1
  358. package/dist/esm/utli/converters.d.ts +26 -2
  359. package/dist/esm/utli/converters.d.ts.map +1 -1
  360. package/dist/esm/utli/converters.js +122 -48
  361. package/dist/esm/utli/converters.js.map +1 -1
  362. package/dist/react-native/callAutomationClient.d.ts +8 -0
  363. package/dist/react-native/callAutomationClient.d.ts.map +1 -1
  364. package/dist/react-native/callAutomationClient.js +141 -84
  365. package/dist/react-native/callAutomationClient.js.map +1 -1
  366. package/dist/react-native/callAutomationEventParser.d.ts.map +1 -1
  367. package/dist/react-native/callAutomationEventParser.js +56 -9
  368. package/dist/react-native/callAutomationEventParser.js.map +1 -1
  369. package/dist/react-native/callConnection.d.ts +15 -5
  370. package/dist/react-native/callConnection.d.ts.map +1 -1
  371. package/dist/react-native/callConnection.js +193 -86
  372. package/dist/react-native/callConnection.js.map +1 -1
  373. package/dist/react-native/callMedia.d.ts +19 -9
  374. package/dist/react-native/callMedia.d.ts.map +1 -1
  375. package/dist/react-native/callMedia.js +175 -28
  376. package/dist/react-native/callMedia.js.map +1 -1
  377. package/dist/react-native/callRecording.d.ts +8 -2
  378. package/dist/react-native/callRecording.d.ts.map +1 -1
  379. package/dist/react-native/callRecording.js +26 -16
  380. package/dist/react-native/callRecording.js.map +1 -1
  381. package/dist/react-native/contentDownloader.js +12 -11
  382. package/dist/react-native/contentDownloader.js.map +1 -1
  383. package/dist/react-native/credential/callAutomationAccessKeyCredentialPolicy.js +2 -1
  384. package/dist/react-native/credential/callAutomationAccessKeyCredentialPolicy.js.map +1 -1
  385. package/dist/react-native/credential/callAutomationAuthPolicy.js +1 -1
  386. package/dist/react-native/credential/callAutomationAuthPolicy.js.map +1 -1
  387. package/dist/react-native/eventprocessor/callAutomationEventProcessor.d.ts +39 -0
  388. package/dist/react-native/eventprocessor/callAutomationEventProcessor.d.ts.map +1 -0
  389. package/dist/react-native/eventprocessor/callAutomationEventProcessor.js +137 -0
  390. package/dist/react-native/eventprocessor/callAutomationEventProcessor.js.map +1 -0
  391. package/dist/react-native/eventprocessor/eventResponses.d.ts +134 -0
  392. package/dist/react-native/eventprocessor/eventResponses.d.ts.map +1 -0
  393. package/dist/react-native/eventprocessor/eventResponses.js +4 -0
  394. package/dist/react-native/eventprocessor/eventResponses.js.map +1 -0
  395. package/dist/react-native/generated/src/callAutomationApiClient.d.ts +2 -1
  396. package/dist/react-native/generated/src/callAutomationApiClient.d.ts.map +1 -1
  397. package/dist/react-native/generated/src/callAutomationApiClient.js +7 -15
  398. package/dist/react-native/generated/src/callAutomationApiClient.js.map +1 -1
  399. package/dist/react-native/generated/src/models/index.d.ts +1129 -347
  400. package/dist/react-native/generated/src/models/index.d.ts.map +1 -1
  401. package/dist/react-native/generated/src/models/index.js +159 -75
  402. package/dist/react-native/generated/src/models/index.js.map +1 -1
  403. package/dist/react-native/generated/src/models/mappers.d.ts +88 -47
  404. package/dist/react-native/generated/src/models/mappers.d.ts.map +1 -1
  405. package/dist/react-native/generated/src/models/mappers.js +2136 -499
  406. package/dist/react-native/generated/src/models/mappers.js.map +1 -1
  407. package/dist/react-native/generated/src/models/parameters.d.ts +8 -1
  408. package/dist/react-native/generated/src/models/parameters.d.ts.map +1 -1
  409. package/dist/react-native/generated/src/models/parameters.js +45 -6
  410. package/dist/react-native/generated/src/models/parameters.js.map +1 -1
  411. package/dist/react-native/generated/src/operations/callConnection.d.ts +16 -2
  412. package/dist/react-native/generated/src/operations/callConnection.d.ts.map +1 -1
  413. package/dist/react-native/generated/src/operations/callConnection.js +105 -24
  414. package/dist/react-native/generated/src/operations/callConnection.js.map +1 -1
  415. package/dist/react-native/generated/src/operations/callDialog.d.ts +35 -0
  416. package/dist/react-native/generated/src/operations/callDialog.d.ts.map +1 -0
  417. package/dist/react-native/generated/src/operations/callDialog.js +111 -0
  418. package/dist/react-native/generated/src/operations/callDialog.js.map +1 -0
  419. package/dist/react-native/generated/src/operations/callMedia.d.ts +15 -8
  420. package/dist/react-native/generated/src/operations/callMedia.d.ts.map +1 -1
  421. package/dist/react-native/generated/src/operations/callMedia.js +50 -26
  422. package/dist/react-native/generated/src/operations/callMedia.js.map +1 -1
  423. package/dist/react-native/generated/src/operations/callRecording.d.ts +7 -1
  424. package/dist/react-native/generated/src/operations/callRecording.d.ts.map +1 -1
  425. package/dist/react-native/generated/src/operations/callRecording.js +24 -1
  426. package/dist/react-native/generated/src/operations/callRecording.js.map +1 -1
  427. package/dist/react-native/generated/src/operations/index.d.ts +1 -0
  428. package/dist/react-native/generated/src/operations/index.d.ts.map +1 -1
  429. package/dist/react-native/generated/src/operations/index.js +1 -0
  430. package/dist/react-native/generated/src/operations/index.js.map +1 -1
  431. package/dist/react-native/generated/src/operationsInterfaces/callConnection.d.ts +16 -2
  432. package/dist/react-native/generated/src/operationsInterfaces/callConnection.d.ts.map +1 -1
  433. package/dist/react-native/generated/src/operationsInterfaces/callConnection.js.map +1 -1
  434. package/dist/react-native/generated/src/operationsInterfaces/callDialog.d.ts +27 -0
  435. package/dist/react-native/generated/src/operationsInterfaces/callDialog.d.ts.map +1 -0
  436. package/dist/react-native/generated/src/operationsInterfaces/callDialog.js +9 -0
  437. package/dist/react-native/generated/src/operationsInterfaces/callDialog.js.map +1 -0
  438. package/dist/react-native/generated/src/operationsInterfaces/callMedia.d.ts +15 -8
  439. package/dist/react-native/generated/src/operationsInterfaces/callMedia.d.ts.map +1 -1
  440. package/dist/react-native/generated/src/operationsInterfaces/callMedia.js.map +1 -1
  441. package/dist/react-native/generated/src/operationsInterfaces/callRecording.d.ts +7 -1
  442. package/dist/react-native/generated/src/operationsInterfaces/callRecording.d.ts.map +1 -1
  443. package/dist/react-native/generated/src/operationsInterfaces/callRecording.js.map +1 -1
  444. package/dist/react-native/generated/src/operationsInterfaces/index.d.ts +1 -0
  445. package/dist/react-native/generated/src/operationsInterfaces/index.d.ts.map +1 -1
  446. package/dist/react-native/generated/src/operationsInterfaces/index.js +1 -0
  447. package/dist/react-native/generated/src/operationsInterfaces/index.js.map +1 -1
  448. package/dist/react-native/generated/src/pagingHelper.js +4 -2
  449. package/dist/react-native/generated/src/pagingHelper.js.map +1 -1
  450. package/dist/react-native/index.d.ts +2 -0
  451. package/dist/react-native/index.d.ts.map +1 -1
  452. package/dist/react-native/index.js +2 -0
  453. package/dist/react-native/index.js.map +1 -1
  454. package/dist/react-native/models/constants.d.ts.map +1 -1
  455. package/dist/react-native/models/constants.js +1 -1
  456. package/dist/react-native/models/constants.js.map +1 -1
  457. package/dist/react-native/models/events.d.ts +336 -296
  458. package/dist/react-native/models/events.d.ts.map +1 -1
  459. package/dist/react-native/models/events.js.map +1 -1
  460. package/dist/react-native/models/models.d.ts +76 -38
  461. package/dist/react-native/models/models.d.ts.map +1 -1
  462. package/dist/react-native/models/models.js +3 -1
  463. package/dist/react-native/models/models.js.map +1 -1
  464. package/dist/react-native/models/options.d.ts +34 -4
  465. package/dist/react-native/models/options.d.ts.map +1 -1
  466. package/dist/react-native/models/options.js.map +1 -1
  467. package/dist/react-native/models/responses.d.ts +82 -10
  468. package/dist/react-native/models/responses.d.ts.map +1 -1
  469. package/dist/react-native/models/responses.js.map +1 -1
  470. package/dist/react-native/models/streaming.d.ts +27 -26
  471. package/dist/react-native/models/streaming.d.ts.map +1 -1
  472. package/dist/react-native/models/streaming.js +57 -28
  473. package/dist/react-native/models/streaming.js.map +1 -1
  474. package/dist/react-native/streamingData.d.ts.map +1 -1
  475. package/dist/react-native/streamingData.js +1 -10
  476. package/dist/react-native/streamingData.js.map +1 -1
  477. package/dist/react-native/utli/converters.d.ts +26 -2
  478. package/dist/react-native/utli/converters.d.ts.map +1 -1
  479. package/dist/react-native/utli/converters.js +122 -48
  480. package/dist/react-native/utli/converters.js.map +1 -1
  481. package/package.json +36 -35
@@ -1,11 +1,13 @@
1
+ import { __rest } from "tslib";
1
2
  import { isTokenCredential } from "@azure/core-auth";
2
- import { parseClientArguments, isKeyCredential, createCommunicationAuthPolicy, } from "@azure/communication-common";
3
+ import { parseClientArguments, isKeyCredential } from "@azure/communication-common";
3
4
  import { logger } from "./models/logger.js";
4
- import { CallAutomationApiClient, } from "./generated/src/index.js";
5
5
  import { CallConnection } from "./callConnection.js";
6
6
  import { CallRecording } from "./callRecording.js";
7
- import { communicationIdentifierConverter, communicationIdentifierModelConverter, communicationUserIdentifierConverter, communicationUserIdentifierModelConverter, phoneNumberIdentifierConverter, microsoftTeamsAppIdentifierModelConverter, PhoneNumberIdentifierModelConverter, } from "./utli/converters.js";
7
+ import { communicationIdentifierConverter, communicationIdentifierModelConverter, communicationUserIdentifierConverter, communicationUserIdentifierModelConverter, microsoftTeamsAppIdentifierModelConverter, phoneNumberIdentifierConverter, PhoneNumberIdentifierModelConverter, teamsPhoneCallDetailsModelConverter, } from "./utli/converters.js";
8
8
  import { randomUUID } from "@azure/core-util";
9
+ import { createCustomCallAutomationApiClient } from "./credential/callAutomationAuthPolicy.js";
10
+ import { CallAutomationEventProcessor } from "./eventprocessor/callAutomationEventProcessor.js";
9
11
  /**
10
12
  * Checks whether the type of a value is CallAutomationClientOptions or not.
11
13
  *
@@ -16,30 +18,25 @@ const isCallAutomationClientOptions = (options) => !!options && !isTokenCredenti
16
18
  * A CallAutomationClient represents a Client to the Azure Communication CallAutomation service.
17
19
  */
18
20
  export class CallAutomationClient {
19
- callAutomationApiClient;
20
- sourceIdentity;
21
- credential;
22
- internalPipelineOptions;
23
21
  constructor(connectionStringOrUrl, credentialOrOptions, maybeOptions = {}) {
24
22
  const options = isCallAutomationClientOptions(credentialOrOptions)
25
23
  ? credentialOrOptions
26
24
  : maybeOptions;
27
- if (!options?.userAgentOptions) {
25
+ if (!(options === null || options === void 0 ? void 0 : options.userAgentOptions)) {
28
26
  options.userAgentOptions = {};
29
27
  }
30
- this.internalPipelineOptions = {
31
- ...options,
32
- ...{
33
- loggingOptions: {
34
- logger: logger.info,
35
- },
28
+ this.internalPipelineOptions = Object.assign(Object.assign({}, options), {
29
+ loggingOptions: {
30
+ logger: logger.info,
36
31
  },
37
- };
32
+ });
38
33
  const { url, credential } = parseClientArguments(connectionStringOrUrl, credentialOrOptions);
39
- const authPolicy = createCommunicationAuthPolicy(credential);
34
+ this.endpoint = url;
40
35
  this.credential = credential;
41
- this.callAutomationApiClient = new CallAutomationApiClient(url, this.internalPipelineOptions);
42
- this.callAutomationApiClient.pipeline.addPolicy(authPolicy);
36
+ // create event processor
37
+ this.callAutomationEventProcessor = new CallAutomationEventProcessor();
38
+ // create api client (using custom api endpoint if available)
39
+ this.callAutomationApiClient = createCustomCallAutomationApiClient(credential, this.internalPipelineOptions, this.endpoint);
43
40
  this.sourceIdentity = communicationUserIdentifierModelConverter(options.sourceIdentity);
44
41
  }
45
42
  /**
@@ -47,13 +44,13 @@ export class CallAutomationClient {
47
44
  * @param callConnectionId - The CallConnection id for the CallConnection instance. (ex: 421CONTOSO-cRD6-4RDc-a078-99dRANDOMf).
48
45
  */
49
46
  getCallConnection(callConnectionId) {
50
- return new CallConnection(callConnectionId, this.callAutomationApiClient.endpoint, this.credential, this.internalPipelineOptions);
47
+ return new CallConnection(callConnectionId, this.endpoint, this.credential, this.callAutomationEventProcessor, this.internalPipelineOptions);
51
48
  }
52
49
  /**
53
50
  * Initializes a new instance of CallRecording.
54
51
  */
55
52
  getCallRecording() {
56
- return new CallRecording(this.callAutomationApiClient.endpoint, this.credential, this.internalPipelineOptions);
53
+ return new CallRecording(this.endpoint, this.credential, this.internalPipelineOptions);
57
54
  }
58
55
  /**
59
56
  * Get Source Identity that is used for create and answer call
@@ -61,29 +58,45 @@ export class CallAutomationClient {
61
58
  getSourceIdentity() {
62
59
  return communicationUserIdentifierConverter(this.sourceIdentity);
63
60
  }
61
+ /**
62
+ * Get event processor to work with call automation events
63
+ */
64
+ getEventProcessor() {
65
+ return this.callAutomationEventProcessor;
66
+ }
64
67
  async createCallInternal(request, options) {
65
- const optionsInternal = {
66
- ...options,
67
- repeatabilityFirstSent: new Date(),
68
- repeatabilityRequestID: randomUUID(),
69
- };
70
- const { callConnectionId, answeredBy, targets, sourceCallerIdNumber, source, answeredFor, ...result } = await this.callAutomationApiClient.createCall(request, optionsInternal);
68
+ const optionsInternal = Object.assign(Object.assign({}, options), { repeatabilityFirstSent: new Date(), repeatabilityRequestID: randomUUID() });
69
+ const _a = await this.callAutomationApiClient.createCall(request, optionsInternal), { callConnectionId, answeredBy, targets, sourceCallerIdNumber, source, answeredFor } = _a, result = __rest(_a, ["callConnectionId", "answeredBy", "targets", "sourceCallerIdNumber", "source", "answeredFor"]);
71
70
  if (callConnectionId) {
72
- const callConnectionPropertiesDto = {
73
- ...result,
74
- callConnectionId: callConnectionId,
75
- source: source ? communicationIdentifierConverter(source) : undefined,
76
- answeredby: communicationUserIdentifierConverter(answeredBy),
77
- answeredFor: answeredFor ? phoneNumberIdentifierConverter(answeredFor) : undefined,
78
- targetParticipants: targets?.map((returnedTarget) => communicationIdentifierConverter(returnedTarget)),
79
- sourceCallerIdNumber: sourceCallerIdNumber
71
+ const callConnectionPropertiesDto = Object.assign(Object.assign({}, result), { callConnectionId: callConnectionId, source: source ? communicationIdentifierConverter(source) : undefined, answeredby: communicationUserIdentifierConverter(answeredBy), answeredFor: answeredFor ? phoneNumberIdentifierConverter(answeredFor) : undefined, targetParticipants: targets === null || targets === void 0 ? void 0 : targets.map((returnedTarget) => communicationIdentifierConverter(returnedTarget)), sourceCallerIdNumber: sourceCallerIdNumber
80
72
  ? phoneNumberIdentifierConverter(sourceCallerIdNumber)
81
- : undefined,
82
- };
83
- const callConnection = new CallConnection(callConnectionId, this.callAutomationApiClient.endpoint, this.credential, this.internalPipelineOptions);
73
+ : undefined });
74
+ const callConnection = new CallConnection(callConnectionId, this.endpoint, this.credential, this.callAutomationEventProcessor, this.internalPipelineOptions);
84
75
  const createCallResult = {
85
76
  callConnectionProperties: callConnectionPropertiesDto,
86
77
  callConnection: callConnection,
78
+ waitForEventProcessor: async (abortSignal, timeoutInMs) => {
79
+ const createCallEventResult = {
80
+ isSuccess: false,
81
+ };
82
+ await this.callAutomationEventProcessor.waitForEventProcessor((event) => {
83
+ if (event.callConnectionId === callConnectionId && event.kind === "CallConnected") {
84
+ createCallEventResult.isSuccess = true;
85
+ createCallEventResult.successResult = event;
86
+ return true;
87
+ }
88
+ else if (event.callConnectionId === callConnectionId &&
89
+ event.kind === "CreateCallFailed") {
90
+ createCallEventResult.isSuccess = false;
91
+ createCallEventResult.failureResult = event;
92
+ return true;
93
+ }
94
+ else {
95
+ return false;
96
+ }
97
+ }, abortSignal, timeoutInMs);
98
+ return createCallEventResult;
99
+ },
87
100
  };
88
101
  return createCallResult;
89
102
  }
@@ -98,15 +111,16 @@ export class CallAutomationClient {
98
111
  async createCall(targetParticipant, callbackUrl, options = {}) {
99
112
  const request = {
100
113
  source: this.sourceIdentity,
114
+ teamsAppSource: microsoftTeamsAppIdentifierModelConverter(options.teamsAppSource),
101
115
  targets: [communicationIdentifierModelConverter(targetParticipant.targetParticipant)],
102
116
  callbackUri: callbackUrl,
103
117
  operationContext: options.operationContext,
104
118
  callIntelligenceOptions: options.callIntelligenceOptions,
105
119
  mediaStreamingOptions: options.mediaStreamingOptions,
106
120
  transcriptionOptions: options.transcriptionOptions,
121
+ customCallingContext: this.createCustomCallingContextInternal(targetParticipant.customCallingContext),
107
122
  sourceCallerIdNumber: PhoneNumberIdentifierModelConverter(targetParticipant.sourceCallIdNumber),
108
123
  sourceDisplayName: targetParticipant.sourceDisplayName,
109
- teamsAppSource: microsoftTeamsAppIdentifierModelConverter(options.teamsAppSource),
110
124
  };
111
125
  return this.createCallInternal(request, options);
112
126
  }
@@ -121,6 +135,7 @@ export class CallAutomationClient {
121
135
  options = {}) {
122
136
  const request = {
123
137
  source: this.sourceIdentity,
138
+ teamsAppSource: microsoftTeamsAppIdentifierModelConverter(options.teamsAppSource),
124
139
  targets: targetParticipants.map((target) => communicationIdentifierModelConverter(target)),
125
140
  callbackUri: callbackUrl,
126
141
  operationContext: options.operationContext,
@@ -129,7 +144,6 @@ export class CallAutomationClient {
129
144
  transcriptionOptions: options.transcriptionOptions,
130
145
  sourceCallerIdNumber: PhoneNumberIdentifierModelConverter(options.sourceCallIdNumber),
131
146
  sourceDisplayName: options.sourceDisplayName,
132
- teamsAppSource: microsoftTeamsAppIdentifierModelConverter(options.teamsAppSource),
133
147
  };
134
148
  return this.createCallInternal(request, options);
135
149
  }
@@ -140,38 +154,48 @@ export class CallAutomationClient {
140
154
  * @param options - Additional request options contains answerCall api options.
141
155
  */
142
156
  async answerCall(incomingCallContext, callbackUrl, options = {}) {
143
- const { callIntelligenceOptions, mediaStreamingOptions, transcriptionOptions, operationContext, ...operationOptions } = options;
157
+ const { callIntelligenceOptions, mediaStreamingOptions, transcriptionOptions, operationContext } = options, operationOptions = __rest(options, ["callIntelligenceOptions", "mediaStreamingOptions", "transcriptionOptions", "operationContext"]);
144
158
  const request = {
145
159
  incomingCallContext: incomingCallContext,
146
160
  mediaStreamingOptions: mediaStreamingOptions,
147
161
  transcriptionOptions: transcriptionOptions,
148
162
  callIntelligenceOptions: callIntelligenceOptions,
163
+ customCallingContext: this.createCustomCallingContextInternal(options.customCallingContext),
149
164
  operationContext: operationContext,
150
165
  callbackUri: callbackUrl,
151
166
  answeredBy: this.sourceIdentity,
152
167
  };
153
- const optionsInternal = {
154
- ...operationOptions,
155
- repeatabilityFirstSent: new Date(),
156
- repeatabilityRequestID: randomUUID(),
157
- };
158
- const { callConnectionId, targets, sourceCallerIdNumber, answeredBy, source, answeredFor, ...result } = await this.callAutomationApiClient.answerCall(request, optionsInternal);
168
+ const optionsInternal = Object.assign(Object.assign({}, operationOptions), { repeatabilityFirstSent: new Date(), repeatabilityRequestID: randomUUID() });
169
+ const _a = await this.callAutomationApiClient.answerCall(request, optionsInternal), { callConnectionId, targets, sourceCallerIdNumber, answeredBy, source, answeredFor } = _a, result = __rest(_a, ["callConnectionId", "targets", "sourceCallerIdNumber", "answeredBy", "source", "answeredFor"]);
159
170
  if (callConnectionId) {
160
- const callConnectionProperties = {
161
- ...result,
162
- callConnectionId: callConnectionId,
163
- source: source ? communicationIdentifierConverter(source) : undefined,
164
- answeredby: communicationUserIdentifierConverter(answeredBy),
165
- answeredFor: answeredFor ? phoneNumberIdentifierConverter(answeredFor) : undefined,
166
- targetParticipants: targets?.map((target) => communicationIdentifierConverter(target)),
167
- sourceCallerIdNumber: sourceCallerIdNumber
171
+ const callConnectionProperties = Object.assign(Object.assign({}, result), { callConnectionId: callConnectionId, source: source ? communicationIdentifierConverter(source) : undefined, answeredby: communicationUserIdentifierConverter(answeredBy), answeredFor: answeredFor ? phoneNumberIdentifierConverter(answeredFor) : undefined, targetParticipants: targets === null || targets === void 0 ? void 0 : targets.map((target) => communicationIdentifierConverter(target)), sourceCallerIdNumber: sourceCallerIdNumber
168
172
  ? phoneNumberIdentifierConverter(sourceCallerIdNumber)
169
- : undefined,
170
- };
171
- const callConnection = new CallConnection(callConnectionId, this.callAutomationApiClient.endpoint, this.credential, this.internalPipelineOptions);
173
+ : undefined });
174
+ const callConnection = new CallConnection(callConnectionId, this.endpoint, this.credential, this.callAutomationEventProcessor, this.internalPipelineOptions);
172
175
  const answerCallResult = {
173
176
  callConnectionProperties: callConnectionProperties,
174
177
  callConnection: callConnection,
178
+ waitForEventProcessor: async (abortSignal, timeoutInMs) => {
179
+ const answerCallEventResult = {
180
+ isSuccess: false,
181
+ };
182
+ await this.callAutomationEventProcessor.waitForEventProcessor((event) => {
183
+ if (event.callConnectionId === callConnectionId && event.kind === "CallConnected") {
184
+ answerCallEventResult.isSuccess = true;
185
+ answerCallEventResult.successResult = event;
186
+ return true;
187
+ }
188
+ if (event.callConnectionId === callConnectionId && event.kind === "AnswerFailed") {
189
+ answerCallEventResult.isSuccess = false;
190
+ answerCallEventResult.failureResult = event;
191
+ return true;
192
+ }
193
+ else {
194
+ return false;
195
+ }
196
+ }, abortSignal, timeoutInMs);
197
+ return answerCallEventResult;
198
+ },
175
199
  };
176
200
  return answerCallResult;
177
201
  }
@@ -188,12 +212,9 @@ export class CallAutomationClient {
188
212
  const request = {
189
213
  incomingCallContext: incomingCallContext,
190
214
  target: communicationIdentifierModelConverter(targetParticipant.targetParticipant),
215
+ customCallingContext: this.createCustomCallingContextInternal(targetParticipant.customCallingContext),
191
216
  };
192
- const optionsInternal = {
193
- ...options,
194
- repeatabilityFirstSent: new Date(),
195
- repeatabilityRequestID: randomUUID(),
196
- };
217
+ const optionsInternal = Object.assign(Object.assign({}, options), { repeatabilityFirstSent: new Date(), repeatabilityRequestID: randomUUID() });
197
218
  return this.callAutomationApiClient.redirectCall(request, optionsInternal);
198
219
  }
199
220
  /**
@@ -207,13 +228,40 @@ export class CallAutomationClient {
207
228
  incomingCallContext: incomingCallContext,
208
229
  callRejectReason: options.callRejectReason,
209
230
  };
210
- const optionsInternal = {
211
- ...options,
212
- repeatabilityFirstSent: new Date(),
213
- repeatabilityRequestID: randomUUID(),
214
- };
231
+ const optionsInternal = Object.assign(Object.assign({}, options), { repeatabilityFirstSent: new Date(), repeatabilityRequestID: randomUUID() });
215
232
  return this.callAutomationApiClient.rejectCall(request, optionsInternal);
216
233
  }
234
+ createCustomCallingContextInternal(customCallingContext) {
235
+ const sipHeaders = {};
236
+ const voipHeaders = {};
237
+ let teamsPhoneCallDetails = undefined;
238
+ if (customCallingContext) {
239
+ for (const header of customCallingContext) {
240
+ if (header.kind === "sipuui") {
241
+ sipHeaders[`User-To-User`] = header.value;
242
+ }
243
+ else if (header.kind === "sipx") {
244
+ if (header.sipHeaderPrefix === "X-") {
245
+ sipHeaders[`X-${header.key}`] = header.value;
246
+ }
247
+ else {
248
+ sipHeaders[`X-MS-Custom-${header.key}`] = header.value;
249
+ }
250
+ }
251
+ else if (header.kind === "voip") {
252
+ voipHeaders[`${header.key}`] = header.value;
253
+ }
254
+ else if (header.kind === "teamsPhoneCallDetails") {
255
+ teamsPhoneCallDetails = teamsPhoneCallDetailsModelConverter(header);
256
+ }
257
+ }
258
+ }
259
+ return {
260
+ sipHeaders: sipHeaders,
261
+ voipHeaders: voipHeaders,
262
+ teamsPhoneCallDetails: teamsPhoneCallDetails,
263
+ };
264
+ }
217
265
  /**
218
266
  * Create connection to room call.
219
267
  * @param callLocator - Call locator to create connection.
@@ -241,28 +289,37 @@ export class CallAutomationClient {
241
289
  connectRequest.callLocator.kind = "serverCallLocator";
242
290
  connectRequest.callLocator.serverCallId = callLocator.id;
243
291
  }
244
- const optionsInternal = {
245
- ...options,
246
- repeatabilityFirstSent: new Date(),
247
- repeatabilityRequestID: randomUUID(),
248
- };
249
- const { callConnectionId, targets, sourceCallerIdNumber, answeredBy, source, answeredFor, ...result } = await this.callAutomationApiClient.connect(connectRequest, optionsInternal);
292
+ const optionsInternal = Object.assign(Object.assign({}, options), { repeatabilityFirstSent: new Date(), repeatabilityRequestID: randomUUID() });
293
+ const _a = await this.callAutomationApiClient.connect(connectRequest, optionsInternal), { callConnectionId, targets, sourceCallerIdNumber, answeredBy, source, answeredFor } = _a, result = __rest(_a, ["callConnectionId", "targets", "sourceCallerIdNumber", "answeredBy", "source", "answeredFor"]);
250
294
  if (callConnectionId) {
251
- const callConnectionProperties = {
252
- ...result,
253
- callConnectionId: callConnectionId,
254
- source: source ? communicationIdentifierConverter(source) : undefined,
255
- answeredby: answeredBy ? communicationUserIdentifierConverter(answeredBy) : undefined,
256
- targetParticipants: targets?.map((target) => communicationIdentifierConverter(target)),
257
- answeredFor: answeredFor ? phoneNumberIdentifierConverter(answeredFor) : undefined,
258
- sourceCallerIdNumber: sourceCallerIdNumber
295
+ const callConnectionProperties = Object.assign(Object.assign({}, result), { callConnectionId: callConnectionId, source: source ? communicationIdentifierConverter(source) : undefined, answeredby: answeredBy ? communicationUserIdentifierConverter(answeredBy) : undefined, targetParticipants: targets === null || targets === void 0 ? void 0 : targets.map((target) => communicationIdentifierConverter(target)), answeredFor: answeredFor ? phoneNumberIdentifierConverter(answeredFor) : undefined, sourceCallerIdNumber: sourceCallerIdNumber
259
296
  ? phoneNumberIdentifierConverter(sourceCallerIdNumber)
260
- : undefined,
261
- };
262
- const callConnection = new CallConnection(callConnectionId, this.callAutomationApiClient.endpoint, this.credential, this.internalPipelineOptions);
297
+ : undefined });
298
+ const callConnection = new CallConnection(callConnectionId, this.callAutomationApiClient.endpoint, this.credential, this.callAutomationEventProcessor, this.internalPipelineOptions);
263
299
  const connectResult = {
264
300
  callConnectionProperties: callConnectionProperties,
265
301
  callConnection: callConnection,
302
+ waitForEventProcessor: async (abortSignal, timeoutInMs) => {
303
+ const connectCallEventResult = {
304
+ isSuccess: false,
305
+ };
306
+ await this.callAutomationEventProcessor.waitForEventProcessor((event) => {
307
+ if (event.callConnectionId === callConnectionId && event.kind === "CallConnected") {
308
+ connectCallEventResult.isSuccess = true;
309
+ connectCallEventResult.successResult = event;
310
+ return true;
311
+ }
312
+ if (event.callConnectionId === callConnectionId && event.kind === "ConnectFailed") {
313
+ connectCallEventResult.isSuccess = false;
314
+ connectCallEventResult.failureResult = event;
315
+ return true;
316
+ }
317
+ else {
318
+ return false;
319
+ }
320
+ }, abortSignal, timeoutInMs);
321
+ return connectCallEventResult;
322
+ },
266
323
  };
267
324
  return connectResult;
268
325
  }
@@ -1 +1 @@
1
- {"version":3,"file":"callAutomationClient.js","sourceRoot":"","sources":["../../src/callAutomationClient.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { KeyCredential, TokenCredential } from \"@azure/core-auth\";\nimport { isTokenCredential } from \"@azure/core-auth\";\nimport type { CommonClientOptions } from \"@azure/core-client\";\nimport type { InternalPipelineOptions } from \"@azure/core-rest-pipeline\";\nimport type {\n CommunicationIdentifier,\n CommunicationUserIdentifier,\n} from \"@azure/communication-common\";\nimport {\n parseClientArguments,\n isKeyCredential,\n createCommunicationAuthPolicy,\n} from \"@azure/communication-common\";\nimport { logger } from \"./models/logger.js\";\nimport {\n AnswerCallRequest,\n CallAutomationApiClient,\n CommunicationUserIdentifierModel,\n CreateCallRequest,\n RedirectCallRequest,\n RejectCallRequest,\n ConnectRequest,\n} from \"./generated/src/index.js\";\nimport { CallConnection } from \"./callConnection.js\";\nimport { CallRecording } from \"./callRecording.js\";\nimport type {\n AnswerCallOptions,\n ConnectCallOptions,\n CreateCallOptions,\n RedirectCallOptions,\n RejectCallOptions,\n} from \"./models/options.js\";\nimport type { AnswerCallResult, ConnectCallResult, CreateCallResult } from \"./models/responses.js\";\nimport {\n type CallConnectionProperties,\n type CallInvite,\n type CallLocator,\n} from \"./models/models.js\";\nimport {\n communicationIdentifierConverter,\n communicationIdentifierModelConverter,\n communicationUserIdentifierConverter,\n communicationUserIdentifierModelConverter,\n phoneNumberIdentifierConverter,\n microsoftTeamsAppIdentifierModelConverter,\n PhoneNumberIdentifierModelConverter,\n} from \"./utli/converters.js\";\nimport { randomUUID } from \"@azure/core-util\";\n/**\n * Client options used to configure CallAutomation Client API requests.\n */\nexport interface CallAutomationClientOptions extends CommonClientOptions {\n /**\n * The identifier of the source of the call for call creating/answering/inviting operation.\n */\n sourceIdentity?: CommunicationUserIdentifier;\n}\n\n/**\n * Checks whether the type of a value is CallAutomationClientOptions or not.\n *\n * @param options - The value being checked.\n */\nconst isCallAutomationClientOptions = (options: any): options is CallAutomationClientOptions =>\n !!options && !isTokenCredential(options) && !isKeyCredential(options);\n\n/**\n * A CallAutomationClient represents a Client to the Azure Communication CallAutomation service.\n */\nexport class CallAutomationClient {\n private readonly callAutomationApiClient: CallAutomationApiClient;\n private readonly sourceIdentity?: CommunicationUserIdentifierModel;\n private readonly credential: TokenCredential | KeyCredential;\n private readonly internalPipelineOptions: InternalPipelineOptions;\n /**\n * Initializes a new instance of the CallAutomationClient class.\n * @param connectionString - Connection string to connect to an Azure Communication Service resource.\n * Example: \"endpoint=https://contoso.eastus.communications.azure.net/;accesskey=secret\";\n * @param options - Optional. Options to configure the HTTP pipeline.\n */\n constructor(connectionString: string, options?: CallAutomationClientOptions);\n\n /**\n * Initializes a new instance of the CallAutomationClient class using a TokenCredential or KeyCredential.\n * @param endpoint - The endpoint of the service (ex: https://contoso.eastus.communications.azure.net).\n * @param credential - TokenCredential or KeyCredential that is used to authenticate requests to the service.\n * @param options - Optional. Options to configure the HTTP pipeline.\n */\n constructor(\n endpoint: string,\n credential: TokenCredential | KeyCredential,\n options?: CallAutomationClientOptions,\n );\n\n constructor(\n connectionStringOrUrl: string,\n credentialOrOptions?: KeyCredential | TokenCredential | CallAutomationClientOptions,\n maybeOptions: CallAutomationClientOptions = {},\n ) {\n const options = isCallAutomationClientOptions(credentialOrOptions)\n ? credentialOrOptions\n : maybeOptions;\n\n if (!options?.userAgentOptions) {\n options.userAgentOptions = {};\n }\n\n this.internalPipelineOptions = {\n ...options,\n ...{\n loggingOptions: {\n logger: logger.info,\n },\n },\n };\n\n const { url, credential } = parseClientArguments(connectionStringOrUrl, credentialOrOptions);\n const authPolicy = createCommunicationAuthPolicy(credential);\n\n this.credential = credential;\n this.callAutomationApiClient = new CallAutomationApiClient(url, this.internalPipelineOptions);\n this.callAutomationApiClient.pipeline.addPolicy(authPolicy);\n\n this.sourceIdentity = communicationUserIdentifierModelConverter(options.sourceIdentity);\n }\n\n /**\n * Initializes a new instance of CallConnection.\n * @param callConnectionId - The CallConnection id for the CallConnection instance. (ex: 421CONTOSO-cRD6-4RDc-a078-99dRANDOMf).\n */\n public getCallConnection(callConnectionId: string): CallConnection {\n return new CallConnection(\n callConnectionId,\n this.callAutomationApiClient.endpoint,\n this.credential,\n this.internalPipelineOptions,\n );\n }\n\n /**\n * Initializes a new instance of CallRecording.\n */\n public getCallRecording(): CallRecording {\n return new CallRecording(\n this.callAutomationApiClient.endpoint,\n this.credential,\n this.internalPipelineOptions,\n );\n }\n\n /**\n * Get Source Identity that is used for create and answer call\n */\n public getSourceIdentity(): CommunicationUserIdentifier | undefined {\n return communicationUserIdentifierConverter(this.sourceIdentity);\n }\n\n private async createCallInternal(\n request: CreateCallRequest,\n options?: CreateCallOptions,\n ): Promise<CreateCallResult> {\n const optionsInternal = {\n ...options,\n repeatabilityFirstSent: new Date(),\n repeatabilityRequestID: randomUUID(),\n };\n const {\n callConnectionId,\n answeredBy,\n targets,\n sourceCallerIdNumber,\n source,\n answeredFor,\n ...result\n } = await this.callAutomationApiClient.createCall(request, optionsInternal);\n\n if (callConnectionId) {\n const callConnectionPropertiesDto: CallConnectionProperties = {\n ...result,\n callConnectionId: callConnectionId,\n source: source ? communicationIdentifierConverter(source) : undefined,\n answeredby: communicationUserIdentifierConverter(answeredBy),\n answeredFor: answeredFor ? phoneNumberIdentifierConverter(answeredFor) : undefined,\n targetParticipants: targets?.map((returnedTarget) =>\n communicationIdentifierConverter(returnedTarget),\n ),\n sourceCallerIdNumber: sourceCallerIdNumber\n ? phoneNumberIdentifierConverter(sourceCallerIdNumber)\n : undefined,\n };\n const callConnection = new CallConnection(\n callConnectionId,\n this.callAutomationApiClient.endpoint,\n this.credential,\n this.internalPipelineOptions,\n );\n const createCallResult: CreateCallResult = {\n callConnectionProperties: callConnectionPropertiesDto,\n callConnection: callConnection,\n };\n return createCallResult;\n }\n throw \"callConnectionProperties / callConnectionId is missing in createCall result\";\n }\n\n /**\n * Create an outgoing call from source to a target identity.\n * @param targetParticipant - A single target.\n * @param callbackUrl - The callback url.\n * @param options - Additional request options contains createCallConnection api options.\n */\n public async createCall(\n targetParticipant: CallInvite,\n callbackUrl: string,\n options: CreateCallOptions = {},\n ): Promise<CreateCallResult> {\n const request: CreateCallRequest = {\n source: this.sourceIdentity,\n targets: [communicationIdentifierModelConverter(targetParticipant.targetParticipant)],\n callbackUri: callbackUrl,\n operationContext: options.operationContext,\n callIntelligenceOptions: options.callIntelligenceOptions,\n mediaStreamingOptions: options.mediaStreamingOptions,\n transcriptionOptions: options.transcriptionOptions,\n sourceCallerIdNumber: PhoneNumberIdentifierModelConverter(\n targetParticipant.sourceCallIdNumber,\n ),\n sourceDisplayName: targetParticipant.sourceDisplayName,\n teamsAppSource: microsoftTeamsAppIdentifierModelConverter(options.teamsAppSource),\n };\n\n return this.createCallInternal(request, options);\n }\n\n /**\n * Create an outgoing call from source to a group of targets identities.\n * @param targetParticipants - A group of targets identities.\n * @param callbackUrl - The callback url.\n * @param options - Additional request options contains createCallConnection api options.\n */\n public async createGroupCall(\n targetParticipants: CommunicationIdentifier[],\n callbackUrl: string,\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options: CreateCallOptions = {},\n ): Promise<CreateCallResult> {\n const request: CreateCallRequest = {\n source: this.sourceIdentity,\n targets: targetParticipants.map((target) => communicationIdentifierModelConverter(target)),\n callbackUri: callbackUrl,\n operationContext: options.operationContext,\n callIntelligenceOptions: options.callIntelligenceOptions,\n mediaStreamingOptions: options.mediaStreamingOptions,\n transcriptionOptions: options.transcriptionOptions,\n sourceCallerIdNumber: PhoneNumberIdentifierModelConverter(options.sourceCallIdNumber),\n sourceDisplayName: options.sourceDisplayName,\n teamsAppSource: microsoftTeamsAppIdentifierModelConverter(options.teamsAppSource),\n };\n\n return this.createCallInternal(request, options);\n }\n\n /**\n * Answer the call.\n * @param incomingCallContext - The context associated with the call.\n * @param callbackUrl - The callback url.\n * @param options - Additional request options contains answerCall api options.\n */\n public async answerCall(\n incomingCallContext: string,\n callbackUrl: string,\n options: AnswerCallOptions = {},\n ): Promise<AnswerCallResult> {\n const {\n callIntelligenceOptions,\n mediaStreamingOptions,\n transcriptionOptions,\n operationContext,\n ...operationOptions\n } = options;\n const request: AnswerCallRequest = {\n incomingCallContext: incomingCallContext,\n mediaStreamingOptions: mediaStreamingOptions,\n transcriptionOptions: transcriptionOptions,\n callIntelligenceOptions: callIntelligenceOptions,\n operationContext: operationContext,\n callbackUri: callbackUrl,\n answeredBy: this.sourceIdentity,\n };\n const optionsInternal = {\n ...operationOptions,\n repeatabilityFirstSent: new Date(),\n repeatabilityRequestID: randomUUID(),\n };\n const {\n callConnectionId,\n targets,\n sourceCallerIdNumber,\n answeredBy,\n source,\n answeredFor,\n ...result\n } = await this.callAutomationApiClient.answerCall(request, optionsInternal);\n\n if (callConnectionId) {\n const callConnectionProperties: CallConnectionProperties = {\n ...result,\n callConnectionId: callConnectionId,\n source: source ? communicationIdentifierConverter(source) : undefined,\n answeredby: communicationUserIdentifierConverter(answeredBy),\n answeredFor: answeredFor ? phoneNumberIdentifierConverter(answeredFor) : undefined,\n targetParticipants: targets?.map((target) => communicationIdentifierConverter(target)),\n sourceCallerIdNumber: sourceCallerIdNumber\n ? phoneNumberIdentifierConverter(sourceCallerIdNumber)\n : undefined,\n };\n const callConnection = new CallConnection(\n callConnectionId,\n this.callAutomationApiClient.endpoint,\n this.credential,\n this.internalPipelineOptions,\n );\n const answerCallResult: AnswerCallResult = {\n callConnectionProperties: callConnectionProperties,\n callConnection: callConnection,\n };\n return answerCallResult;\n }\n throw \"callConnectionProperties / callConnectionId is missing in createCall result\";\n }\n\n /**\n * Redirect the call.\n *\n * @param incomingCallContext - The context associated with the call.\n * @param targetParticipant - The target identity to redirect the call to.\n * @param options - Additional request options contains redirectCall api options.\n */\n public async redirectCall(\n incomingCallContext: string,\n targetParticipant: CallInvite,\n options: RedirectCallOptions = {},\n ): Promise<void> {\n const request: RedirectCallRequest = {\n incomingCallContext: incomingCallContext,\n target: communicationIdentifierModelConverter(targetParticipant.targetParticipant),\n };\n const optionsInternal = {\n ...options,\n repeatabilityFirstSent: new Date(),\n repeatabilityRequestID: randomUUID(),\n };\n\n return this.callAutomationApiClient.redirectCall(request, optionsInternal);\n }\n\n /**\n * Reject the call.\n *\n * @param incomingCallContext - The context associated with the call.\n * @param options - Additional request options contains rejectCall api options.\n */\n public async rejectCall(\n incomingCallContext: string,\n options: RejectCallOptions = {},\n ): Promise<void> {\n const request: RejectCallRequest = {\n incomingCallContext: incomingCallContext,\n callRejectReason: options.callRejectReason,\n };\n const optionsInternal = {\n ...options,\n repeatabilityFirstSent: new Date(),\n repeatabilityRequestID: randomUUID(),\n };\n\n return this.callAutomationApiClient.rejectCall(request, optionsInternal);\n }\n\n /**\n * Create connection to room call.\n * @param callLocator - Call locator to create connection.\n * @param callbackUrl - The callback url\n * @param options - Additional request options contains connect api options.\n */\n public async connectCall(\n callLocator: CallLocator,\n callbackUrl: string,\n options: ConnectCallOptions = {},\n ): Promise<ConnectCallResult> {\n const connectRequest: ConnectRequest = {\n callLocator: callLocator,\n callbackUri: callbackUrl,\n operationContext: options.operationContext,\n callIntelligenceOptions: options.callIntelligenceOptions,\n mediaStreamingOptions: options.mediaStreamingOptions,\n transcriptionOptions: options.transcriptionOptions,\n };\n\n if (callLocator.kind === \"groupCallLocator\") {\n connectRequest.callLocator.kind = \"groupCallLocator\";\n connectRequest.callLocator.groupCallId = callLocator.id;\n } else if (callLocator.kind === \"roomCallLocator\") {\n connectRequest.callLocator.kind = \"roomCallLocator\";\n connectRequest.callLocator.roomId = callLocator.id;\n } else {\n connectRequest.callLocator.kind = \"serverCallLocator\";\n connectRequest.callLocator.serverCallId = callLocator.id;\n }\n\n const optionsInternal = {\n ...options,\n repeatabilityFirstSent: new Date(),\n repeatabilityRequestID: randomUUID(),\n };\n\n const {\n callConnectionId,\n targets,\n sourceCallerIdNumber,\n answeredBy,\n source,\n answeredFor,\n ...result\n } = await this.callAutomationApiClient.connect(connectRequest, optionsInternal);\n\n if (callConnectionId) {\n const callConnectionProperties: CallConnectionProperties = {\n ...result,\n callConnectionId: callConnectionId,\n source: source ? communicationIdentifierConverter(source) : undefined,\n answeredby: answeredBy ? communicationUserIdentifierConverter(answeredBy) : undefined,\n targetParticipants: targets?.map((target) => communicationIdentifierConverter(target)),\n answeredFor: answeredFor ? phoneNumberIdentifierConverter(answeredFor) : undefined,\n sourceCallerIdNumber: sourceCallerIdNumber\n ? phoneNumberIdentifierConverter(sourceCallerIdNumber)\n : undefined,\n };\n const callConnection = new CallConnection(\n callConnectionId,\n this.callAutomationApiClient.endpoint,\n this.credential,\n this.internalPipelineOptions,\n );\n const connectResult: ConnectCallResult = {\n callConnectionProperties: callConnectionProperties,\n callConnection: callConnection,\n };\n return connectResult;\n }\n throw \"callConnectionProperties / callConnectionId is missing in connect result\";\n }\n}\n"]}
1
+ {"version":3,"file":"callAutomationClient.js","sourceRoot":"","sources":["../../src/callAutomationClient.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\nimport type { KeyCredential, TokenCredential } from \"@azure/core-auth\";\nimport { isTokenCredential } from \"@azure/core-auth\";\nimport type { CommonClientOptions } from \"@azure/core-client\";\nimport type { InternalPipelineOptions } from \"@azure/core-rest-pipeline\";\nimport type {\n CommunicationIdentifier,\n CommunicationUserIdentifier,\n} from \"@azure/communication-common\";\nimport { parseClientArguments, isKeyCredential } from \"@azure/communication-common\";\nimport { logger } from \"./models/logger.js\";\nimport type {\n AnswerCallRequest,\n CallAutomationApiClient,\n CommunicationUserIdentifierModel,\n CreateCallRequest,\n RedirectCallRequest,\n RejectCallRequest,\n CustomCallingContextInternal,\n ConnectRequest,\n} from \"./generated/src/index.js\";\nimport { CallConnection } from \"./callConnection.js\";\nimport { CallRecording } from \"./callRecording.js\";\nimport type {\n AnswerCallOptions,\n ConnectCallOptions,\n CreateCallOptions,\n RedirectCallOptions,\n RejectCallOptions,\n} from \"./models/options.js\";\nimport type { AnswerCallResult, ConnectCallResult, CreateCallResult } from \"./models/responses.js\";\nimport {\n type CallConnectionProperties,\n type CallInvite,\n type CallLocator,\n type CustomCallingContext,\n} from \"./models/models.js\";\nimport {\n communicationIdentifierConverter,\n communicationIdentifierModelConverter,\n communicationUserIdentifierConverter,\n communicationUserIdentifierModelConverter,\n microsoftTeamsAppIdentifierModelConverter,\n phoneNumberIdentifierConverter,\n PhoneNumberIdentifierModelConverter,\n teamsPhoneCallDetailsModelConverter,\n} from \"./utli/converters.js\";\nimport { randomUUID } from \"@azure/core-util\";\nimport { createCustomCallAutomationApiClient } from \"./credential/callAutomationAuthPolicy.js\";\nimport { CallAutomationEventProcessor } from \"./eventprocessor/callAutomationEventProcessor.js\";\nimport type {\n AnswerCallEventResult,\n ConnectCallEventResult,\n CreateCallEventResult,\n} from \"./eventprocessor/eventResponses.js\";\n/**\n * Client options used to configure CallAutomation Client API requests.\n */\nexport interface CallAutomationClientOptions extends CommonClientOptions {\n /**\n * The identifier of the source of the call for call creating/answering/inviting operation.\n */\n sourceIdentity?: CommunicationUserIdentifier;\n}\n\n/**\n * Checks whether the type of a value is CallAutomationClientOptions or not.\n *\n * @param options - The value being checked.\n */\nconst isCallAutomationClientOptions = (options: any): options is CallAutomationClientOptions =>\n !!options && !isTokenCredential(options) && !isKeyCredential(options);\n\n/**\n * A CallAutomationClient represents a Client to the Azure Communication CallAutomation service.\n */\nexport class CallAutomationClient {\n private readonly callAutomationApiClient: CallAutomationApiClient;\n private readonly sourceIdentity?: CommunicationUserIdentifierModel;\n private readonly credential: TokenCredential | KeyCredential;\n private readonly internalPipelineOptions: InternalPipelineOptions;\n private readonly callAutomationEventProcessor: CallAutomationEventProcessor;\n private readonly endpoint: string;\n /**\n * Initializes a new instance of the CallAutomationClient class.\n * @param connectionString - Connection string to connect to an Azure Communication Service resource.\n * Example: \"endpoint=https://contoso.eastus.communications.azure.net/;accesskey=secret\";\n * @param options - Optional. Options to configure the HTTP pipeline.\n */\n constructor(connectionString: string, options?: CallAutomationClientOptions);\n\n /**\n * Initializes a new instance of the CallAutomationClient class using a TokenCredential or KeyCredential.\n * @param endpoint - The endpoint of the service (ex: https://contoso.eastus.communications.azure.net).\n * @param credential - TokenCredential or KeyCredential that is used to authenticate requests to the service.\n * @param options - Optional. Options to configure the HTTP pipeline.\n */\n constructor(\n endpoint: string,\n credential: TokenCredential | KeyCredential,\n options?: CallAutomationClientOptions,\n );\n\n constructor(\n connectionStringOrUrl: string,\n credentialOrOptions?: KeyCredential | TokenCredential | CallAutomationClientOptions,\n maybeOptions: CallAutomationClientOptions = {},\n ) {\n const options = isCallAutomationClientOptions(credentialOrOptions)\n ? credentialOrOptions\n : maybeOptions;\n\n if (!options?.userAgentOptions) {\n options.userAgentOptions = {};\n }\n\n this.internalPipelineOptions = {\n ...options,\n ...{\n loggingOptions: {\n logger: logger.info,\n },\n },\n };\n\n const { url, credential } = parseClientArguments(connectionStringOrUrl, credentialOrOptions);\n this.endpoint = url;\n\n this.credential = credential;\n\n // create event processor\n this.callAutomationEventProcessor = new CallAutomationEventProcessor();\n\n // create api client (using custom api endpoint if available)\n this.callAutomationApiClient = createCustomCallAutomationApiClient(\n credential,\n this.internalPipelineOptions,\n this.endpoint,\n );\n\n this.sourceIdentity = communicationUserIdentifierModelConverter(options.sourceIdentity);\n }\n\n /**\n * Initializes a new instance of CallConnection.\n * @param callConnectionId - The CallConnection id for the CallConnection instance. (ex: 421CONTOSO-cRD6-4RDc-a078-99dRANDOMf).\n */\n public getCallConnection(callConnectionId: string): CallConnection {\n return new CallConnection(\n callConnectionId,\n this.endpoint,\n this.credential,\n this.callAutomationEventProcessor,\n this.internalPipelineOptions,\n );\n }\n\n /**\n * Initializes a new instance of CallRecording.\n */\n public getCallRecording(): CallRecording {\n return new CallRecording(this.endpoint, this.credential, this.internalPipelineOptions);\n }\n\n /**\n * Get Source Identity that is used for create and answer call\n */\n public getSourceIdentity(): CommunicationUserIdentifier | undefined {\n return communicationUserIdentifierConverter(this.sourceIdentity);\n }\n\n /**\n * Get event processor to work with call automation events\n */\n public getEventProcessor(): CallAutomationEventProcessor {\n return this.callAutomationEventProcessor;\n }\n\n private async createCallInternal(\n request: CreateCallRequest,\n options?: CreateCallOptions,\n ): Promise<CreateCallResult> {\n const optionsInternal = {\n ...options,\n repeatabilityFirstSent: new Date(),\n repeatabilityRequestID: randomUUID(),\n };\n const {\n callConnectionId,\n answeredBy,\n targets,\n sourceCallerIdNumber,\n source,\n answeredFor,\n ...result\n } = await this.callAutomationApiClient.createCall(request, optionsInternal);\n\n if (callConnectionId) {\n const callConnectionPropertiesDto: CallConnectionProperties = {\n ...result,\n callConnectionId: callConnectionId,\n source: source ? communicationIdentifierConverter(source) : undefined,\n answeredby: communicationUserIdentifierConverter(answeredBy),\n answeredFor: answeredFor ? phoneNumberIdentifierConverter(answeredFor) : undefined,\n targetParticipants: targets?.map((returnedTarget) =>\n communicationIdentifierConverter(returnedTarget),\n ),\n sourceCallerIdNumber: sourceCallerIdNumber\n ? phoneNumberIdentifierConverter(sourceCallerIdNumber)\n : undefined,\n };\n const callConnection = new CallConnection(\n callConnectionId,\n this.endpoint,\n this.credential,\n this.callAutomationEventProcessor,\n this.internalPipelineOptions,\n );\n const createCallResult: CreateCallResult = {\n callConnectionProperties: callConnectionPropertiesDto,\n callConnection: callConnection,\n waitForEventProcessor: async (abortSignal, timeoutInMs) => {\n const createCallEventResult: CreateCallEventResult = {\n isSuccess: false,\n };\n await this.callAutomationEventProcessor.waitForEventProcessor(\n (event) => {\n if (event.callConnectionId === callConnectionId && event.kind === \"CallConnected\") {\n createCallEventResult.isSuccess = true;\n createCallEventResult.successResult = event;\n return true;\n } else if (\n event.callConnectionId === callConnectionId &&\n event.kind === \"CreateCallFailed\"\n ) {\n createCallEventResult.isSuccess = false;\n createCallEventResult.failureResult = event;\n return true;\n } else {\n return false;\n }\n },\n abortSignal,\n timeoutInMs,\n );\n\n return createCallEventResult;\n },\n };\n return createCallResult;\n }\n throw \"callConnectionProperties / callConnectionId is missing in createCall result\";\n }\n\n /**\n * Create an outgoing call from source to a target identity.\n * @param targetParticipant - A single target.\n * @param callbackUrl - The callback url.\n * @param options - Additional request options contains createCallConnection api options.\n */\n public async createCall(\n targetParticipant: CallInvite,\n callbackUrl: string,\n options: CreateCallOptions = {},\n ): Promise<CreateCallResult> {\n const request: CreateCallRequest = {\n source: this.sourceIdentity,\n teamsAppSource: microsoftTeamsAppIdentifierModelConverter(options.teamsAppSource),\n targets: [communicationIdentifierModelConverter(targetParticipant.targetParticipant)],\n callbackUri: callbackUrl,\n operationContext: options.operationContext,\n callIntelligenceOptions: options.callIntelligenceOptions,\n mediaStreamingOptions: options.mediaStreamingOptions,\n transcriptionOptions: options.transcriptionOptions,\n customCallingContext: this.createCustomCallingContextInternal(\n targetParticipant.customCallingContext!,\n ),\n sourceCallerIdNumber: PhoneNumberIdentifierModelConverter(\n targetParticipant.sourceCallIdNumber,\n ),\n sourceDisplayName: targetParticipant.sourceDisplayName,\n };\n\n return this.createCallInternal(request, options);\n }\n\n /**\n * Create an outgoing call from source to a group of targets identities.\n * @param targetParticipants - A group of targets identities.\n * @param callbackUrl - The callback url.\n * @param options - Additional request options contains createCallConnection api options.\n */\n public async createGroupCall(\n targetParticipants: CommunicationIdentifier[],\n callbackUrl: string,\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options: CreateCallOptions = {},\n ): Promise<CreateCallResult> {\n const request: CreateCallRequest = {\n source: this.sourceIdentity,\n teamsAppSource: microsoftTeamsAppIdentifierModelConverter(options.teamsAppSource),\n targets: targetParticipants.map((target) => communicationIdentifierModelConverter(target)),\n callbackUri: callbackUrl,\n operationContext: options.operationContext,\n callIntelligenceOptions: options.callIntelligenceOptions,\n mediaStreamingOptions: options.mediaStreamingOptions,\n transcriptionOptions: options.transcriptionOptions,\n sourceCallerIdNumber: PhoneNumberIdentifierModelConverter(options.sourceCallIdNumber),\n sourceDisplayName: options.sourceDisplayName,\n };\n\n return this.createCallInternal(request, options);\n }\n\n /**\n * Answer the call.\n * @param incomingCallContext - The context associated with the call.\n * @param callbackUrl - The callback url.\n * @param options - Additional request options contains answerCall api options.\n */\n public async answerCall(\n incomingCallContext: string,\n callbackUrl: string,\n options: AnswerCallOptions = {},\n ): Promise<AnswerCallResult> {\n const {\n callIntelligenceOptions,\n mediaStreamingOptions,\n transcriptionOptions,\n operationContext,\n ...operationOptions\n } = options;\n const request: AnswerCallRequest = {\n incomingCallContext: incomingCallContext,\n mediaStreamingOptions: mediaStreamingOptions,\n transcriptionOptions: transcriptionOptions,\n callIntelligenceOptions: callIntelligenceOptions,\n customCallingContext: this.createCustomCallingContextInternal(options.customCallingContext!),\n operationContext: operationContext,\n callbackUri: callbackUrl,\n answeredBy: this.sourceIdentity,\n };\n const optionsInternal = {\n ...operationOptions,\n repeatabilityFirstSent: new Date(),\n repeatabilityRequestID: randomUUID(),\n };\n const {\n callConnectionId,\n targets,\n sourceCallerIdNumber,\n answeredBy,\n source,\n answeredFor,\n ...result\n } = await this.callAutomationApiClient.answerCall(request, optionsInternal);\n\n if (callConnectionId) {\n const callConnectionProperties: CallConnectionProperties = {\n ...result,\n callConnectionId: callConnectionId,\n source: source ? communicationIdentifierConverter(source) : undefined,\n answeredby: communicationUserIdentifierConverter(answeredBy),\n answeredFor: answeredFor ? phoneNumberIdentifierConverter(answeredFor) : undefined,\n targetParticipants: targets?.map((target) => communicationIdentifierConverter(target)),\n sourceCallerIdNumber: sourceCallerIdNumber\n ? phoneNumberIdentifierConverter(sourceCallerIdNumber)\n : undefined,\n };\n const callConnection = new CallConnection(\n callConnectionId,\n this.endpoint,\n this.credential,\n this.callAutomationEventProcessor,\n this.internalPipelineOptions,\n );\n const answerCallResult: AnswerCallResult = {\n callConnectionProperties: callConnectionProperties,\n callConnection: callConnection,\n waitForEventProcessor: async (abortSignal, timeoutInMs) => {\n const answerCallEventResult: AnswerCallEventResult = {\n isSuccess: false,\n };\n await this.callAutomationEventProcessor.waitForEventProcessor(\n (event) => {\n if (event.callConnectionId === callConnectionId && event.kind === \"CallConnected\") {\n answerCallEventResult.isSuccess = true;\n answerCallEventResult.successResult = event;\n return true;\n }\n if (event.callConnectionId === callConnectionId && event.kind === \"AnswerFailed\") {\n answerCallEventResult.isSuccess = false;\n answerCallEventResult.failureResult = event;\n return true;\n } else {\n return false;\n }\n },\n abortSignal,\n timeoutInMs,\n );\n return answerCallEventResult;\n },\n };\n return answerCallResult;\n }\n throw \"callConnectionProperties / callConnectionId is missing in createCall result\";\n }\n\n /**\n * Redirect the call.\n *\n * @param incomingCallContext - The context associated with the call.\n * @param targetParticipant - The target identity to redirect the call to.\n * @param options - Additional request options contains redirectCall api options.\n */\n public async redirectCall(\n incomingCallContext: string,\n targetParticipant: CallInvite,\n options: RedirectCallOptions = {},\n ): Promise<void> {\n const request: RedirectCallRequest = {\n incomingCallContext: incomingCallContext,\n target: communicationIdentifierModelConverter(targetParticipant.targetParticipant),\n customCallingContext: this.createCustomCallingContextInternal(\n targetParticipant.customCallingContext!,\n ),\n };\n const optionsInternal = {\n ...options,\n repeatabilityFirstSent: new Date(),\n repeatabilityRequestID: randomUUID(),\n };\n\n return this.callAutomationApiClient.redirectCall(request, optionsInternal);\n }\n\n /**\n * Reject the call.\n *\n * @param incomingCallContext - The context associated with the call.\n * @param options - Additional request options contains rejectCall api options.\n */\n public async rejectCall(\n incomingCallContext: string,\n options: RejectCallOptions = {},\n ): Promise<void> {\n const request: RejectCallRequest = {\n incomingCallContext: incomingCallContext,\n callRejectReason: options.callRejectReason,\n };\n const optionsInternal = {\n ...options,\n repeatabilityFirstSent: new Date(),\n repeatabilityRequestID: randomUUID(),\n };\n\n return this.callAutomationApiClient.rejectCall(request, optionsInternal);\n }\n\n private createCustomCallingContextInternal(\n customCallingContext: CustomCallingContext,\n ): CustomCallingContextInternal {\n const sipHeaders: { [key: string]: string } = {};\n const voipHeaders: { [key: string]: string } = {};\n let teamsPhoneCallDetails: any = undefined;\n\n if (customCallingContext) {\n for (const header of customCallingContext) {\n if (header.kind === \"sipuui\") {\n sipHeaders[`User-To-User`] = header.value;\n } else if (header.kind === \"sipx\") {\n if (header.sipHeaderPrefix === \"X-\") {\n sipHeaders[`X-${header.key}`] = header.value;\n } else {\n sipHeaders[`X-MS-Custom-${header.key}`] = header.value;\n }\n } else if (header.kind === \"voip\") {\n voipHeaders[`${header.key}`] = header.value;\n } else if (header.kind === \"teamsPhoneCallDetails\") {\n teamsPhoneCallDetails = teamsPhoneCallDetailsModelConverter(header);\n }\n }\n }\n return {\n sipHeaders: sipHeaders,\n voipHeaders: voipHeaders,\n teamsPhoneCallDetails: teamsPhoneCallDetails,\n };\n }\n\n /**\n * Create connection to room call.\n * @param callLocator - Call locator to create connection.\n * @param callbackUrl - The callback url\n * @param options - Additional request options contains connect api options.\n */\n public async connectCall(\n callLocator: CallLocator,\n callbackUrl: string,\n options: ConnectCallOptions = {},\n ): Promise<ConnectCallResult> {\n const connectRequest: ConnectRequest = {\n callLocator: callLocator,\n callbackUri: callbackUrl,\n operationContext: options.operationContext,\n callIntelligenceOptions: options.callIntelligenceOptions,\n mediaStreamingOptions: options.mediaStreamingOptions,\n transcriptionOptions: options.transcriptionOptions,\n };\n\n if (callLocator.kind === \"groupCallLocator\") {\n connectRequest.callLocator.kind = \"groupCallLocator\";\n connectRequest.callLocator.groupCallId = callLocator.id;\n } else if (callLocator.kind === \"roomCallLocator\") {\n connectRequest.callLocator.kind = \"roomCallLocator\";\n connectRequest.callLocator.roomId = callLocator.id;\n } else {\n connectRequest.callLocator.kind = \"serverCallLocator\";\n connectRequest.callLocator.serverCallId = callLocator.id;\n }\n\n const optionsInternal = {\n ...options,\n repeatabilityFirstSent: new Date(),\n repeatabilityRequestID: randomUUID(),\n };\n\n const {\n callConnectionId,\n targets,\n sourceCallerIdNumber,\n answeredBy,\n source,\n answeredFor,\n ...result\n } = await this.callAutomationApiClient.connect(connectRequest, optionsInternal);\n\n if (callConnectionId) {\n const callConnectionProperties: CallConnectionProperties = {\n ...result,\n callConnectionId: callConnectionId,\n source: source ? communicationIdentifierConverter(source) : undefined,\n answeredby: answeredBy ? communicationUserIdentifierConverter(answeredBy) : undefined,\n targetParticipants: targets?.map((target) => communicationIdentifierConverter(target)),\n answeredFor: answeredFor ? phoneNumberIdentifierConverter(answeredFor) : undefined,\n sourceCallerIdNumber: sourceCallerIdNumber\n ? phoneNumberIdentifierConverter(sourceCallerIdNumber)\n : undefined,\n };\n const callConnection = new CallConnection(\n callConnectionId,\n this.callAutomationApiClient.endpoint,\n this.credential,\n this.callAutomationEventProcessor,\n this.internalPipelineOptions,\n );\n const connectResult: ConnectCallResult = {\n callConnectionProperties: callConnectionProperties,\n callConnection: callConnection,\n waitForEventProcessor: async (abortSignal, timeoutInMs) => {\n const connectCallEventResult: ConnectCallEventResult = {\n isSuccess: false,\n };\n await this.callAutomationEventProcessor.waitForEventProcessor(\n (event) => {\n if (event.callConnectionId === callConnectionId && event.kind === \"CallConnected\") {\n connectCallEventResult.isSuccess = true;\n connectCallEventResult.successResult = event;\n return true;\n }\n if (event.callConnectionId === callConnectionId && event.kind === \"ConnectFailed\") {\n connectCallEventResult.isSuccess = false;\n connectCallEventResult.failureResult = event;\n return true;\n } else {\n return false;\n }\n },\n abortSignal,\n timeoutInMs,\n );\n return connectCallEventResult;\n },\n };\n return connectResult;\n }\n throw \"callConnectionProperties / callConnectionId is missing in connect result\";\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"callAutomationEventParser.d.ts","sourceRoot":"","sources":["../../src/callAutomationEventParser.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,mBAAmB,EAqCpB,MAAM,oBAAoB,CAAC;AAO5B;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9C,mBAAmB,CAwIrB"}
1
+ {"version":3,"file":"callAutomationEventParser.d.ts","sourceRoot":"","sources":["../../src/callAutomationEventParser.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,mBAAmB,EA8CpB,MAAM,oBAAoB,CAAC;AAO5B;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9C,mBAAmB,CA4LrB"}
@@ -1,7 +1,8 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT License.
3
+ import { __rest } from "tslib";
3
4
  import { createSerializer } from "@azure/core-client";
4
- import { communicationIdentifierConverter, callParticipantConverter } from "./utli/converters.js";
5
+ import { communicationIdentifierConverter, callParticipantConverter, teamsPhoneCallDetailsConverter, } from "./utli/converters.js";
5
6
  import { CloudEventMapper } from "./models/mapper.js";
6
7
  const serializer = createSerializer();
7
8
  /**
@@ -33,9 +34,40 @@ export function parseCallAutomationEvent(encodedEvents) {
33
34
  callbackEvent = { kind: "RemoveParticipantFailed" };
34
35
  parsed.participant = communicationIdentifierConverter(data.participant);
35
36
  break;
37
+ case "Microsoft.Communication.MoveParticipantSucceeded":
38
+ callbackEvent = { kind: "MoveParticipantSucceeded" };
39
+ parsed.participant = communicationIdentifierConverter(data.participant);
40
+ parsed.fromCall = data.fromCall;
41
+ break;
42
+ case "Microsoft.Communication.MoveParticipantFailed":
43
+ callbackEvent = { kind: "MoveParticipantFailed" };
44
+ parsed.participant = communicationIdentifierConverter(data.participant);
45
+ parsed.fromCall = data.fromCall;
46
+ break;
36
47
  case "Microsoft.Communication.CallConnected":
37
48
  callbackEvent = { kind: "CallConnected" };
38
49
  break;
50
+ case "Microsoft.Communication.IncomingCall":
51
+ callbackEvent = { kind: "IncomingCall" };
52
+ // Normalize customContext: convert undefined to null and ensure all properties are null if undefined
53
+ if (data.customContext === undefined) {
54
+ parsed.customContext = {
55
+ voipHeaders: null,
56
+ sipHeaders: null,
57
+ teamsPhoneCallDetails: null,
58
+ };
59
+ }
60
+ else if (data.customContext) {
61
+ // If customContext exists, ensure its properties are null instead of undefined
62
+ parsed.customContext = {
63
+ voipHeaders: data.customContext.voipHeaders === undefined ? null : data.customContext.voipHeaders,
64
+ sipHeaders: data.customContext.sipHeaders === undefined ? null : data.customContext.sipHeaders,
65
+ teamsPhoneCallDetails: data.customContext.teamsPhoneCallDetails === undefined
66
+ ? null
67
+ : teamsPhoneCallDetailsConverter(data.customContext.teamsPhoneCallDetails),
68
+ };
69
+ }
70
+ break;
39
71
  case "Microsoft.Communication.CallDisconnected":
40
72
  callbackEvent = { kind: "CallDisconnected" };
41
73
  break;
@@ -130,16 +162,34 @@ export function parseCallAutomationEvent(encodedEvents) {
130
162
  case "Microsoft.Communication.MediaStreamingFailed":
131
163
  callbackEvent = { kind: "MediaStreamingFailed" };
132
164
  break;
165
+ case "Microsoft.Communication.StartRecordingFailed":
166
+ callbackEvent = { kind: "StartRecordingFailed" };
167
+ break;
133
168
  case "Microsoft.Communication.PlayStarted":
134
169
  callbackEvent = { kind: "PlayStarted" };
135
170
  break;
136
- case "Microsoft.Communication.StartRecordingFailed":
137
- callbackEvent = { kind: "StartRecordingFailed" };
171
+ case "Microsoft.Communication.PlayPaused":
172
+ callbackEvent = { kind: "PlayPaused" };
173
+ break;
174
+ case "Microsoft.Communication.PlayResumed":
175
+ callbackEvent = { kind: "PlayResumed" };
176
+ break;
177
+ case "Microsoft.Communication.HoldAudioStarted":
178
+ callbackEvent = { kind: "HoldAudioStarted" };
179
+ break;
180
+ case "Microsoft.Communication.HoldAudioPaused":
181
+ callbackEvent = { kind: "HoldAudioPaused" };
182
+ break;
183
+ case "Microsoft.Communication.HoldAudioResumed":
184
+ callbackEvent = { kind: "HoldAudioResumed" };
185
+ break;
186
+ case "Microsoft.Communication.HoldAudioCompleted":
187
+ callbackEvent = { kind: "HoldAudioCompleted" };
138
188
  break;
139
189
  default:
140
190
  throw new TypeError(`Unknown Call Automation Event type: ${eventType}`);
141
191
  }
142
- return { ...parsed, ...callbackEvent };
192
+ return Object.assign(Object.assign({}, parsed), callbackEvent);
143
193
  }
144
194
  function parseAndWrap(jsonStringOrObject) {
145
195
  if (typeof jsonStringOrObject === "string") {
@@ -165,10 +215,7 @@ function parseAndWrap(jsonStringOrObject) {
165
215
  }
166
216
  }
167
217
  function participantsParserForEvent(data) {
168
- const { participants, ...rest } = data;
169
- return {
170
- ...rest,
171
- participants: participants?.map((participant) => callParticipantConverter(participant)),
172
- };
218
+ const { participants } = data, rest = __rest(data, ["participants"]);
219
+ return Object.assign(Object.assign({}, rest), { participants: participants === null || participants === void 0 ? void 0 : participants.map((participant) => callParticipantConverter(participant)) });
173
220
  }
174
221
  //# sourceMappingURL=callAutomationEventParser.js.map