From ff4d197d5ecb2cb29a55f78b260ab387e3afc80d Mon Sep 17 00:00:00 2001 From: Super User Date: Sat, 26 Jul 2008 17:42:16 +0200 Subject: now LCR features real HDLC bchannel mode. -> if initial caller uses pure data mode (or video), the bchannels for this call are handled in HDLC mode. (hardware/software briding is still applicable.) modified: apppbx.cpp modified: chan_lcr.c modified: dss1.cpp modified: dss1.h modified: lcradmin.c modified: lcrsocket.h modified: mISDN.cpp modified: mISDN.h modified: message.h modified: socket_server.c --- chan_lcr.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'chan_lcr.c') diff --git a/chan_lcr.c b/chan_lcr.c index 8d46357..5a5b6f9 100644 --- a/chan_lcr.c +++ b/chan_lcr.c @@ -592,8 +592,12 @@ static void send_setup_to_lcr(struct chan_call *call) } newparam.setup.capainfo.bearer_capa = ast->transfercapability; newparam.setup.capainfo.bearer_mode = INFO_BMODE_CIRCUIT; - if (!call->hdlc) + if (call->hdlc) + newparam.setup.capainfo.source_mode = B_MODE_HDLC; + else { + newparam.setup.capainfo.source_mode = B_MODE_TRANSPARENT; newparam.setup.capainfo.bearer_info1 = (options.law=='a')?3:2; + } newparam.setup.capainfo.hlc = INFO_HLC_NONE; newparam.setup.capainfo.exthlc = INFO_HLC_NONE; send_message(MESSAGE_SETUP, call->ref, &newparam); @@ -814,9 +818,7 @@ static void lcr_in_setup(struct chan_call *call, int message_type, union paramet } ast->transfercapability = param->setup.capainfo.bearer_capa; /* enable hdlc if transcap is data */ - if (ast->transfercapability == INFO_BC_DATAUNRESTRICTED - || ast->transfercapability == INFO_BC_DATARESTRICTED - || ast->transfercapability == INFO_BC_VIDEO) + if (param->setup.capainfo.source_mode == B_MODE_HDLC) call->hdlc = 1; strncpy(call->oad, numberrize_callerinfo(param->setup.callerinfo.id, param->setup.callerinfo.ntype, options.national, options.international), sizeof(call->oad)-1); -- cgit v1.2.3-55-g7522