+ /* if blocked, release call */
+ if (p_m_mISDNport->ifport->block)
+ {
+ RELEASE_COMPLETE_t *release_complete;
+
+ printlog("--- port#%d is blocked.\n", mISDNport->ifport->portnum);
+ dmsg = create_l3msg(CC_RELEASE_COMPLETE | REQUEST, MT_RELEASE_COMPLETE, dinfo, sizeof(RELEASE_COMPLETE_t), p_m_d_ntmode);
+ isdn_show_send_message(CC_RELEASE_COMPLETE | REQUEST, dmsg);
+ release_complete = (RELEASE_COMPLETE_t *)(dmsg->data + headerlen);
+ enc_ie_cause(&release_complete->CAUSE, dmsg, (p_m_d_ntmode)?LOCATION_PRIVATE_LOCAL:LOCATION_PRIVATE_REMOTE, 27); /* temporary unavailable */
+ msg_queue_tail(&p_m_mISDNport->downqueue, dmsg);
+ new_state(PORT_STATE_RELEASE);
+ p_m_delete = 1;
+ return;
+ }
+