1
/* $Id: msg_logger.c 3553 2011-05-05 06:14:19Z nanang $ */
3
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
4
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 2 of the License, or
9
* (at your option) any later version.
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24
#define THIS_FILE "msg_logger.c"
26
static pj_bool_t msg_log_enabled;
28
static pj_bool_t on_rx_msg(pjsip_rx_data *rdata)
30
if (msg_log_enabled) {
31
PJ_LOG(4,(THIS_FILE, "RX %d bytes %s from %s:%s:%d:\n"
35
pjsip_rx_data_get_info(rdata),
36
rdata->tp_info.transport->type_name,
37
rdata->pkt_info.src_name,
38
rdata->pkt_info.src_port,
40
rdata->msg_info.msg_buf));
46
static pj_status_t on_tx_msg(pjsip_tx_data *tdata)
48
if (msg_log_enabled) {
49
PJ_LOG(4,(THIS_FILE, "TX %d bytes %s to %s:%s:%d:\n"
52
(tdata->buf.cur - tdata->buf.start),
53
pjsip_tx_data_get_info(tdata),
54
tdata->tp_info.transport->type_name,
55
tdata->tp_info.dst_name,
56
tdata->tp_info.dst_port,
57
(tdata->buf.cur - tdata->buf.start),
64
/* Message logger module. */
65
static pjsip_module mod_msg_logger =
67
NULL, NULL, /* prev and next */
68
{ "mod-msg-logger", 14}, /* Name. */
70
PJSIP_MOD_PRIORITY_TRANSPORT_LAYER-1,/* Priority */
75
&on_rx_msg, /* on_rx_request() */
76
&on_rx_msg, /* on_rx_response() */
77
&on_tx_msg, /* on_tx_request() */
78
&on_tx_msg, /* on_tx_response() */
79
NULL, /* on_tsx_state() */
82
int init_msg_logger(void)
86
if (mod_msg_logger.id != -1)
89
status = pjsip_endpt_register_module(endpt, &mod_msg_logger);
90
if (status != PJ_SUCCESS) {
91
app_perror(" error registering module", status);
98
int msg_logger_set_enabled(pj_bool_t enabled)
100
int val = msg_log_enabled;
101
msg_log_enabled = enabled;