X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=lcr.git;a=blobdiff_plain;f=appbridge.cpp;h=cc8d699c7c350196df9ba8f8196b3c4fb7fbd9e0;hp=7309c80be391e5a97f1eb65c7fb7b1f8c46d626e;hb=79bd731c0db3e3202cfeed2af3fb217ae744b70f;hpb=7b11cdb684c2328698149a27022415a25ea3d3e4 diff --git a/appbridge.cpp b/appbridge.cpp index 7309c80..cc8d699 100644 --- a/appbridge.cpp +++ b/appbridge.cpp @@ -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); @@ -148,7 +166,7 @@ fail: #endif #ifdef WITH_GSM_MS if (interface_out->gsm_ms) { - port = new Pgsm_bs(PORT_TYPE_GSM_MS_OUT, portname, &port_settings, interface_out); + port = new Pgsm_ms(PORT_TYPE_GSM_MS_OUT, portname, &port_settings, interface_out); } else #endif { @@ -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);