summaryrefslogtreecommitdiffstats
path: root/chan_lcr.c
diff options
context:
space:
mode:
authorSuper User2008-07-26 17:42:16 +0200
committerSuper User2008-07-26 17:42:16 +0200
commitff4d197d5ecb2cb29a55f78b260ab387e3afc80d (patch)
tree3db42ea3a70133f12c8208bdc58f2c4c00ad8a3e /chan_lcr.c
parentmany fixes on HDLC issues (diff)
downloadlcr-ff4d197d5ecb2cb29a55f78b260ab387e3afc80d.tar.gz
lcr-ff4d197d5ecb2cb29a55f78b260ab387e3afc80d.tar.xz
lcr-ff4d197d5ecb2cb29a55f78b260ab387e3afc80d.zip
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
Diffstat (limited to 'chan_lcr.c')
-rw-r--r--chan_lcr.c10
1 files changed, 6 insertions, 4 deletions
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);