Event Socket Outbound

Hex.pmBuild StatusCoverage Status

EventSocketOutbound is an Elixir protocol for the FreeSWITCH's Event Socket. This protocol provides support for Outbound method of the Event Socket.

Installation

Add event_socket_outbound to your list of dependencies in mix.exs:

    def deps do
      [{:event_socket_outbound, "~> 0.5.1"}]
    end

Getting started

# In your config/config.exs file
config :event_socket_outbound, EventSocketOutbound.Call.Manager,
  call_mgt_adapter: MySample.Call

where MySample.Call will be a module that implements EventSocketOutbound.CallMgmt behaviour and logic for controlling the call. By default EventSocketOutbound uses EventSocketOutbound.ExampleCallMgmt module which answers the call and play a welcome message.

Usage

  1. Start EventSocketOutbound without options.

    >Application.start(:ranch)
    :ok
    >EventSocketOutbound.start
    {:ok, #PID<0.172.0>}
  2. Start EventSocketOutbound with options.

    >Application.start(:ranch)
    :ok
    >EventSocketOutbound.start port: 8090, acceptors: 50
    {:ok, #PID<0.174.0>}
  3. Add the child specs to your supervision tree, using EventSocketOutbound.Protocol as protocol. For more info, refer to ranch docs.

    child_spec = :ranch.child_spec(ref, :ranch_tcp, %{num_acceptors: acceptors, socket_opts: [{:port, port}]}, EventSocketOutbound.Protocol :ranch)

Copyright and License

Copyright (c) 2021, Davide Colombo.

EventSocketOutbound source code is licensed under the MIT License.