From 1238d2f3c23f68304562ad4138a830ce64249d7e Mon Sep 17 00:00:00 2001 From: Richard Fuchs Date: Thu, 14 Sep 2023 10:24:25 -0400 Subject: [PATCH] MT#57977 integrate block/silence_media into bfield Change-Id: Ic203e74d1a5ffd10ddfc2b4a3e6b4405be01979a --- daemon/call_interfaces.c | 22 +++++++-------- daemon/codec.c | 4 +-- daemon/media_socket.c | 4 +-- daemon/redis.c | 6 ---- include/call.h | 10 +++---- t/auto-daemon-tests-redis.pl | 28 ------------------- t/test-transcode.c | 54 ++++++++++++++++++------------------ 7 files changed, 46 insertions(+), 82 deletions(-) diff --git a/daemon/call_interfaces.c b/daemon/call_interfaces.c index 08487a390..0b84ba5e3 100644 --- a/daemon/call_interfaces.c +++ b/daemon/call_interfaces.c @@ -3010,7 +3010,7 @@ const char *call_unblock_dtmf_ng(bencode_item_t *input, bencode_item_t *output) static const char *call_block_silence_media(bencode_item_t *input, bool on_off, const char *ucase_verb, const char *lcase_verb, - size_t call_offset, size_t ml_offset, size_t attr_offset) + unsigned int call_flag, unsigned int ml_flag, size_t attr_offset) { AUTO_CLEANUP_NULL(struct call *call, call_unlock_release); struct call_monologue *monologue; @@ -3089,18 +3089,18 @@ static const char *call_block_silence_media(bencode_item_t *input, bool on_off, ilog(LOG_INFO, "%s directional media (tag '" STR_FORMAT_M "')", ucase_verb, STR_FMT_M(&monologue->tag)); - G_STRUCT_MEMBER(bool, monologue, ml_offset) = on_off; + bf_set_clear(&monologue->ml_flags, ml_flag, on_off); } __monologue_unkernelize(monologue, "media silencing signalling event"); } else { - G_STRUCT_MEMBER(bool, call, call_offset) = on_off; + bf_set_clear(&call->call_flags, call_flag, on_off); if (!on_off) { ilog(LOG_INFO, "%s media (entire call and participants)", ucase_verb); if (flags.all == ALL_ALL) { for (GList *l = call->monologues.head; l; l = l->next) { monologue = l->data; - G_STRUCT_MEMBER(bool, monologue, ml_offset) = on_off; + bf_set_clear(&monologue->ml_flags, ml_flag, on_off); } } } @@ -3112,23 +3112,23 @@ static const char *call_block_silence_media(bencode_item_t *input, bool on_off, return NULL; } -#define CALL_BLOCK_SILENCE_MEDIA(input, on_off, ucase_verb, lcase_verb, member_name) \ +#define CALL_BLOCK_SILENCE_MEDIA(input, on_off, ucase_verb, lcase_verb, member_name, flag) \ call_block_silence_media(input, on_off, ucase_verb, lcase_verb, \ - G_STRUCT_OFFSET(struct call, member_name), \ - G_STRUCT_OFFSET(struct call_monologue, member_name), \ + CALL_FLAG_ ## flag, \ + ML_FLAG_ ## flag, \ G_STRUCT_OFFSET(struct sink_attrs, member_name)) const char *call_block_media_ng(bencode_item_t *input, bencode_item_t *output) { - return CALL_BLOCK_SILENCE_MEDIA(input, true, "Blocking", "blocking", block_media); + return CALL_BLOCK_SILENCE_MEDIA(input, true, "Blocking", "blocking", block_media, BLOCK_MEDIA); } const char *call_unblock_media_ng(bencode_item_t *input, bencode_item_t *output) { - return CALL_BLOCK_SILENCE_MEDIA(input, false, "Unblocking", "unblocking", block_media); + return CALL_BLOCK_SILENCE_MEDIA(input, false, "Unblocking", "unblocking", block_media, BLOCK_MEDIA); } const char *call_silence_media_ng(bencode_item_t *input, bencode_item_t *output) { - return CALL_BLOCK_SILENCE_MEDIA(input, true, "Silencing", "silencing", silence_media); + return CALL_BLOCK_SILENCE_MEDIA(input, true, "Silencing", "silencing", silence_media, SILENCE_MEDIA); } const char *call_unsilence_media_ng(bencode_item_t *input, bencode_item_t *output) { - return CALL_BLOCK_SILENCE_MEDIA(input, false, "Unsilencing", "unsilencing", silence_media); + return CALL_BLOCK_SILENCE_MEDIA(input, false, "Unsilencing", "unsilencing", silence_media, SILENCE_MEDIA); } diff --git a/daemon/codec.c b/daemon/codec.c index b9351d6a7..39d0b101d 100644 --- a/daemon/codec.c +++ b/daemon/codec.c @@ -1643,9 +1643,9 @@ static void codec_add_raw_packet_dup(struct media_packet *mp, unsigned int clock codec_add_raw_packet_common(mp, clockrate, p); } static bool handler_silence_block(struct codec_handler *h, struct media_packet *mp) { - if (mp->call->block_media || mp->media->monologue->block_media || mp->sink.attrs.block_media) + if (CALL_ISSET(mp->call, BLOCK_MEDIA) || ML_ISSET(mp->media->monologue, BLOCK_MEDIA) || mp->sink.attrs.block_media) return false; - if (mp->call->silence_media || mp->media->monologue->silence_media || mp->sink.attrs.silence_media) { + if (CALL_ISSET(mp->call, SILENCE_MEDIA) || ML_ISSET(mp->media->monologue, SILENCE_MEDIA) || mp->sink.attrs.silence_media) { if (h->source_pt.codec_def && h->source_pt.codec_def->silence_pattern.len) { if (h->source_pt.codec_def->silence_pattern.len == 1) memset(mp->payload.s, h->source_pt.codec_def->silence_pattern.s[0], diff --git a/daemon/media_socket.c b/daemon/media_socket.c index d7616a55a..af5b15d61 100644 --- a/daemon/media_socket.c +++ b/daemon/media_socket.c @@ -1562,7 +1562,7 @@ output: redi->output.tos = call->tos; // PT manipulations - bool silenced = call->silence_media || media->monologue->silence_media + bool silenced = CALL_ISSET(call, SILENCE_MEDIA) || ML_ISSET(media->monologue, SILENCE_MEDIA) || sink_handler->attrs.silence_media; bool manipulate_pt = silenced || ML_ISSET(media->monologue, BLOCK_SHORT); if (manipulate_pt && payload_types) { @@ -1666,7 +1666,7 @@ void kernelize(struct packet_stream *stream) { goto no_kernel; if (!stream->selected_sfd) goto no_kernel; - if (media->monologue->block_media || call->block_media) + if (ML_ISSET(media->monologue, BLOCK_MEDIA) || CALL_ISSET(call, BLOCK_MEDIA)) goto no_kernel; if (!stream->endpoint.address.family) goto no_kernel; diff --git a/daemon/redis.c b/daemon/redis.c index 8cf19b4a3..e59dd6524 100644 --- a/daemon/redis.c +++ b/daemon/redis.c @@ -1506,8 +1506,6 @@ static int redis_tags(struct call *c, struct redis_list *tags, JsonReader *root_ redis_hash_get_time_t(&ml->deleted, rh, "deleted"); if (!redis_hash_get_int(&ii, rh, "block_dtmf")) ml->block_dtmf = ii; - if (!redis_hash_get_int(&ii, rh, "block_media")) - ml->block_media = ii ? true : false; if (!redis_hash_get_int(&ii, rh, "ml_flags")) ml->ml_flags = ii; @@ -2030,8 +2028,6 @@ static void json_restore_call(struct redis *r, const str *callid, bool foreign) sockaddr_parse_any_str(&c->created_from_addr, &id); if (!redis_hash_get_int(&i, &call, "block_dtmf")) c->block_dtmf = i; - if (!redis_hash_get_int(&i, &call, "block_media")) - c->block_media = i ? true : false; if (!redis_hash_get_int(&i, &call, "call_flags")) c->call_flags = i; @@ -2357,7 +2353,6 @@ char* redis_encode_json(struct call *c) { JSON_SET_SIMPLE("redis_hosted_db","%u", c->redis_hosted_db); JSON_SET_SIMPLE_STR("recording_metadata", &c->metadata); JSON_SET_SIMPLE("block_dtmf","%i", c->block_dtmf); - JSON_SET_SIMPLE("block_media","%i", c->block_media); JSON_SET_SIMPLE("call_flags","%i", c->call_flags); if ((rec = c->recording)) @@ -2473,7 +2468,6 @@ char* redis_encode_json(struct call *c) { JSON_SET_SIMPLE("created", "%llu", (long long unsigned) ml->created); JSON_SET_SIMPLE("deleted", "%llu", (long long unsigned) ml->deleted); JSON_SET_SIMPLE("block_dtmf", "%i", ml->block_dtmf); - JSON_SET_SIMPLE("block_media", "%i", ml->block_media); JSON_SET_SIMPLE("ml_flags","%u", ml->ml_flags); if (ml->logical_intf) JSON_SET_SIMPLE_STR("logical_intf", &ml->logical_intf->name); diff --git a/include/call.h b/include/call.h index 332b208b6..a2adfb83a 100644 --- a/include/call.h +++ b/include/call.h @@ -198,6 +198,8 @@ enum { #define ML_FLAG_NO_RECORDING 0x00100000 #define ML_FLAG_TRANSCODING 0x00200000 #define ML_FLAG_BLOCK_SHORT 0x00400000 +#define ML_FLAG_BLOCK_MEDIA 0x00800000 +#define ML_FLAG_SILENCE_MEDIA 0x01000000 /* struct call */ #define CALL_FLAG_IPV4_OFFER 0x00010000 @@ -212,6 +214,8 @@ enum { #define CALL_FLAG_FOREIGN_MEDIA 0x02000000 // for calls taken over, tracks whether we have media #define CALL_FLAG_DISABLE_JB 0x04000000 #define CALL_FLAG_DEBUG 0x08000000 +#define CALL_FLAG_BLOCK_MEDIA 0x10000000 +#define CALL_FLAG_SILENCE_MEDIA 0x20000000 /* access macros */ #define SP_ISSET(p, f) bf_isset(&(p)->sp_flags, SP_FLAG_ ## f) @@ -576,9 +580,6 @@ struct call_monologue { unsigned int block_dtmf_trigger_end_ms; unsigned int dtmf_delay; - bool block_media; - bool silence_media; - volatile unsigned int ml_flags; }; @@ -708,9 +709,6 @@ struct call { int cpu_affinity; enum block_dtmf_mode block_dtmf; - bool block_media; - bool silence_media; - unsigned int call_flags; }; diff --git a/t/auto-daemon-tests-redis.pl b/t/auto-daemon-tests-redis.pl index 50fe83da2..ccd09d41d 100755 --- a/t/auto-daemon-tests-redis.pl +++ b/t/auto-daemon-tests-redis.pl @@ -95,7 +95,6 @@ $json_exp = { ], 'json' => { 'block_dtmf' => '0', - 'block_media' => '0', 'call_flags' => 65536, 'created' => qr/^\d+$/, 'created_from' => qr//, @@ -309,7 +308,6 @@ $json_exp = { ], 'tag-0' => { 'block_dtmf' => '0', - 'block_media' => '0', 'created' => qr/^\d+$/, 'deleted' => '0', 'logical_intf' => 'foo', @@ -318,7 +316,6 @@ $json_exp = { }, 'tag-1' => { 'block_dtmf' => '0', - 'block_media' => '0', 'created' => qr/^\d+$/, 'deleted' => '0', 'logical_intf' => 'foo', @@ -356,7 +353,6 @@ $json_exp = { ], 'json' => { 'block_dtmf' => '0', - 'block_media' => '0', 'call_flags' => 1376256, 'created' => qr/^\d+$/, 'created_from' => qr//, @@ -568,7 +564,6 @@ $json_exp = { ], 'tag-0' => { 'block_dtmf' => '0', - 'block_media' => '0', 'created' => qr/^\d+$/, 'deleted' => '0', 'logical_intf' => 'foo', @@ -577,7 +572,6 @@ $json_exp = { }, 'tag-1' => { 'block_dtmf' => '0', - 'block_media' => '0', 'created' => qr/^\d+$/, 'deleted' => '0', 'logical_intf' => 'foo', @@ -622,7 +616,6 @@ $json_exp = { ], 'json' => { 'block_dtmf' => '0', - 'block_media' => '0', 'call_flags' => 65536, 'created' => qr/^\d+$/, 'created_from' => qr//, @@ -836,7 +829,6 @@ $json_exp = { ], 'tag-0' => { 'block_dtmf' => '0', - 'block_media' => '0', 'created' => qr/^\d+$/, 'deleted' => '0', 'logical_intf' => 'foo', @@ -845,7 +837,6 @@ $json_exp = { }, 'tag-1' => { 'block_dtmf' => '0', - 'block_media' => '0', 'created' => qr/^\d+$/, 'deleted' => '0', 'logical_intf' => 'foo', @@ -884,7 +875,6 @@ $json_exp = { ], 'json' => { 'block_dtmf' => '0', - 'block_media' => '0', 'call_flags' => 1376256, 'created' => qr/^\d+$/, 'created_from' => qr//, @@ -1098,7 +1088,6 @@ $json_exp = { ], 'tag-0' => { 'block_dtmf' => '0', - 'block_media' => '0', 'created' => qr/^\d+$/, 'deleted' => '0', 'logical_intf' => 'foo', @@ -1107,7 +1096,6 @@ $json_exp = { }, 'tag-1' => { 'block_dtmf' => '0', - 'block_media' => '0', 'created' => qr/^\d+$/, 'deleted' => '0', 'logical_intf' => 'foo', @@ -1148,7 +1136,6 @@ $json_exp = { 'associated_tags-2' => [], 'json' => { 'block_dtmf' => '0', - 'block_media' => '0', 'call_flags' => 1376256, 'created' => qr/^\d+$/, 'created_from' => qr//, @@ -1546,7 +1533,6 @@ $json_exp = { ], 'tag-0' => { 'block_dtmf' => '0', - 'block_media' => '0', 'created' => qr/^\d+$/, 'deleted' => '0', 'logical_intf' => 'foo', @@ -1555,7 +1541,6 @@ $json_exp = { }, 'tag-1' => { 'block_dtmf' => '0', - 'block_media' => '0', 'created' => qr/^\d+$/, 'deleted' => '0', 'logical_intf' => 'foo', @@ -1564,7 +1549,6 @@ $json_exp = { }, 'tag-2' => { 'block_dtmf' => '0', - 'block_media' => '0', 'created' => qr/^\d+$/, 'deleted' => '0', 'logical_intf' => 'foo', @@ -1644,7 +1628,6 @@ $json_exp = { 'associated_tags-0' => [], 'json' => { 'block_dtmf' => '0', - 'block_media' => '0', 'call_flags' => 0, 'created' => qr//, 'created_from' => qr//, @@ -1754,7 +1737,6 @@ $json_exp = { 'media-subscriptions-0' => [], 'tag-0' => { 'block_dtmf' => '0', - 'block_media' => '0', 'created' => qr//, 'deleted' => '0', 'logical_intf' => 'foo', @@ -1789,7 +1771,6 @@ $json_exp = { 'associated_tags-1' => [], 'json' => { 'block_dtmf' => '0', - 'block_media' => '0', 'call_flags' => 0, 'created' => qr//, 'created_from' => qr//, @@ -1995,7 +1976,6 @@ $json_exp = { ], 'tag-0' => { 'block_dtmf' => '0', - 'block_media' => '0', 'created' => qr//, 'deleted' => '0', 'logical_intf' => 'foo', @@ -2004,7 +1984,6 @@ $json_exp = { }, 'tag-1' => { 'block_dtmf' => '0', - 'block_media' => '0', 'created' => qr//, 'deleted' => '0', 'logical_intf' => 'foo', @@ -2031,7 +2010,6 @@ $json_exp = { 'associated_tags-1' => [], 'json' => { 'block_dtmf' => '0', - 'block_media' => '0', 'call_flags' => 0, 'created' => qr//, 'created_from' => qr//, @@ -2237,7 +2215,6 @@ $json_exp = { ], 'tag-0' => { 'block_dtmf' => '0', - 'block_media' => '0', 'created' => qr//, 'deleted' => '0', 'logical_intf' => 'foo', @@ -2246,7 +2223,6 @@ $json_exp = { }, 'tag-1' => { 'block_dtmf' => '0', - 'block_media' => '0', 'created' => qr//, 'deleted' => '0', 'logical_intf' => 'foo', @@ -2272,7 +2248,6 @@ $json_exp = { 'associated_tags-2' => [], 'json' => { 'block_dtmf' => '0', - 'block_media' => '0', 'call_flags' => 0, 'created' => qr//, 'created_from' => qr//, @@ -2572,7 +2547,6 @@ $json_exp = { ], 'tag-0' => { 'block_dtmf' => '0', - 'block_media' => '0', 'created' => qr//, 'deleted' => '0', 'logical_intf' => 'foo', @@ -2581,7 +2555,6 @@ $json_exp = { }, 'tag-1' => { 'block_dtmf' => '0', - 'block_media' => '0', 'created' => qr//, 'deleted' => '0', 'logical_intf' => 'foo', @@ -2590,7 +2563,6 @@ $json_exp = { }, 'tag-2' => { 'block_dtmf' => '0', - 'block_media' => '0', 'created' => qr//, 'deleted' => '0', 'logical_intf' => 'foo', diff --git a/t/test-transcode.c b/t/test-transcode.c index edcae2f71..4a71bcfa0 100644 --- a/t/test-transcode.c +++ b/t/test-transcode.c @@ -957,17 +957,17 @@ int main(void) { packet_seq_exp(A, 8, PCMA_payload, 1000960, 212, 8, PCMA_payload, 5); // DTMF packets appear lost packet_seq(A, 8, PCMA_payload, 1001120, 213, 8, PCMA_payload); // media blocking - ml_A->block_media = 1; + ML_SET(ml_A, BLOCK_MEDIA); packet_seq_exp(A, 8, PCMA_payload, 1001280, 214, -1, "", 0); packet_seq_exp(A, 8, PCMA_payload, 1001440, 215, -1, "", 0); - ml_A->block_media = 0; + ML_CLEAR(ml_A, BLOCK_MEDIA); packet_seq_exp(A, 8, PCMA_payload, 1001600, 216, 8, PCMA_payload, 3); // media packets appear lost - call.block_media = 1; + CALL_SET(&call, BLOCK_MEDIA); packet_seq_exp(A, 8, PCMA_payload, 1001760, 217, -1, "", 0); packet_seq_exp(A, 8, PCMA_payload, 1001920, 218, -1, "", 0); - call.block_media = 0; + CALL_CLEAR(&call, BLOCK_MEDIA); packet_seq_exp(A, 8, PCMA_payload, 1002080, 219, 8, PCMA_payload, 3); // media packets appear lost - ml_B->block_media = 1; + ML_SET(ml_B, BLOCK_MEDIA); packet_seq(A, 8, PCMA_payload, 1002240, 220, 8, PCMA_payload); end(); @@ -1022,17 +1022,17 @@ int main(void) { packet_seq_exp(A, 8, PCMA_payload, 1000960, 212, 0, PCMU_payload, 5); // DTMF packets appear lost packet_seq(A, 8, PCMA_payload, 1001120, 213, 0, PCMU_payload); // media blocking - ml_A->block_media = 1; + ML_SET(ml_A, BLOCK_MEDIA); packet_seq_exp(A, 8, PCMA_payload, 1001280, 214, -1, "", 0); packet_seq_exp(A, 8, PCMA_payload, 1001440, 215, -1, "", 0); - ml_A->block_media = 0; + ML_CLEAR(ml_A, BLOCK_MEDIA); packet_seq_exp(A, 8, PCMA_payload, 1001600, 214, 0, PCMU_payload, 1); // cheat with the seq here - 216 would get held by the jitter buffer - call.block_media = 1; + CALL_SET(&call, BLOCK_MEDIA); packet_seq_exp(A, 8, PCMA_payload, 1001760, 215, -1, "", 0); packet_seq_exp(A, 8, PCMA_payload, 1001920, 216, -1, "", 0); - call.block_media = 0; + CALL_CLEAR(&call, BLOCK_MEDIA); packet_seq_exp(A, 8, PCMA_payload, 1002080, 215, 0, PCMU_payload, 1); - ml_B->block_media = 1; + ML_SET(ml_B, BLOCK_MEDIA); packet_seq_exp(A, 8, PCMA_payload, 1002240, 216, 0, PCMU_payload, 1); end(); @@ -1086,17 +1086,17 @@ int main(void) { packet_seq_exp(A, 0, PCMU_payload, 1000960, 212, 0, PCMU_payload, 5); // DTMF packets appear lost packet_seq(A, 0, PCMU_payload, 1001120, 213, 0, PCMU_payload); // media blocking - ml_A->block_media = 1; + ML_SET(ml_A, BLOCK_MEDIA); packet_seq_exp(A, 0, PCMU_payload, 1001280, 214, -1, "", 0); packet_seq_exp(A, 0, PCMU_payload, 1001440, 215, -1, "", 0); - ml_A->block_media = 0; + ML_CLEAR(ml_A, BLOCK_MEDIA); packet_seq_exp(A, 0, PCMU_payload, 1001600, 216, 0, PCMU_payload, 3); // media packets appear lost - call.block_media = 1; + CALL_SET(&call, BLOCK_MEDIA); packet_seq_exp(A, 0, PCMU_payload, 1001760, 217, -1, "", 0); packet_seq_exp(A, 0, PCMU_payload, 1001920, 218, -1, "", 0); - call.block_media = 0; + CALL_CLEAR(&call, BLOCK_MEDIA); packet_seq_exp(A, 0, PCMU_payload, 1002080, 219, 0, PCMU_payload, 3); // media packets appear lost - ml_B->block_media = 1; + ML_SET(ml_B, BLOCK_MEDIA); packet_seq(A, 0, PCMU_payload, 1002240, 220, 0, PCMU_payload); end(); @@ -1585,32 +1585,32 @@ int main(void) { packet_seq(B, 8, PCMA_payload, 0, 0, 8, PCMA_payload); packet_seq(A, 8, PCMA_payload, 160, 1, 8, PCMA_payload); packet_seq(B, 8, PCMA_payload, 160, 1, 8, PCMA_payload); - call.silence_media = 1; + CALL_SET(&call, SILENCE_MEDIA); packet_seq(A, 8, PCMA_payload, 320, 2, 8, PCMA_silence); packet_seq(B, 8, PCMA_payload, 320, 2, 8, PCMA_silence); packet_seq(A, 8, PCMA_payload, 480, 3, 8, PCMA_silence); packet_seq(B, 8, PCMA_payload, 480, 3, 8, PCMA_silence); - call.silence_media = 0; + CALL_CLEAR(&call, SILENCE_MEDIA); packet_seq(A, 8, PCMA_payload, 640, 4, 8, PCMA_payload); packet_seq(B, 8, PCMA_payload, 640, 4, 8, PCMA_payload); packet_seq(A, 8, PCMA_payload, 800, 5, 8, PCMA_payload); packet_seq(B, 8, PCMA_payload, 800, 5, 8, PCMA_payload); - ml_A->silence_media = 1; + ML_SET(ml_A, SILENCE_MEDIA); packet_seq(A, 8, PCMA_payload, 960, 6, 8, PCMA_silence); packet_seq(B, 8, PCMA_payload, 960, 6, 8, PCMA_payload); packet_seq(A, 8, PCMA_payload, 1120, 7, 8, PCMA_silence); packet_seq(B, 8, PCMA_payload, 1120, 7, 8, PCMA_payload); - ml_A->silence_media = 0; + ML_CLEAR(ml_A, SILENCE_MEDIA); packet_seq(A, 8, PCMA_payload, 1280, 8, 8, PCMA_payload); packet_seq(B, 8, PCMA_payload, 1280, 8, 8, PCMA_payload); packet_seq(A, 8, PCMA_payload, 1440, 9, 8, PCMA_payload); packet_seq(B, 8, PCMA_payload, 1440, 9, 8, PCMA_payload); - ml_B->silence_media = 1; + ML_SET(ml_B, SILENCE_MEDIA); packet_seq(A, 8, PCMA_payload, 1600, 10, 8, PCMA_payload); packet_seq(B, 8, PCMA_payload, 1600, 10, 8, PCMA_silence); packet_seq(A, 8, PCMA_payload, 1760, 11, 8, PCMA_payload); packet_seq(B, 8, PCMA_payload, 1760, 11, 8, PCMA_silence); - ml_B->silence_media = 0; + ML_CLEAR(ml_B, SILENCE_MEDIA); packet_seq(A, 8, PCMA_payload, 1920, 12, 8, PCMA_payload); packet_seq(B, 8, PCMA_payload, 1920, 12, 8, PCMA_payload); packet_seq(A, 8, PCMA_payload, 2080, 13, 8, PCMA_payload); @@ -1631,32 +1631,32 @@ int main(void) { packet_seq(B, 0, PCMU_payload, 0, 0, 0, PCMU_payload); packet_seq(A, 0, PCMU_payload, 160, 1, 0, PCMU_payload); packet_seq(B, 0, PCMU_payload, 160, 1, 0, PCMU_payload); - call.silence_media = 1; + CALL_SET(&call, SILENCE_MEDIA); packet_seq(A, 0, PCMU_payload, 320, 2, 0, PCMU_silence); packet_seq(B, 0, PCMU_payload, 320, 2, 0, PCMU_silence); packet_seq(A, 0, PCMU_payload, 480, 3, 0, PCMU_silence); packet_seq(B, 0, PCMU_payload, 480, 3, 0, PCMU_silence); - call.silence_media = 0; + CALL_CLEAR(&call, SILENCE_MEDIA); packet_seq(A, 0, PCMU_payload, 640, 4, 0, PCMU_payload); packet_seq(B, 0, PCMU_payload, 640, 4, 0, PCMU_payload); packet_seq(A, 0, PCMU_payload, 800, 5, 0, PCMU_payload); packet_seq(B, 0, PCMU_payload, 800, 5, 0, PCMU_payload); - ml_A->silence_media = 1; + ML_SET(ml_A, SILENCE_MEDIA); packet_seq(A, 0, PCMU_payload, 960, 6, 0, PCMU_silence); packet_seq(B, 0, PCMU_payload, 960, 6, 0, PCMU_payload); packet_seq(A, 0, PCMU_payload, 1120, 7, 0, PCMU_silence); packet_seq(B, 0, PCMU_payload, 1120, 7, 0, PCMU_payload); - ml_A->silence_media = 0; + ML_CLEAR(ml_A, SILENCE_MEDIA); packet_seq(A, 0, PCMU_payload, 1280, 8, 0, PCMU_payload); packet_seq(B, 0, PCMU_payload, 1280, 8, 0, PCMU_payload); packet_seq(A, 0, PCMU_payload, 1440, 9, 0, PCMU_payload); packet_seq(B, 0, PCMU_payload, 1440, 9, 0, PCMU_payload); - ml_B->silence_media = 1; + ML_SET(ml_B, SILENCE_MEDIA); packet_seq(A, 0, PCMU_payload, 1600, 10, 0, PCMU_payload); packet_seq(B, 0, PCMU_payload, 1600, 10, 0, PCMU_silence); packet_seq(A, 0, PCMU_payload, 1760, 11, 0, PCMU_payload); packet_seq(B, 0, PCMU_payload, 1760, 11, 0, PCMU_silence); - ml_B->silence_media = 0; + ML_CLEAR(ml_B, SILENCE_MEDIA); packet_seq(A, 0, PCMU_payload, 1920, 12, 0, PCMU_payload); packet_seq(B, 0, PCMU_payload, 1920, 12, 0, PCMU_payload); packet_seq(A, 0, PCMU_payload, 2080, 13, 0, PCMU_payload);