<p>Pau Espin Pedrol has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/13773">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">Introduce log fmt helpers LOGPENDP and LOGPCONN<br><br>Let's define macro once and use it everywhere instead of passing endp<br>information in different ways everywhere. Furthermore, use conn whenever<br>appropiate to have more information.<br><br>Change-Id: I1c49b1eb16bc5f1010376da5cf407ca6e31d81f2<br>---<br>M include/osmocom/mgcp/mgcp_endp.h<br>M include/osmocom/mgcp/mgcp_internal.h<br>M src/libosmo-mgcp/mgcp_codec.c<br>M src/libosmo-mgcp/mgcp_conn.c<br>M src/libosmo-mgcp/mgcp_endp.c<br>M src/libosmo-mgcp/mgcp_msg.c<br>M src/libosmo-mgcp/mgcp_network.c<br>M src/libosmo-mgcp/mgcp_protocol.c<br>M src/libosmo-mgcp/mgcp_sdp.c<br>9 files changed, 339 insertions(+), 431 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/73/13773/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/include/osmocom/mgcp/mgcp_endp.h b/include/osmocom/mgcp/mgcp_endp.h</span><br><span>index a23e192..75f093d 100644</span><br><span>--- a/include/osmocom/mgcp/mgcp_endp.h</span><br><span>+++ b/include/osmocom/mgcp/mgcp_endp.h</span><br><span>@@ -99,4 +99,3 @@</span><br><span> #define ENDPOINT_NUMBER(endp) abs((int)(endp - endp->tcfg->endpoints))</span><br><span> </span><br><span> void mgcp_endp_release(struct mgcp_endpoint *endp);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span>diff --git a/include/osmocom/mgcp/mgcp_internal.h b/include/osmocom/mgcp/mgcp_internal.h</span><br><span>index ec94584..3defc4c 100644</span><br><span>--- a/include/osmocom/mgcp/mgcp_internal.h</span><br><span>+++ b/include/osmocom/mgcp/mgcp_internal.h</span><br><span>@@ -335,3 +335,13 @@</span><br><span> </span><br><span> void mgcp_get_local_addr(char *addr, struct mgcp_conn_rtp *conn);</span><br><span> void mgcp_conn_watchdog_kick(struct mgcp_conn *conn);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#define LOGPENDP(endp, cat, level, fmt, args...) \</span><br><span style="color: hsl(120, 100%, 40%);">+LOGP(cat, level, "endpoint:0x%x " fmt, \</span><br><span style="color: hsl(120, 100%, 40%);">+ ENDPOINT_NUMBER(endp), \</span><br><span style="color: hsl(120, 100%, 40%);">+ ## args)</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#define LOGPCONN(conn, cat, level, fmt, args...) \</span><br><span style="color: hsl(120, 100%, 40%);">+LOGPENDP((conn)->endp, cat, level, "CI:%s " fmt, \</span><br><span style="color: hsl(120, 100%, 40%);">+ (conn)->id, \</span><br><span style="color: hsl(120, 100%, 40%);">+ ## args)</span><br><span>diff --git a/src/libosmo-mgcp/mgcp_codec.c b/src/libosmo-mgcp/mgcp_codec.c</span><br><span>index 933284d..8bf0564 100644</span><br><span>--- a/src/libosmo-mgcp/mgcp_codec.c</span><br><span>+++ b/src/libosmo-mgcp/mgcp_codec.c</span><br><span>@@ -56,8 +56,8 @@</span><br><span> endp = conn->conn->endp;</span><br><span> </span><br><span> if (rtp->codecs_assigned == 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR, "endpoint:0x%x conn:%s no codecs available\n", ENDPOINT_NUMBER(endp),</span><br><span style="color: hsl(0, 100%, 40%);">- mgcp_conn_dump(conn->conn));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_ERROR, "conn:%s no codecs available\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ mgcp_conn_dump(conn->conn));</span><br><span> return;</span><br><span> }</span><br><span> </span><br><span>@@ -65,8 +65,8 @@</span><br><span> for (i = 0; i < rtp->codecs_assigned; i++) {</span><br><span> codec = &rtp->codecs[i];</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_DEBUG, "endpoint:0x%x conn:%s codecs[%u]:%s", ENDPOINT_NUMBER(endp),</span><br><span style="color: hsl(0, 100%, 40%);">- mgcp_conn_dump(conn->conn), i, dump_codec(codec));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_DEBUG, "conn:%s codecs[%u]:%s",</span><br><span style="color: hsl(120, 100%, 40%);">+ mgcp_conn_dump(conn->conn), i, dump_codec(codec));</span><br><span> </span><br><span> if (codec == rtp->codec)</span><br><span> LOGPC(DLMGCP, LOGL_DEBUG, " [selected]");</span><br><span>diff --git a/src/libosmo-mgcp/mgcp_conn.c b/src/libosmo-mgcp/mgcp_conn.c</span><br><span>index a8341d6..bfaa111 100644</span><br><span>--- a/src/libosmo-mgcp/mgcp_conn.c</span><br><span>+++ b/src/libosmo-mgcp/mgcp_conn.c</span><br><span>@@ -75,8 +75,7 @@</span><br><span> }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR, "endpoint:0x%x, unable to generate a unique connectionIdentifier\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_ERROR, "unable to generate a unique connectionIdentifier\n");</span><br><span> </span><br><span> return -1;</span><br><span> }</span><br><span>@@ -129,7 +128,7 @@</span><br><span> void mgcp_conn_watchdog_cb(void *data)</span><br><span> {</span><br><span> struct mgcp_conn *conn = data;</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR, "endpoint:0x%x CI:%s connection timed out!\n", ENDPOINT_NUMBER(conn->endp), conn->id);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn, DLMGCP, LOGL_ERROR, "connection timed out!\n");</span><br><span> mgcp_conn_free(conn->endp, conn->id);</span><br><span> }</span><br><span> </span><br><span>@@ -139,7 +138,7 @@</span><br><span> if (!timeout)</span><br><span> return;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_DEBUG, "endpoint:0x%x CI:%s watchdog kicked\n", ENDPOINT_NUMBER(conn->endp), conn->id);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn, DLMGCP, LOGL_DEBUG, "watchdog kicked\n");</span><br><span> osmo_timer_schedule(&conn->watchdog, timeout, 0);</span><br><span> }</span><br><span> </span><br><span>diff --git a/src/libosmo-mgcp/mgcp_endp.c b/src/libosmo-mgcp/mgcp_endp.c</span><br><span>index fa2dd28..eec46bf 100644</span><br><span>--- a/src/libosmo-mgcp/mgcp_endp.c</span><br><span>+++ b/src/libosmo-mgcp/mgcp_endp.c</span><br><span>@@ -36,8 +36,7 @@</span><br><span> * \param[in] endp endpoint to release */</span><br><span> void mgcp_endp_release(struct mgcp_endpoint *endp)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_DEBUG, "Releasing endpoint:0x%x\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_DEBUG, "Releasing endpoint\n");</span><br><span> </span><br><span> /* Normally this function should only be called when</span><br><span> * all connections have been removed already. In case</span><br><span>diff --git a/src/libosmo-mgcp/mgcp_msg.c b/src/libosmo-mgcp/mgcp_msg.c</span><br><span>index 5844d41..5dae5a2 100644</span><br><span>--- a/src/libosmo-mgcp/mgcp_msg.c</span><br><span>+++ b/src/libosmo-mgcp/mgcp_msg.c</span><br><span>@@ -82,9 +82,8 @@</span><br><span> int ret = 0;</span><br><span> </span><br><span> if (!mode) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x missing connection mode\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn, DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "missing connection mode\n");</span><br><span> return -1;</span><br><span> }</span><br><span> if (!conn)</span><br><span>@@ -101,9 +100,8 @@</span><br><span> else if (strcmp(mode, "loopback") == 0)</span><br><span> conn->mode = MGCP_CONN_LOOPBACK;</span><br><span> else {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x unknown connection mode: '%s'\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), mode);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn, DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "unknown connection mode: '%s'\n", mode);</span><br><span> ret = -1;</span><br><span> }</span><br><span> </span><br><span>@@ -113,18 +111,15 @@</span><br><span> conn->mode & MGCP_CONN_SEND_ONLY ? 1 : 0;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_DEBUG,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x conn:%s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), mgcp_conn_dump(conn));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_DEBUG, "conn:%s\n", mgcp_conn_dump(conn));</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_DEBUG,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x connection mode '%s' %d\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), mode, conn->mode);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn, DLMGCP, LOGL_DEBUG, "connection mode '%s' %d\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ mode, conn->mode);</span><br><span> </span><br><span> /* Special handling für RTP connections */</span><br><span> if (conn->type == MGCP_CONN_TYPE_RTP) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_DEBUG, "endpoint:0x%x output_enabled %d\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), conn->u.rtp.end.output_enabled);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn, DLMGCP, LOGL_DEBUG, "output_enabled %d\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ conn->u.rtp.end.output_enabled);</span><br><span> }</span><br><span> </span><br><span> /* The VTY might change the connection mode at any time, so we have</span><br><span>@@ -197,9 +192,8 @@</span><br><span> for (i = 0; i < number_endpoints; i++) {</span><br><span> if (endpoints[i].callid == NULL) {</span><br><span> endp = &endpoints[i];</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_DEBUG,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x found free endpoint\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_DEBUG,</span><br><span style="color: hsl(120, 100%, 40%);">+ "found free endpoint\n");</span><br><span> endp->wildcarded_req = true;</span><br><span> return endp;</span><br><span> }</span><br><span>@@ -422,9 +416,9 @@</span><br><span> return -1;</span><br><span> </span><br><span> if (strcmp(endp->callid, callid) != 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x CallIDs mismatch: '%s' != '%s'\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), endp->callid, callid);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "CallIDs mismatch: '%s' != '%s'\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ endp->callid, callid);</span><br><span> return -1;</span><br><span> }</span><br><span> </span><br><span>@@ -443,25 +437,23 @@</span><br><span> </span><br><span> /* Check for null identifiers */</span><br><span> if (!conn_id) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x invalid ConnectionIdentifier (missing)\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "invalid ConnectionIdentifier (missing)\n");</span><br><span> return 510;</span><br><span> }</span><br><span> </span><br><span> /* Check for empty connection identifiers */</span><br><span> if (strlen(conn_id) == 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x invalid ConnectionIdentifier (empty)\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "invalid ConnectionIdentifier (empty)\n");</span><br><span> return 510;</span><br><span> }</span><br><span> </span><br><span> /* Check for over long connection identifiers */</span><br><span> if (strlen(conn_id) > (MGCP_CONN_ID_MAXLEN-1)) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x invalid ConnectionIdentifier (too long: %zu > %d) 0x%s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), strlen(conn_id), MGCP_CONN_ID_MAXLEN-1, conn_id);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "invalid ConnectionIdentifier (too long: %zu > %d) 0x%s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ strlen(conn_id), MGCP_CONN_ID_MAXLEN-1, conn_id);</span><br><span> return 510;</span><br><span> }</span><br><span> </span><br><span>@@ -469,9 +461,8 @@</span><br><span> if (mgcp_conn_get(endp, conn_id))</span><br><span> return 0;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x no connection found under ConnectionIdentifier 0x%s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), conn_id);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "no connection found under ConnectionIdentifier 0x%s\n", conn_id);</span><br><span> </span><br><span> /* When the conn_id was not found, return error code 515 "The transaction refers to an incorrect</span><br><span> * connection-id (may have been already deleted)." */</span><br><span>diff --git a/src/libosmo-mgcp/mgcp_network.c b/src/libosmo-mgcp/mgcp_network.c</span><br><span>index 2c6c571..4d92051 100644</span><br><span>--- a/src/libosmo-mgcp/mgcp_network.c</span><br><span>+++ b/src/libosmo-mgcp/mgcp_network.c</span><br><span>@@ -76,14 +76,12 @@</span><br><span> if (endp->cfg->net_ports.bind_addr_probe && conn->end.addr.s_addr != 0) {</span><br><span> rc = osmo_sock_local_ip(addr, inet_ntoa(conn->end.addr));</span><br><span> if (rc < 0)</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x CI:%s local interface auto detection failed, using configured addresses...\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), conn->conn->id);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DRTP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "local interface auto detection failed, using configured addresses...\n");</span><br><span> else {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_DEBUG,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x CI:%s selected local rtp bind ip %s by probing using remote ip %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), conn->conn->id, addr,</span><br><span style="color: hsl(0, 100%, 40%);">- inet_ntoa(conn->end.addr));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DRTP, LOGL_DEBUG,</span><br><span style="color: hsl(120, 100%, 40%);">+ "selected local rtp bind ip %s by probing using remote ip %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ addr, inet_ntoa(conn->end.addr));</span><br><span> return;</span><br><span> }</span><br><span> }</span><br><span>@@ -93,17 +91,16 @@</span><br><span> /* Check there is a bind IP for the RTP traffic configured,</span><br><span> * if so, use that IP-Address */</span><br><span> osmo_strlcpy(addr, endp->cfg->net_ports.bind_addr, INET_ADDRSTRLEN);</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_DEBUG,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x CI:%s using configured rtp bind ip as local bind ip %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), conn->conn->id, addr);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DRTP, LOGL_DEBUG,</span><br><span style="color: hsl(120, 100%, 40%);">+ "using configured rtp bind ip as local bind ip %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ addr);</span><br><span> } else {</span><br><span> /* No specific bind IP is configured for the RTP traffic, so</span><br><span> * assume the IP where we listen for incoming MGCP messages</span><br><span> * as bind IP */</span><br><span> osmo_strlcpy(addr, endp->cfg->source_addr, INET_ADDRSTRLEN);</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_DEBUG,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x CI:%s using mgcp bind ip as local rtp bind ip: %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), conn->conn->id, addr);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DRTP, LOGL_DEBUG,</span><br><span style="color: hsl(120, 100%, 40%);">+ "using mgcp bind ip as local rtp bind ip: %s\n", addr);</span><br><span> }</span><br><span> }</span><br><span> </span><br><span>@@ -165,10 +162,8 @@</span><br><span> OSMO_ASSERT(endp);</span><br><span> OSMO_ASSERT(conn);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_DEBUG,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x sending dummy packet...\n", ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_DEBUG, "endpoint:0x%x conn:%s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), mgcp_conn_dump(conn->conn));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DRTP, LOGL_DEBUG,"sending dummy packet... %s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ mgcp_conn_dump(conn->conn));</span><br><span> </span><br><span> rc = mgcp_udp_send(conn->end.rtp.fd, &conn->end.addr,</span><br><span> conn->end.rtp_port, buf, 1);</span><br><span>@@ -187,9 +182,9 @@</span><br><span> return rc;</span><br><span> </span><br><span> failed:</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x Failed to send dummy %s packet.\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), was_rtcp ? "RTCP" : "RTP");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DRTP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "Failed to send dummy %s packet.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ was_rtcp ? "RTCP" : "RTP");</span><br><span> </span><br><span> return -1;</span><br><span> }</span><br><span>@@ -228,16 +223,16 @@</span><br><span> if (seq == sstate->last_seq) {</span><br><span> if (timestamp != sstate->last_timestamp) {</span><br><span> rate_ctr_inc(sstate->err_ts_ctr);</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "The %s timestamp delta is != 0 but the sequence "</span><br><span style="color: hsl(0, 100%, 40%);">- "number %d is the same, "</span><br><span style="color: hsl(0, 100%, 40%);">- "TS offset: %d, SeqNo offset: %d "</span><br><span style="color: hsl(0, 100%, 40%);">- "on 0x%x SSRC: %u timestamp: %u "</span><br><span style="color: hsl(0, 100%, 40%);">- "from %s:%d\n",</span><br><span style="color: hsl(0, 100%, 40%);">- text, seq,</span><br><span style="color: hsl(0, 100%, 40%);">- state->patch.timestamp_offset, state->patch.seq_offset,</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), sstate->ssrc, timestamp,</span><br><span style="color: hsl(0, 100%, 40%);">- inet_ntoa(addr->sin_addr), ntohs(addr->sin_port));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "The %s timestamp delta is != 0 but the sequence "</span><br><span style="color: hsl(120, 100%, 40%);">+ "number %d is the same, "</span><br><span style="color: hsl(120, 100%, 40%);">+ "TS offset: %d, SeqNo offset: %d "</span><br><span style="color: hsl(120, 100%, 40%);">+ "on SSRC: %u timestamp: %u "</span><br><span style="color: hsl(120, 100%, 40%);">+ "from %s:%d\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ text, seq,</span><br><span style="color: hsl(120, 100%, 40%);">+ state->patch.timestamp_offset, state->patch.seq_offset,</span><br><span style="color: hsl(120, 100%, 40%);">+ sstate->ssrc, timestamp, inet_ntoa(addr->sin_addr),</span><br><span style="color: hsl(120, 100%, 40%);">+ ntohs(addr->sin_port));</span><br><span> }</span><br><span> return 0;</span><br><span> }</span><br><span>@@ -248,25 +243,25 @@</span><br><span> </span><br><span> if (tsdelta == 0) {</span><br><span> /* Don't update *tsdelta_out */</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_NOTICE,</span><br><span style="color: hsl(0, 100%, 40%);">- "The %s timestamp delta is %d "</span><br><span style="color: hsl(0, 100%, 40%);">- "on 0x%x SSRC: %u timestamp: %u "</span><br><span style="color: hsl(0, 100%, 40%);">- "from %s:%d\n",</span><br><span style="color: hsl(0, 100%, 40%);">- text, tsdelta,</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), sstate->ssrc, timestamp,</span><br><span style="color: hsl(0, 100%, 40%);">- inet_ntoa(addr->sin_addr), ntohs(addr->sin_port));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+ "The %s timestamp delta is %d "</span><br><span style="color: hsl(120, 100%, 40%);">+ "on SSRC: %u timestamp: %u "</span><br><span style="color: hsl(120, 100%, 40%);">+ "from %s:%d\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ text, tsdelta,</span><br><span style="color: hsl(120, 100%, 40%);">+ sstate->ssrc, timestamp,</span><br><span style="color: hsl(120, 100%, 40%);">+ inet_ntoa(addr->sin_addr), ntohs(addr->sin_port));</span><br><span> </span><br><span> return 0;</span><br><span> }</span><br><span> </span><br><span> if (sstate->last_tsdelta != tsdelta) {</span><br><span> if (sstate->last_tsdelta) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_INFO,</span><br><span style="color: hsl(0, 100%, 40%);">- "The %s timestamp delta changes from %d to %d "</span><br><span style="color: hsl(0, 100%, 40%);">- "on 0x%x SSRC: %u timestamp: %u from %s:%d\n",</span><br><span style="color: hsl(0, 100%, 40%);">- text, sstate->last_tsdelta, tsdelta,</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), sstate->ssrc, timestamp,</span><br><span style="color: hsl(0, 100%, 40%);">- inet_ntoa(addr->sin_addr), ntohs(addr->sin_port));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_INFO,</span><br><span style="color: hsl(120, 100%, 40%);">+ "The %s timestamp delta changes from %d to %d "</span><br><span style="color: hsl(120, 100%, 40%);">+ "on SSRC: %u timestamp: %u from %s:%d\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ text, sstate->last_tsdelta, tsdelta,</span><br><span style="color: hsl(120, 100%, 40%);">+ sstate->ssrc, timestamp,</span><br><span style="color: hsl(120, 100%, 40%);">+ inet_ntoa(addr->sin_addr), ntohs(addr->sin_port));</span><br><span> }</span><br><span> }</span><br><span> </span><br><span>@@ -278,18 +273,18 @@</span><br><span> </span><br><span> if (timestamp_error) {</span><br><span> rate_ctr_inc(sstate->err_ts_ctr);</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_NOTICE,</span><br><span style="color: hsl(0, 100%, 40%);">- "The %s timestamp has an alignment error of %d "</span><br><span style="color: hsl(0, 100%, 40%);">- "on 0x%x SSRC: %u "</span><br><span style="color: hsl(0, 100%, 40%);">- "SeqNo delta: %d, TS delta: %d, dTS/dSeq: %d "</span><br><span style="color: hsl(0, 100%, 40%);">- "from %s:%d. ptime: %d\n",</span><br><span style="color: hsl(0, 100%, 40%);">- text, timestamp_error,</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), sstate->ssrc,</span><br><span style="color: hsl(0, 100%, 40%);">- (int16_t)(seq - sstate->last_seq),</span><br><span style="color: hsl(0, 100%, 40%);">- (int32_t)(timestamp - sstate->last_timestamp),</span><br><span style="color: hsl(0, 100%, 40%);">- tsdelta,</span><br><span style="color: hsl(0, 100%, 40%);">- inet_ntoa(addr->sin_addr), ntohs(addr->sin_port),</span><br><span style="color: hsl(0, 100%, 40%);">- state->packet_duration);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+ "The %s timestamp has an alignment error of %d "</span><br><span style="color: hsl(120, 100%, 40%);">+ "on SSRC: %u "</span><br><span style="color: hsl(120, 100%, 40%);">+ "SeqNo delta: %d, TS delta: %d, dTS/dSeq: %d "</span><br><span style="color: hsl(120, 100%, 40%);">+ "from %s:%d. ptime: %d\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ text, timestamp_error,</span><br><span style="color: hsl(120, 100%, 40%);">+ sstate->ssrc,</span><br><span style="color: hsl(120, 100%, 40%);">+ (int16_t)(seq - sstate->last_seq),</span><br><span style="color: hsl(120, 100%, 40%);">+ (int32_t)(timestamp - sstate->last_timestamp),</span><br><span style="color: hsl(120, 100%, 40%);">+ tsdelta,</span><br><span style="color: hsl(120, 100%, 40%);">+ inet_ntoa(addr->sin_addr), ntohs(addr->sin_port),</span><br><span style="color: hsl(120, 100%, 40%);">+ state->packet_duration);</span><br><span> }</span><br><span> return 1;</span><br><span> }</span><br><span>@@ -308,21 +303,19 @@</span><br><span> if (tsdelta == 0) {</span><br><span> tsdelta = state->out_stream.last_tsdelta;</span><br><span> if (tsdelta != 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_NOTICE,</span><br><span style="color: hsl(0, 100%, 40%);">- "A fixed packet duration is not available on 0x%x, "</span><br><span style="color: hsl(0, 100%, 40%);">- "using last output timestamp delta instead: %d "</span><br><span style="color: hsl(0, 100%, 40%);">- "from %s:%d\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), tsdelta,</span><br><span style="color: hsl(0, 100%, 40%);">- inet_ntoa(addr->sin_addr), ntohs(addr->sin_port));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+ "A fixed packet duration is not available, "</span><br><span style="color: hsl(120, 100%, 40%);">+ "using last output timestamp delta instead: %d "</span><br><span style="color: hsl(120, 100%, 40%);">+ "from %s:%d\n", tsdelta,</span><br><span style="color: hsl(120, 100%, 40%);">+ inet_ntoa(addr->sin_addr), ntohs(addr->sin_port));</span><br><span> } else {</span><br><span> tsdelta = rtp_end->codec->rate * 20 / 1000;</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_NOTICE,</span><br><span style="color: hsl(0, 100%, 40%);">- "Fixed packet duration and last timestamp delta "</span><br><span style="color: hsl(0, 100%, 40%);">- "are not available on 0x%x, "</span><br><span style="color: hsl(0, 100%, 40%);">- "using fixed 20ms instead: %d "</span><br><span style="color: hsl(0, 100%, 40%);">- "from %s:%d\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), tsdelta,</span><br><span style="color: hsl(0, 100%, 40%);">- inet_ntoa(addr->sin_addr), ntohs(addr->sin_port));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+ "Fixed packet duration and last timestamp delta "</span><br><span style="color: hsl(120, 100%, 40%);">+ "are not available, "</span><br><span style="color: hsl(120, 100%, 40%);">+ "using fixed 20ms instead: %d "</span><br><span style="color: hsl(120, 100%, 40%);">+ "from %s:%d\n", tsdelta,</span><br><span style="color: hsl(120, 100%, 40%);">+ inet_ntoa(addr->sin_addr), ntohs(addr->sin_port));</span><br><span> }</span><br><span> }</span><br><span> </span><br><span>@@ -332,13 +325,12 @@</span><br><span> if (state->patch.timestamp_offset != timestamp_offset) {</span><br><span> state->patch.timestamp_offset = timestamp_offset;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_NOTICE,</span><br><span style="color: hsl(0, 100%, 40%);">- "Timestamp offset change on 0x%x SSRC: %u "</span><br><span style="color: hsl(0, 100%, 40%);">- "SeqNo delta: %d, TS offset: %d, "</span><br><span style="color: hsl(0, 100%, 40%);">- "from %s:%d\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), state->in_stream.ssrc,</span><br><span style="color: hsl(0, 100%, 40%);">- delta_seq, state->patch.timestamp_offset,</span><br><span style="color: hsl(0, 100%, 40%);">- inet_ntoa(addr->sin_addr), ntohs(addr->sin_port));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+ "Timestamp offset change on SSRC: %u "</span><br><span style="color: hsl(120, 100%, 40%);">+ "SeqNo delta: %d, TS offset: %d, "</span><br><span style="color: hsl(120, 100%, 40%);">+ "from %s:%d\n", state->in_stream.ssrc,</span><br><span style="color: hsl(120, 100%, 40%);">+ delta_seq, state->patch.timestamp_offset,</span><br><span style="color: hsl(120, 100%, 40%);">+ inet_ntoa(addr->sin_addr), ntohs(addr->sin_port));</span><br><span> }</span><br><span> </span><br><span> return timestamp_offset;</span><br><span>@@ -364,14 +356,13 @@</span><br><span> if (ts_error) {</span><br><span> state->patch.timestamp_offset += ptime - ts_error;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_NOTICE,</span><br><span style="color: hsl(0, 100%, 40%);">- "Corrected timestamp alignment error of %d on 0x%x SSRC: %u "</span><br><span style="color: hsl(0, 100%, 40%);">- "new TS offset: %d, "</span><br><span style="color: hsl(0, 100%, 40%);">- "from %s:%d\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ts_error,</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), state->in_stream.ssrc,</span><br><span style="color: hsl(0, 100%, 40%);">- state->patch.timestamp_offset, inet_ntoa(addr->sin_addr),</span><br><span style="color: hsl(0, 100%, 40%);">- ntohs(addr->sin_port));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+ "Corrected timestamp alignment error of %d on SSRC: %u "</span><br><span style="color: hsl(120, 100%, 40%);">+ "new TS offset: %d, "</span><br><span style="color: hsl(120, 100%, 40%);">+ "from %s:%d\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ ts_error, state->in_stream.ssrc,</span><br><span style="color: hsl(120, 100%, 40%);">+ state->patch.timestamp_offset, inet_ntoa(addr->sin_addr),</span><br><span style="color: hsl(120, 100%, 40%);">+ ntohs(addr->sin_port));</span><br><span> }</span><br><span> </span><br><span> /* Check we really managed to compensate the timestamp</span><br><span>@@ -397,8 +388,7 @@</span><br><span> struct mgcp_rtp_end *dst_end,</span><br><span> char *data, int *len, int buf_size)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_DEBUG, "endpoint:0x%x transcoding disabled\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_DEBUG, "transcoding disabled\n");</span><br><span> return 0;</span><br><span> }</span><br><span> </span><br><span>@@ -411,8 +401,7 @@</span><br><span> struct mgcp_conn_rtp *conn_dst,</span><br><span> struct mgcp_conn_rtp *conn_src)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_DEBUG, "endpoint:0x%x transcoding disabled\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_DEBUG, "transcoding disabled\n");</span><br><span> return 0;</span><br><span> }</span><br><span> </span><br><span>@@ -421,9 +410,8 @@</span><br><span> const char **fmtp_extra,</span><br><span> struct mgcp_conn_rtp *conn)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_DEBUG,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x conn:%s using format defaults\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), mgcp_conn_dump(conn->conn));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_DEBUG, "conn:%s using format defaults\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ mgcp_conn_dump(conn->conn));</span><br><span> </span><br><span> *codec = conn->end.codec;</span><br><span> *fmtp_extra = conn->end.fmtp_extra;</span><br><span>@@ -459,9 +447,9 @@</span><br><span> if (seq < state->stats.max_seq)</span><br><span> state->stats.cycles += RTP_SEQ_MOD;</span><br><span> } else if (udelta <= RTP_SEQ_MOD - RTP_MAX_MISORDER) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_NOTICE,</span><br><span style="color: hsl(0, 100%, 40%);">- "RTP seqno made a very large jump on 0x%x delta: %u\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), udelta);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+ "RTP seqno made a very large jump on delta: %u\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ udelta);</span><br><span> }</span><br><span> }</span><br><span> </span><br><span>@@ -541,28 +529,27 @@</span><br><span> state->out_stream.last_tsdelta = 0;</span><br><span> state->out_stream.last_timestamp = timestamp;</span><br><span> state->out_stream.ssrc = ssrc - 1; /* force output SSRC change */</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_INFO,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x initializing stream, SSRC: %u timestamp: %u "</span><br><span style="color: hsl(0, 100%, 40%);">- "pkt-duration: %d, from %s:%d\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), state->in_stream.ssrc,</span><br><span style="color: hsl(0, 100%, 40%);">- state->patch.seq_offset, state->packet_duration,</span><br><span style="color: hsl(0, 100%, 40%);">- inet_ntoa(addr->sin_addr), ntohs(addr->sin_port));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_INFO,</span><br><span style="color: hsl(120, 100%, 40%);">+ "initializing stream, SSRC: %u timestamp: %u "</span><br><span style="color: hsl(120, 100%, 40%);">+ "pkt-duration: %d, from %s:%d\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ state->in_stream.ssrc,</span><br><span style="color: hsl(120, 100%, 40%);">+ state->patch.seq_offset, state->packet_duration,</span><br><span style="color: hsl(120, 100%, 40%);">+ inet_ntoa(addr->sin_addr), ntohs(addr->sin_port));</span><br><span> if (state->packet_duration == 0) {</span><br><span> state->packet_duration =</span><br><span> rtp_end->codec->rate * 20 / 1000;</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_NOTICE,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x fixed packet duration is not available, "</span><br><span style="color: hsl(0, 100%, 40%);">- "using fixed 20ms instead: %d from %s:%d\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), state->packet_duration,</span><br><span style="color: hsl(0, 100%, 40%);">- inet_ntoa(addr->sin_addr), ntohs(addr->sin_port));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+ "fixed packet duration is not available, "</span><br><span style="color: hsl(120, 100%, 40%);">+ "using fixed 20ms instead: %d from %s:%d\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ state->packet_duration,</span><br><span style="color: hsl(120, 100%, 40%);">+ inet_ntoa(addr->sin_addr), ntohs(addr->sin_port));</span><br><span> }</span><br><span> } else if (state->in_stream.ssrc != ssrc) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_NOTICE,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x SSRC changed: %u -> %u "</span><br><span style="color: hsl(0, 100%, 40%);">- "from %s:%d\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp),</span><br><span style="color: hsl(0, 100%, 40%);">- state->in_stream.ssrc, rtp_hdr->ssrc,</span><br><span style="color: hsl(0, 100%, 40%);">- inet_ntoa(addr->sin_addr), ntohs(addr->sin_port));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+ "SSRC changed: %u -> %u "</span><br><span style="color: hsl(120, 100%, 40%);">+ "from %s:%d\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ state->in_stream.ssrc, rtp_hdr->ssrc,</span><br><span style="color: hsl(120, 100%, 40%);">+ inet_ntoa(addr->sin_addr), ntohs(addr->sin_port));</span><br><span> </span><br><span> state->in_stream.ssrc = ssrc;</span><br><span> if (rtp_end->force_constant_ssrc) {</span><br><span>@@ -586,13 +573,12 @@</span><br><span> if (rtp_end->force_constant_ssrc != -1)</span><br><span> rtp_end->force_constant_ssrc -= 1;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_NOTICE,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x SSRC patching enabled, SSRC: %u "</span><br><span style="color: hsl(0, 100%, 40%);">- "SeqNo offset: %d, TS offset: %d "</span><br><span style="color: hsl(0, 100%, 40%);">- "from %s:%d\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), state->in_stream.ssrc,</span><br><span style="color: hsl(0, 100%, 40%);">- state->patch.seq_offset, state->patch.timestamp_offset,</span><br><span style="color: hsl(0, 100%, 40%);">- inet_ntoa(addr->sin_addr), ntohs(addr->sin_port));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+ "SSRC patching enabled, SSRC: %u "</span><br><span style="color: hsl(120, 100%, 40%);">+ "SeqNo offset: %d, TS offset: %d "</span><br><span style="color: hsl(120, 100%, 40%);">+ "from %s:%d\n", state->in_stream.ssrc,</span><br><span style="color: hsl(120, 100%, 40%);">+ state->patch.seq_offset, state->patch.timestamp_offset,</span><br><span style="color: hsl(120, 100%, 40%);">+ inet_ntoa(addr->sin_addr), ntohs(addr->sin_port));</span><br><span> }</span><br><span> </span><br><span> state->in_stream.last_tsdelta = 0;</span><br><span>@@ -679,9 +665,8 @@</span><br><span> } else {</span><br><span> /* It is possible that multiple payloads occur in one RTP</span><br><span> * packet. This is not supported yet. */</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x cannot figure out how to convert RTP packet\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "cannot figure out how to convert RTP packet\n");</span><br><span> }</span><br><span> }</span><br><span> </span><br><span>@@ -726,9 +711,8 @@</span><br><span> rc = payload_len;</span><br><span> }</span><br><span> if (rc < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x AMR RTP packet conversion failed\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "AMR RTP packet conversion failed\n");</span><br><span> return -EINVAL;</span><br><span> }</span><br><span> </span><br><span>@@ -810,19 +794,14 @@</span><br><span> OSMO_ASSERT(conn_dst);</span><br><span> </span><br><span> if (is_rtp) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_DEBUG,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x delivering RTP packet...\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_DEBUG, "delivering RTP packet...\n");</span><br><span> } else {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_DEBUG,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x delivering RTCP packet...\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_DEBUG, "delivering RTCP packet...\n");</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_DEBUG,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x loop:%d, mode:%d%s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), tcfg->audio_loop, conn_src->conn->mode,</span><br><span style="color: hsl(0, 100%, 40%);">- conn_src->conn->mode == MGCP_CONN_LOOPBACK ? " (loopback)" : "");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_DEBUG, "loop:%d, mode:%d%s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ tcfg->audio_loop, conn_src->conn->mode,</span><br><span style="color: hsl(120, 100%, 40%);">+ conn_src->conn->mode == MGCP_CONN_LOOPBACK ? " (loopback)" : "");</span><br><span> </span><br><span> /* FIXME: It is legal that the payload type on the egress connection is</span><br><span> * different from the payload type that has been negotiated on the</span><br><span>@@ -835,9 +814,8 @@</span><br><span> if (is_rtp) {</span><br><span> rc = mgcp_patch_pt(conn_src, conn_dst, buf, len);</span><br><span> if (rc < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_DEBUG,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x can not patch PT because no suitable egress codec was found.\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_DEBUG,</span><br><span style="color: hsl(120, 100%, 40%);">+ "can not patch PT because no suitable egress codec was found.\n");</span><br><span> }</span><br><span> }</span><br><span> </span><br><span>@@ -849,13 +827,12 @@</span><br><span> </span><br><span> if (!rtp_end->output_enabled) {</span><br><span> rate_ctr_inc(&conn_dst->rate_ctr_group->ctr[RTP_DROPPED_PACKETS_CTR]);</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_DEBUG,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x output disabled, drop to %s %s "</span><br><span style="color: hsl(0, 100%, 40%);">- "rtp_port:%u rtcp_port:%u\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp),</span><br><span style="color: hsl(0, 100%, 40%);">- dest_name,</span><br><span style="color: hsl(0, 100%, 40%);">- inet_ntoa(rtp_end->addr),</span><br><span style="color: hsl(0, 100%, 40%);">- ntohs(rtp_end->rtp_port), ntohs(rtp_end->rtcp_port)</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_DEBUG,</span><br><span style="color: hsl(120, 100%, 40%);">+ "output disabled, drop to %s %s "</span><br><span style="color: hsl(120, 100%, 40%);">+ "rtp_port:%u rtcp_port:%u\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ dest_name,</span><br><span style="color: hsl(120, 100%, 40%);">+ inet_ntoa(rtp_end->addr),</span><br><span style="color: hsl(120, 100%, 40%);">+ ntohs(rtp_end->rtp_port), ntohs(rtp_end->rtcp_port)</span><br><span> );</span><br><span> } else if (is_rtp) {</span><br><span> int cont;</span><br><span>@@ -882,13 +859,12 @@</span><br><span> "GSM-HR-08") == 0)</span><br><span> rfc5993_hr_convert(endp, buf, &buflen);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_DEBUG,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x process/send to %s %s "</span><br><span style="color: hsl(0, 100%, 40%);">- "rtp_port:%u rtcp_port:%u\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), dest_name,</span><br><span style="color: hsl(0, 100%, 40%);">- inet_ntoa(rtp_end->addr), ntohs(rtp_end->rtp_port),</span><br><span style="color: hsl(0, 100%, 40%);">- ntohs(rtp_end->rtcp_port)</span><br><span style="color: hsl(0, 100%, 40%);">- );</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_DEBUG,</span><br><span style="color: hsl(120, 100%, 40%);">+ "process/send to %s %s "</span><br><span style="color: hsl(120, 100%, 40%);">+ "rtp_port:%u rtcp_port:%u\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ dest_name, inet_ntoa(rtp_end->addr),</span><br><span style="color: hsl(120, 100%, 40%);">+ ntohs(rtp_end->rtp_port), ntohs(rtp_end->rtcp_port)</span><br><span style="color: hsl(120, 100%, 40%);">+ );</span><br><span> </span><br><span> /* Forward a copy of the RTP data to a debug ip/port */</span><br><span> forward_data(rtp_end->rtp.fd, &conn_src->tap_out,</span><br><span>@@ -906,10 +882,9 @@</span><br><span> data[0] = 0xe4;</span><br><span> data[1] = 0x00;</span><br><span> rtp_state->patched_first_rtp_payload = true;</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_DEBUG,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x Patching over first two bytes"</span><br><span style="color: hsl(0, 100%, 40%);">- " to fake an IuUP Initialization Ack\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_DEBUG,</span><br><span style="color: hsl(120, 100%, 40%);">+ "Patching over first two bytes"</span><br><span style="color: hsl(120, 100%, 40%);">+ " to fake an IuUP Initialization Ack\n");</span><br><span> }</span><br><span> }</span><br><span> </span><br><span>@@ -928,13 +903,11 @@</span><br><span> } while (buflen > 0);</span><br><span> return nbytes;</span><br><span> } else if (!tcfg->omit_rtcp) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_DEBUG,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x send to %s %s rtp_port:%u rtcp_port:%u\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp),</span><br><span style="color: hsl(0, 100%, 40%);">- dest_name,</span><br><span style="color: hsl(0, 100%, 40%);">- inet_ntoa(rtp_end->addr),</span><br><span style="color: hsl(0, 100%, 40%);">- ntohs(rtp_end->rtp_port), ntohs(rtp_end->rtcp_port)</span><br><span style="color: hsl(0, 100%, 40%);">- );</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_DEBUG,</span><br><span style="color: hsl(120, 100%, 40%);">+ "send to %s %s rtp_port:%u rtcp_port:%u\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ dest_name, inet_ntoa(rtp_end->addr),</span><br><span style="color: hsl(120, 100%, 40%);">+ ntohs(rtp_end->rtp_port), ntohs(rtp_end->rtcp_port)</span><br><span style="color: hsl(120, 100%, 40%);">+ );</span><br><span> </span><br><span> len = mgcp_udp_send(rtp_end->rtcp.fd,</span><br><span> &rtp_end->addr,</span><br><span>@@ -970,20 +943,19 @@</span><br><span> </span><br><span> rc = recvfrom(fd, buf, bufsize, 0, (struct sockaddr *)addr, &slen);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_DEBUG,</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_DEBUG,</span><br><span> "receiving %u bytes length packet from %s:%u ...\n",</span><br><span> rc, inet_ntoa(addr->sin_addr), ntohs(addr->sin_port));</span><br><span> </span><br><span> if (rc < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x failed to receive packet, errno: %d/%s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), errno, strerror(errno));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "failed to receive packet, errno: %d/%s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ errno, strerror(errno));</span><br><span> return -1;</span><br><span> }</span><br><span> </span><br><span> if (tossed) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_ERROR, "endpoint:0x%x packet tossed\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_ERROR, "packet tossed\n");</span><br><span> }</span><br><span> </span><br><span> return rc;</span><br><span>@@ -994,9 +966,6 @@</span><br><span> static int check_rtp_origin(struct mgcp_conn_rtp *conn,</span><br><span> struct sockaddr_in *addr)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- struct mgcp_endpoint *endp;</span><br><span style="color: hsl(0, 100%, 40%);">- endp = conn->conn->endp;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> if (conn->end.addr.s_addr == 0) {</span><br><span> switch (conn->conn->mode) {</span><br><span> case MGCP_CONN_LOOPBACK:</span><br><span>@@ -1007,20 +976,18 @@</span><br><span> * Response is received, but the nano3G expects an IuUP Initialization Ack before it even</span><br><span> * sends the RAB Assignment Response. Hence, if the remote address is 0.0.0.0 and the</span><br><span> * MGCP port is in loopback mode, allow looping back the packet to any source. */</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x In loopback mode and remote address not set:"</span><br><span style="color: hsl(0, 100%, 40%);">- " allowing data from address: %s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), inet_ntoa(addr->sin_addr));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DRTP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "In loopback mode and remote address not set:"</span><br><span style="color: hsl(120, 100%, 40%);">+ " allowing data from address: %s\n", inet_ntoa(addr->sin_addr));</span><br><span> return 0;</span><br><span> </span><br><span> default:</span><br><span> /* Receiving early media before the endpoint is configured. Instead of logging</span><br><span> * this as an error that occurs on every call, keep it more low profile to not</span><br><span> * confuse humans with expected errors. */</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_INFO,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x I:%s Rx RTP from %s, but remote address not set:"</span><br><span style="color: hsl(0, 100%, 40%);">- " dropping early media\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), conn->conn->id, inet_ntoa(addr->sin_addr));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DRTP, LOGL_INFO,</span><br><span style="color: hsl(120, 100%, 40%);">+ "Rx RTP from %s, but remote address not set:"</span><br><span style="color: hsl(120, 100%, 40%);">+ " dropping early media\n", inet_ntoa(addr->sin_addr));</span><br><span> return -1;</span><br><span> }</span><br><span> }</span><br><span>@@ -1028,13 +995,11 @@</span><br><span> /* Note: Check if the inbound RTP data comes from the same host to</span><br><span> * which we send our outgoing RTP traffic. */</span><br><span> if (conn->end.addr.s_addr != addr->sin_addr.s_addr) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x data from wrong address: %s, ",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), inet_ntoa(addr->sin_addr));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DRTP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "data from wrong address: %s, ", inet_ntoa(addr->sin_addr));</span><br><span> LOGPC(DRTP, LOGL_ERROR, "expected: %s\n",</span><br><span> inet_ntoa(conn->end.addr));</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_ERROR, "endpoint:0x%x packet tossed\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DRTP, LOGL_ERROR, "packet tossed\n");</span><br><span> return -1;</span><br><span> }</span><br><span> </span><br><span>@@ -1044,14 +1009,12 @@</span><br><span> * plausibility. */</span><br><span> if (conn->end.rtp_port != addr->sin_port &&</span><br><span> conn->end.rtcp_port != addr->sin_port) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x data from wrong source port: %d, ",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), ntohs(addr->sin_port));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DRTP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "data from wrong source port: %d, ", ntohs(addr->sin_port));</span><br><span> LOGPC(DRTP, LOGL_ERROR,</span><br><span> "expected: %d for RTP or %d for RTCP\n",</span><br><span> ntohs(conn->end.rtp_port), ntohs(conn->end.rtcp_port));</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_ERROR, "endpoint:0x%x packet tossed\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DRTP, LOGL_ERROR, "packet tossed\n");</span><br><span> return -1;</span><br><span> }</span><br><span> </span><br><span>@@ -1062,29 +1025,26 @@</span><br><span> * makes sense */</span><br><span> static int check_rtp_destin(struct mgcp_conn_rtp *conn)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- struct mgcp_endpoint *endp;</span><br><span style="color: hsl(0, 100%, 40%);">- endp = conn->conn->endp;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span> /* Note: it is legal to create a connection but never setting a port</span><br><span> * and IP-address for outgoing data. */</span><br><span> if (strcmp(inet_ntoa(conn->end.addr), "0.0.0.0") == 0 && conn->end.rtp_port == 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_DEBUG,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x destination IP-address and rtp port is (not yet) known (%s:%u)\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), inet_ntoa(conn->end.addr), conn->end.rtp_port);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DRTP, LOGL_DEBUG,</span><br><span style="color: hsl(120, 100%, 40%);">+ "destination IP-address and rtp port is (not yet) known (%s:%u)\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ inet_ntoa(conn->end.addr), conn->end.rtp_port);</span><br><span> return -1;</span><br><span> }</span><br><span> </span><br><span> if (strcmp(inet_ntoa(conn->end.addr), "0.0.0.0") == 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x destination IP-address is invalid (%s:%u)\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), inet_ntoa(conn->end.addr), conn->end.rtp_port);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DRTP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "destination IP-address is invalid (%s:%u)\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ inet_ntoa(conn->end.addr), conn->end.rtp_port);</span><br><span> return -1;</span><br><span> }</span><br><span> </span><br><span> if (conn->end.rtp_port == 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x destination rtp port is invalid (%s:%u)\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), inet_ntoa(conn->end.addr), conn->end.rtp_port);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DRTP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "destination rtp port is invalid (%s:%u)\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ inet_ntoa(conn->end.addr), conn->end.rtp_port);</span><br><span> return -1;</span><br><span> }</span><br><span> </span><br><span>@@ -1152,8 +1112,7 @@</span><br><span> endp = conn->conn->endp;</span><br><span> tcfg = endp->tcfg;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_DEBUG, "endpoint:0x%x receiving RTP/RTCP packet...\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DRTP, LOGL_DEBUG, "receiving RTP/RTCP packet...\n");</span><br><span> </span><br><span> rc = receive_from(endp, fd->fd, addr, buf, buf_size);</span><br><span> if (rc <= 0)</span><br><span>@@ -1167,26 +1126,23 @@</span><br><span> </span><br><span> if (*proto == MGCP_PROTO_RTP) {</span><br><span> if (check_rtp(buf, rc) < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x invalid RTP packet received -- packet tossed\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DRTP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "invalid RTP packet received -- packet tossed\n");</span><br><span> return -1;</span><br><span> }</span><br><span> } else if (*proto == MGCP_PROTO_RTCP) {</span><br><span> if (check_rtcp(buf, rc) < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x invalid RTCP packet received -- packet tossed\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DRTP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "invalid RTCP packet received -- packet tossed\n");</span><br><span> return -1;</span><br><span> }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_DEBUG, "endpoint:0x%x ", ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DRTP, LOGL_DEBUG, "");</span><br><span> LOGPC(DRTP, LOGL_DEBUG, "receiving from %s %s %d\n",</span><br><span> conn->conn->name, inet_ntoa(addr->sin_addr),</span><br><span> ntohs(addr->sin_port));</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_DEBUG, "endpoint:0x%x conn:%s\n", ENDPOINT_NUMBER(endp),</span><br><span style="color: hsl(0, 100%, 40%);">- mgcp_conn_dump(conn->conn));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_DEBUG, "conn:%s\n", mgcp_conn_dump(conn->conn));</span><br><span> </span><br><span> /* Check if the origin of the RTP packet seems plausible */</span><br><span> if (tcfg->rtp_accept_all == 0) {</span><br><span>@@ -1196,11 +1152,10 @@</span><br><span> </span><br><span> /* Filter out dummy message */</span><br><span> if (rc == 1 && buf[0] == MGCP_DUMMY_LOAD) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_NOTICE,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x dummy message received\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x packet tossed\n", ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DRTP, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+ "dummy message received\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DRTP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "packet tossed\n");</span><br><span> return 0;</span><br><span> }</span><br><span> </span><br><span>@@ -1224,8 +1179,8 @@</span><br><span> struct mgcp_endpoint *endp;</span><br><span> endp = conn_src->conn->endp;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_DEBUG, "endpoint:0x%x destin conn:%s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), mgcp_conn_dump(conn_dst->conn));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_DEBUG, "destin conn:%s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ mgcp_conn_dump(conn_dst->conn));</span><br><span> </span><br><span> /* Before we try to deliver the packet, we check if the destination</span><br><span> * port and IP-Address make sense at all. If not, we will be unable</span><br><span>@@ -1237,27 +1192,23 @@</span><br><span> * destination connection. */</span><br><span> switch (conn_dst->type) {</span><br><span> case MGCP_RTP_DEFAULT:</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_DEBUG,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x endpoint type is MGCP_RTP_DEFAULT, "</span><br><span style="color: hsl(0, 100%, 40%);">- "using mgcp_send() to forward data directly\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_DEBUG,</span><br><span style="color: hsl(120, 100%, 40%);">+ "endpoint type is MGCP_RTP_DEFAULT, "</span><br><span style="color: hsl(120, 100%, 40%);">+ "using mgcp_send() to forward data directly\n");</span><br><span> return mgcp_send(endp, proto == MGCP_PROTO_RTP,</span><br><span> addr, buf, buf_size, conn_src, conn_dst);</span><br><span> case MGCP_OSMUX_BSC_NAT:</span><br><span> case MGCP_OSMUX_BSC:</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_DEBUG,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x endpoint type is MGCP_OSMUX_BSC_NAT, "</span><br><span style="color: hsl(0, 100%, 40%);">- "using osmux_xfrm_to_osmux() to forward data through OSMUX\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_DEBUG,</span><br><span style="color: hsl(120, 100%, 40%);">+ "endpoint type is MGCP_OSMUX_BSC_NAT, "</span><br><span style="color: hsl(120, 100%, 40%);">+ "using osmux_xfrm_to_osmux() to forward data through OSMUX\n");</span><br><span> return osmux_xfrm_to_osmux(buf, buf_size, conn_dst);</span><br><span> }</span><br><span> </span><br><span> /* If the data has not been handled/forwarded until here, it will</span><br><span> * be discarded, this should not happen, normally the MGCP type</span><br><span> * should be properly set */</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x bad MGCP type -- data discarded!\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_ERROR, "bad MGCP type -- data discarded!\n");</span><br><span> </span><br><span> return -1;</span><br><span> }</span><br><span>@@ -1273,8 +1224,6 @@</span><br><span> unsigned int buf_size, struct mgcp_conn *conn)</span><br><span> {</span><br><span> struct mgcp_conn *conn_dst;</span><br><span style="color: hsl(0, 100%, 40%);">- struct mgcp_endpoint *endp;</span><br><span style="color: hsl(0, 100%, 40%);">- endp = conn->endp;</span><br><span> </span><br><span> /*! NOTE: This callback function implements the endpoint specific</span><br><span> * dispatch bahviour of an rtp bridge/proxy endpoint. It is assumed</span><br><span>@@ -1300,17 +1249,15 @@</span><br><span> </span><br><span> /* There is no destination conn, stop here */</span><br><span> if (!conn_dst) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x unable to find destination conn\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn, DRTP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "unable to find destination conn\n");</span><br><span> return -1;</span><br><span> }</span><br><span> </span><br><span> /* The destination conn is not an RTP connection */</span><br><span> if (conn_dst->type != MGCP_CONN_TYPE_RTP) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x unable to find suitable destination conn\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn, DRTP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "unable to find suitable destination conn\n");</span><br><span> return -1;</span><br><span> }</span><br><span> </span><br><span>@@ -1362,8 +1309,8 @@</span><br><span> endp = conn_src->conn->endp;</span><br><span> OSMO_ASSERT(endp);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_DEBUG, "endpoint:0x%x source conn:%s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), mgcp_conn_dump(conn_src->conn));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_DEBUG, "source conn:%s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ mgcp_conn_dump(conn_src->conn));</span><br><span> </span><br><span> /* Receive packet */</span><br><span> len = mgcp_recv(&proto, &addr, buf, sizeof(buf), fd);</span><br><span>@@ -1444,20 +1391,21 @@</span><br><span> {</span><br><span> /* NOTE: The port that is used for RTCP is the RTP port incremented by one</span><br><span> * (e.g. RTP-Port = 16000 ==> RTCP-Port = 16001) */</span><br><span style="color: hsl(120, 100%, 40%);">+ struct mgcp_endpoint *endp = &cfg->trunk.endpoints[endpno];</span><br><span> </span><br><span> if (mgcp_create_bind(source_addr, &rtp_end->rtp,</span><br><span> rtp_end->local_port) != 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x failed to create RTP port: %s:%d\n", endpno,</span><br><span style="color: hsl(0, 100%, 40%);">- source_addr, rtp_end->local_port);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "failed to create RTP port: %s:%d\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ source_addr, rtp_end->local_port);</span><br><span> goto cleanup0;</span><br><span> }</span><br><span> </span><br><span> if (mgcp_create_bind(source_addr, &rtp_end->rtcp,</span><br><span> rtp_end->local_port + 1) != 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x failed to create RTCP port: %s:%d\n", endpno,</span><br><span style="color: hsl(0, 100%, 40%);">- source_addr, rtp_end->local_port + 1);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "failed to create RTCP port: %s:%d\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ source_addr, rtp_end->local_port + 1);</span><br><span> goto cleanup1;</span><br><span> }</span><br><span> </span><br><span>@@ -1467,17 +1415,17 @@</span><br><span> </span><br><span> rtp_end->rtp.when = BSC_FD_READ;</span><br><span> if (osmo_fd_register(&rtp_end->rtp) != 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x failed to register RTP port %d\n", endpno,</span><br><span style="color: hsl(0, 100%, 40%);">- rtp_end->local_port);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "failed to register RTP port %d\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ rtp_end->local_port);</span><br><span> goto cleanup2;</span><br><span> }</span><br><span> </span><br><span> rtp_end->rtcp.when = BSC_FD_READ;</span><br><span> if (osmo_fd_register(&rtp_end->rtcp) != 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x failed to register RTCP port %d\n", endpno,</span><br><span style="color: hsl(0, 100%, 40%);">- rtp_end->local_port + 1);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "failed to register RTCP port %d\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ rtp_end->local_port + 1);</span><br><span> goto cleanup3;</span><br><span> }</span><br><span> </span><br><span>@@ -1511,10 +1459,8 @@</span><br><span> end = &conn->end;</span><br><span> </span><br><span> if (end->rtp.fd != -1 || end->rtcp.fd != -1) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DRTP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:0x%x %u was already bound on conn:%s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), rtp_port,</span><br><span style="color: hsl(0, 100%, 40%);">- mgcp_conn_dump(conn->conn));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DRTP, LOGL_ERROR, "%u was already bound on conn:%s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ rtp_port, mgcp_conn_dump(conn->conn));</span><br><span> </span><br><span> /* Double bindings should never occour! Since we always allocate</span><br><span> * connections dynamically and free them when they are not</span><br><span>diff --git a/src/libosmo-mgcp/mgcp_protocol.c b/src/libosmo-mgcp/mgcp_protocol.c</span><br><span>index 9be4eda..be161ad 100644</span><br><span>--- a/src/libosmo-mgcp/mgcp_protocol.c</span><br><span>+++ b/src/libosmo-mgcp/mgcp_protocol.c</span><br><span>@@ -148,16 +148,14 @@</span><br><span> struct mgcp_conn *_conn;</span><br><span> </span><br><span> if (conn->type != MGCP_RTP_DEFAULT) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_NOTICE,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:%x RTP-setup: Endpoint is not configured as RTP default, stopping here!\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+ "RTP-setup: Endpoint is not configured as RTP default, stopping here!\n");</span><br><span> return 0;</span><br><span> }</span><br><span> </span><br><span> if (conn->conn->mode == MGCP_CONN_LOOPBACK) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_NOTICE,</span><br><span style="color: hsl(0, 100%, 40%);">- "endpoint:%x RTP-setup: Endpoint is in loopback mode, stopping here!\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+ "RTP-setup: Endpoint is in loopback mode, stopping here!\n");</span><br><span> return 0;</span><br><span> }</span><br><span> </span><br><span>@@ -225,13 +223,13 @@</span><br><span> len = snprintf((char *)res->data, 2048, "%d %s%s%s\r\n%s",</span><br><span> code, trans, txt, param ? param : "", sdp ? sdp : "");</span><br><span> if (len < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR, "Failed to sprintf MGCP response.\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_ERROR, "Failed to sprintf MGCP response.\n");</span><br><span> msgb_free(res);</span><br><span> return NULL;</span><br><span> }</span><br><span> </span><br><span> res->l2h = msgb_put(res, len);</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_DEBUG, "Generated response: code=%d\n", code);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_DEBUG, "Generated response: code=%d\n", code);</span><br><span> mgcp_disp_msg(res->l2h, msgb_l2len(res), "Generated response");</span><br><span> </span><br><span> /*</span><br><span>@@ -430,7 +428,7 @@</span><br><span> /* AUEP command handler, processes the received command */</span><br><span> static struct msgb *handle_audit_endpoint(struct mgcp_parse_data *p)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_NOTICE, "AUEP: auditing endpoint ...\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(p->endp, DLMGCP, LOGL_NOTICE, "AUEP: auditing endpoint ...\n");</span><br><span> return create_ok_response(p->endp, 200, "AUEP", p->trans);</span><br><span> }</span><br><span> </span><br><span>@@ -469,9 +467,9 @@</span><br><span> </span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "Allocating a RTP/RTCP port failed %u times 0x%x.\n",</span><br><span style="color: hsl(0, 100%, 40%);">- tries, ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "Allocating a RTP/RTCP port failed %u times.\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ tries);</span><br><span> return -1;</span><br><span> }</span><br><span> </span><br><span>@@ -654,11 +652,11 @@</span><br><span> rtp->force_constant_ssrc = patch_ssrc ? 1 : 0;</span><br><span> rtp->rfc5993_hr_convert = tcfg->rfc5993_hr_convert;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_DEBUG,</span><br><span style="color: hsl(0, 100%, 40%);">- "Configuring RTP endpoint: local port %d%s%s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ntohs(rtp->rtp_port),</span><br><span style="color: hsl(0, 100%, 40%);">- rtp->force_aligned_timing ? ", force constant timing" : "",</span><br><span style="color: hsl(0, 100%, 40%);">- rtp->force_constant_ssrc ? ", force constant ssrc" : "");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_DEBUG,</span><br><span style="color: hsl(120, 100%, 40%);">+ "Configuring RTP endpoint: local port %d%s%s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ ntohs(rtp->rtp_port),</span><br><span style="color: hsl(120, 100%, 40%);">+ rtp->force_aligned_timing ? ", force constant timing" : "",</span><br><span style="color: hsl(120, 100%, 40%);">+ rtp->force_constant_ssrc ? ", force constant ssrc" : "");</span><br><span> }</span><br><span> </span><br><span> uint32_t mgcp_rtp_packet_duration(struct mgcp_endpoint *endp,</span><br><span>@@ -684,10 +682,10 @@</span><br><span> {</span><br><span> if (!endp->cfg->osmux_init) {</span><br><span> if (osmux_init(OSMUX_ROLE_BSC, endp->cfg) < 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR, "Cannot init OSMUX\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_ERROR, "Cannot init OSMUX\n");</span><br><span> return -1;</span><br><span> }</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_NOTICE, "OSMUX socket has been set up\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_NOTICE, "OSMUX socket has been set up\n");</span><br><span> }</span><br><span> </span><br><span> return mgcp_parse_osmux_cid(line);</span><br><span>@@ -713,9 +711,8 @@</span><br><span> mgcp_codec_reset_all(conn);</span><br><span> rc = mgcp_parse_sdp_data(endp, conn, p);</span><br><span> if (rc != 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "%s: endpoint:%x sdp not parseable\n", cmd,</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "%s: sdp not parseable\n", cmd);</span><br><span> </span><br><span> /* See also RFC 3661: Protocol error */</span><br><span> return 510;</span><br><span>@@ -747,9 +744,8 @@</span><br><span> return 0;</span><br><span> </span><br><span> error:</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "%s: endpoint:0x%x codec negotiation failure\n", cmd,</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "%s: codec negotiation failure\n", cmd);</span><br><span> </span><br><span> /* See also RFC 3661: Codec negotiation failure */</span><br><span> return 534;</span><br><span>@@ -772,8 +768,7 @@</span><br><span> if (!strcmp(token, "C"))</span><br><span> endp->x_osmo_ign |= MGCP_X_OSMO_IGN_CALLID;</span><br><span> else</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR, "endpoint 0x%x: received unknown X-Osmo-IGN item '%s'\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), token);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_ERROR, "received unknown X-Osmo-IGN item '%s'\n", token);</span><br><span> }</span><br><span> </span><br><span> return true;</span><br><span>@@ -796,7 +791,7 @@</span><br><span> char conn_name[512];</span><br><span> int rc;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_NOTICE, "CRCX: creating new connection ...\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_NOTICE, "CRCX: creating new connection ...\n");</span><br><span> </span><br><span> /* parse CallID C: and LocalParameters L: */</span><br><span> for_each_line(line, p->save) {</span><br><span>@@ -838,9 +833,8 @@</span><br><span> have_sdp = 1;</span><br><span> goto mgcp_header_done;</span><br><span> default:</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_NOTICE,</span><br><span style="color: hsl(0, 100%, 40%);">- "CRCX: endpoint:%x unhandled option: '%c'/%d\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), *line, *line);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+ "CRCX: unhandled option: '%c'/%d\n", *line, *line);</span><br><span> rate_ctr_inc(&rate_ctrs->ctr[MGCP_CRCX_FAIL_UNHANDLED_PARAM]);</span><br><span> return create_err_response(NULL, 539, "CRCX", p->trans);</span><br><span> break;</span><br><span>@@ -850,26 +844,24 @@</span><br><span> mgcp_header_done:</span><br><span> /* Check parameters */</span><br><span> if (!callid) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "CRCX: endpoint:%x insufficient parameters, missing callid\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "CRCX: insufficient parameters, missing callid\n");</span><br><span> rate_ctr_inc(&rate_ctrs->ctr[MGCP_CRCX_FAIL_MISSING_CALLID]);</span><br><span> return create_err_response(endp, 516, "CRCX", p->trans);</span><br><span> }</span><br><span> </span><br><span> if (!mode) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "CRCX: endpoint:%x insufficient parameters, missing mode\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "CRCX: insufficient parameters, missing mode\n");</span><br><span> rate_ctr_inc(&rate_ctrs->ctr[MGCP_CRCX_FAIL_INVALID_MODE]);</span><br><span> return create_err_response(endp, 517, "CRCX", p->trans);</span><br><span> }</span><br><span> </span><br><span> /* Check if we are able to accept the creation of another connection */</span><br><span> if (llist_count(&endp->conns) >= endp->type->max_conns) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "CRCX: endpoint:%x endpoint full, max. %i connections allowed!\n",</span><br><span style="color: hsl(0, 100%, 40%);">- endp->type->max_conns, ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "CRCX: endpoint full, max. %i connections allowed!\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ endp->type->max_conns);</span><br><span> if (tcfg->force_realloc) {</span><br><span> /* There is no more room for a connection, make some</span><br><span> * room by blindly tossing the oldest of the two two</span><br><span>@@ -886,9 +878,9 @@</span><br><span> /* Check if this endpoint already serves a call, if so, check if the</span><br><span> * callids match up so that we are sure that this is our call */</span><br><span> if (endp->callid && mgcp_verify_call_id(endp, callid)) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "CRCX: endpoint:0x%x allready seized by other call (%s)\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), endp->callid);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "CRCX: already seized by other call (%s)\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ endp->callid);</span><br><span> if (tcfg->force_realloc)</span><br><span> /* This is not our call, toss everything by releasing</span><br><span> * the entire endpoint. (rude!) */</span><br><span>@@ -909,9 +901,8 @@</span><br><span> snprintf(conn_name, sizeof(conn_name), "%s", callid);</span><br><span> _conn = mgcp_conn_alloc(NULL, endp, MGCP_CONN_TYPE_RTP, conn_name);</span><br><span> if (!_conn) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "CRCX: endpoint:0x%x unable to allocate RTP connection\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "CRCX: unable to allocate RTP connection\n");</span><br><span> rate_ctr_inc(&rate_ctrs->ctr[MGCP_CRCX_FAIL_ALLOC_CONN]);</span><br><span> goto error2;</span><br><span> </span><br><span>@@ -932,9 +923,8 @@</span><br><span> conn->osmux.cid = osmux_cid;</span><br><span> conn->osmux.state = OSMUX_STATE_NEGOTIATING;</span><br><span> } else if (endp->cfg->osmux == OSMUX_USAGE_ONLY) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "CRCX: endpoint:0x%x osmux only and no osmux offered\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(_conn, DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "CRCX: osmux only and no osmux offered\n");</span><br><span> rate_ctr_inc(&rate_ctrs->ctr[MGCP_CRCX_FAIL_NO_OSMUX]);</span><br><span> goto error2;</span><br><span> }</span><br><span>@@ -944,9 +934,8 @@</span><br><span> rc = set_local_cx_options(endp->tcfg->endpoints,</span><br><span> &endp->local_options, local_options);</span><br><span> if (rc != 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "CRCX: endpoint:%x inavlid local connection options!\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(_conn, DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "CRCX: inavlid local connection options!\n");</span><br><span> error_code = rc;</span><br><span> rate_ctr_inc(&rate_ctrs->ctr[MGCP_CRCX_FAIL_INVALID_CONN_OPTIONS]);</span><br><span> goto error2;</span><br><span>@@ -976,9 +965,8 @@</span><br><span> if (conn->conn->mode != MGCP_CONN_LOOPBACK</span><br><span> && conn->conn->mode != MGCP_CONN_RECV_ONLY</span><br><span> && conn->end.rtp_port == 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "CRCX: endpoint:%x selected connection mode type requires an opposite end!\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(_conn, DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "CRCX: selected connection mode type requires an opposite end!\n");</span><br><span> error_code = 527;</span><br><span> rate_ctr_inc(&rate_ctrs->ctr[MGCP_CRCX_FAIL_NO_REMOTE_CONN_DESC]);</span><br><span> goto error2;</span><br><span>@@ -990,9 +978,8 @@</span><br><span> }</span><br><span> </span><br><span> if (setup_rtp_processing(endp, conn) != 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "CRCX: endpoint:0x%x could not start RTP processing!\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(_conn, DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "CRCX: could not start RTP processing!\n");</span><br><span> rate_ctr_inc(&rate_ctrs->ctr[MGCP_CRCX_FAIL_START_RTP]);</span><br><span> goto error2;</span><br><span> }</span><br><span>@@ -1004,9 +991,8 @@</span><br><span> MGCP_ENDP_CRCX, p->trans);</span><br><span> switch (rc) {</span><br><span> case MGCP_POLICY_REJECT:</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_NOTICE,</span><br><span style="color: hsl(0, 100%, 40%);">- "CRCX: endpoint:0x%x CRCX rejected by policy\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(_conn, DLMGCP, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+ "CRCX: CRCX rejected by policy\n");</span><br><span> mgcp_endp_release(endp);</span><br><span> rate_ctr_inc(&rate_ctrs->ctr[MGCP_CRCX_FAIL_REJECTED_BY_POLICY]);</span><br><span> return create_err_response(endp, 400, "CRCX", p->trans);</span><br><span>@@ -1021,9 +1007,8 @@</span><br><span> }</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_DEBUG,</span><br><span style="color: hsl(0, 100%, 40%);">- "CRCX: endpoint:0x%x Creating connection: CI: %s port: %u\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), conn->conn->id, conn->end.local_port);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DLMGCP, LOGL_DEBUG,</span><br><span style="color: hsl(120, 100%, 40%);">+ "CRCX: Creating connection: port: %u\n", conn->end.local_port);</span><br><span> if (p->cfg->change_cb)</span><br><span> p->cfg->change_cb(tcfg, ENDPOINT_NUMBER(endp), MGCP_ENDP_CRCX);</span><br><span> </span><br><span>@@ -1033,16 +1018,14 @@</span><br><span> && tcfg->keepalive_interval != MGCP_KEEPALIVE_NEVER)</span><br><span> send_dummy(endp, conn);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_NOTICE,</span><br><span style="color: hsl(0, 100%, 40%);">- "CRCX: endpoint:0x%x connection successfully created\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(_conn, DLMGCP, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+ "CRCX: connection successfully created\n");</span><br><span> rate_ctr_inc(&rate_ctrs->ctr[MGCP_CRCX_SUCCESS]);</span><br><span> return create_response_with_sdp(endp, conn, "CRCX", p->trans, true);</span><br><span> error2:</span><br><span> mgcp_endp_release(endp);</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_NOTICE,</span><br><span style="color: hsl(0, 100%, 40%);">- "CRCX: endpoint:0x%x unable to create connection\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+ "CRCX: unable to create connection\n");</span><br><span> return create_err_response(endp, error_code, "CRCX", p->trans);</span><br><span> }</span><br><span> </span><br><span>@@ -1066,21 +1049,19 @@</span><br><span> const char *conn_id = NULL;</span><br><span> int rc;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_NOTICE, "MDCX: modifying existing connection ...\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_NOTICE, "MDCX: modifying existing connection ...\n");</span><br><span> </span><br><span> /* Prohibit wildcarded requests */</span><br><span> if (endp->wildcarded_req) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "MDCX: endpoint:0x%x wildcarded endpoint names not supported.\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "MDCX: wildcarded endpoint names not supported.\n");</span><br><span> rate_ctr_inc(&rate_ctrs->ctr[MGCP_MDCX_FAIL_WILDCARD]);</span><br><span> return create_err_response(endp, 507, "MDCX", p->trans);</span><br><span> }</span><br><span> </span><br><span> if (llist_count(&endp->conns) <= 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "MDCX: endpoint:0x%x endpoint is not holding a connection.\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "MDCX: endpoint is not holding a connection.\n");</span><br><span> rate_ctr_inc(&rate_ctrs->ctr[MGCP_MDCX_FAIL_NO_CONN]);</span><br><span> return create_err_response(endp, 400, "MDCX", p->trans);</span><br><span> }</span><br><span>@@ -1118,9 +1099,9 @@</span><br><span> goto mgcp_header_done;</span><br><span> break;</span><br><span> default:</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_NOTICE,</span><br><span style="color: hsl(0, 100%, 40%);">- "MDCX: endpoint:0x%x Unhandled MGCP option: '%c'/%d\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), line[0], line[0]);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+ "MDCX: Unhandled MGCP option: '%c'/%d\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ line[0], line[0]);</span><br><span> rate_ctr_inc(&rate_ctrs->ctr[MGCP_MDCX_FAIL_UNHANDLED_PARAM]);</span><br><span> return create_err_response(NULL, 539, "MDCX", p->trans);</span><br><span> break;</span><br><span>@@ -1129,9 +1110,8 @@</span><br><span> </span><br><span> mgcp_header_done:</span><br><span> if (!conn_id) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "MDCX: endpoint:0x%x insufficient parameters, missing ci (connectionIdentifier)\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "MDCX: insufficient parameters, missing ci (connectionIdentifier)\n");</span><br><span> rate_ctr_inc(&rate_ctrs->ctr[MGCP_MDCX_FAIL_NO_CONNID]);</span><br><span> return create_err_response(endp, 515, "MDCX", p->trans);</span><br><span> }</span><br><span>@@ -1158,9 +1138,8 @@</span><br><span> rc = set_local_cx_options(endp->tcfg->endpoints,</span><br><span> &endp->local_options, local_options);</span><br><span> if (rc != 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "MDCX: endpoint:%x invalid local connection options!\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "MDCX: invalid local connection options!\n");</span><br><span> error_code = rc;</span><br><span> rate_ctr_inc(&rate_ctrs->ctr[MGCP_MDCX_FAIL_INVALID_CONN_OPTIONS]);</span><br><span> goto error3;</span><br><span>@@ -1179,9 +1158,8 @@</span><br><span> if (conn->conn->mode != MGCP_CONN_LOOPBACK</span><br><span> && conn->conn->mode != MGCP_CONN_RECV_ONLY</span><br><span> && conn->end.rtp_port == 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "MDCX: endpoint:%x selected connection mode type requires an opposite end!\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "MDCX: selected connection mode type requires an opposite end!\n");</span><br><span> error_code = 527;</span><br><span> rate_ctr_inc(&rate_ctrs->ctr[MGCP_MDCX_FAIL_NO_REMOTE_CONN_DESC]);</span><br><span> goto error3;</span><br><span>@@ -1201,9 +1179,8 @@</span><br><span> MGCP_ENDP_MDCX, p->trans);</span><br><span> switch (rc) {</span><br><span> case MGCP_POLICY_REJECT:</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_NOTICE,</span><br><span style="color: hsl(0, 100%, 40%);">- "MDCX: endpoint:0x%x rejected by policy\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DLMGCP, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+ "MDCX: rejected by policy\n");</span><br><span> rate_ctr_inc(&rate_ctrs->ctr[MGCP_MDCX_FAIL_REJECTED_BY_POLICY]);</span><br><span> if (silent)</span><br><span> goto out_silent;</span><br><span>@@ -1211,9 +1188,8 @@</span><br><span> break;</span><br><span> case MGCP_POLICY_DEFER:</span><br><span> /* stop processing */</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_DEBUG,</span><br><span style="color: hsl(0, 100%, 40%);">- "MDCX: endpoint:0x%x deferred by policy\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DLMGCP, LOGL_DEBUG,</span><br><span style="color: hsl(120, 100%, 40%);">+ "MDCX: deferred by policy\n");</span><br><span> rate_ctr_inc(&rate_ctrs->ctr[MGCP_MDCX_DEFERRED_BY_POLICY]);</span><br><span> return NULL;</span><br><span> break;</span><br><span>@@ -1226,9 +1202,8 @@</span><br><span> mgcp_rtp_end_config(endp, 1, &conn->end);</span><br><span> </span><br><span> /* modify */</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_DEBUG,</span><br><span style="color: hsl(0, 100%, 40%);">- "MDCX: endpoint:0x%x modified conn:%s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), mgcp_conn_dump(conn->conn));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DLMGCP, LOGL_DEBUG,</span><br><span style="color: hsl(120, 100%, 40%);">+ "MDCX: modified conn:%s\n", mgcp_conn_dump(conn->conn));</span><br><span> if (p->cfg->change_cb)</span><br><span> p->cfg->change_cb(endp->tcfg, ENDPOINT_NUMBER(endp),</span><br><span> MGCP_ENDP_MDCX);</span><br><span>@@ -1243,16 +1218,14 @@</span><br><span> if (silent)</span><br><span> goto out_silent;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_NOTICE,</span><br><span style="color: hsl(0, 100%, 40%);">- "MDCX: endpoint:0x%x connection successfully modified\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DLMGCP, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+ "MDCX: connection successfully modified\n");</span><br><span> return create_response_with_sdp(endp, conn, "MDCX", p->trans, false);</span><br><span> error3:</span><br><span> return create_err_response(endp, error_code, "MDCX", p->trans);</span><br><span> </span><br><span> out_silent:</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_DEBUG, "MDCX: endpoint:0x%x silent exit\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_DEBUG, "MDCX: silent exit\n");</span><br><span> return NULL;</span><br><span> }</span><br><span> </span><br><span>@@ -1269,23 +1242,20 @@</span><br><span> const char *conn_id = NULL;</span><br><span> struct mgcp_conn_rtp *conn = NULL;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_NOTICE,</span><br><span style="color: hsl(0, 100%, 40%);">- "DLCX: endpoint:0x%x deleting connection ...\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+ "DLCX: deleting connection ...\n");</span><br><span> </span><br><span> /* Prohibit wildcarded requests */</span><br><span> if (endp->wildcarded_req) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "DLCX: endpoint:0x%x wildcarded endpoint names not supported.\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "DLCX: wildcarded endpoint names not supported.\n");</span><br><span> rate_ctr_inc(&rate_ctrs->ctr[MGCP_DLCX_FAIL_WILDCARD]);</span><br><span> return create_err_response(endp, 507, "DLCX", p->trans);</span><br><span> }</span><br><span> </span><br><span> if (llist_count(&endp->conns) <= 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(0, 100%, 40%);">- "DLCX: endpoint:0x%x endpoint is not holding a connection.\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_ERROR,</span><br><span style="color: hsl(120, 100%, 40%);">+ "DLCX: endpoint is not holding a connection.\n");</span><br><span> rate_ctr_inc(&rate_ctrs->ctr[MGCP_DLCX_FAIL_NO_CONN]);</span><br><span> return create_err_response(endp, 515, "DLCX", p->trans);</span><br><span> }</span><br><span>@@ -1313,9 +1283,9 @@</span><br><span> silent = strcmp("noanswer", line + 3) == 0;</span><br><span> break;</span><br><span> default:</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_NOTICE,</span><br><span style="color: hsl(0, 100%, 40%);">- "DLCX: endpoint:0x%x Unhandled MGCP option: '%c'/%d\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), line[0], line[0]);</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+ "DLCX: Unhandled MGCP option: '%c'/%d\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ line[0], line[0]);</span><br><span> rate_ctr_inc(&rate_ctrs->ctr[MGCP_DLCX_FAIL_UNHANDLED_PARAM]);</span><br><span> return create_err_response(NULL, 539, "DLCX", p->trans);</span><br><span> break;</span><br><span>@@ -1329,9 +1299,7 @@</span><br><span> MGCP_ENDP_DLCX, p->trans);</span><br><span> switch (rc) {</span><br><span> case MGCP_POLICY_REJECT:</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_NOTICE,</span><br><span style="color: hsl(0, 100%, 40%);">- "DLCX: endpoint:0x%x rejected by policy\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_NOTICE, "DLCX: rejected by policy\n");</span><br><span> rate_ctr_inc(&rate_ctrs->ctr[MGCP_DLCX_FAIL_REJECTED_BY_POLICY]);</span><br><span> if (silent)</span><br><span> goto out_silent;</span><br><span>@@ -1353,9 +1321,9 @@</span><br><span> * RFC3435 Section F.7) */</span><br><span> if (!conn_id) {</span><br><span> int num_conns = llist_count(&endp->conns);</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_NOTICE,</span><br><span style="color: hsl(0, 100%, 40%);">- "DLCX: endpoint:0x%x missing ci (connectionIdentifier), will remove all connections (%d total) at once\n",</span><br><span style="color: hsl(0, 100%, 40%);">- num_conns, ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+ "DLCX: missing ci (connectionIdentifier), will remove all connections (%d total) at once\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ num_conns);</span><br><span> </span><br><span> if (num_conns > 0)</span><br><span> rate_ctr_add(&rate_ctrs->ctr[MGCP_DLCX_SUCCESS], num_conns);</span><br><span>@@ -1378,20 +1346,17 @@</span><br><span> mgcp_format_stats(stats, sizeof(stats), conn->conn);</span><br><span> </span><br><span> /* delete connection */</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_DEBUG, "DLCX: endpoint:0x%x deleting conn:%s\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp), mgcp_conn_dump(conn->conn));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DLMGCP, LOGL_DEBUG, "DLCX: deleting conn:%s\n",</span><br><span style="color: hsl(120, 100%, 40%);">+ mgcp_conn_dump(conn->conn));</span><br><span> mgcp_conn_free(endp, conn_id);</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_NOTICE,</span><br><span style="color: hsl(0, 100%, 40%);">- "DLCX: endpoint:0x%x connection successfully deleted\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+ "DLCX: connection successfully deleted\n");</span><br><span> </span><br><span> /* When all connections are closed, the endpoint will be released</span><br><span> * in order to be ready to be used by another call. */</span><br><span> if (llist_count(&endp->conns) <= 0) {</span><br><span> mgcp_endp_release(endp);</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_DEBUG,</span><br><span style="color: hsl(0, 100%, 40%);">- "DLCX: endpoint:0x%x endpoint released\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_DEBUG, "DLCX: endpoint released\n");</span><br><span> }</span><br><span> </span><br><span> if (p->cfg->change_cb)</span><br><span>@@ -1407,8 +1372,7 @@</span><br><span> return create_err_response(endp, error_code, "DLCX", p->trans);</span><br><span> </span><br><span> out_silent:</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_DEBUG, "DLCX: endpoint:0x%x silent exit\n",</span><br><span style="color: hsl(0, 100%, 40%);">- ENDPOINT_NUMBER(endp));</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPENDP(endp, DLMGCP, LOGL_DEBUG, "DLCX: silent exit\n");</span><br><span> return NULL;</span><br><span> }</span><br><span> </span><br><span>diff --git a/src/libosmo-mgcp/mgcp_sdp.c b/src/libosmo-mgcp/mgcp_sdp.c</span><br><span>index 02b9695..6b41f50 100644</span><br><span>--- a/src/libosmo-mgcp/mgcp_sdp.c</span><br><span>+++ b/src/libosmo-mgcp/mgcp_sdp.c</span><br><span>@@ -376,7 +376,7 @@</span><br><span> </span><br><span> talloc_free(tmp_ctx);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_NOTICE,</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DLMGCP, LOGL_NOTICE,</span><br><span> "Got media info via SDP: port:%d, addr:%s, duration:%d, payload-types:",</span><br><span> ntohs(rtp->rtp_port), inet_ntoa(rtp->addr),</span><br><span> rtp->packet_duration_ms);</span><br><span>@@ -571,6 +571,6 @@</span><br><span> return 0;</span><br><span> </span><br><span> buffer_too_small:</span><br><span style="color: hsl(0, 100%, 40%);">- LOGP(DLMGCP, LOGL_ERROR, "SDP messagebuffer too small\n");</span><br><span style="color: hsl(120, 100%, 40%);">+ LOGPCONN(conn->conn, DLMGCP, LOGL_ERROR, "SDP messagebuffer too small\n");</span><br><span> return -1;</span><br><span> }</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/13773">change 13773</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/13773"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: osmo-mgw </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: I1c49b1eb16bc5f1010376da5cf407ca6e31d81f2 </div>
<div style="display:none"> Gerrit-Change-Number: 13773 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Pau Espin Pedrol <pespin@sysmocom.de> </div>