[Freeswitch-dev] Originating from an event.

Anthony Minessale anthony.minessale at gmail.com
Tue Jun 16 09:06:53 PDT 2009


here is the recipe:

ingredients:

1) Your own private struct that contains a pool pointer and any other data
you want to use in the thread.
2) a pool pointer


// define your struct

typedef struct {
  switch_memory_pool_t *pool;
  int num;
} my_helper_t;


// declare your variables

switch_memory_pool_t *pool;
my_helper_t *mh;

// create pool
switch_core_new_memory_pool(&pool);

// use the pool to create the struct

mh = (my_helper_t *) switch_core_alloc(pool, sizeof(*mh));

// populate the struct

mh->pool = pool;
mh->num = 42;

// now pass mh as the private data of the thread and get it back in your
thread.
// just destroy the pool at the end of your function

static void *SWITCH_THREAD_FUNC my_thread(switch_thread_t *thread, void
*obj)
{
  my_helper_t *mh = (my_helper_t *) obj;

  // Do your thang

  switch_core_destroy_memory_pool(&mh->pool);
  mh = NULL;
}


On Tue, Jun 16, 2009 at 9:28 AM, Kevin Snow <kevin.snow at ooma.com> wrote:

>  Hi,
>
> I’m writing my own module and have a situation where I need to connect two
> endpoints in response to an event. I have the custom event tied into my
> module and I know my endpoints that I need to connect but it’s not clear to
> me how to set up this connection.
>
> It appears that I cannot (or at least don’t want) to set up this connection
> on the thread the event came in on as that stalls other events from coming
> in. I think I need to create a new thread and session then use
> switch_ivr_originate and bridge the two. That however seems easier said than
> done, so I must be missing something.
>
> Switch_thread_create looks fairly straight forward but in the examples of
> it they all are used in situations where a session already exists. It’s uses
> the pool from that session. In the event handler I don’t have any session. I
> need to set the entire phone call/session up from scratch. I keep looking
> for a “switch_create_session” like call to setup this but that doesn’t
> exist. Clearly I’m going about it wrong.
>
> Are there any examples or docs on how to do this programmatically? I’ve
> search and can’t find anything like this.
>
> I’m fairly new to FS but hopefully this isn’t a total newbie question and
> that it makes sense. I’m excited for ClueCon, that’ll shed a lot of light on
> FS for me.
>
> Kevin
>
> _______________________________________________
> 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/

AIM: anthm
MSN:anthony_minessale at hotmail.com <MSN%3Aanthony_minessale at hotmail.com>
GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com<PAYPAL%3Aanthony.minessale at gmail.com>
IRC: irc.freenode.net #freeswitch

FreeSWITCH Developer Conference
sip:888 at conference.freeswitch.org <sip%3A888 at conference.freeswitch.org>
iax:guest at conference.freeswitch.org/888
googletalk:conf+888 at conference.freeswitch.org<googletalk%3Aconf%2B888 at conference.freeswitch.org>
pstn:213-799-1400
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-dev/attachments/20090616/40ad88ca/attachment-0001.html 


More information about the Freeswitch-dev mailing list