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