Mediastreamer2 VoIP เดŽเดžเตเดšเดฟเตป เดชเดฐเตเดฏเดตเต‡เด•เตเดทเดฃเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดญเดพเด—เด‚ 3

เดฒเต‡เด–เดจเดคเตเดคเดฟเดจเตเดฑเต† เดฎเต†เดฑเตเดฑเต€เดฐเดฟเดฏเตฝ เดŽเดจเตเดฑเต†เดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดŽเดŸเตเดคเตเดคเดคเดพเดฃเต เดธเต†เตป เดšเดพเดจเตฝ.

Mediastreamer2 VoIP เดŽเดžเตเดšเดฟเตป เดชเดฐเตเดฏเดตเต‡เด•เตเดทเดฃเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เดญเดพเด—เด‚ 3

เดŸเต‹เตบ เดœเดจเดฑเต‡เดฑเตเดฑเตผ เด‰เดฆเดพเดนเดฐเดฃเด‚ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต

เดฎเตเดฎเตเดชเดคเตเดคเต‡เดคเดฟเตฝ เดฒเต‡เด–เดจเด‚ เดžเด™เตเด™เตพ เด’เดฐเต เดŸเต‹เตบ เดœเดจเดฑเต‡เดฑเตเดฑเตผ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดŽเดดเตเดคเดฟ เด•เดฎเตเดชเตเดฏเต‚เดŸเตเดŸเตผ เดธเตเดชเต€เด•เตเด•เดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดถเดฌเตเดฆเด‚ เดตเต‡เตผเดคเดฟเดฐเดฟเดšเตเดšเต†เดŸเตเด•เตเด•เดพเตป เด…เดคเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต. เดžเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเดฎเตเดชเต‹เตพ เดฎเต†เดฎเตเดฎเดฑเดฟ เดคเดฟเดฐเดฟเด•เต† เดนเต€เดชเตเดชเดฟเดฒเต‡เด•เตเด•เต เดคเดฟเดฐเดฟเด•เต† เดจเตฝเด•เตเดจเตเดจเดฟเดฒเตเดฒเต†เดจเตเดจเต เด‡เดชเตเดชเต‹เตพ เดจเดฎเตเดฎเตพ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด‚. เดˆ เดชเตเดฐเดถเตเดจเด‚ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดพเตป เดธเดฎเดฏเดฎเดพเดฏเดฟ.

เดจเดฎเตเด•เตเด•เต เดธเตผเด•เตเดฏเต‚เดŸเตเดŸเต เด†เดตเดถเตเดฏเดฎเดฟเดฒเตเดฒเดพเดคเตเดคเดคเดฟเดจเต เดถเต‡เดทเด‚, เดกเดพเดฑเตเดฑ เดชเตˆเดชเตเดชเตเดฒเตˆเตป เดจเดฟเตผเดคเตเดคเดฟเด•เตเด•เตŠเดฃเตเดŸเต เดฎเต†เดฎเตเดฎเดฑเดฟ เดธเตเดตเดคเดจเตเดคเตเดฐเดฎเดพเด•เตเด•เตฝ เด†เดฐเด‚เดญเดฟเด•เตเด•เดฃเด‚. เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดจเดฟเด™เตเด™เตพ เดซเด‚เด—เตเดทเตป เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดธเตผเด•เตเดฏเต‚เดŸเตเดŸเดฟเตฝ เดจเดฟเดจเตเดจเต เด•เตเดฒเต‹เด•เตเด•เต เด‰เดฑเดตเดฟเดŸเดตเตเด‚ เดŸเดฟเด•เตเด•เดฑเตเด‚ เดตเดฟเดšเตเด›เต‡เดฆเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต ms_ticker_detach(). เดžเด™เตเด™เดณเตเดŸเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดซเดฟเตฝเดŸเตเดŸเตผ เด‡เตปเดชเตเดŸเตเดŸเดฟเตฝ เดจเดฟเดจเตเดจเต เดŸเดฟเด•เตเด•เตผ เดตเดฟเดšเตเด›เต‡เดฆเดฟเด•เตเด•เดฃเด‚ เดถเต‚เดจเตเดฏเดฎเดพเดฏ เด‰เดฑเดตเดฟเดŸเด‚:

ms_ticker_detach(ticker, voidsource)

เดตเดดเดฟเดฏเดฟเตฝ, เด•เตบเดตเต†เดฏเตผ เดจเดฟเตผเดคเตเดคเดฟเดฏ เดถเต‡เดทเด‚, เดจเดฎเตเด•เตเด•เต เด…เดคเดฟเดจเตเดฑเต† เดธเตผเด•เตเดฏเต‚เดŸเตเดŸเต เดฎเดพเดฑเตเดฑเดฟ เดตเต€เดฃเตเดŸเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเดพเด‚, เดตเต€เดฃเตเดŸเตเด‚ เดŸเดฟเด•เตเด•เดฑเดฟเดจเต† เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต.

