diff --git a/core/kazoo_number_manager/src/carriers/knm_bandwidth.erl b/core/kazoo_number_manager/src/carriers/knm_bandwidth.erl index 36d3441e99d..0ba954e26dc 100644 --- a/core/kazoo_number_manager/src/carriers/knm_bandwidth.erl +++ b/core/kazoo_number_manager/src/carriers/knm_bandwidth.erl @@ -89,9 +89,9 @@ is_local() -> 'false'. %% @doc Check with carrier if these numbers are registered with it. %% @end %%------------------------------------------------------------------------------ --spec check_numbers(kz_term:ne_binaries()) -> {ok, kz_json:object()} | - {error, any()}. -check_numbers(_Numbers) -> {error, not_implemented}. +-spec check_numbers(kz_term:ne_binaries()) -> {'ok', kz_json:object()} | + {'error', 'not_implemented'}. +check_numbers(_Numbers) -> {'error', 'not_implemented'}. %%------------------------------------------------------------------------------ %% @doc Query the Bandwidth.com system for a quantity of available numbers diff --git a/core/kazoo_number_manager/src/carriers/knm_bandwidth2.erl b/core/kazoo_number_manager/src/carriers/knm_bandwidth2.erl index 2894e15dd5c..f4f65d630ba 100644 --- a/core/kazoo_number_manager/src/carriers/knm_bandwidth2.erl +++ b/core/kazoo_number_manager/src/carriers/knm_bandwidth2.erl @@ -121,9 +121,9 @@ is_number_billable(_Number) -> 'true'. %% @doc Check with carrier if these numbers are registered with it. %% @end %%------------------------------------------------------------------------------ --spec check_numbers(kz_term:ne_binaries()) -> {ok, kz_json:object()} | - {error, any()}. -check_numbers(_Numbers) -> {error, not_implemented}. +-spec check_numbers(kz_term:ne_binaries()) -> {'ok', kz_json:object()} | + {'error', 'not_implemented'}. +check_numbers(_Numbers) -> {'error', 'not_implemented'}. %%------------------------------------------------------------------------------ %% @doc Query the Bandwidth.com system for a quantity of available numbers @@ -464,11 +464,7 @@ tollfree_search_response_to_KNM(Xml, QID) -> %% @doc Convert a rate center XML entity to json %% @end %%------------------------------------------------------------------------------ --spec rate_center_to_json(kz_types:xml_els() | kz_types:xml_el()) -> kz_json:object(). -rate_center_to_json([]) -> - kz_json:new(); -rate_center_to_json([Xml]) -> - rate_center_to_json(Xml); +-spec rate_center_to_json(kz_types:xml_el()) -> kz_json:object(). rate_center_to_json(Xml) -> kz_json:from_list( props:filter_empty( diff --git a/core/kazoo_number_manager/src/carriers/knm_carriers.erl b/core/kazoo_number_manager/src/carriers/knm_carriers.erl index 65665186bd4..e6b2b5d95a1 100644 --- a/core/kazoo_number_manager/src/carriers/knm_carriers.erl +++ b/core/kazoo_number_manager/src/carriers/knm_carriers.erl @@ -101,7 +101,7 @@ check_fold(Module, {Nums, OKs0, KOs0}) -> check_numbers(Module, Nums) -> try apply(Module, check_numbers, [Nums]) of - {ok, JObj} -> {kz_json:to_map(JObj), #{}}; + {'ok', JObj} -> {kz_json:to_map(JObj), #{}}; {error, _} -> {#{}, maps:from_list([{Num,<<"error">>} || Num <- Nums])} catch _:_ -> @@ -127,8 +127,8 @@ available_carriers(Options) -> -spec get_available_carriers(options()) -> kz_term:atoms(). get_available_carriers(Options) -> - case account_id(Options) =:= undefined - orelse reseller_id(Options) =:= undefined + case account_id(Options) =:= 'undefined' + orelse reseller_id(Options) =:= 'undefined' of 'true' -> keep_only_reachable(?CARRIER_MODULES); 'false' -> @@ -151,20 +151,32 @@ default_carrier() -> %%------------------------------------------------------------------------------ -spec all_modules() -> kz_term:ne_binaries(). all_modules() -> - [<<"knm_bandwidth2">> - ,<<"knm_bandwidth">> + [<<"knm_bandwidth">> + ,<<"knm_bandwidth2">> + ,<<"knm_didww">> + ,<<"knm_flowroute">> + ,<<"knm_inteliquent">> ,<<"knm_inum">> - ,<<"knm_local">> ,<<"knm_inventory">> + ,<<"knm_it_vocal">> + ,<<"knm_level3">> + ,<<"knm_local">> ,<<"knm_managed">> ,<<"knm_mdn">> + ,<<"knm_o1">> ,<<"knm_other">> + ,<<"knm_peerless">> ,<<"knm_reserved">> ,<<"knm_reserved_reseller">> ,<<"knm_simwood">> ,<<"knm_telnyx">> + ,<<"knm_thinq">> + ,<<"knm_verizon">> ,<<"knm_vitelity">> ,<<"knm_voip_innovations">> + ,<<"knm_voxbone">> + ,<<"knm_windstream">> + ,<<"knm_ziron">> ]. %%------------------------------------------------------------------------------ @@ -173,11 +185,10 @@ all_modules() -> %%------------------------------------------------------------------------------ -spec info(kz_term:api_ne_binary(), kz_term:api_ne_binary(), kz_term:api_ne_binary()) -> kz_json:object(). info(AuthAccountId, AccountId, ResellerId) -> - AvailableCarriers = available_carriers([{account_id, AccountId} - ,{reseller_id, ResellerId} + AvailableCarriers = available_carriers([{'account_id', AccountId} + ,{'reseller_id', ResellerId} ]), - Acc0 = #{?CARRIER_INFO_MAX_PREFIX => 15 - }, + Acc0 = #{?CARRIER_INFO_MAX_PREFIX => 15}, Map = lists:foldl(fun info_fold/2, Acc0, AvailableCarriers), kz_json:from_map( Map#{?CARRIER_INFO_USABLE_CARRIERS => usable_carriers() @@ -187,11 +198,10 @@ info(AuthAccountId, AccountId, ResellerId) -> -spec info_fold(module(), map()) -> map(). info_fold(Module, Info=#{?CARRIER_INFO_MAX_PREFIX := MaxPrefix}) -> - try apply(Module, info, []) of + try apply(Module, 'info', []) of #{?CARRIER_INFO_MAX_PREFIX := Lower} when is_integer(Lower), Lower < MaxPrefix -> - Info#{?CARRIER_INFO_MAX_PREFIX => Lower - }; + Info#{?CARRIER_INFO_MAX_PREFIX => Lower}; _ -> Info catch _E:_R -> @@ -228,8 +238,8 @@ allowed_creation_states(AccountId) -> acquire(T0=#{todo := Ns}) -> F = fun (N, T) -> case knm_number:attempt(fun acquire/1, [N]) of - {ok, NewN} -> knm_numbers:ok(NewN, T); - {error, R} -> knm_numbers:ko(N, R, T) + {'ok', NewN} -> knm_numbers:ok(NewN, T); + {'error', R} -> knm_numbers:ko(N, R, T) end end, lists:foldl(F, T0, Ns); @@ -262,8 +272,8 @@ acquire(Number, ?NE_BINARY=Mod, 'false') -> disconnect(T0=#{todo := Ns}) -> F = fun (N, T) -> case knm_number:attempt(fun disconnect/1, [N]) of - {ok, NewN} -> knm_numbers:ok(NewN, T); - {error, R} -> + {'ok', NewN} -> knm_numbers:ok(NewN, T); + {'error', R} -> Num = knm_phone_number:number(knm_number:phone_number(N)), knm_numbers:ko(Num, R, T) end @@ -271,7 +281,7 @@ disconnect(T0=#{todo := Ns}) -> lists:foldl(F, T0, Ns); disconnect(Number) -> Module = knm_phone_number:module_name(knm_number:phone_number(Number)), - try apply(Module, disconnect_number, [Number]) of + try apply(Module, 'disconnect_number', [Number]) of Result -> Result catch 'error':_ -> @@ -340,11 +350,11 @@ is_number_billable(PhoneNumber) -> %%------------------------------------------------------------------------------ -spec is_local(kz_term:ne_binary()) -> boolean(). is_local(Carrier) -> - try apply(Carrier, is_local, []) + try apply(Carrier, 'is_local', []) catch _E:_R -> kz_util:log_stacktrace(), - true + 'true' end. %%------------------------------------------------------------------------------ @@ -352,11 +362,11 @@ is_local(Carrier) -> %% @end %%------------------------------------------------------------------------------ -spec apply(module() | kz_term:ne_binary() | knm_number:knm_number(), atom(), list()) -> any(). -apply(Module, FName, Args) when is_atom(Module), Module =/= undefined -> +apply(Module, FName, Args) when is_atom(Module), Module =/= 'undefined' -> lager:debug("contacting carrier ~s for ~s", [Module, FName]), erlang:apply(Module, FName, Args); apply(?NE_BINARY=Carrier, FName, Args) -> - Module = erlang:binary_to_atom(Carrier, utf8), + Module = erlang:binary_to_atom(Carrier, 'utf8'), apply(Module, FName, Args); apply(Number, FName, Args) -> Carrier = knm_phone_number:module_name(knm_number:phone_number(Number)), diff --git a/core/kazoo_number_manager/src/carriers/knm_didww.erl b/core/kazoo_number_manager/src/carriers/knm_didww.erl new file mode 100644 index 00000000000..9fd2e7da5c7 --- /dev/null +++ b/core/kazoo_number_manager/src/carriers/knm_didww.erl @@ -0,0 +1,91 @@ +%%%----------------------------------------------------------------------------- +%%% @copyright (C) 2015-2020, 2600Hz +%%% @doc Handle client requests for phone number +%%% @end +%%%----------------------------------------------------------------------------- +-module(knm_didww). +-behaviour(knm_gen_carrier). + +-export([info/0]). +-export([is_local/0]). +-export([find_numbers/3]). +-export([acquire_number/1]). +-export([disconnect_number/1]). +-export([is_number_billable/1]). +-export([should_lookup_cnam/0]). +-export([check_numbers/1]). + +-include("knm.hrl"). + +-define(KNM_CARRIER_NAME, "didww"). +-define(KNM_CARRIER_CONFIG_CAT, <<(?KNM_CONFIG_CAT)/binary, ".", ?KNM_CARRIER_NAME>>). + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec info() -> map(). +info() -> + #{?CARRIER_INFO_MAX_PREFIX => 3 + }. + +%%------------------------------------------------------------------------------ +%% @doc Is this carrier handling numbers local to the system? +%% +%%
A non-local (foreign) carrier module makes HTTP requests.
+%% @end +%%------------------------------------------------------------------------------ +-spec is_local() -> boolean(). +is_local() -> 'false'. + +%%------------------------------------------------------------------------------ +%% @doc Check with carrier if these numbers are registered with it. +%% @end +%%------------------------------------------------------------------------------ +-spec check_numbers(kz_term:ne_binaries()) -> {'ok', kz_json:object()} | + {'error', 'not_implemented'}. +check_numbers(_Numbers) -> {'error', 'not_implemented'}. + +%%------------------------------------------------------------------------------ +%% @doc Query carrier for available numbers. +%% @end +%%------------------------------------------------------------------------------ +-spec find_numbers(kz_term:ne_binary(), pos_integer(), knm_carriers:options()) -> + {'ok', knm_number:knm_numbers()}. +find_numbers(_Prefix, _Quantity, _Options) -> + {'ok', []}. + +%%------------------------------------------------------------------------------ +%% @doc Acquire a given number from carrier. +%% @end +%%------------------------------------------------------------------------------ +-spec acquire_number(knm_number:knm_number()) -> no_return(). +acquire_number(Number) -> + knm_errors:by_carrier(?MODULE, 'not_implemented', Number). + +%%------------------------------------------------------------------------------ +%% @doc Return number back to carrier. +%% @end +%%------------------------------------------------------------------------------ +-spec disconnect_number(knm_number:knm_number()) -> + no_return(). +disconnect_number(Number) -> + knm_errors:by_carrier(?MODULE, 'not_implemented', Number). + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec is_number_billable(knm_phone_number:knm_phone_number()) -> boolean(). +is_number_billable(_Number) -> 'true'. + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec should_lookup_cnam() -> boolean(). +should_lookup_cnam() -> 'true'. + +%%%============================================================================= +%%% Internal functions +%%%============================================================================= diff --git a/core/kazoo_number_manager/src/carriers/knm_flowroute.erl b/core/kazoo_number_manager/src/carriers/knm_flowroute.erl new file mode 100644 index 00000000000..e077bc0325f --- /dev/null +++ b/core/kazoo_number_manager/src/carriers/knm_flowroute.erl @@ -0,0 +1,92 @@ +%%%----------------------------------------------------------------------------- +%%% @copyright (C) 2015-2020, 2600Hz +%%% @doc Handle client requests for phone number +%%% @end +%%%----------------------------------------------------------------------------- +-module(knm_flowroute). +-behaviour(knm_gen_carrier). + +-export([info/0]). +-export([is_local/0]). +-export([find_numbers/3]). +-export([acquire_number/1]). +-export([disconnect_number/1]). +-export([is_number_billable/1]). +-export([should_lookup_cnam/0]). +-export([check_numbers/1]). + +-include("knm.hrl"). + +-define(KNM_CARRIER_NAME, "flowroute"). +-define(KNM_CARRIER_CONFIG_CAT, <<(?KNM_CONFIG_CAT)/binary, ".", ?KNM_CARRIER_NAME>>). + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec info() -> map(). +info() -> + #{?CARRIER_INFO_MAX_PREFIX => 3 + }. + +%%------------------------------------------------------------------------------ +%% @doc Is this carrier handling numbers local to the system? +%% +%%
A non-local (foreign) carrier module makes HTTP requests.
+%% @end +%%------------------------------------------------------------------------------ +-spec is_local() -> boolean(). +is_local() -> 'false'. + +%%------------------------------------------------------------------------------ +%% @doc Check with carrier if these numbers are registered with it. +%% @end +%%------------------------------------------------------------------------------ +-spec check_numbers(kz_term:ne_binaries()) -> {'ok', kz_json:object()} | + {'error', 'not_implemented'}. +check_numbers(_Numbers) -> {'error', 'not_implemented'}. + +%%------------------------------------------------------------------------------ +%% @doc Query carrier for available numbers. +%% @end +%%------------------------------------------------------------------------------ +-spec find_numbers(kz_term:ne_binary(), pos_integer(), knm_carriers:options()) -> + {'ok', knm_number:knm_numbers()}. +find_numbers(_Prefix, _Quantity, _Options) -> + {'ok', []}. + +%%------------------------------------------------------------------------------ +%% @doc Acquire a given number from carrier. +%% @end +%%------------------------------------------------------------------------------ +-spec acquire_number(knm_number:knm_number()) -> + no_return(). +acquire_number(Number) -> + knm_errors:by_carrier(?MODULE, 'not_implemented', Number). + +%%------------------------------------------------------------------------------ +%% @doc Return number back to carrier. +%% @end +%%------------------------------------------------------------------------------ +-spec disconnect_number(knm_number:knm_number()) -> + no_return(). +disconnect_number(Number) -> + knm_errors:by_carrier(?MODULE, 'not_implemented', Number). + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec is_number_billable(knm_phone_number:knm_phone_number()) -> boolean(). +is_number_billable(_Number) -> 'true'. + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec should_lookup_cnam() -> boolean(). +should_lookup_cnam() -> 'true'. + +%%%============================================================================= +%%% Internal functions +%%%============================================================================= diff --git a/core/kazoo_number_manager/src/carriers/knm_inteliquent.erl b/core/kazoo_number_manager/src/carriers/knm_inteliquent.erl new file mode 100644 index 00000000000..de9fd24d1c6 --- /dev/null +++ b/core/kazoo_number_manager/src/carriers/knm_inteliquent.erl @@ -0,0 +1,92 @@ +%%%----------------------------------------------------------------------------- +%%% @copyright (C) 2015-2020, 2600Hz +%%% @doc Handle client requests for phone number +%%% @end +%%%----------------------------------------------------------------------------- +-module(knm_inteliquent). +-behaviour(knm_gen_carrier). + +-export([info/0]). +-export([is_local/0]). +-export([find_numbers/3]). +-export([acquire_number/1]). +-export([disconnect_number/1]). +-export([is_number_billable/1]). +-export([should_lookup_cnam/0]). +-export([check_numbers/1]). + +-include("knm.hrl"). + +-define(KNM_CARRIER_NAME, "inteliquent"). +-define(KNM_CARRIER_CONFIG_CAT, <<(?KNM_CONFIG_CAT)/binary, ".", ?KNM_CARRIER_NAME>>). + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec info() -> map(). +info() -> + #{?CARRIER_INFO_MAX_PREFIX => 3 + }. + +%%------------------------------------------------------------------------------ +%% @doc Is this carrier handling numbers local to the system? +%% +%%
A non-local (foreign) carrier module makes HTTP requests.
+%% @end +%%------------------------------------------------------------------------------ +-spec is_local() -> boolean(). +is_local() -> 'false'. + +%%------------------------------------------------------------------------------ +%% @doc Check with carrier if these numbers are registered with it. +%% @end +%%------------------------------------------------------------------------------ +-spec check_numbers(kz_term:ne_binaries()) -> {'ok', kz_json:object()} | + {'error', 'not_implemented'}. +check_numbers(_Numbers) -> {'error', 'not_implemented'}. + +%%------------------------------------------------------------------------------ +%% @doc Query carrier for available numbers. +%% @end +%%------------------------------------------------------------------------------ +-spec find_numbers(kz_term:ne_binary(), pos_integer(), knm_carriers:options()) -> + {'ok', knm_number:knm_numbers()}. +find_numbers(_Prefix, _Quantity, _Options) -> + {'ok', []}. + +%%------------------------------------------------------------------------------ +%% @doc Acquire a given number from carrier. +%% @end +%%------------------------------------------------------------------------------ +-spec acquire_number(knm_number:knm_number()) -> + no_return(). +acquire_number(Number) -> + knm_errors:by_carrier(?MODULE, 'not_implemented', Number). + +%%------------------------------------------------------------------------------ +%% @doc Return number back to carrier. +%% @end +%%------------------------------------------------------------------------------ +-spec disconnect_number(knm_number:knm_number()) -> + no_return(). +disconnect_number(Number) -> + knm_errors:by_carrier(?MODULE, 'not_implemented', Number). + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec is_number_billable(knm_phone_number:knm_phone_number()) -> boolean(). +is_number_billable(_Number) -> 'true'. + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec should_lookup_cnam() -> boolean(). +should_lookup_cnam() -> 'true'. + +%%%============================================================================= +%%% Internal functions +%%%============================================================================= diff --git a/core/kazoo_number_manager/src/carriers/knm_inum.erl b/core/kazoo_number_manager/src/carriers/knm_inum.erl index 50895419ee0..47707828fcf 100644 --- a/core/kazoo_number_manager/src/carriers/knm_inum.erl +++ b/core/kazoo_number_manager/src/carriers/knm_inum.erl @@ -43,9 +43,9 @@ is_local() -> 'true'. %% @doc Check with carrier if these numbers are registered with it. %% @end %%------------------------------------------------------------------------------ --spec check_numbers(kz_term:ne_binaries()) -> {ok, kz_json:object()} | - {error, any()}. -check_numbers(_Numbers) -> {error, not_implemented}. +-spec check_numbers(kz_term:ne_binaries()) -> {'ok', kz_json:object()} | + {'error', 'not_implemented'}. +check_numbers(_Numbers) -> {'error', 'not_implemented'}. %%------------------------------------------------------------------------------ %% @doc Query the local system for a quantity of available numbers diff --git a/core/kazoo_number_manager/src/carriers/knm_inventory.erl b/core/kazoo_number_manager/src/carriers/knm_inventory.erl index 6020ec9a388..5f19b74d52a 100644 --- a/core/kazoo_number_manager/src/carriers/knm_inventory.erl +++ b/core/kazoo_number_manager/src/carriers/knm_inventory.erl @@ -44,9 +44,9 @@ is_local() -> 'false'. %% @doc Check with carrier if these numbers are registered with it. %% @end %%------------------------------------------------------------------------------ --spec check_numbers(kz_term:ne_binaries()) -> {ok, kz_json:object()} | - {error, any()}. -check_numbers(_Numbers) -> {error, not_implemented}. +-spec check_numbers(kz_term:ne_binaries()) -> {'ok', kz_json:object()} | + {'error', 'not_implemented'}. +check_numbers(_Numbers) -> {'error', 'not_implemented'}. %%------------------------------------------------------------------------------ %% @doc Query the local system for a quantity of available numbers diff --git a/core/kazoo_number_manager/src/carriers/knm_it_vocal.erl b/core/kazoo_number_manager/src/carriers/knm_it_vocal.erl new file mode 100644 index 00000000000..609812a008a --- /dev/null +++ b/core/kazoo_number_manager/src/carriers/knm_it_vocal.erl @@ -0,0 +1,92 @@ +%%%----------------------------------------------------------------------------- +%%% @copyright (C) 2015-2020, 2600Hz +%%% @doc Handle client requests for phone number +%%% @end +%%%----------------------------------------------------------------------------- +-module(knm_it_vocal). +-behaviour(knm_gen_carrier). + +-export([info/0]). +-export([is_local/0]). +-export([find_numbers/3]). +-export([acquire_number/1]). +-export([disconnect_number/1]). +-export([is_number_billable/1]). +-export([should_lookup_cnam/0]). +-export([check_numbers/1]). + +-include("knm.hrl"). + +-define(KNM_CARRIER_NAME, "it_vocal"). +-define(KNM_CARRIER_CONFIG_CAT, <<(?KNM_CONFIG_CAT)/binary, ".", ?KNM_CARRIER_NAME>>). + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec info() -> map(). +info() -> + #{?CARRIER_INFO_MAX_PREFIX => 3 + }. + +%%------------------------------------------------------------------------------ +%% @doc Is this carrier handling numbers local to the system? +%% +%%
A non-local (foreign) carrier module makes HTTP requests.
+%% @end +%%------------------------------------------------------------------------------ +-spec is_local() -> boolean(). +is_local() -> 'false'. + +%%------------------------------------------------------------------------------ +%% @doc Check with carrier if these numbers are registered with it. +%% @end +%%------------------------------------------------------------------------------ +-spec check_numbers(kz_term:ne_binaries()) -> {'ok', kz_json:object()} | + {'error', 'not_implemented'}. +check_numbers(_Numbers) -> {'error', 'not_implemented'}. + +%%------------------------------------------------------------------------------ +%% @doc Query carrier for available numbers. +%% @end +%%------------------------------------------------------------------------------ +-spec find_numbers(kz_term:ne_binary(), pos_integer(), knm_carriers:options()) -> + {'ok', knm_number:knm_numbers()}. +find_numbers(_Prefix, _Quantity, _Options) -> + {'ok', []}. + +%%------------------------------------------------------------------------------ +%% @doc Acquire a given number from carrier. +%% @end +%%------------------------------------------------------------------------------ +-spec acquire_number(knm_number:knm_number()) -> + no_return(). +acquire_number(Number) -> + knm_errors:by_carrier(?MODULE, 'not_implemented', Number). + +%%------------------------------------------------------------------------------ +%% @doc Return number back to carrier. +%% @end +%%------------------------------------------------------------------------------ +-spec disconnect_number(knm_number:knm_number()) -> + no_return(). +disconnect_number(Number) -> + knm_errors:by_carrier(?MODULE, 'not_implemented', Number). + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec is_number_billable(knm_phone_number:knm_phone_number()) -> boolean(). +is_number_billable(_Number) -> 'true'. + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec should_lookup_cnam() -> boolean(). +should_lookup_cnam() -> 'true'. + +%%%============================================================================= +%%% Internal functions +%%%============================================================================= diff --git a/core/kazoo_number_manager/src/carriers/knm_level3.erl b/core/kazoo_number_manager/src/carriers/knm_level3.erl new file mode 100644 index 00000000000..d5df91b78ac --- /dev/null +++ b/core/kazoo_number_manager/src/carriers/knm_level3.erl @@ -0,0 +1,92 @@ +%%%----------------------------------------------------------------------------- +%%% @copyright (C) 2015-2020, 2600Hz +%%% @doc Handle client requests for phone number +%%% @end +%%%----------------------------------------------------------------------------- +-module(knm_level3). +-behaviour(knm_gen_carrier). + +-export([info/0]). +-export([is_local/0]). +-export([find_numbers/3]). +-export([acquire_number/1]). +-export([disconnect_number/1]). +-export([is_number_billable/1]). +-export([should_lookup_cnam/0]). +-export([check_numbers/1]). + +-include("knm.hrl"). + +-define(KNM_CARRIER_NAME, "level3"). +-define(KNM_CARRIER_CONFIG_CAT, <<(?KNM_CONFIG_CAT)/binary, ".", ?KNM_CARRIER_NAME>>). + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec info() -> map(). +info() -> + #{?CARRIER_INFO_MAX_PREFIX => 3 + }. + +%%------------------------------------------------------------------------------ +%% @doc Is this carrier handling numbers local to the system? +%% +%%
A non-local (foreign) carrier module makes HTTP requests.
+%% @end +%%------------------------------------------------------------------------------ +-spec is_local() -> boolean(). +is_local() -> 'false'. + +%%------------------------------------------------------------------------------ +%% @doc Check with carrier if these numbers are registered with it. +%% @end +%%------------------------------------------------------------------------------ +-spec check_numbers(kz_term:ne_binaries()) -> {'ok', kz_json:object()} | + {'error', 'not_implemented'}. +check_numbers(_Numbers) -> {'error', 'not_implemented'}. + +%%------------------------------------------------------------------------------ +%% @doc Query carrier for available numbers. +%% @end +%%------------------------------------------------------------------------------ +-spec find_numbers(kz_term:ne_binary(), pos_integer(), knm_carriers:options()) -> + {'ok', knm_number:knm_numbers()}. +find_numbers(_Prefix, _Quantity, _Options) -> + {'ok', []}. + +%%------------------------------------------------------------------------------ +%% @doc Acquire a given number from carrier. +%% @end +%%------------------------------------------------------------------------------ +-spec acquire_number(knm_number:knm_number()) -> + no_return(). +acquire_number(Number) -> + knm_errors:by_carrier(?MODULE, 'not_implemented', Number). + +%%------------------------------------------------------------------------------ +%% @doc Return number back to carrier. +%% @end +%%------------------------------------------------------------------------------ +-spec disconnect_number(knm_number:knm_number()) -> + no_return(). +disconnect_number(Number) -> + knm_errors:by_carrier(?MODULE, 'not_implemented', Number). + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec is_number_billable(knm_phone_number:knm_phone_number()) -> boolean(). +is_number_billable(_Number) -> 'true'. + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec should_lookup_cnam() -> boolean(). +should_lookup_cnam() -> 'true'. + +%%%============================================================================= +%%% Internal functions +%%%============================================================================= diff --git a/core/kazoo_number_manager/src/carriers/knm_local.erl b/core/kazoo_number_manager/src/carriers/knm_local.erl index 6fbfec4961b..6e99fffa888 100644 --- a/core/kazoo_number_manager/src/carriers/knm_local.erl +++ b/core/kazoo_number_manager/src/carriers/knm_local.erl @@ -44,9 +44,9 @@ is_local() -> 'true'. %% @doc Check with carrier if these numbers are registered with it. %% @end %%------------------------------------------------------------------------------ --spec check_numbers(kz_term:ne_binaries()) -> {ok, kz_json:object()} | - {error, any()}. -check_numbers(_Numbers) -> {error, not_implemented}. +-spec check_numbers(kz_term:ne_binaries()) -> {'ok', kz_json:object()} | + {'error', 'not_implemented'}. +check_numbers(_Numbers) -> {'error', 'not_implemented'}. %%------------------------------------------------------------------------------ %% @doc Query the local system for a quantity of available numbers diff --git a/core/kazoo_number_manager/src/carriers/knm_managed.erl b/core/kazoo_number_manager/src/carriers/knm_managed.erl index 7490a706729..e275cb266c7 100644 --- a/core/kazoo_number_manager/src/carriers/knm_managed.erl +++ b/core/kazoo_number_manager/src/carriers/knm_managed.erl @@ -44,9 +44,9 @@ is_local() -> 'true'. %% @doc Check with carrier if these numbers are registered with it. %% @end %%------------------------------------------------------------------------------ --spec check_numbers(kz_term:ne_binaries()) -> {ok, kz_json:object()} | - {error, any()}. -check_numbers(_Numbers) -> {error, not_implemented}. +-spec check_numbers(kz_term:ne_binaries()) -> {'ok', kz_json:object()} | + {'error', 'not_implemented'}. +check_numbers(_Numbers) -> {'error', 'not_implemented'}. %%------------------------------------------------------------------------------ %% @doc Query the local system for a quantity of available numbers diff --git a/core/kazoo_number_manager/src/carriers/knm_mdn.erl b/core/kazoo_number_manager/src/carriers/knm_mdn.erl index bcbdf8962be..721e9dbe4f4 100644 --- a/core/kazoo_number_manager/src/carriers/knm_mdn.erl +++ b/core/kazoo_number_manager/src/carriers/knm_mdn.erl @@ -40,9 +40,9 @@ is_local() -> 'false'. %% @doc Check with carrier if these numbers are registered with it. %% @end %%------------------------------------------------------------------------------ --spec check_numbers(kz_term:ne_binaries()) -> {ok, kz_json:object()} | - {error, any()}. -check_numbers(_Numbers) -> {error, not_implemented}. +-spec check_numbers(kz_term:ne_binaries()) -> {'ok', kz_json:object()} | + {'error', 'not_implemented'}. +check_numbers(_Numbers) -> {'error', 'not_implemented'}. %%------------------------------------------------------------------------------ %% @doc Query the local system for a quantity of available numbers diff --git a/core/kazoo_number_manager/src/carriers/knm_o1.erl b/core/kazoo_number_manager/src/carriers/knm_o1.erl new file mode 100644 index 00000000000..7020946f871 --- /dev/null +++ b/core/kazoo_number_manager/src/carriers/knm_o1.erl @@ -0,0 +1,92 @@ +%%%----------------------------------------------------------------------------- +%%% @copyright (C) 2015-2020, 2600Hz +%%% @doc Handle client requests for phone number +%%% @end +%%%----------------------------------------------------------------------------- +-module(knm_o1). +-behaviour(knm_gen_carrier). + +-export([info/0]). +-export([is_local/0]). +-export([find_numbers/3]). +-export([acquire_number/1]). +-export([disconnect_number/1]). +-export([is_number_billable/1]). +-export([should_lookup_cnam/0]). +-export([check_numbers/1]). + +-include("knm.hrl"). + +-define(KNM_CARRIER_NAME, "o1"). +-define(KNM_CARRIER_CONFIG_CAT, <<(?KNM_CONFIG_CAT)/binary, ".", ?KNM_CARRIER_NAME>>). + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec info() -> map(). +info() -> + #{?CARRIER_INFO_MAX_PREFIX => 3 + }. + +%%------------------------------------------------------------------------------ +%% @doc Is this carrier handling numbers local to the system? +%% +%%
A non-local (foreign) carrier module makes HTTP requests.
+%% @end +%%------------------------------------------------------------------------------ +-spec is_local() -> boolean(). +is_local() -> 'false'. + +%%------------------------------------------------------------------------------ +%% @doc Check with carrier if these numbers are registered with it. +%% @end +%%------------------------------------------------------------------------------ +-spec check_numbers(kz_term:ne_binaries()) -> {'ok', kz_json:object()} | + {'error', 'not_implemented'}. +check_numbers(_Numbers) -> {'error', 'not_implemented'}. + +%%------------------------------------------------------------------------------ +%% @doc Query carrier for available numbers. +%% @end +%%------------------------------------------------------------------------------ +-spec find_numbers(kz_term:ne_binary(), pos_integer(), knm_carriers:options()) -> + {'ok', knm_number:knm_numbers()}. +find_numbers(_Prefix, _Quantity, _Options) -> + {'ok', []}. + +%%------------------------------------------------------------------------------ +%% @doc Acquire a given number from carrier. +%% @end +%%------------------------------------------------------------------------------ +-spec acquire_number(knm_number:knm_number()) -> + no_return(). +acquire_number(Number) -> + knm_errors:by_carrier(?MODULE, 'not_implemented', Number). + +%%------------------------------------------------------------------------------ +%% @doc Return number back to carrier. +%% @end +%%------------------------------------------------------------------------------ +-spec disconnect_number(knm_number:knm_number()) -> + no_return(). +disconnect_number(Number) -> + knm_errors:by_carrier(?MODULE, 'not_implemented', Number). + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec is_number_billable(knm_phone_number:knm_phone_number()) -> boolean(). +is_number_billable(_Number) -> 'true'. + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec should_lookup_cnam() -> boolean(). +should_lookup_cnam() -> 'true'. + +%%%============================================================================= +%%% Internal functions +%%%============================================================================= diff --git a/core/kazoo_number_manager/src/carriers/knm_peerless.erl b/core/kazoo_number_manager/src/carriers/knm_peerless.erl new file mode 100644 index 00000000000..48aeacfe1f9 --- /dev/null +++ b/core/kazoo_number_manager/src/carriers/knm_peerless.erl @@ -0,0 +1,92 @@ +%%%----------------------------------------------------------------------------- +%%% @copyright (C) 2015-2020, 2600Hz +%%% @doc Handle client requests for phone number +%%% @end +%%%----------------------------------------------------------------------------- +-module(knm_peerless). +-behaviour(knm_gen_carrier). + +-export([info/0]). +-export([is_local/0]). +-export([find_numbers/3]). +-export([acquire_number/1]). +-export([disconnect_number/1]). +-export([is_number_billable/1]). +-export([should_lookup_cnam/0]). +-export([check_numbers/1]). + +-include("knm.hrl"). + +-define(KNM_CARRIER_NAME, "peerless"). +-define(KNM_CARRIER_CONFIG_CAT, <<(?KNM_CONFIG_CAT)/binary, ".", ?KNM_CARRIER_NAME>>). + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec info() -> map(). +info() -> + #{?CARRIER_INFO_MAX_PREFIX => 3 + }. + +%%------------------------------------------------------------------------------ +%% @doc Is this carrier handling numbers local to the system? +%% +%%
A non-local (foreign) carrier module makes HTTP requests.
+%% @end +%%------------------------------------------------------------------------------ +-spec is_local() -> boolean(). +is_local() -> 'false'. + +%%------------------------------------------------------------------------------ +%% @doc Check with carrier if these numbers are registered with it. +%% @end +%%------------------------------------------------------------------------------ +-spec check_numbers(kz_term:ne_binaries()) -> {'ok', kz_json:object()} | + {'error', 'not_implemented'}. +check_numbers(_Numbers) -> {'error', 'not_implemented'}. + +%%------------------------------------------------------------------------------ +%% @doc Query carrier for available numbers. +%% @end +%%------------------------------------------------------------------------------ +-spec find_numbers(kz_term:ne_binary(), pos_integer(), knm_carriers:options()) -> + {'ok', knm_number:knm_numbers()}. +find_numbers(_Prefix, _Quantity, _Options) -> + {'ok', []}. + +%%------------------------------------------------------------------------------ +%% @doc Acquire a given number from carrier. +%% @end +%%------------------------------------------------------------------------------ +-spec acquire_number(knm_number:knm_number()) -> + no_return(). +acquire_number(Number) -> + knm_errors:by_carrier(?MODULE, 'not_implemented', Number). + +%%------------------------------------------------------------------------------ +%% @doc Return number back to carrier. +%% @end +%%------------------------------------------------------------------------------ +-spec disconnect_number(knm_number:knm_number()) -> + no_return(). +disconnect_number(Number) -> + knm_errors:by_carrier(?MODULE, 'not_implemented', Number). + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec is_number_billable(knm_phone_number:knm_phone_number()) -> boolean(). +is_number_billable(_Number) -> 'true'. + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec should_lookup_cnam() -> boolean(). +should_lookup_cnam() -> 'true'. + +%%%============================================================================= +%%% Internal functions +%%%============================================================================= diff --git a/core/kazoo_number_manager/src/carriers/knm_reserved.erl b/core/kazoo_number_manager/src/carriers/knm_reserved.erl index e47cfaf7168..fd4b03d882e 100644 --- a/core/kazoo_number_manager/src/carriers/knm_reserved.erl +++ b/core/kazoo_number_manager/src/carriers/knm_reserved.erl @@ -40,9 +40,9 @@ is_local() -> 'true'. %% @doc Check with carrier if these numbers are registered with it. %% @end %%------------------------------------------------------------------------------ --spec check_numbers(kz_term:ne_binaries()) -> {ok, kz_json:object()} | - {error, any()}. -check_numbers(_Numbers) -> {error, not_implemented}. +-spec check_numbers(kz_term:ne_binaries()) -> {'ok', kz_json:object()} | + {'error', 'not_implemented'}. +check_numbers(_Numbers) -> {'error', 'not_implemented'}. %%------------------------------------------------------------------------------ %% @doc Query the local system for a quantity of reserved numbers diff --git a/core/kazoo_number_manager/src/carriers/knm_reserved_reseller.erl b/core/kazoo_number_manager/src/carriers/knm_reserved_reseller.erl index 305f54adf1e..1ee9cab7b64 100644 --- a/core/kazoo_number_manager/src/carriers/knm_reserved_reseller.erl +++ b/core/kazoo_number_manager/src/carriers/knm_reserved_reseller.erl @@ -40,9 +40,9 @@ is_local() -> 'true'. %% @doc Check with carrier if these numbers are registered with it. %% @end %%------------------------------------------------------------------------------ --spec check_numbers(kz_term:ne_binaries()) -> {ok, kz_json:object()} | - {error, any()}. -check_numbers(_Numbers) -> {error, not_implemented}. +-spec check_numbers(kz_term:ne_binaries()) -> {'ok', kz_json:object()} | + {'error', 'not_implemented'}. +check_numbers(_Numbers) -> {'error', 'not_implemented'}. %%------------------------------------------------------------------------------ %% @doc Query the local system for a quantity of reserved numbers diff --git a/core/kazoo_number_manager/src/carriers/knm_simwood.erl b/core/kazoo_number_manager/src/carriers/knm_simwood.erl index 4d8c7062f27..d581f030451 100644 --- a/core/kazoo_number_manager/src/carriers/knm_simwood.erl +++ b/core/kazoo_number_manager/src/carriers/knm_simwood.erl @@ -59,9 +59,9 @@ is_local() -> 'false'. %% @doc Check with carrier if these numbers are registered with it. %% @end %%------------------------------------------------------------------------------ --spec check_numbers(kz_term:ne_binaries()) -> {ok, kz_json:object()} | - {error, any()}. -check_numbers(_Numbers) -> {error, not_implemented}. +-spec check_numbers(kz_term:ne_binaries()) -> {'ok', kz_json:object()} | + {'error', 'not_implemented'}. +check_numbers(_Numbers) -> {'error', 'not_implemented'}. %%------------------------------------------------------------------------------ %% @doc Query Simwood for available numbers. diff --git a/core/kazoo_number_manager/src/carriers/knm_thinq.erl b/core/kazoo_number_manager/src/carriers/knm_thinq.erl new file mode 100644 index 00000000000..d7886a52d50 --- /dev/null +++ b/core/kazoo_number_manager/src/carriers/knm_thinq.erl @@ -0,0 +1,92 @@ +%%%----------------------------------------------------------------------------- +%%% @copyright (C) 2015-2020, 2600Hz +%%% @doc Handle client requests for phone number +%%% @end +%%%----------------------------------------------------------------------------- +-module(knm_thinq). +-behaviour(knm_gen_carrier). + +-export([info/0]). +-export([is_local/0]). +-export([find_numbers/3]). +-export([acquire_number/1]). +-export([disconnect_number/1]). +-export([is_number_billable/1]). +-export([should_lookup_cnam/0]). +-export([check_numbers/1]). + +-include("knm.hrl"). + +-define(KNM_CARRIER_NAME, "thinq"). +-define(KNM_CARRIER_CONFIG_CAT, <<(?KNM_CONFIG_CAT)/binary, ".", ?KNM_CARRIER_NAME>>). + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec info() -> map(). +info() -> + #{?CARRIER_INFO_MAX_PREFIX => 3 + }. + +%%------------------------------------------------------------------------------ +%% @doc Is this carrier handling numbers local to the system? +%% +%%
A non-local (foreign) carrier module makes HTTP requests.
+%% @end +%%------------------------------------------------------------------------------ +-spec is_local() -> boolean(). +is_local() -> 'false'. + +%%------------------------------------------------------------------------------ +%% @doc Check with carrier if these numbers are registered with it. +%% @end +%%------------------------------------------------------------------------------ +-spec check_numbers(kz_term:ne_binaries()) -> {'ok', kz_json:object()} | + {'error', 'not_implemented'}. +check_numbers(_Numbers) -> {'error', 'not_implemented'}. + +%%------------------------------------------------------------------------------ +%% @doc Query carrier for available numbers. +%% @end +%%------------------------------------------------------------------------------ +-spec find_numbers(kz_term:ne_binary(), pos_integer(), knm_carriers:options()) -> + {'ok', knm_number:knm_numbers()}. +find_numbers(_Prefix, _Quantity, _Options) -> + {'ok', []}. + +%%------------------------------------------------------------------------------ +%% @doc Acquire a given number from carrier. +%% @end +%%------------------------------------------------------------------------------ +-spec acquire_number(knm_number:knm_number()) -> + no_return(). +acquire_number(Number) -> + knm_errors:by_carrier(?MODULE, 'not_implemented', Number). + +%%------------------------------------------------------------------------------ +%% @doc Return number back to carrier. +%% @end +%%------------------------------------------------------------------------------ +-spec disconnect_number(knm_number:knm_number()) -> + no_return(). +disconnect_number(Number) -> + knm_errors:by_carrier(?MODULE, 'not_implemented', Number). + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec is_number_billable(knm_phone_number:knm_phone_number()) -> boolean(). +is_number_billable(_Number) -> 'true'. + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec should_lookup_cnam() -> boolean(). +should_lookup_cnam() -> 'true'. + +%%%============================================================================= +%%% Internal functions +%%%============================================================================= diff --git a/core/kazoo_number_manager/src/carriers/knm_verizon.erl b/core/kazoo_number_manager/src/carriers/knm_verizon.erl new file mode 100644 index 00000000000..9045a0cf08b --- /dev/null +++ b/core/kazoo_number_manager/src/carriers/knm_verizon.erl @@ -0,0 +1,92 @@ +%%%----------------------------------------------------------------------------- +%%% @copyright (C) 2015-2020, 2600Hz +%%% @doc Handle client requests for phone number +%%% @end +%%%----------------------------------------------------------------------------- +-module(knm_verizon). +-behaviour(knm_gen_carrier). + +-export([info/0]). +-export([is_local/0]). +-export([find_numbers/3]). +-export([acquire_number/1]). +-export([disconnect_number/1]). +-export([is_number_billable/1]). +-export([should_lookup_cnam/0]). +-export([check_numbers/1]). + +-include("knm.hrl"). + +-define(KNM_CARRIER_NAME, "verizon"). +-define(KNM_CARRIER_CONFIG_CAT, <<(?KNM_CONFIG_CAT)/binary, ".", ?KNM_CARRIER_NAME>>). + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec info() -> map(). +info() -> + #{?CARRIER_INFO_MAX_PREFIX => 3 + }. + +%%------------------------------------------------------------------------------ +%% @doc Is this carrier handling numbers local to the system? +%% +%%
A non-local (foreign) carrier module makes HTTP requests.
+%% @end +%%------------------------------------------------------------------------------ +-spec is_local() -> boolean(). +is_local() -> 'false'. + +%%------------------------------------------------------------------------------ +%% @doc Check with carrier if these numbers are registered with it. +%% @end +%%------------------------------------------------------------------------------ +-spec check_numbers(kz_term:ne_binaries()) -> {'ok', kz_json:object()} | + {'error', 'not_implemented'}. +check_numbers(_Numbers) -> {'error', 'not_implemented'}. + +%%------------------------------------------------------------------------------ +%% @doc Query carrier for available numbers. +%% @end +%%------------------------------------------------------------------------------ +-spec find_numbers(kz_term:ne_binary(), pos_integer(), knm_carriers:options()) -> + {'ok', knm_number:knm_numbers()}. +find_numbers(_Prefix, _Quantity, _Options) -> + {'ok', []}. + +%%------------------------------------------------------------------------------ +%% @doc Acquire a given number from carrier. +%% @end +%%------------------------------------------------------------------------------ +-spec acquire_number(knm_number:knm_number()) -> + no_return(). +acquire_number(Number) -> + knm_errors:by_carrier(?MODULE, 'not_implemented', Number). + +%%------------------------------------------------------------------------------ +%% @doc Return number back to carrier. +%% @end +%%------------------------------------------------------------------------------ +-spec disconnect_number(knm_number:knm_number()) -> + no_return(). +disconnect_number(Number) -> + knm_errors:by_carrier(?MODULE, 'not_implemented', Number). + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec is_number_billable(knm_phone_number:knm_phone_number()) -> boolean(). +is_number_billable(_Number) -> 'true'. + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec should_lookup_cnam() -> boolean(). +should_lookup_cnam() -> 'true'. + +%%%============================================================================= +%%% Internal functions +%%%============================================================================= diff --git a/core/kazoo_number_manager/src/carriers/knm_vitelity.erl b/core/kazoo_number_manager/src/carriers/knm_vitelity.erl index 1dd3ce79c99..5dc4ad8d4f8 100644 --- a/core/kazoo_number_manager/src/carriers/knm_vitelity.erl +++ b/core/kazoo_number_manager/src/carriers/knm_vitelity.erl @@ -43,9 +43,9 @@ is_local() -> 'false'. %% @doc Check with carrier if these numbers are registered with it. %% @end %%------------------------------------------------------------------------------ --spec check_numbers(kz_term:ne_binaries()) -> {ok, kz_json:object()} | - {error, any()}. -check_numbers(_Numbers) -> {error, not_implemented}. +-spec check_numbers(kz_term:ne_binaries()) -> {'ok', kz_json:object()} | + {'error', 'not_implemented'}. +check_numbers(_Numbers) -> {'error', 'not_implemented'}. %%------------------------------------------------------------------------------ %% @doc Query the Vitelity system for a quantity of available numbers diff --git a/core/kazoo_number_manager/src/carriers/knm_voip_innovations.erl b/core/kazoo_number_manager/src/carriers/knm_voip_innovations.erl index 8c2b945251c..215c6632acf 100644 --- a/core/kazoo_number_manager/src/carriers/knm_voip_innovations.erl +++ b/core/kazoo_number_manager/src/carriers/knm_voip_innovations.erl @@ -100,9 +100,9 @@ is_number_billable(_Number) -> 'true'. %% @doc Check with carrier if these numbers are registered with it. %% @end %%------------------------------------------------------------------------------ --spec check_numbers(kz_term:ne_binaries()) -> {ok, kz_json:object()} | - {error, any()}. -check_numbers(_Numbers) -> {error, not_implemented}. +-spec check_numbers(kz_term:ne_binaries()) -> {'ok', kz_json:object()} | + {'error', 'not_implemented'}. +check_numbers(_Numbers) -> {'error', 'not_implemented'}. %%------------------------------------------------------------------------------ diff --git a/core/kazoo_number_manager/src/carriers/knm_voxbone.erl b/core/kazoo_number_manager/src/carriers/knm_voxbone.erl new file mode 100644 index 00000000000..2b4e4f41813 --- /dev/null +++ b/core/kazoo_number_manager/src/carriers/knm_voxbone.erl @@ -0,0 +1,92 @@ +%%%----------------------------------------------------------------------------- +%%% @copyright (C) 2015-2020, 2600Hz +%%% @doc Handle client requests for phone number +%%% @end +%%%----------------------------------------------------------------------------- +-module(knm_voxbone). +-behaviour(knm_gen_carrier). + +-export([info/0]). +-export([is_local/0]). +-export([find_numbers/3]). +-export([acquire_number/1]). +-export([disconnect_number/1]). +-export([is_number_billable/1]). +-export([should_lookup_cnam/0]). +-export([check_numbers/1]). + +-include("knm.hrl"). + +-define(KNM_CARRIER_NAME, "voxbone"). +-define(KNM_CARRIER_CONFIG_CAT, <<(?KNM_CONFIG_CAT)/binary, ".", ?KNM_CARRIER_NAME>>). + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec info() -> map(). +info() -> + #{?CARRIER_INFO_MAX_PREFIX => 3 + }. + +%%------------------------------------------------------------------------------ +%% @doc Is this carrier handling numbers local to the system? +%% +%%
A non-local (foreign) carrier module makes HTTP requests.
+%% @end +%%------------------------------------------------------------------------------ +-spec is_local() -> boolean(). +is_local() -> 'false'. + +%%------------------------------------------------------------------------------ +%% @doc Check with carrier if these numbers are registered with it. +%% @end +%%------------------------------------------------------------------------------ +-spec check_numbers(kz_term:ne_binaries()) -> {'ok', kz_json:object()} | + {'error', 'not_implemented'}. +check_numbers(_Numbers) -> {'error', 'not_implemented'}. + +%%------------------------------------------------------------------------------ +%% @doc Query carrier for available numbers. +%% @end +%%------------------------------------------------------------------------------ +-spec find_numbers(kz_term:ne_binary(), pos_integer(), knm_carriers:options()) -> + {'ok', knm_number:knm_numbers()}. +find_numbers(_Prefix, _Quantity, _Options) -> + {'ok', []}. + +%%------------------------------------------------------------------------------ +%% @doc Acquire a given number from carrier. +%% @end +%%------------------------------------------------------------------------------ +-spec acquire_number(knm_number:knm_number()) -> + no_return(). +acquire_number(Number) -> + knm_errors:by_carrier(?MODULE, 'not_implemented', Number). + +%%------------------------------------------------------------------------------ +%% @doc Return number back to carrier. +%% @end +%%------------------------------------------------------------------------------ +-spec disconnect_number(knm_number:knm_number()) -> + no_return(). +disconnect_number(Number) -> + knm_errors:by_carrier(?MODULE, 'not_implemented', Number). + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec is_number_billable(knm_phone_number:knm_phone_number()) -> boolean(). +is_number_billable(_Number) -> 'true'. + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec should_lookup_cnam() -> boolean(). +should_lookup_cnam() -> 'true'. + +%%%============================================================================= +%%% Internal functions +%%%============================================================================= diff --git a/core/kazoo_number_manager/src/carriers/knm_windstream.erl b/core/kazoo_number_manager/src/carriers/knm_windstream.erl new file mode 100644 index 00000000000..b27949c5864 --- /dev/null +++ b/core/kazoo_number_manager/src/carriers/knm_windstream.erl @@ -0,0 +1,92 @@ +%%%----------------------------------------------------------------------------- +%%% @copyright (C) 2015-2020, 2600Hz +%%% @doc Handle client requests for phone number +%%% @end +%%%----------------------------------------------------------------------------- +-module(knm_windstream). +-behaviour(knm_gen_carrier). + +-export([info/0]). +-export([is_local/0]). +-export([find_numbers/3]). +-export([acquire_number/1]). +-export([disconnect_number/1]). +-export([is_number_billable/1]). +-export([should_lookup_cnam/0]). +-export([check_numbers/1]). + +-include("knm.hrl"). + +-define(KNM_CARRIER_NAME, "windstream"). +-define(KNM_CARRIER_CONFIG_CAT, <<(?KNM_CONFIG_CAT)/binary, ".", ?KNM_CARRIER_NAME>>). + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec info() -> map(). +info() -> + #{?CARRIER_INFO_MAX_PREFIX => 3 + }. + +%%------------------------------------------------------------------------------ +%% @doc Is this carrier handling numbers local to the system? +%% +%%
A non-local (foreign) carrier module makes HTTP requests.
+%% @end +%%------------------------------------------------------------------------------ +-spec is_local() -> boolean(). +is_local() -> 'false'. + +%%------------------------------------------------------------------------------ +%% @doc Check with carrier if these numbers are registered with it. +%% @end +%%------------------------------------------------------------------------------ +-spec check_numbers(kz_term:ne_binaries()) -> {'ok', kz_json:object()} | + {'error', 'not_implemented'}. +check_numbers(_Numbers) -> {'error', 'not_implemented'}. + +%%------------------------------------------------------------------------------ +%% @doc Query carrier for available numbers. +%% @end +%%------------------------------------------------------------------------------ +-spec find_numbers(kz_term:ne_binary(), pos_integer(), knm_carriers:options()) -> + {'ok', knm_number:knm_numbers()}. +find_numbers(_Prefix, _Quantity, _Options) -> + {'ok', []}. + +%%------------------------------------------------------------------------------ +%% @doc Acquire a given number from carrier. +%% @end +%%------------------------------------------------------------------------------ +-spec acquire_number(knm_number:knm_number()) -> + no_return(). +acquire_number(Number) -> + knm_errors:by_carrier(?MODULE, 'not_implemented', Number). + +%%------------------------------------------------------------------------------ +%% @doc Return number back to carrier. +%% @end +%%------------------------------------------------------------------------------ +-spec disconnect_number(knm_number:knm_number()) -> + no_return(). +disconnect_number(Number) -> + knm_errors:by_carrier(?MODULE, 'not_implemented', Number). + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec is_number_billable(knm_phone_number:knm_phone_number()) -> boolean(). +is_number_billable(_Number) -> 'true'. + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec should_lookup_cnam() -> boolean(). +should_lookup_cnam() -> 'true'. + +%%%============================================================================= +%%% Internal functions +%%%============================================================================= diff --git a/core/kazoo_number_manager/src/carriers/knm_ziron.erl b/core/kazoo_number_manager/src/carriers/knm_ziron.erl new file mode 100644 index 00000000000..7a080280e36 --- /dev/null +++ b/core/kazoo_number_manager/src/carriers/knm_ziron.erl @@ -0,0 +1,92 @@ +%%%----------------------------------------------------------------------------- +%%% @copyright (C) 2015-2020, 2600Hz +%%% @doc Handle client requests for phone number +%%% @end +%%%----------------------------------------------------------------------------- +-module(knm_ziron). +-behaviour(knm_gen_carrier). + +-export([info/0]). +-export([is_local/0]). +-export([find_numbers/3]). +-export([acquire_number/1]). +-export([disconnect_number/1]). +-export([is_number_billable/1]). +-export([should_lookup_cnam/0]). +-export([check_numbers/1]). + +-include("knm.hrl"). + +-define(KNM_CARRIER_NAME, "ziron"). +-define(KNM_CARRIER_CONFIG_CAT, <<(?KNM_CONFIG_CAT)/binary, ".", ?KNM_CARRIER_NAME>>). + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec info() -> map(). +info() -> + #{?CARRIER_INFO_MAX_PREFIX => 3 + }. + +%%------------------------------------------------------------------------------ +%% @doc Is this carrier handling numbers local to the system? +%% +%%
A non-local (foreign) carrier module makes HTTP requests.
+%% @end +%%------------------------------------------------------------------------------ +-spec is_local() -> boolean(). +is_local() -> 'false'. + +%%------------------------------------------------------------------------------ +%% @doc Check with carrier if these numbers are registered with it. +%% @end +%%------------------------------------------------------------------------------ +-spec check_numbers(kz_term:ne_binaries()) -> {'ok', kz_json:object()} | + {'error', 'not_implemented'}. +check_numbers(_Numbers) -> {'error', 'not_implemented'}. + +%%------------------------------------------------------------------------------ +%% @doc Query carrier for available numbers. +%% @end +%%------------------------------------------------------------------------------ +-spec find_numbers(kz_term:ne_binary(), pos_integer(), knm_carriers:options()) -> + {'ok', knm_number:knm_numbers()}. +find_numbers(_Prefix, _Quantity, _Options) -> + {'ok', []}. + +%%------------------------------------------------------------------------------ +%% @doc Acquire a given number from carrier. +%% @end +%%------------------------------------------------------------------------------ +-spec acquire_number(knm_number:knm_number()) -> + no_return(). +acquire_number(Number) -> + knm_errors:by_carrier(?MODULE, 'not_implemented', Number). + +%%------------------------------------------------------------------------------ +%% @doc Return number back to carrier. +%% @end +%%------------------------------------------------------------------------------ +-spec disconnect_number(knm_number:knm_number()) -> + no_return(). +disconnect_number(Number) -> + knm_errors:by_carrier(?MODULE, 'not_implemented', Number). + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec is_number_billable(knm_phone_number:knm_phone_number()) -> boolean(). +is_number_billable(_Number) -> 'true'. + +%%------------------------------------------------------------------------------ +%% @doc +%% @end +%%------------------------------------------------------------------------------ +-spec should_lookup_cnam() -> boolean(). +should_lookup_cnam() -> 'true'. + +%%%============================================================================= +%%% Internal functions +%%%============================================================================= diff --git a/core/kazoo_number_manager/src/knm_gen_carrier.erl b/core/kazoo_number_manager/src/knm_gen_carrier.erl index 6bed244d75d..7ade18c4e36 100644 --- a/core/kazoo_number_manager/src/knm_gen_carrier.erl +++ b/core/kazoo_number_manager/src/knm_gen_carrier.erl @@ -15,10 +15,10 @@ {'error', any()}. -callback acquire_number(knm_number:knm_number()) -> - knm_number:knm_number(). + knm_number:knm_number() | no_return(). -callback disconnect_number(knm_number:knm_number()) -> - knm_number:knm_number(). + knm_number:knm_number() | no_return(). -callback should_lookup_cnam() -> boolean(). @@ -45,12 +45,12 @@ -spec configuration(carrier()) -> kz_json:object(). configuration(Carrier) -> - try carrier_callback(Carrier, configuration, []) of - no_callback -> default_config(Carrier); + try carrier_callback(Carrier, 'configuration', []) of + 'no_callback' -> default_config(Carrier); Value -> case kz_json:is_json_object(Value) of - true -> Value; - false -> default_config(Carrier) + 'true' -> Value; + 'false' -> default_config(Carrier) end catch _ -> kz_json:new() @@ -59,7 +59,7 @@ configuration(Carrier) -> default_config(Carrier) -> Category = list_to_binary([?KNM_CONFIG_CAT, ".", carrier_config(Carrier)]), case kapps_config:get_category(Category) of - {ok, JObj} -> + {'ok', JObj} -> Default = kz_json:get_json_value(<<"default">>, JObj, kz_json:new()), kz_json:get_json_value(kz_term:to_binary(node()), JObj, Default); _ -> kz_json:new() diff --git a/core/kazoo_number_manager/src/knm_number.erl b/core/kazoo_number_manager/src/knm_number.erl index 7f3842e23ce..e5a78c2dd03 100644 --- a/core/kazoo_number_manager/src/knm_number.erl +++ b/core/kazoo_number_manager/src/knm_number.erl @@ -110,7 +110,7 @@ is_number(_) -> 'false'. %%
Number parameter has to be normalized.
%% %%
{@link get/1}, {@link get/2} should not throw, -%% instead they should return: `{ok,_} | {error,_} | ...'.
+%% instead they should return: `{'ok',_} | {error,_} | ...'. %% @end %%------------------------------------------------------------------------------ diff --git a/core/kazoo_number_manager/src/knm_number_states.erl b/core/kazoo_number_manager/src/knm_number_states.erl index 004d9becea2..5c29dbdd630 100644 --- a/core/kazoo_number_manager/src/knm_number_states.erl +++ b/core/kazoo_number_manager/src/knm_number_states.erl @@ -190,7 +190,7 @@ authorize(T) -> not_assigning_to_self(T0=#{todo := Ns}) -> F = fun (N, T) -> case knm_number:attempt(fun not_assigning_to_self/1, [N]) of - {ok, NewN} -> knm_numbers:ok(NewN, T); + {'ok', NewN} -> knm_numbers:ok(NewN, T); {error, R} -> knm_numbers:ko(N, R, T) end end, diff --git a/core/kazoo_number_manager/src/knm_search.erl b/core/kazoo_number_manager/src/knm_search.erl index 081b006610e..84e86bf2f3b 100644 --- a/core/kazoo_number_manager/src/knm_search.erl +++ b/core/kazoo_number_manager/src/knm_search.erl @@ -259,7 +259,7 @@ search_carrier(Carrier, Options) -> wait_for_search(0) -> 'ok'; wait_for_search(N) -> receive - {_Carrier, {ok, []}} -> + {_Carrier, {'ok', []}} -> lager:debug("~s found no numbers", [_Carrier]), wait_for_search(N - 1); {_Carrier, {'ok', Numbers}} -> diff --git a/core/kazoo_number_manager/src/knm_telnyx_util.erl b/core/kazoo_number_manager/src/knm_telnyx_util.erl index adb06aab74d..ed14e005228 100644 --- a/core/kazoo_number_manager/src/knm_telnyx_util.erl +++ b/core/kazoo_number_manager/src/knm_telnyx_util.erl @@ -84,7 +84,7 @@ req('put', ["numbers", "%2B1"++_, "e911_settings"], _) -> req('put', ["numbers", "%2B1"++_], Body) -> EnableCNAM = <<"enable_caller_id_name">>, case kz_json:is_true(EnableCNAM, Body) of - false -> rep({ok, 200, [], kz_json:encode(kz_json:from_list([{EnableCNAM, false}]))}); + false -> rep({'ok', 200, [], kz_json:encode(kz_json:from_list([{EnableCNAM, false}]))}); true -> case kz_json:get_ne_binary_value(<<"cnam_listing_details">>, Body) of undefined -> rep_fixture("telnyx_activate_cnam_inbound.json");