ue-softphone-sdk-beta 4.0.1 → 4.0.3

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 (341) hide show
  1. package/dist/lib/types/lib/sip.js/api/ack.d.ts +12 -0
  2. package/dist/lib/types/lib/sip.js/api/bye.d.ts +16 -0
  3. package/dist/lib/types/lib/sip.js/api/dtmf.d.ts +15 -0
  4. package/dist/lib/types/lib/sip.js/api/emitter.d.ts +88 -0
  5. package/dist/lib/types/lib/sip.js/api/exceptions/content-type-unsupported.d.ts +8 -0
  6. package/dist/lib/types/lib/sip.js/api/exceptions/request-pending.d.ts +9 -0
  7. package/dist/lib/types/lib/sip.js/api/exceptions/session-description-handler.d.ts +8 -0
  8. package/{src/lib/sip.js/api/exceptions/session-terminated.ts → dist/lib/types/lib/sip.js/api/exceptions/session-terminated.d.ts} +2 -5
  9. package/dist/lib/types/lib/sip.js/api/exceptions/state-transition.d.ts +8 -0
  10. package/dist/lib/types/lib/sip.js/api/info.d.ts +16 -0
  11. package/dist/lib/types/lib/sip.js/api/invitation-accept-options.d.ts +19 -0
  12. package/dist/lib/types/lib/sip.js/api/invitation-progress-options.d.ts +38 -0
  13. package/dist/lib/types/lib/sip.js/api/invitation-reject-options.d.ts +25 -0
  14. package/dist/lib/types/lib/sip.js/api/invitation.d.ts +179 -0
  15. package/{src/lib/sip.js/api/inviter-cancel-options.ts → dist/lib/types/lib/sip.js/api/inviter-cancel-options.d.ts} +3 -3
  16. package/dist/lib/types/lib/sip.js/api/inviter-invite-options.d.ts +28 -0
  17. package/dist/lib/types/lib/sip.js/api/inviter-options.d.ts +43 -0
  18. package/dist/lib/types/lib/sip.js/api/inviter.d.ts +236 -0
  19. package/dist/lib/types/lib/sip.js/api/message.d.ts +16 -0
  20. package/{src/lib/sip.js/api/messager-message-options.ts → dist/lib/types/lib/sip.js/api/messager-message-options.d.ts} +4 -5
  21. package/dist/lib/types/lib/sip.js/api/messager-options.d.ts +17 -0
  22. package/dist/lib/types/lib/sip.js/api/messager.d.ts +26 -0
  23. package/dist/lib/types/lib/sip.js/api/notification.d.ts +16 -0
  24. package/{src/lib/sip.js/api/notifier.ts → dist/lib/types/lib/sip.js/api/notifier.d.ts} +2 -1
  25. package/dist/lib/types/lib/sip.js/api/publisher-options.d.ts +33 -0
  26. package/dist/lib/types/lib/sip.js/api/publisher-publish-options.d.ts +6 -0
  27. package/{src/lib/sip.js/api/publisher-state.ts → dist/lib/types/lib/sip.js/api/publisher-state.d.ts} +5 -5
  28. package/dist/lib/types/lib/sip.js/api/publisher-unpublish-options.d.ts +6 -0
  29. package/dist/lib/types/lib/sip.js/api/publisher.d.ts +65 -0
  30. package/dist/lib/types/lib/sip.js/api/referral.d.ts +38 -0
  31. package/dist/lib/types/lib/sip.js/api/registerer-options.d.ts +46 -0
  32. package/{src/lib/sip.js/api/registerer-register-options.ts → dist/lib/types/lib/sip.js/api/registerer-register-options.d.ts} +4 -5
  33. package/{src/lib/sip.js/api/registerer-state.ts → dist/lib/types/lib/sip.js/api/registerer-state.d.ts} +5 -5
  34. package/dist/lib/types/lib/sip.js/api/registerer-unregister-options.d.ts +16 -0
  35. package/dist/lib/types/lib/sip.js/api/registerer.d.ts +144 -0
  36. package/{src/lib/sip.js/api/session-bye-options.ts → dist/lib/types/lib/sip.js/api/session-bye-options.d.ts} +4 -5
  37. package/dist/lib/types/lib/sip.js/api/session-delegate.d.ts +79 -0
  38. package/dist/lib/types/lib/sip.js/api/session-description-handler-factory.d.ts +15 -0
  39. package/dist/lib/types/lib/sip.js/api/session-description-handler.d.ts +74 -0
  40. package/{src/lib/sip.js/api/session-info-options.ts → dist/lib/types/lib/sip.js/api/session-info-options.d.ts} +4 -5
  41. package/dist/lib/types/lib/sip.js/api/session-invite-options.d.ts +28 -0
  42. package/{src/lib/sip.js/api/session-message-options.ts → dist/lib/types/lib/sip.js/api/session-message-options.d.ts} +4 -5
  43. package/{src/lib/sip.js/api/session-options.ts → dist/lib/types/lib/sip.js/api/session-options.d.ts} +1 -1
  44. package/dist/lib/types/lib/sip.js/api/session-refer-options.d.ts +14 -0
  45. package/dist/lib/types/lib/sip.js/api/session-state.d.ts +45 -0
  46. package/dist/lib/types/lib/sip.js/api/session.d.ts +359 -0
  47. package/{src/lib/sip.js/api/subscriber-options.ts → dist/lib/types/lib/sip.js/api/subscriber-options.d.ts} +4 -5
  48. package/dist/lib/types/lib/sip.js/api/subscriber-subscribe-options.d.ts +6 -0
  49. package/dist/lib/types/lib/sip.js/api/subscriber.d.ts +94 -0
  50. package/dist/lib/types/lib/sip.js/api/subscription-delegate.d.ts +12 -0
  51. package/{src/lib/sip.js/api/subscription-options.ts → dist/lib/types/lib/sip.js/api/subscription-options.d.ts} +1 -1
  52. package/{src/lib/sip.js/api/subscription-state.ts → dist/lib/types/lib/sip.js/api/subscription-state.d.ts} +5 -5
  53. package/dist/lib/types/lib/sip.js/api/subscription-subscribe-options.d.ts +6 -0
  54. package/dist/lib/types/lib/sip.js/api/subscription-unsubscribe-options.d.ts +6 -0
  55. package/dist/lib/types/lib/sip.js/api/subscription.d.ts +84 -0
  56. package/{src/lib/sip.js/api/transport-state.ts → dist/lib/types/lib/sip.js/api/transport-state.d.ts} +19 -19
  57. package/dist/lib/types/lib/sip.js/api/transport.d.ts +159 -0
  58. package/dist/lib/types/lib/sip.js/api/user-agent-delegate.d.ts +84 -0
  59. package/dist/lib/types/lib/sip.js/api/user-agent-options.d.ts +253 -0
  60. package/{src/lib/sip.js/api/user-agent-state.ts → dist/lib/types/lib/sip.js/api/user-agent-state.d.ts} +3 -3
  61. package/dist/lib/types/lib/sip.js/api/user-agent.d.ts +200 -0
  62. package/{src/lib/sip.js/core/dialogs/dialog-state.ts → dist/lib/types/lib/sip.js/core/dialogs/dialog-state.d.ts} +12 -13
  63. package/dist/lib/types/lib/sip.js/core/dialogs/dialog.d.ts +161 -0
  64. package/dist/lib/types/lib/sip.js/core/dialogs/session-dialog.d.ts +196 -0
  65. package/dist/lib/types/lib/sip.js/core/dialogs/subscription-dialog.d.ts +120 -0
  66. package/dist/lib/types/lib/sip.js/core/exceptions/exception.d.ts +8 -0
  67. package/{src/lib/sip.js/core/exceptions/transaction-state-error.ts → dist/lib/types/lib/sip.js/core/exceptions/transaction-state-error.d.ts} +2 -5
  68. package/dist/lib/types/lib/sip.js/core/exceptions/transport-error.d.ts +8 -0
  69. package/{src/lib/sip.js/core/index.ts → dist/lib/types/lib/sip.js/core/index.d.ts} +0 -4
  70. package/dist/lib/types/lib/sip.js/core/log/levels.d.ts +10 -0
  71. package/dist/lib/types/lib/sip.js/core/log/logger-factory.d.ts +21 -0
  72. package/dist/lib/types/lib/sip.js/core/log/logger.d.ts +19 -0
  73. package/dist/lib/types/lib/sip.js/core/messages/body.d.ts +64 -0
  74. package/dist/lib/types/lib/sip.js/core/messages/digest-authentication.d.ts +51 -0
  75. package/dist/lib/types/lib/sip.js/core/messages/incoming-message.d.ts +79 -0
  76. package/dist/lib/types/lib/sip.js/core/messages/incoming-request-message.d.ts +10 -0
  77. package/dist/lib/types/lib/sip.js/core/messages/incoming-request.d.ts +67 -0
  78. package/dist/lib/types/lib/sip.js/core/messages/incoming-response-message.d.ts +10 -0
  79. package/{src/lib/sip.js/core/messages/incoming-response.ts → dist/lib/types/lib/sip.js/core/messages/incoming-response.d.ts} +2 -3
  80. package/{src/lib/sip.js/core/messages/index.ts → dist/lib/types/lib/sip.js/core/messages/index.d.ts} +0 -5
  81. package/dist/lib/types/lib/sip.js/core/messages/md5.d.ts +32 -0
  82. package/{src/lib/sip.js/core/messages/methods/ack.ts → dist/lib/types/lib/sip.js/core/messages/methods/ack.d.ts} +4 -8
  83. package/{src/lib/sip.js/core/messages/methods/bye.ts → dist/lib/types/lib/sip.js/core/messages/methods/bye.d.ts} +6 -7
  84. package/{src/lib/sip.js/core/messages/methods/cancel.ts → dist/lib/types/lib/sip.js/core/messages/methods/cancel.d.ts} +6 -7
  85. package/dist/lib/types/lib/sip.js/core/messages/methods/constants.d.ts +20 -0
  86. package/{src/lib/sip.js/core/messages/methods/info.ts → dist/lib/types/lib/sip.js/core/messages/methods/info.d.ts} +6 -7
  87. package/dist/lib/types/lib/sip.js/core/messages/methods/invite.d.ts +86 -0
  88. package/{src/lib/sip.js/core/messages/methods/message.ts → dist/lib/types/lib/sip.js/core/messages/methods/message.d.ts} +6 -7
  89. package/{src/lib/sip.js/core/messages/methods/notify.ts → dist/lib/types/lib/sip.js/core/messages/methods/notify.d.ts} +6 -7
  90. package/{src/lib/sip.js/core/messages/methods/prack.ts → dist/lib/types/lib/sip.js/core/messages/methods/prack.d.ts} +6 -7
  91. package/{src/lib/sip.js/core/messages/methods/publish.ts → dist/lib/types/lib/sip.js/core/messages/methods/publish.d.ts} +6 -7
  92. package/{src/lib/sip.js/core/messages/methods/refer.ts → dist/lib/types/lib/sip.js/core/messages/methods/refer.d.ts} +6 -7
  93. package/{src/lib/sip.js/core/messages/methods/register.ts → dist/lib/types/lib/sip.js/core/messages/methods/register.d.ts} +6 -7
  94. package/dist/lib/types/lib/sip.js/core/messages/methods/subscribe.d.ts +54 -0
  95. package/dist/lib/types/lib/sip.js/core/messages/outgoing-request-message.d.ts +94 -0
  96. package/dist/lib/types/lib/sip.js/core/messages/outgoing-request.d.ts +67 -0
  97. package/dist/lib/types/lib/sip.js/core/messages/outgoing-response.d.ts +42 -0
  98. package/dist/lib/types/lib/sip.js/core/messages/parser.d.ts +14 -0
  99. package/dist/lib/types/lib/sip.js/core/messages/utils.d.ts +24 -0
  100. package/dist/lib/types/lib/sip.js/core/session/session-delegate.d.ts +70 -0
  101. package/dist/lib/types/lib/sip.js/core/session/session.d.ts +134 -0
  102. package/dist/lib/types/lib/sip.js/core/subscription/subscription-delegate.d.ts +27 -0
  103. package/dist/lib/types/lib/sip.js/core/subscription/subscription.d.ts +55 -0
  104. package/dist/lib/types/lib/sip.js/core/timers.d.ts +20 -0
  105. package/dist/lib/types/lib/sip.js/core/transactions/client-transaction.d.ts +45 -0
  106. package/dist/lib/types/lib/sip.js/core/transactions/invite-client-transaction.d.ts +116 -0
  107. package/dist/lib/types/lib/sip.js/core/transactions/invite-server-transaction.d.ts +127 -0
  108. package/dist/lib/types/lib/sip.js/core/transactions/non-invite-client-transaction.d.ts +69 -0
  109. package/dist/lib/types/lib/sip.js/core/transactions/non-invite-server-transaction.d.ts +57 -0
  110. package/dist/lib/types/lib/sip.js/core/transactions/server-transaction.d.ts +35 -0
  111. package/dist/lib/types/lib/sip.js/core/transactions/transaction-state.d.ts +13 -0
  112. package/dist/lib/types/lib/sip.js/core/transactions/transaction-user.d.ts +72 -0
  113. package/dist/lib/types/lib/sip.js/core/transactions/transaction.d.ts +79 -0
  114. package/dist/lib/types/lib/sip.js/core/transport.d.ts +31 -0
  115. package/dist/lib/types/lib/sip.js/core/user-agent-core/allowed-methods.d.ts +4 -0
  116. package/dist/lib/types/lib/sip.js/core/user-agent-core/user-agent-core-configuration.d.ts +99 -0
  117. package/dist/lib/types/lib/sip.js/core/user-agent-core/user-agent-core-delegate.d.ts +37 -0
  118. package/dist/lib/types/lib/sip.js/core/user-agent-core/user-agent-core.d.ts +179 -0
  119. package/dist/lib/types/lib/sip.js/core/user-agents/bye-user-agent-client.d.ts +10 -0
  120. package/dist/lib/types/lib/sip.js/core/user-agents/bye-user-agent-server.d.ts +10 -0
  121. package/dist/lib/types/lib/sip.js/core/user-agents/cancel-user-agent-client.d.ts +10 -0
  122. package/dist/lib/types/lib/sip.js/core/user-agents/info-user-agent-client.d.ts +10 -0
  123. package/dist/lib/types/lib/sip.js/core/user-agents/info-user-agent-server.d.ts +10 -0
  124. package/dist/lib/types/lib/sip.js/core/user-agents/invite-user-agent-client.d.ts +35 -0
  125. package/dist/lib/types/lib/sip.js/core/user-agents/invite-user-agent-server.d.ts +77 -0
  126. package/dist/lib/types/lib/sip.js/core/user-agents/message-user-agent-client.d.ts +10 -0
  127. package/dist/lib/types/lib/sip.js/core/user-agents/message-user-agent-server.d.ts +10 -0
  128. package/dist/lib/types/lib/sip.js/core/user-agents/notify-user-agent-client.d.ts +10 -0
  129. package/dist/lib/types/lib/sip.js/core/user-agents/notify-user-agent-server.d.ts +16 -0
  130. package/dist/lib/types/lib/sip.js/core/user-agents/prack-user-agent-client.d.ts +10 -0
  131. package/dist/lib/types/lib/sip.js/core/user-agents/prack-user-agent-server.d.ts +16 -0
  132. package/dist/lib/types/lib/sip.js/core/user-agents/publish-user-agent-client.d.ts +10 -0
  133. package/dist/lib/types/lib/sip.js/core/user-agents/re-invite-user-agent-client.d.ts +18 -0
  134. package/dist/lib/types/lib/sip.js/core/user-agents/re-invite-user-agent-server.d.ts +41 -0
  135. package/dist/lib/types/lib/sip.js/core/user-agents/re-subscribe-user-agent-client.d.ts +17 -0
  136. package/dist/lib/types/lib/sip.js/core/user-agents/re-subscribe-user-agent-server.d.ts +10 -0
  137. package/dist/lib/types/lib/sip.js/core/user-agents/refer-user-agent-client.d.ts +10 -0
  138. package/dist/lib/types/lib/sip.js/core/user-agents/refer-user-agent-server.d.ts +16 -0
  139. package/dist/lib/types/lib/sip.js/core/user-agents/register-user-agent-client.d.ts +10 -0
  140. package/dist/lib/types/lib/sip.js/core/user-agents/register-user-agent-server.d.ts +11 -0
  141. package/dist/lib/types/lib/sip.js/core/user-agents/subscribe-user-agent-client.d.ts +65 -0
  142. package/dist/lib/types/lib/sip.js/core/user-agents/subscribe-user-agent-server.d.ts +11 -0
  143. package/dist/lib/types/lib/sip.js/core/user-agents/user-agent-client.d.ts +103 -0
  144. package/dist/lib/types/lib/sip.js/core/user-agents/user-agent-server.d.ts +79 -0
  145. package/dist/lib/types/lib/sip.js/grammar/grammar.d.ts +26 -0
  146. package/dist/lib/types/lib/sip.js/grammar/name-addr-header.d.ts +24 -0
  147. package/dist/lib/types/lib/sip.js/grammar/parameters.d.ts +16 -0
  148. package/dist/lib/types/lib/sip.js/grammar/pegjs/dist/grammar.d.ts +50 -0
  149. package/dist/lib/types/lib/sip.js/grammar/uri.d.ts +62 -0
  150. package/dist/lib/types/lib/sip.js/index.d.ts +9 -0
  151. package/dist/lib/types/lib/sip.js/platform/web/modifiers/modifiers.d.ts +41 -0
  152. package/dist/lib/types/lib/sip.js/platform/web/session-description-handler/media-stream-factory-default.d.ts +6 -0
  153. package/{src/lib/sip.js/platform/web/session-description-handler/media-stream-factory.ts → dist/lib/types/lib/sip.js/platform/web/session-description-handler/media-stream-factory.d.ts} +1 -5
  154. package/dist/lib/types/lib/sip.js/platform/web/session-description-handler/peer-connection-configuration-default.d.ts +5 -0
  155. package/dist/lib/types/lib/sip.js/platform/web/session-description-handler/peer-connection-delegate.d.ts +63 -0
  156. package/dist/lib/types/lib/sip.js/platform/web/session-description-handler/session-description-handler-configuration.d.ts +16 -0
  157. package/dist/lib/types/lib/sip.js/platform/web/session-description-handler/session-description-handler-factory-default.d.ts +11 -0
  158. package/{src/lib/sip.js/platform/web/session-description-handler/session-description-handler-factory-options.ts → dist/lib/types/lib/sip.js/platform/web/session-description-handler/session-description-handler-factory-options.d.ts} +0 -1
  159. package/{src/lib/sip.js/platform/web/session-description-handler/session-description-handler-factory.ts → dist/lib/types/lib/sip.js/platform/web/session-description-handler/session-description-handler-factory.d.ts} +7 -8
  160. package/dist/lib/types/lib/sip.js/platform/web/session-description-handler/session-description-handler-options.d.ts +47 -0
  161. package/dist/lib/types/lib/sip.js/platform/web/session-description-handler/session-description-handler.d.ts +212 -0
  162. package/dist/lib/types/lib/sip.js/platform/web/simple-user/simple-user-delegate.d.ts +72 -0
  163. package/dist/lib/types/lib/sip.js/platform/web/simple-user/simple-user-options.d.ts +90 -0
  164. package/dist/lib/types/lib/sip.js/platform/web/simple-user/simple-user.d.ts +226 -0
  165. package/dist/lib/types/lib/sip.js/platform/web/transport/transport-options.d.ts +30 -0
  166. package/dist/lib/types/lib/sip.js/platform/web/transport/transport.d.ts +125 -0
  167. package/dist/lib/types/lib/sip.js/version.d.ts +1 -0
  168. package/dist/lib/types/webrtc/webrtc-method.d.ts +2 -0
  169. package/dist/lib/types/webrtc/webrtc.d.ts +38 -0
  170. package/package.json +4 -1
  171. package/.babelrc +0 -12
  172. package/.gitlab-ci.yml +0 -3
  173. package/Dockerfile +0 -15
  174. package/index.html/index.html +0 -118
  175. package/nginx.conf +0 -56
  176. package/rollup-new.config.mjs +0 -20
  177. package/rollup.config.js +0 -45
  178. package/src/config.ts +0 -19
  179. package/src/index.ts +0 -2473
  180. package/src/lib/sip.js/api/ack.ts +0 -15
  181. package/src/lib/sip.js/api/api-extractor.json +0 -350
  182. package/src/lib/sip.js/api/bye.ts +0 -27
  183. package/src/lib/sip.js/api/dtmf.ts +0 -27
  184. package/src/lib/sip.js/api/emitter.ts +0 -110
  185. package/src/lib/sip.js/api/exceptions/content-type-unsupported.ts +0 -11
  186. package/src/lib/sip.js/api/exceptions/request-pending.ts +0 -12
  187. package/src/lib/sip.js/api/exceptions/session-description-handler.ts +0 -11
  188. package/src/lib/sip.js/api/exceptions/state-transition.ts +0 -11
  189. package/src/lib/sip.js/api/info.ts +0 -27
  190. package/src/lib/sip.js/api/invitation-accept-options.ts +0 -20
  191. package/src/lib/sip.js/api/invitation-progress-options.ts +0 -36
  192. package/src/lib/sip.js/api/invitation-reject-options.ts +0 -22
  193. package/src/lib/sip.js/api/invitation.ts +0 -815
  194. package/src/lib/sip.js/api/inviter-invite-options.ts +0 -29
  195. package/src/lib/sip.js/api/inviter-options.ts +0 -44
  196. package/src/lib/sip.js/api/inviter.ts +0 -1126
  197. package/src/lib/sip.js/api/message.ts +0 -27
  198. package/src/lib/sip.js/api/messager-options.ts +0 -18
  199. package/src/lib/sip.js/api/messager.ts +0 -89
  200. package/src/lib/sip.js/api/notification.ts +0 -27
  201. package/src/lib/sip.js/api/publisher-options.ts +0 -34
  202. package/src/lib/sip.js/api/publisher-publish-options.ts +0 -6
  203. package/src/lib/sip.js/api/publisher-unpublish-options.ts +0 -6
  204. package/src/lib/sip.js/api/publisher.ts +0 -421
  205. package/src/lib/sip.js/api/referral.ts +0 -89
  206. package/src/lib/sip.js/api/registerer-options.ts +0 -55
  207. package/src/lib/sip.js/api/registerer-unregister-options.ts +0 -17
  208. package/src/lib/sip.js/api/registerer.ts +0 -819
  209. package/src/lib/sip.js/api/session-delegate.ts +0 -87
  210. package/src/lib/sip.js/api/session-description-handler-factory.ts +0 -16
  211. package/src/lib/sip.js/api/session-description-handler.ts +0 -89
  212. package/src/lib/sip.js/api/session-invite-options.ts +0 -29
  213. package/src/lib/sip.js/api/session-refer-options.ts +0 -15
  214. package/src/lib/sip.js/api/session-state.ts +0 -45
  215. package/src/lib/sip.js/api/session.ts +0 -1454
  216. package/src/lib/sip.js/api/subscriber-subscribe-options.ts +0 -6
  217. package/src/lib/sip.js/api/subscriber.ts +0 -537
  218. package/src/lib/sip.js/api/subscription-delegate.ts +0 -13
  219. package/src/lib/sip.js/api/subscription-subscribe-options.ts +0 -6
  220. package/src/lib/sip.js/api/subscription-unsubscribe-options.ts +0 -6
  221. package/src/lib/sip.js/api/subscription.ts +0 -161
  222. package/src/lib/sip.js/api/transport.ts +0 -169
  223. package/src/lib/sip.js/api/user-agent-delegate.ts +0 -95
  224. package/src/lib/sip.js/api/user-agent-options.ts +0 -322
  225. package/src/lib/sip.js/api/user-agent.ts +0 -1013
  226. package/src/lib/sip.js/core/api-extractor.json +0 -350
  227. package/src/lib/sip.js/core/dialogs/dialog.ts +0 -605
  228. package/src/lib/sip.js/core/dialogs/session-dialog.ts +0 -997
  229. package/src/lib/sip.js/core/dialogs/subscription-dialog.ts +0 -558
  230. package/src/lib/sip.js/core/exceptions/exception.ts +0 -11
  231. package/src/lib/sip.js/core/exceptions/transport-error.ts +0 -11
  232. package/src/lib/sip.js/core/log/levels.ts +0 -10
  233. package/src/lib/sip.js/core/log/logger-factory.ts +0 -119
  234. package/src/lib/sip.js/core/log/logger.ts +0 -42
  235. package/src/lib/sip.js/core/messages/body.ts +0 -171
  236. package/src/lib/sip.js/core/messages/digest-authentication.ts +0 -190
  237. package/src/lib/sip.js/core/messages/incoming-message.ts +0 -152
  238. package/src/lib/sip.js/core/messages/incoming-request-message.ts +0 -14
  239. package/src/lib/sip.js/core/messages/incoming-request.ts +0 -75
  240. package/src/lib/sip.js/core/messages/incoming-response-message.ts +0 -14
  241. package/src/lib/sip.js/core/messages/md5.ts +0 -437
  242. package/src/lib/sip.js/core/messages/methods/constants.ts +0 -21
  243. package/src/lib/sip.js/core/messages/methods/invite.ts +0 -104
  244. package/src/lib/sip.js/core/messages/methods/subscribe.ts +0 -59
  245. package/src/lib/sip.js/core/messages/outgoing-request-message.ts +0 -299
  246. package/src/lib/sip.js/core/messages/outgoing-request.ts +0 -77
  247. package/src/lib/sip.js/core/messages/outgoing-response.ts +0 -174
  248. package/src/lib/sip.js/core/messages/parser.ts +0 -265
  249. package/src/lib/sip.js/core/messages/utils.ts +0 -144
  250. package/src/lib/sip.js/core/session/session-delegate.ts +0 -88
  251. package/src/lib/sip.js/core/session/session.ts +0 -158
  252. package/src/lib/sip.js/core/subscription/subscription-delegate.ts +0 -30
  253. package/src/lib/sip.js/core/subscription/subscription.ts +0 -61
  254. package/src/lib/sip.js/core/timers.ts +0 -24
  255. package/src/lib/sip.js/core/transactions/client-transaction.ts +0 -78
  256. package/src/lib/sip.js/core/transactions/invite-client-transaction.ts +0 -505
  257. package/src/lib/sip.js/core/transactions/invite-server-transaction.ts +0 -433
  258. package/src/lib/sip.js/core/transactions/non-invite-client-transaction.ts +0 -258
  259. package/src/lib/sip.js/core/transactions/non-invite-server-transaction.ts +0 -242
  260. package/src/lib/sip.js/core/transactions/server-transaction.ts +0 -47
  261. package/src/lib/sip.js/core/transactions/transaction-state.ts +0 -13
  262. package/src/lib/sip.js/core/transactions/transaction-user.ts +0 -82
  263. package/src/lib/sip.js/core/transactions/transaction.ts +0 -149
  264. package/src/lib/sip.js/core/transport.ts +0 -32
  265. package/src/lib/sip.js/core/user-agent-core/allowed-methods.ts +0 -19
  266. package/src/lib/sip.js/core/user-agent-core/user-agent-core-configuration.ts +0 -111
  267. package/src/lib/sip.js/core/user-agent-core/user-agent-core-delegate.ts +0 -50
  268. package/src/lib/sip.js/core/user-agent-core/user-agent-core.ts +0 -905
  269. package/src/lib/sip.js/core/user-agents/bye-user-agent-client.ts +0 -16
  270. package/src/lib/sip.js/core/user-agents/bye-user-agent-server.ts +0 -14
  271. package/src/lib/sip.js/core/user-agents/cancel-user-agent-client.ts +0 -14
  272. package/src/lib/sip.js/core/user-agents/info-user-agent-client.ts +0 -15
  273. package/src/lib/sip.js/core/user-agents/info-user-agent-server.ts +0 -14
  274. package/src/lib/sip.js/core/user-agents/invite-user-agent-client.ts +0 -406
  275. package/src/lib/sip.js/core/user-agents/invite-user-agent-server.ts +0 -269
  276. package/src/lib/sip.js/core/user-agents/message-user-agent-client.ts +0 -14
  277. package/src/lib/sip.js/core/user-agents/message-user-agent-server.ts +0 -14
  278. package/src/lib/sip.js/core/user-agents/notify-user-agent-client.ts +0 -15
  279. package/src/lib/sip.js/core/user-agents/notify-user-agent-server.ts +0 -30
  280. package/src/lib/sip.js/core/user-agents/prack-user-agent-client.ts +0 -16
  281. package/src/lib/sip.js/core/user-agents/prack-user-agent-server.ts +0 -37
  282. package/src/lib/sip.js/core/user-agents/publish-user-agent-client.ts +0 -14
  283. package/src/lib/sip.js/core/user-agents/re-invite-user-agent-client.ts +0 -128
  284. package/src/lib/sip.js/core/user-agents/re-invite-user-agent-server.ts +0 -109
  285. package/src/lib/sip.js/core/user-agents/re-subscribe-user-agent-client.ts +0 -78
  286. package/src/lib/sip.js/core/user-agents/re-subscribe-user-agent-server.ts +0 -14
  287. package/src/lib/sip.js/core/user-agents/refer-user-agent-client.ts +0 -15
  288. package/src/lib/sip.js/core/user-agents/refer-user-agent-server.ts +0 -30
  289. package/src/lib/sip.js/core/user-agents/register-user-agent-client.ts +0 -14
  290. package/src/lib/sip.js/core/user-agents/register-user-agent-server.ts +0 -14
  291. package/src/lib/sip.js/core/user-agents/subscribe-user-agent-client.ts +0 -342
  292. package/src/lib/sip.js/core/user-agents/subscribe-user-agent-server.ts +0 -14
  293. package/src/lib/sip.js/core/user-agents/user-agent-client.ts +0 -378
  294. package/src/lib/sip.js/core/user-agents/user-agent-server.ts +0 -276
  295. package/src/lib/sip.js/grammar/grammar.ts +0 -55
  296. package/src/lib/sip.js/grammar/name-addr-header.ts +0 -58
  297. package/src/lib/sip.js/grammar/parameters.ts +0 -45
  298. package/src/lib/sip.js/grammar/pegjs/README.md +0 -9
  299. package/src/lib/sip.js/grammar/pegjs/dist/grammar.ts +0 -1557
  300. package/src/lib/sip.js/grammar/pegjs/src/grammar.pegjs +0 -1009
  301. package/src/lib/sip.js/grammar/uri.ts +0 -370
  302. package/src/lib/sip.js/index.ts +0 -20
  303. package/src/lib/sip.js/platform/react/README.md +0 -1
  304. package/src/lib/sip.js/platform/web/modifiers/modifiers.ts +0 -180
  305. package/src/lib/sip.js/platform/web/session-description-handler/api-extractor.json +0 -350
  306. package/src/lib/sip.js/platform/web/session-description-handler/media-stream-factory-default.ts +0 -22
  307. package/src/lib/sip.js/platform/web/session-description-handler/peer-connection-configuration-default.ts +0 -17
  308. package/src/lib/sip.js/platform/web/session-description-handler/peer-connection-delegate.ts +0 -72
  309. package/src/lib/sip.js/platform/web/session-description-handler/session-description-handler-configuration.ts +0 -17
  310. package/src/lib/sip.js/platform/web/session-description-handler/session-description-handler-factory-default.ts +0 -45
  311. package/src/lib/sip.js/platform/web/session-description-handler/session-description-handler-options.ts +0 -56
  312. package/src/lib/sip.js/platform/web/session-description-handler/session-description-handler.ts +0 -938
  313. package/src/lib/sip.js/platform/web/simple-user/api-extractor.json +0 -350
  314. package/src/lib/sip.js/platform/web/simple-user/simple-user-delegate.ts +0 -82
  315. package/src/lib/sip.js/platform/web/simple-user/simple-user-options.ts +0 -102
  316. package/src/lib/sip.js/platform/web/simple-user/simple-user.ts +0 -1099
  317. package/src/lib/sip.js/platform/web/transport/api-extractor.json +0 -350
  318. package/src/lib/sip.js/platform/web/transport/transport-options.ts +0 -34
  319. package/src/lib/sip.js/platform/web/transport/transport.ts +0 -743
  320. package/src/lib/sip.js/version.ts +0 -1
  321. package/src/lib/socket.io.esm.min.js +0 -7
  322. package/src/webrtc/webrtc-method.ts +0 -49
  323. package/src/webrtc/webrtc.ts +0 -350
  324. package/tsconfig.json +0 -21
  325. /package/{src/lib/sip.js/api/exceptions/index.ts → dist/lib/types/lib/sip.js/api/exceptions/index.d.ts} +0 -0
  326. /package/{src/lib/sip.js/api/index.ts → dist/lib/types/lib/sip.js/api/index.d.ts} +0 -0
  327. /package/{src/lib/sip.js/core/dialogs/index.ts → dist/lib/types/lib/sip.js/core/dialogs/index.d.ts} +0 -0
  328. /package/{src/lib/sip.js/core/exceptions/index.ts → dist/lib/types/lib/sip.js/core/exceptions/index.d.ts} +0 -0
  329. /package/{src/lib/sip.js/core/log/index.ts → dist/lib/types/lib/sip.js/core/log/index.d.ts} +0 -0
  330. /package/{src/lib/sip.js/core/messages/methods/index.ts → dist/lib/types/lib/sip.js/core/messages/methods/index.d.ts} +0 -0
  331. /package/{src/lib/sip.js/core/session/index.ts → dist/lib/types/lib/sip.js/core/session/index.d.ts} +0 -0
  332. /package/{src/lib/sip.js/core/subscription/index.ts → dist/lib/types/lib/sip.js/core/subscription/index.d.ts} +0 -0
  333. /package/{src/lib/sip.js/core/transactions/index.ts → dist/lib/types/lib/sip.js/core/transactions/index.d.ts} +0 -0
  334. /package/{src/lib/sip.js/core/user-agent-core/index.ts → dist/lib/types/lib/sip.js/core/user-agent-core/index.d.ts} +0 -0
  335. /package/{src/lib/sip.js/core/user-agents/index.ts → dist/lib/types/lib/sip.js/core/user-agents/index.d.ts} +0 -0
  336. /package/{src/lib/sip.js/grammar/index.ts → dist/lib/types/lib/sip.js/grammar/index.d.ts} +0 -0
  337. /package/{src/lib/sip.js/platform/web/index.ts → dist/lib/types/lib/sip.js/platform/web/index.d.ts} +0 -0
  338. /package/{src/lib/sip.js/platform/web/modifiers/index.ts → dist/lib/types/lib/sip.js/platform/web/modifiers/index.d.ts} +0 -0
  339. /package/{src/lib/sip.js/platform/web/session-description-handler/index.ts → dist/lib/types/lib/sip.js/platform/web/session-description-handler/index.d.ts} +0 -0
  340. /package/{src/lib/sip.js/platform/web/simple-user/index.ts → dist/lib/types/lib/sip.js/platform/web/simple-user/index.d.ts} +0 -0
  341. /package/{src/lib/sip.js/platform/web/transport/index.ts → dist/lib/types/lib/sip.js/platform/web/transport/index.d.ts} +0 -0
