Fix: Track notification messages at partyline too
[lcr.git] / apppbx.cpp
index d55424b..2cf4826 100644 (file)
@@ -796,7 +796,7 @@ void EndpointAppPBX::out_setup(int cfnr)
                                        port = ss5_hunt_line(mISDNport);
                                else
 #endif
-                               port = new Pdss1((mISDNport->ntmode)?PORT_TYPE_DSS1_NT_OUT:PORT_TYPE_DSS1_TE_OUT, mISDNport, portname, &port_settings, channel, mISDNport->ifport->channel_force, mode);
+                               port = new Pdss1((mISDNport->ntmode)?PORT_TYPE_DSS1_NT_OUT:PORT_TYPE_DSS1_TE_OUT, mISDNport, portname, &port_settings, mISDNport->ifport->interface, channel, mISDNport->ifport->channel_force, mode);
                                earlyb = mISDNport->earlyb;
 #else
                        trace_header("INTERFACE (has no function)", DIRECTION_NONE);
@@ -917,7 +917,7 @@ void EndpointAppPBX::out_setup(int cfnr)
                                                port = ss5_hunt_line(mISDNport);
                                        else
 #endif
-                                               port = new Pdss1((mISDNport->ntmode)?PORT_TYPE_DSS1_NT_OUT:PORT_TYPE_DSS1_TE_OUT, mISDNport, portname, &port_settings, channel, mISDNport->ifport->channel_force, mode);
+                                               port = new Pdss1((mISDNport->ntmode)?PORT_TYPE_DSS1_NT_OUT:PORT_TYPE_DSS1_TE_OUT, mISDNport, portname, &port_settings, mISDNport->ifport->interface, channel, mISDNport->ifport->channel_force, mode);
                                        if (!port)
                                                FATAL("No memory for Port instance\n");
                                        earlyb = mISDNport->earlyb;
@@ -1079,7 +1079,7 @@ void EndpointAppPBX::out_setup(int cfnr)
                                                port = ss5_hunt_line(mISDNport);
                                        else
 #endif
-                                       port = new Pdss1((mISDNport->ntmode)?PORT_TYPE_DSS1_NT_OUT:PORT_TYPE_DSS1_TE_OUT, mISDNport, portname, &port_settings, channel, mISDNport->ifport->channel_force, mode);
+                                       port = new Pdss1((mISDNport->ntmode)?PORT_TYPE_DSS1_NT_OUT:PORT_TYPE_DSS1_TE_OUT, mISDNport, portname, &port_settings, mISDNport->ifport->interface, channel, mISDNport->ifport->channel_force, mode);
                                        earlyb = mISDNport->earlyb;
 #else
                                        trace_header("INTERFACE (has no function)", DIRECTION_NONE);
@@ -2229,8 +2229,6 @@ void EndpointAppPBX::port_notify(struct port_list *portlist, int message_type, u
        logmessage(message_type, param, portlist->port_id, DIRECTION_IN);
 
        struct lcr_msg *message;
-       const char *logtext = "";
-       char buffer[64];
 
        /* signal to call tool */
        admin_call_response(e_adminid, ADMIN_CALL_NOTIFY, numberrize_callerinfo(param->notifyinfo.id,param->notifyinfo.ntype, options.national, options.international), 0, 0, param->notifyinfo.notify);
@@ -2274,86 +2272,6 @@ void EndpointAppPBX::port_notify(struct port_list *portlist, int message_type, u
                break;
        }
 
-       /* get name of notify */
-       switch(param->notifyinfo.notify) {
-               case 0x00:
-               logtext = "NULL";
-               break;
-               case 0x80:
-               logtext = "USER_SUSPENDED";
-               break;
-               case 0x82:
-               logtext = "BEARER_SERVICE_CHANGED";
-               break;
-               case 0x81:
-               logtext = "USER_RESUMED";
-               break;
-               case 0xc2:
-               logtext = "CONFERENCE_ESTABLISHED";
-               break;
-               case 0xc3:
-               logtext = "CONFERENCE_DISCONNECTED";
-               break;
-               case 0xc4:
-               logtext = "OTHER_PARTY_ADDED";
-               break;
-               case 0xc5:
-               logtext = "ISOLATED";
-               break;
-               case 0xc6:
-               logtext = "REATTACHED";
-               break;
-               case 0xc7:
-               logtext = "OTHER_PARTY_ISOLATED";
-               break;
-               case 0xc8:
-               logtext = "OTHER_PARTY_REATTACHED";
-               break;
-               case 0xc9:
-               logtext = "OTHER_PARTY_SPLIT";
-               break;
-               case 0xca:
-               logtext = "OTHER_PARTY_DISCONNECTED";
-               break;
-               case 0xcb:
-               logtext = "CONFERENCE_FLOATING";
-               break;
-               case 0xcc:
-               logtext = "CONFERENCE_DISCONNECTED_PREEMTED";
-               break;
-               case 0xcf:
-               logtext = "CONFERENCE_FLOATING_SERVED_USER_PREEMTED";
-               break;
-               case 0xe0:
-               logtext = "CALL_IS_A_WAITING_CALL";
-               break;
-               case 0xe8:
-               logtext = "DIVERSION_ACTIVATED";
-               break;
-               case 0xe9:
-               logtext = "RESERVED_CT_1";
-               break;
-               case 0xea:
-               logtext = "RESERVED_CT_2";
-               break;
-               case 0xee:
-               logtext = "REVERSE_CHARGING";
-               break;
-               case 0xf9:
-               logtext = "REMOTE_HOLD";
-               break;
-               case 0xfa:
-               logtext = "REMOTE_RETRIEVAL";
-               break;
-               case 0xfb:
-               logtext = "CALL_IS_DIVERTING";
-               break;
-               default:
-               SPRINT(buffer, "%d", param->notifyinfo.notify - 0x80);
-               logtext = buffer;
-
-       }
-
        /* notify call if available */
        if (ea_endpoint->ep_join_id) {
                message = message_create(ea_endpoint->ep_serial, ea_endpoint->ep_join_id, EPOINT_TO_JOIN, MESSAGE_NOTIFY);
@@ -4069,6 +3987,10 @@ void EndpointAppPBX::logmessage(int message_type, union parameter *param, unsign
                        add_trace("from", NULL, "CH(%lu)", port_id);
                if (param->setup.callerinfo.extension[0])
                        add_trace("extension", NULL, "%s", param->setup.callerinfo.extension);
+               if (param->setup.callerinfo.interface[0])
+                       add_trace("interface", "from", "%s", param->setup.callerinfo.interface);
+               if (param->setup.dialinginfo.interfaces[0])
+                       add_trace("interface", "to", "%s", param->setup.dialinginfo.interfaces);
                add_trace("caller id", "number", "%s", numberrize_callerinfo(param->setup.callerinfo.id, param->setup.callerinfo.ntype, options.national, options.international));
                switch(param->setup.callerinfo.present) {
                        case INFO_PRESENT_RESTRICTED: