Mediastreamer2 VoIP рдЗрдиреНрдЬрд┐рди рдЕрдиреНрд╡реЗрд╖рдг рдЧрд░реНрджреИред рднрд╛рдЧ рео

рд▓реЗрдЦрдХреЛ рд╕рд╛рдордЧреНрд░реА рдореЗрд░реЛ рдмрд╛рдЯ рд▓рд┐рдЗрдПрдХреЛ рд╣реЛ zen рдЪреНрдпрд╛рдирд▓.

Mediastreamer2 VoIP рдЗрдиреНрдЬрд┐рди рдЕрдиреНрд╡реЗрд╖рдг рдЧрд░реНрджреИред рднрд╛рдЧ рео

рдЯреЛрди рдЬреЗрдирд░реЗрдЯрд░ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрджреИ

рдЕрдШрд┐рд▓реНрд▓реЛ рдорд╛ рд▓реЗрдЦ рд╣рд╛рдореАрд▓реЗ рдорд┐рдбрд┐рдпрд╛ рд╕реНрдЯреНрд░рд┐рдорд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА, рд╡рд┐рдХрд╛рд╕ рдЙрдкрдХрд░рдгрд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдпреМрдВ рд░ рдкрд░реАрдХреНрд╖рдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдирд┐рд░реНрдорд╛рдг рдЧрд░реЗрд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкрд░реАрдХреНрд╖рдг рдЧрд░реНтАНрдпреМрдВред

рдЖрдЬ рд╣рд╛рдореА рдПрдЙрдЯрд╛ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗрдЫреМрдВ рдЬрд╕рд▓реЗ рдзреНрд╡рдирд┐ рдХрд╛рд░реНрдбрдорд╛ рдЯреЛрди рд╕рд┐рдЧреНрдирд▓ рдЙрддреНрдкрдиреНрди рдЧрд░реНрди рд╕рдХреНрдЫред рдпреЛ рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рд╣рд╛рдореАрд▓реЗ рддрд▓ рджреЗрдЦрд╛рдЗрдПрдХреЛ рдзреНрд╡рдирд┐ рдЬрдирд░реЗрдЯрд░ рд╕рд░реНрдХрд┐рдЯрдорд╛ рдлрд┐рд▓реНрдЯрд░рд╣рд░реВ рдЬрдбрд╛рди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ:

Mediastreamer2 VoIP рдЗрдиреНрдЬрд┐рди рдЕрдиреНрд╡реЗрд╖рдг рдЧрд░реНрджреИред рднрд╛рдЧ рео

рд╣рд╛рдореА рдмрд╛рдпрд╛рдБ рджреЗрдЦрд┐ рджрд╛рдБрдпрд╛ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░ рдкрдвреНрдЫреМрдВ, рдпреЛ рджрд┐рд╢рд╛ рд╣реЛ рдЬреБрди рд╣рд╛рдореНрд░реЛ рдбрд╛рдЯрд╛ рдкреНрд░рд╡рд╛рд╣ рд╕рд░реНрдЫред рддреАрд░рд╣рд░реВрд▓реЗ рдкрдирд┐ рдпреЛ рд╕рдВрдХреЗрдд рдЧрд░реНрджрдЫред рдЖрдпрддрд╣рд░реВрд▓реЗ рдбреЗрдЯрд╛рдХреЛ рдмреНрд▓рдХрд╣рд░реВ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрдиреЗ рд░ рдирддрд┐рдЬрд╛ рдЖрдЙрдЯрдкреБрдЯ рдЧрд░реНрдиреЗ рдлрд┐рд▓реНрдЯрд░рд╣рд░реВрд▓рд╛рдИ рд╕рдВрдХреЗрдд рдЧрд░реНрдЫред рдЖрдпрдд рднрд┐рддреНрд░, рдпрд╕рдХреЛ рднреВрдорд┐рдХрд╛ рд╕рдВрдХреЗрдд рдЧрд░рд┐рдПрдХреЛ рдЫ рд░ рдлрд┐рд▓реНрдЯрд░ рдкреНрд░рдХрд╛рд░ рддрд▓ рдареВрд▓рд╛ рдЕрдХреНрд╖рд░рд╣рд░реВрдорд╛ рд╕рдВрдХреЗрдд рдЧрд░рд┐рдПрдХреЛ рдЫред рдЖрдпрддрд╣рд░реВ рдЬреЛрдбреНрдиреЗ рддреАрд░рд╣рд░реВ рдбреЗрдЯрд╛ рд▓рд╛рдЗрдирд╣рд░реВ рд╣реБрдиреН рдЬрд╕рдХреЛ рдорд╛рдзреНрдпрдордмрд╛рдЯ рдбреЗрдЯрд╛рдХрд╛ рдмреНрд▓рдХрд╣рд░реВ рдлрд┐рд▓реНрдЯрд░рдмрд╛рдЯ рдлрд┐рд▓реНрдЯрд░рдорд╛ рдбреЗрд▓рд┐рднрд░ рд╣реБрдиреНрдЫрдиреНред рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛, рдлрд┐рд▓реНрдЯрд░рдорд╛ рдзреЗрд░реИ рдЗрдирдкреБрдЯ рд░ рдЖрдЙрдЯрдкреБрдЯрд╣рд░реВ рд╣реБрди рд╕рдХреНрдЫрдиреНред

