struct message -> struct lcr_msg
[lcr.git] / apppbx.cpp
index e59bbea..a0a14d0 100644 (file)
@@ -40,7 +40,7 @@ EndpointAppPBX::EndpointAppPBX(class Endpoint *epoint, int origin) : EndpointApp
         memset(&e_ext, 0, sizeof(struct extension));
        // *************** NOTE: also change value in read_extension() **************
        e_ext.rights = 4; /* international */
-       e_ext.rxvol = e_ext.txvol = 0;
+       e_ext.rx_gain = e_ext.tx_gain = 0;
         e_state = EPOINT_STATE_IDLE;
         e_ext.number[0] = '\0';
        e_extension_interface[0] = '\0';
@@ -179,7 +179,7 @@ void EndpointAppPBX::new_state(int state)
 void EndpointAppPBX::release(int release, int joinlocation, int joincause, int portlocation, int portcause)
 {
        struct port_list *portlist;
-       struct message *message;
+       struct lcr_msg *message;
        char cause[16];
 
        /* message to test call */
@@ -428,7 +428,7 @@ char *EndpointAppPBX::apply_callerid_display(char *id, int itype, int ntype, int
 void EndpointAppPBX::notify_active(void)
 {
        struct port_list *portlist = ea_endpoint->ep_portlist;
-       struct message *message;
+       struct lcr_msg *message;
        int notify = 0;
 
        switch(e_tx_state)
@@ -536,7 +536,7 @@ void EndpointAppPBX::keypad_function(char digit)
 /* set tone pattern for port */
 void EndpointAppPBX::set_tone(struct port_list *portlist, char *tone)
 {
-       struct message *message;
+       struct lcr_msg *message;
 
        if (!tone)
                tone = "";
@@ -678,9 +678,9 @@ foundif:
        }
 
        /* see if link is up on PTP*/
-       if (mISDNport->ptp && !mISDNport->l2link)
+       if (mISDNport->l2hold && !mISDNport->l2link)
        {
-               trace_header("CHANNEL SELECTION (port is ptp with layer 2 down, skipping)", DIRECTION_NONE);
+               trace_header("CHANNEL SELECTION (port holds layer 2, but layer 2 is down, skipping)", DIRECTION_NONE);
                add_trace("port", NULL, "%d", ifport->portnum);
                add_trace("position", NULL, "%d", index);
                end_trace();
@@ -830,7 +830,7 @@ void EndpointAppPBX::out_setup(void)
        class Port              *port;
 //     class pdss1             *pdss1;
        struct port_list        *portlist;
-       struct message          *message;
+       struct lcr_msg          *message;
        int                     anycall = 0;
        int                     cause = CAUSE_RESSOURCEUNAVAIL;
        char                    *p;
@@ -1001,7 +1001,7 @@ void EndpointAppPBX::out_setup(void)
                                goto check_anycall_intern;
                        }
                        /* directory.list */
-                       if (e_callerinfo.id[0] && (e_ext.centrex || e_ext.display_name))
+                       if (e_callerinfo.id[0] && e_ext.display_name)
                        {
                                dirname = parse_directory(e_callerinfo.id, e_callerinfo.ntype);
                                if (dirname)
@@ -1025,8 +1025,8 @@ void EndpointAppPBX::out_setup(void)
                        SCPY(message->param.setup.callerinfo.display, apply_callerid_display(message->param.setup.callerinfo.id, message->param.setup.callerinfo.itype, message->param.setup.callerinfo.ntype, message->param.setup.callerinfo.present, message->param.setup.callerinfo.screen, message->param.setup.callerinfo.extension, message->param.setup.callerinfo.name));
 //printf("\n\ndisplay = %s\n\n\n",message->param.setup.callerinfo.display);
                        /* use cnip, if enabld */
-                       if (!e_ext.centrex)
-                               message->param.setup.callerinfo.name[0] = '\0';
+       //              if (!e_ext.centrex)
+       //                      message->param.setup.callerinfo.name[0] = '\0';
                        /* screen clip if prefix is required */
                        if (message->param.setup.callerinfo.id[0] && e_ext.clip_prefix[0])
                        {
@@ -1325,7 +1325,7 @@ int EndpointAppPBX::handler(void)
        if (e_cfnr_release)
        {
                struct port_list *portlist;
-               struct message *message;
+               struct lcr_msg *message;
 
                if (now >= e_cfnr_release)
                {
@@ -1466,7 +1466,7 @@ void EndpointAppPBX::hookflash(void)
 /* port MESSAGE_SETUP */
 void EndpointAppPBX::port_setup(struct port_list *portlist, int message_type, union parameter *param)
 {
-       struct message          *message;
+       struct lcr_msg          *message;
        char                    buffer[256];
        int                     writeext;               /* flags need to write extension after modification */
        class Port              *port;
@@ -1569,12 +1569,12 @@ void EndpointAppPBX::port_setup(struct port_list *portlist, int message_type, un
 
                /* set volume of rx and tx */
                if (param->setup.callerinfo.itype == INFO_ITYPE_ISDN_EXTENSION)
-               if (e_ext.txvol!=0 || e_ext.rxvol!=0)
+               if (e_ext.tx_gain!=0 || e_ext.rx_gain!=0)
                {
                        message = message_create(ea_endpoint->ep_serial, portlist->port_id, EPOINT_TO_PORT, MESSAGE_mISDNSIGNAL);
                        message->param.mISDNsignal.message = mISDNSIGNAL_VOLUME;
-                       message->param.mISDNsignal.rxvol = e_ext.txvol;
-                       message->param.mISDNsignal.txvol = e_ext.rxvol;
+                       message->param.mISDNsignal.rx_gain = e_ext.tx_gain;
+                       message->param.mISDNsignal.tx_gain = e_ext.rx_gain;
                        message_put(message);
                }
 
@@ -1849,7 +1849,7 @@ void EndpointAppPBX::port_crypt(struct port_list *portlist, int message_type, un
 /* port MESSAGE_OVERLAP */
 void EndpointAppPBX::port_overlap(struct port_list *portlist, int message_type, union parameter *param)
 {
-       struct message *message;
+       struct lcr_msg *message;
 
        logmessage(message_type, param, portlist->port_id, DIRECTION_IN);
 
@@ -1902,7 +1902,7 @@ void EndpointAppPBX::port_overlap(struct port_list *portlist, int message_type,
 /* port MESSAGE_PROCEEDING */
 void EndpointAppPBX::port_proceeding(struct port_list *portlist, int message_type, union parameter *param)
 {
-       struct message *message;
+       struct lcr_msg *message;
 
        logmessage(message_type, param, portlist->port_id, DIRECTION_IN);
 
@@ -1944,7 +1944,7 @@ void EndpointAppPBX::port_proceeding(struct port_list *portlist, int message_typ
 /* port MESSAGE_ALERTING */
 void EndpointAppPBX::port_alerting(struct port_list *portlist, int message_type, union parameter *param)
 {
-       struct message *message;
+       struct lcr_msg *message;
 
        logmessage(message_type, param, portlist->port_id, DIRECTION_IN);
 
@@ -1986,7 +1986,7 @@ void EndpointAppPBX::port_alerting(struct port_list *portlist, int message_type,
 /* port MESSAGE_CONNECT */
 void EndpointAppPBX::port_connect(struct port_list *portlist, int message_type, union parameter *param)
 {
-       struct message *message;
+       struct lcr_msg *message;
        char buffer[256];
        unsigned long port_id = portlist->port_id;
        struct port_list *tportlist;
@@ -2059,12 +2059,12 @@ void EndpointAppPBX::port_connect(struct port_list *portlist, int message_type,
        new_state(EPOINT_STATE_CONNECT);
 
        /* set volume of rx and tx */
-       if (e_ext.txvol!=0 || e_ext.rxvol!=0)
+       if (e_ext.tx_gain!=0 || e_ext.rx_gain!=0)
        {
                message = message_create(ea_endpoint->ep_serial, portlist->port_id, EPOINT_TO_PORT, MESSAGE_mISDNSIGNAL);
                message->param.mISDNsignal.message = mISDNSIGNAL_VOLUME;
-               message->param.mISDNsignal.rxvol = e_ext.txvol;
-               message->param.mISDNsignal.txvol = e_ext.rxvol;
+               message->param.mISDNsignal.rx_gain = e_ext.tx_gain;
+               message->param.mISDNsignal.tx_gain = e_ext.rx_gain;
                message_put(message);
        }
 
@@ -2196,7 +2196,7 @@ void EndpointAppPBX::port_connect(struct port_list *portlist, int message_type,
 /* port MESSAGE_DISCONNECT MESSAGE_RELEASE */
 void EndpointAppPBX::port_disconnect_release(struct port_list *portlist, int message_type, union parameter *param)
 {
-       struct message  *message;
+       struct lcr_msg  *message;
        char            buffer[256];
        unsigned long   port_id = portlist->port_id;
        int             cause,
@@ -2410,7 +2410,7 @@ void EndpointAppPBX::port_notify(struct port_list *portlist, int message_type, u
 {
        logmessage(message_type, param, portlist->port_id, DIRECTION_IN);
 
-       struct message *message;
+       struct lcr_msg *message;
        char *logtext = "";
        char buffer[64];
 
@@ -2439,13 +2439,13 @@ void EndpointAppPBX::port_notify(struct port_list *portlist, int message_type, u
                case INFO_NOTIFY_USER_RESUMED:
                /* set volume of rx and tx */
                if (param->setup.callerinfo.itype == INFO_ITYPE_ISDN_EXTENSION)
-               if (e_ext.txvol!=0 || e_ext.rxvol!=0)
+               if (e_ext.tx_gain!=0 || e_ext.rx_gain!=0)
                if (portlist)
                {
                        message = message_create(ea_endpoint->ep_serial, portlist->port_id, EPOINT_TO_PORT, MESSAGE_mISDNSIGNAL);
                        message->param.mISDNsignal.message = mISDNSIGNAL_VOLUME;
-                       message->param.mISDNsignal.rxvol = e_ext.txvol;
-                       message->param.mISDNsignal.txvol = e_ext.rxvol;
+                       message->param.mISDNsignal.rx_gain = e_ext.tx_gain;
+                       message->param.mISDNsignal.tx_gain = e_ext.rx_gain;
                        message_put(message);
                }
                /* set current tone */
@@ -2557,7 +2557,7 @@ void EndpointAppPBX::port_facility(struct port_list *portlist, int message_type,
 {
        logmessage(message_type, param, portlist->port_id, DIRECTION_IN);
 
-       struct message *message;
+       struct lcr_msg *message;
 
        message = message_create(ea_endpoint->ep_serial, ea_endpoint->ep_join_id, EPOINT_TO_JOIN, MESSAGE_FACILITY);
        memcpy(&message->param.facilityinfo, &param->facilityinfo, sizeof(struct facility_info));
@@ -2596,7 +2596,7 @@ void EndpointAppPBX::port_resume(struct port_list *portlist, int message_type, u
 void EndpointAppPBX::ea_message_port(unsigned long port_id, int message_type, union parameter *param)
 {
        struct port_list *portlist;
-       struct message *message;
+       struct lcr_msg *message;
 
        portlist = ea_endpoint->ep_portlist;
        while(portlist)
@@ -2826,7 +2826,7 @@ void EndpointAppPBX::join_crypt(struct port_list *portlist, int message_type, un
 /* join MESSAGE_INFORMATION */
 void EndpointAppPBX::join_information(struct port_list *portlist, int message_type, union parameter *param)
 {
-       struct message *message;
+       struct lcr_msg *message;
 
        e_overlap = 1;
 
@@ -2843,9 +2843,9 @@ void EndpointAppPBX::join_information(struct port_list *portlist, int message_ty
 /* join MESSAGE_FACILITY */
 void EndpointAppPBX::join_facility(struct port_list *portlist, int message_type, union parameter *param)
 {
-       struct message *message;
+       struct lcr_msg *message;
 
-       if (!e_ext.facility)
+       if (!e_ext.facility && e_ext.number[0])
        {
                return;
        }
@@ -2863,7 +2863,7 @@ void EndpointAppPBX::join_facility(struct port_list *portlist, int message_type,
 /* join MESSAGE_MORE */
 void EndpointAppPBX::join_overlap(struct port_list *portlist, int message_type, union parameter *param)
 {
-       struct message *message;
+       struct lcr_msg *message;
 
        new_state(EPOINT_STATE_IN_OVERLAP);
        
@@ -2877,7 +2877,10 @@ void EndpointAppPBX::join_overlap(struct port_list *portlist, int message_type,
        }
        if (e_action) if (e_action->index == ACTION_OUTDIAL || e_action->index == ACTION_EXTERNAL)
        {
-                       set_tone(portlist, "dialtone");
+                       if (e_dialinginfo.id[0])
+                               set_tone(portlist, "dialing");
+                       else
+                               set_tone(portlist, "dialtone");
                        return;
        }
        if (e_ext.number[0])
@@ -2889,7 +2892,7 @@ void EndpointAppPBX::join_overlap(struct port_list *portlist, int message_type,
 /* join MESSAGE_PROCEEDING */
 void EndpointAppPBX::join_proceeding(struct port_list *portlist, int message_type, union parameter *param)
 {
-       struct message *message;
+       struct lcr_msg *message;
 
        new_state(EPOINT_STATE_IN_PROCEEDING);
 
@@ -2917,7 +2920,7 @@ void EndpointAppPBX::join_proceeding(struct port_list *portlist, int message_typ
 /* join MESSAGE_ALERTING */
 void EndpointAppPBX::join_alerting(struct port_list *portlist, int message_type, union parameter *param)
 {
-       struct message *message;
+       struct lcr_msg *message;
 
        new_state(EPOINT_STATE_IN_ALERTING);
 
@@ -2952,7 +2955,7 @@ void EndpointAppPBX::join_alerting(struct port_list *portlist, int message_type,
 /* join MESSAGE_CONNECT */
 void EndpointAppPBX::join_connect(struct port_list *portlist, int message_type, union parameter *param)
 {
-       struct message *message;
+       struct lcr_msg *message;
 
        new_state(EPOINT_STATE_CONNECT);
 //                     UCPY(e_join_tone, "");
@@ -2986,8 +2989,8 @@ void EndpointAppPBX::join_connect(struct port_list *portlist, int message_type,
                SCPY(message->param.connectinfo.display, apply_callerid_display(message->param.connectinfo.id, message->param.connectinfo.itype, message->param.connectinfo.ntype, message->param.connectinfo.present, message->param.connectinfo.screen, message->param.connectinfo.extension, message->param.connectinfo.name));
 
                /* use conp, if enabld */
-               if (!e_ext.centrex)
-                       message->param.connectinfo.name[0] = '\0';
+//             if (!e_ext.centrex)
+//                     message->param.connectinfo.name[0] = '\0';
 
                /* send connect */
                message_put(message);
@@ -3005,7 +3008,7 @@ void EndpointAppPBX::join_connect(struct port_list *portlist, int message_type,
 void EndpointAppPBX::join_disconnect_release(int message_type, union parameter *param)
 {
        char cause[16];
-       struct message *message;
+       struct lcr_msg *message;
        struct port_list *portlist = NULL;
 
 
@@ -3119,8 +3122,8 @@ void EndpointAppPBX::join_disconnect_release(int message_type, union parameter *
 /* join MESSAGE_SETUP */
 void EndpointAppPBX::join_setup(struct port_list *portlist, int message_type, union parameter *param)
 {
-       struct message *message;
-       struct interface        *interface;
+       struct lcr_msg *message;
+//     struct interface        *interface;
 
        /* if we already in setup state, we just update the dialing with new digits */
        if (e_state == EPOINT_STATE_OUT_SETUP
@@ -3235,7 +3238,7 @@ void EndpointAppPBX::join_setup(struct port_list *portlist, int message_type, un
 /* join MESSAGE_mISDNSIGNAL */
 void EndpointAppPBX::join_mISDNsignal(struct port_list *portlist, int message_type, union parameter *param)
 {
-       struct message *message;
+       struct lcr_msg *message;
 
        while(portlist)
        {
@@ -3249,7 +3252,7 @@ void EndpointAppPBX::join_mISDNsignal(struct port_list *portlist, int message_ty
 /* join MESSAGE_NOTIFY */
 void EndpointAppPBX::join_notify(struct port_list *portlist, int message_type, union parameter *param)
 {
-       struct message *message;
+       struct lcr_msg *message;
        int new_state;
 
        if (param->notifyinfo.notify)
@@ -3313,7 +3316,7 @@ void EndpointAppPBX::join_notify(struct port_list *portlist, int message_type, u
 void EndpointAppPBX::ea_message_join(unsigned long join_id, int message_type, union parameter *param)
 {
        struct port_list *portlist;
-       struct message *message;
+       struct lcr_msg *message;
 
        if (!join_id)
        {
@@ -3552,7 +3555,7 @@ int match_list(char *list, char *item)
 
 void EndpointAppPBX::pick_join(char *extensions)
 {
-       struct message *message;
+       struct lcr_msg *message;
        struct port_list *portlist;
        class Port *port;
        class EndpointAppPBX *eapp, *found;
@@ -3758,7 +3761,7 @@ reject:
  */
 void EndpointAppPBX::join_join(void)
 {
-       struct message *message;
+       struct lcr_msg *message;
        struct join_relation *our_relation, *other_relation;
        struct join_relation **our_relation_pointer, **other_relation_pointer;
        class Join *our_join, *other_join;
@@ -3878,12 +3881,12 @@ void EndpointAppPBX::join_join(void)
        {
                if (other_relation->epoint_id == other_eapp->ea_endpoint->ep_serial)
                {
-               /* detach other endpoint on hold */
+                       /* detach other endpoint on hold */
                        *other_relation_pointer = other_relation->next;
                        FREE(other_relation, sizeof(struct join_relation));
                        cmemuse--;
                        other_relation = *other_relation_pointer;
-                       other_eapp->ea_endpoint->ep_join_id = NULL;
+                       other_eapp->ea_endpoint->ep_join_id = 0;
                        continue;
                }
 
@@ -4368,7 +4371,7 @@ void EndpointAppPBX::logmessage(int message_type, union parameter *param, unsign
 
 void EndpointAppPBX::message_disconnect_port(struct port_list *portlist, int cause, int location, char *display)
 {
-       struct message *message;
+       struct lcr_msg *message;
 
        if (!portlist)
                return;