aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--channels/chan_misdn.c5
-rw-r--r--channels/misdn/isdn_lib.c1
2 files changed, 5 insertions, 1 deletions
diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c
index 76b4165bc..c4f49c8bf 100644
--- a/channels/chan_misdn.c
+++ b/channels/chan_misdn.c
@@ -4872,7 +4872,10 @@ static int misdn_set_opt_exec(struct ast_channel *chan, void *data)
if (strlen(tok) > 1 && tok[1]=='1') {
chan_misdn_log(1, ch->bc->port, "SETOPT: HDLC \n");
- ch->bc->hdlc=1;
+ if (!ch->bc->hdlc) {
+ ch->bc->hdlc=1;
+ misdn_lib_setup_bc(ch->bc);
+ }
}
ch->bc->capability=INFO_CAPABILITY_DIGITAL_UNRESTRICTED;
break;
diff --git a/channels/misdn/isdn_lib.c b/channels/misdn/isdn_lib.c
index b22e4d61e..94813a381 100644
--- a/channels/misdn/isdn_lib.c
+++ b/channels/misdn/isdn_lib.c
@@ -896,6 +896,7 @@ static int create_process (int midev, struct misdn_bchannel *bc) {
void misdn_lib_setup_bc(struct misdn_bchannel *bc)
{
+ clean_up_bc(bc);
setup_bc(bc);
}