рдпреЛ рд╕рдмреИ рдШрдбреА рд╕реНрд░реЛрддрдмрд╛рдЯ рд╕реБрд░реБ рд╣реБрдиреНрдЫ, рдЬрд╕рд▓реЗ рдЯреЗрдореНрдкреЛ рд╕реЗрдЯ рдЧрд░реНрджрдЫ рдЬрд╕рдорд╛ рдлрд┐рд▓реНрдЯрд░рд╣рд░реВрдорд╛ рдбреЗрдЯрд╛ рдЧрдгрдирд╛ рдЧрд░рд┐рдиреНрдЫред рдпрд╕рдХреЛ рдШрдбреА рдЪрдХреНрд░ рдЕрдиреБрд╕рд╛рд░, рдкреНрд░рддреНрдпреЗрдХ рдлрд┐рд▓реНрдЯрд░рд▓реЗ рдпрд╕рдХреЛ рдЗрдирдкреБрдЯрдорд╛ рднрдПрдХрд╛ рд╕рдмреИ рдбрд╛рдЯрд╛ рдмреНрд▓рдХрд╣рд░реВ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрджрдЫред рд░ рдирддрд┐рдЬрд╛ рд╕рд╣рд┐рддрдХреЛ рдмреНрд▓рдХрд╣рд░реВрд▓рд╛рдИ рд▓рд╛рдордорд╛ рд░рд╛рдЦреНрдЫред рдкрд╣рд┐рд▓реЗ, рдШрдбреА рд╕реНрд░реЛрддрдХреЛ рдирдЬрд┐рдХрдХреЛ рдлрд┐рд▓реНрдЯрд░рд▓реЗ рдЧрдгрдирд╛ рдЧрд░реНрджрдЫ, рддреНрдпрд╕рдкрдЫрд┐ рдлрд┐рд▓реНрдЯрд░рд╣рд░реВ рдпрд╕рдХреЛ рдЖрдЙрдЯрдкреБрдЯрд╣рд░реВрдорд╛ рдЬрдбрд╛рди рд╣реБрдиреНрдЫрдиреН (рддреНрдпрд╣рд╛рдБ рдзреЗрд░реИ рдЖрдЙрдЯрдкреБрдЯрд╣рд░реВ рд╣реБрди рд╕рдХреНрдЫрдиреН), рд░ рдпрд╕реНрддреИред рдЪреЗрдирдорд╛ рд░рд╣реЗрдХреЛ рдЕрдиреНрддрд┐рдо рдлрд┐рд▓реНрдЯрд░рд▓реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреВрд░рд╛ рдЧрд░реЗрдкрдЫрд┐, рдирдпрд╛рдБ рдШрдбреА рдирдЖрдЙрдиреНрдЬреЗрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд░реЛрдХрд┐рдиреНрдЫред рдмреАрдЯреНрд╕, рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛, резреж рдорд┐рд▓рд┐рд╕реЗрдХреЗрдиреНрдбрдХреЛ рдЕрдиреНрддрд░рд╛рд▓рд▓рд╛рдИ рдкрдЫреНрдпрд╛рдЙрдиреБрд╣реЛрд╕реНред

