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

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