- port = port->next;
- }
- if (port)
- {
- pdss1->message_isdn(frm->prim, frm->dinfo, msg->data);
- free_msg(msg);
- return(0);
- }
-
- /* process new cr (before setup indication) */
-//printf("prim = 0x%x, looking for 0x%x\n",frm->prim, (CC_NEW_CR | INDICATION));
- if (frm->prim == (CC_NEW_CR | INDICATION))
- {
-
- /* creating port object */
- SPRINT(name, "%s-%d-in", mISDNport->ifport->interface->name, mISDNport->portnum);
- if (!(pdss1 = new Pdss1(PORT_TYPE_DSS1_TE_IN, mISDNport, name, NULL, 0, 0)))
- {
- RELEASE_COMPLETE_t *release_complete;
- msg_t *dmsg;
-
- PERROR("FATAL ERROR: cannot create port object.\n");
- dmsg = create_l3msg(CC_RELEASE_COMPLETE | REQUEST, MT_RELEASE_COMPLETE, frm->dinfo, sizeof(RELEASE_COMPLETE_t), mISDNport->ntmode);
- release_complete = (RELEASE_COMPLETE_t *)(dmsg->data + mISDN_HEADER_LEN);
- l1l2l3_trace_header(mISDNport, NULL, CC_RELEASE_COMPLETE | REQUEST, DIRECTION_OUT);
- enc_ie_cause_standalone(mISDNport->ntmode?&release_complete->CAUSE:NULL, dmsg, (mISDNport->ntmode)?LOCATION_PRIVATE_LOCAL:LOCATION_PRIVATE_REMOTE, 47);
- end_trace();
- msg_queue_tail(&mISDNport->downqueue, dmsg);
- free_msg(msg);
- return(0);
- }
- /* l3id will be set from dinfo at message_isdn */
- pdss1->message_isdn(frm->prim, frm->dinfo, msg->data);
- free_msg(msg);
- return(0);
- }
-
- if (frm->prim == (CC_RELEASE_CR | INDICATION))
- {
- PERROR("unhandled message from stack: call ref released (l3id=0x%x)\n", frm->dinfo);
- free_msg(msg);
- return(0);