gsm->network must be set != NULL, to make it work correctly
[lcr.git] / dss1.cpp
index d1430dc..c819835 100644 (file)
--- a/dss1.cpp
+++ b/dss1.cpp
@@ -801,6 +801,13 @@ void Pdss1::setup_acknowledge_ind(unsigned int cmd, unsigned int pid, struct l3_
        dec_ie_progress(l3m, &coding, &location, &progress);
        end_trace();
 
+       if (progress >= 0) {
+               message = message_create(p_serial, ACTIVE_EPOINT(p_epointlist), PORT_TO_EPOINT, MESSAGE_PROGRESS);
+               message->param.progressinfo.progress = progress;
+               message->param.progressinfo.location = location;
+               message_put(message);
+       }
+
        /* process channel */
        ret = received_first_reply_to_setup(cmd, channel, exclusive);
        if (ret < 0) {
@@ -850,6 +857,13 @@ void Pdss1::proceeding_ind(unsigned int cmd, unsigned int pid, struct l3_msg *l3
        dec_ie_redir_dn(l3m, &type, &plan, &present, (unsigned char *)redir, sizeof(redir));
        end_trace();
 
+       if (progress >= 0) {
+               message = message_create(p_serial, ACTIVE_EPOINT(p_epointlist), PORT_TO_EPOINT, MESSAGE_PROGRESS);
+               message->param.progressinfo.progress = progress;
+               message->param.progressinfo.location = location;
+               message_put(message);
+       }
+
        ret = received_first_reply_to_setup(cmd, channel, exclusive);
        if (ret < 0) {
                message = message_create(p_serial, ACTIVE_EPOINT(p_epointlist), PORT_TO_EPOINT, MESSAGE_RELEASE);
@@ -926,6 +940,13 @@ void Pdss1::alerting_ind(unsigned int cmd, unsigned int pid, struct l3_msg *l3m)
        dec_ie_redir_dn(l3m, &type, &plan, &present, (unsigned char *)redir, sizeof(redir));
        end_trace();
 
+       if (progress >= 0) {
+               message = message_create(p_serial, ACTIVE_EPOINT(p_epointlist), PORT_TO_EPOINT, MESSAGE_PROGRESS);
+               message->param.progressinfo.progress = progress;
+               message->param.progressinfo.location = location;
+               message_put(message);
+       }
+
        /* process channel */
        ret = received_first_reply_to_setup(cmd, channel, exclusive);
        if (ret < 0) {
@@ -1099,6 +1120,13 @@ void Pdss1::disconnect_ind(unsigned int cmd, unsigned int pid, struct l3_msg *l3
                location = LOCATION_PRIVATE_LOCAL;
        }
 
+       if (progress >= 0) {
+               message = message_create(p_serial, ACTIVE_EPOINT(p_epointlist), PORT_TO_EPOINT, MESSAGE_PROGRESS);
+               message->param.progressinfo.progress = progress;
+               message->param.progressinfo.location = proglocation;
+               message_put(message);
+       }
+
        /* release if remote sends us no tones */
        if (!p_m_mISDNport->earlyb) {
                l3_msg *l3m;
@@ -1639,6 +1667,13 @@ void Pdss1::progress_ind(unsigned int cmd, unsigned int pid, struct l3_msg *l3m)
        l1l2l3_trace_header(p_m_mISDNport, this, L3_PROGRESS_IND, DIRECTION_IN);
        dec_ie_progress(l3m, &coding, &location, &progress);
        end_trace();
+
+       if (progress >= 0) {
+               message = message_create(p_serial, ACTIVE_EPOINT(p_epointlist), PORT_TO_EPOINT, MESSAGE_PROGRESS);
+               message->param.progressinfo.progress = progress;
+               message->param.progressinfo.location = location;
+               message_put(message);
+       }
 }
 
 
@@ -2862,7 +2897,7 @@ int stack2manager(struct mISDNport *mISDNport, unsigned int cmd, unsigned int pi
        port = port_first;
        while(port) {
                /* are we ISDN ? */
-               if ((port->p_type & PORT_CLASS_mISDN_MASK) == PORT_CLASS_mISDN_DSS1) {
+               if ((port->p_type & PORT_CLASS_mISDN_MASK) == PORT_CLASS_DSS1) {
                        pdss1 = (class Pdss1 *)port;
                        /* check out correct stack and id */
                        if (pdss1->p_m_mISDNport == mISDNport) {