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.
package/samples/simple.js CHANGED
@@ -4,278 +4,290 @@ 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 = 0
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, 0)
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=recvonly',
119
+ }),
120
+ },
121
+ {
122
+ event: 'media_status',
123
+ call_id: oc.id,
124
+ status: 'setup_ok',
125
+ local_mode: 'sendonly',
126
+ remote_mode: 'recvonly',
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' as the call is on hold
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, 0)
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' as the call is on hold
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
+ sip.call.reinvite(oc.id, false, 0)
212
+
213
+ await z.wait([
214
+ {
215
+ event: 'response',
216
+ call_id: oc.id,
217
+ method: 'INVITE',
218
+ msg: sip_msg({
219
+ $rs: '200',
220
+ $rr: 'OK',
221
+ $rb: '!{_}a=sendrecv',
222
+ }),
223
+ },
224
+ {
225
+ event: 'media_status',
226
+ call_id: oc.id,
227
+ status: 'setup_ok',
228
+ local_mode: 'sendrecv',
229
+ remote_mode: 'sendrecv',
230
+ },
231
+ {
232
+ event: 'media_status',
233
+ call_id: ic.id,
234
+ status: 'setup_ok',
235
+ local_mode: 'sendrecv',
236
+ remote_mode: 'sendrecv',
237
+ },
238
+ ], 500)
239
+
240
+ sip.call.send_dtmf(oc.id, '1234', 0)
241
+ sip.call.send_dtmf(ic.id, '4321', 1)
242
+
243
+ await z.wait([
244
+ {
245
+ event: 'dtmf',
246
+ call_id: ic.id,
247
+ digits: '1234',
248
+ mode: 0,
249
+ },
250
+ {
251
+ event: 'dtmf',
252
+ call_id: oc.id,
253
+ digits: '4321',
254
+ mode: 1,
255
+ },
256
+ ], 2000)
257
+
258
+ sip.call.terminate(oc.id)
259
+
260
+ await z.wait([
261
+ {
262
+ event: 'call_ended',
263
+ call_id: oc.id,
264
+ },
265
+ {
266
+ event: 'call_ended',
267
+ call_id: ic.id,
268
+ },
269
+ {
270
+ event: 'response',
271
+ call_id: oc.id,
272
+ method: 'BYE',
273
+ msg: sip_msg({
274
+ $rs: '200',
275
+ $rr: 'OK',
276
+ }),
277
+ },
278
+ ], 1000)
279
+
280
+ await z.sleep(1000)
281
+
282
+ console.log("Success")
283
+
284
+ sip.stop()
285
+ }
9
286
 
10
- z.trap_events(sip.event_source, 'event', (evt) => {
11
- var e = evt.args[0]
12
- return e
13
- })
14
287
 
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 = 0
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
- }
288
+ test()
289
+ .catch(e => {
290
+ console.error(e)
291
+ process.exit(1)
292
+ })
53
293
 
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, 0)
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=recvonly',
118
- }),
119
- },
120
- {
121
- event: 'media_status',
122
- call_id: oc.id,
123
- status: 'setup_ok',
124
- local_mode: 'sendonly',
125
- remote_mode: 'recvonly',
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' as the call is on hold
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, 0)
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' as the call is on hold
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
- sip.call.reinvite(oc.id, false, 0)
211
-
212
- z.wait([
213
- {
214
- event: 'response',
215
- call_id: oc.id,
216
- method: 'INVITE',
217
- msg: sip_msg({
218
- $rs: '200',
219
- $rr: 'OK',
220
- $rb: '!{_}a=sendrecv',
221
- }),
222
- },
223
- {
224
- event: 'media_status',
225
- call_id: oc.id,
226
- status: 'setup_ok',
227
- local_mode: 'sendrecv',
228
- remote_mode: 'sendrecv',
229
- },
230
- {
231
- event: 'media_status',
232
- call_id: ic.id,
233
- status: 'setup_ok',
234
- local_mode: 'sendrecv',
235
- remote_mode: 'sendrecv',
236
- },
237
- ], 500)
238
-
239
- sip.call.send_dtmf(oc.id, '1234', 0)
240
- sip.call.send_dtmf(ic.id, '4321', 1)
241
-
242
- z.wait([
243
- {
244
- event: 'dtmf',
245
- call_id: ic.id,
246
- digits: '1234',
247
- mode: 0,
248
- },
249
- {
250
- event: 'dtmf',
251
- call_id: oc.id,
252
- digits: '4321',
253
- mode: 1,
254
- },
255
- ], 2000)
256
-
257
- sip.call.terminate(oc.id)
258
-
259
- z.wait([
260
- {
261
- event: 'call_ended',
262
- call_id: oc.id,
263
- },
264
- {
265
- event: 'call_ended',
266
- call_id: ic.id,
267
- },
268
- {
269
- event: 'response',
270
- call_id: oc.id,
271
- method: 'BYE',
272
- msg: sip_msg({
273
- $rs: '200',
274
- $rr: 'OK',
275
- }),
276
- },
277
- ], 1000)
278
-
279
- z.sleep(1000)
280
-
281
- sip.stop()