Re: w в вызываемом номере
так оно и есть
для пульса 'w' и не должна работать, только в тоне
что и требовалось доказать, потому и работает, как описано выше, через тон
приведу кусок из zaptel.c (функция __do_dtmf) может кому пригодится:
default:
if (chan->digitmode == DIGIT_MODE_PULSE)
{
if ((c >= '0') && (c <= '9') && (chan->txhooksig == ZT_TXSIG_OFFHOOK))
{
chan->pdialcount = c - '0';
/* a '0' is ten pulses */
if (!chan->pdialcount) chan->pdialcount = 10;
zt_rbs_sethook(chan, ZT_TXSIG_ONHOOK,
ZT_TXSTATE_PULSEBREAK, chan->pulsebreaktime);
return;
}
//
// ЗДЕСЬ ПОХОЖЕ НАДО СОТВОРИТЬ ЗАДЕРЖКУ, ПРОВЕРИВ с=='w'
//
} else {
chan->curtone = zt_dtmf_tone(c, (chan->digitmode == DIGIT_MODE_MFV1));
chan->tonep = 0;
/* All done */
if (chan->curtone) {
zt_init_tone_state(&chan->ts, chan->curtone);
return;
}
}
|