LCR is now uses socket based mISDN V2 API
[lcr.git] / apppbx.cpp
index 3d31f8e..981c867 100644 (file)
@@ -621,7 +621,7 @@ foundif:
        if (!interface->ifport)
        {
                /* no ports */
-               trace_header("CHANNEL SELECTION (interface has no active ports, skipping)", DIRECTION_NONE);
+               trace_header("CHANNEL SELECTION (active ports, skipping)", DIRECTION_NONE);
                add_trace("interface", NULL, "%s", interface->name);
                end_trace();
                interface = interface->next;
@@ -672,7 +672,7 @@ foundif:
        /* see if link is up on PTP*/
        if (mISDNport->l2hold && !mISDNport->l2link)
        {
-               trace_header("CHANNEL SELECTION (port holds layer 2, but layer 2 is down, skipping)", DIRECTION_NONE);
+               trace_header("CHANNEL SELECTION (port's layer 2 is down, skipping)", DIRECTION_NONE);
                add_trace("port", NULL, "%d", ifport->portnum);
                add_trace("position", NULL, "%d", index);
                end_trace();
@@ -809,6 +809,11 @@ foundif:
        if (ifport != ifport_start)
                goto nextport;
 
+       if (!ifname) {
+               interface = interface->next;
+               goto checknext;
+       }
+
        return(NULL); /* no port found */
 }
 
@@ -1336,7 +1341,7 @@ int EndpointAppPBX::handler(void)
                        }
                        /* put on hold */
                        message = message_create(ea_endpoint->ep_serial, ea_endpoint->ep_join_id, EPOINT_TO_JOIN, MESSAGE_AUDIOPATH);
-                       message->param.audiopath = CHANNEL_STATE_HOLD;
+                       message->param.audiopath = 0;
                        message_put(message);
                        /* indicate no patterns */
                        message = message_create(ea_endpoint->ep_serial, ea_endpoint->ep_join_id, EPOINT_TO_JOIN, MESSAGE_NOPATTERN);
