The following script works fine with smppsend v.0.1.7. and doesn't work with v.0.1.8–v.0.1.11:
./smppsend-17 \
--submit-sm \
--source-addr test \
--destination-addr 70000000000 \
--source-addr-ton 5 \
--source-addr-npi 0 \
--dest-addr-ton 1 \
--dest-addr-npi 1 \
--data-coding 0 \
--host 0.0.0.0 \
--port 2775 \
--system-id test \
--password test \
--bind-mode trx \
--short-message ab
00:41:13.899 [info] Connecting to 0.0.0.0:2775
00:41:13.993 [info] Connected
00:41:13.993 [info] Binding
00:41:14.082 [error] GenServer #PID<0.70.0> terminating
** (UndefinedFunctionError) undefined function: :ets.take/2
(stdlib) :ets.take(32793, 1)
(smppex) lib/smppex/pdu_storage.ex:67: SMPPEX.PduStorage.handle_call/3
(stdlib) gen_server.erl:607: :gen_server.try_handle_call/4
(stdlib) gen_server.erl:639: :gen_server.handle_msg/5
(stdlib) proc_lib.erl:237: :proc_lib.init_p_do_apply/3
** (exit) exited in: GenServer.call(#PID<0.65.0>, {:call, {:request, %SMPPEX.Pdu{command_id: 9, command_status: 0, mandatory: %{addr_npi: nil, addr_ton: nil, address_range: nil, interface_version: nil, password: "ab52622", system_id: "ab52622", system_type: nil}, optional: %{}, ref: #Reference<0.0.0.101>, sequence_number: 0}}}, 5000)
** (EXIT) an exception was raised:
** (UndefinedFunctionError) undefined function: :ets.take/2
(stdlib) :ets.take(32793, 1)
(smppex) lib/smppex/pdu_storage.ex:67: SMPPEX.PduStorage.handle_call/3
(stdlib) gen_server.erl:607: :gen_server.try_handle_call/4
(stdlib) gen_server.erl:639: :gen_server.handle_msg/5
(stdlib) proc_lib.erl:237: :proc_lib.init_p_do_apply/3
(elixir) lib/gen_server.ex:544: GenServer.call/3
(smppex) lib/smppex/esme/sync.ex:49: SMPPEX.ESME.Sync.request/3
(smppsend) lib/smppsend/esme_helpers.ex:23: SMPPSend.ESMEHelpers.bind/3
(smppsend) lib/smppsend.ex:174: SMPPSend.bind/1
(smppsend) lib/smppsend.ex:252: SMPPSend.chain/2
(smppsend) lib/smppsend.ex:83: SMPPSend.main/1
(elixir) lib/kernel/cli.ex:76: anonymous fn/3 in Kernel.CLI.exec_fun/2
As far as I can tell this only affects OTP 17. All newer versions run just fine for me.