X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=lcr.git;a=blobdiff_plain;f=chan_lcr.c;h=657edf8590fe4c4218ec1b40d6a0319b658cb90c;hp=a4b1a1522c4f4c1d094ef0aee957d20150b53399;hb=a296b797ba03cb0716fbba841b26041a80ca4ce7;hpb=464ed1f2840332b587a81fd64c0875567c9024d2 diff --git a/chan_lcr.c b/chan_lcr.c index a4b1a15..657edf8 100644 --- a/chan_lcr.c +++ b/chan_lcr.c @@ -646,8 +646,6 @@ static void send_setup_to_lcr(struct chan_call *call) strncpy(newparam.setup.dialinginfo.keypad, call->dialstring, sizeof(newparam.setup.dialinginfo.keypad)-1); else strncpy(newparam.setup.dialinginfo.id, call->dialstring, sizeof(newparam.setup.dialinginfo.id)-1); - if (!!strcmp(call->interface, "pbx")) - strncpy(newparam.setup.dialinginfo.interfaces, call->interface, sizeof(newparam.setup.dialinginfo.interfaces)-1); newparam.setup.callerinfo.itype = INFO_ITYPE_CHAN; newparam.setup.callerinfo.ntype = INFO_NTYPE_UNKNOWN; strncpy(newparam.setup.callerinfo.display, call->display, sizeof(newparam.setup.callerinfo.display)-1); @@ -2425,6 +2423,7 @@ static int lcr_call(struct ast_channel *ast, char *dest, int timeout) /* send MESSAGE_NEWREF */ memset(&newparam, 0, sizeof(union parameter)); newparam.newref.direction = 0; /* request from app */ + strncpy(newparam.newref.interface, call->interface, sizeof(newparam.newref.interface) - 1); send_message(MESSAGE_NEWREF, 0, &newparam); /* set hdlc if capability requires hdlc */ @@ -2782,11 +2781,12 @@ static int lcr_write(struct ast_channel *ast, struct ast_frame *fr) call = ast_channel_tech_pvt(ast); #endif if (!call || !call->ref) { + /* drop the frame, if no ref exists, but return successfull delivery, or asterisk will abort connection */ ast_mutex_unlock(&chan_lock); if (f != fr) { ast_frfree(f); } - return -1; + return 0; } len = f->samples; p = *((unsigned char **)&(f->data));