เด‡เดชเตเดชเต‹เตพ เดจเดฎเตเด•เตเด•เต เด…เดคเต เดซเด‚เด—เตเดทเตป เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเต€เด•เตเด•เด‚เดšเต†เดฏเตเดฏเดพเด‚ ms_ticker_destroy():

ms_ticker_destroy(ticker)

เด•เตบเดตเต†เดฏเตผ เดจเดฟเตผเดคเตเดคเดฟ, เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เตพ เดตเดฟเดšเตเด›เต‡เดฆเดฟเดšเตเดšเต เดจเดฎเตเด•เตเด•เต เด…เดคเดฟเดจเตเดฑเต† เดญเดพเด—เด™เตเด™เตพ เดกเดฟเดธเตเด…เดธเด‚เดฌเตเดฒเดฟเด‚เด—เต เดšเต†เดฏเตเดฏเดพเตป เดคเตเดŸเด™เตเด™เดพเด‚. เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดซเด‚เด—เตเดทเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด• ms_filter_unlink():

ms_filter_unlink(voidsource, 0, dtmfgen, 0);
ms_filter_unlink(dtmfgen, 0, snd_card_write, 0);

เด†เตผเด—เตเดฏเตเดฎเต†เดจเตเดฑเตเด•เดณเตเดŸเต† เด‰เดฆเตเดฆเต‡เดถเตเดฏเด‚ เดซเด‚เด—เตโ€Œเดทเดจเตเดฑเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเดจเต เดคเตเดฒเตเดฏเดฎเดพเดฃเต ms_filter_link().

เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด‡เดชเตเดชเต‹เตพ เดตเต‡เตผเดคเดฟเดฐเดฟเดšเตเดš เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เตพ เดžเด™เตเด™เตพ เดจเต€เด•เตเด•เด‚เดšเต†เดฏเตเดฏเตเดจเตเดจเต ms_filter_destroy():

ms_filter_destroy(voidsource);
ms_filter_destroy(dtmfgen);
ms_filter_destroy(snd_card_write);

เดžเด™เตเด™เดณเตเดŸเต† เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดˆ เดตเดฐเดฟเด•เตพ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต†, เดฎเต†เดฎเตเดฎเดฑเดฟ เดฎเดพเดจเต‡เดœเตเดฎเต†เดจเตเดฑเดฟเดจเตเดฑเต† เดตเต€เด•เตเดทเดฃเด•เต‹เดฃเดฟเตฝ เดจเดฟเดจเตเดจเต เดถเดฐเดฟเดฏเดพเดฏ เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เด…เดตเดธเดพเดจเดฟเดชเตเดชเดฟเด•เตเด•เตฝ เดจเดฎเตเด•เตเด•เต เดฒเดญเดฟเด•เตเด•เตเด‚.

เดจเดฎเตเด•เตเด•เต เด•เดพเดฃเดพเดจเดพเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเดจเตเดฑเต† เดถเดฐเดฟเดฏเดพเดฏ เดชเต‚เตผเดคเตเดคเต€เด•เดฐเดฃเดคเตเดคเดฟเดจเต, เด“เดฐเต‹ เดซเดฟเตฝเดŸเตเดŸเดฑเดฟเดจเตเด‚ เดถเดฐเดพเดถเดฐเดฟ เดจเดพเดฒเต เดตเดฐเดฟ เด•เต‹เดกเตเด•เดณเต‹เดŸเต†, เดคเตเดŸเด•เตเด•เดคเตเดคเดฟเตฝ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจ เด…เดคเต‡ เดŽเดฃเตเดฃเด‚ เด•เต‹เดกเต เดตเดฐเดฟเด•เตพ เดšเต‡เตผเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต. เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเดคเตเดคเดฟเดจเต เด†เดจเตเดชเดพเดคเดฟเด•เดฎเดพเดฏเดฟ เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เด•เต‹เดกเดฟเดจเตเดฑเต† เดตเดฒเตเดชเตเดชเด‚ เดตเตผเดฆเตเดงเดฟเด•เตเด•เตเดฎเต†เดจเตเดจเต เด‡เดคเต เดฎเดพเดฑเตเดจเตเดจเต. เดธเตผเด•เตเดฏเต‚เดŸเตเดŸเดฟเดฒเต† เด†เดฏเดฟเดฐเด‚ เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดจเดฎเตเดฎเตพ เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด…เดต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดจเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฎเตเดณเตเดณ เดชเดคเดฟเดตเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเตเดŸเต† เดจเดพเดฒเดพเดฏเดฟเดฐเด‚ เดตเดฐเดฟเด•เตพ เดจเดฟเด™เตเด™เดณเตเดŸเต† เด•เต‹เดกเดฟเดฒเต‡เด•เตเด•เต เดšเต‡เตผเด•เตเด•เตเด‚.

