Add -lncurses to LDD flags
[lcr.git] / appbridge.cpp
index e94de02..cc8d699 100644 (file)
@@ -136,6 +136,24 @@ fail:
        /* create port for interface */
        SPRINT(portname, "%s-%d-out", interface_out->name, 0);
        memset(&port_settings, 0, sizeof(port_settings));
+#ifdef WITH_MISDN
+       if (interface_out->remote) {
+               struct admin_list       *admin;
+               admin = admin_first;
+               while(admin) {
+                       if (admin->remote_name[0] && !strcmp(admin->remote_name, interface_out->remote_app))
+                               break;
+                       admin = admin->next;
+               }
+               if (!admin) {
+                       trace_header("INTERFACE (remote not connected)", DIRECTION_NONE);
+                       add_trace("application", NULL, "%s", interface_out->remote_app);
+                       end_trace();
+                       goto fail;
+               }
+               port = new Premote(PORT_TYPE_REMOTE_OUT, portname, &port_settings, interface_out, admin->sock);
+       } else
+#endif
 #ifdef WITH_SIP
        if (interface_out->sip) {
                port = new Psip(PORT_TYPE_SIP_OUT, portname, &port_settings, interface_out);
@@ -156,8 +174,6 @@ fail:
 #ifdef WITH_MISDN
                struct mISDNport *mISDNport;
                int channel = 0;
-               struct admin_list *admin;
-               int earlyb;
                int mode = B_MODE_TRANSPARENT;
 
                /* hunt for mISDNport and create Port */
@@ -176,24 +192,12 @@ fail:
                        port = ss5_hunt_line(mISDNport);
                else
 #endif
-               if (mISDNport->ifport->remote) {
-                       admin = admin_first;
-                       while(admin) {
-                               if (admin->remote_name[0] && !strcmp(admin->remote_name, mISDNport->ifport->remote_app))
-                                       break;
-                               admin = admin->next;
-                       }
-                       if (!admin) {
-                               trace_header("INTERFACE (remote not connected)", DIRECTION_NONE);
-                               add_trace("application", NULL, "%s", mISDNport->ifport->remote_app);
-                               end_trace();
-                               cause = 27;
-                               goto fail;
-                       }
-                       port = new Premote(PORT_TYPE_REMOTE_OUT, mISDNport, portname, &port_settings, channel, mISDNport->ifport->channel_force, mode, admin->sock);
-               } else
-                       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);
-               earlyb = mISDNport->earlyb;
+#ifdef ISDN_P_FXS_POTS
+               if (mISDNport->pots)
+                       port = new Pfxs(PORT_TYPE_POTS_FXS_OUT, mISDNport, portname, &port_settings, mISDNport->ifport->interface, mode);
+               else
+#endif
+                       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);
 #else
                trace_header("INTERFACE (has no function)", DIRECTION_NONE);
                add_trace("interface", NULL, "%s", ifname);