ue-softphone-sdk 2.2.2 → 2.2.4

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 (390) hide show
  1. package/dist/api/bye.d.ts +16 -0
  2. package/dist/api/dtmf.d.ts +15 -0
  3. package/dist/api/emitter.d.ts +88 -0
  4. package/dist/api/exceptions/content-type-unsupported.d.ts +8 -0
  5. package/dist/api/exceptions/index.d.ts +5 -0
  6. package/dist/api/exceptions/request-pending.d.ts +9 -0
  7. package/dist/api/exceptions/session-description-handler.d.ts +8 -0
  8. package/dist/api/exceptions/session-terminated.d.ts +8 -0
  9. package/dist/api/exceptions/state-transition.d.ts +8 -0
  10. package/dist/api/index.d.ts +58 -0
  11. package/dist/api/info.d.ts +16 -0
  12. package/dist/api/invitation-accept-options.d.ts +19 -0
  13. package/dist/api/invitation-progress-options.d.ts +38 -0
  14. package/dist/api/invitation-reject-options.d.ts +25 -0
  15. package/dist/api/invitation.d.ts +179 -0
  16. package/dist/api/inviter-cancel-options.d.ts +9 -0
  17. package/dist/api/inviter-invite-options.d.ts +28 -0
  18. package/dist/api/inviter-options.d.ts +43 -0
  19. package/dist/api/inviter.d.ts +236 -0
  20. package/dist/api/message.d.ts +16 -0
  21. package/dist/api/messager-message-options.d.ts +11 -0
  22. package/dist/api/messager-options.d.ts +17 -0
  23. package/dist/api/messager.d.ts +26 -0
  24. package/dist/api/notification.d.ts +16 -0
  25. package/dist/api/notifier.d.ts +8 -0
  26. package/dist/api/publisher-options.d.ts +33 -0
  27. package/dist/api/publisher-publish-options.d.ts +6 -0
  28. package/dist/api/publisher-state.d.ts +21 -0
  29. package/dist/api/publisher-unpublish-options.d.ts +6 -0
  30. package/dist/api/publisher.d.ts +65 -0
  31. package/dist/api/referral.d.ts +38 -0
  32. package/dist/api/registerer-options.d.ts +46 -0
  33. package/dist/api/registerer-register-options.d.ts +11 -0
  34. package/dist/api/registerer-state.d.ts +21 -0
  35. package/dist/api/registerer-unregister-options.d.ts +16 -0
  36. package/dist/api/registerer.d.ts +144 -0
  37. package/dist/api/session-bye-options.d.ts +11 -0
  38. package/dist/api/session-delegate.d.ts +73 -0
  39. package/dist/api/session-description-handler-factory.d.ts +15 -0
  40. package/dist/api/session-description-handler.d.ts +74 -0
  41. package/dist/api/session-info-options.d.ts +11 -0
  42. package/dist/api/session-invite-options.d.ts +28 -0
  43. package/dist/api/session-message-options.d.ts +11 -0
  44. package/dist/api/session-options.d.ts +8 -0
  45. package/dist/api/session-refer-options.d.ts +14 -0
  46. package/dist/api/session-state.d.ts +45 -0
  47. package/dist/api/session.d.ts +359 -0
  48. package/dist/api/subscriber-options.d.ts +11 -0
  49. package/dist/api/subscriber-subscribe-options.d.ts +6 -0
  50. package/dist/api/subscriber.d.ts +94 -0
  51. package/dist/api/subscription-delegate.d.ts +12 -0
  52. package/dist/api/subscription-options.d.ts +8 -0
  53. package/dist/api/subscription-state.d.ts +19 -0
  54. package/dist/api/subscription-subscribe-options.d.ts +6 -0
  55. package/dist/api/subscription-unsubscribe-options.d.ts +6 -0
  56. package/dist/api/subscription.d.ts +84 -0
  57. package/dist/api/transport-state.d.ts +37 -0
  58. package/dist/api/transport.d.ts +159 -0
  59. package/dist/api/user-agent-delegate.d.ts +84 -0
  60. package/dist/api/user-agent-options.d.ts +253 -0
  61. package/dist/api/user-agent-state.d.ts +14 -0
  62. package/dist/api/user-agent.d.ts +200 -0
  63. package/dist/core/dialogs/dialog-state.d.ts +34 -0
  64. package/dist/core/dialogs/dialog.d.ts +161 -0
  65. package/dist/core/dialogs/index.d.ts +4 -0
  66. package/dist/core/dialogs/session-dialog.d.ts +196 -0
  67. package/dist/core/dialogs/subscription-dialog.d.ts +120 -0
  68. package/dist/core/exceptions/exception.d.ts +8 -0
  69. package/dist/core/exceptions/index.d.ts +3 -0
  70. package/dist/core/exceptions/transaction-state-error.d.ts +8 -0
  71. package/dist/core/exceptions/transport-error.d.ts +8 -0
  72. package/dist/core/index.d.ts +15 -0
  73. package/dist/core/log/index.d.ts +3 -0
  74. package/dist/core/log/levels.d.ts +10 -0
  75. package/dist/core/log/logger-factory.d.ts +21 -0
  76. package/dist/core/log/logger.d.ts +19 -0
  77. package/dist/core/messages/body.d.ts +64 -0
  78. package/dist/core/messages/digest-authentication.d.ts +51 -0
  79. package/dist/core/messages/incoming-message.d.ts +79 -0
  80. package/dist/core/messages/incoming-request-message.d.ts +10 -0
  81. package/dist/core/messages/incoming-request.d.ts +67 -0
  82. package/dist/core/messages/incoming-response-message.d.ts +10 -0
  83. package/dist/core/messages/incoming-response.d.ts +12 -0
  84. package/dist/core/messages/index.d.ts +13 -0
  85. package/dist/core/messages/md5.d.ts +32 -0
  86. package/dist/core/messages/methods/ack.d.ts +18 -0
  87. package/dist/core/messages/methods/bye.d.ts +21 -0
  88. package/dist/core/messages/methods/cancel.d.ts +21 -0
  89. package/dist/core/messages/methods/constants.d.ts +20 -0
  90. package/dist/core/messages/methods/index.d.ts +13 -0
  91. package/dist/core/messages/methods/info.d.ts +21 -0
  92. package/dist/core/messages/methods/invite.d.ts +86 -0
  93. package/dist/core/messages/methods/message.d.ts +21 -0
  94. package/dist/core/messages/methods/notify.d.ts +21 -0
  95. package/dist/core/messages/methods/prack.d.ts +21 -0
  96. package/dist/core/messages/methods/publish.d.ts +21 -0
  97. package/dist/core/messages/methods/refer.d.ts +21 -0
  98. package/dist/core/messages/methods/register.d.ts +21 -0
  99. package/dist/core/messages/methods/subscribe.d.ts +54 -0
  100. package/dist/core/messages/outgoing-request-message.d.ts +94 -0
  101. package/dist/core/messages/outgoing-request.d.ts +67 -0
  102. package/dist/core/messages/outgoing-response.d.ts +42 -0
  103. package/dist/core/messages/parser.d.ts +14 -0
  104. package/dist/core/messages/utils.d.ts +24 -0
  105. package/dist/core/session/index.d.ts +2 -0
  106. package/dist/core/session/session-delegate.d.ts +70 -0
  107. package/dist/core/session/session.d.ts +134 -0
  108. package/dist/core/subscription/index.d.ts +2 -0
  109. package/dist/core/subscription/subscription-delegate.d.ts +27 -0
  110. package/dist/core/subscription/subscription.d.ts +55 -0
  111. package/dist/core/timers.d.ts +20 -0
  112. package/dist/core/transactions/client-transaction.d.ts +45 -0
  113. package/dist/core/transactions/index.d.ts +10 -0
  114. package/dist/core/transactions/invite-client-transaction.d.ts +116 -0
  115. package/dist/core/transactions/invite-server-transaction.d.ts +127 -0
  116. package/dist/core/transactions/non-invite-client-transaction.d.ts +69 -0
  117. package/dist/core/transactions/non-invite-server-transaction.d.ts +57 -0
  118. package/dist/core/transactions/server-transaction.d.ts +35 -0
  119. package/dist/core/transactions/transaction-state.d.ts +13 -0
  120. package/dist/core/transactions/transaction-user.d.ts +72 -0
  121. package/dist/core/transactions/transaction.d.ts +79 -0
  122. package/dist/core/transport.d.ts +31 -0
  123. package/dist/core/user-agent-core/allowed-methods.d.ts +4 -0
  124. package/dist/core/user-agent-core/index.d.ts +3 -0
  125. package/dist/core/user-agent-core/user-agent-core-configuration.d.ts +99 -0
  126. package/dist/core/user-agent-core/user-agent-core-delegate.d.ts +37 -0
  127. package/dist/core/user-agent-core/user-agent-core.d.ts +179 -0
  128. package/dist/core/user-agents/bye-user-agent-client.d.ts +10 -0
  129. package/dist/core/user-agents/bye-user-agent-server.d.ts +10 -0
  130. package/dist/core/user-agents/cancel-user-agent-client.d.ts +10 -0
  131. package/dist/core/user-agents/index.d.ts +26 -0
  132. package/dist/core/user-agents/info-user-agent-client.d.ts +10 -0
  133. package/dist/core/user-agents/info-user-agent-server.d.ts +10 -0
  134. package/dist/core/user-agents/invite-user-agent-client.d.ts +35 -0
  135. package/dist/core/user-agents/invite-user-agent-server.d.ts +77 -0
  136. package/dist/core/user-agents/message-user-agent-client.d.ts +10 -0
  137. package/dist/core/user-agents/message-user-agent-server.d.ts +10 -0
  138. package/dist/core/user-agents/notify-user-agent-client.d.ts +10 -0
  139. package/dist/core/user-agents/notify-user-agent-server.d.ts +16 -0
  140. package/dist/core/user-agents/prack-user-agent-client.d.ts +10 -0
  141. package/dist/core/user-agents/prack-user-agent-server.d.ts +16 -0
  142. package/dist/core/user-agents/publish-user-agent-client.d.ts +10 -0
  143. package/dist/core/user-agents/re-invite-user-agent-client.d.ts +18 -0
  144. package/dist/core/user-agents/re-invite-user-agent-server.d.ts +41 -0
  145. package/dist/core/user-agents/re-subscribe-user-agent-client.d.ts +17 -0
  146. package/dist/core/user-agents/re-subscribe-user-agent-server.d.ts +10 -0
  147. package/dist/core/user-agents/refer-user-agent-client.d.ts +10 -0
  148. package/dist/core/user-agents/refer-user-agent-server.d.ts +16 -0
  149. package/dist/core/user-agents/register-user-agent-client.d.ts +10 -0
  150. package/dist/core/user-agents/register-user-agent-server.d.ts +11 -0
  151. package/dist/core/user-agents/subscribe-user-agent-client.d.ts +65 -0
  152. package/dist/core/user-agents/subscribe-user-agent-server.d.ts +11 -0
  153. package/dist/core/user-agents/user-agent-client.d.ts +103 -0
  154. package/dist/core/user-agents/user-agent-server.d.ts +79 -0
  155. package/dist/grammar/grammar.d.ts +26 -0
  156. package/dist/grammar/index.d.ts +4 -0
  157. package/dist/grammar/name-addr-header.d.ts +24 -0
  158. package/dist/grammar/parameters.d.ts +16 -0
  159. package/dist/grammar/pegjs/dist/grammar.d.ts +50 -0
  160. package/dist/grammar/uri.d.ts +62 -0
  161. package/dist/{types/index.d.ts → index.d.ts} +7 -3
  162. package/dist/main.d.ts +9 -0
  163. package/dist/new-index.d.ts +199 -0
  164. package/dist/platform/web/index.d.ts +4 -0
  165. package/dist/platform/web/modifiers/index.d.ts +5 -0
  166. package/dist/platform/web/modifiers/modifiers.d.ts +41 -0
  167. package/dist/platform/web/session-description-handler/index.d.ts +14 -0
  168. package/dist/platform/web/session-description-handler/media-stream-factory-default.d.ts +6 -0
  169. package/dist/platform/web/session-description-handler/media-stream-factory.d.ts +6 -0
  170. package/dist/platform/web/session-description-handler/peer-connection-configuration-default.d.ts +5 -0
  171. package/dist/platform/web/session-description-handler/peer-connection-delegate.d.ts +63 -0
  172. package/dist/platform/web/session-description-handler/session-description-handler-configuration.d.ts +16 -0
  173. package/dist/platform/web/session-description-handler/session-description-handler-factory-default.d.ts +11 -0
  174. package/dist/platform/web/session-description-handler/session-description-handler-factory-options.d.ts +9 -0
  175. package/dist/platform/web/session-description-handler/session-description-handler-factory.d.ts +16 -0
  176. package/dist/platform/web/session-description-handler/session-description-handler-options.d.ts +47 -0
  177. package/dist/platform/web/session-description-handler/session-description-handler.d.ts +212 -0
  178. package/dist/platform/web/simple-user/index.d.ts +7 -0
  179. package/dist/platform/web/simple-user/simple-user-delegate.d.ts +72 -0
  180. package/dist/platform/web/simple-user/simple-user-options.d.ts +90 -0
  181. package/dist/platform/web/simple-user/simple-user.d.ts +226 -0
  182. package/dist/platform/web/transport/index.d.ts +6 -0
  183. package/dist/platform/web/transport/transport-options.d.ts +30 -0
  184. package/dist/platform/web/transport/transport.d.ts +125 -0
  185. package/dist/ue-softphone-sdk.js +2 -1
  186. package/dist/ue-softphone-sdk.js.map +1 -0
  187. package/dist/version.d.ts +1 -0
  188. package/dist/webPhoneSdk.d.ts +24 -0
  189. package/dist/webrtc.d.ts +17 -0
  190. package/{rollup-new.config.mjs → new-rollup.config.mjs} +1 -1
  191. package/package.json +6 -6
  192. package/rollup.config.js +15 -14
  193. package/src/api/api-extractor.json +358 -0
  194. package/src/api/bye.ts +27 -0
  195. package/src/api/dtmf.ts +27 -0
  196. package/src/api/emitter.ts +110 -0
  197. package/src/api/exceptions/content-type-unsupported.ts +11 -0
  198. package/src/api/exceptions/index.ts +5 -0
  199. package/src/api/exceptions/request-pending.ts +12 -0
  200. package/src/api/exceptions/session-description-handler.ts +11 -0
  201. package/src/api/exceptions/session-terminated.ts +11 -0
  202. package/src/api/exceptions/state-transition.ts +11 -0
  203. package/src/api/index.ts +58 -0
  204. package/src/api/info.ts +27 -0
  205. package/src/api/invitation-accept-options.ts +20 -0
  206. package/src/api/invitation-progress-options.ts +36 -0
  207. package/src/api/invitation-reject-options.ts +22 -0
  208. package/src/api/invitation.ts +816 -0
  209. package/src/api/inviter-cancel-options.ts +9 -0
  210. package/src/api/inviter-invite-options.ts +29 -0
  211. package/src/api/inviter-options.ts +44 -0
  212. package/src/api/inviter.ts +1126 -0
  213. package/src/api/message.ts +27 -0
  214. package/src/api/messager-message-options.ts +12 -0
  215. package/src/api/messager-options.ts +18 -0
  216. package/src/api/messager.ts +89 -0
  217. package/src/api/notification.ts +27 -0
  218. package/src/api/notifier.ts +7 -0
  219. package/src/api/publisher-options.ts +34 -0
  220. package/src/api/publisher-publish-options.ts +6 -0
  221. package/src/api/publisher-state.ts +21 -0
  222. package/src/api/publisher-unpublish-options.ts +6 -0
  223. package/src/api/publisher.ts +418 -0
  224. package/src/api/referral.ts +89 -0
  225. package/src/api/registerer-options.ts +55 -0
  226. package/src/api/registerer-register-options.ts +12 -0
  227. package/src/api/registerer-state.ts +21 -0
  228. package/src/api/registerer-unregister-options.ts +17 -0
  229. package/src/api/registerer.ts +814 -0
  230. package/src/api/session-bye-options.ts +12 -0
  231. package/src/api/session-delegate.ts +80 -0
  232. package/src/api/session-description-handler-factory.ts +16 -0
  233. package/src/api/session-description-handler.ts +89 -0
  234. package/src/api/session-info-options.ts +12 -0
  235. package/src/api/session-invite-options.ts +29 -0
  236. package/src/api/session-message-options.ts +12 -0
  237. package/src/api/session-options.ts +8 -0
  238. package/src/api/session-refer-options.ts +15 -0
  239. package/src/api/session-state.ts +45 -0
  240. package/src/api/session.ts +1448 -0
  241. package/src/api/subscriber-options.ts +12 -0
  242. package/src/api/subscriber-subscribe-options.ts +6 -0
  243. package/src/api/subscriber.ts +536 -0
  244. package/src/api/subscription-delegate.ts +13 -0
  245. package/src/api/subscription-options.ts +8 -0
  246. package/src/api/subscription-state.ts +19 -0
  247. package/src/api/subscription-subscribe-options.ts +6 -0
  248. package/src/api/subscription-unsubscribe-options.ts +6 -0
  249. package/src/api/subscription.ts +161 -0
  250. package/src/api/transport-state.ts +37 -0
  251. package/src/api/transport.ts +169 -0
  252. package/src/api/user-agent-delegate.ts +95 -0
  253. package/src/api/user-agent-options.ts +322 -0
  254. package/src/api/user-agent-state.ts +14 -0
  255. package/src/api/user-agent.ts +1014 -0
  256. package/src/core/api-extractor.json +358 -0
  257. package/src/core/dialogs/dialog-state.ts +35 -0
  258. package/src/core/dialogs/dialog.ts +605 -0
  259. package/src/core/dialogs/index.ts +4 -0
  260. package/src/core/dialogs/session-dialog.ts +996 -0
  261. package/src/core/dialogs/subscription-dialog.ts +557 -0
  262. package/src/core/exceptions/exception.ts +11 -0
  263. package/src/core/exceptions/index.ts +3 -0
  264. package/src/core/exceptions/transaction-state-error.ts +11 -0
  265. package/src/core/exceptions/transport-error.ts +11 -0
  266. package/src/core/index.ts +19 -0
  267. package/src/core/log/index.ts +3 -0
  268. package/src/core/log/levels.ts +10 -0
  269. package/src/core/log/logger-factory.ts +119 -0
  270. package/src/core/log/logger.ts +42 -0
  271. package/src/core/messages/body.ts +171 -0
  272. package/src/core/messages/digest-authentication.ts +190 -0
  273. package/src/core/messages/incoming-message.ts +152 -0
  274. package/src/core/messages/incoming-request-message.ts +14 -0
  275. package/src/core/messages/incoming-request.ts +75 -0
  276. package/src/core/messages/incoming-response-message.ts +14 -0
  277. package/src/core/messages/incoming-response.ts +13 -0
  278. package/src/core/messages/index.ts +18 -0
  279. package/src/core/messages/md5.ts +437 -0
  280. package/src/core/messages/methods/ack.ts +22 -0
  281. package/src/core/messages/methods/bye.ts +22 -0
  282. package/src/core/messages/methods/cancel.ts +22 -0
  283. package/src/core/messages/methods/constants.ts +21 -0
  284. package/src/core/messages/methods/index.ts +13 -0
  285. package/src/core/messages/methods/info.ts +22 -0
  286. package/src/core/messages/methods/invite.ts +104 -0
  287. package/src/core/messages/methods/message.ts +22 -0
  288. package/src/core/messages/methods/notify.ts +22 -0
  289. package/src/core/messages/methods/prack.ts +22 -0
  290. package/src/core/messages/methods/publish.ts +22 -0
  291. package/src/core/messages/methods/refer.ts +22 -0
  292. package/src/core/messages/methods/register.ts +22 -0
  293. package/src/core/messages/methods/subscribe.ts +59 -0
  294. package/src/core/messages/outgoing-request-message.ts +299 -0
  295. package/src/core/messages/outgoing-request.ts +77 -0
  296. package/src/core/messages/outgoing-response.ts +174 -0
  297. package/src/core/messages/parser.ts +265 -0
  298. package/src/core/messages/utils.ts +144 -0
  299. package/src/core/session/index.ts +2 -0
  300. package/src/core/session/session-delegate.ts +88 -0
  301. package/src/core/session/session.ts +158 -0
  302. package/src/core/subscription/index.ts +2 -0
  303. package/src/core/subscription/subscription-delegate.ts +30 -0
  304. package/src/core/subscription/subscription.ts +61 -0
  305. package/src/core/timers.ts +24 -0
  306. package/src/core/transactions/client-transaction.ts +78 -0
  307. package/src/core/transactions/index.ts +10 -0
  308. package/src/core/transactions/invite-client-transaction.ts +504 -0
  309. package/src/core/transactions/invite-server-transaction.ts +432 -0
  310. package/src/core/transactions/non-invite-client-transaction.ts +257 -0
  311. package/src/core/transactions/non-invite-server-transaction.ts +241 -0
  312. package/src/core/transactions/server-transaction.ts +47 -0
  313. package/src/core/transactions/transaction-state.ts +13 -0
  314. package/src/core/transactions/transaction-user.ts +82 -0
  315. package/src/core/transactions/transaction.ts +149 -0
  316. package/src/core/transport.ts +32 -0
  317. package/src/core/user-agent-core/allowed-methods.ts +19 -0
  318. package/src/core/user-agent-core/index.ts +3 -0
  319. package/src/core/user-agent-core/user-agent-core-configuration.ts +111 -0
  320. package/src/core/user-agent-core/user-agent-core-delegate.ts +50 -0
  321. package/src/core/user-agent-core/user-agent-core.ts +905 -0
  322. package/src/core/user-agents/bye-user-agent-client.ts +16 -0
  323. package/src/core/user-agents/bye-user-agent-server.ts +14 -0
  324. package/src/core/user-agents/cancel-user-agent-client.ts +14 -0
  325. package/src/core/user-agents/index.ts +26 -0
  326. package/src/core/user-agents/info-user-agent-client.ts +15 -0
  327. package/src/core/user-agents/info-user-agent-server.ts +14 -0
  328. package/src/core/user-agents/invite-user-agent-client.ts +405 -0
  329. package/src/core/user-agents/invite-user-agent-server.ts +269 -0
  330. package/src/core/user-agents/message-user-agent-client.ts +14 -0
  331. package/src/core/user-agents/message-user-agent-server.ts +14 -0
  332. package/src/core/user-agents/notify-user-agent-client.ts +15 -0
  333. package/src/core/user-agents/notify-user-agent-server.ts +30 -0
  334. package/src/core/user-agents/prack-user-agent-client.ts +16 -0
  335. package/src/core/user-agents/prack-user-agent-server.ts +37 -0
  336. package/src/core/user-agents/publish-user-agent-client.ts +14 -0
  337. package/src/core/user-agents/re-invite-user-agent-client.ts +127 -0
  338. package/src/core/user-agents/re-invite-user-agent-server.ts +109 -0
  339. package/src/core/user-agents/re-subscribe-user-agent-client.ts +78 -0
  340. package/src/core/user-agents/re-subscribe-user-agent-server.ts +14 -0
  341. package/src/core/user-agents/refer-user-agent-client.ts +15 -0
  342. package/src/core/user-agents/refer-user-agent-server.ts +30 -0
  343. package/src/core/user-agents/register-user-agent-client.ts +14 -0
  344. package/src/core/user-agents/register-user-agent-server.ts +14 -0
  345. package/src/core/user-agents/subscribe-user-agent-client.ts +341 -0
  346. package/src/core/user-agents/subscribe-user-agent-server.ts +14 -0
  347. package/src/core/user-agents/user-agent-client.ts +378 -0
  348. package/src/core/user-agents/user-agent-server.ts +276 -0
  349. package/src/grammar/grammar.ts +55 -0
  350. package/src/grammar/index.ts +4 -0
  351. package/src/grammar/name-addr-header.ts +58 -0
  352. package/src/grammar/parameters.ts +45 -0
  353. package/src/grammar/pegjs/README.md +9 -0
  354. package/src/grammar/pegjs/dist/grammar.ts +1557 -0
  355. package/src/grammar/pegjs/src/grammar.pegjs +1009 -0
  356. package/src/grammar/uri.ts +370 -0
  357. package/src/index.ts +59 -28
  358. package/src/lib/socket.io.esm.min.js +7 -0
  359. package/src/main.ts +26 -0
  360. package/src/new-index.ts +2478 -0
  361. package/src/platform/react/README.md +1 -0
  362. package/src/platform/web/index.ts +4 -0
  363. package/src/platform/web/modifiers/index.ts +5 -0
  364. package/src/platform/web/modifiers/modifiers.ts +180 -0
  365. package/src/platform/web/session-description-handler/api-extractor.json +358 -0
  366. package/src/platform/web/session-description-handler/index.ts +14 -0
  367. package/src/platform/web/session-description-handler/media-stream-factory-default.ts +22 -0
  368. package/src/platform/web/session-description-handler/media-stream-factory.ts +10 -0
  369. package/src/platform/web/session-description-handler/peer-connection-configuration-default.ts +17 -0
  370. package/src/platform/web/session-description-handler/peer-connection-delegate.ts +72 -0
  371. package/src/platform/web/session-description-handler/session-description-handler-configuration.ts +17 -0
  372. package/src/platform/web/session-description-handler/session-description-handler-factory-default.ts +45 -0
  373. package/src/platform/web/session-description-handler/session-description-handler-factory-options.ts +10 -0
  374. package/src/platform/web/session-description-handler/session-description-handler-factory.ts +17 -0
  375. package/src/platform/web/session-description-handler/session-description-handler-options.ts +56 -0
  376. package/src/platform/web/session-description-handler/session-description-handler.ts +938 -0
  377. package/src/platform/web/simple-user/api-extractor.json +358 -0
  378. package/src/platform/web/simple-user/index.ts +7 -0
  379. package/src/platform/web/simple-user/simple-user-delegate.ts +82 -0
  380. package/src/platform/web/simple-user/simple-user-options.ts +102 -0
  381. package/src/platform/web/simple-user/simple-user.ts +1099 -0
  382. package/src/platform/web/transport/api-extractor.json +358 -0
  383. package/src/platform/web/transport/index.ts +6 -0
  384. package/src/platform/web/transport/transport-options.ts +34 -0
  385. package/src/platform/web/transport/transport.ts +742 -0
  386. package/src/version.ts +8 -0
  387. package/src/webPhoneSdk.ts +67 -0
  388. package/src/webrtc.ts +318 -0
  389. package/tsconfig.json +26 -10
  390. /package/dist/{types/config.d.ts → config.d.ts} +0 -0
