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 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); } |