[sr-dev] [kamailio/kamailio] Siptrace (#1912)
Henning Westerholt
notifications at github.com
Fri Apr 5 17:37:09 CEST 2019
henningw commented on this pull request.
Thank you also from my side for the contribution. I obviously only did a quick look to the code, given this complexity. I found a few places where it would be good to have a look.
> @@ -18,24 +18,17 @@
<para>
The SIPtrace module offer a possibility to store incoming and outgoing SIP
messages in a database and/or duplicate to the capturing server (using <acronym>HEP</acronym>,
- the Homer encapsulation protocol, or plain SIP mode)
+ the Homer encapsulation protocol, or plain SIP mode). Since version 5.4 new levels of tracing
+ are available. Transactions and dialogs can be traced. Trace flag is now useless.
"flag is useless" - probably should be changed after the re-introducing as well.
> @@ -656,6 +654,11 @@ hlog("$hdr(P-MyID)", "Another one with a custom correlation ID");
Stateless forwarded messages (forward()) are not logged if you set the
flag, use sip_trace() inside <emphasis>onsend_route</emphasis> block.
</para>
+ <para>
+ If dialog level tracing is used internally generated BYE transaction(in
+ case of internal timeouts) won't be traced. At the moment kamailio offers
+ no posibility to trace those messages.
Daniel commented in the main comment thread about the sip parsing, that it is actually not that expensive anymore
> @@ -304,10 +338,30 @@ static int mod_init(void)
/* register callbacks to TM */
if(load_tm_api(&tmb) != 0) {
LM_WARN("can't load tm api. Will not install tm callbacks.\n");
- } else if(tmb.register_tmcb(0, 0, TMCB_REQUEST_IN, trace_onreq_in, 0, 0)
- <= 0) {
- LM_ERR("can't register trace_onreq_in\n");
- return -1;
+ }
+
+ if (load_dlg_api(&dlgb) < 0) {
+ LM_WARN("can't load dlg api. Will not install dialog callbacks.\n");
Below you log on ERROR level if the dialog tracing is not available, makes probably sense to log here with ERROR as well.
> /**
- * Send sip trace with destination and correlation id
+ * TODO TODO TODO:
Is this still a TODO or was already added?
> @@ -1332,16 +1533,226 @@ static void trace_onreply_out(struct cell *t, int type, struct tmcb_params *ps)
sto.stat = siptrace_rpl;
#endif
- sip_trace_store(&sto, NULL, NULL);
- return;
+ if (info->uriState == STRACE_RAW_URI) {
+ LM_BUG("uriState must be either UNUSED or PARSED here! must be a bug! Message won't be traced!\n");
+ abort();
Calling abort() will kill Kamailio, it is not possible to recover here?
>
- pkg_free(*param);
- /* free temporary proxy*/
- if(p) {
- free_proxy(p); /* frees only p content, not p itself */
- pkg_free(p);
+ trace_type = parse_siptrace_flag(&sflags);
+ if (trace_type == SIPTRACE_NONE) {
+ LM_ERR("Failed to parse trace type!\n");
+ return -1;
+ }
+
+ *param = pkg_malloc(sizeof(trace_type));
pkg_malloc can fail, check for success.
> }
- if(((char *)(*param))[0] == '\0') {
- // Empty URI, use the URI set at module level (dup_uri)
- if(dup_uri) {
- uri = *dup_uri;
- } else {
- LM_ERR("Missing duplicate URI\n");
- return -1;
- }
- } else {
- duri = (char *)*param;
+ for (idx = 0; idx < sflags->len; idx++) {
This looks that there a a lot of whitespaces, can you check? Maybe github shows it different.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/1912#pullrequestreview-223338198
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-dev/attachments/20190405/26e5b7d8/attachment-0001.html>
More information about the sr-dev
mailing list