@@ -0,0 +1,359 @@
1
+ import { AckableIncomingResponseWithSession, Body, IncomingAckRequest, IncomingByeRequest, IncomingInfoRequest, IncomingInviteRequest, IncomingMessageRequest, IncomingNotifyRequest, IncomingPrackRequest, IncomingReferRequest, Logger, NameAddrHeader, OutgoingByeRequest, OutgoingInfoRequest, OutgoingInviteRequest, OutgoingMessageRequest, OutgoingReferRequest, OutgoingRequestDelegate, RequestOptions, Session as SessionDialog, URI } from "../core";
2
+ import { Emitter } from "./emitter";
3
+ import { Inviter } from "./inviter";
4
+ import { InviterOptions } from "./inviter-options";
5
+ import { Notification } from "./notification";
6
+ import { SessionByeOptions } from "./session-bye-options";
7
+ import { SessionDelegate } from "./session-delegate";
8
+ import { SessionDescriptionHandler, SessionDescriptionHandlerModifier, SessionDescriptionHandlerOptions } from "./session-description-handler";
9
+ import { SessionDescriptionHandlerFactory } from "./session-description-handler-factory";
10
+ import { SessionInfoOptions } from "./session-info-options";
11
+ import { SessionInviteOptions } from "./session-invite-options";
12
+ import { SessionMessageOptions } from "./session-message-options";
13
+ import { SessionOptions } from "./session-options";
14
+ import { SessionReferOptions } from "./session-refer-options";
15
+ import { SessionState } from "./session-state";
16
+ import { UserAgent } from "./user-agent";
17
+ /**
18
+ * A session provides real time communication between one or more participants.
19
+ *
20
+ * @remarks
21
+ * The transport behaves in a deterministic manner according to the
22
+ * the state defined in {@link SessionState}.
23
+ * @public
24
+ */
25
+ export declare abstract class Session {
26
+ /**
27
+ * Property reserved for use by instance owner.
28
+ * @defaultValue `undefined`
29
+ */
30
+ data: unknown;
31
+ /**
32
+ * The session delegate.
33
+ * @defaultValue `undefined`
34
+ */
35
+ delegate: SessionDelegate | undefined;
36
+ /** @internal */
37
+ _contact: string | undefined;
38
+ /** @internal */
39
+ _referral: Inviter | undefined;
40
+ /** @internal */
41
+ _replacee: Session | undefined;
42
+ /** @internal */
43
+ protected _assertedIdentity: NameAddrHeader | undefined;
44
+ /** @internal */
45
+ protected _dialog: SessionDialog | undefined;
46
+ /** @internal */
47
+ protected _referralInviterOptions: InviterOptions | undefined;
48
+ /** @internal */
49
+ protected _renderbody: string | undefined;
50
+ /** @internal */
51
+ protected _rendertype: string | undefined;
52
+ /** If defined, NOTIFYs associated with a REFER subscription are delivered here. */
53
+ private onNotify;
54
+ /** True if there is an outgoing re-INVITE request outstanding. */
55
+ private pendingReinvite;
56
+ /** True if there is an incoming re-INVITE ACK request outstanding. */
57
+ private pendingReinviteAck;
58
+ /** Dialogs session description handler. */
59
+ private _sessionDescriptionHandler;
60
+ /** SDH modifiers for the initial INVITE transaction. */
61
+ private _sessionDescriptionHandlerModifiers;
62
+ /** SDH options for the initial INVITE transaction. */
63
+ private _sessionDescriptionHandlerOptions;
64
+ /** SDH modifiers for re-INVITE transactions. */
65
+ private _sessionDescriptionHandlerModifiersReInvite;
66
+ /** SDH options for re-NVITE transactions.*/
67
+ private _sessionDescriptionHandlerOptionsReInvite;
68
+ /** Session state. */
69
+ private _state;
70
+ /** Session state emitter. */
71
+ private _stateEventEmitter;
72
+ /** User agent. */
73
+ private _userAgent;
74
+ /**
75
+ * The identity of the local user.
76
+ */
77
+ abstract readonly localIdentity: NameAddrHeader;
78
+ /**
79
+ * The identity of the remote user.
80
+ */
81
+ abstract readonly remoteIdentity: NameAddrHeader;
82
+ /**
83
+ * Logger.
84
+ */
85
+ protected abstract logger: Logger;
86
+ /** @internal */
87
+ protected abstract _id: string;
88
+ /**
89
+ * Constructor.
90
+ * @param userAgent - User agent. See {@link UserAgent} for details.
91
+ * @internal
92
+ */
93
+ protected constructor(userAgent: UserAgent, options?: SessionOptions);
94
+ /**
95
+ * Destructor.
96
+ */
97
+ dispose(): Promise<void>;
98
+ /**
99
+ * The asserted identity of the remote user.
100
+ */
101
+ get assertedIdentity(): NameAddrHeader | undefined;
102
+ /**
103
+ * The confirmed session dialog.
104
+ */
105
+ get dialog(): SessionDialog | undefined;
106
+ /**
107
+ * A unique identifier for this session.
108
+ */
109
+ get id(): string;
110
+ /**
111
+ * The session being replace by this one.
112
+ */
113
+ get replacee(): Session | undefined;
114
+ /**
115
+ * Session description handler.
116
+ * @remarks
117
+ * If `this` is an instance of `Invitation`,
118
+ * `sessionDescriptionHandler` will be defined when the session state changes to "established".
119
+ * If `this` is an instance of `Inviter` and an offer was sent in the INVITE,
120
+ * `sessionDescriptionHandler` will be defined when the session state changes to "establishing".
121
+ * If `this` is an instance of `Inviter` and an offer was not sent in the INVITE,
122
+ * `sessionDescriptionHandler` will be defined when the session state changes to "established".
123
+ * Otherwise `undefined`.
124
+ */
125
+ get sessionDescriptionHandler(): SessionDescriptionHandler | undefined;
126
+ /**
127
+ * Session description handler factory.
128
+ */
129
+ get sessionDescriptionHandlerFactory(): SessionDescriptionHandlerFactory;
130
+ /**
131
+ * SDH modifiers for the initial INVITE transaction.
132
+ * @remarks
133
+ * Used in all cases when handling the initial INVITE transaction as either UAC or UAS.
134
+ * May be set directly at anytime.
135
+ * May optionally be set via constructor option.
136
+ * May optionally be set via options passed to Inviter.invite() or Invitation.accept().
137
+ */
138
+ get sessionDescriptionHandlerModifiers(): Array<SessionDescriptionHandlerModifier>;
139
+ set sessionDescriptionHandlerModifiers(modifiers: Array<SessionDescriptionHandlerModifier>);
140
+ /**
141
+ * SDH options for the initial INVITE transaction.
142
+ * @remarks
143
+ * Used in all cases when handling the initial INVITE transaction as either UAC or UAS.
144
+ * May be set directly at anytime.
145
+ * May optionally be set via constructor option.
146
+ * May optionally be set via options passed to Inviter.invite() or Invitation.accept().
147
+ */
148
+ get sessionDescriptionHandlerOptions(): SessionDescriptionHandlerOptions;
149
+ set sessionDescriptionHandlerOptions(options: SessionDescriptionHandlerOptions);
150
+ /**
151
+ * SDH modifiers for re-INVITE transactions.
152
+ * @remarks
153
+ * Used in all cases when handling a re-INVITE transaction as either UAC or UAS.
154
+ * May be set directly at anytime.
155
+ * May optionally be set via constructor option.
156
+ * May optionally be set via options passed to Session.invite().
157
+ */
158
+ get sessionDescriptionHandlerModifiersReInvite(): Array<SessionDescriptionHandlerModifier>;
159
+ set sessionDescriptionHandlerModifiersReInvite(modifiers: Array<SessionDescriptionHandlerModifier>);
160
+ /**
161
+ * SDH options for re-INVITE transactions.
162
+ * @remarks
163
+ * Used in all cases when handling a re-INVITE transaction as either UAC or UAS.
164
+ * May be set directly at anytime.
165
+ * May optionally be set via constructor option.
166
+ * May optionally be set via options passed to Session.invite().
167
+ */
168
+ get sessionDescriptionHandlerOptionsReInvite(): SessionDescriptionHandlerOptions;
169
+ set sessionDescriptionHandlerOptionsReInvite(options: SessionDescriptionHandlerOptions);
170
+ /**
171
+ * Session state.
172
+ */
173
+ get state(): SessionState;
174
+ /**
175
+ * Session state change emitter.
176
+ */
177
+ get stateChange(): Emitter<SessionState>;
178
+ /**
179
+ * The user agent.
180
+ */
181
+ get userAgent(): UserAgent;
182
+ /**
183
+ * End the {@link Session}. Sends a BYE.
184
+ * @param options - Options bucket. See {@link SessionByeOptions} for details.
185
+ */
186
+ bye(options?: SessionByeOptions): Promise<OutgoingByeRequest>;
187
+ /**
188
+ * Share {@link Info} with peer. Sends an INFO.
189
+ * @param options - Options bucket. See {@link SessionInfoOptions} for details.
190
+ */
191
+ info(options?: SessionInfoOptions): Promise<OutgoingInfoRequest>;
192
+ /**
193
+ * Renegotiate the session. Sends a re-INVITE.
194
+ * @param options - Options bucket. See {@link SessionInviteOptions} for details.
195
+ */
196
+ invite(options?: SessionInviteOptions): Promise<OutgoingInviteRequest>;
197
+ /**
198
+ * Deliver a {@link Message}. Sends a MESSAGE.
199
+ * @param options - Options bucket. See {@link SessionMessageOptions} for details.
200
+ */
201
+ message(options?: SessionMessageOptions): Promise<OutgoingMessageRequest>;
202
+ /**
203
+ * Proffer a {@link Referral}. Send a REFER.
204
+ * @param referTo - The referral target. If a `Session`, a REFER w/Replaces is sent.
205
+ * @param options - Options bucket. See {@link SessionReferOptions} for details.
206
+ */
207
+ refer(referTo: URI | Session, options?: SessionReferOptions): Promise<OutgoingReferRequest>;
208
+ /**
209
+ * Send BYE.
210
+ * @param delegate - Request delegate.
211
+ * @param options - Request options bucket.
212
+ * @internal
213
+ */
214
+ _bye(delegate?: OutgoingRequestDelegate, options?: RequestOptions): Promise<OutgoingByeRequest>;
215
+ /**
216
+ * Send INFO.
217
+ * @param delegate - Request delegate.
218
+ * @param options - Request options bucket.
219
+ * @internal
220
+ */
221
+ _info(delegate?: OutgoingRequestDelegate, options?: RequestOptions): Promise<OutgoingInfoRequest>;
222
+ /**
223
+ * Send MESSAGE.
224
+ * @param delegate - Request delegate.
225
+ * @param options - Request options bucket.
226
+ * @internal
227
+ */
228
+ _message(delegate?: OutgoingRequestDelegate, options?: RequestOptions): Promise<OutgoingMessageRequest>;
229
+ /**
230
+ * Send REFER.
231
+ * @param onNotify - Notification callback.
232
+ * @param delegate - Request delegate.
233
+ * @param options - Request options bucket.
234
+ * @internal
235
+ */
236
+ _refer(onNotify?: (notification: Notification) => void, delegate?: OutgoingRequestDelegate, options?: RequestOptions): Promise<OutgoingByeRequest>;
237
+ /**
238
+ * Send ACK and then BYE. There are unrecoverable errors which can occur
239
+ * while handling dialog forming and in-dialog INVITE responses and when
240
+ * they occur we ACK the response and send a BYE.
241
+ * Note that the BYE is sent in the dialog associated with the response
242
+ * which is not necessarily `this.dialog`. And, accordingly, the
243
+ * session state is not transitioned to terminated and session is not closed.
244
+ * @param inviteResponse - The response causing the error.
245
+ * @param statusCode - Status code for he reason phrase.
246
+ * @param reasonPhrase - Reason phrase for the BYE.
247
+ * @internal
248
+ */
249
+ protected ackAndBye(response: AckableIncomingResponseWithSession, statusCode?: number, reasonPhrase?: string): void;
250
+ /**
251
+ * Handle in dialog ACK request.
252
+ * @internal
253
+ */
254
+ protected onAckRequest(request: IncomingAckRequest): Promise<void>;
255
+ /**
256
+ * Handle in dialog BYE request.
257
+ * @internal
258
+ */
259
+ protected onByeRequest(request: IncomingByeRequest): void;
260
+ /**
261
+ * Handle in dialog INFO request.
262
+ * @internal
263
+ */
264
+ protected onInfoRequest(request: IncomingInfoRequest): void;
265
+ /**
266
+ * Handle in dialog INVITE request.
267
+ * @internal
268
+ */
269
+ protected onInviteRequest(request: IncomingInviteRequest): void;
270
+ /**
271
+ * Handle in dialog MESSAGE request.
272
+ * @internal
273
+ */
274
+ protected onMessageRequest(request: IncomingMessageRequest): void;
275
+ /**
276
+ * Handle in dialog NOTIFY request.
277
+ * @internal
278
+ */
279
+ protected onNotifyRequest(request: IncomingNotifyRequest): void;
280
+ /**
281
+ * Handle in dialog PRACK request.
282
+ * @internal
283
+ */
284
+ protected onPrackRequest(request: IncomingPrackRequest): void;
285
+ /**
286
+ * Handle in dialog REFER request.
287
+ * @internal
288
+ */
289
+ protected onReferRequest(request: IncomingReferRequest): void;
290
+ /**
291
+ * Generate an offer or answer for a response to an INVITE request.
292
+ * If a remote offer was provided in the request, set the remote
293
+ * description and get a local answer. If a remote offer was not
294
+ * provided, generates a local offer.
295
+ * @internal
296
+ */
297
+ protected generateResponseOfferAnswer(request: IncomingInviteRequest, options: {
298
+ sessionDescriptionHandlerOptions?: SessionDescriptionHandlerOptions;
299
+ sessionDescriptionHandlerModifiers?: Array<SessionDescriptionHandlerModifier>;
300
+ }): Promise<Body | undefined>;
301
+ /**
302
+ * Generate an offer or answer for a response to an INVITE request
303
+ * when a dialog (early or otherwise) has already been established.
304
+ * This method may NOT be called if a dialog has yet to be established.
305
+ * @internal
306
+ */
307
+ protected generateResponseOfferAnswerInDialog(options: {
308
+ sessionDescriptionHandlerOptions?: SessionDescriptionHandlerOptions;
309
+ sessionDescriptionHandlerModifiers?: Array<SessionDescriptionHandlerModifier>;
310
+ }): Promise<Body | undefined>;
311
+ /**
312
+ * Get local offer.
313
+ * @internal
314
+ */
315
+ protected getOffer(options: {
316
+ sessionDescriptionHandlerOptions?: SessionDescriptionHandlerOptions;
317
+ sessionDescriptionHandlerModifiers?: Array<SessionDescriptionHandlerModifier>;
318
+ }): Promise<Body>;
319
+ /**
320
+ * Rollback local/remote offer.
321
+ * @internal
322
+ */
323
+ protected rollbackOffer(): Promise<void>;
324
+ /**
325
+ * Set remote answer.
326
+ * @internal
327
+ */
328
+ protected setAnswer(answer: Body, options: {
329
+ sessionDescriptionHandlerOptions?: SessionDescriptionHandlerOptions;
330
+ sessionDescriptionHandlerModifiers?: Array<SessionDescriptionHandlerModifier>;
331
+ }): Promise<void>;
332
+ /**
333
+ * Set remote offer and get local answer.
334
+ * @internal
335
+ */
336
+ protected setOfferAndGetAnswer(offer: Body, options: {
337
+ sessionDescriptionHandlerOptions?: SessionDescriptionHandlerOptions;
338
+ sessionDescriptionHandlerModifiers?: Array<SessionDescriptionHandlerModifier>;
339
+ }): Promise<Body>;
340
+ /**
341
+ * SDH for confirmed dialog.
342
+ * @internal
343
+ */
344
+ protected setSessionDescriptionHandler(sdh: SessionDescriptionHandler): void;
345
+ /**
346
+ * SDH for confirmed dialog.
347
+ * @internal
348
+ */
349
+ protected setupSessionDescriptionHandler(): SessionDescriptionHandler;
350
+ /**
351
+ * Transition session state.
352
+ * @internal
353
+ */
354
+ protected stateTransition(newState: SessionState): void;
355
+ private copyRequestOptions;
356
+ private getReasonHeaderValue;
357
+ private referExtraHeaders;
358
+ private referToString;
359
+ }
@@ -0,0 +1,11 @@
1
+ import { SubscriptionOptions } from "./subscription-options";
2
+ /**
3
+ * Options for {@link Subscriber} constructor.
4
+ * @public
5
+ */
6
+ export interface SubscriberOptions extends SubscriptionOptions {
7
+ expires?: number;
8
+ extraHeaders?: Array<string>;
9
+ body?: string;
10
+ contentType?: string;
11
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Options for {@link Subscriber.subscribe}.
3
+ * @public
4
+ */
5
+ export interface SubscriberSubscribeOptions {
6
+ }
@@ -0,0 +1,94 @@
1
+ import { IncomingNotifyRequest, IncomingResponse, OutgoingSubscribeRequest, URI } from "../core";
2
+ import { SubscriberOptions } from "./subscriber-options";
3
+ import { SubscriberSubscribeOptions } from "./subscriber-subscribe-options";
4
+ import { Subscription } from "./subscription";
5
+ import { SubscriptionUnsubscribeOptions } from "./subscription-unsubscribe-options";
6
+ import { UserAgent } from "./user-agent";
7
+ /**
8
+ * A subscriber establishes a {@link Subscription} (outgoing SUBSCRIBE).
9
+ *
10
+ * @remarks
11
+ * This is (more or less) an implementation of a "subscriber" as
12
+ * defined in RFC 6665 "SIP-Specific Event Notifications".
13
+ * https://tools.ietf.org/html/rfc6665
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * // Create a new subscriber.
18
+ * const targetURI = new URI("sip", "alice", "example.com");
19
+ * const eventType = "example-name"; // https://www.iana.org/assignments/sip-events/sip-events.xhtml
20
+ * const subscriber = new Subscriber(userAgent, targetURI, eventType);
21
+ *
22
+ * // Add delegate to handle event notifications.
23
+ * subscriber.delegate = {
24
+ * onNotify: (notification: Notification) => {
25
+ * // handle notification here
26
+ * }
27
+ * };
28
+ *
29
+ * // Monitor subscription state changes.
30
+ * subscriber.stateChange.addListener((newState: SubscriptionState) => {
31
+ * if (newState === SubscriptionState.Terminated) {
32
+ * // handle state change here
33
+ * }
34
+ * });
35
+ *
36
+ * // Attempt to establish the subscription
37
+ * subscriber.subscribe();
38
+ *
39
+ * // Sometime later when done with subscription
40
+ * subscriber.unsubscribe();
41
+ * ```
42
+ *
43
+ * @public
44
+ */
45
+ export declare class Subscriber extends Subscription {
46
+ private id;
47
+ private body;
48
+ private event;
49
+ private expires;
50
+ private extraHeaders;
51
+ private logger;
52
+ private outgoingRequestMessage;
53
+ private retryAfterTimer;
54
+ private subscriberRequest;
55
+ private targetURI;
56
+ /**
57
+ * Constructor.
58
+ * @param userAgent - User agent. See {@link UserAgent} for details.
59
+ * @param targetURI - The request URI identifying the subscribed event.
60
+ * @param eventType - The event type identifying the subscribed event.
61
+ * @param options - Options bucket. See {@link SubscriberOptions} for details.
62
+ */
63
+ constructor(userAgent: UserAgent, targetURI: URI, eventType: string, options?: SubscriberOptions);
64
+ /**
65
+ * Destructor.
66
+ * @internal
67
+ */
68
+ dispose(): Promise<void>;
69
+ /**
70
+ * Subscribe to event notifications.
71
+ *
72
+ * @remarks
73
+ * Send an initial SUBSCRIBE request if no subscription as been established.
74
+ * Sends a re-SUBSCRIBE request if the subscription is "active".
75
+ */
76
+ subscribe(options?: SubscriberSubscribeOptions): Promise<void>;
77
+ /**
78
+ * {@inheritDoc Subscription.unsubscribe}
79
+ */
80
+ unsubscribe(options?: SubscriptionUnsubscribeOptions): Promise<void>;
81
+ /**
82
+ * Sends a re-SUBSCRIBE request if the subscription is "active".
83
+ * @deprecated Use `subscribe` instead.
84
+ * @internal
85
+ */
86
+ _refresh(): Promise<void>;
87
+ /** @internal */
88
+ protected onAccepted(response: IncomingResponse): void;
89
+ /** @internal */
90
+ protected onNotify(request: IncomingNotifyRequest): void;
91
+ /** @internal */
92
+ protected onRefresh(request: OutgoingSubscribeRequest): void;
93
+ private initSubscriberRequest;
94
+ }
@@ -0,0 +1,12 @@
1
+ import { Notification } from "./notification";
2
+ /**
3
+ * Delegate for {@link Subscription}.
4
+ * @public
5
+ */
6
+ export interface SubscriptionDelegate {
7
+ /**
8
+ * Called upon receiving an incoming NOTIFY request.
9
+ * @param notification - A notification. See {@link Notification} for details.
10
+ */
11
+ onNotify(notification: Notification): void;
12
+ }
@@ -0,0 +1,8 @@
1
+ import { SubscriptionDelegate } from "./subscription-delegate";
2
+ /**
3
+ * Options for {@link Subscription } constructor.
4
+ * @public
5
+ */
6
+ export interface SubscriptionOptions {
7
+ delegate?: SubscriptionDelegate;
8
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * {@link Subscription} state.
3
+ * @remarks
4
+ * The {@link Subscription} behaves in a deterministic manner according to the following
5
+ * Finite State Machine (FSM).
6
+ * ```txt
7
+ * _______________________________________
8
+ * Subscription | v
9
+ * Constructed -> Initial -> NotifyWait -> Subscribed -> Terminated
10
+ * |____________________________^
11
+ * ```
12
+ * @public
13
+ */
14
+ export declare enum SubscriptionState {
15
+ Initial = "Initial",
16
+ NotifyWait = "NotifyWait",
17
+ Subscribed = "Subscribed",
18
+ Terminated = "Terminated"
19
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Options for {@link Subscription.subscribe}.
3
+ * @public
4
+ */
5
+ export interface SubscriptionSubscribeOptions {
6
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Options for {@link Subscription.unsubscribe}.
3
+ * @public
4
+ */
5
+ export interface SubscriptionUnsubscribeOptions {
6
+ }
@@ -0,0 +1,84 @@
1
+ import { Subscription as SubscriptionDialog } from "../core";
2
+ import { Emitter } from "./emitter";
3
+ import { SubscriptionDelegate } from "./subscription-delegate";
4
+ import { SubscriptionOptions } from "./subscription-options";
5
+ import { SubscriptionState } from "./subscription-state";
6
+ import { SubscriptionSubscribeOptions } from "./subscription-subscribe-options";
7
+ import { SubscriptionUnsubscribeOptions } from "./subscription-unsubscribe-options";
8
+ import { UserAgent } from "./user-agent";
9
+ /**
10
+ * A subscription provides {@link Notification} of events.
11
+ *
12
+ * @remarks
13
+ * See {@link Subscriber} for details on establishing a subscription.
14
+ *
15
+ * @public
16
+ */
17
+ export declare abstract class Subscription {
18
+ /**
19
+ * Property reserved for use by instance owner.
20
+ * @defaultValue `undefined`
21
+ */
22
+ data: unknown;
23
+ /**
24
+ * Subscription delegate. See {@link SubscriptionDelegate} for details.
25
+ * @defaultValue `undefined`
26
+ */
27
+ delegate: SubscriptionDelegate | undefined;
28
+ /**
29
+ * If the subscription state is SubscriptionState.Subscribed, the associated subscription dialog. Otherwise undefined.
30
+ * @internal
31
+ */
32
+ protected _dialog: SubscriptionDialog | undefined;
33
+ /**
34
+ * Our user agent.
35
+ * @internal
36
+ */
37
+ protected _userAgent: UserAgent;
38
+ private _disposed;
39
+ private _logger;
40
+ private _state;
41
+ private _stateEventEmitter;
42
+ /**
43
+ * Constructor.
44
+ * @param userAgent - User agent. See {@link UserAgent} for details.
45
+ * @internal
46
+ */
47
+ protected constructor(userAgent: UserAgent, options?: SubscriptionOptions);
48
+ /**
49
+ * Destructor.
50
+ */
51
+ dispose(): Promise<void>;
52
+ /**
53
+ * The subscribed subscription dialog.
54
+ */
55
+ get dialog(): SubscriptionDialog | undefined;
56
+ /**
57
+ * True if disposed.
58
+ * @internal
59
+ */
60
+ get disposed(): boolean;
61
+ /**
62
+ * Subscription state. See {@link SubscriptionState} for details.
63
+ */
64
+ get state(): SubscriptionState;
65
+ /**
66
+ * Emits when the subscription `state` property changes.
67
+ */
68
+ get stateChange(): Emitter<SubscriptionState>;
69
+ /** @internal */
70
+ protected stateTransition(newState: SubscriptionState): void;
71
+ /**
72
+ * Sends a re-SUBSCRIBE request if the subscription is "active".
73
+ */
74
+ abstract subscribe(options?: SubscriptionSubscribeOptions): Promise<void>;
75
+ /**
76
+ * Unsubscribe from event notifications.
77
+ *
78
+ * @remarks
79
+ * If the subscription state is SubscriptionState.Subscribed, sends an in dialog SUBSCRIBE request
80
+ * with expires time of zero (an un-subscribe) and terminates the subscription.
81
+ * Otherwise a noop.
82
+ */
83
+ abstract unsubscribe(options?: SubscriptionUnsubscribeOptions): Promise<void>;
84
+ }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * {@link Transport} state.
3
+ *
4
+ * @remarks
5
+ * The {@link Transport} behaves in a deterministic manner according to the following
6
+ * Finite State Machine (FSM).
7
+ * ```txt
8
+ * ______________________________
9
+ * | ____________ |
10
+ * Transport v v | |
11
+ * Constructed -> Disconnected -> Connecting -> Connected -> Disconnecting
12
+ * ^ ^ |_____________________^ | |
13
+ * | |_____________________________| |
14
+ * |_____________________________________________|
15
+ * ```
16
+ * @public
17
+ */
18
+ export declare enum TransportState {
19
+ /**
20
+ * The `connect()` method was called.
21
+ */
22
+ Connecting = "Connecting",
23
+ /**
24
+ * The `connect()` method resolved.
25
+ */
26
+ Connected = "Connected",
27
+ /**
28
+ * The `disconnect()` method was called.
29
+ */
30
+ Disconnecting = "Disconnecting",
31
+ /**
32
+ * The `connect()` method was rejected, or
33
+ * the `disconnect()` method completed, or
34
+ * network connectivity was lost.
35
+ */
36
+ Disconnected = "Disconnected"
37
+ }