Mediastreamer2 VoIP เชเชจเซเชœเชฟเชจเชจเซ€ เชถเซ‹เชงเช–เซ‹เชณ. เชญเชพเช— 3

เชฒเซ‡เช–เชจเซ€ เชธเชพเชฎเช—เซเชฐเซ€ เชฎเชพเชฐเชพ เชชเชฐเชฅเซ€ เชฒเซ‡เชตเชพเชฎเชพเช‚ เช†เชตเซ€ เช›เซ‡ เชเซ‡เชจ เชšเซ‡เชจเชฒ.

Mediastreamer2 VoIP เชเชจเซเชœเชฟเชจเชจเซ€ เชถเซ‹เชงเช–เซ‹เชณ. เชญเชพเช— 3

เชŸเซ‹เชจ เชœเชจเชฐเซ‡เชŸเชฐเชจเซเช‚ เช‰เชฆเชพเชนเชฐเชฃ เชธเซเชงเชพเชฐเชตเซเช‚

เช…เช—เชพเช‰เชจเชพ เชฎเชพเช‚ เชฒเซ‡เช– เช…เชฎเซ‡ เชŸเซ‹เชจ เชœเชจเชฐเซ‡เชŸเชฐ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ เชฒเช–เซ€ เช…เชจเซ‡ เชคเซ‡เชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฎเซเชชเซเชฏเซเชŸเชฐ เชธเซเชชเซ€เช•เชฐเชฎเชพเช‚เชฅเซ€ เช…เชตเชพเชœ เช•เชพเชขเชตเชพ เชฎเชพเชŸเซ‡ เช•เชฐเซเชฏเซ‹. เชนเชตเซ‡ เช†เชชเชฃเซ‡ เชœเซ‹เชถเซเช‚ เช•เซ‡ เช…เชฎเชพเชฐเซ‹ เชชเซเชฐเซ‹เช—เซเชฐเชพเชฎ เชœเซเชฏเชพเชฐเซ‡ เชธเชฎเชพเชชเซเชค เชฅเชพเชฏ เชคเซเชฏเชพเชฐเซ‡ เชฎเซ‡เชฎเชฐเซ€เชจเซ‡ เชขเช—เชฒเชพ เชชเชฐ เชชเชพเช›เซ€ เช†เชชเชคเซ‹ เชจเชฅเซ€. เช† เชฎเซเชฆเซเชฆเชพเชจเซ‡ เชธเซเชชเชทเซเชŸ เช•เชฐเชตเชพเชจเซ‹ เชธเชฎเชฏ เช›เซ‡.

เช…เชฎเชจเซ‡ เชนเชตเซ‡ เชธเชฐเซเช•เชฟเชŸเชจเซ€ เชœเชฐเซ‚เชฐ เชจ เชฐเชนเซ‡ เชคเซ‡ เชชเช›เซ€, เชฎเซ‡เชฎเชฐเซ€เชจเซ‡ เชฎเซเช•เซเชค เช•เชฐเชตเชพเชจเซเช‚ เชกเซ‡เชŸเชพ เชชเชพเช‡เชชเชฒเชพเช‡เชจเชจเซ‡ เชฌเช‚เชง เช•เชฐเซ€เชจเซ‡ เชถเชฐเซ‚ เชฅเชตเซเช‚ เชœเซ‹เชˆเช. เช† เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เชคเชฎเชพเชฐเซ‡ เชซเช‚เช•เซเชถเชจเชจเซ‹ เช‰เชชเชฏเซ‹เช— เช•เชฐเซ€เชจเซ‡ เชธเชฐเซเช•เชฟเชŸเชฎเชพเช‚เชฅเซ€ เช˜เชกเชฟเชฏเชพเชณเชจเชพ เชธเซเชคเซเชฐเซ‹เชค เช…เชจเซ‡ เชŸเชฟเช•เชฐเชจเซ‡ เชกเชฟเชธเซเช•เชจเซ‡เช•เซเชŸ เช•เชฐเชตเชพเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ ms_ticker_detach(). เช…เชฎเชพเชฐเชพ เช•เชฟเชธเซเชธเชพเชฎเชพเช‚, เช†เชชเชฃเซ‡ เชซเชฟเชฒเซเชŸเชฐ เช‡เชจเชชเซเชŸเชฎเชพเช‚เชฅเซ€ เชŸเชฟเช•เชฐเชจเซ‡ เชกเชฟเชธเซเช•เชจเซ‡เช•เซเชŸ เช•เชฐเชตเซเช‚ เช†เชตเชถเซเชฏเช• เช›เซ‡ voidsource:

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

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