[Freeswitch-dev] hooked functions are not called while using one single session

Francisco Scaramanga scaram at hotmail.de
Tue Mar 16 06:51:08 PDT 2010


The module I am writing should be an endpoint VOIP-interface for another program. The module should answer a call and transport incoming audio into a 3rd party application. Furthermore the 3rd party application sends audio data back to the caller. This is why I hooked channel_read_frame and channel_write_frame. 

How can I trigger the channel to do something that requires reading or writing audio? Does it make a difference to use the endpoint interface instead of the hooks? 


Date: Tue, 16 Mar 2010 08:34:18 -0500
From: anthony.minessale at gmail.com
To: freeswitch-dev at lists.freeswitch.org
Subject: Re: [Freeswitch-dev] hooked functions are not called while using	one single session

What exactly is your goal?

those hooks will probably only be called if you send the channel to do something that 
requires reading and writing audio.


On Tue, Mar 16, 2010 at 6:47 AM, Francisco Scaramanga <scaram at hotmail.de> wrote:






Hello,
I am writing my own freeswitch module and have implemented 2 hooks for reading and writing audio (I did not implement the endpoint interface).
My problem is that the channel_write_frame and channel_read_frame callback-functions are only called if I make an intercept with another session (switch_ivr_intercept_session), but my usecase has only one single Session for getting and putting audio data in my module. 


How can I achieve this? 
scaram

/* on channel init I answer the session and set hooks */
static switch_status_t channel_on_init(switch_core_session_t *session)
{
    switch_channel_t *channel = switch_core_session_get_channel(session);

    switch_channel_answer(channel);

    switch_channel_set_state(channel, CS_EXCHANGE_MEDIA);
    switch_set_flag(tech_pvt, TFLAG_IO);

    switch_core_event_hook_add_write_frame(session, &channel_write_frame);

    switch_core_event_hook_add_read_frame(session, &channel_read_frame);
}

static switch_status_t channel_write_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id)

{
    /* is only called when I intercept 2 Sessions */
}
static switch_status_t channel_read_frame(switch_core_session_t *session, switch_frame_t *frame, switch_io_flag_t flags, int stream_id)
{
    /* is only called when I intercept 2 Sessions */

}


 		 	   		  
Ein Postfach für Alles –   bei Hotmail 5 E-Mail-Adressen online verwalten!

_______________________________________________

FreeSWITCH-dev mailing list

FreeSWITCH-dev at lists.freeswitch.org

http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev

UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-dev

http://www.freeswitch.org




-- 
Anthony Minessale II

FreeSWITCH http://www.freeswitch.org/
ClueCon http://www.cluecon.com/

Twitter: http://twitter.com/FreeSWITCH_wire

AIM: anthm
MSN:anthony_minessale at hotmail.com
GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com

IRC: irc.freenode.net #freeswitch

FreeSWITCH Developer Conference
sip:888 at conference.freeswitch.org
iax:guest at conference.freeswitch.org/888

googletalk:conf+888 at conference.freeswitch.org
pstn:+19193869900
 		 	   		  
_________________________________________________________________
http://redirect.gimas.net/?n=M1003xHotmail2
Alles in einem Postfach  –  Ich will Hotmail!
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-dev/attachments/20100316/45793f0c/attachment.html 


More information about the FreeSWITCH-dev mailing list