diff options
-rw-r--r-- | channels/chan_misdn.c | 5 | ||||
-rw-r--r-- | channels/misdn/isdn_lib.c | 1 |
2 files changed, 5 insertions, 1 deletions
diff --git a/channels/chan_misdn.c b/channels/chan_misdn.c index 2288b1d8c..dcad08024 100644 --- a/channels/chan_misdn.c +++ b/channels/chan_misdn.c @@ -4805,7 +4805,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 19268d0e6..1ccea50a8 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); } |