Fixed call forwarding after no response. Instread of dialing the old extension
[lcr.git] / socket_server.c
index b67b91f..f881b85 100644 (file)
@@ -278,7 +278,7 @@ int admin_route(struct admin_queue **responsep)
                        release:
                        unsched_timer(&apppbx->e_callback_timeout);
                        apppbx->e_action = NULL;
-                       apppbx->release(RELEASE_ALL, LOCATION_PRIVATE_LOCAL, CAUSE_NORMAL, LOCATION_PRIVATE_LOCAL, CAUSE_NORMAL);
+                       apppbx->release(RELEASE_ALL, LOCATION_PRIVATE_LOCAL, CAUSE_NORMAL, LOCATION_PRIVATE_LOCAL, CAUSE_NORMAL, 0);
                        start_trace(-1,
                                NULL,
                                numberrize_callerinfo(apppbx->e_callerinfo.id, apppbx->e_callerinfo.ntype, options.national, options.international),
@@ -488,7 +488,7 @@ int admin_release(struct admin_queue **responsep, char *message)
        }
 
        unsched_timer(&apppbx->e_callback_timeout);
-       apppbx->release(RELEASE_ALL, LOCATION_PRIVATE_LOCAL, CAUSE_NORMAL, LOCATION_PRIVATE_LOCAL, CAUSE_NORMAL);
+       apppbx->release(RELEASE_ALL, LOCATION_PRIVATE_LOCAL, CAUSE_NORMAL, LOCATION_PRIVATE_LOCAL, CAUSE_NORMAL, 0);
 
        out:
        /* attach to response chain */
@@ -530,7 +530,7 @@ int admin_call(struct admin_list *admin, struct admin_message *msg)
        apppbx->e_dialinginfo.sending_complete = 1;
 
        apppbx->new_state(PORT_STATE_OUT_SETUP);
-       apppbx->out_setup();
+       apppbx->out_setup(0);
        return(0);
 }
 
@@ -538,7 +538,7 @@ int admin_call(struct admin_list *admin, struct admin_message *msg)
 /*
  * this function is called for response whenever a call state changes.
  */
-void admin_call_response(int adminid, int message, const char *connected, int cause, int location, int notify)
+void admin_call_response(int adminid, int message, const char *connected, int cause, int location, int notify_progress)
 {
        struct admin_list       *admin;
        struct admin_queue      *response, **responsep; /* response pointer */
@@ -573,7 +573,7 @@ void admin_call_response(int adminid, int message, const char *connected, int ca
        SCPY(response->am[0].u.call.callerid, connected);
        response->am[0].u.call.cause = cause;
        response->am[0].u.call.location = location;
-       response->am[0].u.call.notify = notify;
+       response->am[0].u.call.notify_progress = notify_progress;
 
        /* attach to response chain */
        *responsep = response;
@@ -1049,7 +1049,7 @@ int admin_state(struct admin_queue **responsep)
                        response->am[num].u.p.state = ADMIN_STATE_IDLE;
                }
                /* isdn */
-               if ((port->p_type&PORT_CLASS_mISDN_MASK) == PORT_CLASS_mISDN_DSS1) {
+               if ((port->p_type & PORT_CLASS_mISDN_MASK) == PORT_CLASS_DSS1) {
                        response->am[num].u.p.isdn = 1;
                        pdss1 = (class Pdss1 *)port;
                        response->am[num].u.p.isdn_chan = pdss1->p_m_b_channel;
@@ -1123,7 +1123,7 @@ int admin_handle_con(struct lcr_fd *fd, unsigned int what, void *instance, int i
                                epoint = find_epoint_id(admin->epointid);
                                if (epoint) {
                                        ((class DEFAULT_ENDPOINT_APP *)epoint->ep_app)->
-                                               release(RELEASE_ALL, LOCATION_PRIVATE_LOCAL, CAUSE_NORMAL, LOCATION_PRIVATE_LOCAL, CAUSE_NORMAL);
+                                               release(RELEASE_ALL, LOCATION_PRIVATE_LOCAL, CAUSE_NORMAL, LOCATION_PRIVATE_LOCAL, CAUSE_NORMAL, 0);
                                }
                        }