Skip to content

Commit

Permalink
Fix to remove concatenated media names
Browse files Browse the repository at this point in the history
  • Loading branch information
2600hz dev authored and kdamas93 committed Sep 12, 2021
1 parent e67a3c3 commit 5c58780
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 1 deletion.
20 changes: 19 additions & 1 deletion applications/cdr/src/cdr_util.erl
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
,register_views/0
]).
-export([save_cdr/2]).
-export([check_media_names/1]).

-include("cdr.hrl").

Expand Down Expand Up @@ -43,7 +44,11 @@ save_cdr(AccountMOD, Doc) ->

-spec do_save_cdr(kz_term:api_binary(), kz_json:object()) -> 'ok' | {'error', 'max_save_retries'}.
do_save_cdr(AccountMODb, Doc) ->
case kazoo_modb:save_doc(AccountMODb, Doc, [{'max_retries', 3}]) of
MediaNames = kz_json:get_value([<<"custom_channel_vars">>, <<"media_names">>], Doc),

NewDoc = kz_json:set_value([<<"custom_channel_vars">>, <<"media_names">>], check_media_names(MediaNames), Doc),

case kazoo_modb:save_doc(AccountMODb, NewDoc, [{'max_retries', 3}]) of
{'ok', _}-> 'ok';
{'error', 'conflict'} -> 'ok';
{'error', _E} ->
Expand All @@ -54,3 +59,16 @@ do_save_cdr(AccountMODb, Doc) ->
-spec register_views() -> 'ok'.
register_views() ->
kz_datamgr:register_views_from_folder('cdr').

-spec check_media_names(list()|kz_term:api_binary()) -> list().
check_media_names(MediaNames) when is_list(MediaNames) ->
[HeadMN|TailMN] = MediaNames,
re:split(HeadMN, ",") ++ check_last_media_name(TailMN);
check_media_names(MediaNames) ->
re:split(MediaNames, ",").

-spec check_last_media_name(list())->list().
check_last_media_name([FirstMediaName | []])->
re:split(FirstMediaName, ",");
check_last_media_name([FirstMediaName | LasttMediaName])->
re:split(FirstMediaName, ",") ++ check_media_names(re:split(LasttMediaName, ",")).
17 changes: 17 additions & 0 deletions applications/ecallmgr/src/ecallmgr_util.erl
Original file line number Diff line number Diff line change
Expand Up @@ -664,6 +664,10 @@ get_fs_kv(<<"Hold-Media">>, Media, UUID) ->
list_to_binary(["hold_music=", MediaPath]);
get_fs_kv(?CCV(Key), Val, UUID) ->
get_fs_kv(Key, Val, UUID);
get_fs_kv(<<"Media-Names">>, [FileName1 | []], _) ->
list_to_binary([get_fs_key(<<"Media-Names">>), "=", maybe_sanitize_fs_value(<<"Media-Names">>, FileName1)]);
get_fs_kv(<<"Media-Recordings">>, [FileName1 | []], _) ->
list_to_binary([get_fs_key(<<"Media-Recordings">>), "=", maybe_sanitize_fs_value(<<"Media-Recordings">>, FileName1)]);
get_fs_kv(Key, Val, _) ->
list_to_binary([get_fs_key(Key), "=", maybe_sanitize_fs_value(Key, Val)]).

Expand Down Expand Up @@ -731,10 +735,23 @@ maybe_sanitize_fs_value(<<"Export-Variables">>, Val) ->
kz_binary:join(Val, <<",">>);
maybe_sanitize_fs_value(Key, Val) when not is_binary(Key) ->
maybe_sanitize_fs_value(kz_term:to_binary(Key), Val);
maybe_sanitize_fs_value(<<"Media-Names">>, Val) when not is_binary(Val) ->
maybe_sanitize_fs_value(<<"Media-Names">>, checking_list_media_name(Val));
maybe_sanitize_fs_value(<<"Media-Recordings">>, Val) when not is_binary(Val) ->
maybe_sanitize_fs_value(<<"Media-Recordings">>, checking_list_media_name(Val));
maybe_sanitize_fs_value(Key, Val) when not is_binary(Val) ->
maybe_sanitize_fs_value(Key, kz_term:to_binary(Val));
maybe_sanitize_fs_value(_, Val) -> Val.

-spec checking_list_media_name(list()) -> binary().
checking_list_media_name([])->
<<>>;
checking_list_media_name([MediaName1 | []]) ->
<<MediaName1/binary>>;
checking_list_media_name([MediaName1 | MediaName2])->
Next = checking_list_media_name(MediaName2),
<<MediaName1/binary, ",", Next/binary>>.

%%------------------------------------------------------------------------------
%% @doc takes endpoints (/sofia/foo/bar), and optionally a caller id name/num
%% and create the dial string ([origination_caller_id_name=Name
Expand Down

0 comments on commit 5c58780

Please sign in to comment.