sip-lab 1.8.0 → 1.9.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sip-lab",
3
- "version": "1.8.0",
3
+ "version": "1.9.0",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "engines": {
@@ -0,0 +1,293 @@
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
+ 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
+ }
286
+
287
+
288
+ test()
289
+ .catch(e => {
290
+ console.error(e)
291
+ process.exit(1)
292
+ })
293
+
package/samples/simple.js CHANGED
@@ -86,175 +86,6 @@ async function test() {
86
86
  },
87
87
  ], 1000)
88
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
89
  sip.call.terminate(oc.id)
259
90
 
260
91
  await z.wait([
@@ -277,8 +108,6 @@ async function test() {
277
108
  },
278
109
  ], 1000)
279
110
 
280
- await z.sleep(1000)
281
-
282
111
  console.log("Success")
283
112
 
284
113
  sip.stop()
package/src/sip.cpp CHANGED
@@ -3350,6 +3350,9 @@ int __pjw_shutdown()
3350
3350
 
3351
3351
  g_shutting_down = true;
3352
3352
 
3353
+ //disable auto cleanup
3354
+
3355
+ /*
3353
3356
  map<long, long>::iterator iter;
3354
3357
  iter = g_call_ids.id_map.begin();
3355
3358
  while(iter != g_call_ids.id_map.end()){
@@ -3427,11 +3430,6 @@ int __pjw_shutdown()
3427
3430
  //uint32_t wait = 100000 * (g_call_ids.id_map.size() + g_account_ids.id_map.size()));
3428
3431
  //wait += 1000000; //Wait one whole second to permit packet capture to get any final packets
3429
3432
 
3430
- /*
3431
- time_t end,start;
3432
- time(&start);
3433
- end = start;
3434
- */
3435
3433
  timeval tv_start;
3436
3434
  timeval tv_end;
3437
3435
  gettimeofday(&tv_start, NULL);
@@ -3451,6 +3449,8 @@ int __pjw_shutdown()
3451
3449
  //time(&end);
3452
3450
  }
3453
3451
 
3452
+ */
3453
+
3454
3454
  return 0;
3455
3455
  }
3456
3456