ue-softphone-sdk 2.2.5 → 2.2.6
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.
- package/dist/{index.d.ts → types/index.d.ts} +3 -7
- package/dist/ue-softphone-sdk.js +7 -2
- package/package.json +5 -6
- package/{new-rollup.config.mjs → rollup-new.config.mjs} +1 -1
- package/rollup.config.js +14 -15
- package/src/index.ts +28 -53
- package/tsconfig.json +10 -26
- package/dist/api/bye.d.ts +0 -16
- package/dist/api/dtmf.d.ts +0 -15
- package/dist/api/emitter.d.ts +0 -88
- package/dist/api/exceptions/content-type-unsupported.d.ts +0 -8
- package/dist/api/exceptions/index.d.ts +0 -5
- package/dist/api/exceptions/request-pending.d.ts +0 -9
- package/dist/api/exceptions/session-description-handler.d.ts +0 -8
- package/dist/api/exceptions/session-terminated.d.ts +0 -8
- package/dist/api/exceptions/state-transition.d.ts +0 -8
- package/dist/api/index.d.ts +0 -58
- package/dist/api/info.d.ts +0 -16
- package/dist/api/invitation-accept-options.d.ts +0 -19
- package/dist/api/invitation-progress-options.d.ts +0 -38
- package/dist/api/invitation-reject-options.d.ts +0 -25
- package/dist/api/invitation.d.ts +0 -179
- package/dist/api/inviter-cancel-options.d.ts +0 -9
- package/dist/api/inviter-invite-options.d.ts +0 -28
- package/dist/api/inviter-options.d.ts +0 -43
- package/dist/api/inviter.d.ts +0 -236
- package/dist/api/message.d.ts +0 -16
- package/dist/api/messager-message-options.d.ts +0 -11
- package/dist/api/messager-options.d.ts +0 -17
- package/dist/api/messager.d.ts +0 -26
- package/dist/api/notification.d.ts +0 -16
- package/dist/api/notifier.d.ts +0 -8
- package/dist/api/publisher-options.d.ts +0 -33
- package/dist/api/publisher-publish-options.d.ts +0 -6
- package/dist/api/publisher-state.d.ts +0 -21
- package/dist/api/publisher-unpublish-options.d.ts +0 -6
- package/dist/api/publisher.d.ts +0 -65
- package/dist/api/referral.d.ts +0 -38
- package/dist/api/registerer-options.d.ts +0 -46
- package/dist/api/registerer-register-options.d.ts +0 -11
- package/dist/api/registerer-state.d.ts +0 -21
- package/dist/api/registerer-unregister-options.d.ts +0 -16
- package/dist/api/registerer.d.ts +0 -144
- package/dist/api/session-bye-options.d.ts +0 -11
- package/dist/api/session-delegate.d.ts +0 -73
- package/dist/api/session-description-handler-factory.d.ts +0 -15
- package/dist/api/session-description-handler.d.ts +0 -74
- package/dist/api/session-info-options.d.ts +0 -11
- package/dist/api/session-invite-options.d.ts +0 -28
- package/dist/api/session-message-options.d.ts +0 -11
- package/dist/api/session-options.d.ts +0 -8
- package/dist/api/session-refer-options.d.ts +0 -14
- package/dist/api/session-state.d.ts +0 -45
- package/dist/api/session.d.ts +0 -359
- package/dist/api/subscriber-options.d.ts +0 -11
- package/dist/api/subscriber-subscribe-options.d.ts +0 -6
- package/dist/api/subscriber.d.ts +0 -94
- package/dist/api/subscription-delegate.d.ts +0 -12
- package/dist/api/subscription-options.d.ts +0 -8
- package/dist/api/subscription-state.d.ts +0 -19
- package/dist/api/subscription-subscribe-options.d.ts +0 -6
- package/dist/api/subscription-unsubscribe-options.d.ts +0 -6
- package/dist/api/subscription.d.ts +0 -84
- package/dist/api/transport-state.d.ts +0 -37
- package/dist/api/transport.d.ts +0 -159
- package/dist/api/user-agent-delegate.d.ts +0 -84
- package/dist/api/user-agent-options.d.ts +0 -253
- package/dist/api/user-agent-state.d.ts +0 -14
- package/dist/api/user-agent.d.ts +0 -200
- package/dist/core/dialogs/dialog-state.d.ts +0 -34
- package/dist/core/dialogs/dialog.d.ts +0 -161
- package/dist/core/dialogs/index.d.ts +0 -4
- package/dist/core/dialogs/session-dialog.d.ts +0 -196
- package/dist/core/dialogs/subscription-dialog.d.ts +0 -120
- package/dist/core/exceptions/exception.d.ts +0 -8
- package/dist/core/exceptions/index.d.ts +0 -3
- package/dist/core/exceptions/transaction-state-error.d.ts +0 -8
- package/dist/core/exceptions/transport-error.d.ts +0 -8
- package/dist/core/index.d.ts +0 -15
- package/dist/core/log/index.d.ts +0 -3
- package/dist/core/log/levels.d.ts +0 -10
- package/dist/core/log/logger-factory.d.ts +0 -21
- package/dist/core/log/logger.d.ts +0 -19
- package/dist/core/messages/body.d.ts +0 -64
- package/dist/core/messages/digest-authentication.d.ts +0 -51
- package/dist/core/messages/incoming-message.d.ts +0 -79
- package/dist/core/messages/incoming-request-message.d.ts +0 -10
- package/dist/core/messages/incoming-request.d.ts +0 -67
- package/dist/core/messages/incoming-response-message.d.ts +0 -10
- package/dist/core/messages/incoming-response.d.ts +0 -12
- package/dist/core/messages/index.d.ts +0 -13
- package/dist/core/messages/md5.d.ts +0 -32
- package/dist/core/messages/methods/ack.d.ts +0 -18
- package/dist/core/messages/methods/bye.d.ts +0 -21
- package/dist/core/messages/methods/cancel.d.ts +0 -21
- package/dist/core/messages/methods/constants.d.ts +0 -20
- package/dist/core/messages/methods/index.d.ts +0 -13
- package/dist/core/messages/methods/info.d.ts +0 -21
- package/dist/core/messages/methods/invite.d.ts +0 -86
- package/dist/core/messages/methods/message.d.ts +0 -21
- package/dist/core/messages/methods/notify.d.ts +0 -21
- package/dist/core/messages/methods/prack.d.ts +0 -21
- package/dist/core/messages/methods/publish.d.ts +0 -21
- package/dist/core/messages/methods/refer.d.ts +0 -21
- package/dist/core/messages/methods/register.d.ts +0 -21
- package/dist/core/messages/methods/subscribe.d.ts +0 -54
- package/dist/core/messages/outgoing-request-message.d.ts +0 -94
- package/dist/core/messages/outgoing-request.d.ts +0 -67
- package/dist/core/messages/outgoing-response.d.ts +0 -42
- package/dist/core/messages/parser.d.ts +0 -14
- package/dist/core/messages/utils.d.ts +0 -24
- package/dist/core/session/index.d.ts +0 -2
- package/dist/core/session/session-delegate.d.ts +0 -70
- package/dist/core/session/session.d.ts +0 -134
- package/dist/core/subscription/index.d.ts +0 -2
- package/dist/core/subscription/subscription-delegate.d.ts +0 -27
- package/dist/core/subscription/subscription.d.ts +0 -55
- package/dist/core/timers.d.ts +0 -20
- package/dist/core/transactions/client-transaction.d.ts +0 -45
- package/dist/core/transactions/index.d.ts +0 -10
- package/dist/core/transactions/invite-client-transaction.d.ts +0 -116
- package/dist/core/transactions/invite-server-transaction.d.ts +0 -127
- package/dist/core/transactions/non-invite-client-transaction.d.ts +0 -69
- package/dist/core/transactions/non-invite-server-transaction.d.ts +0 -57
- package/dist/core/transactions/server-transaction.d.ts +0 -35
- package/dist/core/transactions/transaction-state.d.ts +0 -13
- package/dist/core/transactions/transaction-user.d.ts +0 -72
- package/dist/core/transactions/transaction.d.ts +0 -79
- package/dist/core/transport.d.ts +0 -31
- package/dist/core/user-agent-core/allowed-methods.d.ts +0 -4
- package/dist/core/user-agent-core/index.d.ts +0 -3
- package/dist/core/user-agent-core/user-agent-core-configuration.d.ts +0 -99
- package/dist/core/user-agent-core/user-agent-core-delegate.d.ts +0 -37
- package/dist/core/user-agent-core/user-agent-core.d.ts +0 -179
- package/dist/core/user-agents/bye-user-agent-client.d.ts +0 -10
- package/dist/core/user-agents/bye-user-agent-server.d.ts +0 -10
- package/dist/core/user-agents/cancel-user-agent-client.d.ts +0 -10
- package/dist/core/user-agents/index.d.ts +0 -26
- package/dist/core/user-agents/info-user-agent-client.d.ts +0 -10
- package/dist/core/user-agents/info-user-agent-server.d.ts +0 -10
- package/dist/core/user-agents/invite-user-agent-client.d.ts +0 -35
- package/dist/core/user-agents/invite-user-agent-server.d.ts +0 -77
- package/dist/core/user-agents/message-user-agent-client.d.ts +0 -10
- package/dist/core/user-agents/message-user-agent-server.d.ts +0 -10
- package/dist/core/user-agents/notify-user-agent-client.d.ts +0 -10
- package/dist/core/user-agents/notify-user-agent-server.d.ts +0 -16
- package/dist/core/user-agents/prack-user-agent-client.d.ts +0 -10
- package/dist/core/user-agents/prack-user-agent-server.d.ts +0 -16
- package/dist/core/user-agents/publish-user-agent-client.d.ts +0 -10
- package/dist/core/user-agents/re-invite-user-agent-client.d.ts +0 -18
- package/dist/core/user-agents/re-invite-user-agent-server.d.ts +0 -41
- package/dist/core/user-agents/re-subscribe-user-agent-client.d.ts +0 -17
- package/dist/core/user-agents/re-subscribe-user-agent-server.d.ts +0 -10
- package/dist/core/user-agents/refer-user-agent-client.d.ts +0 -10
- package/dist/core/user-agents/refer-user-agent-server.d.ts +0 -16
- package/dist/core/user-agents/register-user-agent-client.d.ts +0 -10
- package/dist/core/user-agents/register-user-agent-server.d.ts +0 -11
- package/dist/core/user-agents/subscribe-user-agent-client.d.ts +0 -65
- package/dist/core/user-agents/subscribe-user-agent-server.d.ts +0 -11
- package/dist/core/user-agents/user-agent-client.d.ts +0 -103
- package/dist/core/user-agents/user-agent-server.d.ts +0 -79
- package/dist/grammar/grammar.d.ts +0 -26
- package/dist/grammar/index.d.ts +0 -4
- package/dist/grammar/name-addr-header.d.ts +0 -24
- package/dist/grammar/parameters.d.ts +0 -16
- package/dist/grammar/pegjs/dist/grammar.d.ts +0 -50
- package/dist/grammar/uri.d.ts +0 -62
- package/dist/main.d.ts +0 -9
- package/dist/new-index.d.ts +0 -199
- package/dist/platform/web/index.d.ts +0 -4
- package/dist/platform/web/modifiers/index.d.ts +0 -5
- package/dist/platform/web/modifiers/modifiers.d.ts +0 -41
- package/dist/platform/web/session-description-handler/index.d.ts +0 -14
- package/dist/platform/web/session-description-handler/media-stream-factory-default.d.ts +0 -6
- package/dist/platform/web/session-description-handler/media-stream-factory.d.ts +0 -6
- package/dist/platform/web/session-description-handler/peer-connection-configuration-default.d.ts +0 -5
- package/dist/platform/web/session-description-handler/peer-connection-delegate.d.ts +0 -63
- package/dist/platform/web/session-description-handler/session-description-handler-configuration.d.ts +0 -16
- package/dist/platform/web/session-description-handler/session-description-handler-factory-default.d.ts +0 -11
- package/dist/platform/web/session-description-handler/session-description-handler-factory-options.d.ts +0 -9
- package/dist/platform/web/session-description-handler/session-description-handler-factory.d.ts +0 -16
- package/dist/platform/web/session-description-handler/session-description-handler-options.d.ts +0 -47
- package/dist/platform/web/session-description-handler/session-description-handler.d.ts +0 -212
- package/dist/platform/web/simple-user/index.d.ts +0 -7
- package/dist/platform/web/simple-user/simple-user-delegate.d.ts +0 -72
- package/dist/platform/web/simple-user/simple-user-options.d.ts +0 -90
- package/dist/platform/web/simple-user/simple-user.d.ts +0 -226
- package/dist/platform/web/transport/index.d.ts +0 -6
- package/dist/platform/web/transport/transport-options.d.ts +0 -30
- package/dist/platform/web/transport/transport.d.ts +0 -125
- package/dist/ue-softphone-sdk.js.map +0 -1
- package/dist/version.d.ts +0 -1
- package/dist/webPhoneSdk.d.ts +0 -24
- package/dist/webrtc.d.ts +0 -17
- package/src/api/api-extractor.json +0 -358
- package/src/api/bye.ts +0 -27
- package/src/api/dtmf.ts +0 -27
- package/src/api/emitter.ts +0 -110
- package/src/api/exceptions/content-type-unsupported.ts +0 -11
- package/src/api/exceptions/index.ts +0 -5
- package/src/api/exceptions/request-pending.ts +0 -12
- package/src/api/exceptions/session-description-handler.ts +0 -11
- package/src/api/exceptions/session-terminated.ts +0 -11
- package/src/api/exceptions/state-transition.ts +0 -11
- package/src/api/index.ts +0 -58
- package/src/api/info.ts +0 -27
- package/src/api/invitation-accept-options.ts +0 -20
- package/src/api/invitation-progress-options.ts +0 -36
- package/src/api/invitation-reject-options.ts +0 -22
- package/src/api/invitation.ts +0 -816
- package/src/api/inviter-cancel-options.ts +0 -9
- package/src/api/inviter-invite-options.ts +0 -29
- package/src/api/inviter-options.ts +0 -44
- package/src/api/inviter.ts +0 -1126
- package/src/api/message.ts +0 -27
- package/src/api/messager-message-options.ts +0 -12
- package/src/api/messager-options.ts +0 -18
- package/src/api/messager.ts +0 -89
- package/src/api/notification.ts +0 -27
- package/src/api/notifier.ts +0 -7
- package/src/api/publisher-options.ts +0 -34
- package/src/api/publisher-publish-options.ts +0 -6
- package/src/api/publisher-state.ts +0 -21
- package/src/api/publisher-unpublish-options.ts +0 -6
- package/src/api/publisher.ts +0 -418
- package/src/api/referral.ts +0 -89
- package/src/api/registerer-options.ts +0 -55
- package/src/api/registerer-register-options.ts +0 -12
- package/src/api/registerer-state.ts +0 -21
- package/src/api/registerer-unregister-options.ts +0 -17
- package/src/api/registerer.ts +0 -814
- package/src/api/session-bye-options.ts +0 -12
- package/src/api/session-delegate.ts +0 -80
- package/src/api/session-description-handler-factory.ts +0 -16
- package/src/api/session-description-handler.ts +0 -89
- package/src/api/session-info-options.ts +0 -12
- package/src/api/session-invite-options.ts +0 -29
- package/src/api/session-message-options.ts +0 -12
- package/src/api/session-options.ts +0 -8
- package/src/api/session-refer-options.ts +0 -15
- package/src/api/session-state.ts +0 -45
- package/src/api/session.ts +0 -1448
- package/src/api/subscriber-options.ts +0 -12
- package/src/api/subscriber-subscribe-options.ts +0 -6
- package/src/api/subscriber.ts +0 -536
- package/src/api/subscription-delegate.ts +0 -13
- package/src/api/subscription-options.ts +0 -8
- package/src/api/subscription-state.ts +0 -19
- package/src/api/subscription-subscribe-options.ts +0 -6
- package/src/api/subscription-unsubscribe-options.ts +0 -6
- package/src/api/subscription.ts +0 -161
- package/src/api/transport-state.ts +0 -37
- package/src/api/transport.ts +0 -169
- package/src/api/user-agent-delegate.ts +0 -95
- package/src/api/user-agent-options.ts +0 -322
- package/src/api/user-agent-state.ts +0 -14
- package/src/api/user-agent.ts +0 -1014
- package/src/core/api-extractor.json +0 -358
- package/src/core/dialogs/dialog-state.ts +0 -35
- package/src/core/dialogs/dialog.ts +0 -605
- package/src/core/dialogs/index.ts +0 -4
- package/src/core/dialogs/session-dialog.ts +0 -996
- package/src/core/dialogs/subscription-dialog.ts +0 -557
- package/src/core/exceptions/exception.ts +0 -11
- package/src/core/exceptions/index.ts +0 -3
- package/src/core/exceptions/transaction-state-error.ts +0 -11
- package/src/core/exceptions/transport-error.ts +0 -11
- package/src/core/index.ts +0 -19
- package/src/core/log/index.ts +0 -3
- package/src/core/log/levels.ts +0 -10
- package/src/core/log/logger-factory.ts +0 -119
- package/src/core/log/logger.ts +0 -42
- package/src/core/messages/body.ts +0 -171
- package/src/core/messages/digest-authentication.ts +0 -190
- package/src/core/messages/incoming-message.ts +0 -152
- package/src/core/messages/incoming-request-message.ts +0 -14
- package/src/core/messages/incoming-request.ts +0 -75
- package/src/core/messages/incoming-response-message.ts +0 -14
- package/src/core/messages/incoming-response.ts +0 -13
- package/src/core/messages/index.ts +0 -18
- package/src/core/messages/md5.ts +0 -437
- package/src/core/messages/methods/ack.ts +0 -22
- package/src/core/messages/methods/bye.ts +0 -22
- package/src/core/messages/methods/cancel.ts +0 -22
- package/src/core/messages/methods/constants.ts +0 -21
- package/src/core/messages/methods/index.ts +0 -13
- package/src/core/messages/methods/info.ts +0 -22
- package/src/core/messages/methods/invite.ts +0 -104
- package/src/core/messages/methods/message.ts +0 -22
- package/src/core/messages/methods/notify.ts +0 -22
- package/src/core/messages/methods/prack.ts +0 -22
- package/src/core/messages/methods/publish.ts +0 -22
- package/src/core/messages/methods/refer.ts +0 -22
- package/src/core/messages/methods/register.ts +0 -22
- package/src/core/messages/methods/subscribe.ts +0 -59
- package/src/core/messages/outgoing-request-message.ts +0 -299
- package/src/core/messages/outgoing-request.ts +0 -77
- package/src/core/messages/outgoing-response.ts +0 -174
- package/src/core/messages/parser.ts +0 -265
- package/src/core/messages/utils.ts +0 -144
- package/src/core/session/index.ts +0 -2
- package/src/core/session/session-delegate.ts +0 -88
- package/src/core/session/session.ts +0 -158
- package/src/core/subscription/index.ts +0 -2
- package/src/core/subscription/subscription-delegate.ts +0 -30
- package/src/core/subscription/subscription.ts +0 -61
- package/src/core/timers.ts +0 -24
- package/src/core/transactions/client-transaction.ts +0 -78
- package/src/core/transactions/index.ts +0 -10
- package/src/core/transactions/invite-client-transaction.ts +0 -504
- package/src/core/transactions/invite-server-transaction.ts +0 -432
- package/src/core/transactions/non-invite-client-transaction.ts +0 -257
- package/src/core/transactions/non-invite-server-transaction.ts +0 -241
- package/src/core/transactions/server-transaction.ts +0 -47
- package/src/core/transactions/transaction-state.ts +0 -13
- package/src/core/transactions/transaction-user.ts +0 -82
- package/src/core/transactions/transaction.ts +0 -149
- package/src/core/transport.ts +0 -32
- package/src/core/user-agent-core/allowed-methods.ts +0 -19
- package/src/core/user-agent-core/index.ts +0 -3
- package/src/core/user-agent-core/user-agent-core-configuration.ts +0 -111
- package/src/core/user-agent-core/user-agent-core-delegate.ts +0 -50
- package/src/core/user-agent-core/user-agent-core.ts +0 -905
- package/src/core/user-agents/bye-user-agent-client.ts +0 -16
- package/src/core/user-agents/bye-user-agent-server.ts +0 -14
- package/src/core/user-agents/cancel-user-agent-client.ts +0 -14
- package/src/core/user-agents/index.ts +0 -26
- package/src/core/user-agents/info-user-agent-client.ts +0 -15
- package/src/core/user-agents/info-user-agent-server.ts +0 -14
- package/src/core/user-agents/invite-user-agent-client.ts +0 -405
- package/src/core/user-agents/invite-user-agent-server.ts +0 -269
- package/src/core/user-agents/message-user-agent-client.ts +0 -14
- package/src/core/user-agents/message-user-agent-server.ts +0 -14
- package/src/core/user-agents/notify-user-agent-client.ts +0 -15
- package/src/core/user-agents/notify-user-agent-server.ts +0 -30
- package/src/core/user-agents/prack-user-agent-client.ts +0 -16
- package/src/core/user-agents/prack-user-agent-server.ts +0 -37
- package/src/core/user-agents/publish-user-agent-client.ts +0 -14
- package/src/core/user-agents/re-invite-user-agent-client.ts +0 -127
- package/src/core/user-agents/re-invite-user-agent-server.ts +0 -109
- package/src/core/user-agents/re-subscribe-user-agent-client.ts +0 -78
- package/src/core/user-agents/re-subscribe-user-agent-server.ts +0 -14
- package/src/core/user-agents/refer-user-agent-client.ts +0 -15
- package/src/core/user-agents/refer-user-agent-server.ts +0 -30
- package/src/core/user-agents/register-user-agent-client.ts +0 -14
- package/src/core/user-agents/register-user-agent-server.ts +0 -14
- package/src/core/user-agents/subscribe-user-agent-client.ts +0 -341
- package/src/core/user-agents/subscribe-user-agent-server.ts +0 -14
- package/src/core/user-agents/user-agent-client.ts +0 -378
- package/src/core/user-agents/user-agent-server.ts +0 -276
- package/src/grammar/grammar.ts +0 -55
- package/src/grammar/index.ts +0 -4
- package/src/grammar/name-addr-header.ts +0 -58
- package/src/grammar/parameters.ts +0 -45
- package/src/grammar/pegjs/README.md +0 -9
- package/src/grammar/pegjs/dist/grammar.ts +0 -1557
- package/src/grammar/pegjs/src/grammar.pegjs +0 -1009
- package/src/grammar/uri.ts +0 -370
- package/src/main.ts +0 -26
- package/src/new-index.ts +0 -2486
- package/src/platform/react/README.md +0 -1
- package/src/platform/web/index.ts +0 -4
- package/src/platform/web/modifiers/index.ts +0 -5
- package/src/platform/web/modifiers/modifiers.ts +0 -180
- package/src/platform/web/session-description-handler/api-extractor.json +0 -358
- package/src/platform/web/session-description-handler/index.ts +0 -14
- package/src/platform/web/session-description-handler/media-stream-factory-default.ts +0 -22
- package/src/platform/web/session-description-handler/media-stream-factory.ts +0 -10
- package/src/platform/web/session-description-handler/peer-connection-configuration-default.ts +0 -17
- package/src/platform/web/session-description-handler/peer-connection-delegate.ts +0 -72
- package/src/platform/web/session-description-handler/session-description-handler-configuration.ts +0 -17
- package/src/platform/web/session-description-handler/session-description-handler-factory-default.ts +0 -45
- package/src/platform/web/session-description-handler/session-description-handler-factory-options.ts +0 -10
- package/src/platform/web/session-description-handler/session-description-handler-factory.ts +0 -17
- package/src/platform/web/session-description-handler/session-description-handler-options.ts +0 -56
- package/src/platform/web/session-description-handler/session-description-handler.ts +0 -938
- package/src/platform/web/simple-user/api-extractor.json +0 -358
- package/src/platform/web/simple-user/index.ts +0 -7
- package/src/platform/web/simple-user/simple-user-delegate.ts +0 -82
- package/src/platform/web/simple-user/simple-user-options.ts +0 -102
- package/src/platform/web/simple-user/simple-user.ts +0 -1099
- package/src/platform/web/transport/api-extractor.json +0 -358
- package/src/platform/web/transport/index.ts +0 -6
- package/src/platform/web/transport/transport-options.ts +0 -34
- package/src/platform/web/transport/transport.ts +0 -742
- package/src/version.ts +0 -8
- package/src/webPhoneSdk.ts +0 -67
- package/src/webrtc.ts +0 -318
- /package/dist/{config.d.ts → types/config.d.ts} +0 -0
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
import { Session } from "../../session";
|
|
2
|
-
import { IncomingRequest } from "../incoming-request";
|
|
3
|
-
import { IncomingResponse } from "../incoming-response";
|
|
4
|
-
import { OutgoingRequest, OutgoingRequestDelegate, RequestOptions } from "../outgoing-request";
|
|
5
|
-
import { OutgoingResponse, ResponseOptions } from "../outgoing-response";
|
|
6
|
-
import { OutgoingAckRequest } from "./ack";
|
|
7
|
-
import { OutgoingPrackRequest } from "./prack";
|
|
8
|
-
|
|
9
|
-
////////////////////
|
|
10
|
-
// Incoming INVITE
|
|
11
|
-
//
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Incoming INVITE request.
|
|
15
|
-
* @public
|
|
16
|
-
*/
|
|
17
|
-
export interface IncomingInviteRequest extends IncomingRequest {
|
|
18
|
-
/**
|
|
19
|
-
* Send a 2xx positive final response to this request. Defaults to 200.
|
|
20
|
-
* @param options - Response options bucket.
|
|
21
|
-
* @returns Outgoing response and a confirmed Session.
|
|
22
|
-
*/
|
|
23
|
-
accept(options?: ResponseOptions): OutgoingResponseWithSession;
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Send a 1xx provisional response to this request. Defaults to 180. Excludes 100.
|
|
27
|
-
* @param options - Response options bucket.
|
|
28
|
-
* @returns Outgoing response and an early Session.
|
|
29
|
-
*/
|
|
30
|
-
progress(options?: ResponseOptions): OutgoingResponseWithSession;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Outgoing INVITE response with the associated {@link Session}.
|
|
35
|
-
* @public
|
|
36
|
-
*/
|
|
37
|
-
export interface OutgoingResponseWithSession extends OutgoingResponse {
|
|
38
|
-
/**
|
|
39
|
-
* Session associated with incoming request acceptance, or
|
|
40
|
-
* Session associated with incoming request progress (if an out of dialog request, an early dialog).
|
|
41
|
-
*/
|
|
42
|
-
readonly session: Session;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
////////////////////
|
|
46
|
-
// Outgoing INVITE
|
|
47
|
-
//
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Outgoing INVITE request.
|
|
51
|
-
* @public
|
|
52
|
-
*/
|
|
53
|
-
export interface OutgoingInviteRequest extends OutgoingRequest {
|
|
54
|
-
/** Delegate providing custom handling of this outgoing INVITE request. */
|
|
55
|
-
delegate?: OutgoingInviteRequestDelegate;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Delegate providing custom handling of outgoing INVITE requests.
|
|
60
|
-
* @public
|
|
61
|
-
*/
|
|
62
|
-
export interface OutgoingInviteRequestDelegate extends OutgoingRequestDelegate {
|
|
63
|
-
/**
|
|
64
|
-
* Received a 2xx positive final response to this request.
|
|
65
|
-
* @param response - Incoming response (including a confirmed Session).
|
|
66
|
-
*/
|
|
67
|
-
onAccept?(response: AckableIncomingResponseWithSession): void;
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* Received a 1xx provisional response to this request. Excluding 100 responses.
|
|
71
|
-
* @param response - Incoming response (including an early Session).
|
|
72
|
-
*/
|
|
73
|
-
onProgress?(response: PrackableIncomingResponseWithSession): void;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Incoming INVITE response received when request is accepted.
|
|
78
|
-
* @public
|
|
79
|
-
*/
|
|
80
|
-
export interface AckableIncomingResponseWithSession extends IncomingResponse {
|
|
81
|
-
/** Session associated with outgoing request acceptance. */
|
|
82
|
-
readonly session: Session;
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* Send an ACK to acknowledge this response.
|
|
86
|
-
* @param options - Request options bucket.
|
|
87
|
-
*/
|
|
88
|
-
ack(options?: RequestOptions): OutgoingAckRequest;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Incoming INVITE response received when request is progressed.
|
|
93
|
-
* @public
|
|
94
|
-
*/
|
|
95
|
-
export interface PrackableIncomingResponseWithSession extends IncomingResponse {
|
|
96
|
-
/** Session associated with outgoing request progress. If out of dialog request, an early dialog. */
|
|
97
|
-
readonly session: Session;
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* Send an PRACK to acknowledge this response.
|
|
101
|
-
* @param options - Request options bucket.
|
|
102
|
-
*/
|
|
103
|
-
prack(options?: RequestOptions): OutgoingPrackRequest;
|
|
104
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-empty-interface */
|
|
2
|
-
import { IncomingRequest } from "../incoming-request";
|
|
3
|
-
import { IncomingResponse } from "../incoming-response";
|
|
4
|
-
import { OutgoingRequest } from "../outgoing-request";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Incoming MESSAGE request.
|
|
8
|
-
* @public
|
|
9
|
-
*/
|
|
10
|
-
export interface IncomingMessageRequest extends IncomingRequest {}
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Incoming MESSAGE response.
|
|
14
|
-
* @public
|
|
15
|
-
*/
|
|
16
|
-
export interface IncomingMessageResponse extends IncomingResponse {}
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Outgoing MESSAGE request.
|
|
20
|
-
* @public
|
|
21
|
-
*/
|
|
22
|
-
export interface OutgoingMessageRequest extends OutgoingRequest {}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-empty-interface */
|
|
2
|
-
import { IncomingRequest } from "../incoming-request";
|
|
3
|
-
import { IncomingResponse } from "../incoming-response";
|
|
4
|
-
import { OutgoingRequest } from "../outgoing-request";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Incoming NOTIFY request.
|
|
8
|
-
* @public
|
|
9
|
-
*/
|
|
10
|
-
export interface IncomingNotifyRequest extends IncomingRequest {}
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Incoming NOTIFY response.
|
|
14
|
-
* @public
|
|
15
|
-
*/
|
|
16
|
-
export interface IncomingNotifyResponse extends IncomingResponse {}
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Outgoing NOTIFY request.
|
|
20
|
-
* @public
|
|
21
|
-
*/
|
|
22
|
-
export interface OutgoingNotifyRequest extends OutgoingRequest {}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-empty-interface */
|
|
2
|
-
import { IncomingRequest } from "../incoming-request";
|
|
3
|
-
import { IncomingResponse } from "../incoming-response";
|
|
4
|
-
import { OutgoingRequest } from "../outgoing-request";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Incoming PRACK request.
|
|
8
|
-
* @public
|
|
9
|
-
*/
|
|
10
|
-
export interface IncomingPrackRequest extends IncomingRequest {}
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Incoming PRACK response.
|
|
14
|
-
* @public
|
|
15
|
-
*/
|
|
16
|
-
export interface IncomingPrackResponse extends IncomingResponse {}
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Outgoing PRACK request.
|
|
20
|
-
* @public
|
|
21
|
-
*/
|
|
22
|
-
export interface OutgoingPrackRequest extends OutgoingRequest {}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-empty-interface */
|
|
2
|
-
import { IncomingRequest } from "../incoming-request";
|
|
3
|
-
import { IncomingResponse } from "../incoming-response";
|
|
4
|
-
import { OutgoingRequest } from "../outgoing-request";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Incoming PUBLISH request.
|
|
8
|
-
* @public
|
|
9
|
-
*/
|
|
10
|
-
export interface IncomingPublishRequest extends IncomingRequest {}
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Incoming PUBLISH response.
|
|
14
|
-
* @public
|
|
15
|
-
*/
|
|
16
|
-
export interface IncomingPublishResponse extends IncomingResponse {}
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Outgoing PUBLISH request.
|
|
20
|
-
* @public
|
|
21
|
-
*/
|
|
22
|
-
export interface OutgoingPublishRequest extends OutgoingRequest {}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-empty-interface */
|
|
2
|
-
import { IncomingRequest } from "../incoming-request";
|
|
3
|
-
import { IncomingResponse } from "../incoming-response";
|
|
4
|
-
import { OutgoingRequest } from "../outgoing-request";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Incoming REFER request.
|
|
8
|
-
* @public
|
|
9
|
-
*/
|
|
10
|
-
export interface IncomingReferRequest extends IncomingRequest {}
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Incoming REFER response.
|
|
14
|
-
* @public
|
|
15
|
-
*/
|
|
16
|
-
export interface IncomingReferResponse extends IncomingResponse {}
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Outgoing REFER request.
|
|
20
|
-
* @public
|
|
21
|
-
*/
|
|
22
|
-
export interface OutgoingReferRequest extends OutgoingRequest {}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-empty-interface */
|
|
2
|
-
import { IncomingRequest } from "../incoming-request";
|
|
3
|
-
import { IncomingResponse } from "../incoming-response";
|
|
4
|
-
import { OutgoingRequest } from "../outgoing-request";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Incoming REGISTER request.
|
|
8
|
-
* @public
|
|
9
|
-
*/
|
|
10
|
-
export interface IncomingRegisterRequest extends IncomingRequest {}
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Incoming REGISTER response.
|
|
14
|
-
* @public
|
|
15
|
-
*/
|
|
16
|
-
export interface IncomingRegisterResponse extends IncomingResponse {}
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Outgoing REGISTER request.
|
|
20
|
-
* @public
|
|
21
|
-
*/
|
|
22
|
-
export interface OutgoingRegisterRequest extends OutgoingRequest {}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-empty-interface */
|
|
2
|
-
import { Subscription } from "../../subscription";
|
|
3
|
-
import { IncomingRequest } from "../incoming-request";
|
|
4
|
-
import { IncomingResponse } from "../incoming-response";
|
|
5
|
-
import { OutgoingRequest, OutgoingRequestDelegate } from "../outgoing-request";
|
|
6
|
-
import { IncomingNotifyRequest } from "./notify";
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* Incoming SUBSCRIBE request.
|
|
10
|
-
* @public
|
|
11
|
-
*/
|
|
12
|
-
export interface IncomingSubscribeRequest extends IncomingRequest {}
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Incoming SUBSCRIBE response.
|
|
16
|
-
* @public
|
|
17
|
-
*/
|
|
18
|
-
export interface IncomingSubscribeResponse extends IncomingResponse {}
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* Outgoing SUBSCRIBE request.
|
|
22
|
-
* @public
|
|
23
|
-
*/
|
|
24
|
-
export interface OutgoingSubscribeRequest extends OutgoingRequest {
|
|
25
|
-
/** Delegate providing custom handling of this outgoing SUBSCRIBE request. */
|
|
26
|
-
delegate?: OutgoingSubscribeRequestDelegate;
|
|
27
|
-
/** Stop waiting for an inital subscription creating NOTIFY. */
|
|
28
|
-
waitNotifyStop(): void;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Delegate providing custom handling of outgoing SUBSCRIBE requests.
|
|
33
|
-
* @public
|
|
34
|
-
*/
|
|
35
|
-
export interface OutgoingSubscribeRequestDelegate extends OutgoingRequestDelegate {
|
|
36
|
-
/**
|
|
37
|
-
* Received the initial subscription creating NOTIFY in response to this request.
|
|
38
|
-
* Called for out of dialog SUBSCRIBE requests only (not called for re-SUBSCRIBE requests).
|
|
39
|
-
* @param request - Incoming NOTIFY request (including a Subscription).
|
|
40
|
-
*/
|
|
41
|
-
onNotify?(request: IncomingRequestWithSubscription): void;
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Timed out waiting to receive the initial subscription creating NOTIFY in response to this request.
|
|
45
|
-
* Called for out of dialog SUBSCRIBE requests only (not called for re-SUBSCRIBE requests).
|
|
46
|
-
*/
|
|
47
|
-
onNotifyTimeout?(): void;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Incoming NOTIFY request with associated {@link Subscription}.
|
|
52
|
-
* @public
|
|
53
|
-
*/
|
|
54
|
-
export interface IncomingRequestWithSubscription {
|
|
55
|
-
/** The NOTIFY request which established the subscription. */
|
|
56
|
-
readonly request: IncomingNotifyRequest;
|
|
57
|
-
/** If subscription state is not "terminated", then the subscription. Otherwise undefined. */
|
|
58
|
-
readonly subscription?: Subscription;
|
|
59
|
-
}
|
|
@@ -1,299 +0,0 @@
|
|
|
1
|
-
import { NameAddrHeader, URI } from "../../grammar";
|
|
2
|
-
import { Body } from "./body";
|
|
3
|
-
import { createRandomToken, headerize, newTag, utf8Length } from "./utils";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Outgoing request message options.
|
|
7
|
-
* @public
|
|
8
|
-
*/
|
|
9
|
-
export interface OutgoingRequestMessageOptions {
|
|
10
|
-
callId?: string;
|
|
11
|
-
callIdPrefix?: string;
|
|
12
|
-
cseq?: number;
|
|
13
|
-
toDisplayName?: string;
|
|
14
|
-
toTag?: string;
|
|
15
|
-
fromDisplayName?: string;
|
|
16
|
-
fromTag?: string;
|
|
17
|
-
forceRport?: boolean;
|
|
18
|
-
hackViaTcp?: boolean;
|
|
19
|
-
optionTags?: Array<string>;
|
|
20
|
-
routeSet?: Array<string>;
|
|
21
|
-
userAgentString?: string;
|
|
22
|
-
viaHost?: string;
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Outgoing SIP request message.
|
|
27
|
-
* @public
|
|
28
|
-
*/
|
|
29
|
-
export class OutgoingRequestMessage {
|
|
30
|
-
public readonly headers: { [name: string]: Array<string> } = {};
|
|
31
|
-
|
|
32
|
-
public readonly method: string;
|
|
33
|
-
public readonly ruri: URI;
|
|
34
|
-
public readonly from: NameAddrHeader;
|
|
35
|
-
public readonly fromTag: string;
|
|
36
|
-
public readonly fromURI: URI;
|
|
37
|
-
public readonly to: NameAddrHeader;
|
|
38
|
-
public readonly toTag: string | undefined;
|
|
39
|
-
public readonly toURI: URI;
|
|
40
|
-
public branch: string | undefined;
|
|
41
|
-
public readonly callId: string;
|
|
42
|
-
public cseq: number;
|
|
43
|
-
public extraHeaders: Array<string> = [];
|
|
44
|
-
public body: { body: string; contentType: string } | undefined;
|
|
45
|
-
|
|
46
|
-
private options: Required<OutgoingRequestMessageOptions>;
|
|
47
|
-
|
|
48
|
-
constructor(
|
|
49
|
-
method: string,
|
|
50
|
-
ruri: URI,
|
|
51
|
-
fromURI: URI,
|
|
52
|
-
toURI: URI,
|
|
53
|
-
options?: OutgoingRequestMessageOptions,
|
|
54
|
-
extraHeaders?: Array<string>,
|
|
55
|
-
body?: Body
|
|
56
|
-
) {
|
|
57
|
-
// Initialize default options
|
|
58
|
-
this.options = OutgoingRequestMessage.getDefaultOptions();
|
|
59
|
-
|
|
60
|
-
// Options - merge a deep copy
|
|
61
|
-
if (options) {
|
|
62
|
-
this.options = {
|
|
63
|
-
...this.options,
|
|
64
|
-
...options
|
|
65
|
-
};
|
|
66
|
-
if (this.options.optionTags && this.options.optionTags.length) {
|
|
67
|
-
this.options.optionTags = this.options.optionTags.slice();
|
|
68
|
-
}
|
|
69
|
-
if (this.options.routeSet && this.options.routeSet.length) {
|
|
70
|
-
this.options.routeSet = this.options.routeSet.slice();
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
// Extra headers - deep copy
|
|
75
|
-
if (extraHeaders && extraHeaders.length) {
|
|
76
|
-
this.extraHeaders = extraHeaders.slice();
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
// Body - deep copy
|
|
80
|
-
if (body) {
|
|
81
|
-
// TODO: internal representation should be Body
|
|
82
|
-
// this.body = { ...body };
|
|
83
|
-
this.body = {
|
|
84
|
-
body: body.content,
|
|
85
|
-
contentType: body.contentType
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
// Method
|
|
90
|
-
this.method = method;
|
|
91
|
-
|
|
92
|
-
// RURI
|
|
93
|
-
this.ruri = ruri.clone();
|
|
94
|
-
|
|
95
|
-
// From
|
|
96
|
-
this.fromURI = fromURI.clone();
|
|
97
|
-
this.fromTag = this.options.fromTag ? this.options.fromTag : newTag();
|
|
98
|
-
this.from = OutgoingRequestMessage.makeNameAddrHeader(this.fromURI, this.options.fromDisplayName, this.fromTag);
|
|
99
|
-
|
|
100
|
-
// To
|
|
101
|
-
this.toURI = toURI.clone();
|
|
102
|
-
this.toTag = this.options.toTag;
|
|
103
|
-
this.to = OutgoingRequestMessage.makeNameAddrHeader(this.toURI, this.options.toDisplayName, this.toTag);
|
|
104
|
-
|
|
105
|
-
// Call-ID
|
|
106
|
-
this.callId = this.options.callId ? this.options.callId : this.options.callIdPrefix + createRandomToken(15);
|
|
107
|
-
|
|
108
|
-
// CSeq
|
|
109
|
-
this.cseq = this.options.cseq;
|
|
110
|
-
|
|
111
|
-
// The relative order of header fields with different field names is not
|
|
112
|
-
// significant. However, it is RECOMMENDED that header fields which are
|
|
113
|
-
// needed for proxy processing (Via, Route, Record-Route, Proxy-Require,
|
|
114
|
-
// Max-Forwards, and Proxy-Authorization, for example) appear towards
|
|
115
|
-
// the top of the message to facilitate rapid parsing.
|
|
116
|
-
// https://tools.ietf.org/html/rfc3261#section-7.3.1
|
|
117
|
-
this.setHeader("route", this.options.routeSet);
|
|
118
|
-
this.setHeader("via", "");
|
|
119
|
-
this.setHeader("to", this.to.toString());
|
|
120
|
-
this.setHeader("from", this.from.toString());
|
|
121
|
-
this.setHeader("cseq", this.cseq + " " + this.method);
|
|
122
|
-
this.setHeader("call-id", this.callId);
|
|
123
|
-
this.setHeader("max-forwards", "70");
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
/** Get a copy of the default options. */
|
|
127
|
-
private static getDefaultOptions(): Required<OutgoingRequestMessageOptions> {
|
|
128
|
-
return {
|
|
129
|
-
callId: "",
|
|
130
|
-
callIdPrefix: "",
|
|
131
|
-
cseq: 1,
|
|
132
|
-
toDisplayName: "",
|
|
133
|
-
toTag: "",
|
|
134
|
-
fromDisplayName: "",
|
|
135
|
-
fromTag: "",
|
|
136
|
-
forceRport: false,
|
|
137
|
-
hackViaTcp: false,
|
|
138
|
-
optionTags: ["outbound"],
|
|
139
|
-
routeSet: [],
|
|
140
|
-
userAgentString: "sip.js",
|
|
141
|
-
viaHost: ""
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
private static makeNameAddrHeader(uri: URI, displayName: string, tag: string): NameAddrHeader {
|
|
146
|
-
const parameters: { [name: string]: string } = {};
|
|
147
|
-
if (tag) {
|
|
148
|
-
parameters.tag = tag;
|
|
149
|
-
}
|
|
150
|
-
return new NameAddrHeader(uri, displayName, parameters);
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
/**
|
|
154
|
-
* Get the value of the given header name at the given position.
|
|
155
|
-
* @param name - header name
|
|
156
|
-
* @returns Returns the specified header, undefined if header doesn't exist.
|
|
157
|
-
*/
|
|
158
|
-
public getHeader(name: string): string | undefined {
|
|
159
|
-
const header: Array<string> = this.headers[headerize(name)];
|
|
160
|
-
if (header) {
|
|
161
|
-
if (header[0]) {
|
|
162
|
-
return header[0];
|
|
163
|
-
}
|
|
164
|
-
} else {
|
|
165
|
-
const regexp = new RegExp("^\\s*" + name + "\\s*:", "i");
|
|
166
|
-
for (const exHeader of this.extraHeaders) {
|
|
167
|
-
if (regexp.test(exHeader)) {
|
|
168
|
-
return exHeader.substring(exHeader.indexOf(":") + 1).trim();
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
return;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
/**
|
|
177
|
-
* Get the header/s of the given name.
|
|
178
|
-
* @param name - header name
|
|
179
|
-
* @returns Array with all the headers of the specified name.
|
|
180
|
-
*/
|
|
181
|
-
public getHeaders(name: string): Array<string> {
|
|
182
|
-
const result: Array<string> = [];
|
|
183
|
-
const headerArray: Array<string> = this.headers[headerize(name)];
|
|
184
|
-
|
|
185
|
-
if (headerArray) {
|
|
186
|
-
for (const headerPart of headerArray) {
|
|
187
|
-
result.push(headerPart);
|
|
188
|
-
}
|
|
189
|
-
} else {
|
|
190
|
-
const regexp = new RegExp("^\\s*" + name + "\\s*:", "i");
|
|
191
|
-
for (const exHeader of this.extraHeaders) {
|
|
192
|
-
if (regexp.test(exHeader)) {
|
|
193
|
-
result.push(exHeader.substring(exHeader.indexOf(":") + 1).trim());
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
return result;
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
/**
|
|
201
|
-
* Verify the existence of the given header.
|
|
202
|
-
* @param name - header name
|
|
203
|
-
* @returns true if header with given name exists, false otherwise
|
|
204
|
-
*/
|
|
205
|
-
public hasHeader(name: string): boolean {
|
|
206
|
-
if (this.headers[headerize(name)]) {
|
|
207
|
-
return true;
|
|
208
|
-
} else {
|
|
209
|
-
const regexp = new RegExp("^\\s*" + name + "\\s*:", "i");
|
|
210
|
-
for (const extraHeader of this.extraHeaders) {
|
|
211
|
-
if (regexp.test(extraHeader)) {
|
|
212
|
-
return true;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
return false;
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
/**
|
|
221
|
-
* Replace the the given header by the given value.
|
|
222
|
-
* @param name - header name
|
|
223
|
-
* @param value - header value
|
|
224
|
-
*/
|
|
225
|
-
public setHeader(name: string, value: string | Array<string>): void {
|
|
226
|
-
this.headers[headerize(name)] = value instanceof Array ? value : [value];
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
/**
|
|
230
|
-
* The Via header field indicates the transport used for the transaction
|
|
231
|
-
* and identifies the location where the response is to be sent. A Via
|
|
232
|
-
* header field value is added only after the transport that will be
|
|
233
|
-
* used to reach the next hop has been selected (which may involve the
|
|
234
|
-
* usage of the procedures in [4]).
|
|
235
|
-
*
|
|
236
|
-
* When the UAC creates a request, it MUST insert a Via into that
|
|
237
|
-
* request. The protocol name and protocol version in the header field
|
|
238
|
-
* MUST be SIP and 2.0, respectively. The Via header field value MUST
|
|
239
|
-
* contain a branch parameter. This parameter is used to identify the
|
|
240
|
-
* transaction created by that request. This parameter is used by both
|
|
241
|
-
* the client and the server.
|
|
242
|
-
* https://tools.ietf.org/html/rfc3261#section-8.1.1.7
|
|
243
|
-
* @param branchParameter - The branch parameter.
|
|
244
|
-
* @param transport - The sent protocol transport.
|
|
245
|
-
*/
|
|
246
|
-
public setViaHeader(branch: string, transport: string): void {
|
|
247
|
-
// FIXME: Hack
|
|
248
|
-
if (this.options.hackViaTcp) {
|
|
249
|
-
transport = "TCP";
|
|
250
|
-
}
|
|
251
|
-
let via = "SIP/2.0/" + transport;
|
|
252
|
-
via += " " + this.options.viaHost + ";branch=" + branch;
|
|
253
|
-
if (this.options.forceRport) {
|
|
254
|
-
via += ";rport";
|
|
255
|
-
}
|
|
256
|
-
this.setHeader("via", via);
|
|
257
|
-
this.branch = branch;
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
public toString(): string {
|
|
261
|
-
let msg = "";
|
|
262
|
-
|
|
263
|
-
msg += this.method + " " + this.ruri.toRaw() + " SIP/2.0\r\n";
|
|
264
|
-
|
|
265
|
-
for (const header in this.headers) {
|
|
266
|
-
if (this.headers[header]) {
|
|
267
|
-
for (const headerPart of this.headers[header]) {
|
|
268
|
-
msg += header + ": " + headerPart + "\r\n";
|
|
269
|
-
}
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
|
|
273
|
-
for (const header of this.extraHeaders) {
|
|
274
|
-
msg += header.trim() + "\r\n";
|
|
275
|
-
}
|
|
276
|
-
|
|
277
|
-
msg += "Supported: " + this.options.optionTags.join(", ") + "\r\n";
|
|
278
|
-
msg += "User-Agent: " + this.options.userAgentString + "\r\n";
|
|
279
|
-
|
|
280
|
-
if (this.body) {
|
|
281
|
-
if (typeof this.body === "string") {
|
|
282
|
-
msg += "Content-Length: " + utf8Length(this.body) + "\r\n\r\n";
|
|
283
|
-
msg += this.body;
|
|
284
|
-
} else {
|
|
285
|
-
if (this.body.body && this.body.contentType) {
|
|
286
|
-
msg += "Content-Type: " + this.body.contentType + "\r\n";
|
|
287
|
-
msg += "Content-Length: " + utf8Length(this.body.body) + "\r\n\r\n";
|
|
288
|
-
msg += this.body.body;
|
|
289
|
-
} else {
|
|
290
|
-
msg += "Content-Length: " + 0 + "\r\n\r\n";
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
} else {
|
|
294
|
-
msg += "Content-Length: " + 0 + "\r\n\r\n";
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
return msg;
|
|
298
|
-
}
|
|
299
|
-
}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { Body } from "./body";
|
|
2
|
-
import { IncomingResponse } from "./incoming-response";
|
|
3
|
-
import { OutgoingRequestMessage } from "./outgoing-request-message";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* A SIP message sent from a local client to a remote server.
|
|
7
|
-
* @remarks
|
|
8
|
-
* For the purpose of invoking a particular operation.
|
|
9
|
-
* https://tools.ietf.org/html/rfc3261#section-7.1
|
|
10
|
-
* @public
|
|
11
|
-
*/
|
|
12
|
-
export interface OutgoingRequest {
|
|
13
|
-
/** Delegate providing custom handling of this outgoing request. */
|
|
14
|
-
delegate?: OutgoingRequestDelegate;
|
|
15
|
-
|
|
16
|
-
/** The outgoing message. */
|
|
17
|
-
readonly message: OutgoingRequestMessage;
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Destroy request.
|
|
21
|
-
*/
|
|
22
|
-
dispose(): void;
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Sends a CANCEL message targeting this request to the UAS.
|
|
26
|
-
* @param reason - Reason for canceling request.
|
|
27
|
-
* @param options - Request options bucket.
|
|
28
|
-
*/
|
|
29
|
-
cancel(reason?: string, options?: RequestOptions): void;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Delegate providing custom handling of outgoing requests.
|
|
34
|
-
* @public
|
|
35
|
-
*/
|
|
36
|
-
export interface OutgoingRequestDelegate {
|
|
37
|
-
/**
|
|
38
|
-
* Received a 2xx positive final response to this request.
|
|
39
|
-
* @param response - Incoming response.
|
|
40
|
-
*/
|
|
41
|
-
onAccept?(response: IncomingResponse): void;
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Received a 1xx provisional response to this request. Excluding 100 responses.
|
|
45
|
-
* @param response - Incoming response.
|
|
46
|
-
*/
|
|
47
|
-
onProgress?(response: IncomingResponse): void;
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Received a 3xx negative final response to this request.
|
|
51
|
-
* @param response - Incoming response.
|
|
52
|
-
*/
|
|
53
|
-
onRedirect?(response: IncomingResponse): void;
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Received a 4xx, 5xx, or 6xx negative final response to this request.
|
|
57
|
-
* @param response - Incoming response.
|
|
58
|
-
*/
|
|
59
|
-
onReject?(response: IncomingResponse): void;
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Received a 100 provisional response.
|
|
63
|
-
* @param response - Incoming response.
|
|
64
|
-
*/
|
|
65
|
-
onTrying?(response: IncomingResponse): void;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Request options bucket.
|
|
70
|
-
* @public
|
|
71
|
-
*/
|
|
72
|
-
export interface RequestOptions {
|
|
73
|
-
/** Extra headers to include in the message. */
|
|
74
|
-
extraHeaders?: Array<string>;
|
|
75
|
-
/** Body to include in the message. */
|
|
76
|
-
body?: Body;
|
|
77
|
-
}
|