work around broken HOLD/UNHOLD handling on some SIP phones
[lcr.git] / lcradmin.c
index 8cd40da..1459aeb 100644 (file)
@@ -668,7 +668,10 @@ const char *admin_state(int sock, char *argv[])
                        color(white);
                        if (m[i].u.i.block >= 2)
                        {
-                               SPRINT(buffer, "%s (port %d: %s)%s", m[i].u.i.interface_name, m[i].u.i.portnum, m[i].u.i.portname, (m[i].u.i.extension)?" extension":"");
+                               if (m[i].u.i.portnum < 0)
+                                       SPRINT(buffer, "%s (port ?: %s)%s", m[i].u.i.interface_name, m[i].u.i.portname, (m[i].u.i.extension)?" extension":"");
+                               else
+                                       SPRINT(buffer, "%s (port %d: %s)%s", m[i].u.i.interface_name, m[i].u.i.portnum, m[i].u.i.portname, (m[i].u.i.extension)?" extension":"");
                                addstr(buffer);
                                color(red);
                                addstr("  not loaded");
@@ -678,8 +681,11 @@ const char *admin_state(int sock, char *argv[])
                                addstr(buffer);
                                if (m[i].u.i.ptp || !m[i].u.i.ntmode)
                                {
-                                       color((m[i].u.i.l2link)?green:red);
-                                       addstr((m[i].u.i.l2link)?"  L2 UP":"  L2 down");
+                                       color((m[i].u.i.l2link > 0)?green:red);
+                                       if (m[i].u.i.l2link < 0)
+                                               addstr("  L2 unknown");
+                                       else
+                                               addstr((m[i].u.i.l2link)?"  L2 UP":"  L2 down");
                                }
                                color((m[i].u.i.l1link > 0)?green:blue);
                                if (m[i].u.i.l1link < 0)
@@ -1585,6 +1591,7 @@ const char *admin_trace(int sock, int argc, char *argv[])
        memset(&msg, 0, sizeof(msg));
        msg.message = ADMIN_TRACE_REQUEST;
        msg.u.trace_req.detail = 3;
+       msg.u.trace_req.port = -1;
 
        /* parse args */
        i = 2;