Packages
smppex
0.2.1
3.3.0
3.2.4
3.2.3
3.2.2
3.2.1
3.2.0
retired
3.1.0
retired
3.0.6
3.0.5
3.0.4
3.0.3
3.0.2
3.0.1
3.0.0
2.4.0
2.3.3
2.3.2
2.3.1
2.3.0
2.2.9
2.2.8
2.2.7
2.2.6
2.2.5
2.2.4
2.2.3
2.2.2
2.2.1
2.2.0
2.1.0
2.0.1
2.0.0
1.0.1
0.3.2
0.3.1
0.3.0
0.2.1
0.2.0
0.1.12
0.1.11
0.1.10
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
0.0.5
0.0.4
0.0.3
0.0.2
0.0.1
SMPP 3.4 protocol and framework implemented in Elixir
Current section
Files
Jump to
Current section
Files
lib/smppex/mc/smpp_handler.ex
defmodule SMPPEX.MC.SMPPHandler do
@moduledoc false
alias SMPPEX.MC.SMPPHandler
defstruct [
:mc_conn
]
@type t :: %SMPPHandler{}
@spec new(pid) :: t
def new(mc_conn), do: %__MODULE__{mc_conn: mc_conn}
end
defimpl SMPPEX.SMPPHandler, for: SMPPEX.MC.SMPPHandler do
alias SMPPEX.MC, as: MC
require Logger
def after_init(_session) do
end
def handle_parse_error(session, error) do
Logger.info("mc_conn #{inspect session.mc_conn}, parse error: #{inspect error}, stopping")
end
def handle_pdu(session, {:unparsed_pdu, raw_pdu, error}) do
Logger.info("mc_conn #{inspect session.mc_conn}, unknown pdu: #{inspect raw_pdu}(#{inspect error}), stopping")
:stop
end
def handle_pdu(session, {:pdu, pdu}) do
:ok = MC.handle_pdu(session.mc_conn, pdu)
end
def handle_socket_closed(session) do
Logger.info("mc_conn #{inspect session.mc_conn}, socket closed, stopping")
end
def handle_socket_error(session, reason) do
Logger.info("mc_conn #{inspect session.mc_conn}, socket error #{inspect reason}, stopping")
end
def handle_stop(session) do
:ok = MC.handle_stop(session.mc_conn)
end
def handle_send_pdu_result(session, pdu, send_pdu_result) do
:ok = MC.handle_send_pdu_result(session.mc_conn, pdu, send_pdu_result)
session
end
end