From a10aaeb1172662e4ddb72287172da2db1e985fcb Mon Sep 17 00:00:00 2001 From: supapo Date: Mon, 28 Feb 2022 13:07:46 +0200 Subject: [PATCH 1/6] [4.3] CAV doesn't work in quickcall after answer --- applications/crossbar/src/modules/cb_quickcall.erl | 1 + applications/ecallmgr/src/ecallmgr_originate.erl | 11 ++++++++++- core/kazoo_amqp/src/api/kapi_resource.erl | 1 + 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/applications/crossbar/src/modules/cb_quickcall.erl b/applications/crossbar/src/modules/cb_quickcall.erl index 1c170ae0ada..5a725447e70 100644 --- a/applications/crossbar/src/modules/cb_quickcall.erl +++ b/applications/crossbar/src/modules/cb_quickcall.erl @@ -247,6 +247,7 @@ originate_quickcall(Endpoints, Call, Context) -> ,{<<"Continue-On-Fail">>, 'false'} ,{<<"Custom-Application-Vars">>, kz_json:from_list(CAVs)} ,{<<"Custom-Channel-Vars">>, kz_json:from_list(CCVs)} + ,{<<"Export-Custom-Application-Vars">>, kz_json:get_keys(kz_json:from_list(CAVs))} ,{<<"Dial-Endpoint-Method">>, <<"simultaneous">>} ,{<<"Endpoints">>, update_quickcall_endpoints(AutoAnswer, Endpoints)} ,{<<"Existing-Call-ID">>, cb_context:req_value(Context, <<"target_call_id">>)} diff --git a/applications/ecallmgr/src/ecallmgr_originate.erl b/applications/ecallmgr/src/ecallmgr_originate.erl index dd08c7b9495..0e5b0d6ff3a 100644 --- a/applications/ecallmgr/src/ecallmgr_originate.erl +++ b/applications/ecallmgr/src/ecallmgr_originate.erl @@ -623,9 +623,18 @@ get_unset_vars(JObj) -> Export = [K || KV <- FSVars, ([K, _] = string:tokens(binary_to_list(KV), "=")) =/= 'undefined' ], + ExportCAVProps = [{K, <<>>} || K <- kz_json:get_value(<<"Export-Custom-Application-Vars">>, JObj, [])], + FSCAVVars = lists:foldr(fun ecallmgr_fs_xml:kazoo_var_to_fs_var/2 + ,[] + ,[{<<"Custom-Application-Vars">>, kz_json:from_list(ExportCAVProps)}] + ), + ExportCAV = [K || KV <- FSCAVVars, + ([K, _] = string:tokens(binary_to_list(KV), "=")) =/= 'undefined' + ], case ["unset:" ++ K || KV <- lists:foldr(fun ecallmgr_fs_xml:kazoo_var_to_fs_var/2, [], kz_json:to_proplist(JObj)), - not lists:member(begin [K, _] = string:tokens(binary_to_list(KV), "="), K end, Export) + not lists:member(begin [K, _] = string:tokens(binary_to_list(KV), "="), K end, Export), + not lists:member(begin [K, _] = string:tokens(binary_to_list(KV), "="), K end, ExportCAV) ] of [] -> ""; diff --git a/core/kazoo_amqp/src/api/kapi_resource.erl b/core/kazoo_amqp/src/api/kapi_resource.erl index d782056da6a..f03d5b608d8 100644 --- a/core/kazoo_amqp/src/api/kapi_resource.erl +++ b/core/kazoo_amqp/src/api/kapi_resource.erl @@ -68,6 +68,7 @@ -define(ORIGINATE_REQ_HEADERS, [<<"Endpoints">>, <<"Application-Name">>]). -define(OPTIONAL_ORIGINATE_REQ_HEADERS, [<<"Application-Data">> ,<<"Custom-Application-Vars">> + ,<<"Export-Custom-Application-Vars">> ,<<"Custom-Channel-Vars">> ,<<"Existing-Call-ID">> % If set, use this node, otherwise ignore ,<<"Export-Custom-Channel-Vars">> From e3fe77317204500df164eccdca4a96cf4abbc5e1 Mon Sep 17 00:00:00 2001 From: supapo Date: Mon, 28 Feb 2022 13:31:01 +0200 Subject: [PATCH 2/6] Fix code_checks --- applications/crossbar/src/modules/cb_quickcall.erl | 2 +- applications/ecallmgr/src/ecallmgr_originate.erl | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/applications/crossbar/src/modules/cb_quickcall.erl b/applications/crossbar/src/modules/cb_quickcall.erl index 5a725447e70..a5329cf36fa 100644 --- a/applications/crossbar/src/modules/cb_quickcall.erl +++ b/applications/crossbar/src/modules/cb_quickcall.erl @@ -247,7 +247,7 @@ originate_quickcall(Endpoints, Call, Context) -> ,{<<"Continue-On-Fail">>, 'false'} ,{<<"Custom-Application-Vars">>, kz_json:from_list(CAVs)} ,{<<"Custom-Channel-Vars">>, kz_json:from_list(CCVs)} - ,{<<"Export-Custom-Application-Vars">>, kz_json:get_keys(kz_json:from_list(CAVs))} + ,{<<"Export-Custom-Application-Vars">>, kz_json:get_keys(kz_json:from_list(CAVs))} ,{<<"Dial-Endpoint-Method">>, <<"simultaneous">>} ,{<<"Endpoints">>, update_quickcall_endpoints(AutoAnswer, Endpoints)} ,{<<"Existing-Call-ID">>, cb_context:req_value(Context, <<"target_call_id">>)} diff --git a/applications/ecallmgr/src/ecallmgr_originate.erl b/applications/ecallmgr/src/ecallmgr_originate.erl index 0e5b0d6ff3a..667f3c486b2 100644 --- a/applications/ecallmgr/src/ecallmgr_originate.erl +++ b/applications/ecallmgr/src/ecallmgr_originate.erl @@ -634,7 +634,7 @@ get_unset_vars(JObj) -> case ["unset:" ++ K || KV <- lists:foldr(fun ecallmgr_fs_xml:kazoo_var_to_fs_var/2, [], kz_json:to_proplist(JObj)), not lists:member(begin [K, _] = string:tokens(binary_to_list(KV), "="), K end, Export), - not lists:member(begin [K, _] = string:tokens(binary_to_list(KV), "="), K end, ExportCAV) + not lists:member(begin [K, _] = string:tokens(binary_to_list(KV), "="), K end, ExportCAV) ] of [] -> ""; From 654684a0aef91875abe728419648f16929698abe Mon Sep 17 00:00:00 2001 From: supapo Date: Mon, 28 Feb 2022 14:19:12 +0200 Subject: [PATCH 3/6] Fix docs --- applications/crossbar/priv/api/swagger.json | 6 ++++++ .../priv/couchdb/schemas/kapi.resource.eavesdrop_req.json | 3 +++ .../priv/couchdb/schemas/kapi.resource.originate_req.json | 3 +++ 3 files changed, 12 insertions(+) diff --git a/applications/crossbar/priv/api/swagger.json b/applications/crossbar/priv/api/swagger.json index 253f62047d5..d0f1c35b4fc 100644 --- a/applications/crossbar/priv/api/swagger.json +++ b/applications/crossbar/priv/api/swagger.json @@ -22396,6 +22396,9 @@ "Export-Bridge-Variables": { "type": "string" }, + "Export-Custom-Application-Vars": { + "type": "object" + }, "Export-Custom-Channel-Vars": { "type": "object" }, @@ -22658,6 +22661,9 @@ "Export-Bridge-Variables": { "type": "string" }, + "Export-Custom-Application-Vars": { + "type": "object" + }, "Export-Custom-Channel-Vars": { "type": "object" }, diff --git a/applications/crossbar/priv/couchdb/schemas/kapi.resource.eavesdrop_req.json b/applications/crossbar/priv/couchdb/schemas/kapi.resource.eavesdrop_req.json index 50734fc4f68..228dec37f77 100644 --- a/applications/crossbar/priv/couchdb/schemas/kapi.resource.eavesdrop_req.json +++ b/applications/crossbar/priv/couchdb/schemas/kapi.resource.eavesdrop_req.json @@ -110,6 +110,9 @@ "Export-Bridge-Variables": { "type": "string" }, + "Export-Custom-Application-Vars": { + "type": "object" + }, "Export-Custom-Channel-Vars": { "type": "object" }, diff --git a/applications/crossbar/priv/couchdb/schemas/kapi.resource.originate_req.json b/applications/crossbar/priv/couchdb/schemas/kapi.resource.originate_req.json index f2fec8cfd82..68336d88b10 100644 --- a/applications/crossbar/priv/couchdb/schemas/kapi.resource.originate_req.json +++ b/applications/crossbar/priv/couchdb/schemas/kapi.resource.originate_req.json @@ -125,6 +125,9 @@ "Export-Bridge-Variables": { "type": "string" }, + "Export-Custom-Application-Vars": { + "type": "object" + }, "Export-Custom-Channel-Vars": { "type": "object" }, From f5d5072cc3b15160ebab4d57ca858e801bf57cd2 Mon Sep 17 00:00:00 2001 From: supapo Date: Mon, 28 Feb 2022 14:34:49 +0200 Subject: [PATCH 4/6] Revert docs --- applications/crossbar/priv/api/swagger.json | 3 --- .../couchdb/schemas/kapi.resource.eavesdrop_req.json | 3 --- .../couchdb/schemas/kapi.resource.originate_req.json | 6 ------ applications/ecallmgr/src/ecallmgr_originate.erl | 10 +++++----- 4 files changed, 5 insertions(+), 17 deletions(-) diff --git a/applications/crossbar/priv/api/swagger.json b/applications/crossbar/priv/api/swagger.json index d0f1c35b4fc..81160567145 100644 --- a/applications/crossbar/priv/api/swagger.json +++ b/applications/crossbar/priv/api/swagger.json @@ -22396,9 +22396,6 @@ "Export-Bridge-Variables": { "type": "string" }, - "Export-Custom-Application-Vars": { - "type": "object" - }, "Export-Custom-Channel-Vars": { "type": "object" }, diff --git a/applications/crossbar/priv/couchdb/schemas/kapi.resource.eavesdrop_req.json b/applications/crossbar/priv/couchdb/schemas/kapi.resource.eavesdrop_req.json index 228dec37f77..50734fc4f68 100644 --- a/applications/crossbar/priv/couchdb/schemas/kapi.resource.eavesdrop_req.json +++ b/applications/crossbar/priv/couchdb/schemas/kapi.resource.eavesdrop_req.json @@ -110,9 +110,6 @@ "Export-Bridge-Variables": { "type": "string" }, - "Export-Custom-Application-Vars": { - "type": "object" - }, "Export-Custom-Channel-Vars": { "type": "object" }, diff --git a/applications/crossbar/priv/couchdb/schemas/kapi.resource.originate_req.json b/applications/crossbar/priv/couchdb/schemas/kapi.resource.originate_req.json index 68336d88b10..42a864e150b 100644 --- a/applications/crossbar/priv/couchdb/schemas/kapi.resource.originate_req.json +++ b/applications/crossbar/priv/couchdb/schemas/kapi.resource.originate_req.json @@ -125,12 +125,6 @@ "Export-Bridge-Variables": { "type": "string" }, - "Export-Custom-Application-Vars": { - "type": "object" - }, - "Export-Custom-Channel-Vars": { - "type": "object" - }, "Export-Variables": { "type": "string" }, diff --git a/applications/ecallmgr/src/ecallmgr_originate.erl b/applications/ecallmgr/src/ecallmgr_originate.erl index 667f3c486b2..61477dd69c3 100644 --- a/applications/ecallmgr/src/ecallmgr_originate.erl +++ b/applications/ecallmgr/src/ecallmgr_originate.erl @@ -625,12 +625,12 @@ get_unset_vars(JObj) -> ], ExportCAVProps = [{K, <<>>} || K <- kz_json:get_value(<<"Export-Custom-Application-Vars">>, JObj, [])], FSCAVVars = lists:foldr(fun ecallmgr_fs_xml:kazoo_var_to_fs_var/2 - ,[] - ,[{<<"Custom-Application-Vars">>, kz_json:from_list(ExportCAVProps)}] - ), + ,[] + ,[{<<"Custom-Application-Vars">>, kz_json:from_list(ExportCAVProps)}] + ), ExportCAV = [K || KV <- FSCAVVars, - ([K, _] = string:tokens(binary_to_list(KV), "=")) =/= 'undefined' - ], + ([K, _] = string:tokens(binary_to_list(KV), "=")) =/= 'undefined' + ], case ["unset:" ++ K || KV <- lists:foldr(fun ecallmgr_fs_xml:kazoo_var_to_fs_var/2, [], kz_json:to_proplist(JObj)), not lists:member(begin [K, _] = string:tokens(binary_to_list(KV), "="), K end, Export), From c1c0183f98ab97e9e09323f66279f34e5d056e5f Mon Sep 17 00:00:00 2001 From: supapo Date: Mon, 28 Feb 2022 14:51:54 +0200 Subject: [PATCH 5/6] Fix docs --- .../priv/couchdb/schemas/kapi.resource.eavesdrop_req.json | 3 +++ .../priv/couchdb/schemas/kapi.resource.originate_req.json | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/applications/crossbar/priv/couchdb/schemas/kapi.resource.eavesdrop_req.json b/applications/crossbar/priv/couchdb/schemas/kapi.resource.eavesdrop_req.json index 50734fc4f68..98c691c74d2 100644 --- a/applications/crossbar/priv/couchdb/schemas/kapi.resource.eavesdrop_req.json +++ b/applications/crossbar/priv/couchdb/schemas/kapi.resource.eavesdrop_req.json @@ -113,6 +113,9 @@ "Export-Custom-Channel-Vars": { "type": "object" }, + "Export-Custom-Application-Vars": { + "type": "object" + }, "Export-Variables": { "type": "string" }, diff --git a/applications/crossbar/priv/couchdb/schemas/kapi.resource.originate_req.json b/applications/crossbar/priv/couchdb/schemas/kapi.resource.originate_req.json index 42a864e150b..68336d88b10 100644 --- a/applications/crossbar/priv/couchdb/schemas/kapi.resource.originate_req.json +++ b/applications/crossbar/priv/couchdb/schemas/kapi.resource.originate_req.json @@ -125,6 +125,12 @@ "Export-Bridge-Variables": { "type": "string" }, + "Export-Custom-Application-Vars": { + "type": "object" + }, + "Export-Custom-Channel-Vars": { + "type": "object" + }, "Export-Variables": { "type": "string" }, From 87e8c9d79bb4854034263b1bb8af8ddff89aadd9 Mon Sep 17 00:00:00 2001 From: supapo Date: Mon, 28 Feb 2022 15:06:51 +0200 Subject: [PATCH 6/6] Fix docs --- applications/crossbar/priv/api/swagger.json | 3 +++ .../priv/couchdb/schemas/kapi.resource.eavesdrop_req.json | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/applications/crossbar/priv/api/swagger.json b/applications/crossbar/priv/api/swagger.json index 81160567145..d0f1c35b4fc 100644 --- a/applications/crossbar/priv/api/swagger.json +++ b/applications/crossbar/priv/api/swagger.json @@ -22396,6 +22396,9 @@ "Export-Bridge-Variables": { "type": "string" }, + "Export-Custom-Application-Vars": { + "type": "object" + }, "Export-Custom-Channel-Vars": { "type": "object" }, diff --git a/applications/crossbar/priv/couchdb/schemas/kapi.resource.eavesdrop_req.json b/applications/crossbar/priv/couchdb/schemas/kapi.resource.eavesdrop_req.json index 98c691c74d2..228dec37f77 100644 --- a/applications/crossbar/priv/couchdb/schemas/kapi.resource.eavesdrop_req.json +++ b/applications/crossbar/priv/couchdb/schemas/kapi.resource.eavesdrop_req.json @@ -110,10 +110,10 @@ "Export-Bridge-Variables": { "type": "string" }, - "Export-Custom-Channel-Vars": { + "Export-Custom-Application-Vars": { "type": "object" }, - "Export-Custom-Application-Vars": { + "Export-Custom-Channel-Vars": { "type": "object" }, "Export-Variables": {