diff --git a/src/modules/rtpengine/rtpengine.c b/src/modules/rtpengine/rtpengine.c index 2d288953246..95726fa4a12 100644 --- a/src/modules/rtpengine/rtpengine.c +++ b/src/modules/rtpengine/rtpengine.c @@ -4034,6 +4034,55 @@ static int ki_stop_recording(sip_msg_t *msg) return rtpengine_rtpp_set_wrap(msg, rtpengine_simple_wrap, NULL, 1, OP_STOP_RECORDING); } + +static int ki_block_media0(sip_msg_t *msg) +{ + return rtpengine_rtpp_set_wrap(msg, rtpengine_simple_wrap, NULL, 1, OP_BLOCK_MEDIA); +} +static int ki_block_media(sip_msg_t *msg, str *flags) +{ + return rtpengine_rtpp_set_wrap(msg, rtpengine_simple_wrap, flags->s, 1, OP_BLOCK_MEDIA); +} +static int ki_unblock_media0(sip_msg_t *msg) +{ + return rtpengine_rtpp_set_wrap(msg, rtpengine_simple_wrap, NULL, 1, OP_UNBLOCK_MEDIA); +} +static int ki_unblock_media(sip_msg_t *msg , str *flags) +{ + return rtpengine_rtpp_set_wrap(msg, rtpengine_simple_wrap, flags->s, 1, OP_UNBLOCK_MEDIA); +} + +static int ki_block_dtmf0(sip_msg_t *msg) +{ + return rtpengine_rtpp_set_wrap(msg, rtpengine_simple_wrap, NULL, 1, OP_BLOCK_DTMF); +} +static int ki_block_dtmf(sip_msg_t *msg, str *flags) +{ + return rtpengine_rtpp_set_wrap(msg, rtpengine_simple_wrap, flags->s, 1, OP_BLOCK_DTMF); +} +static int ki_unblock_dtmf0(sip_msg_t *msg) +{ + return rtpengine_rtpp_set_wrap(msg, rtpengine_simple_wrap, NULL, 1, OP_UNBLOCK_DTMF); +} +static int ki_unblock_dtmf(sip_msg_t *msg, str *flags) +{ + return rtpengine_rtpp_set_wrap(msg, rtpengine_simple_wrap, flags->s, 1, OP_UNBLOCK_DTMF); +} + +static int ki_play_media(sip_msg_t *msg, str *flags) +{ + return rtpengine_rtpp_set_wrap(msg, rtpengine_simple_wrap, flags->s, 1, OP_PLAY_MEDIA); +} +static int ki_stop_media0(sip_msg_t *msg) +{ + return rtpengine_rtpp_set_wrap(msg, rtpengine_simple_wrap, NULL, 1, OP_STOP_MEDIA); +} +static int ki_stop_media(sip_msg_t *msg, str *flags) +{ + return rtpengine_rtpp_set_wrap(msg, rtpengine_simple_wrap, flags->s, 1, OP_STOP_MEDIA); +} + + static int ki_set_rtpengine_set(sip_msg_t *msg, int r1) { rtpp_set_link_t rtpl1; @@ -4149,6 +4198,65 @@ static sr_kemi_t sr_kemi_rtpengine_exports[] = { { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } }, + + { str_init("rtpengine"), str_init("block_media0"), + SR_KEMIP_INT, ki_block_media0, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init("rtpengine"), str_init("block_media"), + SR_KEMIP_INT, ki_block_media, + { SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init("rtpengine"), str_init("unblock_media0"), + SR_KEMIP_INT, ki_unblock_media0, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init("rtpengine"), str_init("unblock_media"), + SR_KEMIP_INT, ki_unblock_media, + { SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + + { str_init("rtpengine"), str_init("block_dtmf0"), + SR_KEMIP_INT, ki_block_dtmf0, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init("rtpengine"), str_init("block_dtmf"), + SR_KEMIP_INT, ki_block_dtmf, + { SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init("rtpengine"), str_init("unblock_dtmf0"), + SR_KEMIP_INT, ki_unblock_dtmf0, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init("rtpengine"), str_init("unblock_dtmf"), + SR_KEMIP_INT, ki_unblock_dtmf, + { SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + + { str_init("rtpengine"), str_init("play_media"), + SR_KEMIP_INT, ki_play_media, + { SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init("rtpengine"), str_init("stop_media0"), + SR_KEMIP_INT, ki_stop_media0, + { SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init("rtpengine"), str_init("stop_media"), + SR_KEMIP_INT, ki_stop_media, + { SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + }, + { str_init("rtpengine"), str_init("set_rtpengine_set"), SR_KEMIP_INT, ki_set_rtpengine_set, { SR_KEMIP_INT, SR_KEMIP_NONE, SR_KEMIP_NONE,