@@ -1868,7 +1873,7 @@ void EndpointAppPBX::port_overlap(struct port_list *portlist, int message_type,
 
                /* connect audio, if not already */
                message = message_create(ea_endpoint->ep_serial, ea_endpoint->ep_join_id, EPOINT_TO_JOIN, MESSAGE_AUDIOPATH);
-               message->param.audiopath = CHANNEL_STATE_CONNECT;
+               message->param.audiopath = 1;
                message_put(message);
        } else
        {
@@ -1878,7 +1883,7 @@ void EndpointAppPBX::port_overlap(struct port_list *portlist, int message_type,
 
                /* disconnect audio, if not already */
                message = message_create(ea_endpoint->ep_serial, ea_endpoint->ep_join_id, EPOINT_TO_JOIN, MESSAGE_AUDIOPATH);
-               message->param.audiopath = CHANNEL_STATE_HOLD;
+               message->param.audiopath = 0;
                message_put(message);
        }
        new_state(EPOINT_STATE_OUT_OVERLAP);
@@ -1911,7 +1916,7 @@ void EndpointAppPBX::port_proceeding(struct port_list *portlist, int message_typ
 
                /* connect audio, if not already */
                message = message_create(ea_endpoint->ep_serial, ea_endpoint->ep_join_id, EPOINT_TO_JOIN, MESSAGE_AUDIOPATH);
-               message->param.audiopath = CHANNEL_STATE_CONNECT;
+               message->param.audiopath = 1;
                message_put(message);
        } else
        {
@@ -1921,7 +1926,7 @@ void EndpointAppPBX::port_proceeding(struct port_list *portlist, int message_typ
 
                /* disconnect audio, if not already */
                message = message_create(ea_endpoint->ep_serial, ea_endpoint->ep_join_id, EPOINT_TO_JOIN, MESSAGE_AUDIOPATH);
-               message->param.audiopath = CHANNEL_STATE_HOLD;
+               message->param.audiopath = 0;
                message_put(message);
        }
        /* if we are in a call */
@@ -1953,7 +1958,7 @@ void EndpointAppPBX::port_alerting(struct port_list *portlist, int message_type,
 
                /* connect audio, if not already */
                message = message_create(ea_endpoint->ep_serial, ea_endpoint->ep_join_id, EPOINT_TO_JOIN, MESSAGE_AUDIOPATH);
-               message->param.audiopath = CHANNEL_STATE_CONNECT;
+               message->param.audiopath = 1;
                message_put(message);
        } else
        {
@@ -1963,7 +1968,7 @@ void EndpointAppPBX::port_alerting(struct port_list *portlist, int message_type,
 
                /* disconnect audio, if not already */
                message = message_create(ea_endpoint->ep_serial, ea_endpoint->ep_join_id, EPOINT_TO_JOIN, MESSAGE_AUDIOPATH);
-               message->param.audiopath = CHANNEL_STATE_HOLD;
+               message->param.audiopath = 0;
                message_put(message);
        }
        /* if we are in a call */
@@ -2088,7 +2093,7 @@ void EndpointAppPBX::port_connect(struct port_list *portlist, int message_type,
                message_put(message);
 
                message = message_create(ea_endpoint->ep_serial, ea_endpoint->ep_join_id, EPOINT_TO_JOIN, MESSAGE_AUDIOPATH);
-               message->param.audiopath = CHANNEL_STATE_CONNECT;
+               message->param.audiopath = 1;
                message_put(message);
        } else if (!e_adminid)
        {
@@ -2288,7 +2293,7 @@ void EndpointAppPBX::port_disconnect_release(struct port_list *portlist, int mes
                        message_put(message);
                        /* connect audio, if not already */
                        message = message_create(ea_endpoint->ep_serial, ea_endpoint->ep_join_id, EPOINT_TO_JOIN, MESSAGE_AUDIOPATH);
-                       message->param.audiopath = CHANNEL_STATE_CONNECT;
+                       message->param.audiopath = 1;
                        message_put(message);
                        /* send disconnect */
                        message = message_create(ea_endpoint->ep_serial, ea_endpoint->ep_join_id, EPOINT_TO_JOIN, message_type);
@@ -2422,7 +2427,7 @@ void EndpointAppPBX::port_notify(struct port_list *portlist, int message_type, u
                if (ea_endpoint->ep_join_id)
                {
                        message = message_create(ea_endpoint->ep_serial, ea_endpoint->ep_join_id, EPOINT_TO_JOIN, MESSAGE_AUDIOPATH);
-                       message->param.audiopath = CHANNEL_STATE_HOLD;
+                       message->param.audiopath = 0;
                        message_put(message);
                }
                break;
@@ -2447,7 +2452,7 @@ void EndpointAppPBX::port_notify(struct port_list *portlist, int message_type, u
                if (ea_endpoint->ep_join_id)
                {
                        message = message_create(ea_endpoint->ep_serial, ea_endpoint->ep_join_id, EPOINT_TO_JOIN, MESSAGE_AUDIOPATH);
-                       message->param.audiopath = CHANNEL_STATE_CONNECT;
+                       message->param.audiopath = 1;
                        message_put(message);
                }
                break;
@@ -2766,6 +2771,7 @@ void EndpointAppPBX::ea_message_port(unsigned long port_id, int message_type, un
                break;
 
 #if 0
+               kann nach dem test gelöscht werden, da eine direkte funktion im join und im mISDN zum austausch der message existiert
                /* port assigns bchannel */
                case MESSAGE_BCHANNEL: /* bchannel assignment messafe */
                PDEBUG(DEBUG_EPOINT, "EPOINT(%d) epoint with terminal '%s' (caller id '%s') received bchannel message %d from port.\n", ea_endpoint->ep_serial, e_ext.number, e_callerinfo.id, param->bchannel.type);
@@ -2864,7 +2870,7 @@ void EndpointAppPBX::join_overlap(struct port_list *portlist, int message_type,
        {
                /* disconnect audio */
                message = message_create(ea_endpoint->ep_serial, ea_endpoint->ep_join_id, EPOINT_TO_JOIN, MESSAGE_AUDIOPATH);
-               message->param.audiopath = CHANNEL_STATE_HOLD;
+               message->param.audiopath = 0;
                message_put(message);
        }
        if (e_action) if (e_action->index == ACTION_OUTDIAL || e_action->index == ACTION_EXTERNAL)
@@ -2894,9 +2900,9 @@ void EndpointAppPBX::join_proceeding(struct port_list *portlist, int message_typ
                /* connect / disconnect audio */
                message = message_create(ea_endpoint->ep_serial, ea_endpoint->ep_join_id, EPOINT_TO_JOIN, MESSAGE_AUDIOPATH);
                if (e_ext.own_proceeding)
-                       message->param.audiopath = CHANNEL_STATE_HOLD;
+                       message->param.audiopath = 0;
                else
-                       message->param.audiopath = CHANNEL_STATE_CONNECT;
+                       message->param.audiopath = 1;
                message_put(message);
        }
 //                     UCPY(e_join_tone, "proceeding");
@@ -2922,9 +2928,9 @@ void EndpointAppPBX::join_alerting(struct port_list *portlist, int message_type,
                /* connect / disconnect audio */
                message = message_create(ea_endpoint->ep_serial, ea_endpoint->ep_join_id, EPOINT_TO_JOIN, MESSAGE_AUDIOPATH);
                if (e_ext.own_alerting)
-                       message->param.audiopath = CHANNEL_STATE_HOLD;
+                       message->param.audiopath = 0;
                else
-                       message->param.audiopath = CHANNEL_STATE_CONNECT;
+                       message->param.audiopath = 1;
                message_put(message);
        }
        if (portlist)
@@ -2991,7 +2997,7 @@ void EndpointAppPBX::join_connect(struct port_list *portlist, int message_type,
        set_tone(portlist, NULL);
        e_join_pattern = 0;
        message = message_create(ea_endpoint->ep_serial, ea_endpoint->ep_join_id, EPOINT_TO_JOIN, MESSAGE_AUDIOPATH);
-       message->param.audiopath = CHANNEL_STATE_CONNECT;
+       message->param.audiopath = 1;
        message_put(message);
        e_start = now;
 }
@@ -3097,7 +3103,7 @@ void EndpointAppPBX::join_disconnect_release(int message_type, union parameter *
        } else /* else we enable audio */
        {
                message = message_create(ea_endpoint->ep_serial, ea_endpoint->ep_join_id, EPOINT_TO_JOIN, MESSAGE_AUDIOPATH);
-               message->param.audiopath = CHANNEL_STATE_CONNECT;
+               message->param.audiopath = 1;
                message_put(message);
        }
        /* send disconnect message */
@@ -3139,7 +3145,7 @@ void EndpointAppPBX::join_setup(struct port_list *portlist, int message_type, un
 
                        /* disconnect audio */
                        message = message_create(ea_endpoint->ep_serial, ea_endpoint->ep_join_id, EPOINT_TO_JOIN, MESSAGE_AUDIOPATH);
-                       message->param.audiopath = CHANNEL_STATE_HOLD;
+                       message->param.audiopath = 0;
                        message_put(message);
 
                        /* get dialing info */
@@ -3429,8 +3435,8 @@ void EndpointAppPBX::ea_message_join(unsigned long join_id, int message_type, un
                join_mISDNsignal(portlist, message_type, param);
                break;
 
-#warning was ist hiermit
 #if 0
+               kann nach dem test gelöscht werden, da eine direkte funktion im join und im mISDN zum austausch der message existiert
                /* JOIN requests bchannel */
                case MESSAGE_BCHANNEL: /* indicates the need of own bchannel access */
                PDEBUG(DEBUG_EPOINT, "EPOINT(%d) epoint with terminal '%s' (caller id '%s') received bchannel assignment %d from join.\n", ea_endpoint->ep_serial, e_ext.number, e_callerinfo.id, param->bchannel.type);
@@ -3462,13 +3468,8 @@ void EndpointAppPBX::ea_message_join(unsigned long join_id, int message_type, un
                        }
                        /* connect our audio tx and rx (blueboxing should be possibe before connect :)*/
                        message = message_create(ea_endpoint->ep_serial, ea_endpoint->ep_join_id, EPOINT_TO_JOIN, MESSAGE_AUDIOPATH);
-                       message->param.audiopath = CHANNEL_STATE_CONNECT;
+                       message->param.audiopath = 1;
                        message_put(message);
-//                     /* tell remote epoint to connect audio also, because we like to hear the patterns */
-//                     message = message_create(ea_endpoint->ep_serial, ea_endpoint->ep_join_id, EPOINT_TO_JOIN, MESSAGE_REMOTE_AUDIO);
-//                     message->param.audiopath = CHANNEL_STATE_CONNECT;
-//                     message_put(message);
-// patterns are available, remote already connected audio
                }
                break;
 
@@ -3481,7 +3482,7 @@ void EndpointAppPBX::ea_message_join(unsigned long join_id, int message_type, un
                        e_join_pattern = 0;
                        /* disconnect our audio tx and rx */
                        message = message_create(ea_endpoint->ep_serial, ea_endpoint->ep_join_id, EPOINT_TO_JOIN, MESSAGE_AUDIOPATH);
-                       message->param.audiopath = CHANNEL_STATE_HOLD;
+                       message->param.audiopath = 0;
                        message_put(message);
                }
                break;
@@ -3714,7 +3715,7 @@ reject:
 
        /* we send a connect to the audio path (not for vbox) */
        message = message_create(ea_endpoint->ep_serial, ea_endpoint->ep_join_id, EPOINT_TO_JOIN, MESSAGE_AUDIOPATH);
-       message->param.audiopath = CHANNEL_STATE_CONNECT;
+       message->param.audiopath = 1;
        message_put(message);
 
        /* beeing paranoid, we make call update */