memset(¶m, 0, sizeof(param));
param.disconnectinfo.cause = CAUSE_OUTOFORDER;
param.disconnectinfo.location = LOCATION_PRIVATE_LOCAL;
- ((class JoinRemote *)join)->message_remote(0, MESSAGE_RELEASE, ¶m);
+ ((class JoinRemote *)join)->message_remote(MESSAGE_RELEASE, ¶m);
/* join is now destroyed, so we go to next join */
}
join = joinnext;
class Endpoint *epoint;
class EndpointAppPBX *apppbx;
- if (!(epoint = new Endpoint(0, 0, 0)))
+ if (!(epoint = new Endpoint(0, 0)))
FATAL("No memory for Endpoint instance\n");
if (!(epoint->ep_app = apppbx = new DEFAULT_ENDPOINT_APP(epoint)))
FATAL("No memory for Endpoint Application instance\n");
return(0);
}
+ /* bchannel message
+ * no ref given for *_ack */
+ if (msg->type == MESSAGE_BCHANNEL)
+ if (msg->param.bchannel.type == BCHANNEL_ASSIGN_ACK
+ || msg->param.bchannel.type == BCHANNEL_REMOVE_ACK)
+ {
+ /* no ref, but address */
+ message_bchannel_from_join(NULL, msg->param.bchannel.type, msg->param.bchannel.handle);
+ return(0);
+ }
+
/* check for ref */
if (!msg->ref)
{
}
/* send message */
- ((class JoinRemote *)join)->message_remote(msg->ref, msg->type, &msg->param);
+ ((class JoinRemote *)join)->message_remote(msg->type, &msg->param);
return(0);
}
if (epoint)
{
((class DEFAULT_ENDPOINT_APP *)epoint->ep_app)->
- release(RELEASE_ALL, CAUSE_NORMAL, LOCATION_PRIVATE_LOCAL, 0, 0);
+ release(RELEASE_ALL, LOCATION_PRIVATE_LOCAL, CAUSE_NORMAL, LOCATION_PRIVATE_LOCAL, CAUSE_NORMAL);
}
}