@@ -1,78 +0,0 @@
1
- import { SubscriptionDialog } from "../dialogs";
2
- import {
3
- C,
4
- IncomingResponseMessage,
5
- OutgoingRequestDelegate,
6
- OutgoingSubscribeRequest,
7
- RequestOptions
8
- } from "../messages";
9
- import { NonInviteClientTransaction } from "../transactions";
10
- import { UserAgentClient } from "./user-agent-client";
11
-
12
- /**
13
- * Re-SUBSCRIBE UAC.
14
- * @public
15
- */
16
- export class ReSubscribeUserAgentClient extends UserAgentClient implements OutgoingSubscribeRequest {
17
- private dialog: SubscriptionDialog;
18
-
19
- constructor(dialog: SubscriptionDialog, delegate?: OutgoingRequestDelegate, options?: RequestOptions) {
20
- const message = dialog.createOutgoingRequestMessage(C.SUBSCRIBE, options);
21
- super(NonInviteClientTransaction, dialog.userAgentCore, message, delegate);
22
- this.dialog = dialog;
23
- }
24
-
25
- public waitNotifyStop(): void {
26
- // TODO: Placeholder. Not utilized currently.
27
- return;
28
- }
29
-
30
- /**
31
- * Receive a response from the transaction layer.
32
- * @param message - Incoming response message.
33
- */
34
- protected receiveResponse(message: IncomingResponseMessage): void {
35
- if (message.statusCode && message.statusCode >= 200 && message.statusCode < 300) {
36
- // The "Expires" header field in a 200-class response to SUBSCRIBE
37
- // request indicates the actual duration for which the subscription will
38
- // remain active (unless refreshed). The received value might be
39
- // smaller than the value indicated in the SUBSCRIBE request but cannot
40
- // be larger; see Section 4.2.1 for details.
41
- // https://tools.ietf.org/html/rfc6665#section-4.1.2.1
42
- const expires = message.getHeader("Expires");
43
- if (!expires) {
44
- this.logger.warn("Expires header missing in a 200-class response to SUBSCRIBE");
45
- } else {
46
- const subscriptionExpiresReceived = Number(expires);
47
- if (this.dialog.subscriptionExpires > subscriptionExpiresReceived) {
48
- this.dialog.subscriptionExpires = subscriptionExpiresReceived;
49
- }
50
- }
51
- }
52
-
53
- if (message.statusCode && message.statusCode >= 400 && message.statusCode < 700) {
54
- // If a SUBSCRIBE request to refresh a subscription receives a 404, 405,
55
- // 410, 416, 480-485, 489, 501, or 604 response, the subscriber MUST
56
- // consider the subscription terminated. (See [RFC5057] for further
57
- // details and notes about the effect of error codes on dialogs and
58
- // usages within dialog, such as subscriptions). If the subscriber
59
- // wishes to re-subscribe to the state, he does so by composing an
60
- // unrelated initial SUBSCRIBE request with a freshly generated Call-ID
61
- // and a new, unique "From" tag (see Section 4.1.2.1).
62
- // https://tools.ietf.org/html/rfc6665#section-4.1.2.2
63
- const errorCodes = [404, 405, 410, 416, 480, 481, 482, 483, 484, 485, 489, 501, 604];
64
- if (errorCodes.includes(message.statusCode)) {
65
- this.dialog.terminate();
66
- }
67
- // If a SUBSCRIBE request to refresh a subscription fails with any error
68
- // code other than those listed above, the original subscription is
69
- // still considered valid for the duration of the most recently known
70
- // "Expires" value as negotiated by the most recent successful SUBSCRIBE
71
- // transaction, or as communicated by a NOTIFY request in its
72
- // "Subscription-State" header field "expires" parameter.
73
- // https://tools.ietf.org/html/rfc6665#section-4.1.2.2
74
- }
75
-
76
- super.receiveResponse(message);
77
- }
78
- }
@@ -1,14 +0,0 @@
1
- import { Dialog } from "../dialogs";
2
- import { IncomingRequestDelegate, IncomingRequestMessage, IncomingSubscribeRequest } from "../messages";
3
- import { NonInviteServerTransaction } from "../transactions";
4
- import { UserAgentServer } from "./user-agent-server";
5
-
6
- /**
7
- * Re-SUBSCRIBE UAS.
8
- * @public
9
- */
10
- export class ReSubscribeUserAgentServer extends UserAgentServer implements IncomingSubscribeRequest {
11
- constructor(dialog: Dialog, message: IncomingRequestMessage, delegate?: IncomingRequestDelegate) {
12
- super(NonInviteServerTransaction, dialog.userAgentCore, message, delegate);
13
- }
14
- }
@@ -1,15 +0,0 @@
1
- import { SessionDialog } from "../dialogs";
2
- import { C, OutgoingReferRequest, OutgoingRequestDelegate, RequestOptions } from "../messages";
3
- import { NonInviteClientTransaction } from "../transactions";
4
- import { UserAgentClient } from "./user-agent-client";
5
-
6
- /**
7
- * REFER UAC.
8
- * @public
9
- */
10
- export class ReferUserAgentClient extends UserAgentClient implements OutgoingReferRequest {
11
- constructor(dialog: SessionDialog, delegate?: OutgoingRequestDelegate, options?: RequestOptions) {
12
- const message = dialog.createOutgoingRequestMessage(C.REFER, options);
13
- super(NonInviteClientTransaction, dialog.userAgentCore, message, delegate);
14
- }
15
- }
@@ -1,30 +0,0 @@
1
- import { SessionDialog } from "../dialogs";
2
- import { IncomingReferRequest, IncomingRequestDelegate, IncomingRequestMessage } from "../messages";
3
- import { NonInviteServerTransaction } from "../transactions";
4
- import { UserAgentCore } from "../user-agent-core";
5
- import { UserAgentServer } from "./user-agent-server";
6
-
7
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
- function instanceOfSessionDialog(object: any): object is SessionDialog {
9
- return object.userAgentCore !== undefined;
10
- }
11
-
12
- /**
13
- * REFER UAS.
14
- * @public
15
- */
16
- export class ReferUserAgentServer extends UserAgentServer implements IncomingReferRequest {
17
- /**
18
- * REFER UAS constructor.
19
- * @param dialogOrCore - Dialog for in dialog REFER, UserAgentCore for out of dialog REFER.
20
- * @param message - Incoming REFER request message.
21
- */
22
- constructor(
23
- dialogOrCore: SessionDialog | UserAgentCore,
24
- message: IncomingRequestMessage,
25
- delegate?: IncomingRequestDelegate
26
- ) {
27
- const userAgentCore = instanceOfSessionDialog(dialogOrCore) ? dialogOrCore.userAgentCore : dialogOrCore;
28
- super(NonInviteServerTransaction, userAgentCore, message, delegate);
29
- }
30
- }
@@ -1,14 +0,0 @@
1
- import { OutgoingRegisterRequest, OutgoingRequestDelegate, OutgoingRequestMessage } from "../messages";
2
- import { NonInviteClientTransaction } from "../transactions";
3
- import { UserAgentCore } from "../user-agent-core";
4
- import { UserAgentClient } from "./user-agent-client";
5
-
6
- /**
7
- * REGISTER UAC.
8
- * @public
9
- */
10
- export class RegisterUserAgentClient extends UserAgentClient implements OutgoingRegisterRequest {
11
- constructor(core: UserAgentCore, message: OutgoingRequestMessage, delegate?: OutgoingRequestDelegate) {
12
- super(NonInviteClientTransaction, core, message, delegate);
13
- }
14
- }
@@ -1,14 +0,0 @@
1
- import { IncomingRegisterRequest, IncomingRequestDelegate, IncomingRequestMessage } from "../messages";
2
- import { NonInviteServerTransaction } from "../transactions";
3
- import { UserAgentCore } from "../user-agent-core";
4
- import { UserAgentServer } from "./user-agent-server";
5
-
6
- /**
7
- * REGISTER UAS.
8
- * @public
9
- */
10
- export class RegisterUserAgentServer extends UserAgentServer implements IncomingRegisterRequest {
11
- constructor(protected core: UserAgentCore, message: IncomingRequestMessage, delegate?: IncomingRequestDelegate) {
12
- super(NonInviteServerTransaction, core, message, delegate);
13
- }
14
- }
@@ -1,342 +0,0 @@
1
- // @ts-nocheck
2
- import { SubscriptionDialog } from '../dialogs/subscription-dialog'
3
- import {
4
- IncomingResponseMessage,
5
- OutgoingRequestMessage,
6
- OutgoingSubscribeRequest,
7
- OutgoingSubscribeRequestDelegate
8
- } from '../messages'
9
- import { SubscriptionState } from '../subscription'
10
- import { Timers } from '../timers'
11
- import { NonInviteClientTransaction } from '../transactions'
12
- import { UserAgentCore } from '../user-agent-core'
13
- import { NotifyUserAgentServer } from './notify-user-agent-server'
14
- import { UserAgentClient } from './user-agent-client'
15
-
16
- /**
17
- * SUBSCRIBE UAC.
18
- * @remarks
19
- * 4.1. Subscriber Behavior
20
- * https://tools.ietf.org/html/rfc6665#section-4.1
21
- *
22
- * User agent client for installation of a single subscription per SUBSCRIBE request.
23
- * TODO: Support for installation of multiple subscriptions on forked SUBSCRIBE requests.
24
- * @public
25
- */
26
- export class SubscribeUserAgentClient extends UserAgentClient implements OutgoingSubscribeRequest {
27
- public delegate: OutgoingSubscribeRequestDelegate | undefined
28
-
29
- /** Dialog created upon receiving the first NOTIFY. */
30
- private dialog: SubscriptionDialog | undefined
31
- /** Identifier of this user agent client. */
32
- private subscriberId: string
33
- /** When the subscription expires. Starts as requested expires and updated on 200 and NOTIFY. */
34
- private subscriptionExpires: number
35
- /** The requested expires for the subscription. */
36
- private subscriptionExpiresRequested: number
37
- /** Subscription event being targeted. */
38
- private subscriptionEvent: string
39
- /** Subscription state. */
40
- private subscriptionState: SubscriptionState
41
- /** Timer N Id. */
42
- private N: number | undefined
43
-
44
- constructor(core: UserAgentCore, message: OutgoingRequestMessage, delegate?: OutgoingSubscribeRequestDelegate) {
45
- // Get event from request message.
46
- const event = message.getHeader('Event')
47
- if (!event) {
48
- throw new Error('Event undefined')
49
- }
50
- // Get expires from request message.
51
- const expires = message.getHeader('Expires')
52
- if (!expires) {
53
- throw new Error('Expires undefined')
54
- }
55
- super(NonInviteClientTransaction, core, message, delegate)
56
- this.delegate = delegate
57
-
58
- // FIXME: Subscriber id should also be matching on event id.
59
- this.subscriberId = message.callId + message.fromTag + event
60
- this.subscriptionExpiresRequested = this.subscriptionExpires = Number(expires)
61
- this.subscriptionEvent = event
62
- this.subscriptionState = SubscriptionState.NotifyWait
63
-
64
- // Start waiting for a NOTIFY we can use to create a subscription.
65
- this.waitNotifyStart()
66
- }
67
-
68
- /**
69
- * Destructor.
70
- * Note that Timer N may live on waiting for an initial NOTIFY and
71
- * the delegate may still receive that NOTIFY. If you don't want
72
- * that behavior then either clear the delegate so the delegate
73
- * doesn't get called (a 200 will be sent in response to the NOTIFY)
74
- * or call `waitNotifyStop` which will clear Timer N and remove this
75
- * UAC from the core (a 481 will be sent in response to the NOTIFY).
76
- */
77
- public dispose(): void {
78
- super.dispose()
79
- }
80
-
81
- /**
82
- * Handle out of dialog NOTIFY associated with SUBSCRIBE request.
83
- * This is the first NOTIFY received after the SUBSCRIBE request.
84
- * @param uas - User agent server handling the subscription creating NOTIFY.
85
- */
86
- public onNotify(uas: NotifyUserAgentServer): void {
87
- // NOTIFY requests are matched to such SUBSCRIBE requests if they
88
- // contain the same "Call-ID", a "To" header field "tag" parameter that
89
- // matches the "From" header field "tag" parameter of the SUBSCRIBE
90
- // request, and the same "Event" header field. Rules for comparisons of
91
- // the "Event" header fields are described in Section 8.2.1.
92
- // https://tools.ietf.org/html/rfc6665#section-4.4.1
93
- const event: string = uas.message.parseHeader('Event').event
94
- if (!event || event !== this.subscriptionEvent) {
95
- this.logger.warn(`Failed to parse event.`)
96
- uas.reject({ statusCode: 489 })
97
- return
98
- }
99
-
100
- // NOTIFY requests MUST contain "Subscription-State" header fields that
101
- // indicate the status of the subscription.
102
- // https://tools.ietf.org/html/rfc6665#section-4.1.3
103
- const subscriptionState = uas.message.parseHeader('Subscription-State')
104
- if (!subscriptionState || !subscriptionState.state) {
105
- this.logger.warn('Failed to parse subscription state.')
106
- uas.reject({ statusCode: 489 })
107
- return
108
- }
109
- // Validate subscription state.
110
- const state: string = subscriptionState.state
111
- switch (state) {
112
- case 'pending':
113
- break
114
- case 'active':
115
- break
116
- case 'terminated':
117
- break
118
- default:
119
- this.logger.warn(`Invalid subscription state ${state}`)
120
- uas.reject({ statusCode: 489 })
121
- return
122
- }
123
-
124
- // Dialogs usages are created upon completion of a NOTIFY transaction
125
- // for a new subscription, unless the NOTIFY request contains a
126
- // "Subscription-State" of "terminated."
127
- // https://tools.ietf.org/html/rfc6665#section-4.4.1
128
- if (state !== 'terminated') {
129
- // The Contact header field MUST be present and contain exactly one SIP
130
- // or SIPS URI in any request that can result in the establishment of a
131
- // dialog.
132
- // https://tools.ietf.org/html/rfc3261#section-8.1.1.8
133
- const contact = uas.message.parseHeader('contact')
134
- if (!contact) {
135
- this.logger.warn('Failed to parse contact.')
136
- uas.reject({ statusCode: 489 })
137
- return
138
- }
139
- }
140
-
141
- // In accordance with the rules for proxying non-INVITE requests as
142
- // defined in [RFC3261], successful SUBSCRIBE requests will receive only
143
- // one 200-class response; however, due to forking, the subscription may
144
- // have been accepted by multiple nodes. The subscriber MUST therefore
145
- // be prepared to receive NOTIFY requests with "From:" tags that differ
146
- // from the "To:" tag received in the SUBSCRIBE 200-class response.
147
- //
148
- // If multiple NOTIFY requests are received in different dialogs in
149
- // response to a single SUBSCRIBE request, each dialog represents a
150
- // different destination to which the SUBSCRIBE request was forked.
151
- // Subscriber handling in such situations varies by event package; see
152
- // Section 5.4.9 for details.
153
- // https://tools.ietf.org/html/rfc6665#section-4.1.4
154
-
155
- // Each event package MUST specify whether forked SUBSCRIBE requests are
156
- // allowed to install multiple subscriptions.
157
- //
158
- // If such behavior is not allowed, the first potential dialog-
159
- // establishing message will create a dialog. All subsequent NOTIFY
160
- // requests that correspond to the SUBSCRIBE request (i.e., have
161
- // matching "To", "From", "Call-ID", and "Event" header fields, as well
162
- // as "From" header field "tag" parameter and "Event" header field "id"
163
- // parameter) but that do not match the dialog would be rejected with a
164
- // 481 response. Note that the 200-class response to the SUBSCRIBE
165
- // request can arrive after a matching NOTIFY request has been received;
166
- // such responses might not correlate to the same dialog established by
167
- // the NOTIFY request. Except as required to complete the SUBSCRIBE
168
- // transaction, such non-matching 200-class responses are ignored.
169
- //
170
- // If installing of multiple subscriptions by way of a single forked
171
- // SUBSCRIBE request is allowed, the subscriber establishes a new dialog
172
- // towards each notifier by returning a 200-class response to each
173
- // NOTIFY request. Each dialog is then handled as its own entity and is
174
- // refreshed independently of the other dialogs.
175
- //
176
- // In the case that multiple subscriptions are allowed, the event
177
- // package MUST specify whether merging of the notifications to form a
178
- // single state is required, and how such merging is to be performed.
179
- // Note that it is possible that some event packages may be defined in
180
- // such a way that each dialog is tied to a mutually exclusive state
181
- // that is unaffected by the other dialogs; this MUST be clearly stated
182
- // if it is the case.
183
- // https://tools.ietf.org/html/rfc6665#section-5.4.9
184
-
185
- // *** NOTE: This implementation is only for event packages which
186
- // do not allow forked requests to install multiple subscriptions.
187
- // As such and in accordance with the specification, we stop waiting
188
- // and any future NOTIFY requests will be rejected with a 481.
189
- if (this.dialog) {
190
- throw new Error('Dialog already created. This implementation only supports install of single subscriptions.')
191
- }
192
- this.waitNotifyStop()
193
-
194
- // Update expires.
195
- this.subscriptionExpires = subscriptionState.expires
196
- ? Math.min(this.subscriptionExpires, Math.max(subscriptionState.expires, 0))
197
- : this.subscriptionExpires
198
-
199
- // Update subscription state.
200
- switch (state) {
201
- case 'pending':
202
- this.subscriptionState = SubscriptionState.Pending
203
- break
204
- case 'active':
205
- this.subscriptionState = SubscriptionState.Active
206
- break
207
- case 'terminated':
208
- this.subscriptionState = SubscriptionState.Terminated
209
- break
210
- default:
211
- throw new Error(`Unrecognized state ${state}.`)
212
- }
213
-
214
- // Dialogs usages are created upon completion of a NOTIFY transaction
215
- // for a new subscription, unless the NOTIFY request contains a
216
- // "Subscription-State" of "terminated."
217
- // https://tools.ietf.org/html/rfc6665#section-4.4.1
218
- if (this.subscriptionState !== SubscriptionState.Terminated) {
219
- // Because the dialog usage is established by the NOTIFY request, the
220
- // route set at the subscriber is taken from the NOTIFY request itself,
221
- // as opposed to the route set present in the 200-class response to the
222
- // SUBSCRIBE request.
223
- // https://tools.ietf.org/html/rfc6665#section-4.4.1
224
- const dialogState = SubscriptionDialog.initialDialogStateForSubscription(this.message, uas.message)
225
-
226
- // Subscription Initiated! :)
227
- this.dialog = new SubscriptionDialog(
228
- this.subscriptionEvent,
229
- this.subscriptionExpires,
230
- this.subscriptionState,
231
- this.core,
232
- dialogState
233
- )
234
- }
235
-
236
- // Delegate.
237
- if (this.delegate && this.delegate.onNotify) {
238
- const request = uas
239
- const subscription = this.dialog
240
- this.delegate.onNotify({ request, subscription })
241
- } else {
242
- uas.accept()
243
- }
244
- }
245
-
246
- public waitNotifyStart(): void {
247
- if (!this.N) {
248
- // Add ourselves to the core's subscriber map.
249
- // This allows the core to route out of dialog NOTIFY messages to us.
250
- this.core.subscribers.set(this.subscriberId, this)
251
- this.N = setTimeout(() => this.timerN(), Timers.TIMER_N)
252
- }
253
- }
254
-
255
- public waitNotifyStop(): void {
256
- if (this.N) {
257
- // Remove ourselves to the core's subscriber map.
258
- // Any future out of dialog NOTIFY messages will be rejected with a 481.
259
- this.core.subscribers.delete(this.subscriberId)
260
- clearTimeout(this.N)
261
- this.N = undefined
262
- }
263
- }
264
-
265
- /**
266
- * Receive a response from the transaction layer.
267
- * @param message - Incoming response message.
268
- */
269
- protected receiveResponse(message: IncomingResponseMessage): void {
270
- if (!this.authenticationGuard(message)) {
271
- return
272
- }
273
-
274
- if (message.statusCode && message.statusCode >= 200 && message.statusCode < 300) {
275
- // The "Expires" header field in a 200-class response to SUBSCRIBE
276
- // request indicates the actual duration for which the subscription will
277
- // remain active (unless refreshed). The received value might be
278
- // smaller than the value indicated in the SUBSCRIBE request but cannot
279
- // be larger; see Section 4.2.1 for details.
280
- // https://tools.ietf.org/html/rfc6665#section-4.1.2.1
281
-
282
- // The "Expires" values present in SUBSCRIBE 200-class responses behave
283
- // in the same way as they do in REGISTER responses: the server MAY
284
- // shorten the interval but MUST NOT lengthen it.
285
- //
286
- // If the duration specified in a SUBSCRIBE request is unacceptably
287
- // short, the notifier may be able to send a 423 response, as
288
- // described earlier in this section.
289
- //
290
- // 200-class responses to SUBSCRIBE requests will not generally contain
291
- // any useful information beyond subscription duration; their primary
292
- // purpose is to serve as a reliability mechanism. State information
293
- // will be communicated via a subsequent NOTIFY request from the
294
- // notifier.
295
- // https://tools.ietf.org/html/rfc6665#section-4.2.1.1
296
- const expires = message.getHeader('Expires')
297
- if (!expires) {
298
- this.logger.warn('Expires header missing in a 200-class response to SUBSCRIBE')
299
- } else {
300
- const subscriptionExpiresReceived = Number(expires)
301
- if (subscriptionExpiresReceived > this.subscriptionExpiresRequested) {
302
- this.logger.warn(
303
- 'Expires header in a 200-class response to SUBSCRIBE with a higher value than the one in the request'
304
- )
305
- }
306
- if (subscriptionExpiresReceived < this.subscriptionExpires) {
307
- this.subscriptionExpires = subscriptionExpiresReceived
308
- }
309
- }
310
- // If a NOTIFY arrived before 200-class response a dialog may have been created.
311
- // Updated the dialogs expiration only if this indicates earlier expiration.
312
- if (this.dialog) {
313
- if (this.dialog.subscriptionExpires > this.subscriptionExpires) {
314
- this.dialog.subscriptionExpires = this.subscriptionExpires
315
- }
316
- }
317
- }
318
-
319
- if (message.statusCode && message.statusCode >= 300 && message.statusCode < 700) {
320
- this.waitNotifyStop() // No NOTIFY will be sent after a negative final response.
321
- }
322
-
323
- super.receiveResponse(message)
324
- }
325
-
326
- /**
327
- * To ensure that subscribers do not wait indefinitely for a
328
- * subscription to be established, a subscriber starts a Timer N, set to
329
- * 64*T1, when it sends a SUBSCRIBE request. If this Timer N expires
330
- * prior to the receipt of a NOTIFY request, the subscriber considers
331
- * the subscription failed, and cleans up any state associated with the
332
- * subscription attempt.
333
- * https://tools.ietf.org/html/rfc6665#section-4.1.2.4
334
- */
335
- private timerN(): void {
336
- this.logger.warn(`Timer N expired for SUBSCRIBE user agent client. Timed out waiting for NOTIFY.`)
337
- this.waitNotifyStop()
338
- if (this.delegate && this.delegate.onNotifyTimeout) {
339
- this.delegate.onNotifyTimeout()
340
- }
341
- }
342
- }
@@ -1,14 +0,0 @@
1
- import { IncomingRequestDelegate, IncomingRequestMessage, IncomingSubscribeRequest } from "../messages";
2
- import { NonInviteServerTransaction } from "../transactions";
3
- import { UserAgentCore } from "../user-agent-core";
4
- import { UserAgentServer } from "./user-agent-server";
5
-
6
- /**
7
- * SUBSCRIBE UAS.
8
- * @public
9
- */
10
- export class SubscribeUserAgentServer extends UserAgentServer implements IncomingSubscribeRequest {
11
- constructor(protected core: UserAgentCore, message: IncomingRequestMessage, delegate?: IncomingRequestDelegate) {
12
- super(NonInviteServerTransaction, core, message, delegate);
13
- }
14
- }