sip-lab 1.7.0 → 1.7.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sip-lab",
3
- "version": "1.7.0",
3
+ "version": "1.7.1",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "engines": {
@@ -22,9 +22,9 @@
22
22
  "node-gyp": "^8.4.1"
23
23
  },
24
24
  "devDependencies": {
25
- "data-matching": "^1.23.7",
26
- "sip-matching": "^1.3.12",
27
- "string-matching": "^1.11.8",
25
+ "data-matching": "^1.23.8",
26
+ "sip-matching": "^1.3.13",
27
+ "string-matching": "^1.11.9",
28
28
  "zester": "^4.1.1"
29
29
  }
30
30
  }
@@ -0,0 +1,138 @@
1
+ var sip = require ('../index.js')
2
+ var Zester = require('zester')
3
+ var z = new Zester()
4
+ var m = require('data-matching')
5
+ var sip_msg = require('sip-matching')
6
+
7
+ async function test() {
8
+ //sip.set_log_level(6)
9
+ sip.dtmf_aggregation_on(500)
10
+
11
+ z.trap_events(sip.event_source, 'event', (evt) => {
12
+ var e = evt.args[0]
13
+ return e
14
+ })
15
+
16
+ console.log(sip.start((data) => { console.log(data)} ))
17
+
18
+ t1 = sip.transport.create("127.0.0.1", 5090, 1)
19
+ t2 = sip.transport.create("127.0.0.1", 5092, 1)
20
+
21
+ console.log("t1", t1)
22
+ console.log("t2", t2)
23
+
24
+ var server = `${t2.ip}:${t2.port}`
25
+ var domain = 'test1.com'
26
+
27
+ var a1 = sip.account.create(t1.id, domain, server, 'user1', 'pass1')
28
+
29
+ sip.account.register(a1, true)
30
+
31
+ await z.wait([
32
+ {
33
+ event: 'non_dialog_request',
34
+ msg: sip_msg({
35
+ $rm: 'REGISTER',
36
+ $fU: 'user1',
37
+ $fd: domain,
38
+ $tU: 'user1',
39
+ $td: domain,
40
+ }),
41
+ },
42
+ ], 1000)
43
+
44
+ // sip-lab automatically replies with '200 OK' to non_dialog_request.
45
+
46
+ await z.wait([
47
+ {
48
+ event: 'registration_status',
49
+ account_id: a1.id,
50
+ code: 200,
51
+ reason: 'OK',
52
+ expires: 60
53
+ },
54
+ ], 1000)
55
+
56
+ const s1 = sip.subscription_create(t1.id, 'dialog', 'application/dialog-info+xml', '<sip:user1@test1.com>', '<sip:user1@test1.com>', 'sip:park1@test1.com', `sip:${server}`, 'test1.com', 'user1', 'user1')
57
+
58
+ sip.subscription_subscribe(s1, 120)
59
+
60
+ await z.wait([
61
+ {
62
+ event: 'request',
63
+ subscriber_id: m.collect('subscriber_id'),
64
+ msg: sip_msg({
65
+ $rm: 'SUBSCRIBE',
66
+ $ru: 'sip:park1@test1.com',
67
+ $fU: 'user1',
68
+ $fd: domain,
69
+ '$hdr(Event)': 'dialog',
70
+ '$hdr(Accept)': 'application/dialog-info+xml',
71
+ '$hdr(Allow-Events)': 'refer, dialog',
72
+ })
73
+ },
74
+ ], 1000)
75
+
76
+ var subscriber_id = z.store.subscriber_id
77
+
78
+ await z.wait([
79
+ {
80
+ event: 'response',
81
+ subscription_id: subscriber_id,
82
+ method: 'SUBSCRIBE',
83
+ msg: sip_msg({
84
+ $rs: '200',
85
+ $rr: 'OK',
86
+ })
87
+ },
88
+ ], 1000)
89
+
90
+ await z.wait([
91
+ {
92
+ subscription_id: s1,
93
+ msg: sip_msg({
94
+ $rm: 'NOTIFY',
95
+ '$hdr(Event)': 'dialog',
96
+ '$hdr(Subscription-State)': 'active;expires=120',
97
+ '$hdr(Allow-Events)': 'refer, dialog',
98
+ }),
99
+ },
100
+ ], 1000)
101
+
102
+ sip.account.unregister(a1)
103
+
104
+ await z.wait([
105
+ {
106
+ event: 'non_dialog_request',
107
+ msg: sip_msg({
108
+ $rm: 'REGISTER',
109
+ $fU: 'user1',
110
+ $fd: domain,
111
+ $tU: 'user1',
112
+ $td: domain,
113
+ }),
114
+ },
115
+ ], 1000)
116
+
117
+ await z.wait([
118
+ {
119
+ event: 'registration_status',
120
+ account_id: a1.id,
121
+ code: 200,
122
+ reason: 'OK',
123
+ expires: 0,
124
+ },
125
+ ], 1000)
126
+
127
+ console.log("Success")
128
+
129
+ sip.stop()
130
+ }
131
+
132
+
133
+ test()
134
+ .catch(e => {
135
+ console.error(e)
136
+ process.exit(1)
137
+ })
138
+
package/src/addon.cpp CHANGED
@@ -1209,7 +1209,7 @@ Napi::Value subscription_create(const Napi::CallbackInfo& info) {
1209
1209
  Napi::Value subscription_subscribe(const Napi::CallbackInfo& info) {
1210
1210
  Napi::Env env = info.Env();
1211
1211
 
1212
- if (info.Length() < 5) {
1212
+ if (info.Length() < 2) {
1213
1213
  Napi::Error::New(env, "Wrong number of arguments. Expected: subscription_id, expires [, additional_headers]").ThrowAsJavaScriptException();
1214
1214
  return env.Null();
1215
1215
  }