MT#65392 add "fast" flag for delete processing

Change-Id: I16d4cdd9ecc8dbe612eac2ff002283b606f0f082
(cherry picked from commit 6391c6bf95)
mr26.1
Richard Fuchs 6 days ago
parent 069b594489
commit fbfb514194

@ -6444,7 +6444,8 @@ static void monologue_stop(struct call_monologue *ml, bool stop_media_subscriber
// call must be locked in W.
// unlocks the call and releases the reference prior to returning, even on error.
int call_delete_branch(call_t *c, const str *branch,
const str *fromtag, const str *totag, ng_command_ctx_t *ctx, int64_t delete_delay)
const str *fromtag, const str *totag, ng_command_ctx_t *ctx, int64_t delete_delay,
bool stats)
{
struct call_monologue *ml;
int ret;
@ -6527,13 +6528,13 @@ do_delete:
if (!del_stop)
goto del_all;
if (ctx)
if (ctx && stats)
ng_call_stats(ctx, c, fromtag, totag, NULL);
goto success_unlock;
del_all:
if (ctx)
if (ctx && stats)
ng_call_stats(ctx, c, NULL, NULL, NULL);
for (__auto_type i = c->monologues.head; i; i = i->next) {
@ -6584,7 +6585,7 @@ int call_delete_branch_by_id(const str *callid, const str *branch,
ilog(LOG_INFO, "Call-ID to delete not found");
return -1;
}
return call_delete_branch(c, branch, fromtag, totag, ctx, delete_delay);
return call_delete_branch(c, branch, fromtag, totag, ctx, delete_delay, false);
}
struct call_media *call_make_transform_media(struct call_monologue *ml, const str *type, enum media_type type_id,

@ -750,6 +750,9 @@ const char *call_ng_flags_flags(str *s, unsigned int idx, helper_arg arg) {
case CSH_LOOKUP("fatal"):
out->fatal = true;
break;
case CSH_LOOKUP("fast"):
out->fast = true;
break;
case CSH_LOOKUP("fragment"):
out->fragment = true;
break;

@ -754,7 +754,8 @@ const char *call_delete_ng(ng_command_ctx_t *ctx) {
if (call_delete_branch(c, &rtpp_flags.via_branch,
&rtpp_flags.from_tag,
(rtpp_flags.to_tag_flag ? &rtpp_flags.to_tag : NULL),
ctx, rtpp_flags.delete_delay))
ctx, rtpp_flags.delete_delay,
!rtpp_flags.fast))
{
goto err;
}

@ -1851,6 +1851,12 @@ of zero or more strings. The following flags are defined:
result in an error reply (i.e. `"result": "error"`). The default is to reply with a warning only
(i.e. `"result": "ok", "warning": ...`).
* `fast`
Omit adding statistics to the response message. This makes processing of
the delete message more light-weight and produces a smaller response
message, which is beneficial if the statistics aren't needed.
* `to-tag`
This flag controls whether the `"To"` tag's value is honoured or ignored when handling

@ -930,7 +930,8 @@ void monologue_destroy(struct call_monologue *ml);
int call_delete_branch_by_id(const str *callid, const str *branch,
const str *fromtag, const str *totag, ng_command_ctx_t *, int64_t delete_delay);
int call_delete_branch(call_t *, const str *branch,
const str *fromtag, const str *totag, ng_command_ctx_t *, int64_t delete_delay);
const str *fromtag, const str *totag, ng_command_ctx_t *, int64_t delete_delay,
bool stats);
void call_destroy(call_t *);
struct call_media *call_media_new(call_t *call);
void call_media_free(struct call_media **mdp);

@ -313,6 +313,7 @@ RTPE_NG_FLAGS_STR_CASE_HT_PARAMS
bidirectional:1,
unsubscribe:1,
fatal:1,
fast:1,
new_branch:1,
provisional:1,
/* to_tag is used especially by delete handling */

@ -60,6 +60,8 @@ my @flags = qw(
mix
unsubscribe
strip-extmap
fatal
fast
);
my @string_opts = qw(

Loading…
Cancel
Save