рд╣рд╛рдореНрд░реЛ рд░реЗрдЦрд╛рдЪрд┐рддреНрд░рдорд╛ рдлрд░реНрдХреМрдВред рдШрдбреА рдЪрдХреНрд░ рдореМрди рд╕реНрд░реЛрддрдХреЛ рдЗрдирдкреБрдЯрдорд╛ рдЖрдЗрдкреБрдЧреНрдЫ; рдпреЛ рдПрдХ рдлрд┐рд▓реНрдЯрд░ рд╣реЛ, рдЬреБрди рдкреНрд░рддреНрдпреЗрдХ рдШрдбреА рдЪрдХреНрд░рдХреЛ рд▓рд╛рдЧрд┐ рдпрд╕рдХреЛ рдЖрдЙрдЯрдкреБрдЯрдорд╛ рд╢реВрдиреНрдп рднрдПрдХреЛ рдбрд╛рдЯрд╛рдХреЛ рдмреНрд▓рдХ рдЙрддреНрдкрдиреНрди рдЧрд░реНрди рд╡реНрдпрд╕реНрдд рдЫред рдпрджрд┐ рд╣рд╛рдореАрд▓реЗ рдпреЛ рдмреНрд▓рдХрд▓рд╛рдИ рдзреНрд╡рдирд┐ рдирдореВрдирд╛рд╣рд░реВрдХреЛ рдмреНрд▓рдХрдХреЛ рд░реВрдкрдорд╛ рд▓рд┐рдпреМрдВ рднрдиреЗ, рдпреЛ рдореМрдирддрд╛ рдмрд╛рд╣реЗрдХ рдЕрд░реВ рдХреЗрд╣реА рд╣реЛрдЗрдиред рдкрд╣рд┐рд▓реЛ рдирдЬрд░ рдорд╛, рдпреЛ рдореМрди рд╕рдВрдЧ рдбрд╛рдЯрд╛ рдмреНрд▓рдХ рдЙрддреНрдкрдиреНрди рдЧрд░реНрди рдЕрдЬреАрдм рджреЗрдЦрд┐рдиреНрдЫ - рд╕рдмреИ рдкрдЫрд┐, рдпреЛ рд╕реБрдиреНрди рд╕рдХрд┐рдБрджреИрди, рддрд░ рдпреА рдмреНрд▓рдХ рдзреНрд╡рдирд┐ рд╕рдВрдХреЗрдд рдЬрдирд░реЗрдЯрд░ рдХреЛ рд╕рдЮреНрдЪрд╛рд▓рди рдХреЛ рд▓рд╛рдЧреА рдЖрд╡рд╢реНрдпрдХ рдЫред рдЬреЗрдиреЗрд░реЗрдЯрд░рд▓реЗ рдпреА рдмреНрд▓рдХрд╣рд░реВ рдХрд╛рдЧрдЬрдХреЛ рдЦрд╛рд▓реА рдкрд╛рдирд╛ рдЬрд╕реНрддреИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫ, рддрд┐рдиреАрд╣рд░реВрдорд╛ рдзреНрд╡рдирд┐ рдирдореВрдирд╛рд╣рд░реВ рд░реЗрдХрд░реНрдб рдЧрд░реНрджреИред рдпрд╕рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдЕрд╡рд╕реНрдерд╛рдорд╛, рдЬреЗрдиреЗрд░реЗрдЯрд░ рдмрдиреНрдж рдЫ рд░ рдХреЗрд╡рд▓ рдЖрдЙрдЯрдкреБрдЯрдорд╛ рдЗрдирдкреБрдЯ рдмреНрд▓рдХрд╣рд░реВ рдлрд░реНрд╡рд╛рд░реНрдб рдЧрд░реНрджрдЫред рдпрд╕рд░реА, рдореМрдирдХрд╛ рдмреНрд▓рдХрд╣рд░реВ рд╕рдореНрдкреВрд░реНрдг рд╕рд░реНрдХрд┐рдЯ рдорд╛рд░реНрдлрдд рдмрд╛рдпрд╛рдБрдмрд╛рдЯ рджрд╛рдпрд╛рдБрд╕рдореНрдо рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдкрд╛рд╕ рд╣реБрдиреНрдЫрдиреН, рд╕рд╛рдЙрдиреНрдб рдХрд╛рд░реНрдбрдорд╛ рд╕рдорд╛рдкреНрдд рд╣реБрдиреНрдЫред рдЬрд╕рд▓реЗ рдЪреБрдкрдЪрд╛рдк рдпрд╕рдХреЛ рдЗрдирдкреБрдЯрдорд╛ рдЬрдбрд╛рди рднрдПрдХреЛ рд▓рд╛рдЗрдирдмрд╛рдЯ рдмреНрд▓рдХрд╣рд░реВ рд▓рд┐рдиреНрдЫред

