diff options
-rw-r--r-- | channels/chan_dahdi.c | 5 | ||||
-rw-r--r-- | channels/sig_pri.c | 7 | ||||
-rw-r--r-- | channels/sig_pri.h | 2 |
3 files changed, 10 insertions, 4 deletions
diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c index ade108dbe..94240377d 100644 --- a/channels/chan_dahdi.c +++ b/channels/chan_dahdi.c @@ -6357,10 +6357,7 @@ static int dahdi_fixup(struct ast_channel *oldchan, struct ast_channel *newchan) } #ifdef HAVE_PRI else if (dahdi_sig_pri_lib_handles(p->sig)) { - struct sig_pri_chan *pchan = p->sig_pvt; - if (pchan->owner == oldchan) { - pchan->owner = newchan; - } + sig_pri_fixup(oldchan, newchan, p->sig_pvt); } #endif diff --git a/channels/sig_pri.c b/channels/sig_pri.c index 779d7f69c..f76113e08 100644 --- a/channels/sig_pri.c +++ b/channels/sig_pri.c @@ -3198,4 +3198,11 @@ int pri_maintenance_bservice(struct pri *pri, struct sig_pri_chan *p, int change } #endif +void sig_pri_fixup(struct ast_channel *oldchan, struct ast_channel *newchan, struct sig_pri_chan *pchan) +{ + if (pchan->owner == oldchan) { + pchan->owner = newchan; + } +} + #endif /* HAVE_PRI */ diff --git a/channels/sig_pri.h b/channels/sig_pri.h index eb6bd02bd..a61ef3161 100644 --- a/channels/sig_pri.h +++ b/channels/sig_pri.h @@ -266,4 +266,6 @@ int pri_send_callrerouting_facility_exec(struct sig_pri_chan *p, enum ast_channe int pri_maintenance_bservice(struct pri *pri, struct sig_pri_chan *p, int changestatus); #endif +void sig_pri_fixup(struct ast_channel *oldchan, struct ast_channel *newchan, struct sig_pri_chan *pchan); + #endif /* _SIG_PRI_H */ |