sip-lab 1.11.2 → 1.12.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/README.md +8 -3
- package/binding.gyp +1 -0
- package/index.js +23 -13
- package/install.sh +12 -1
- package/package.json +2 -1
- package/samples/{late_negotiation.js → delayed_media.js} +22 -25
- package/samples/g729.js +11 -11
- package/samples/register_subscribe.js +30 -7
- package/samples/reinvite_and_dtmf.js +22 -24
- package/samples/send_and_receive_fax.js +7 -11
- package/samples/simple.js +10 -12
- package/samples/sip_cancel.js +10 -12
- package/samples/tcp_and_extra_headers.js +333 -0
- package/src/addon.cpp +107 -498
- package/src/event_templates.cpp +22 -22
- package/src/event_templates.hpp +10 -10
- package/src/sip.cpp +1267 -599
- package/src/sip.hpp +58 -17
package/src/event_templates.cpp
CHANGED
|
@@ -1,59 +1,59 @@
|
|
|
1
1
|
#include <stdio.h>
|
|
2
2
|
#include <string.h>
|
|
3
3
|
|
|
4
|
-
int make_evt_incoming_call(char *dest, int size, long transport_id, long call_id, int sip_msg_len, char *sip_msg) {
|
|
5
|
-
return snprintf(dest, size, "{\"event\": \"incoming_call\", \"transport_id\": %
|
|
4
|
+
int make_evt_incoming_call(char *dest, int size, long transport_id, long call_id, int sip_msg_len, const char *sip_msg) {
|
|
5
|
+
return snprintf(dest, size, "{\"event\": \"incoming_call\", \"transport_id\": %ld, \"call_id\": %ld}\n%.*s", transport_id, call_id, sip_msg_len, sip_msg);
|
|
6
6
|
}
|
|
7
7
|
|
|
8
|
-
int make_evt_request(char *dest, int size, char *entity_type, long id, int sip_msg_len, char *sip_msg) {
|
|
9
|
-
return snprintf(dest, size, "{\"event\": \"request\", \"%s_id\": %
|
|
8
|
+
int make_evt_request(char *dest, int size, const char *entity_type, long id, int sip_msg_len, const char *sip_msg) {
|
|
9
|
+
return snprintf(dest, size, "{\"event\": \"request\", \"%s_id\": %ld}\n%.*s", entity_type, id, sip_msg_len, sip_msg);
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
int make_evt_response(char *dest, int size, char *entity_type, long id, int mname_len, char *mname, int sip_msg_len, char *sip_msg) {
|
|
13
|
-
return snprintf(dest, size, "{\"event\": \"response\", \"%s_id\": %
|
|
12
|
+
int make_evt_response(char *dest, int size, const char *entity_type, long id, int mname_len, const char *mname, int sip_msg_len, const char *sip_msg) {
|
|
13
|
+
return snprintf(dest, size, "{\"event\": \"response\", \"%s_id\": %ld, \"method\": \"%.*s\"}\n%.*s", entity_type, id, mname_len, mname, sip_msg_len, sip_msg);
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
int make_evt_media_status(char *dest, int size, long call_id, char *status, char *local_mode, char *remote_mode) {
|
|
16
|
+
int make_evt_media_status(char *dest, int size, long call_id, const char *status, const char *local_mode, const char *remote_mode) {
|
|
17
17
|
if(strcmp(status, "setup_ok") == 0) {
|
|
18
|
-
return snprintf(dest, size, "{\"event\": \"media_status\", \"call_id\": %
|
|
18
|
+
return snprintf(dest, size, "{\"event\": \"media_status\", \"call_id\": %ld, \"status\": \"%s\", \"local_mode\": \"%s\", \"remote_mode\": \"%s\"}", call_id, status, local_mode, remote_mode);
|
|
19
19
|
} else {
|
|
20
|
-
return snprintf(dest, size, "{\"event\": \"media_status\", \"call_id\": %
|
|
20
|
+
return snprintf(dest, size, "{\"event\": \"media_status\", \"call_id\": %ld, \"status\": \"%s\"}", call_id, status);
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
int make_evt_dtmf(char *dest, int size, long call_id, int digits_len, char *digits, int mode) {
|
|
25
|
-
return snprintf(dest, size, "{\"event\": \"dtmf\", \"call_id\": %
|
|
24
|
+
int make_evt_dtmf(char *dest, int size, long call_id, int digits_len, const char *digits, int mode) {
|
|
25
|
+
return snprintf(dest, size, "{\"event\": \"dtmf\", \"call_id\": %ld, \"digits\": \"%.*s\", \"mode\": %i}", call_id, digits_len, digits, mode);
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
int make_evt_call_ended(char *dest, int size, long call_id, int sip_msg_len, char *sip_msg) {
|
|
29
|
-
printf("sip_msg_len=%i sip_msg=%
|
|
28
|
+
int make_evt_call_ended(char *dest, int size, long call_id, int sip_msg_len, const char *sip_msg) {
|
|
29
|
+
printf("sip_msg_len=%i sip_msg=%s\n", sip_msg_len, sip_msg);
|
|
30
30
|
if(sip_msg_len > 500 && sip_msg_len < 2000 && sip_msg) {
|
|
31
31
|
/* sip_msg_len sometimes show up as a large value like sip_msg_len=11560297 which seems to be a bug in pjsip */
|
|
32
|
-
return snprintf(dest, size, "{\"event\": \"call_ended\", \"call_id\": %
|
|
32
|
+
return snprintf(dest, size, "{\"event\": \"call_ended\", \"call_id\": %ld}\n%.*s", call_id, sip_msg_len, sip_msg);
|
|
33
33
|
} else {
|
|
34
|
-
return snprintf(dest, size, "{\"event\": \"call_ended\", \"call_id\": %
|
|
34
|
+
return snprintf(dest, size, "{\"event\": \"call_ended\", \"call_id\": %ld}", call_id);
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
int make_evt_non_dialog_request(char *dest, int size, int sip_msg_len, char *sip_msg) {
|
|
38
|
+
int make_evt_non_dialog_request(char *dest, int size, int sip_msg_len, const char *sip_msg) {
|
|
39
39
|
return snprintf(dest, size, "{\"event\": \"non_dialog_request\"}\n%.*s", sip_msg_len, sip_msg);
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
int make_evt_internal_error(char *dest, int size, char *msg) {
|
|
42
|
+
int make_evt_internal_error(char *dest, int size, const char *msg) {
|
|
43
43
|
return snprintf(dest, size, "{\"event\": \"internal_error\", \"error\": \"%s\"}", msg);
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
/*
|
|
47
|
-
int make_evt_reinvite(char *dest, int size, long call_id, char *type) {
|
|
48
|
-
return snprintf(dest, size, "{\"event\": \"reinvite\", \"call_id\": %
|
|
47
|
+
int make_evt_reinvite(char *dest, int size, long call_id, const char *type) {
|
|
48
|
+
return snprintf(dest, size, "{\"event\": \"reinvite\", \"call_id\": %ld, \"type\": \"%s\"}", call_id, type);
|
|
49
49
|
}
|
|
50
50
|
*/
|
|
51
51
|
|
|
52
|
-
int make_evt_registration_status(char *dest, int size, long account_id, int code, char *reason, int expires) {
|
|
53
|
-
return snprintf(dest, size, "{\"event\": \"registration_status\", \"account_id\": %
|
|
52
|
+
int make_evt_registration_status(char *dest, int size, long account_id, int code, const char *reason, int expires) {
|
|
53
|
+
return snprintf(dest, size, "{\"event\": \"registration_status\", \"account_id\": %ld, \"code\": %i, \"reason\": \"%s\", \"expires\": %i}", account_id, code, reason, expires);
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
int make_evt_fax_result(char *dest, int size, long call_id, int result) {
|
|
57
|
-
return snprintf(dest, size, "{\"event\": \"fax_result\", \"call_id\": %
|
|
57
|
+
return snprintf(dest, size, "{\"event\": \"fax_result\", \"call_id\": %ld, \"result\": %i}", call_id, result);
|
|
58
58
|
}
|
|
59
59
|
|
package/src/event_templates.hpp
CHANGED
|
@@ -2,25 +2,25 @@
|
|
|
2
2
|
#define __EVENT_TEMPLATES__
|
|
3
3
|
|
|
4
4
|
|
|
5
|
-
int make_evt_incoming_call(char *dest, int size, long transport_id, long call_id, int sip_msg_len, char *sip_msg);
|
|
5
|
+
int make_evt_incoming_call(char *dest, int size, long transport_id, long call_id, int sip_msg_len, const char *sip_msg);
|
|
6
6
|
|
|
7
|
-
int make_evt_request(char *dest, int size, char *entity_type, long id, int sip_msg_len, char *sip_msg);
|
|
7
|
+
int make_evt_request(char *dest, int size, const char *entity_type, long id, int sip_msg_len, const char *sip_msg);
|
|
8
8
|
|
|
9
|
-
int make_evt_response(char *dest, int size, char *entity_type, long id, int mname_len, char *mname, int sip_msg_len, char *sip_msg);
|
|
9
|
+
int make_evt_response(char *dest, int size, const char *entity_type, long id, int mname_len, const char *mname, int sip_msg_len, const char *sip_msg);
|
|
10
10
|
|
|
11
|
-
int make_evt_media_status(char *dest, int size, long call_id, char *status, char *local_media_mode, char *remote_media_mode);
|
|
11
|
+
int make_evt_media_status(char *dest, int size, long call_id, const char *status, const char *local_media_mode, const char *remote_media_mode);
|
|
12
12
|
|
|
13
|
-
int make_evt_dtmf(char *dest, int size, long call_id, int digits_len, char *digits, int mode);
|
|
13
|
+
int make_evt_dtmf(char *dest, int size, long call_id, int digits_len, const char *digits, int mode);
|
|
14
14
|
|
|
15
|
-
int make_evt_call_ended(char *dest, int size, long call_id, int sip_msg_len, char *sip_msg);
|
|
15
|
+
int make_evt_call_ended(char *dest, int size, long call_id, int sip_msg_len, const char *sip_msg);
|
|
16
16
|
|
|
17
|
-
int make_evt_non_dialog_request(char *dest, int size, int sip_msg_len, char *sip_msg);
|
|
17
|
+
int make_evt_non_dialog_request(char *dest, int size, int sip_msg_len, const char *sip_msg);
|
|
18
18
|
|
|
19
|
-
int make_evt_internal_error(char *dest, int size, char *msg);
|
|
19
|
+
int make_evt_internal_error(char *dest, int size, const char *msg);
|
|
20
20
|
|
|
21
|
-
//int make_evt_reinvite(char *dest, int size, long call_id, char *type);
|
|
21
|
+
//int make_evt_reinvite(char *dest, int size, long call_id, const char *type);
|
|
22
22
|
|
|
23
|
-
int make_evt_registration_status(char *dest, int size, long account_id, int code, char *reason, int expires);
|
|
23
|
+
int make_evt_registration_status(char *dest, int size, long account_id, int code, const char *reason, int expires);
|
|
24
24
|
|
|
25
25
|
int make_evt_fax_result(char *dest, int size, long call_id, int result);
|
|
26
26
|
|