рддрд░ рдЬреЗрдиреЗрд░реЗрдЯрд░рд▓рд╛рдИ рдзреНрд╡рдирд┐ рдмрдЬрд╛рдЙрди рдЖрджреЗрд╢ рджрд┐рдЗрдпреЛ рднрдиреЗ рд╕рдмреИ рдХреБрд░рд╛ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдиреНрдЫ, рдпрд╕рд▓реЗ рдзреНрд╡рдирд┐ рдирдореВрдирд╛рд╣рд░реВ рдЙрддреНрдкрдиреНрди рдЧрд░реНрди рдерд╛рд▓реНрдЫ рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЗрдирдкреБрдЯ рдмреНрд▓рдХрд╣рд░реВрдорд╛ рдирдореВрдирд╛рд╣рд░реВрд╕рдБрдЧ рдмрджрд▓реНрдЫ рд░ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░рд┐рдПрдХрд╛ рдмреНрд▓рдХрд╣рд░реВрд▓рд╛рдИ рдЖрдЙрдЯрдкреБрдЯрдорд╛ рд░рд╛рдЦреНрдЫред рд╕рд╛рдЙрдиреНрдб рдХрд╛рд░реНрдбрд▓реЗ рдЖрд╡рд╛рдЬ рдмрдЬрд╛рдЙрди рдерд╛рд▓реНрдЫред рддрд▓ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╣реЛ рдЬрд╕рд▓реЗ рдорд╛рдерд┐ рд╡рд░реНрдгрди рдЧрд░рд┐рдПрдХреЛ рдХрд╛рд░реНрдп рдпреЛрдЬрдирд╛ рд▓рд╛рдЧреВ рдЧрд░реНрджрдЫ:

