ue-softphone-sdk 4.0.0 → 4.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (394) hide show
  1. package/dist/lib/ue-soft-phone.min.js +2 -2
  2. package/dist/ue-softphone-sdk.js +2 -2
  3. package/package.json +4 -1
  4. package/.babelrc +0 -12
  5. package/.gitlab-ci.yml +0 -3
  6. package/Dockerfile +0 -17
  7. package/dist/lib/types/lib/sip.js/api/ack.d.ts +0 -12
  8. package/dist/lib/types/lib/sip.js/api/bye.d.ts +0 -16
  9. package/dist/lib/types/lib/sip.js/api/dtmf.d.ts +0 -15
  10. package/dist/lib/types/lib/sip.js/api/emitter.d.ts +0 -88
  11. package/dist/lib/types/lib/sip.js/api/exceptions/content-type-unsupported.d.ts +0 -8
  12. package/dist/lib/types/lib/sip.js/api/exceptions/index.d.ts +0 -5
  13. package/dist/lib/types/lib/sip.js/api/exceptions/request-pending.d.ts +0 -9
  14. package/dist/lib/types/lib/sip.js/api/exceptions/session-description-handler.d.ts +0 -8
  15. package/dist/lib/types/lib/sip.js/api/exceptions/session-terminated.d.ts +0 -8
  16. package/dist/lib/types/lib/sip.js/api/exceptions/state-transition.d.ts +0 -8
  17. package/dist/lib/types/lib/sip.js/api/index.d.ts +0 -59
  18. package/dist/lib/types/lib/sip.js/api/info.d.ts +0 -16
  19. package/dist/lib/types/lib/sip.js/api/invitation-accept-options.d.ts +0 -19
  20. package/dist/lib/types/lib/sip.js/api/invitation-progress-options.d.ts +0 -38
  21. package/dist/lib/types/lib/sip.js/api/invitation-reject-options.d.ts +0 -25
  22. package/dist/lib/types/lib/sip.js/api/invitation.d.ts +0 -179
  23. package/dist/lib/types/lib/sip.js/api/inviter-cancel-options.d.ts +0 -9
  24. package/dist/lib/types/lib/sip.js/api/inviter-invite-options.d.ts +0 -28
  25. package/dist/lib/types/lib/sip.js/api/inviter-options.d.ts +0 -43
  26. package/dist/lib/types/lib/sip.js/api/inviter.d.ts +0 -236
  27. package/dist/lib/types/lib/sip.js/api/message.d.ts +0 -16
  28. package/dist/lib/types/lib/sip.js/api/messager-message-options.d.ts +0 -11
  29. package/dist/lib/types/lib/sip.js/api/messager-options.d.ts +0 -17
  30. package/dist/lib/types/lib/sip.js/api/messager.d.ts +0 -26
  31. package/dist/lib/types/lib/sip.js/api/notification.d.ts +0 -16
  32. package/dist/lib/types/lib/sip.js/api/notifier.d.ts +0 -8
  33. package/dist/lib/types/lib/sip.js/api/publisher-options.d.ts +0 -33
  34. package/dist/lib/types/lib/sip.js/api/publisher-publish-options.d.ts +0 -6
  35. package/dist/lib/types/lib/sip.js/api/publisher-state.d.ts +0 -21
  36. package/dist/lib/types/lib/sip.js/api/publisher-unpublish-options.d.ts +0 -6
  37. package/dist/lib/types/lib/sip.js/api/publisher.d.ts +0 -65
  38. package/dist/lib/types/lib/sip.js/api/referral.d.ts +0 -38
  39. package/dist/lib/types/lib/sip.js/api/registerer-options.d.ts +0 -46
  40. package/dist/lib/types/lib/sip.js/api/registerer-register-options.d.ts +0 -11
  41. package/dist/lib/types/lib/sip.js/api/registerer-state.d.ts +0 -21
  42. package/dist/lib/types/lib/sip.js/api/registerer-unregister-options.d.ts +0 -16
  43. package/dist/lib/types/lib/sip.js/api/registerer.d.ts +0 -144
  44. package/dist/lib/types/lib/sip.js/api/session-bye-options.d.ts +0 -11
  45. package/dist/lib/types/lib/sip.js/api/session-delegate.d.ts +0 -79
  46. package/dist/lib/types/lib/sip.js/api/session-description-handler-factory.d.ts +0 -15
  47. package/dist/lib/types/lib/sip.js/api/session-description-handler.d.ts +0 -74
  48. package/dist/lib/types/lib/sip.js/api/session-info-options.d.ts +0 -11
  49. package/dist/lib/types/lib/sip.js/api/session-invite-options.d.ts +0 -28
  50. package/dist/lib/types/lib/sip.js/api/session-message-options.d.ts +0 -11
  51. package/dist/lib/types/lib/sip.js/api/session-options.d.ts +0 -8
  52. package/dist/lib/types/lib/sip.js/api/session-refer-options.d.ts +0 -14
  53. package/dist/lib/types/lib/sip.js/api/session-state.d.ts +0 -45
  54. package/dist/lib/types/lib/sip.js/api/session.d.ts +0 -359
  55. package/dist/lib/types/lib/sip.js/api/subscriber-options.d.ts +0 -11
  56. package/dist/lib/types/lib/sip.js/api/subscriber-subscribe-options.d.ts +0 -6
  57. package/dist/lib/types/lib/sip.js/api/subscriber.d.ts +0 -94
  58. package/dist/lib/types/lib/sip.js/api/subscription-delegate.d.ts +0 -12
  59. package/dist/lib/types/lib/sip.js/api/subscription-options.d.ts +0 -8
  60. package/dist/lib/types/lib/sip.js/api/subscription-state.d.ts +0 -19
  61. package/dist/lib/types/lib/sip.js/api/subscription-subscribe-options.d.ts +0 -6
  62. package/dist/lib/types/lib/sip.js/api/subscription-unsubscribe-options.d.ts +0 -6
  63. package/dist/lib/types/lib/sip.js/api/subscription.d.ts +0 -84
  64. package/dist/lib/types/lib/sip.js/api/transport-state.d.ts +0 -37
  65. package/dist/lib/types/lib/sip.js/api/transport.d.ts +0 -159
  66. package/dist/lib/types/lib/sip.js/api/user-agent-delegate.d.ts +0 -84
  67. package/dist/lib/types/lib/sip.js/api/user-agent-options.d.ts +0 -253
  68. package/dist/lib/types/lib/sip.js/api/user-agent-state.d.ts +0 -14
  69. package/dist/lib/types/lib/sip.js/api/user-agent.d.ts +0 -200
  70. package/dist/lib/types/lib/sip.js/core/dialogs/dialog-state.d.ts +0 -34
  71. package/dist/lib/types/lib/sip.js/core/dialogs/dialog.d.ts +0 -161
  72. package/dist/lib/types/lib/sip.js/core/dialogs/index.d.ts +0 -4
  73. package/dist/lib/types/lib/sip.js/core/dialogs/session-dialog.d.ts +0 -196
  74. package/dist/lib/types/lib/sip.js/core/dialogs/subscription-dialog.d.ts +0 -120
  75. package/dist/lib/types/lib/sip.js/core/exceptions/exception.d.ts +0 -8
  76. package/dist/lib/types/lib/sip.js/core/exceptions/index.d.ts +0 -3
  77. package/dist/lib/types/lib/sip.js/core/exceptions/transaction-state-error.d.ts +0 -8
  78. package/dist/lib/types/lib/sip.js/core/exceptions/transport-error.d.ts +0 -8
  79. package/dist/lib/types/lib/sip.js/core/index.d.ts +0 -15
  80. package/dist/lib/types/lib/sip.js/core/log/index.d.ts +0 -3
  81. package/dist/lib/types/lib/sip.js/core/log/levels.d.ts +0 -10
  82. package/dist/lib/types/lib/sip.js/core/log/logger-factory.d.ts +0 -21
  83. package/dist/lib/types/lib/sip.js/core/log/logger.d.ts +0 -19
  84. package/dist/lib/types/lib/sip.js/core/messages/body.d.ts +0 -64
  85. package/dist/lib/types/lib/sip.js/core/messages/digest-authentication.d.ts +0 -51
  86. package/dist/lib/types/lib/sip.js/core/messages/incoming-message.d.ts +0 -79
  87. package/dist/lib/types/lib/sip.js/core/messages/incoming-request-message.d.ts +0 -10
  88. package/dist/lib/types/lib/sip.js/core/messages/incoming-request.d.ts +0 -67
  89. package/dist/lib/types/lib/sip.js/core/messages/incoming-response-message.d.ts +0 -10
  90. package/dist/lib/types/lib/sip.js/core/messages/incoming-response.d.ts +0 -12
  91. package/dist/lib/types/lib/sip.js/core/messages/index.d.ts +0 -13
  92. package/dist/lib/types/lib/sip.js/core/messages/md5.d.ts +0 -32
  93. package/dist/lib/types/lib/sip.js/core/messages/methods/ack.d.ts +0 -18
  94. package/dist/lib/types/lib/sip.js/core/messages/methods/bye.d.ts +0 -21
  95. package/dist/lib/types/lib/sip.js/core/messages/methods/cancel.d.ts +0 -21
  96. package/dist/lib/types/lib/sip.js/core/messages/methods/constants.d.ts +0 -20
  97. package/dist/lib/types/lib/sip.js/core/messages/methods/index.d.ts +0 -13
  98. package/dist/lib/types/lib/sip.js/core/messages/methods/info.d.ts +0 -21
  99. package/dist/lib/types/lib/sip.js/core/messages/methods/invite.d.ts +0 -86
  100. package/dist/lib/types/lib/sip.js/core/messages/methods/message.d.ts +0 -21
  101. package/dist/lib/types/lib/sip.js/core/messages/methods/notify.d.ts +0 -21
  102. package/dist/lib/types/lib/sip.js/core/messages/methods/prack.d.ts +0 -21
  103. package/dist/lib/types/lib/sip.js/core/messages/methods/publish.d.ts +0 -21
  104. package/dist/lib/types/lib/sip.js/core/messages/methods/refer.d.ts +0 -21
  105. package/dist/lib/types/lib/sip.js/core/messages/methods/register.d.ts +0 -21
  106. package/dist/lib/types/lib/sip.js/core/messages/methods/subscribe.d.ts +0 -54
  107. package/dist/lib/types/lib/sip.js/core/messages/outgoing-request-message.d.ts +0 -94
  108. package/dist/lib/types/lib/sip.js/core/messages/outgoing-request.d.ts +0 -67
  109. package/dist/lib/types/lib/sip.js/core/messages/outgoing-response.d.ts +0 -42
  110. package/dist/lib/types/lib/sip.js/core/messages/parser.d.ts +0 -14
  111. package/dist/lib/types/lib/sip.js/core/messages/utils.d.ts +0 -24
  112. package/dist/lib/types/lib/sip.js/core/session/index.d.ts +0 -2
  113. package/dist/lib/types/lib/sip.js/core/session/session-delegate.d.ts +0 -70
  114. package/dist/lib/types/lib/sip.js/core/session/session.d.ts +0 -134
  115. package/dist/lib/types/lib/sip.js/core/subscription/index.d.ts +0 -2
  116. package/dist/lib/types/lib/sip.js/core/subscription/subscription-delegate.d.ts +0 -27
  117. package/dist/lib/types/lib/sip.js/core/subscription/subscription.d.ts +0 -55
  118. package/dist/lib/types/lib/sip.js/core/timers.d.ts +0 -20
  119. package/dist/lib/types/lib/sip.js/core/transactions/client-transaction.d.ts +0 -45
  120. package/dist/lib/types/lib/sip.js/core/transactions/index.d.ts +0 -10
  121. package/dist/lib/types/lib/sip.js/core/transactions/invite-client-transaction.d.ts +0 -116
  122. package/dist/lib/types/lib/sip.js/core/transactions/invite-server-transaction.d.ts +0 -127
  123. package/dist/lib/types/lib/sip.js/core/transactions/non-invite-client-transaction.d.ts +0 -69
  124. package/dist/lib/types/lib/sip.js/core/transactions/non-invite-server-transaction.d.ts +0 -57
  125. package/dist/lib/types/lib/sip.js/core/transactions/server-transaction.d.ts +0 -35
  126. package/dist/lib/types/lib/sip.js/core/transactions/transaction-state.d.ts +0 -13
  127. package/dist/lib/types/lib/sip.js/core/transactions/transaction-user.d.ts +0 -72
  128. package/dist/lib/types/lib/sip.js/core/transactions/transaction.d.ts +0 -79
  129. package/dist/lib/types/lib/sip.js/core/transport.d.ts +0 -31
  130. package/dist/lib/types/lib/sip.js/core/user-agent-core/allowed-methods.d.ts +0 -4
  131. package/dist/lib/types/lib/sip.js/core/user-agent-core/index.d.ts +0 -3
  132. package/dist/lib/types/lib/sip.js/core/user-agent-core/user-agent-core-configuration.d.ts +0 -99
  133. package/dist/lib/types/lib/sip.js/core/user-agent-core/user-agent-core-delegate.d.ts +0 -37
  134. package/dist/lib/types/lib/sip.js/core/user-agent-core/user-agent-core.d.ts +0 -179
  135. package/dist/lib/types/lib/sip.js/core/user-agents/bye-user-agent-client.d.ts +0 -10
  136. package/dist/lib/types/lib/sip.js/core/user-agents/bye-user-agent-server.d.ts +0 -10
  137. package/dist/lib/types/lib/sip.js/core/user-agents/cancel-user-agent-client.d.ts +0 -10
  138. package/dist/lib/types/lib/sip.js/core/user-agents/index.d.ts +0 -26
  139. package/dist/lib/types/lib/sip.js/core/user-agents/info-user-agent-client.d.ts +0 -10
  140. package/dist/lib/types/lib/sip.js/core/user-agents/info-user-agent-server.d.ts +0 -10
  141. package/dist/lib/types/lib/sip.js/core/user-agents/invite-user-agent-client.d.ts +0 -35
  142. package/dist/lib/types/lib/sip.js/core/user-agents/invite-user-agent-server.d.ts +0 -77
  143. package/dist/lib/types/lib/sip.js/core/user-agents/message-user-agent-client.d.ts +0 -10
  144. package/dist/lib/types/lib/sip.js/core/user-agents/message-user-agent-server.d.ts +0 -10
  145. package/dist/lib/types/lib/sip.js/core/user-agents/notify-user-agent-client.d.ts +0 -10
  146. package/dist/lib/types/lib/sip.js/core/user-agents/notify-user-agent-server.d.ts +0 -16
  147. package/dist/lib/types/lib/sip.js/core/user-agents/prack-user-agent-client.d.ts +0 -10
  148. package/dist/lib/types/lib/sip.js/core/user-agents/prack-user-agent-server.d.ts +0 -16
  149. package/dist/lib/types/lib/sip.js/core/user-agents/publish-user-agent-client.d.ts +0 -10
  150. package/dist/lib/types/lib/sip.js/core/user-agents/re-invite-user-agent-client.d.ts +0 -18
  151. package/dist/lib/types/lib/sip.js/core/user-agents/re-invite-user-agent-server.d.ts +0 -41
  152. package/dist/lib/types/lib/sip.js/core/user-agents/re-subscribe-user-agent-client.d.ts +0 -17
  153. package/dist/lib/types/lib/sip.js/core/user-agents/re-subscribe-user-agent-server.d.ts +0 -10
  154. package/dist/lib/types/lib/sip.js/core/user-agents/refer-user-agent-client.d.ts +0 -10
  155. package/dist/lib/types/lib/sip.js/core/user-agents/refer-user-agent-server.d.ts +0 -16
  156. package/dist/lib/types/lib/sip.js/core/user-agents/register-user-agent-client.d.ts +0 -10
  157. package/dist/lib/types/lib/sip.js/core/user-agents/register-user-agent-server.d.ts +0 -11
  158. package/dist/lib/types/lib/sip.js/core/user-agents/subscribe-user-agent-client.d.ts +0 -65
  159. package/dist/lib/types/lib/sip.js/core/user-agents/subscribe-user-agent-server.d.ts +0 -11
  160. package/dist/lib/types/lib/sip.js/core/user-agents/user-agent-client.d.ts +0 -103
  161. package/dist/lib/types/lib/sip.js/core/user-agents/user-agent-server.d.ts +0 -79
  162. package/dist/lib/types/lib/sip.js/grammar/grammar.d.ts +0 -26
  163. package/dist/lib/types/lib/sip.js/grammar/index.d.ts +0 -4
  164. package/dist/lib/types/lib/sip.js/grammar/name-addr-header.d.ts +0 -24
  165. package/dist/lib/types/lib/sip.js/grammar/parameters.d.ts +0 -16
  166. package/dist/lib/types/lib/sip.js/grammar/pegjs/dist/grammar.d.ts +0 -50
  167. package/dist/lib/types/lib/sip.js/grammar/uri.d.ts +0 -62
  168. package/dist/lib/types/lib/sip.js/index.d.ts +0 -9
  169. package/dist/lib/types/lib/sip.js/platform/web/index.d.ts +0 -4
  170. package/dist/lib/types/lib/sip.js/platform/web/modifiers/index.d.ts +0 -5
  171. package/dist/lib/types/lib/sip.js/platform/web/modifiers/modifiers.d.ts +0 -41
  172. package/dist/lib/types/lib/sip.js/platform/web/session-description-handler/index.d.ts +0 -14
  173. package/dist/lib/types/lib/sip.js/platform/web/session-description-handler/media-stream-factory-default.d.ts +0 -6
  174. package/dist/lib/types/lib/sip.js/platform/web/session-description-handler/media-stream-factory.d.ts +0 -6
  175. package/dist/lib/types/lib/sip.js/platform/web/session-description-handler/peer-connection-configuration-default.d.ts +0 -5
  176. package/dist/lib/types/lib/sip.js/platform/web/session-description-handler/peer-connection-delegate.d.ts +0 -63
  177. package/dist/lib/types/lib/sip.js/platform/web/session-description-handler/session-description-handler-configuration.d.ts +0 -16
  178. package/dist/lib/types/lib/sip.js/platform/web/session-description-handler/session-description-handler-factory-default.d.ts +0 -11
  179. package/dist/lib/types/lib/sip.js/platform/web/session-description-handler/session-description-handler-factory-options.d.ts +0 -9
  180. package/dist/lib/types/lib/sip.js/platform/web/session-description-handler/session-description-handler-factory.d.ts +0 -16
  181. package/dist/lib/types/lib/sip.js/platform/web/session-description-handler/session-description-handler-options.d.ts +0 -47
  182. package/dist/lib/types/lib/sip.js/platform/web/session-description-handler/session-description-handler.d.ts +0 -212
  183. package/dist/lib/types/lib/sip.js/platform/web/simple-user/index.d.ts +0 -7
  184. package/dist/lib/types/lib/sip.js/platform/web/simple-user/simple-user-delegate.d.ts +0 -72
  185. package/dist/lib/types/lib/sip.js/platform/web/simple-user/simple-user-options.d.ts +0 -90
  186. package/dist/lib/types/lib/sip.js/platform/web/simple-user/simple-user.d.ts +0 -226
  187. package/dist/lib/types/lib/sip.js/platform/web/transport/index.d.ts +0 -6
  188. package/dist/lib/types/lib/sip.js/platform/web/transport/transport-options.d.ts +0 -30
  189. package/dist/lib/types/lib/sip.js/platform/web/transport/transport.d.ts +0 -125
  190. package/dist/lib/types/lib/sip.js/version.d.ts +0 -1
  191. package/dist/lib/types/webrtc/webrtc-method.d.ts +0 -2
  192. package/dist/lib/types/webrtc/webrtc.d.ts +0 -38
  193. package/index.html/index.html +0 -118
  194. package/nginx.conf +0 -56
  195. package/rollup-new.config.mjs +0 -20
  196. package/rollup.config.js +0 -45
  197. package/src/config.ts +0 -19
  198. package/src/index.ts +0 -2473
  199. package/src/lib/sip.js/api/ack.ts +0 -15
  200. package/src/lib/sip.js/api/api-extractor.json +0 -350
  201. package/src/lib/sip.js/api/bye.ts +0 -27
  202. package/src/lib/sip.js/api/dtmf.ts +0 -27
  203. package/src/lib/sip.js/api/emitter.ts +0 -110
  204. package/src/lib/sip.js/api/exceptions/content-type-unsupported.ts +0 -11
  205. package/src/lib/sip.js/api/exceptions/index.ts +0 -5
  206. package/src/lib/sip.js/api/exceptions/request-pending.ts +0 -12
  207. package/src/lib/sip.js/api/exceptions/session-description-handler.ts +0 -11
  208. package/src/lib/sip.js/api/exceptions/session-terminated.ts +0 -11
  209. package/src/lib/sip.js/api/exceptions/state-transition.ts +0 -11
  210. package/src/lib/sip.js/api/index.ts +0 -59
  211. package/src/lib/sip.js/api/info.ts +0 -27
  212. package/src/lib/sip.js/api/invitation-accept-options.ts +0 -20
  213. package/src/lib/sip.js/api/invitation-progress-options.ts +0 -36
  214. package/src/lib/sip.js/api/invitation-reject-options.ts +0 -22
  215. package/src/lib/sip.js/api/invitation.ts +0 -815
  216. package/src/lib/sip.js/api/inviter-cancel-options.ts +0 -9
  217. package/src/lib/sip.js/api/inviter-invite-options.ts +0 -29
  218. package/src/lib/sip.js/api/inviter-options.ts +0 -44
  219. package/src/lib/sip.js/api/inviter.ts +0 -1126
  220. package/src/lib/sip.js/api/message.ts +0 -27
  221. package/src/lib/sip.js/api/messager-message-options.ts +0 -12
  222. package/src/lib/sip.js/api/messager-options.ts +0 -18
  223. package/src/lib/sip.js/api/messager.ts +0 -89
  224. package/src/lib/sip.js/api/notification.ts +0 -27
  225. package/src/lib/sip.js/api/notifier.ts +0 -7
  226. package/src/lib/sip.js/api/publisher-options.ts +0 -34
  227. package/src/lib/sip.js/api/publisher-publish-options.ts +0 -6
  228. package/src/lib/sip.js/api/publisher-state.ts +0 -21
  229. package/src/lib/sip.js/api/publisher-unpublish-options.ts +0 -6
  230. package/src/lib/sip.js/api/publisher.ts +0 -421
  231. package/src/lib/sip.js/api/referral.ts +0 -89
  232. package/src/lib/sip.js/api/registerer-options.ts +0 -55
  233. package/src/lib/sip.js/api/registerer-register-options.ts +0 -12
  234. package/src/lib/sip.js/api/registerer-state.ts +0 -21
  235. package/src/lib/sip.js/api/registerer-unregister-options.ts +0 -17
  236. package/src/lib/sip.js/api/registerer.ts +0 -819
  237. package/src/lib/sip.js/api/session-bye-options.ts +0 -12
  238. package/src/lib/sip.js/api/session-delegate.ts +0 -87
  239. package/src/lib/sip.js/api/session-description-handler-factory.ts +0 -16
  240. package/src/lib/sip.js/api/session-description-handler.ts +0 -89
  241. package/src/lib/sip.js/api/session-info-options.ts +0 -12
  242. package/src/lib/sip.js/api/session-invite-options.ts +0 -29
  243. package/src/lib/sip.js/api/session-message-options.ts +0 -12
  244. package/src/lib/sip.js/api/session-options.ts +0 -8
  245. package/src/lib/sip.js/api/session-refer-options.ts +0 -15
  246. package/src/lib/sip.js/api/session-state.ts +0 -45
  247. package/src/lib/sip.js/api/session.ts +0 -1454
  248. package/src/lib/sip.js/api/subscriber-options.ts +0 -12
  249. package/src/lib/sip.js/api/subscriber-subscribe-options.ts +0 -6
  250. package/src/lib/sip.js/api/subscriber.ts +0 -537
  251. package/src/lib/sip.js/api/subscription-delegate.ts +0 -13
  252. package/src/lib/sip.js/api/subscription-options.ts +0 -8
  253. package/src/lib/sip.js/api/subscription-state.ts +0 -19
  254. package/src/lib/sip.js/api/subscription-subscribe-options.ts +0 -6
  255. package/src/lib/sip.js/api/subscription-unsubscribe-options.ts +0 -6
  256. package/src/lib/sip.js/api/subscription.ts +0 -161
  257. package/src/lib/sip.js/api/transport-state.ts +0 -37
  258. package/src/lib/sip.js/api/transport.ts +0 -169
  259. package/src/lib/sip.js/api/user-agent-delegate.ts +0 -95
  260. package/src/lib/sip.js/api/user-agent-options.ts +0 -322
  261. package/src/lib/sip.js/api/user-agent-state.ts +0 -14
  262. package/src/lib/sip.js/api/user-agent.ts +0 -1013
  263. package/src/lib/sip.js/core/api-extractor.json +0 -350
  264. package/src/lib/sip.js/core/dialogs/dialog-state.ts +0 -35
  265. package/src/lib/sip.js/core/dialogs/dialog.ts +0 -605
  266. package/src/lib/sip.js/core/dialogs/index.ts +0 -4
  267. package/src/lib/sip.js/core/dialogs/session-dialog.ts +0 -997
  268. package/src/lib/sip.js/core/dialogs/subscription-dialog.ts +0 -558
  269. package/src/lib/sip.js/core/exceptions/exception.ts +0 -11
  270. package/src/lib/sip.js/core/exceptions/index.ts +0 -3
  271. package/src/lib/sip.js/core/exceptions/transaction-state-error.ts +0 -11
  272. package/src/lib/sip.js/core/exceptions/transport-error.ts +0 -11
  273. package/src/lib/sip.js/core/index.ts +0 -19
  274. package/src/lib/sip.js/core/log/index.ts +0 -3
  275. package/src/lib/sip.js/core/log/levels.ts +0 -10
  276. package/src/lib/sip.js/core/log/logger-factory.ts +0 -119
  277. package/src/lib/sip.js/core/log/logger.ts +0 -42
  278. package/src/lib/sip.js/core/messages/body.ts +0 -171
  279. package/src/lib/sip.js/core/messages/digest-authentication.ts +0 -190
  280. package/src/lib/sip.js/core/messages/incoming-message.ts +0 -152
  281. package/src/lib/sip.js/core/messages/incoming-request-message.ts +0 -14
  282. package/src/lib/sip.js/core/messages/incoming-request.ts +0 -75
  283. package/src/lib/sip.js/core/messages/incoming-response-message.ts +0 -14
  284. package/src/lib/sip.js/core/messages/incoming-response.ts +0 -13
  285. package/src/lib/sip.js/core/messages/index.ts +0 -18
  286. package/src/lib/sip.js/core/messages/md5.ts +0 -437
  287. package/src/lib/sip.js/core/messages/methods/ack.ts +0 -22
  288. package/src/lib/sip.js/core/messages/methods/bye.ts +0 -22
  289. package/src/lib/sip.js/core/messages/methods/cancel.ts +0 -22
  290. package/src/lib/sip.js/core/messages/methods/constants.ts +0 -21
  291. package/src/lib/sip.js/core/messages/methods/index.ts +0 -13
  292. package/src/lib/sip.js/core/messages/methods/info.ts +0 -22
  293. package/src/lib/sip.js/core/messages/methods/invite.ts +0 -104
  294. package/src/lib/sip.js/core/messages/methods/message.ts +0 -22
  295. package/src/lib/sip.js/core/messages/methods/notify.ts +0 -22
  296. package/src/lib/sip.js/core/messages/methods/prack.ts +0 -22
  297. package/src/lib/sip.js/core/messages/methods/publish.ts +0 -22
  298. package/src/lib/sip.js/core/messages/methods/refer.ts +0 -22
  299. package/src/lib/sip.js/core/messages/methods/register.ts +0 -22
  300. package/src/lib/sip.js/core/messages/methods/subscribe.ts +0 -59
  301. package/src/lib/sip.js/core/messages/outgoing-request-message.ts +0 -299
  302. package/src/lib/sip.js/core/messages/outgoing-request.ts +0 -77
  303. package/src/lib/sip.js/core/messages/outgoing-response.ts +0 -174
  304. package/src/lib/sip.js/core/messages/parser.ts +0 -265
  305. package/src/lib/sip.js/core/messages/utils.ts +0 -144
  306. package/src/lib/sip.js/core/session/index.ts +0 -2
  307. package/src/lib/sip.js/core/session/session-delegate.ts +0 -88
  308. package/src/lib/sip.js/core/session/session.ts +0 -158
  309. package/src/lib/sip.js/core/subscription/index.ts +0 -2
  310. package/src/lib/sip.js/core/subscription/subscription-delegate.ts +0 -30
  311. package/src/lib/sip.js/core/subscription/subscription.ts +0 -61
  312. package/src/lib/sip.js/core/timers.ts +0 -24
  313. package/src/lib/sip.js/core/transactions/client-transaction.ts +0 -78
  314. package/src/lib/sip.js/core/transactions/index.ts +0 -10
  315. package/src/lib/sip.js/core/transactions/invite-client-transaction.ts +0 -505
  316. package/src/lib/sip.js/core/transactions/invite-server-transaction.ts +0 -433
  317. package/src/lib/sip.js/core/transactions/non-invite-client-transaction.ts +0 -258
  318. package/src/lib/sip.js/core/transactions/non-invite-server-transaction.ts +0 -242
  319. package/src/lib/sip.js/core/transactions/server-transaction.ts +0 -47
  320. package/src/lib/sip.js/core/transactions/transaction-state.ts +0 -13
  321. package/src/lib/sip.js/core/transactions/transaction-user.ts +0 -82
  322. package/src/lib/sip.js/core/transactions/transaction.ts +0 -149
  323. package/src/lib/sip.js/core/transport.ts +0 -32
  324. package/src/lib/sip.js/core/user-agent-core/allowed-methods.ts +0 -19
  325. package/src/lib/sip.js/core/user-agent-core/index.ts +0 -3
  326. package/src/lib/sip.js/core/user-agent-core/user-agent-core-configuration.ts +0 -111
  327. package/src/lib/sip.js/core/user-agent-core/user-agent-core-delegate.ts +0 -50
  328. package/src/lib/sip.js/core/user-agent-core/user-agent-core.ts +0 -905
  329. package/src/lib/sip.js/core/user-agents/bye-user-agent-client.ts +0 -16
  330. package/src/lib/sip.js/core/user-agents/bye-user-agent-server.ts +0 -14
  331. package/src/lib/sip.js/core/user-agents/cancel-user-agent-client.ts +0 -14
  332. package/src/lib/sip.js/core/user-agents/index.ts +0 -26
  333. package/src/lib/sip.js/core/user-agents/info-user-agent-client.ts +0 -15
  334. package/src/lib/sip.js/core/user-agents/info-user-agent-server.ts +0 -14
  335. package/src/lib/sip.js/core/user-agents/invite-user-agent-client.ts +0 -406
  336. package/src/lib/sip.js/core/user-agents/invite-user-agent-server.ts +0 -269
  337. package/src/lib/sip.js/core/user-agents/message-user-agent-client.ts +0 -14
  338. package/src/lib/sip.js/core/user-agents/message-user-agent-server.ts +0 -14
  339. package/src/lib/sip.js/core/user-agents/notify-user-agent-client.ts +0 -15
  340. package/src/lib/sip.js/core/user-agents/notify-user-agent-server.ts +0 -30
  341. package/src/lib/sip.js/core/user-agents/prack-user-agent-client.ts +0 -16
  342. package/src/lib/sip.js/core/user-agents/prack-user-agent-server.ts +0 -37
  343. package/src/lib/sip.js/core/user-agents/publish-user-agent-client.ts +0 -14
  344. package/src/lib/sip.js/core/user-agents/re-invite-user-agent-client.ts +0 -128
  345. package/src/lib/sip.js/core/user-agents/re-invite-user-agent-server.ts +0 -109
  346. package/src/lib/sip.js/core/user-agents/re-subscribe-user-agent-client.ts +0 -78
  347. package/src/lib/sip.js/core/user-agents/re-subscribe-user-agent-server.ts +0 -14
  348. package/src/lib/sip.js/core/user-agents/refer-user-agent-client.ts +0 -15
  349. package/src/lib/sip.js/core/user-agents/refer-user-agent-server.ts +0 -30
  350. package/src/lib/sip.js/core/user-agents/register-user-agent-client.ts +0 -14
  351. package/src/lib/sip.js/core/user-agents/register-user-agent-server.ts +0 -14
  352. package/src/lib/sip.js/core/user-agents/subscribe-user-agent-client.ts +0 -342
  353. package/src/lib/sip.js/core/user-agents/subscribe-user-agent-server.ts +0 -14
  354. package/src/lib/sip.js/core/user-agents/user-agent-client.ts +0 -378
  355. package/src/lib/sip.js/core/user-agents/user-agent-server.ts +0 -276
  356. package/src/lib/sip.js/grammar/grammar.ts +0 -55
  357. package/src/lib/sip.js/grammar/index.ts +0 -4
  358. package/src/lib/sip.js/grammar/name-addr-header.ts +0 -58
  359. package/src/lib/sip.js/grammar/parameters.ts +0 -45
  360. package/src/lib/sip.js/grammar/pegjs/README.md +0 -9
  361. package/src/lib/sip.js/grammar/pegjs/dist/grammar.ts +0 -1557
  362. package/src/lib/sip.js/grammar/pegjs/src/grammar.pegjs +0 -1009
  363. package/src/lib/sip.js/grammar/uri.ts +0 -370
  364. package/src/lib/sip.js/index.ts +0 -20
  365. package/src/lib/sip.js/platform/react/README.md +0 -1
  366. package/src/lib/sip.js/platform/web/index.ts +0 -4
  367. package/src/lib/sip.js/platform/web/modifiers/index.ts +0 -5
  368. package/src/lib/sip.js/platform/web/modifiers/modifiers.ts +0 -180
  369. package/src/lib/sip.js/platform/web/session-description-handler/api-extractor.json +0 -350
  370. package/src/lib/sip.js/platform/web/session-description-handler/index.ts +0 -14
  371. package/src/lib/sip.js/platform/web/session-description-handler/media-stream-factory-default.ts +0 -22
  372. package/src/lib/sip.js/platform/web/session-description-handler/media-stream-factory.ts +0 -10
  373. package/src/lib/sip.js/platform/web/session-description-handler/peer-connection-configuration-default.ts +0 -17
  374. package/src/lib/sip.js/platform/web/session-description-handler/peer-connection-delegate.ts +0 -72
  375. package/src/lib/sip.js/platform/web/session-description-handler/session-description-handler-configuration.ts +0 -17
  376. package/src/lib/sip.js/platform/web/session-description-handler/session-description-handler-factory-default.ts +0 -45
  377. package/src/lib/sip.js/platform/web/session-description-handler/session-description-handler-factory-options.ts +0 -10
  378. package/src/lib/sip.js/platform/web/session-description-handler/session-description-handler-factory.ts +0 -17
  379. package/src/lib/sip.js/platform/web/session-description-handler/session-description-handler-options.ts +0 -56
  380. package/src/lib/sip.js/platform/web/session-description-handler/session-description-handler.ts +0 -938
  381. package/src/lib/sip.js/platform/web/simple-user/api-extractor.json +0 -350
  382. package/src/lib/sip.js/platform/web/simple-user/index.ts +0 -7
  383. package/src/lib/sip.js/platform/web/simple-user/simple-user-delegate.ts +0 -82
  384. package/src/lib/sip.js/platform/web/simple-user/simple-user-options.ts +0 -102
  385. package/src/lib/sip.js/platform/web/simple-user/simple-user.ts +0 -1099
  386. package/src/lib/sip.js/platform/web/transport/api-extractor.json +0 -350
  387. package/src/lib/sip.js/platform/web/transport/index.ts +0 -6
  388. package/src/lib/sip.js/platform/web/transport/transport-options.ts +0 -34
  389. package/src/lib/sip.js/platform/web/transport/transport.ts +0 -743
  390. package/src/lib/sip.js/version.ts +0 -1
  391. package/src/lib/socket.io.esm.min.js +0 -7
  392. package/src/webrtc/webrtc-method.ts +0 -49
  393. package/src/webrtc/webrtc.ts +0 -350
  394. package/tsconfig.json +0 -21
