ast_mutex_init(&csth.spy.lock);
csth.volfactor = *volfactor;
set_volume(chan, &csth);
- csth.spy.read_vol_adjustment = csth.volfactor;
- csth.spy.write_vol_adjustment = csth.volfactor;
+ if (csth.volfactor) {
+ ast_set_flag(&csth.spy, CHANSPY_READ_VOLADJUST);
+ csth.spy.read_vol_adjustment = csth.volfactor;
+ ast_set_flag(&csth.spy, CHANSPY_WRITE_VOLADJUST);
+ csth.spy.write_vol_adjustment = csth.volfactor;
+ }
csth.fd = fd;
if (start_spying(spyee, chan, &csth.spy)) {
ast_verbose(VERBOSE_PREFIX_3 "Setting spy volume on %s to %d\n", chan->name, *volfactor);
csth.volfactor = *volfactor;
set_volume(chan, &csth);
- csth.spy.read_vol_adjustment = csth.volfactor;
- csth.spy.write_vol_adjustment = csth.volfactor;
+ if (csth.volfactor) {
+ ast_set_flag(&csth.spy, CHANSPY_READ_VOLADJUST);
+ csth.spy.read_vol_adjustment = csth.volfactor;
+ ast_set_flag(&csth.spy, CHANSPY_WRITE_VOLADJUST);
+ csth.spy.write_vol_adjustment = csth.volfactor;
+ } else {
+ ast_clear_flag(&csth.spy, CHANSPY_READ_VOLADJUST);
+ ast_clear_flag(&csth.spy, CHANSPY_WRITE_VOLADJUST);
+ }
}
} else if (res == '*') {
break;