/* ╨д╨░╨╣╨╗ mstest2.c */
#include <mediastreamer2/msfilter.h>
#include <mediastreamer2/msticker.h>
#include <mediastreamer2/dtmfgen.h>
#include <mediastreamer2/mssndcard.h>
int main()
{
    ms_init();

    /* ╨б╨╛╨╖╨┤╨░╨╡╨╝ ╤Н╨║╨╖╨╡╨╝╨┐╨╗╤П╤А╤Л ╤Д╨╕╨╗╤М╤В╤А╨╛╨▓. */
    MSFilter  *voidsource = ms_filter_new(MS_VOID_SOURCE_ID);
    MSFilter  *dtmfgen = ms_filter_new(MS_DTMF_GEN_ID);
    MSSndCard *card_playback = ms_snd_card_manager_get_default_card(ms_snd_card_manager_get());
    MSFilter  *snd_card_write = ms_snd_card_create_writer(card_playback);

    /* ╨б╨╛╨╖╨┤╨░╨╡╨╝ ╤В╨╕╨║╨╡╤А. */
    MSTicker *ticker = ms_ticker_new();

    /* ╨б╨╛╨╡╨┤╨╕╨╜╤П╨╡╨╝ ╤Д╨╕╨╗╤М╤В╤А╤Л ╨▓ ╤Ж╨╡╨┐╨╛╤З╨║╤Г. */
    ms_filter_link(voidsource, 0, dtmfgen, 0);
    ms_filter_link(dtmfgen, 0, snd_card_write, 0);

   /* ╨Я╨╛╨┤╨║╨╗╤О╤З╨░╨╡╨╝ ╨╕╤Б╤В╨╛╤З╨╜╨╕╨║ ╤В╨░╨║╤В╨╛╨▓. */
   ms_ticker_attach(ticker, voidsource);

   /* ╨Т╨║╨╗╤О╤З╨░╨╡╨╝ ╨╖╨▓╤Г╨║╨╛╨▓╨╛╨╣ ╨│╨╡╨╜╨╡╤А╨░╤В╨╛╤А. */
   char key='1';
   ms_filter_call_method(dtmfgen, MS_DTMF_GEN_PLAY, (void*)&key);

   /* ╨Ф╨░╨╡╨╝, ╨▓╤А╨╡╨╝╤П, ╤З╤В╨╛╨▒╤Л ╨▓╤Б╨╡ ╨▒╨╗╨╛╨║╨╕ ╨┤╨░╨╜╨╜╤Л╤Е ╨▒╤Л╨╗╨╕ ╨┐╨╛╨╗╤Г╤З╨╡╨╜╤Л ╨╖╨▓╤Г╨║╨╛╨▓╨╛╨╣ ╨║╨░╤А╤В╨╛╨╣.*/
   ms_sleep(2);   
}

рдорд┐рдбрд┐рдпрд╛ рд╕реНрдЯреНрд░рд┐рдорд░ рд╕реБрд░реБ рдЧрд░реЗрдкрдЫрд┐, рддреАрди рдлрд┐рд▓реНрдЯрд░рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рд╣реБрдиреНрдЫрдиреН: voidsource, dtmfgen, snd_card_writeред рдШрдбреА рд╕реНрд░реЛрдд рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдЫред

рддреНрдпрд╕рдкрдЫрд┐ рддрдкрд╛рдЗрдБрд▓реЗ рд╣рд╛рдореНрд░реЛ рд╕рд░реНрдХрд┐рдЯ рдЕрдиреБрд╕рд╛рд░ рдлрд┐рд▓реНрдЯрд░рд╣рд░реВ рдЬрдбрд╛рди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рд░ рдШрдбреА рд╕реНрд░реЛрдд рдЕрдиреНрддрд┐рдо рдЬреЛрдбрд┐рдПрдХреЛ рд╣реБрдиреБрдкрд░реНрдЫ, рдпрд╕ рдкрдЫрд┐ рд╕рд░реНрдХрд┐рдЯ рддреБрд░реБрдиреНрддреИ рд╕рдЮреНрдЪрд╛рд▓рди рд╕реБрд░реБ рд╣реБрдиреЗрдЫред рдпрджрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдШрдбреА рд╕реНрд░реЛрддрд▓рд╛рдИ рдЕрдзреВрд░реЛ рд╕рд░реНрдХрд┐рдЯрдорд╛ рдЬрдбрд╛рди рдЧрд░реНрдиреБрднрдпреЛ рднрдиреЗ, рдорд┐рдбрд┐рдпрд╛ рд╕реНрдЯреНрд░рд┐рдорд░рд▓реЗ рд╕рдмреИ рдЗрдирдкреБрдЯрд╣рд░реВ рд╡рд╛ рд╕рдмреИ рдЖрдЙрдЯрдкреБрдЯрд╣рд░реВ "рд╣рд╛рд╡рд╛рдорд╛ рдЭреБрдгреНрдбрд┐рдПрдХреЛ" (рдЬрдбрд┐рдд рдирднрдПрдХреЛ) рднрдПрдХреЛ рдЪреЗрдирдорд╛ рдХрдореНрддрд┐рдорд╛ рдПрдЙрдЯрд╛ рдлрд┐рд▓реНрдЯрд░ рдкрддреНрддрд╛ рд▓рдЧрд╛рдПрдорд╛ рдХреНрд░реНрдпрд╛рд╕ рд╣реБрди рд╕рдХреНрдЫред

