Skip to content

davec82/freeswitch-outboundsocket

Repository files navigation

Event Socket Outbound

Hex.pm Build Status Coverage 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>}
  1. Start EventSocketOutbound with options.
>Application.start(:ranch)
:ok
>EventSocketOutbound.start port: 8090, acceptors: 50
{:ok, #PID<0.174.0>}
  1. 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.