@@ -1,558 +0,0 @@
1
- // @ts-nocheck
2
- import { Logger } from '../log'
3
- import {
4
- C,
5
- IncomingRequestMessage,
6
- NameAddrHeader,
7
- OutgoingRequestMessage,
8
- OutgoingSubscribeRequest,
9
- OutgoingSubscribeRequestDelegate,
10
- RequestOptions
11
- } from '../messages'
12
- import { Subscription, SubscriptionDelegate, SubscriptionState } from '../subscription'
13
- import { Timers } from '../timers'
14
- import { AllowedMethods } from '../user-agent-core/allowed-methods'
15
- import { UserAgentCore } from '../user-agent-core/user-agent-core'
16
- import { NotifyUserAgentServer } from '../user-agents/notify-user-agent-server'
17
- import { ReSubscribeUserAgentClient } from '../user-agents/re-subscribe-user-agent-client'
18
- import { Dialog } from './dialog'
19
- import { DialogState } from './dialog-state'
20
-
21
- /**
22
- * Subscription Dialog.
23
- * @remarks
24
- * SIP-Specific Event Notification
25
- *
26
- * Abstract
27
- *
28
- * This document describes an extension to the Session Initiation
29
- * Protocol (SIP) defined by RFC 3261. The purpose of this extension is
30
- * to provide an extensible framework by which SIP nodes can request
31
- * notification from remote nodes indicating that certain events have
32
- * occurred.
33
- *
34
- * Note that the event notification mechanisms defined herein are NOT
35
- * intended to be a general-purpose infrastructure for all classes of
36
- * event subscription and notification.
37
- *
38
- * This document represents a backwards-compatible improvement on the
39
- * original mechanism described by RFC 3265, taking into account several
40
- * years of implementation experience. Accordingly, this document
41
- * obsoletes RFC 3265. This document also updates RFC 4660 slightly to
42
- * accommodate some small changes to the mechanism that were discussed
43
- * in that document.
44
- *
45
- * https://tools.ietf.org/html/rfc6665
46
- * @public
47
- */
48
- export class SubscriptionDialog extends Dialog implements Subscription {
49
- public delegate: SubscriptionDelegate | undefined
50
-
51
- private _autoRefresh: boolean
52
- private _subscriptionEvent: string
53
- private _subscriptionExpires: number
54
- private _subscriptionExpiresInitial: number
55
- private _subscriptionExpiresLastSet: number
56
- private _subscriptionRefresh: number | undefined
57
- private _subscriptionRefreshLastSet: number | undefined
58
- private _subscriptionState: SubscriptionState
59
-
60
- private logger: Logger
61
- private N: number | undefined
62
- private refreshTimer: number | undefined
63
-
64
- constructor(
65
- subscriptionEvent: string,
66
- subscriptionExpires: number,
67
- subscriptionState: SubscriptionState,
68
- core: UserAgentCore,
69
- state: DialogState,
70
- delegate?: SubscriptionDelegate
71
- ) {
72
- super(core, state)
73
- this.delegate = delegate
74
- this._autoRefresh = false
75
- this._subscriptionEvent = subscriptionEvent
76
- this._subscriptionExpires = subscriptionExpires
77
- this._subscriptionExpiresInitial = subscriptionExpires
78
- this._subscriptionExpiresLastSet = Math.floor(Date.now() / 1000)
79
- this._subscriptionRefresh = undefined
80
- this._subscriptionRefreshLastSet = undefined
81
- this._subscriptionState = subscriptionState
82
- this.logger = core.loggerFactory.getLogger('sip.subscribe-dialog')
83
- this.logger.log(`SUBSCRIBE dialog ${this.id} constructed`)
84
- }
85
-
86
- /**
87
- * When a UAC receives a response that establishes a dialog, it
88
- * constructs the state of the dialog. This state MUST be maintained
89
- * for the duration of the dialog.
90
- * https://tools.ietf.org/html/rfc3261#section-12.1.2
91
- * @param outgoingRequestMessage - Outgoing request message for dialog.
92
- * @param incomingResponseMessage - Incoming response message creating dialog.
93
- */
94
- public static initialDialogStateForSubscription(
95
- outgoingSubscribeRequestMessage: OutgoingRequestMessage,
96
- incomingNotifyRequestMessage: IncomingRequestMessage
97
- ): DialogState {
98
- // If the request was sent over TLS, and the Request-URI contained a
99
- // SIPS URI, the "secure" flag is set to TRUE.
100
- // https://tools.ietf.org/html/rfc3261#section-12.1.2
101
- const secure = false // FIXME: Currently no support for TLS.
102
-
103
- // The route set MUST be set to the list of URIs in the Record-Route
104
- // header field from the response, taken in reverse order and preserving
105
- // all URI parameters. If no Record-Route header field is present in
106
- // the response, the route set MUST be set to the empty set. This route
107
- // set, even if empty, overrides any pre-existing route set for future
108
- // requests in this dialog. The remote target MUST be set to the URI
109
- // from the Contact header field of the response.
110
- // https://tools.ietf.org/html/rfc3261#section-12.1.2
111
- const routeSet = incomingNotifyRequestMessage.getHeaders('record-route')
112
- const contact = incomingNotifyRequestMessage.parseHeader('contact')
113
- if (!contact) {
114
- // TODO: Review to make sure this will never happen
115
- throw new Error('Contact undefined.')
116
- }
117
- if (!(contact instanceof NameAddrHeader)) {
118
- throw new Error('Contact not instance of NameAddrHeader.')
119
- }
120
- const remoteTarget = contact.uri
121
-
122
- // The local sequence number MUST be set to the value of the sequence
123
- // number in the CSeq header field of the request. The remote sequence
124
- // number MUST be empty (it is established when the remote UA sends a
125
- // request within the dialog). The call identifier component of the
126
- // dialog ID MUST be set to the value of the Call-ID in the request.
127
- // The local tag component of the dialog ID MUST be set to the tag in
128
- // the From field in the request, and the remote tag component of the
129
- // dialog ID MUST be set to the tag in the To field of the response. A
130
- // UAC MUST be prepared to receive a response without a tag in the To
131
- // field, in which case the tag is considered to have a value of null.
132
- //
133
- // This is to maintain backwards compatibility with RFC 2543, which
134
- // did not mandate To tags.
135
- //
136
- // https://tools.ietf.org/html/rfc3261#section-12.1.2
137
- const localSequenceNumber = outgoingSubscribeRequestMessage.cseq
138
- const remoteSequenceNumber = undefined
139
- const callId = outgoingSubscribeRequestMessage.callId
140
- const localTag = outgoingSubscribeRequestMessage.fromTag
141
- const remoteTag = incomingNotifyRequestMessage.fromTag
142
- if (!callId) {
143
- // TODO: Review to make sure this will never happen
144
- throw new Error('Call id undefined.')
145
- }
146
- if (!localTag) {
147
- // TODO: Review to make sure this will never happen
148
- throw new Error('From tag undefined.')
149
- }
150
- if (!remoteTag) {
151
- // TODO: Review to make sure this will never happen
152
- throw new Error('To tag undefined.') // FIXME: No backwards compatibility with RFC 2543
153
- }
154
-
155
- // The remote URI MUST be set to the URI in the To field, and the local
156
- // URI MUST be set to the URI in the From field.
157
- // https://tools.ietf.org/html/rfc3261#section-12.1.2
158
- if (!outgoingSubscribeRequestMessage.from) {
159
- // TODO: Review to make sure this will never happen
160
- throw new Error('From undefined.')
161
- }
162
- if (!outgoingSubscribeRequestMessage.to) {
163
- // TODO: Review to make sure this will never happen
164
- throw new Error('To undefined.')
165
- }
166
- const localURI = outgoingSubscribeRequestMessage.from.uri
167
- const remoteURI = outgoingSubscribeRequestMessage.to.uri
168
-
169
- // A dialog can also be in the "early" state, which occurs when it is
170
- // created with a provisional response, and then transition to the
171
- // "confirmed" state when a 2xx final response arrives.
172
- // https://tools.ietf.org/html/rfc3261#section-12
173
- const early = false
174
-
175
- const dialogState: DialogState = {
176
- id: callId + localTag + remoteTag,
177
- early,
178
- callId,
179
- localTag,
180
- remoteTag,
181
- localSequenceNumber,
182
- remoteSequenceNumber,
183
- localURI,
184
- remoteURI,
185
- remoteTarget,
186
- routeSet,
187
- secure
188
- }
189
- return dialogState
190
- }
191
-
192
- public dispose(): void {
193
- super.dispose()
194
- if (this.N) {
195
- clearTimeout(this.N)
196
- this.N = undefined
197
- }
198
- this.refreshTimerClear()
199
- this.logger.log(`SUBSCRIBE dialog ${this.id} destroyed`)
200
- }
201
-
202
- get autoRefresh(): boolean {
203
- return this._autoRefresh
204
- }
205
-
206
- set autoRefresh(autoRefresh: boolean) {
207
- this._autoRefresh = true
208
- this.refreshTimerSet()
209
- }
210
-
211
- get subscriptionEvent(): string {
212
- return this._subscriptionEvent
213
- }
214
-
215
- /** Number of seconds until subscription expires. */
216
- get subscriptionExpires(): number {
217
- const secondsSinceLastSet = Math.floor(Date.now() / 1000) - this._subscriptionExpiresLastSet
218
- const secondsUntilExpires = this._subscriptionExpires - secondsSinceLastSet
219
- return Math.max(secondsUntilExpires, 0)
220
- }
221
-
222
- set subscriptionExpires(expires: number) {
223
- if (expires < 0) {
224
- throw new Error('Expires must be greater than or equal to zero.')
225
- }
226
- this._subscriptionExpires = expires
227
- this._subscriptionExpiresLastSet = Math.floor(Date.now() / 1000)
228
- if (this.autoRefresh) {
229
- const refresh = this.subscriptionRefresh
230
- if (refresh === undefined || refresh >= expires) {
231
- this.refreshTimerSet()
232
- }
233
- }
234
- }
235
-
236
- get subscriptionExpiresInitial(): number {
237
- return this._subscriptionExpiresInitial
238
- }
239
-
240
- /** Number of seconds until subscription auto refresh. */
241
- get subscriptionRefresh(): number | undefined {
242
- if (this._subscriptionRefresh === undefined || this._subscriptionRefreshLastSet === undefined) {
243
- return undefined
244
- }
245
- const secondsSinceLastSet = Math.floor(Date.now() / 1000) - this._subscriptionRefreshLastSet
246
- const secondsUntilExpires = this._subscriptionRefresh - secondsSinceLastSet
247
- return Math.max(secondsUntilExpires, 0)
248
- }
249
-
250
- get subscriptionState(): SubscriptionState {
251
- return this._subscriptionState
252
- }
253
-
254
- /**
255
- * Receive in dialog request message from transport.
256
- * @param message - The incoming request message.
257
- */
258
- public receiveRequest(message: IncomingRequestMessage): void {
259
- this.logger.log(`SUBSCRIBE dialog ${this.id} received ${message.method} request`)
260
-
261
- // Request within a dialog out of sequence guard.
262
- // https://tools.ietf.org/html/rfc3261#section-12.2.2
263
- if (!this.sequenceGuard(message)) {
264
- this.logger.log(`SUBSCRIBE dialog ${this.id} rejected out of order ${message.method} request.`)
265
- return
266
- }
267
-
268
- // Request within a dialog common processing.
269
- // https://tools.ietf.org/html/rfc3261#section-12.2.2
270
- super.receiveRequest(message)
271
-
272
- // Switch on method and then delegate.
273
- switch (message.method) {
274
- case C.NOTIFY:
275
- this.onNotify(message)
276
- break
277
- default:
278
- this.logger.log(`SUBSCRIBE dialog ${this.id} received unimplemented ${message.method} request`)
279
- this.core.replyStateless(message, { statusCode: 501 })
280
- break
281
- }
282
- }
283
-
284
- /**
285
- * 4.1.2.2. Refreshing of Subscriptions
286
- * https://tools.ietf.org/html/rfc6665#section-4.1.2.2
287
- */
288
- public refresh(): OutgoingSubscribeRequest {
289
- const allowHeader = 'Allow: ' + AllowedMethods.toString()
290
- const options: RequestOptions = {}
291
- options.extraHeaders = (options.extraHeaders || []).slice()
292
- options.extraHeaders.push(allowHeader)
293
- options.extraHeaders.push('Event: ' + this.subscriptionEvent)
294
- options.extraHeaders.push('Expires: ' + this.subscriptionExpiresInitial)
295
- options.extraHeaders.push('Contact: ' + this.core.configuration.contact.toString())
296
- return this.subscribe(undefined, options)
297
- }
298
-
299
- /**
300
- * 4.1.2.2. Refreshing of Subscriptions
301
- * https://tools.ietf.org/html/rfc6665#section-4.1.2.2
302
- * @param delegate - Delegate to handle responses.
303
- * @param options - Options bucket.
304
- */
305
- public subscribe(
306
- delegate?: OutgoingSubscribeRequestDelegate,
307
- options: RequestOptions = {}
308
- ): OutgoingSubscribeRequest {
309
- if (this.subscriptionState !== SubscriptionState.Pending && this.subscriptionState !== SubscriptionState.Active) {
310
- // FIXME: This needs to be a proper exception
311
- throw new Error(
312
- `Invalid state ${this.subscriptionState}. May only re-subscribe while in state "pending" or "active".`
313
- )
314
- }
315
- this.logger.log(`SUBSCRIBE dialog ${this.id} sending SUBSCRIBE request`)
316
- const uac = new ReSubscribeUserAgentClient(this, delegate, options)
317
- // Abort any outstanding timer (as it would otherwise become guaranteed to terminate us).
318
- if (this.N) {
319
- clearTimeout(this.N)
320
- this.N = undefined
321
- }
322
- // When refreshing a subscription, a subscriber starts Timer N, set to
323
- // 64*T1, when it sends the SUBSCRIBE request.
324
- // https://tools.ietf.org/html/rfc6665#section-4.1.2.2
325
- this.N = setTimeout(() => this.timerN(), Timers.TIMER_N)
326
- return uac
327
- }
328
-
329
- /**
330
- * 4.4.1. Dialog Creation and Termination
331
- * A subscription is destroyed after a notifier sends a NOTIFY request
332
- * with a "Subscription-State" of "terminated", or in certain error
333
- * situations described elsewhere in this document.
334
- * https://tools.ietf.org/html/rfc6665#section-4.4.1
335
- */
336
- public terminate(): void {
337
- this.stateTransition(SubscriptionState.Terminated)
338
- this.onTerminated()
339
- }
340
-
341
- /**
342
- * 4.1.2.3. Unsubscribing
343
- * https://tools.ietf.org/html/rfc6665#section-4.1.2.3
344
- */
345
- public unsubscribe(): OutgoingSubscribeRequest {
346
- const allowHeader = 'Allow: ' + AllowedMethods.toString()
347
- const options: RequestOptions = {}
348
- options.extraHeaders = (options.extraHeaders || []).slice()
349
- options.extraHeaders.push(allowHeader)
350
- options.extraHeaders.push('Event: ' + this.subscriptionEvent)
351
- options.extraHeaders.push('Expires: 0')
352
- options.extraHeaders.push('Contact: ' + this.core.configuration.contact.toString())
353
- return this.subscribe(undefined, options)
354
- }
355
-
356
- /**
357
- * Handle in dialog NOTIFY requests.
358
- * This does not include the first NOTIFY which created the dialog.
359
- * @param message - The incoming NOTIFY request message.
360
- */
361
- private onNotify(message: IncomingRequestMessage): void {
362
- // If, for some reason, the event package designated in the "Event"
363
- // header field of the NOTIFY request is not supported, the subscriber
364
- // will respond with a 489 (Bad Event) response.
365
- // https://tools.ietf.org/html/rfc6665#section-4.1.3
366
- const event: string = message.parseHeader('Event').event
367
- if (!event || event !== this.subscriptionEvent) {
368
- this.core.replyStateless(message, { statusCode: 489 })
369
- return
370
- }
371
-
372
- // In the state diagram, "Re-subscription times out" means that an
373
- // attempt to refresh or update the subscription using a new SUBSCRIBE
374
- // request does not result in a NOTIFY request before the corresponding
375
- // Timer N expires.
376
- // https://tools.ietf.org/html/rfc6665#section-4.1.2
377
- if (this.N) {
378
- clearTimeout(this.N)
379
- this.N = undefined
380
- }
381
-
382
- // NOTIFY requests MUST contain "Subscription-State" header fields that
383
- // indicate the status of the subscription.
384
- // https://tools.ietf.org/html/rfc6665#section-4.1.3
385
- const subscriptionState = message.parseHeader('Subscription-State')
386
- if (!subscriptionState || !subscriptionState.state) {
387
- this.core.replyStateless(message, { statusCode: 489 })
388
- return
389
- }
390
- const state: 'pending' | 'active' | 'terminated' = subscriptionState.state
391
- const expires = subscriptionState.expires ? Math.max(subscriptionState.expires, 0) : undefined
392
-
393
- // Update our state and expiration.
394
- switch (state) {
395
- case 'pending':
396
- this.stateTransition(SubscriptionState.Pending, expires)
397
- break
398
- case 'active':
399
- this.stateTransition(SubscriptionState.Active, expires)
400
- break
401
- case 'terminated':
402
- this.stateTransition(SubscriptionState.Terminated, expires)
403
- break
404
- default:
405
- this.logger.warn('Unrecognized subscription state.')
406
- break
407
- }
408
-
409
- // Delegate remainder of NOTIFY handling.
410
- const uas = new NotifyUserAgentServer(this, message)
411
- if (this.delegate && this.delegate.onNotify) {
412
- this.delegate.onNotify(uas)
413
- } else {
414
- uas.accept()
415
- }
416
- }
417
-
418
- private onRefresh(request: OutgoingSubscribeRequest): void {
419
- if (this.delegate && this.delegate.onRefresh) {
420
- this.delegate.onRefresh(request)
421
- }
422
- }
423
-
424
- private onTerminated(): void {
425
- if (this.delegate && this.delegate.onTerminated) {
426
- this.delegate.onTerminated()
427
- }
428
- }
429
-
430
- private refreshTimerClear(): void {
431
- if (this.refreshTimer) {
432
- clearTimeout(this.refreshTimer)
433
- this.refreshTimer = undefined
434
- }
435
- }
436
-
437
- private refreshTimerSet(): void {
438
- this.refreshTimerClear()
439
- if (this.autoRefresh && this.subscriptionExpires > 0) {
440
- const refresh = this.subscriptionExpires * 900
441
- this._subscriptionRefresh = Math.floor(refresh / 1000)
442
- this._subscriptionRefreshLastSet = Math.floor(Date.now() / 1000)
443
- this.refreshTimer = setTimeout(() => {
444
- this.refreshTimer = undefined
445
- this._subscriptionRefresh = undefined
446
- this._subscriptionRefreshLastSet = undefined
447
- this.onRefresh(this.refresh())
448
- }, refresh)
449
- }
450
- }
451
-
452
- private stateTransition(newState: SubscriptionState, newExpires?: number): void {
453
- // Assert valid state transitions.
454
- const invalidStateTransition = (): void => {
455
- this.logger.warn(`Invalid subscription state transition from ${this.subscriptionState} to ${newState}`)
456
- }
457
-
458
- switch (newState) {
459
- case SubscriptionState.Initial:
460
- invalidStateTransition()
461
- return
462
- case SubscriptionState.NotifyWait:
463
- invalidStateTransition()
464
- return
465
- case SubscriptionState.Pending:
466
- if (
467
- this.subscriptionState !== SubscriptionState.NotifyWait &&
468
- this.subscriptionState !== SubscriptionState.Pending
469
- ) {
470
- invalidStateTransition()
471
- return
472
- }
473
- break
474
- case SubscriptionState.Active:
475
- if (
476
- this.subscriptionState !== SubscriptionState.NotifyWait &&
477
- this.subscriptionState !== SubscriptionState.Pending &&
478
- this.subscriptionState !== SubscriptionState.Active
479
- ) {
480
- invalidStateTransition()
481
- return
482
- }
483
- break
484
- case SubscriptionState.Terminated:
485
- if (
486
- this.subscriptionState !== SubscriptionState.NotifyWait &&
487
- this.subscriptionState !== SubscriptionState.Pending &&
488
- this.subscriptionState !== SubscriptionState.Active
489
- ) {
490
- invalidStateTransition()
491
- return
492
- }
493
- break
494
- default:
495
- invalidStateTransition()
496
- return
497
- }
498
-
499
- // If the "Subscription-State" value is "pending", the subscription has
500
- // been received by the notifier, but there is insufficient policy
501
- // information to grant or deny the subscription yet. If the header
502
- // field also contains an "expires" parameter, the subscriber SHOULD
503
- // take it as the authoritative subscription duration and adjust
504
- // accordingly. No further action is necessary on the part of the
505
- // subscriber. The "retry-after" and "reason" parameters have no
506
- // semantics for "pending".
507
- // https://tools.ietf.org/html/rfc6665#section-4.1.3
508
- if (newState === SubscriptionState.Pending) {
509
- if (newExpires) {
510
- this.subscriptionExpires = newExpires
511
- }
512
- }
513
-
514
- // If the "Subscription-State" header field value is "active", it means
515
- // that the subscription has been accepted and (in general) has been
516
- // authorized. If the header field also contains an "expires"
517
- // parameter, the subscriber SHOULD take it as the authoritative
518
- // subscription duration and adjust accordingly. The "retry-after" and
519
- // "reason" parameters have no semantics for "active".
520
- // https://tools.ietf.org/html/rfc6665#section-4.1.3
521
- if (newState === SubscriptionState.Active) {
522
- if (newExpires) {
523
- this.subscriptionExpires = newExpires
524
- }
525
- }
526
-
527
- // If the "Subscription-State" value is "terminated", the subscriber
528
- // MUST consider the subscription terminated. The "expires" parameter
529
- // has no semantics for "terminated" -- notifiers SHOULD NOT include an
530
- // "expires" parameter on a "Subscription-State" header field with a
531
- // value of "terminated", and subscribers MUST ignore any such
532
- // parameter, if present.
533
- if (newState === SubscriptionState.Terminated) {
534
- this.dispose()
535
- }
536
-
537
- this._subscriptionState = newState
538
- }
539
-
540
- /**
541
- * When refreshing a subscription, a subscriber starts Timer N, set to
542
- * 64*T1, when it sends the SUBSCRIBE request. If this Timer N expires
543
- * prior to the receipt of a NOTIFY request, the subscriber considers
544
- * the subscription terminated. If the subscriber receives a success
545
- * response to the SUBSCRIBE request that indicates that no NOTIFY
546
- * request will be generated -- such as the 204 response defined for use
547
- * with the optional extension described in [RFC5839] -- then it MUST
548
- * cancel Timer N.
549
- * https://tools.ietf.org/html/rfc6665#section-4.1.2.2
550
- */
551
- private timerN(): void {
552
- this.logger.warn(`Timer N expired for SUBSCRIBE dialog. Timed out waiting for NOTIFY.`)
553
- if (this.subscriptionState !== SubscriptionState.Terminated) {
554
- this.stateTransition(SubscriptionState.Terminated)
555
- this.onTerminated()
556
- }
557
- }
558
- }
@@ -1,11 +0,0 @@
1
- /**
2
- * An Exception is considered a condition that a reasonable application may wish to catch.
3
- * An Error indicates serious problems that a reasonable application should not try to catch.
4
- * @public
5
- */
6
- export abstract class Exception extends Error {
7
- protected constructor(message?: string) {
8
- super(message); // 'Error' breaks prototype chain here
9
- Object.setPrototypeOf(this, new.target.prototype); // restore prototype chain
10
- }
11
- }
@@ -1,3 +0,0 @@
1
- export * from "./exception";
2
- export * from "./transaction-state-error";
3
- export * from "./transport-error";
@@ -1,11 +0,0 @@
1
- import { Exception } from "./exception";
2
-
3
- /**
4
- * Indicates that the operation could not be completed given the current transaction state.
5
- * @public
6
- */
7
- export class TransactionStateError extends Exception {
8
- constructor(message?: string) {
9
- super(message ? message : "Transaction state error.");
10
- }
11
- }
@@ -1,11 +0,0 @@
1
- import { Exception } from "./exception";
2
-
3
- /**
4
- * Transport error.
5
- * @public
6
- */
7
- export class TransportError extends Exception {
8
- constructor(message?: string) {
9
- super(message ? message : "Unspecified transport error.");
10
- }
11
- }
@@ -1,19 +0,0 @@
1
- /**
2
- * A core library implementing low level SIP protocol elements.
3
- * @packageDocumentation
4
- */
5
-
6
- // Directories
7
- export * from "./dialogs";
8
- export * from "./exceptions";
9
- export * from "./log";
10
- export * from "./messages";
11
- export * from "./session";
12
- export * from "./subscription";
13
- export * from "./transactions";
14
- export * from "./user-agent-core";
15
- export * from "./user-agents";
16
-
17
- // Files
18
- export * from "./timers";
19
- export * from "./transport";
@@ -1,3 +0,0 @@
1
- export * from "./levels";
2
- export * from "./logger-factory";
3
- export * from "./logger";
@@ -1,10 +0,0 @@
1
- /**
2
- * Log levels.
3
- * @public
4
- */
5
- export enum Levels {
6
- error,
7
- warn,
8
- log,
9
- debug
10
- }