sip-lab 1.12.38 → 1.13.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/DEV.md +27 -2
- package/README.md +3 -2
- package/binding.gyp +97 -86
- package/build_deps.sh +2 -1
- package/index.js +14 -7
- package/package.json +7 -2
- package/prebuilds/linux-x64/node.abi102.node +0 -0
- package/prebuilds/linux-x64/node.abi108.node +0 -0
- package/prebuilds/linux-x64/node.abi88.node +0 -0
- package/prebuilds/linux-x64/node.abi93.node +0 -0
- package/samples/16_audio_streams.js +179 -0
- package/samples/delayed_media.js +117 -81
- package/samples/g729.js +50 -28
- package/samples/mrcp_and_audio.js +445 -0
- package/samples/mrcp_and_audio.simplified_media.js +273 -0
- package/samples/mrcp_and_audio.switching_order.js +273 -0
- package/samples/options.js +82 -0
- package/samples/refer.js +247 -0
- package/samples/refuse_telephone_event.js +166 -0
- package/samples/register_no_expires.js +82 -0
- package/samples/register_subscribe.js +36 -4
- package/samples/reinvite_and_dtmf.js +236 -161
- package/samples/reinvite_audio_audio.js +320 -0
- package/samples/reinvite_with_hold_unhold.js +412 -0
- package/samples/send_and_receive_fax.js +4 -8
- package/samples/simple.js +5 -9
- package/samples/sip_cancel.js +4 -6
- package/samples/tcp_and_extra_headers.js +98 -45
- package/samples/two_audio_media.js +497 -0
- package/src/addon.cpp +488 -268
- package/src/event_templates.cpp +84 -35
- package/src/event_templates.hpp +22 -12
- package/src/idmanager.cpp +58 -57
- package/src/idmanager.hpp +10 -10
- package/src/log.cpp +9 -11
- package/src/log.hpp +4 -4
- package/src/sip.cpp +6838 -5041
- package/src/sip.hpp +26 -34
- package/src/packetdumper.cpp +0 -234
- package/src/packetdumper.hpp +0 -67
package/samples/delayed_media.js
CHANGED
|
@@ -53,20 +53,6 @@ async function test() {
|
|
|
53
53
|
sip.call.respond(ic.id, {code: 200, reason: 'OK'})
|
|
54
54
|
|
|
55
55
|
await 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
56
|
{
|
|
71
57
|
event: 'response',
|
|
72
58
|
call_id: oc.id,
|
|
@@ -82,6 +68,39 @@ async function test() {
|
|
|
82
68
|
$rb: '!{_}a=sendrecv',
|
|
83
69
|
}),
|
|
84
70
|
},
|
|
71
|
+
{
|
|
72
|
+
event: 'media_update',
|
|
73
|
+
call_id: oc.id,
|
|
74
|
+
status: 'ok',
|
|
75
|
+
media: [
|
|
76
|
+
{
|
|
77
|
+
type: 'audio',
|
|
78
|
+
local: {
|
|
79
|
+
mode: 'sendrecv'
|
|
80
|
+
},
|
|
81
|
+
remote: {
|
|
82
|
+
mode: 'sendrecv'
|
|
83
|
+
},
|
|
84
|
+
}
|
|
85
|
+
],
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
event: 'media_update',
|
|
89
|
+
call_id: ic.id,
|
|
90
|
+
status: 'ok',
|
|
91
|
+
media: [
|
|
92
|
+
{
|
|
93
|
+
type: 'audio',
|
|
94
|
+
local: {
|
|
95
|
+
mode: 'sendrecv'
|
|
96
|
+
},
|
|
97
|
+
remote: {
|
|
98
|
+
mode: 'sendrecv'
|
|
99
|
+
},
|
|
100
|
+
}
|
|
101
|
+
],
|
|
102
|
+
},
|
|
103
|
+
|
|
85
104
|
], 1000)
|
|
86
105
|
|
|
87
106
|
sip.call.send_dtmf(oc.id, {digits: '1234', mode: 0})
|
|
@@ -93,88 +112,92 @@ async function test() {
|
|
|
93
112
|
call_id: ic.id,
|
|
94
113
|
digits: '1234',
|
|
95
114
|
mode: 0,
|
|
115
|
+
media_id: 0
|
|
96
116
|
},
|
|
97
117
|
{
|
|
98
118
|
event: 'dtmf',
|
|
99
119
|
call_id: oc.id,
|
|
100
120
|
digits: '4321',
|
|
101
121
|
mode: 1,
|
|
122
|
+
media_id: 0
|
|
102
123
|
},
|
|
103
|
-
],
|
|
104
|
-
|
|
124
|
+
], 1500)
|
|
105
125
|
|
|
106
|
-
|
|
126
|
+
//await z.sleep(100)
|
|
127
|
+
sip.call.reinvite(oc.id, {delayed_media: true})
|
|
107
128
|
|
|
108
129
|
await z.wait([
|
|
109
130
|
{
|
|
110
|
-
event: '
|
|
111
|
-
call_id:
|
|
112
|
-
method: 'INVITE',
|
|
131
|
+
event: 'reinvite',
|
|
132
|
+
call_id: ic.id,
|
|
113
133
|
msg: sip_msg({
|
|
114
|
-
$
|
|
115
|
-
$rr: 'OK',
|
|
116
|
-
$rb: '!{_}a=sendrecv',
|
|
134
|
+
$rb: m.absent,
|
|
117
135
|
}),
|
|
118
136
|
},
|
|
119
137
|
{
|
|
120
|
-
event: '
|
|
138
|
+
event: 'response',
|
|
121
139
|
call_id: oc.id,
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
{
|
|
127
|
-
event: 'media_status',
|
|
128
|
-
call_id: ic.id,
|
|
129
|
-
status: 'setup_ok',
|
|
130
|
-
local_mode: 'recvonly',
|
|
131
|
-
remote_mode: 'sendonly',
|
|
140
|
+
method: 'INVITE',
|
|
141
|
+
msg: sip_msg({
|
|
142
|
+
$rs: '100',
|
|
143
|
+
}),
|
|
132
144
|
},
|
|
133
145
|
], 500)
|
|
134
146
|
|
|
135
|
-
|
|
136
|
-
sip.call.
|
|
137
|
-
|
|
138
|
-
await 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, {hold: false, delayed_media: true})
|
|
147
|
+
//await z.sleep(100)
|
|
148
|
+
sip.call.respond(ic.id, {code: 200, reason: 'OK'})
|
|
148
149
|
|
|
149
150
|
await z.wait([
|
|
150
151
|
{
|
|
151
152
|
event: 'response',
|
|
152
|
-
call_id:
|
|
153
|
+
call_id: oc.id,
|
|
153
154
|
method: 'INVITE',
|
|
154
155
|
msg: sip_msg({
|
|
155
156
|
$rs: '200',
|
|
156
157
|
$rr: 'OK',
|
|
157
|
-
$rb: '!{_}a=sendonly',
|
|
158
158
|
}),
|
|
159
159
|
},
|
|
160
160
|
{
|
|
161
|
-
event: '
|
|
161
|
+
event: 'media_update',
|
|
162
162
|
call_id: oc.id,
|
|
163
|
-
status: '
|
|
164
|
-
|
|
165
|
-
|
|
163
|
+
status: 'ok',
|
|
164
|
+
media: [
|
|
165
|
+
{
|
|
166
|
+
type: 'audio',
|
|
167
|
+
/*
|
|
168
|
+
local: {
|
|
169
|
+
mode: 'recvonly'
|
|
170
|
+
},
|
|
171
|
+
remote: {
|
|
172
|
+
mode: 'sendrecv'
|
|
173
|
+
},
|
|
174
|
+
*/
|
|
175
|
+
}
|
|
176
|
+
],
|
|
166
177
|
},
|
|
167
178
|
{
|
|
168
|
-
event: '
|
|
179
|
+
event: 'media_update',
|
|
169
180
|
call_id: ic.id,
|
|
170
|
-
status: '
|
|
171
|
-
|
|
172
|
-
|
|
181
|
+
status: 'ok',
|
|
182
|
+
media: [
|
|
183
|
+
{
|
|
184
|
+
type: 'audio',
|
|
185
|
+
/*
|
|
186
|
+
local: {
|
|
187
|
+
mode: 'sendrecv'
|
|
188
|
+
},
|
|
189
|
+
remote: {
|
|
190
|
+
mode: 'recvonly'
|
|
191
|
+
},
|
|
192
|
+
*/
|
|
193
|
+
}
|
|
194
|
+
],
|
|
173
195
|
},
|
|
196
|
+
|
|
174
197
|
], 500)
|
|
175
198
|
|
|
176
199
|
sip.call.send_dtmf(oc.id, {digits: '1234', mode: 0})
|
|
177
|
-
sip.call.send_dtmf(ic.id, {digits: '4321', mode: 1})
|
|
200
|
+
sip.call.send_dtmf(ic.id, {digits: '4321', mode: 1})
|
|
178
201
|
|
|
179
202
|
await z.wait([
|
|
180
203
|
{
|
|
@@ -182,62 +205,66 @@ async function test() {
|
|
|
182
205
|
call_id: ic.id,
|
|
183
206
|
digits: '1234',
|
|
184
207
|
mode: 0,
|
|
208
|
+
media_id: 0
|
|
185
209
|
},
|
|
186
|
-
|
|
210
|
+
{
|
|
211
|
+
event: 'dtmf',
|
|
212
|
+
call_id: oc.id,
|
|
213
|
+
digits: '4321',
|
|
214
|
+
mode: 1,
|
|
215
|
+
media_id: 0
|
|
216
|
+
},
|
|
217
|
+
], 1500)
|
|
187
218
|
|
|
188
|
-
|
|
219
|
+
//await z.sleep(100)
|
|
220
|
+
sip.call.reinvite(ic.id, {delayed_media: true})
|
|
189
221
|
|
|
190
222
|
await z.wait([
|
|
191
223
|
{
|
|
192
|
-
event: '
|
|
193
|
-
call_id:
|
|
224
|
+
event: 'reinvite',
|
|
225
|
+
call_id: oc.id,
|
|
194
226
|
msg: sip_msg({
|
|
195
|
-
$
|
|
227
|
+
$rb: m.absent,
|
|
196
228
|
}),
|
|
197
229
|
},
|
|
198
230
|
{
|
|
199
231
|
event: 'response',
|
|
200
|
-
call_id:
|
|
201
|
-
method: '
|
|
232
|
+
call_id: ic.id,
|
|
233
|
+
method: 'INVITE',
|
|
202
234
|
msg: sip_msg({
|
|
203
|
-
$rs: '
|
|
204
|
-
$rr: 'OK',
|
|
235
|
+
$rs: '100',
|
|
205
236
|
}),
|
|
206
237
|
},
|
|
207
238
|
], 500)
|
|
208
239
|
|
|
209
|
-
|
|
240
|
+
//await z.sleep(100)
|
|
241
|
+
sip.call.respond(oc.id, {code: 200, reason: 'OK'})
|
|
210
242
|
|
|
211
243
|
await z.wait([
|
|
212
244
|
{
|
|
213
245
|
event: 'response',
|
|
214
|
-
call_id:
|
|
246
|
+
call_id: ic.id,
|
|
215
247
|
method: 'INVITE',
|
|
216
248
|
msg: sip_msg({
|
|
217
249
|
$rs: '200',
|
|
218
250
|
$rr: 'OK',
|
|
219
|
-
$rb: '!{_}a=recvonly',
|
|
220
251
|
}),
|
|
221
252
|
},
|
|
222
253
|
{
|
|
223
|
-
event: '
|
|
254
|
+
event: 'media_update',
|
|
224
255
|
call_id: oc.id,
|
|
225
|
-
status: '
|
|
226
|
-
local_mode: 'sendonly',
|
|
227
|
-
remote_mode: 'recvonly',
|
|
256
|
+
status: 'ok',
|
|
228
257
|
},
|
|
229
258
|
{
|
|
230
|
-
event: '
|
|
259
|
+
event: 'media_update',
|
|
231
260
|
call_id: ic.id,
|
|
232
|
-
status: '
|
|
233
|
-
local_mode: 'recvonly',
|
|
234
|
-
remote_mode: 'sendonly',
|
|
261
|
+
status: 'ok',
|
|
235
262
|
},
|
|
236
|
-
], 500)
|
|
237
263
|
|
|
264
|
+
], 500)
|
|
238
265
|
|
|
239
266
|
sip.call.send_dtmf(oc.id, {digits: '1234', mode: 0})
|
|
240
|
-
sip.call.send_dtmf(ic.id, {digits: '4321', mode: 1})
|
|
267
|
+
sip.call.send_dtmf(ic.id, {digits: '4321', mode: 1})
|
|
241
268
|
|
|
242
269
|
await z.wait([
|
|
243
270
|
{
|
|
@@ -245,9 +272,18 @@ async function test() {
|
|
|
245
272
|
call_id: ic.id,
|
|
246
273
|
digits: '1234',
|
|
247
274
|
mode: 0,
|
|
275
|
+
media_id: 0
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
event: 'dtmf',
|
|
279
|
+
call_id: oc.id,
|
|
280
|
+
digits: '4321',
|
|
281
|
+
mode: 1,
|
|
282
|
+
media_id: 0
|
|
248
283
|
},
|
|
249
|
-
],
|
|
284
|
+
], 1500)
|
|
250
285
|
|
|
286
|
+
//await z.sleep(100)
|
|
251
287
|
sip.call.terminate(oc.id)
|
|
252
288
|
|
|
253
289
|
await z.wait([
|
package/samples/g729.js
CHANGED
|
@@ -60,18 +60,14 @@ async function test() {
|
|
|
60
60
|
|
|
61
61
|
await z.wait([
|
|
62
62
|
{
|
|
63
|
-
event: '
|
|
63
|
+
event: 'media_update',
|
|
64
64
|
call_id: oc.id,
|
|
65
|
-
status: '
|
|
66
|
-
local_mode: 'sendrecv',
|
|
67
|
-
remote_mode: 'sendrecv',
|
|
65
|
+
status: 'ok',
|
|
68
66
|
},
|
|
69
67
|
{
|
|
70
|
-
event: '
|
|
68
|
+
event: 'media_update',
|
|
71
69
|
call_id: ic.id,
|
|
72
|
-
status: '
|
|
73
|
-
local_mode: 'sendrecv',
|
|
74
|
-
remote_mode: 'sendrecv',
|
|
70
|
+
status: 'ok',
|
|
75
71
|
},
|
|
76
72
|
{
|
|
77
73
|
event: 'response',
|
|
@@ -90,9 +86,26 @@ async function test() {
|
|
|
90
86
|
},
|
|
91
87
|
], 1000)
|
|
92
88
|
|
|
93
|
-
sip.call.reinvite(oc.id
|
|
89
|
+
sip.call.reinvite(oc.id)
|
|
94
90
|
|
|
95
91
|
await z.wait([
|
|
92
|
+
{
|
|
93
|
+
event: 'reinvite',
|
|
94
|
+
call_id: ic.id
|
|
95
|
+
},
|
|
96
|
+
], 1000)
|
|
97
|
+
|
|
98
|
+
sip.call.respond(ic.id, {code: 200, reason: 'OK'})
|
|
99
|
+
|
|
100
|
+
await z.wait([
|
|
101
|
+
{
|
|
102
|
+
event: 'response',
|
|
103
|
+
call_id: oc.id,
|
|
104
|
+
method: 'INVITE',
|
|
105
|
+
msg: sip_msg({
|
|
106
|
+
$rs: '100',
|
|
107
|
+
}),
|
|
108
|
+
},
|
|
96
109
|
{
|
|
97
110
|
event: 'response',
|
|
98
111
|
call_id: oc.id,
|
|
@@ -100,28 +113,41 @@ async function test() {
|
|
|
100
113
|
msg: sip_msg({
|
|
101
114
|
$rs: '200',
|
|
102
115
|
$rr: 'OK',
|
|
103
|
-
$rb: '!{_}a=
|
|
116
|
+
$rb: '!{_}a=sendrecv',
|
|
104
117
|
}),
|
|
105
118
|
},
|
|
106
119
|
{
|
|
107
|
-
event: '
|
|
120
|
+
event: 'media_update',
|
|
108
121
|
call_id: oc.id,
|
|
109
|
-
status: '
|
|
110
|
-
local_mode: 'sendonly',
|
|
111
|
-
remote_mode: 'recvonly',
|
|
122
|
+
status: 'ok',
|
|
112
123
|
},
|
|
113
124
|
{
|
|
114
|
-
event: '
|
|
125
|
+
event: 'media_update',
|
|
115
126
|
call_id: ic.id,
|
|
116
|
-
status: '
|
|
117
|
-
local_mode: 'recvonly',
|
|
118
|
-
remote_mode: 'sendonly',
|
|
127
|
+
status: 'ok',
|
|
119
128
|
},
|
|
120
129
|
], 500)
|
|
121
130
|
|
|
122
131
|
sip.call.reinvite(oc.id, false, 0)
|
|
123
132
|
|
|
124
133
|
await z.wait([
|
|
134
|
+
{
|
|
135
|
+
event: 'reinvite',
|
|
136
|
+
call_id: ic.id
|
|
137
|
+
},
|
|
138
|
+
], 1000)
|
|
139
|
+
|
|
140
|
+
sip.call.respond(ic.id, {code: 200, reason: 'OK'})
|
|
141
|
+
|
|
142
|
+
await z.wait([
|
|
143
|
+
{
|
|
144
|
+
event: 'response',
|
|
145
|
+
call_id: oc.id,
|
|
146
|
+
method: 'INVITE',
|
|
147
|
+
msg: sip_msg({
|
|
148
|
+
$rs: '100',
|
|
149
|
+
}),
|
|
150
|
+
},
|
|
125
151
|
{
|
|
126
152
|
event: 'response',
|
|
127
153
|
call_id: oc.id,
|
|
@@ -133,23 +159,19 @@ async function test() {
|
|
|
133
159
|
}),
|
|
134
160
|
},
|
|
135
161
|
{
|
|
136
|
-
event: '
|
|
162
|
+
event: 'media_update',
|
|
137
163
|
call_id: oc.id,
|
|
138
|
-
status: '
|
|
139
|
-
local_mode: 'sendrecv',
|
|
140
|
-
remote_mode: 'sendrecv',
|
|
164
|
+
status: 'ok',
|
|
141
165
|
},
|
|
142
166
|
{
|
|
143
|
-
event: '
|
|
167
|
+
event: 'media_update',
|
|
144
168
|
call_id: ic.id,
|
|
145
|
-
status: '
|
|
146
|
-
local_mode: 'sendrecv',
|
|
147
|
-
remote_mode: 'sendrecv',
|
|
169
|
+
status: 'ok',
|
|
148
170
|
},
|
|
149
171
|
], 500)
|
|
150
172
|
|
|
151
|
-
oc_stat = sip.call.get_stream_stat(oc.id)
|
|
152
|
-
ic_stat = sip.call.get_stream_stat(ic.id)
|
|
173
|
+
oc_stat = sip.call.get_stream_stat(oc.id, {media_id: 0})
|
|
174
|
+
ic_stat = sip.call.get_stream_stat(ic.id, {media_id: 0})
|
|
153
175
|
|
|
154
176
|
console.log(oc_stat)
|
|
155
177
|
console.log(ic_stat)
|