рдЬрдбрд╛рди рдлрд┐рд▓реНрдЯрд░ рдкреНрд░рдХрд╛рд░реНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реА рдЧрд░рд┐рдиреНрдЫ

ms_filter_link(src, src_out, dst, dst_in)

рдЬрд╣рд╛рдБ рдкрд╣рд┐рд▓реЛ рддрд░реНрдХ рд╕реНрд░реЛрдд рдлрд┐рд▓реНрдЯрд░рдХреЛ рд▓рд╛рдЧрд┐ рд╕реВрдЪрдХ рд╣реЛ, рджреЛрд╕реНрд░реЛ рддрд░реНрдХ рд╕реНрд░реЛрдд рдЖрдЙрдЯрдкреБрдЯ рдирдореНрдмрд░ рд╣реЛ (рдиреЛрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рдЗрдирдкреБрдЯрд╣рд░реВ рд░ рдЖрдЙрдЯрдкреБрдЯрд╣рд░реВ рд╢реВрдиреНрдпрдмрд╛рдЯ рд╕реБрд░реБ рд╣реБрдБрджреИ рд╕рдВрдЦреНрдпрд╛рдорд╛ рдЫрдиреН)ред рддреЗрд╕реНрд░реЛ рддрд░реНрдХ рд░рд┐рд╕реАрднрд░ рдлрд┐рд▓реНрдЯрд░рдХреЛ рд▓рд╛рдЧрд┐ рд╕реВрдЪрдХ рд╣реЛ, рдЪреМрдереЛ рд░рд┐рд╕реАрднрд░ рдЗрдирдкреБрдЯ рдирдореНрдмрд░ рд╣реЛред

рд╕рдмреИ рдлрд┐рд▓реНрдЯрд░рд╣рд░реВ рдЬрдбрд╛рди рднрдПрдХрд╛ рдЫрдиреН рд░ рдШрдбреАрдХреЛ рд╕реНрд░реЛрдд рдЕрдиреНрддрд┐рдордорд╛ рдЬреЛрдбрд┐рдПрдХреЛ рдЫ (рдпрд╕рдкрдЫрд┐ рд╣рд╛рдореА рдпрд╕рд▓рд╛рдИ рдЯрд┐рдХрд░ рднрдиреНрдиреЗрдЫреМрдБ)ред рдЬрд╕ рдкрдЫрд┐ рд╣рд╛рдореНрд░реЛ рдзреНрд╡рдирд┐ рд╕рд░реНрдХрд┐рдЯрд▓реЗ рдХрд╛рдо рдЧрд░реНрди рдерд╛рд▓реНрдЫ, рддрд░ рдХрдореНрдкреНрдпреВрдЯрд░ рд╕реНрдкрд┐рдХрд░рд╣рд░реВрдорд╛ рдЕрдЭреИ рдХреЗрд╣реА рд╕реБрдиреНрди рд╕рдХрд┐рдБрджреИрди - рдзреНрд╡рдирд┐ рдЬрдирд░реЗрдЯрд░ рдмрдиреНрдж рдЧрд░рд┐рдПрдХреЛ рдЫ рд░ рдХреЗрд╡рд▓ рдореМрдирддрд╛рдХрд╛ рд╕рд╛рде рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдмреНрд▓рдХрд╣рд░реВ рдорд╛рд░реНрдлрдд рдЬрд╛рдиреНрдЫред рдЯреЛрди рдЙрддреНрдкрдиреНрди рдЧрд░реНрди рд╕реБрд░реБ рдЧрд░реНрди, рддрдкрд╛рдИрдВрд▓реЗ рдЬреЗрдиреЗрд░реЗрдЯрд░ рдлрд┐рд▓реНрдЯрд░ рд╡рд┐рдзрд┐ рдЪрд▓рд╛рдЙрди рдЖрд╡рд╢реНрдпрдХ рдЫред

