[Freeswitch-dev] Need some direction

David Knell dave at 3c.co.uk
Sat Feb 20 16:56:07 PST 2010

Hi Mark,

Unless you have good reason, then writing a custom FS module is probably
not the right way to go about this - I don't think I can see anything
here which you couldn't do with Lua or an event socket client.


> I need to create a custom Freeswitch module that acts as a leg/endpoint 
> of a call.  Unlike a conference, it needs to maintain a UUID so that a 
> parked call can be bridged to it.  Once the call is bridged, the module 
> will be in "connect" mode.  After the bridged leg disconnects, the 
> module goes into "data collection" mode and gets DTMF call results from 
> the operator.  It then goes into a "parked" mode, waiting for another 
> call to be bridged to it or for the operator to hit a DTMF logout sequence.
> I just need to know what I should look at for a template/sample to start 
> with.  Conferences don't seem to be applicable because they don't have 
> UUIDs for bridging (I'd tried doing this behaviour using them and failed 
> miserably.)  The code for audio_bridge_function is interesting, but I 
> don't believe that's what I need to start with either, as it _bridges_ 
> calls rather than providing a virtual endpoint.
> Just to make things real interesting, I'll have to have the custom 
> module generating custom events so that the Erlang control code gets 
> notified with the call results so it can update an RDBMS with the result 
> code.  If I decide to get fancy, I'd like to have a mini-IVR associated 
> with it that can provide voice prompts about the result codes available 
> to the operator.
> Last but not least, I'm uncertain as to whether such a custom module 
> needs to be "released" to the Freeswitch team, or whether it would be an 
> "internal only" module.  Hopefully it _has_ to be released -- I'd like 
> to contribute in some small way to the community.
> As a "for example", picture the tech support call center -- after each 
> call the operator/tech has to enter a code indicating whether the call 
> was 1) handled; 2) passed to level 2 tech support; 3) passed to level 3 
> tech support; or 4) scheduled for callback.

More information about the FreeSWITCH-dev mailing list