sip-lab 1.5.0 → 1.6.0

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.
@@ -4,276 +4,287 @@ var z = new Zester()
4
4
  var m = require('data-matching')
5
5
  var sip_msg = require('sip-matching')
6
6
 
7
- //sip.set_log_level(6)
8
- sip.dtmf_aggregation_on(500)
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
+ flags = 1 // late negotiation
25
+
26
+ oc = sip.call.create(t1.id, flags, 'sip:a@t', 'sip:b@127.0.0.1:5092')
27
+
28
+ await z.wait([
29
+ {
30
+ event: "incoming_call",
31
+ call_id: m.collect("call_id"),
32
+ },
33
+ {
34
+ event: 'response',
35
+ call_id: oc.id,
36
+ method: 'INVITE',
37
+ msg: sip_msg({
38
+ $rs: '100',
39
+ $rr: 'Trying',
40
+ '$(hdrcnt(via))': 1,
41
+ '$hdr(call-id)': m.collect('sip_call_id'),
42
+ $fU: 'a',
43
+ $fd: 't',
44
+ $tU: 'b',
45
+ '$hdr(l)': '0',
46
+ }),
47
+ },
48
+ ], 1000)
49
+
50
+ ic = {
51
+ id: z.store.call_id,
52
+ sip_call_id: z.store.sip_call_id,
53
+ }
54
+
55
+ sip.call.respond(ic.id, 200, 'OK')
56
+
57
+ await z.wait([
58
+ {
59
+ event: 'media_status',
60
+ call_id: oc.id,
61
+ status: 'setup_ok',
62
+ local_mode: 'sendrecv',
63
+ remote_mode: 'sendrecv',
64
+ },
65
+ {
66
+ event: 'media_status',
67
+ call_id: ic.id,
68
+ status: 'setup_ok',
69
+ local_mode: 'sendrecv',
70
+ remote_mode: 'sendrecv',
71
+ },
72
+ {
73
+ event: 'response',
74
+ call_id: oc.id,
75
+ method: 'INVITE',
76
+ msg: sip_msg({
77
+ $rs: '200',
78
+ $rr: 'OK',
79
+ '$(hdrcnt(VIA))': 1,
80
+ $fU: 'a',
81
+ $fd: 't',
82
+ $tU: 'b',
83
+ '$hdr(content-type)': 'application/sdp',
84
+ $rb: '!{_}a=sendrecv',
85
+ }),
86
+ },
87
+ ], 1000)
88
+
89
+ sip.call.send_dtmf(oc.id, '1234', 0)
90
+ sip.call.send_dtmf(ic.id, '4321', 1)
91
+
92
+ await z.wait([
93
+ {
94
+ event: 'dtmf',
95
+ call_id: ic.id,
96
+ digits: '1234',
97
+ mode: 0,
98
+ },
99
+ {
100
+ event: 'dtmf',
101
+ call_id: oc.id,
102
+ digits: '4321',
103
+ mode: 1,
104
+ },
105
+ ], 2000)
106
+
107
+
108
+ sip.call.reinvite(oc.id, true, flags)
109
+
110
+ await z.wait([
111
+ {
112
+ event: 'response',
113
+ call_id: oc.id,
114
+ method: 'INVITE',
115
+ msg: sip_msg({
116
+ $rs: '200',
117
+ $rr: 'OK',
118
+ $rb: '!{_}a=sendrecv',
119
+ }),
120
+ },
121
+ {
122
+ event: 'media_status',
123
+ call_id: oc.id,
124
+ status: 'setup_ok',
125
+ local_mode: 'sendonly',
126
+ remote_mode: 'sendrecv',
127
+ },
128
+ {
129
+ event: 'media_status',
130
+ call_id: ic.id,
131
+ status: 'setup_ok',
132
+ local_mode: 'recvonly',
133
+ remote_mode: 'sendonly',
134
+ },
135
+ ], 500)
136
+
137
+ sip.call.send_dtmf(oc.id, '1234', 0)
138
+ sip.call.send_dtmf(ic.id, '4321', 1) // This will not generate event 'dtmf'
139
+
140
+ await z.wait([
141
+ {
142
+ event: 'dtmf',
143
+ call_id: ic.id,
144
+ digits: '1234',
145
+ mode: 0,
146
+ },
147
+ ], 2000)
148
+
149
+ sip.call.reinvite(ic.id, false, flags)
150
+
151
+ await z.wait([
152
+ {
153
+ event: 'response',
154
+ call_id: ic.id,
155
+ method: 'INVITE',
156
+ msg: sip_msg({
157
+ $rs: '200',
158
+ $rr: 'OK',
159
+ $rb: '!{_}a=sendonly',
160
+ }),
161
+ },
162
+ {
163
+ event: 'media_status',
164
+ call_id: oc.id,
165
+ status: 'setup_ok',
166
+ local_mode: 'sendonly',
167
+ remote_mode: 'recvonly',
168
+ },
169
+ {
170
+ event: 'media_status',
171
+ call_id: ic.id,
172
+ status: 'setup_ok',
173
+ local_mode: 'recvonly',
174
+ remote_mode: 'sendonly',
175
+ },
176
+ ], 500)
177
+
178
+ sip.call.send_dtmf(oc.id, '1234', 0)
179
+ sip.call.send_dtmf(ic.id, '4321', 1) // This will not generate event 'dtmf'
180
+
181
+ await z.wait([
182
+ {
183
+ event: 'dtmf',
184
+ call_id: ic.id,
185
+ digits: '1234',
186
+ mode: 0,
187
+ },
188
+ ], 2000)
189
+
190
+ sip.call.send_request(oc.id, 'INFO')
191
+
192
+ await z.wait([
193
+ {
194
+ event: 'request',
195
+ call_id: ic.id,
196
+ msg: sip_msg({
197
+ $rm: 'INFO',
198
+ }),
199
+ },
200
+ {
201
+ event: 'response',
202
+ call_id: oc.id,
203
+ method: 'INFO',
204
+ msg: sip_msg({
205
+ $rs: '200',
206
+ $rr: 'OK',
207
+ }),
208
+ },
209
+ ], 500)
210
+
211
+ await z.sleep(100)
212
+
213
+ sip.call.reinvite(oc.id, false, flags)
214
+
215
+ await z.wait([
216
+ {
217
+ event: 'response',
218
+ call_id: oc.id,
219
+ method: 'INVITE',
220
+ msg: sip_msg({
221
+ $rs: '200',
222
+ $rr: 'OK',
223
+ $rb: '!{_}a=recvonly',
224
+ }),
225
+ },
226
+ {
227
+ event: 'media_status',
228
+ call_id: oc.id,
229
+ status: 'setup_ok',
230
+ local_mode: 'sendonly',
231
+ remote_mode: 'recvonly',
232
+ },
233
+ {
234
+ event: 'media_status',
235
+ call_id: ic.id,
236
+ status: 'setup_ok',
237
+ local_mode: 'recvonly',
238
+ remote_mode: 'sendonly',
239
+ },
240
+ ], 500)
241
+
242
+
243
+ sip.call.send_dtmf(oc.id, '1234', 0)
244
+ sip.call.send_dtmf(ic.id, '4321', 1) // This will not generate event 'dtmf'
245
+
246
+ await z.wait([
247
+ {
248
+ event: 'dtmf',
249
+ call_id: ic.id,
250
+ digits: '1234',
251
+ mode: 0,
252
+ },
253
+ ], 2000)
254
+
255
+
256
+ sip.call.terminate(oc.id)
257
+
258
+ await z.wait([
259
+ {
260
+ event: 'call_ended',
261
+ call_id: oc.id,
262
+ },
263
+ {
264
+ event: 'call_ended',
265
+ call_id: ic.id,
266
+ },
267
+ {
268
+ event: 'response',
269
+ call_id: oc.id,
270
+ method: 'BYE',
271
+ msg: sip_msg({
272
+ $rs: '200',
273
+ $rr: 'OK',
274
+ }),
275
+ },
276
+ ], 1000)
277
+
278
+ await z.sleep(1000)
279
+
280
+ console.log("Success")
281
+
282
+ sip.stop()
283
+ }
9
284
 
10
- z.trap_events(sip.event_source, 'event', (evt) => {
11
- var e = evt.args[0]
12
- return e
285
+ test()
286
+ .catch(e => {
287
+ console.error(e)
288
+ process.exit(1)
13
289
  })
14
290
 
15
- console.log(sip.start((data) => { console.log(data)} ))
16
-
17
- t1 = sip.transport.create("127.0.0.1", 5090, 1)
18
- t2 = sip.transport.create("127.0.0.1", 5092, 1)
19
-
20
- console.log("t1", t1)
21
- console.log("t2", t2)
22
-
23
- flags = 1 // late negotiation
24
-
25
- oc = sip.call.create(t1.id, flags, 'sip:a@t', 'sip:b@127.0.0.1:5092')
26
-
27
- z.wait([
28
- {
29
- event: "incoming_call",
30
- call_id: m.collect("call_id"),
31
- },
32
- {
33
- event: 'response',
34
- call_id: oc.id,
35
- method: 'INVITE',
36
- msg: sip_msg({
37
- $rs: '100',
38
- $rr: 'Trying',
39
- '$(hdrcnt(via))': 1,
40
- '$hdr(call-id)': m.collect('sip_call_id'),
41
- $fU: 'a',
42
- $fd: 't',
43
- $tU: 'b',
44
- '$hdr(l)': '0',
45
- }),
46
- },
47
- ], 1000)
48
-
49
- ic = {
50
- id: z.store.call_id,
51
- sip_call_id: z.store.sip_call_id,
52
- }
53
-
54
- sip.call.respond(ic.id, 200, 'OK')
55
-
56
- z.wait([
57
- {
58
- event: 'media_status',
59
- call_id: oc.id,
60
- status: 'setup_ok',
61
- local_mode: 'sendrecv',
62
- remote_mode: 'sendrecv',
63
- },
64
- {
65
- event: 'media_status',
66
- call_id: ic.id,
67
- status: 'setup_ok',
68
- local_mode: 'sendrecv',
69
- remote_mode: 'sendrecv',
70
- },
71
- {
72
- event: 'response',
73
- call_id: oc.id,
74
- method: 'INVITE',
75
- msg: sip_msg({
76
- $rs: '200',
77
- $rr: 'OK',
78
- '$(hdrcnt(VIA))': 1,
79
- $fU: 'a',
80
- $fd: 't',
81
- $tU: 'b',
82
- '$hdr(content-type)': 'application/sdp',
83
- $rb: '!{_}a=sendrecv',
84
- }),
85
- },
86
- ], 1000)
87
-
88
- sip.call.send_dtmf(oc.id, '1234', 0)
89
- sip.call.send_dtmf(ic.id, '4321', 1)
90
-
91
- z.wait([
92
- {
93
- event: 'dtmf',
94
- call_id: ic.id,
95
- digits: '1234',
96
- mode: 0,
97
- },
98
- {
99
- event: 'dtmf',
100
- call_id: oc.id,
101
- digits: '4321',
102
- mode: 1,
103
- },
104
- ], 2000)
105
-
106
-
107
- sip.call.reinvite(oc.id, true, flags)
108
-
109
- z.wait([
110
- {
111
- event: 'response',
112
- call_id: oc.id,
113
- method: 'INVITE',
114
- msg: sip_msg({
115
- $rs: '200',
116
- $rr: 'OK',
117
- $rb: '!{_}a=sendrecv',
118
- }),
119
- },
120
- {
121
- event: 'media_status',
122
- call_id: oc.id,
123
- status: 'setup_ok',
124
- local_mode: 'sendonly',
125
- remote_mode: 'sendrecv',
126
- },
127
- {
128
- event: 'media_status',
129
- call_id: ic.id,
130
- status: 'setup_ok',
131
- local_mode: 'recvonly',
132
- remote_mode: 'sendonly',
133
- },
134
- ], 500)
135
-
136
- sip.call.send_dtmf(oc.id, '1234', 0)
137
- sip.call.send_dtmf(ic.id, '4321', 1) // This will not generate event 'dtmf'
138
-
139
- z.wait([
140
- {
141
- event: 'dtmf',
142
- call_id: ic.id,
143
- digits: '1234',
144
- mode: 0,
145
- },
146
- ], 2000)
147
-
148
- sip.call.reinvite(ic.id, false, flags)
149
-
150
- z.wait([
151
- {
152
- event: 'response',
153
- call_id: ic.id,
154
- method: 'INVITE',
155
- msg: sip_msg({
156
- $rs: '200',
157
- $rr: 'OK',
158
- $rb: '!{_}a=sendonly',
159
- }),
160
- },
161
- {
162
- event: 'media_status',
163
- call_id: oc.id,
164
- status: 'setup_ok',
165
- local_mode: 'sendonly',
166
- remote_mode: 'recvonly',
167
- },
168
- {
169
- event: 'media_status',
170
- call_id: ic.id,
171
- status: 'setup_ok',
172
- local_mode: 'recvonly',
173
- remote_mode: 'sendonly',
174
- },
175
- ], 500)
176
-
177
- sip.call.send_dtmf(oc.id, '1234', 0)
178
- sip.call.send_dtmf(ic.id, '4321', 1) // This will not generate event 'dtmf'
179
-
180
- z.wait([
181
- {
182
- event: 'dtmf',
183
- call_id: ic.id,
184
- digits: '1234',
185
- mode: 0,
186
- },
187
- ], 2000)
188
-
189
- sip.call.send_request(oc.id, 'INFO')
190
-
191
- z.wait([
192
- {
193
- event: 'request',
194
- call_id: ic.id,
195
- msg: sip_msg({
196
- $rm: 'INFO',
197
- }),
198
- },
199
- {
200
- event: 'response',
201
- call_id: oc.id,
202
- method: 'INFO',
203
- msg: sip_msg({
204
- $rs: '200',
205
- $rr: 'OK',
206
- }),
207
- },
208
- ], 500)
209
-
210
- z.sleep(100)
211
-
212
- sip.call.reinvite(oc.id, false, flags)
213
-
214
- z.wait([
215
- {
216
- event: 'response',
217
- call_id: oc.id,
218
- method: 'INVITE',
219
- msg: sip_msg({
220
- $rs: '200',
221
- $rr: 'OK',
222
- $rb: '!{_}a=recvonly',
223
- }),
224
- },
225
- {
226
- event: 'media_status',
227
- call_id: oc.id,
228
- status: 'setup_ok',
229
- local_mode: 'sendonly',
230
- remote_mode: 'recvonly',
231
- },
232
- {
233
- event: 'media_status',
234
- call_id: ic.id,
235
- status: 'setup_ok',
236
- local_mode: 'recvonly',
237
- remote_mode: 'sendonly',
238
- },
239
- ], 500)
240
-
241
-
242
- sip.call.send_dtmf(oc.id, '1234', 0)
243
- sip.call.send_dtmf(ic.id, '4321', 1) // This will not generate event 'dtmf'
244
-
245
- z.wait([
246
- {
247
- event: 'dtmf',
248
- call_id: ic.id,
249
- digits: '1234',
250
- mode: 0,
251
- },
252
- ], 2000)
253
-
254
-
255
- sip.call.terminate(oc.id)
256
-
257
- z.wait([
258
- {
259
- event: 'call_ended',
260
- call_id: oc.id,
261
- },
262
- {
263
- event: 'call_ended',
264
- call_id: ic.id,
265
- },
266
- {
267
- event: 'response',
268
- call_id: oc.id,
269
- method: 'BYE',
270
- msg: sip_msg({
271
- $rs: '200',
272
- $rr: 'OK',
273
- }),
274
- },
275
- ], 1000)
276
-
277
- z.sleep(1000)
278
-
279
- sip.stop()