เด’เดฐเต เดฎเต€เดกเดฟเดฏ เดธเตเดŸเตเดฐเต€เดฎเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดชเตเดฐเต‹เด—เตเดฐเดพเด‚ เดŽเด™เตเด™เดจเต† เดถเดฐเดฟเดฏเดพเดฏเดฟ เด…เดตเดธเดพเดจเดฟเดชเตเดชเดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเต เด‡เดชเตเดชเต‹เตพ เดจเดฟเด™เตเด™เตพเด•เตเด•เดฑเดฟเดฏเดพเด‚. เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เดณเดฟเตฝ, เด’เดคเตเด•เตเด•เดคเตเดคเดฟเดจเต เดตเต‡เดฃเตเดŸเดฟ, เด‡เดคเต เดšเต†เดฏเตเดฏเดพเตป เดžเดพเตป "เดฎเดฑเด•เตเด•เตเด‚". เดชเด•เตเดทเต‡ เดฎเดฑเด•เตเด•เดฟเดฒเตเดฒเต‡?

เดฎเต€เดกเดฟเดฏ เดธเตเดŸเตเดฐเต€เดฎเดฑเดฟเดจเตเดฑเต† เดกเต†เดตเดฒเดชเตเดชเตผเดฎเดพเตผ เดธเตผเด•เตเดฏเต‚เดŸเตเดŸเตเด•เตพ เด…เดธเด‚เดฌเตเดฒเดฟเด‚เด—เต / เดกเดฟเดธเตเด…เดธเด‚เดฌเตเดฒเดฟเด‚เด—เต เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เดณเตเดŸเต† เด•เตƒเดคเตเดฐเดฟเดฎเดคเตเดตเด‚ เดธเตเด—เดฎเดฎเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดธเต‹เดซเตเดฑเตเดฑเตเดตเต†เดฏเตผ เดŸเต‚เดณเตเด•เตพ เดจเตฝเด•เดฟเดฏเดฟเดฒเตเดฒ. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดธเตผเด•เตเดฏเต‚เดŸเตเดŸเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดฐเต เดซเดฟเตฝเดŸเตเดŸเตผ เดตเต‡เด—เดคเตเดคเดฟเตฝ เดคเดฟเดฐเตเด•เดพเตป/เดจเต€เด•เตเด•เด‚เดšเต†เดฏเตเดฏเดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดธเดนเดพเดฏเดฟเดฏเตเดฃเตเดŸเต.

เดžเด™เตเด™เดณเตเดŸเต† เด‰เดฆเดพเดนเดฐเดฃเด™เตเด™เดณเดฟเดฒเต† เดซเดฟเตฝเดŸเตเดŸเดฑเตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เดฐเดฃเตเดŸเต เดกเดธเตป เด•เดตเดฟเดฏเตเดฎเตเดชเต‹เตพ, เดˆ เดชเตเดฐเดถเตเดจเด‚ เดชเดฐเดฟเดนเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‡เด•เตเด•เต เดžเด™เตเด™เตพ เดชเดฟเดจเตเดจเต€เดŸเต เดฎเดŸเด™เตเด™เตเด‚.

เด…เดŸเตเดคเตเดคเดคเต เดฒเต‡เด–เดจเด‚ เดžเด™เตเด™เตพ เด’เดฐเต เดธเดฟเด—เตเดจเตฝ เดฒเต†เดตเตฝ เดฎเต€เดฑเตเดฑเตผ เดธเตผเด•เตเดฏเต‚เดŸเตเดŸเต เด•เต‚เดŸเตเดŸเดฟเดšเตเดšเต‡เตผเด•เตเด•เตเด•เดฏเตเด‚ เดซเดฟเตฝเดŸเตเดŸเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เด…เดณเด•เตเด•เตฝ เดซเดฒเด‚ เดŽเด™เตเด™เดจเต† เดตเดพเดฏเดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเต เดชเด เดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเด‚. เด…เดณเด•เตเด•เตฝ เด•เตƒเดคเตเดฏเดค เดจเดฎเตเด•เตเด•เต เดตเดฟเดฒเดฏเดฟเดฐเตเดคเตเดคเดพเด‚.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•