@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,14 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CallAutomationClient = void 0;
4
+ const tslib_1 = require("tslib");
4
5
  const core_auth_1 = require("@azure/core-auth");
5
6
  const communication_common_1 = require("@azure/communication-common");
6
7
  const logger_js_1 = require("./models/logger.js");
7
- const index_js_1 = require("./generated/src/index.js");
8
8
  const callConnection_js_1 = require("./callConnection.js");
9
9
  const callRecording_js_1 = require("./callRecording.js");
10
10
  const converters_js_1 = require("./utli/converters.js");
11
11
  const core_util_1 = require("@azure/core-util");
12
+ const callAutomationAuthPolicy_js_1 = require("./credential/callAutomationAuthPolicy.js");
13
+ const callAutomationEventProcessor_js_1 = require("./eventprocessor/callAutomationEventProcessor.js");
12
14
  /**
13
15
  * Checks whether the type of a value is CallAutomationClientOptions or not.
14
16
  *
@@ -19,30 +21,25 @@ const isCallAutomationClientOptions = (options) => !!options && !(0, core_auth_1
19
21
  * A CallAutomationClient represents a Client to the Azure Communication CallAutomation service.
20
22
  */
21
23
  class CallAutomationClient {
22
- callAutomationApiClient;
23
- sourceIdentity;
24
- credential;
25
- internalPipelineOptions;
26
24
  constructor(connectionStringOrUrl, credentialOrOptions, maybeOptions = {}) {
27
25
  const options = isCallAutomationClientOptions(credentialOrOptions)
28
26
  ? credentialOrOptions
29
27
  : maybeOptions;
30
- if (!options?.userAgentOptions) {
28
+ if (!(options === null || options === void 0 ? void 0 : options.userAgentOptions)) {
31
29
  options.userAgentOptions = {};
32
30
  }
33
- this.internalPipelineOptions = {
34
- ...options,
35
- ...{
36
- loggingOptions: {
37
- logger: logger_js_1.logger.info,
38
- },
31
+ this.internalPipelineOptions = Object.assign(Object.assign({}, options), {
32
+ loggingOptions: {
33
+ logger: logger_js_1.logger.info,
39
34
  },
40
- };
35
+ });
41
36
  const { url, credential } = (0, communication_common_1.parseClientArguments)(connectionStringOrUrl, credentialOrOptions);
42
- const authPolicy = (0, communication_common_1.createCommunicationAuthPolicy)(credential);
37
+ this.endpoint = url;
43
38
  this.credential = credential;
44
- this.callAutomationApiClient = new index_js_1.CallAutomationApiClient(url, this.internalPipelineOptions);
45
- this.callAutomationApiClient.pipeline.addPolicy(authPolicy);
39
+ // create event processor
40
+ this.callAutomationEventProcessor = new callAutomationEventProcessor_js_1.CallAutomationEventProcessor();
41
+ // create api client (using custom api endpoint if available)
42
+ this.callAutomationApiClient = (0, callAutomationAuthPolicy_js_1.createCustomCallAutomationApiClient)(credential, this.internalPipelineOptions, this.endpoint);
46
43
  this.sourceIdentity = (0, converters_js_1.communicationUserIdentifierModelConverter)(options.sourceIdentity);
47
44
  }
48
45
  /**
@@ -50,13 +47,13 @@ class CallAutomationClient {
50
47
  * @param callConnectionId - The CallConnection id for the CallConnection instance. (ex: 421CONTOSO-cRD6-4RDc-a078-99dRANDOMf).
51
48
  */
52
49
  getCallConnection(callConnectionId) {
53
- return new callConnection_js_1.CallConnection(callConnectionId, this.callAutomationApiClient.endpoint, this.credential, this.internalPipelineOptions);
50
+ return new callConnection_js_1.CallConnection(callConnectionId, this.endpoint, this.credential, this.callAutomationEventProcessor, this.internalPipelineOptions);
54
51
  }
55
52
  /**
56
53
  * Initializes a new instance of CallRecording.
57
54
  */
58
55
  getCallRecording() {
59
- return new callRecording_js_1.CallRecording(this.callAutomationApiClient.endpoint, this.credential, this.internalPipelineOptions);
56
+ return new callRecording_js_1.CallRecording(this.endpoint, this.credential, this.internalPipelineOptions);
60
57
  }
61
58
  /**
62
59
  * Get Source Identity that is used for create and answer call
@@ -64,29 +61,45 @@ class CallAutomationClient {
64
61
  getSourceIdentity() {
65
62
  return (0, converters_js_1.communicationUserIdentifierConverter)(this.sourceIdentity);
66
63
  }
64
+ /**
65
+ * Get event processor to work with call automation events
66
+ */
67
+ getEventProcessor() {
68
+ return this.callAutomationEventProcessor;
69
+ }
67
70
  async createCallInternal(request, options) {
68
- const optionsInternal = {
69
- ...options,
70
- repeatabilityFirstSent: new Date(),
71
- repeatabilityRequestID: (0, core_util_1.randomUUID)(),
72
- };
73
- const { callConnectionId, answeredBy, targets, sourceCallerIdNumber, source, answeredFor, ...result } = await this.callAutomationApiClient.createCall(request, optionsInternal);
71
+ const optionsInternal = Object.assign(Object.assign({}, options), { repeatabilityFirstSent: new Date(), repeatabilityRequestID: (0, core_util_1.randomUUID)() });
72
+ const _a = await this.callAutomationApiClient.createCall(request, optionsInternal), { callConnectionId, answeredBy, targets, sourceCallerIdNumber, source, answeredFor } = _a, result = tslib_1.__rest(_a, ["callConnectionId", "answeredBy", "targets", "sourceCallerIdNumber", "source", "answeredFor"]);
74
73
  if (callConnectionId) {
75
- const callConnectionPropertiesDto = {
76
- ...result,
77
- callConnectionId: callConnectionId,
78
- source: source ? (0, converters_js_1.communicationIdentifierConverter)(source) : undefined,
79
- answeredby: (0, converters_js_1.communicationUserIdentifierConverter)(answeredBy),
80
- answeredFor: answeredFor ? (0, converters_js_1.phoneNumberIdentifierConverter)(answeredFor) : undefined,
81
- targetParticipants: targets?.map((returnedTarget) => (0, converters_js_1.communicationIdentifierConverter)(returnedTarget)),
82
- sourceCallerIdNumber: sourceCallerIdNumber
74
+ const callConnectionPropertiesDto = Object.assign(Object.assign({}, result), { callConnectionId: callConnectionId, source: source ? (0, converters_js_1.communicationIdentifierConverter)(source) : undefined, answeredby: (0, converters_js_1.communicationUserIdentifierConverter)(answeredBy), answeredFor: answeredFor ? (0, converters_js_1.phoneNumberIdentifierConverter)(answeredFor) : undefined, targetParticipants: targets === null || targets === void 0 ? void 0 : targets.map((returnedTarget) => (0, converters_js_1.communicationIdentifierConverter)(returnedTarget)), sourceCallerIdNumber: sourceCallerIdNumber
83
75
  ? (0, converters_js_1.phoneNumberIdentifierConverter)(sourceCallerIdNumber)
84
- : undefined,
85
- };
86
- const callConnection = new callConnection_js_1.CallConnection(callConnectionId, this.callAutomationApiClient.endpoint, this.credential, this.internalPipelineOptions);
76
+ : undefined });
77
+ const callConnection = new callConnection_js_1.CallConnection(callConnectionId, this.endpoint, this.credential, this.callAutomationEventProcessor, this.internalPipelineOptions);
87
78
  const createCallResult = {
88
79
  callConnectionProperties: callConnectionPropertiesDto,
89
80
  callConnection: callConnection,
81
+ waitForEventProcessor: async (abortSignal, timeoutInMs) => {
82
+ const createCallEventResult = {
83
+ isSuccess: false,
84
+ };
85
+ await this.callAutomationEventProcessor.waitForEventProcessor((event) => {
86
+ if (event.callConnectionId === callConnectionId && event.kind === "CallConnected") {
87
+ createCallEventResult.isSuccess = true;
88
+ createCallEventResult.successResult = event;
89
+ return true;
90
+ }
91
+ else if (event.callConnectionId === callConnectionId &&
92
+ event.kind === "CreateCallFailed") {
93
+ createCallEventResult.isSuccess = false;
94
+ createCallEventResult.failureResult = event;
95
+ return true;
96
+ }
97
+ else {
98
+ return false;
99
+ }
100
+ }, abortSignal, timeoutInMs);
101
+ return createCallEventResult;
102
+ },
90
103
  };
91
104
  return createCallResult;
92
105
  }
@@ -101,15 +114,16 @@ class CallAutomationClient {
101
114
  async createCall(targetParticipant, callbackUrl, options = {}) {
102
115
  const request = {
103
116
  source: this.sourceIdentity,
117
+ teamsAppSource: (0, converters_js_1.microsoftTeamsAppIdentifierModelConverter)(options.teamsAppSource),
104
118
  targets: [(0, converters_js_1.communicationIdentifierModelConverter)(targetParticipant.targetParticipant)],
105
119
  callbackUri: callbackUrl,
106
120
  operationContext: options.operationContext,
107
121
  callIntelligenceOptions: options.callIntelligenceOptions,
108
122
  mediaStreamingOptions: options.mediaStreamingOptions,
109
123
  transcriptionOptions: options.transcriptionOptions,
124
+ customCallingContext: this.createCustomCallingContextInternal(targetParticipant.customCallingContext),
110
125
  sourceCallerIdNumber: (0, converters_js_1.PhoneNumberIdentifierModelConverter)(targetParticipant.sourceCallIdNumber),
111
126
  sourceDisplayName: targetParticipant.sourceDisplayName,
112
- teamsAppSource: (0, converters_js_1.microsoftTeamsAppIdentifierModelConverter)(options.teamsAppSource),
113
127
  };
114
128
  return this.createCallInternal(request, options);
115
129
  }
@@ -124,6 +138,7 @@ class CallAutomationClient {
124
138
  options = {}) {
125
139
  const request = {
126
140
  source: this.sourceIdentity,
141
+ teamsAppSource: (0, converters_js_1.microsoftTeamsAppIdentifierModelConverter)(options.teamsAppSource),
127
142
  targets: targetParticipants.map((target) => (0, converters_js_1.communicationIdentifierModelConverter)(target)),
128
143
  callbackUri: callbackUrl,
129
144
  operationContext: options.operationContext,
@@ -132,7 +147,6 @@ class CallAutomationClient {
132
147
  transcriptionOptions: options.transcriptionOptions,
133
148
  sourceCallerIdNumber: (0, converters_js_1.PhoneNumberIdentifierModelConverter)(options.sourceCallIdNumber),
134
149
  sourceDisplayName: options.sourceDisplayName,
135
- teamsAppSource: (0, converters_js_1.microsoftTeamsAppIdentifierModelConverter)(options.teamsAppSource),
136
150
  };
137
151
  return this.createCallInternal(request, options);
138
152
  }
@@ -143,38 +157,48 @@ class CallAutomationClient {
143
157
  * @param options - Additional request options contains answerCall api options.
144
158
  */
145
159
  async answerCall(incomingCallContext, callbackUrl, options = {}) {
146
- const { callIntelligenceOptions, mediaStreamingOptions, transcriptionOptions, operationContext, ...operationOptions } = options;
160
+ const { callIntelligenceOptions, mediaStreamingOptions, transcriptionOptions, operationContext } = options, operationOptions = tslib_1.__rest(options, ["callIntelligenceOptions", "mediaStreamingOptions", "transcriptionOptions", "operationContext"]);
147
161
  const request = {
148
162
  incomingCallContext: incomingCallContext,
149
163
  mediaStreamingOptions: mediaStreamingOptions,
150
164
  transcriptionOptions: transcriptionOptions,
151
165
  callIntelligenceOptions: callIntelligenceOptions,
166
+ customCallingContext: this.createCustomCallingContextInternal(options.customCallingContext),
152
167
  operationContext: operationContext,
153
168
  callbackUri: callbackUrl,
154
169
  answeredBy: this.sourceIdentity,
155
170
  };
156
- const optionsInternal = {
157
- ...operationOptions,
158
- repeatabilityFirstSent: new Date(),
159
- repeatabilityRequestID: (0, core_util_1.randomUUID)(),
160
- };
161
- const { callConnectionId, targets, sourceCallerIdNumber, answeredBy, source, answeredFor, ...result } = await this.callAutomationApiClient.answerCall(request, optionsInternal);
171
+ const optionsInternal = Object.assign(Object.assign({}, operationOptions), { repeatabilityFirstSent: new Date(), repeatabilityRequestID: (0, core_util_1.randomUUID)() });
172
+ const _a = await this.callAutomationApiClient.answerCall(request, optionsInternal), { callConnectionId, targets, sourceCallerIdNumber, answeredBy, source, answeredFor } = _a, result = tslib_1.__rest(_a, ["callConnectionId", "targets", "sourceCallerIdNumber", "answeredBy", "source", "answeredFor"]);
162
173
  if (callConnectionId) {
163
- const callConnectionProperties = {
164
- ...result,
165
- callConnectionId: callConnectionId,
166
- source: source ? (0, converters_js_1.communicationIdentifierConverter)(source) : undefined,
167
- answeredby: (0, converters_js_1.communicationUserIdentifierConverter)(answeredBy),
168
- answeredFor: answeredFor ? (0, converters_js_1.phoneNumberIdentifierConverter)(answeredFor) : undefined,
169
- targetParticipants: targets?.map((target) => (0, converters_js_1.communicationIdentifierConverter)(target)),
170
- sourceCallerIdNumber: sourceCallerIdNumber
174
+ const callConnectionProperties = Object.assign(Object.assign({}, result), { callConnectionId: callConnectionId, source: source ? (0, converters_js_1.communicationIdentifierConverter)(source) : undefined, answeredby: (0, converters_js_1.communicationUserIdentifierConverter)(answeredBy), answeredFor: answeredFor ? (0, converters_js_1.phoneNumberIdentifierConverter)(answeredFor) : undefined, targetParticipants: targets === null || targets === void 0 ? void 0 : targets.map((target) => (0, converters_js_1.communicationIdentifierConverter)(target)), sourceCallerIdNumber: sourceCallerIdNumber
171
175
  ? (0, converters_js_1.phoneNumberIdentifierConverter)(sourceCallerIdNumber)
172
- : undefined,
173
- };
174
- const callConnection = new callConnection_js_1.CallConnection(callConnectionId, this.callAutomationApiClient.endpoint, this.credential, this.internalPipelineOptions);
176
+ : undefined });
177
+ const callConnection = new callConnection_js_1.CallConnection(callConnectionId, this.endpoint, this.credential, this.callAutomationEventProcessor, this.internalPipelineOptions);
175
178
  const answerCallResult = {
176
179
  callConnectionProperties: callConnectionProperties,
177
180
  callConnection: callConnection,
181
+ waitForEventProcessor: async (abortSignal, timeoutInMs) => {
182
+ const answerCallEventResult = {
183
+ isSuccess: false,
184
+ };
185
+ await this.callAutomationEventProcessor.waitForEventProcessor((event) => {
186
+ if (event.callConnectionId === callConnectionId && event.kind === "CallConnected") {
187
+ answerCallEventResult.isSuccess = true;
188
+ answerCallEventResult.successResult = event;
189
+ return true;
190
+ }
191
+ if (event.callConnectionId === callConnectionId && event.kind === "AnswerFailed") {
192
+ answerCallEventResult.isSuccess = false;
193
+ answerCallEventResult.failureResult = event;
194
+ return true;
195
+ }
196
+ else {
197
+ return false;
198
+ }
199
+ }, abortSignal, timeoutInMs);
200
+ return answerCallEventResult;
201
+ },
178
202
  };
179
203
  return answerCallResult;
180
204
  }
@@ -191,12 +215,9 @@ class CallAutomationClient {
191
215
  const request = {
192
216
  incomingCallContext: incomingCallContext,
193
217
  target: (0, converters_js_1.communicationIdentifierModelConverter)(targetParticipant.targetParticipant),
218
+ customCallingContext: this.createCustomCallingContextInternal(targetParticipant.customCallingContext),
194
219
  };
195
- const optionsInternal = {
196
- ...options,
197
- repeatabilityFirstSent: new Date(),
198
- repeatabilityRequestID: (0, core_util_1.randomUUID)(),
199
- };
220
+ const optionsInternal = Object.assign(Object.assign({}, options), { repeatabilityFirstSent: new Date(), repeatabilityRequestID: (0, core_util_1.randomUUID)() });
200
221
  return this.callAutomationApiClient.redirectCall(request, optionsInternal);
201
222
  }
202
223
  /**
@@ -210,13 +231,40 @@ class CallAutomationClient {
210
231
  incomingCallContext: incomingCallContext,
211
232
  callRejectReason: options.callRejectReason,
212
233
  };
213
- const optionsInternal = {
214
- ...options,
215
- repeatabilityFirstSent: new Date(),
216
- repeatabilityRequestID: (0, core_util_1.randomUUID)(),
217
- };
234
+ const optionsInternal = Object.assign(Object.assign({}, options), { repeatabilityFirstSent: new Date(), repeatabilityRequestID: (0, core_util_1.randomUUID)() });
218
235
  return this.callAutomationApiClient.rejectCall(request, optionsInternal);
219
236
  }
237
+ createCustomCallingContextInternal(customCallingContext) {
238
+ const sipHeaders = {};
239
+ const voipHeaders = {};
240
+ let teamsPhoneCallDetails = undefined;
241
+ if (customCallingContext) {
242
+ for (const header of customCallingContext) {
243
+ if (header.kind === "sipuui") {
244
+ sipHeaders[`User-To-User`] = header.value;
245
+ }
246
+ else if (header.kind === "sipx") {
247
+ if (header.sipHeaderPrefix === "X-") {
248
+ sipHeaders[`X-${header.key}`] = header.value;
249
+ }
250
+ else {
251
+ sipHeaders[`X-MS-Custom-${header.key}`] = header.value;
252
+ }
253
+ }
254
+ else if (header.kind === "voip") {
255
+ voipHeaders[`${header.key}`] = header.value;
256
+ }
257
+ else if (header.kind === "teamsPhoneCallDetails") {
258
+ teamsPhoneCallDetails = (0, converters_js_1.teamsPhoneCallDetailsModelConverter)(header);
259
+ }
260
+ }
261
+ }
262
+ return {
263
+ sipHeaders: sipHeaders,
264
+ voipHeaders: voipHeaders,
265
+ teamsPhoneCallDetails: teamsPhoneCallDetails,
266
+ };
267
+ }
220
268
  /**
221
269
  * Create connection to room call.
222
270
  * @param callLocator - Call locator to create connection.
@@ -244,28 +292,37 @@ class CallAutomationClient {
244
292
  connectRequest.callLocator.kind = "serverCallLocator";
245
293
  connectRequest.callLocator.serverCallId = callLocator.id;
246
294
  }
247
- const optionsInternal = {
248
- ...options,
249
- repeatabilityFirstSent: new Date(),
250
- repeatabilityRequestID: (0, core_util_1.randomUUID)(),
251
- };
252
- const { callConnectionId, targets, sourceCallerIdNumber, answeredBy, source, answeredFor, ...result } = await this.callAutomationApiClient.connect(connectRequest, optionsInternal);
295
+ const optionsInternal = Object.assign(Object.assign({}, options), { repeatabilityFirstSent: new Date(), repeatabilityRequestID: (0, core_util_1.randomUUID)() });
296
+ const _a = await this.callAutomationApiClient.connect(connectRequest, optionsInternal), { callConnectionId, targets, sourceCallerIdNumber, answeredBy, source, answeredFor } = _a, result = tslib_1.__rest(_a, ["callConnectionId", "targets", "sourceCallerIdNumber", "answeredBy", "source", "answeredFor"]);
253
297
  if (callConnectionId) {
254
- const callConnectionProperties = {
255
- ...result,
256
- callConnectionId: callConnectionId,
257
- source: source ? (0, converters_js_1.communicationIdentifierConverter)(source) : undefined,
258
- answeredby: answeredBy ? (0, converters_js_1.communicationUserIdentifierConverter)(answeredBy) : undefined,
259
- targetParticipants: targets?.map((target) => (0, converters_js_1.communicationIdentifierConverter)(target)),
260
- answeredFor: answeredFor ? (0, converters_js_1.phoneNumberIdentifierConverter)(answeredFor) : undefined,
261
- sourceCallerIdNumber: sourceCallerIdNumber
298
+ const callConnectionProperties = Object.assign(Object.assign({}, result), { callConnectionId: callConnectionId, source: source ? (0, converters_js_1.communicationIdentifierConverter)(source) : undefined, answeredby: answeredBy ? (0, converters_js_1.communicationUserIdentifierConverter)(answeredBy) : undefined, targetParticipants: targets === null || targets === void 0 ? void 0 : targets.map((target) => (0, converters_js_1.communicationIdentifierConverter)(target)), answeredFor: answeredFor ? (0, converters_js_1.phoneNumberIdentifierConverter)(answeredFor) : undefined, sourceCallerIdNumber: sourceCallerIdNumber
262
299
  ? (0, converters_js_1.phoneNumberIdentifierConverter)(sourceCallerIdNumber)
263
- : undefined,
264
- };
265
- const callConnection = new callConnection_js_1.CallConnection(callConnectionId, this.callAutomationApiClient.endpoint, this.credential, this.internalPipelineOptions);
300
+ : undefined });
301
+ const callConnection = new callConnection_js_1.CallConnection(callConnectionId, this.callAutomationApiClient.endpoint, this.credential, this.callAutomationEventProcessor, this.internalPipelineOptions);
266
302
  const connectResult = {
267
303
  callConnectionProperties: callConnectionProperties,
268
304
  callConnection: callConnection,
305
+ waitForEventProcessor: async (abortSignal, timeoutInMs) => {
306
+ const connectCallEventResult = {
307
+ isSuccess: false,
308
+ };
309
+ await this.callAutomationEventProcessor.waitForEventProcessor((event) => {
310
+ if (event.callConnectionId === callConnectionId && event.kind === "CallConnected") {
311
+ connectCallEventResult.isSuccess = true;
312
+ connectCallEventResult.successResult = event;
313
+ return true;
314
+ }
315
+ if (event.callConnectionId === callConnectionId && event.kind === "ConnectFailed") {
316
+ connectCallEventResult.isSuccess = false;
317
+ connectCallEventResult.failureResult = event;
318
+ return true;
319
+ }
320
+ else {
321
+ return false;
322
+ }
323
+ }, abortSignal, timeoutInMs);
324
+ return connectCallEventResult;
325
+ },
269
326
  };
270
327
  return connectResult;
271
328
  }
@@ -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"}
@@ -3,6 +3,7 @@
3
3
  // Licensed under the MIT License.
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.parseCallAutomationEvent = parseCallAutomationEvent;
6
+ const tslib_1 = require("tslib");
6
7
  const core_client_1 = require("@azure/core-client");
7
8
  const converters_js_1 = require("./utli/converters.js");
8
9
  const mapper_js_1 = require("./models/mapper.js");
@@ -36,9 +37,40 @@ function parseCallAutomationEvent(encodedEvents) {
36
37
  callbackEvent = { kind: "RemoveParticipantFailed" };
37
38
  parsed.participant = (0, converters_js_1.communicationIdentifierConverter)(data.participant);
38
39
  break;
40
+ case "Microsoft.Communication.MoveParticipantSucceeded":
41
+ callbackEvent = { kind: "MoveParticipantSucceeded" };
42
+ parsed.participant = (0, converters_js_1.communicationIdentifierConverter)(data.participant);
43
+ parsed.fromCall = data.fromCall;
44
+ break;
45
+ case "Microsoft.Communication.MoveParticipantFailed":
46
+ callbackEvent = { kind: "MoveParticipantFailed" };
47
+ parsed.participant = (0, converters_js_1.communicationIdentifierConverter)(data.participant);
48
+ parsed.fromCall = data.fromCall;
49
+ break;
39
50
  case "Microsoft.Communication.CallConnected":
40
51
  callbackEvent = { kind: "CallConnected" };
41
52
  break;
53
+ case "Microsoft.Communication.IncomingCall":
54
+ callbackEvent = { kind: "IncomingCall" };
55
+ // Normalize customContext: convert undefined to null and ensure all properties are null if undefined
56
+ if (data.customContext === undefined) {
57
+ parsed.customContext = {
58
+ voipHeaders: null,
59
+ sipHeaders: null,
60
+ teamsPhoneCallDetails: null,
61
+ };
62
+ }
63
+ else if (data.customContext) {
64
+ // If customContext exists, ensure its properties are null instead of undefined
65
+ parsed.customContext = {
66
+ voipHeaders: data.customContext.voipHeaders === undefined ? null : data.customContext.voipHeaders,
67
+ sipHeaders: data.customContext.sipHeaders === undefined ? null : data.customContext.sipHeaders,
68
+ teamsPhoneCallDetails: data.customContext.teamsPhoneCallDetails === undefined
69
+ ? null
70
+ : (0, converters_js_1.teamsPhoneCallDetailsConverter)(data.customContext.teamsPhoneCallDetails),
71
+ };
72
+ }
73
+ break;
42
74
  case "Microsoft.Communication.CallDisconnected":
43
75
  callbackEvent = { kind: "CallDisconnected" };
44
76
  break;
@@ -133,16 +165,34 @@ function parseCallAutomationEvent(encodedEvents) {
133
165
  case "Microsoft.Communication.MediaStreamingFailed":
134
166
  callbackEvent = { kind: "MediaStreamingFailed" };
135
167
  break;
168
+ case "Microsoft.Communication.StartRecordingFailed":
169
+ callbackEvent = { kind: "StartRecordingFailed" };
170
+ break;
136
171
  case "Microsoft.Communication.PlayStarted":
137
172
  callbackEvent = { kind: "PlayStarted" };
138
173
  break;
139
- case "Microsoft.Communication.StartRecordingFailed":
140
- callbackEvent = { kind: "StartRecordingFailed" };
174
+ case "Microsoft.Communication.PlayPaused":
175
+ callbackEvent = { kind: "PlayPaused" };
176
+ break;
177
+ case "Microsoft.Communication.PlayResumed":
178
+ callbackEvent = { kind: "PlayResumed" };
179
+ break;
180
+ case "Microsoft.Communication.HoldAudioStarted":
181
+ callbackEvent = { kind: "HoldAudioStarted" };
182
+ break;
183
+ case "Microsoft.Communication.HoldAudioPaused":
184
+ callbackEvent = { kind: "HoldAudioPaused" };
185
+ break;
186
+ case "Microsoft.Communication.HoldAudioResumed":
187
+ callbackEvent = { kind: "HoldAudioResumed" };
188
+ break;
189
+ case "Microsoft.Communication.HoldAudioCompleted":
190
+ callbackEvent = { kind: "HoldAudioCompleted" };
141
191
  break;
142
192
  default:
143
193
  throw new TypeError(`Unknown Call Automation Event type: ${eventType}`);
144
194
  }
145
- return { ...parsed, ...callbackEvent };
195
+ return Object.assign(Object.assign({}, parsed), callbackEvent);
146
196
  }
147
197
  function parseAndWrap(jsonStringOrObject) {
148
198
  if (typeof jsonStringOrObject === "string") {
@@ -168,10 +218,7 @@ function parseAndWrap(jsonStringOrObject) {
168
218
  }
169
219
  }
170
220
  function participantsParserForEvent(data) {
171
- const { participants, ...rest } = data;
172
- return {
173
- ...rest,
174
- participants: participants?.map((participant) => (0, converters_js_1.callParticipantConverter)(participant)),
175
- };
221
+ const { participants } = data, rest = tslib_1.__rest(data, ["participants"]);
222
+ return Object.assign(Object.assign({}, rest), { participants: participants === null || participants === void 0 ? void 0 : participants.map((participant) => (0, converters_js_1.callParticipantConverter)(participant)) });
176
223
  }
177
224
  //# sourceMappingURL=callAutomationEventParser.js.map