Subscribing to ESL Events 'dynamically' per channel
Hi, We're using the inbound ESL socket to subscribe to certain events. However, we receive these events for every call. Is it possible to dynamically subscribe to events per call via the API? We're hoping to add/remove certain events at certain points during our call flows to avoid unnecessary noise in the events received.
Joshua, Maybe this can help (from https://wiki.freeswitch.org/wiki/Event_Socket#event): filter Specify event types to listen for. Note, this is not a filter out but rather a "filter in," that is, when a filter is applied only the filtered values are received. Multiple filters on a socket connection are allowed. Usage: filter <EventHeader> <ValueToFilter> Example: The following example will subscribe to all events and then create two filters, one to listen for HEARTBEATS and one to listen for CHANNEL_EXECUTE events. events plain all Content-Type: command/reply Reply-Text: +OK event listener enabled plain filter Event-Name CHANNEL_EXECUTE Content-Type: command/reply Reply-Text: +OK filter added. [filter]=[Event-Name CHANNEL_EXECUTE] filter Event-Name HEARTBEAT Content-Type: command/reply Reply-Text: +OK filter added. [Event-Name]=[HEARTBEAT] Now only HEARTBEAT and CHANNEL_EXECUTE events will be received. You can filter on any of the event headers. To filter for a specific channel you will need to use the uuid: filter Unique-ID d29a070f-40ff-43d8-8b9d-d369b2389dfe This method is an alternative to the myevents <https://wiki.freeswitch.org/wiki/Mod_event_socket#Special_Case_-_.27myevents.27> event type. If you need *only* the events for a specific channel then use *myevents*, otherwise use a combination of filters to narrow down the events you wish to receive on the socket. To filter multiple unique IDs, you can just add another filter for events for each UUID. This can be useful for example if you want to receive start/stop-talking events for multiple users on a particular conference. filter plain all filter plain CUSTOM conference::maintenance filter Unique-ID $participantB filter Unique-ID $participantA filter Unique-ID $participantC This will give you events for Participant A,B and C on any conference. To receive events for all users on a conference you can use something like: filter Conference-Unique-ID $ConfUUID You can filter on any of the parameters you get in a freeSWITCH event: filter plain all filter call-direction Inbound filter Event-Calling-File mod_conference.c filter Conference-Unique-ID $ConfUUID You can use them individually or compound them depending on whatever end result you desire for the type of events you want to receive filter delete Specify the events which you want to revoke the filter. filter delete can be used when some filters are applied wrongly or when there is no use of the filter. Usage: filter delete <EventHeader> <ValueToFilter> Example: filter delete Event-Name HEARTBEAT Now, you will no longer receive HEARTBEAT events. You can delete any filter that is applied by this way. filter delete Unique-ID d29a070f-40ff-43d8-8b9d-d369b2389dfe This is to delete the filter which is applied for the given unique-id. After this, you won't receive any events for this unique-id. filter delete Unique-ID This deletes all the filters which are applied based on the unique-id. Regards, Guillermo On Wed, Mar 21, 2018 at 2:27 PM, Joshua Gigg <giggsey@gmail.com> wrote:
Hi,
We're using the inbound ESL socket to subscribe to certain events. However, we receive these events for every call.
Is it possible to dynamically subscribe to events per call via the API?
We're hoping to add/remove certain events at certain points during our call flows to avoid unnecessary noise in the events received.
_________________________________________________________________________ Professional FreeSWITCH Consulting Services: consulting@freeswitch.org http://www.freeswitchsolutions.com
Official FreeSWITCH Sites http://www.freeswitch.org http://confluence.freeswitch.org http://www.cluecon.com
FreeSWITCH-users mailing list FreeSWITCH-users@lists.freeswitch.org http://lists.freeswitch.org/mailman/listinfo/freeswitch-users UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users http://www.freeswitch.org
-- Guillermo Ruiz Camauer
participants (2)
-
Guillermo Ruiz Camauer
-
Joshua Gigg