рд╣рд╛рдореА рдлреЛрдирдорд╛ "1" рдмрдЯрди рдерд┐рдЪреНрджрд╛ рдЕрдиреБрд░реВрдк рджреБрдИ-рдЯреЛрди (DTMF) рд╕рд┐рдЧреНрдирд▓ рдЙрддреНрдкрдиреНрди рдЧрд░реНрдиреЗрдЫреМрдВред рдпреЛ рдЧрд░реНрди, рд╣рд╛рдореА рдкреНрд░рдХрд╛рд░реНрдп рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрдЫреМрдВ ms_filter_call_method() рд╣рд╛рдореА MS_DTMF_GEN_PLAY рд╡рд┐рдзрд┐рд▓рд╛рдИ рдХрд▓ рдЧрд░реНрдЫреМрдВ, рдпрд╕рд▓рд╛рдИ рддрд░реНрдХрдХреЛ рд░реВрдкрдорд╛ рдкрд╛рд╕ рдЧрд░реНрджреИ рдХреЛрдбрдХреЛ рд╕рдВрдХреЗрддрдХрд▓рд╛рдИ рдкреНрд▓реЗрдмреНрдпрд╛рдХ рд╕рдВрдХреЗрддрд╕рдБрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫред

рдмрд╛рдБрдХреА рд╕рдмреИ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХрдореНрдкрд╛рдЗрд▓ рдЧрд░реНрди рд╣реЛ:

$ gcc mstest2.c -o mstest2 `pkg-config mediastreamer --libs --cflags`

рд░ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН:

$ ./mstest2

рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕реБрд░реБ рдЧрд░реЗрдкрдЫрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдХрдореНрдкреНрдпреБрдЯрд░ рд╕реНрдкрд┐рдХрд░рдорд╛ рджреБрдИ рдЯреЛрдирд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рднрдПрдХреЛ рдЫреЛрдЯреЛ рдзреНрд╡рдирд┐ рд╕рдВрдХреЗрдд рд╕реБрдиреНрдиреБрд╣реБрдиреЗрдЫред

рд╣рд╛рдореАрд▓реЗ рд╣рд╛рдореНрд░реЛ рдкрд╣рд┐рд▓реЛ рд╕рд╛рдЙрдиреНрдб рд╕рд░реНрдХрд┐рдЯ рдмрдирд╛рдПрд░ рд╕реБрд░реБ рдЧрд░реНрдпреМрдВред рд╣рд╛рдореАрд▓реЗ рдлрд┐рд▓реНрдЯрд░ рдЙрджрд╛рд╣рд░рдгрд╣рд░реВ рдХрд╕рд░реА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗ, рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдХрд╕рд░реА рдЬрдбрд╛рди рдЧрд░реНрдиреЗ рд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╡рд┐рдзрд┐рд╣рд░реВ рдХрд╕рд░реА рдХрд▓ рдЧрд░реНрдиреЗ рднрдиреЗрд░ рджреЗрдЦреНрдпреМрдВред рдЬрдм рд╣рд╛рдореА рд╣рд╛рдореНрд░реЛ рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рд╕рдлрд▓рддрд╛ рд╕рдВрдЧ рдЦреБрд╕реА рдЫреМрдВ, рд╣рд╛рдореАрд▓реЗ рдЕрдЭреИ рдкрдирд┐ рд╣рд╛рдореНрд░реЛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдмрд╛рд╣рд┐рд░ рдирд┐рд╕реНрдХрдиреБ рдЕрдШрд┐ рдЖрд╡рдВрдЯрд┐рдд рдореЗрдореЛрд░реА рдЦрд╛рд▓реА рдЧрд░реНрджреИрди рднрдиреНрдиреЗ рддрдереНрдпрдорд╛ рдзреНрдпрд╛рди рджрд┐рди рдЖрд╡рд╢реНрдпрдХ рдЫред рдЕрд░реНрдХреЛ рдорд╛ рд▓реЗрдЦ рд╣рд╛рдореА рдЖрдлреИ рд╕рдлрд╛ рдЧрд░реНрди рд╕рд┐рдХреНрдиреЗрдЫреМрдВред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди