%%%----------------------------------------------------------------------------- %%% @copyright (C) 2016-2019, 2600Hz %%% @doc Handle tower-of-power MDN phone numbers. %%% @author Pierre Fenoll %%% @end %%%----------------------------------------------------------------------------- -module(knm_mdn). -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"). %%------------------------------------------------------------------------------ %% @doc %% @end %%------------------------------------------------------------------------------ -spec info() -> map(). info() -> #{?CARRIER_INFO_MAX_PREFIX => 0 }. %%------------------------------------------------------------------------------ %% @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, any()}. check_numbers(_Numbers) -> {error, not_implemented}. %%------------------------------------------------------------------------------ %% @doc Query the local system for a quantity of available numbers %% in a rate center %% @end %%------------------------------------------------------------------------------ -spec find_numbers(kz_term:ne_binary(), pos_integer(), knm_carriers:options()) -> {'ok', knm_number:knm_numbers()} | {'error', any()}. find_numbers(_Prefix, _Quantity, _Options) -> {'error', 'not_available'}. %%------------------------------------------------------------------------------ %% @doc %% @end %%------------------------------------------------------------------------------ -spec is_number_billable(knm_phone_number:knm_phone_number()) -> boolean(). is_number_billable(_Number) -> 'false'. %%------------------------------------------------------------------------------ %% @doc Acquire a given number from the carrier %% @end %%------------------------------------------------------------------------------ -spec acquire_number(knm_number:knm_number()) -> knm_number:knm_number(). acquire_number(Number) -> Number. %%------------------------------------------------------------------------------ %% @doc Release a number from the routing table %% @end %%------------------------------------------------------------------------------ -spec disconnect_number(knm_number:knm_number()) -> knm_number:knm_number(). disconnect_number(Number) -> Number. %%------------------------------------------------------------------------------ %% @doc %% @end %%------------------------------------------------------------------------------ -spec should_lookup_cnam() -> boolean(). should_lookup_cnam() -> 'true'.