<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>