[Freeswitch-users] ESL Outbound: how to bridge media?

Stephen Wilde wstephen80 at gmail.com
Wed Feb 16 02:49:25 MSK 2011


Whow! With this change I can ear progressing messages! It works now!

Stephen

On Wed, Feb 16, 2011 at 12:35 AM, Anthony Minessale <
anthony.minessale at gmail.com> wrote:

> That used to be a problem to bridge 2 unanswered channels.
> I think it *might* let you now if you have the right conditions but it
> may take some code and testing.
>
> can you test this for me?
>
> edit switch_ivr_bridge.c
>
> erase or comment out the entire else block starting at line 1411
>
> Try again.
>
>
>
> On Tue, Feb 15, 2011 at 5:30 PM, Stephen Wilde <wstephen80 at gmail.com>
> wrote:
> > Sorry, I have now followed your indication doing the bridge only after
> > receiving "CHANNEL_PARK" on legB. The problem is the same with no audio.
> > I have also tried to do a pre_answer in legA (before originate legB) with
> no
> > success.
> > I see in the fs_cli:
> > [CRIT] switch_ivr_bridge.c:1412 Neither channel is answered, cannot
> bridge
> > them.
> > The sequence of events I receive before doing the bridge is:
> > [OUTBOUND] - [CHANNEL_UUID]
> > [OUTBOUND] - [CHANNEL_OUTGOING]
> > [OUTBOUND] - [CHANNEL_ORIGINATE]
> > [OUTBOUND] - [CHANNEL_STATE]
> > [OUTBOUND] - [CHANNEL_CALLSTATE]
> > [OUTBOUND] - [CHANNEL_STATE]
> > [OUTBOUND] - [CHANNEL_STATE]
> > [INBOUND] - [CHANNEL_EXECUTE]
> > [INBOUND] - [CHANNEL_CALLSTATE]
> > [INBOUND] - [CHANNEL_PROGRESS_MEDIA]
> > [INBOUND] - [CHANNEL_EXECUTE_COMPLETE]
> > [OUTBOUND] - [CALL_UPDATE]
> > [OUTBOUND] - [CHANNEL_PROGRESS]
> > [OUTBOUND] - [CALL_UPDATE]
> > [OUTBOUND] - [CODEC]
> > [OUTBOUND] - [CODEC]
> > [OUTBOUND] - [CHANNEL_CALLSTATE]
> > [OUTBOUND] - [CHANNEL_PROGRESS_MEDIA]
> > [OUTBOUND] - [CHANNEL_STATE]
> > [OUTBOUND] - [CHANNEL_EXECUTE]
> > [OUTBOUND] - [CHANNEL_PARK]
> > After this CHANNEL_PARK I do the "uuid_bridge" with no succes. These
> event
> > are related to the case of putting legA in pre_answer. Same problem if I
> > leave it in park.
> > Stephen
> >
> > On Tue, Feb 15, 2011 at 11:32 PM, Anthony Minessale
> > <anthony.minessale at gmail.com> wrote:
> >>
> >> Did you read the little chart i put in my last email?
> >>
> >> i'll be more specific:
> >>
> >> 1) leg A who has a_uuid has called inbound and has been put in park app.
> >>
> >> from ESL:
> >> generate uuid (we'll  call  it b_uuid for clarity)
> >> bgapi originate {origination_uuid=b_uuid}soifa/internal/bleg at box.compark
> >> inline
> >>
> >> Wait for park event from b_uuid (do not touch it any sooner)
> >>
> >> now either do:
> >>
> >> uuid_bridge a_uuid b_uuid
> >>
> >> or:
> >>
> >> uuid_transfer a_uuid intercept:b_uuid inline
> >>
> >> or:
> >>
> >> sendmsg to a_uuid telling it to execute intercept app on b_uuid
> >>
> >>
> >>
> >>
> >>
> >> On Tue, Feb 15, 2011 at 3:46 PM, Stephen Wilde <wstephen80 at gmail.com>
> >> wrote:
> >> > When legB answers there is also no audio.
> >> > If I do the bridge after legB answers the call (instead of when
> >> > "origination" has ended), then the audio is ok and the legA can ear
> the
> >> > legB
> >> > also if legA is in "pre_answer" state.
> >> > Now I have found one problem: the "BACKGROUND_JOB" event related to
> >> > "bgapi
> >> > uuid_bridge ..." contains: "-ERR Invalid uuid" but both uuid's are
> >> > correct
> >> > so probably is due to the state of channels.
> >> > With the same uuid's, the uuid_bridge after the legB answer works
> fine.
> >> > Stephen
> >> >
> >> > On Tue, Feb 15, 2011 at 9:53 PM, Anthony Minessale
> >> > <anthony.minessale at gmail.com> wrote:
> >> >>
> >> >> I meant when you have no audio, and you wait until leg b answers.
> what
> >> >> happens then?
> >> >>
> >> >>
> >> >> If you have leg A inbound and you send it to park.
> >> >> then you originate outbound to b leg to park
> >> >> wait for park event on b leg
> >> >> then you uuid_bridge them
> >> >>
> >> >> also you can sendmsg with application = intercept app_arg = uuid of B
> >> >>
> >> >>
> >> >> On Tue, Feb 15, 2011 at 12:08 PM, Stephen Wilde <
> wstephen80 at gmail.com>
> >> >> wrote:
> >> >> > LegA is an incoming call, legB is an outgoing call.
> >> >> > The dialplan is:
> >> >> >     <extension name="myhandler">
> >> >> >       <condition field="destination_number" expression="^xxxx$">
> >> >> >         <action application="set"
> >> >> > data="dialstring=sofia/external/yyyy at zzzz
> >> >> > />
> >> >> >         <action application="socket" data="127.0.0.1:8084 async
> >> >> > full"/>
> >> >> >       </condition>
> >> >> >     </extension>
> >> >> > When the legB answer the call, I receive the "CHANNEL_ANSWER" event
> >> >> > on
> >> >> > legB
> >> >> > and I send the "answer" to legA (I have already done a uuid_bridge
> >> >> > when
> >> >> > originate has ended).
> >> >> > The audio continue to be mute in both direction.
> >> >> > The "uuid_bridge" works only if I call it after received
> >> >> > "CHANNEL_ANSWER" in
> >> >> > legB or after I send "answer" to legA.
> >> >> > It's not enough to do a "pre_answer".
> >> >> > Stephen
> >> >> >
> >> >> > On Tue, Feb 15, 2011 at 6:15 PM, Anthony Minessale
> >> >> > <anthony.minessale at gmail.com> wrote:
> >> >> >>
> >> >> >> What happens once they answer?
> >> >> >>
> >> >> >> This is not one of those attempts to speed up click to call by
> >> >> >> calling
> >> >> >> them both at once is it?
> >> >> >>
> >> >> >>
> >> >> >> On Tue, Feb 15, 2011 at 10:29 AM, Stephen Wilde
> >> >> >> <wstephen80 at gmail.com>
> >> >> >> wrote:
> >> >> >> > Ok, I have tried with "pre_answer" to the inbound channel (that
> >> >> >> > will
> >> >> >> > be
> >> >> >> > the
> >> >> >> > first uuid in the "uuid_bridge") but with same result: no audio
> >> >> >> > from
> >> >> >> > outbound (in progressing media state) to inbound (in progressing
> >> >> >> > media
> >> >> >> > state
> >> >> >> > due to my pre_answer).
> >> >> >> > Here the sequence of events:
> >> >> >> > [ERROR] newacme.cpp:193 mycallback() Connected!
> >> >> >> > [ERROR] newacme.cpp:113 Originate() bgapi originate
> >> >> >> >
> >> >> >> >
> >> >> >> >
> >> >> >> >
> [origination_uuid=61e00b94-f4d3-4ac4-bcf5-8fba02a18de6]sofia/external/xxxx at yyyy
> >> >> >> > &park()
> >> >> >> > [ERROR] newacme.cpp:115 Originate() Job-ID:
> >> >> >> > eee79d97-dbf8-49d4-9bf9-578ef75f73ea
> >> >> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> >> >> > [CHANNEL_UUID]
> >> >> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> >> >> > [CHANNEL_OUTGOING]
> >> >> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> >> >> > [CHANNEL_ORIGINATE]
> >> >> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> >> >> > [CHANNEL_STATE]
> >> >> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> >> >> > [CHANNEL_CALLSTATE]
> >> >> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> >> >> > [CHANNEL_STATE]
> >> >> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> >> >> > [CHANNEL_STATE]
> >> >> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> >> >> > [CALL_UPDATE]
> >> >> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> >> >> > [CODEC]
> >> >> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> >> >> > [CODEC]
> >> >> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> >> >> > [CHANNEL_CALLSTATE]
> >> >> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> >> >> > [CHANNEL_PROGRESS_MEDIA]
> >> >> >> > [ERROR] newacme.cpp:250 mycallback() Executing 'pre_answer' on
> >> >> >> > INBOUND
> >> >> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> >> >> > [CHANNEL_STATE]
> >> >> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> >> >> > [CHANNEL_EXECUTE]
> >> >> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> >> >> > [CHANNEL_PARK]
> >> >> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> >> >> > [CHANNEL_EXECUTE]
> >> >> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> >> >> > [CHANNEL_CALLSTATE]
> >> >> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> >> >> > [CHANNEL_PROGRESS_MEDIA]
> >> >> >> > [ERROR] newacme.cpp:127 BridgeTo() bgapi uuid_bridge
> >> >> >> > 902e2cd4-10ee-4938-97cf-c9eb2ac969f8
> >> >> >> > 61e00b94-f4d3-4ac4-bcf5-8fba02a18de6
> >> >> >> > [ERROR] newacme.cpp:129 BridgeTo() Job-ID:
> >> >> >> > 7a66a5c7-721c-47f4-aff2-373ec20123c8
> >> >> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> >> >> > [CHANNEL_EXECUTE_COMPLETE]
> >> >> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> >> >> > [CALL_UPDATE]
> >> >> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> >> >> > [CHANNEL_CALLSTATE]
> >> >> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> >> >> > [CHANNEL_ANSWER]
> >> >> >> > [ERROR] newacme.cpp:255 mycallback() Executing 'answer' on
> INBOUND
> >> >> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> >> >> > [CHANNEL_EXECUTE]
> >> >> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> >> >> > [CHANNEL_CALLSTATE]
> >> >> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> >> >> > [CHANNEL_ANSWER]
> >> >> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> >> >> > [CHANNEL_EXECUTE_COMPLETE]
> >> >> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> >> >> > [CHANNEL_CALLSTATE]
> >> >> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> >> >> > [CHANNEL_HANGUP]
> >> >> >> > [ERROR] newacme.cpp:260 mycallback() Executing 'hangup' on
> INBOUND
> >> >> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> >> >> > [CHANNEL_EXECUTE]
> >> >> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> >> >> > [CHANNEL_CALLSTATE]
> >> >> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> >> >> > [CHANNEL_HANGUP]
> >> >> >> > [ERROR] newacme.cpp:272 mycallback() Executing 'hangup' on
> >> >> >> > OUTBOUND
> >> >> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> >> >> > [CHANNEL_UNPARK]
> >> >> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> >> >> > [CHANNEL_EXECUTE_COMPLETE]
> >> >> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> >> >> > [CHANNEL_EXECUTE_COMPLETE]
> >> >> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> >> >> > [CHANNEL_STATE]
> >> >> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> >> >> > [CHANNEL_UNPARK]
> >> >> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> >> >> > [CHANNEL_EXECUTE_COMPLETE]
> >> >> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> >> >> > [CHANNEL_STATE]
> >> >> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> >> >> > [CHANNEL_STATE]
> >> >> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> >> >> > [CHANNEL_HANGUP_COMPLETE]
> >> >> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> >> >> > [CHANNEL_DESTROY]
> >> >> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> >> >> > [CHANNEL_CALLSTATE]
> >> >> >> > [ERROR] newacme.cpp:246 mycallback() Got an event: [OUTBOUND] -
> >> >> >> > [CHANNEL_STATE]
> >> >> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> >> >> > [CHANNEL_STATE]
> >> >> >> > [ERROR] newacme.cpp:268 mycallback() Got an event: [INBOUND] -
> >> >> >> > [CHANNEL_HANGUP_COMPLETE]
> >> >> >> > [ERROR] newacme.cpp:290 mycallback() End.
> >> >> >> >
> >> >> >> >
> >> >> >> > On Tue, Feb 15, 2011 at 5:09 PM, Anthony Minessale
> >> >> >> > <anthony.minessale at gmail.com> wrote:
> >> >> >> >>
> >> >> >> >> Well you can't bridge 2 unanswered channels together.
> >> >> >> >> You need at least one of them to have been pre_answered and
> that
> >> >> >> >> should be the first uuid in the list.
> >> >> >> >>
> >> >> >> >>
> >> >> >> >> On Tue, Feb 15, 2011 at 3:48 AM, Stephen Wilde
> >> >> >> >> <wstephen80 at gmail.com>
> >> >> >> >> wrote:
> >> >> >> >> > I have tried to wait originate completition but the
> >> >> >> >> > "uuid_bridge"
> >> >> >> >> > doesn't
> >> >> >> >> > works also in this case.
> >> >> >> >> > It seems that works only when at least one leg is answered so
> >> >> >> >> > it's
> >> >> >> >> > not
> >> >> >> >> > possible to do the "uuid_bridge" during progressing phase
> also
> >> >> >> >> > if
> >> >> >> >> > the
> >> >> >> >> > originate has ended (I don't set the ignore_early_media).
> >> >> >> >> > My application is this: http://pastebin.freeswitch.org/15387
> >> >> >> >> > The application:
> >> >> >> >> > 1. receive a call with an "inbound_uuid"
> >> >> >> >> > 2. create a new "outbound_uuid"
> >> >> >> >> > 3. do a "bgapi originate" using the new "outbound_uuid"
> >> >> >> >> > 4. when the called phone is ringing, receive a
> >> >> >> >> > "CHANNEL_PROGRESS_MEDIA"
> >> >> >> >> > event on "outbound_uuid" and do a "pre_answer" on
> >> >> >> >> > "inbound_uuid"
> >> >> >> >> > 5. receive a "CHANNEL_PROGRESS_MEDIA" on "inbound_uuid"
> >> >> >> >> > 6. receive a job completition event related to the
> "originate"
> >> >> >> >> > so
> >> >> >> >> > issue
> >> >> >> >> > an
> >> >> >> >> > "uuid_bridge inbound_uuid outbound_uuid"
> >> >> >> >> > 7. when a job completition event related to "uuid_bridge" is
> >> >> >> >> > received,
> >> >> >> >> > no
> >> >> >> >> > audio flow from outbound to inbound channel
> >> >> >> >> > 8. when outbound answer the call, the application answer also
> >> >> >> >> > the
> >> >> >> >> > inbound
> >> >> >> >> > call but no audio flow in both directions
> >> >> >> >> > If I do the uuid_bridge after legB answer, then all is ok
> >> >> >> >> > (obviously
> >> >> >> >> > with no
> >> >> >> >> > audio during progressing phase).
> >> >> >> >> >
> >> >> >> >> > The log of my application is:
> >> >> >> >> > [ERROR] newacme.cpp:46 mycallback() Connected!
> >> >> >> >> > [ERROR] newacme.cpp:65 mycallback() Inbound uuid =
> >> >> >> >> > 8b2c39db-1ad9-489c-b72f-a92d4087bf99
> >> >> >> >> > [ERROR] newacme.cpp:68 mycallback() create_uuid:
> >> >> >> >> > 394167aa-2811-4fcd-95c9-85576bdd9a7a
> >> >> >> >> > [ERROR] newacme.cpp:89 mycallback() bgapi originate
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >> >
> [origination_uuid=394167aa-2811-4fcd-95c9-85576bdd9a7a]sofia/external/xxxx at yyyy
> >> >> >> >> > &park()
> >> >> >> >> > [ERROR] newacme.cpp:91 mycallback() Job-ID:
> >> >> >> >> > 1c654ac2-c22d-418f-9fad-bb6b6b35aeff
> >> >> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND]
> -
> >> >> >> >> > [CHANNEL_UUID]
> >> >> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND]
> -
> >> >> >> >> > [CHANNEL_OUTGOING]
> >> >> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND]
> -
> >> >> >> >> > [CHANNEL_ORIGINATE]
> >> >> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND]
> -
> >> >> >> >> > [CHANNEL_STATE]
> >> >> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND]
> -
> >> >> >> >> > [CHANNEL_CALLSTATE]
> >> >> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND]
> -
> >> >> >> >> > [CHANNEL_STATE]
> >> >> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND]
> -
> >> >> >> >> > [CHANNEL_STATE]
> >> >> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND]
> -
> >> >> >> >> > [CALL_UPDATE]
> >> >> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND]
> -
> >> >> >> >> > [CODEC]
> >> >> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND]
> -
> >> >> >> >> > [CODEC]
> >> >> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND]
> -
> >> >> >> >> > [CHANNEL_CALLSTATE]
> >> >> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND]
> -
> >> >> >> >> > [CHANNEL_PROGRESS_MEDIA]
> >> >> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND]
> -
> >> >> >> >> > [CHANNEL_STATE]
> >> >> >> >> > [ERROR] newacme.cpp:112 mycallback() Got an event:
> >> >> >> >> > [BACKGROUND_JOB] -
> >> >> >> >> > [1c654ac2-c22d-418f-9fad-bb6b6b35aeff]
> >> >> >> >> > [ERROR] newacme.cpp:119 mycallback() bgapi uuid_bridge
> >> >> >> >> > 8b2c39db-1ad9-489c-b72f-a92d4087bf99
> >> >> >> >> > 394167aa-2811-4fcd-95c9-85576bdd9a7a
> >> >> >> >> > [ERROR] newacme.cpp:123 mycallback() Job-ID:
> >> >> >> >> > 0d43cffe-fdc6-4a13-97e6-aeee199c45d5
> >> >> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND]
> -
> >> >> >> >> > [CHANNEL_EXECUTE]
> >> >> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND]
> -
> >> >> >> >> > [CHANNEL_PARK]
> >> >> >> >> > [ERROR] newacme.cpp:112 mycallback() Got an event:
> >> >> >> >> > [BACKGROUND_JOB] -
> >> >> >> >> > [0d43cffe-fdc6-4a13-97e6-aeee199c45d5]
> >> >> >> >> > [ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND]
> -
> >> >> >> >> > [CHANNEL_EXECUTE]
> >> >> >> >> > [ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND]
> -
> >> >> >> >> > [CHANNEL_CALLSTATE]
> >> >> >> >> > [ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND]
> -
> >> >> >> >> > [CHANNEL_PROGRESS_MEDIA]
> >> >> >> >> > [ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND]
> -
> >> >> >> >> > [CHANNEL_EXECUTE_COMPLETE]
> >> >> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND]
> -
> >> >> >> >> > [CALL_UPDATE]
> >> >> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND]
> -
> >> >> >> >> > [CHANNEL_CALLSTATE]
> >> >> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND]
> -
> >> >> >> >> > [CHANNEL_ANSWER]
> >> >> >> >> > [ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND]
> -
> >> >> >> >> > [CHANNEL_EXECUTE]
> >> >> >> >> > [ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND]
> -
> >> >> >> >> > [CHANNEL_CALLSTATE]
> >> >> >> >> > [ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND]
> -
> >> >> >> >> > [CHANNEL_ANSWER]
> >> >> >> >> > [ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND]
> -
> >> >> >> >> > [CHANNEL_EXECUTE_COMPLETE]
> >> >> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND]
> -
> >> >> >> >> > [CHANNEL_CALLSTATE]
> >> >> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND]
> -
> >> >> >> >> > [CHANNEL_HANGUP]
> >> >> >> >> > [ERROR] newacme.cpp:160 mycallback() hangup
> >> >> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND]
> -
> >> >> >> >> > [CHANNEL_UNPARK]
> >> >> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND]
> -
> >> >> >> >> > [CHANNEL_EXECUTE_COMPLETE]
> >> >> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND]
> -
> >> >> >> >> > [CHANNEL_STATE]
> >> >> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND]
> -
> >> >> >> >> > [CHANNEL_STATE]
> >> >> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND]
> -
> >> >> >> >> > [CHANNEL_HANGUP_COMPLETE]
> >> >> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND]
> -
> >> >> >> >> > [CHANNEL_DESTROY]
> >> >> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND]
> -
> >> >> >> >> > [CHANNEL_CALLSTATE]
> >> >> >> >> > [ERROR] newacme.cpp:138 mycallback() Got an event: [OUTBOUND]
> -
> >> >> >> >> > [CHANNEL_STATE]
> >> >> >> >> > [ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND]
> -
> >> >> >> >> > [CHANNEL_EXECUTE]
> >> >> >> >> > [ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND]
> -
> >> >> >> >> > [CHANNEL_CALLSTATE]
> >> >> >> >> > [ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND]
> -
> >> >> >> >> > [CHANNEL_HANGUP]
> >> >> >> >> > [ERROR] newacme.cpp:171 mycallback() hangup
> >> >> >> >> > [ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND]
> -
> >> >> >> >> > [CHANNEL_EXECUTE_COMPLETE]
> >> >> >> >> > [ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND]
> -
> >> >> >> >> > [CHANNEL_UNPARK]
> >> >> >> >> > [ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND]
> -
> >> >> >> >> > [CHANNEL_EXECUTE_COMPLETE]
> >> >> >> >> > [ERROR] newacme.cpp:167 mycallback() Got an event: [INBOUND]
> -
> >> >> >> >> > [CHANNEL_STATE]
> >> >> >> >> > [ERROR] newacme.cpp:184 mycallback() End.
> >> >> >> >> >
> >> >> >> >> > Stephen
> >> >> >> >> >
> >> >> >> >> > On Tue, Feb 15, 2011 at 1:14 AM, Anthony Minessale
> >> >> >> >> > <anthony.minessale at gmail.com> wrote:
> >> >> >> >> >>
> >> >> >> >> >> if you do originate without ignore_early_media=true set it
> >> >> >> >> >> will
> >> >> >> >> >> end
> >> >> >> >> >> the soonest possible where it's suitable for a bridge.
> >> >> >> >> >> so that is the best bet to wait for originate to end.
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >> On Mon, Feb 14, 2011 at 6:11 PM, Stephen Wilde
> >> >> >> >> >> <wstephen80 at gmail.com>
> >> >> >> >> >> wrote:
> >> >> >> >> >> > Ok, now I'm doing bridge when I receive "CHANNEL_ANSWER"
> or
> >> >> >> >> >> > "CHANNEL_PROGRESS_MEDIA" on outbound leg but you say that
> I
> >> >> >> >> >> > have
> >> >> >> >> >> > wait
> >> >> >> >> >> > that
> >> >> >> >> >> > "originate has ended": you mean that I have to wait for
> >> >> >> >> >> > "BACKGROUND_JOB"
> >> >> >> >> >> > event related to my "bgapi originate ... &park"?
> >> >> >> >> >> > I'm already doing "uuid_bridge <inbound_uuid>
> >> >> >> >> >> > <outbound_uuid>".
> >> >> >> >> >> > I'll try also with intercept and inline originate. Thank
> >> >> >> >> >> > you!
> >> >> >> >> >> > Stephen
> >> >> >> >> >> >
> >> >> >> >> >> > On Tue, Feb 15, 2011 at 12:53 AM, Anthony Minessale
> >> >> >> >> >> > <anthony.minessale at gmail.com> wrote:
> >> >> >> >> >> >>
> >> >> >> >> >> >> you need to make sure originate has ended on the outbound
> >> >> >> >> >> >> leg
> >> >> >> >> >> >> before
> >> >> >> >> >> >> you use it in a bridge etc.
> >> >> >> >> >> >> you also need to supply the inbound leg first in
> >> >> >> >> >> >> uuid_bridge
> >> >> >> >> >> >> if
> >> >> >> >> >> >> that
> >> >> >> >> >> >> is something you want to do.
> >> >> >> >> >> >>
> >> >> >> >> >> >> Easier would be to originate the B leg to park inline and
> >> >> >> >> >> >> tell
> >> >> >> >> >> >> A
> >> >> >> >> >> >> leg
> >> >> >> >> >> >> to execute intercept on the B leg uuid.
> >> >> >> >> >> >>
> >> >> >> >> >> >>
> >> >> >> >> >> >>
> >> >> >> >> >> >> On Mon, Feb 14, 2011 at 5:44 PM, Stephen Wilde
> >> >> >> >> >> >> <wstephen80 at gmail.com>
> >> >> >> >> >> >> wrote:
> >> >> >> >> >> >> > Sorry but I have missed something.
> >> >> >> >> >> >> > I know that I can solve this problem directly in
> dialplan
> >> >> >> >> >> >> > with
> >> >> >> >> >> >> > a
> >> >> >> >> >> >> > bridge
> >> >> >> >> >> >> > but
> >> >> >> >> >> >> > what I'm doing is an "Freeswitch ESL learning" because
> I
> >> >> >> >> >> >> > have
> >> >> >> >> >> >> > to
> >> >> >> >> >> >> > port
> >> >> >> >> >> >> > some
> >> >> >> >> >> >> > application in Freeswitch and I'm learning how to
> >> >> >> >> >> >> > implement
> >> >> >> >> >> >> > some
> >> >> >> >> >> >> > functionality.
> >> >> >> >> >> >> > For me it's important to take control of both
> >> >> >> >> >> >> > inbound/outbound
> >> >> >> >> >> >> > in
> >> >> >> >> >> >> > full
> >> >> >> >> >> >> > async
> >> >> >> >> >> >> > way and I have the necessity to do the complete call
> >> >> >> >> >> >> > control.
> >> >> >> >> >> >> > I'm not sure but to me it seems that with a normal
> bridge
> >> >> >> >> >> >> > I
> >> >> >> >> >> >> > lose
> >> >> >> >> >> >> > the
> >> >> >> >> >> >> > control
> >> >> >> >> >> >> > of two sessions, for example, an outbound answer is
> >> >> >> >> >> >> > propagated
> >> >> >> >> >> >> > by
> >> >> >> >> >> >> > bridge
> >> >> >> >> >> >> > application as inbound answer.
> >> >> >> >> >> >> > What I want to do is an audio bridging so my
> application
> >> >> >> >> >> >> > can
> >> >> >> >> >> >> > take
> >> >> >> >> >> >> > control of
> >> >> >> >> >> >> > "signaling bridging".
> >> >> >> >> >> >> >
> >> >> >> >> >> >> > I'm wrong? There are other way to do that?
> >> >> >> >> >> >> > Stephen
> >> >> >> >> >> >> > On Tue, Feb 15, 2011 at 12:19 AM, Michael Collins
> >> >> >> >> >> >> > <msc at freeswitch.org>
> >> >> >> >> >> >> > wrote:
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >> My head is spinning after reading this email. :)
> >> >> >> >> >> >> >> It sounds like you just need a simple bridge from the
> >> >> >> >> >> >> >> incoming
> >> >> >> >> >> >> >> leg
> >> >> >> >> >> >> >> to
> >> >> >> >> >> >> >> the
> >> >> >> >> >> >> >> outgoing leg. Can you pre_answer the A leg then
> execute
> >> >> >> >> >> >> >> a
> >> >> >> >> >> >> >> good
> >> >> >> >> >> >> >> old-fashioned
> >> >> >> >> >> >> >> bridge to the b-leg?
> >> >> >> >> >> >> >> -MC
> >> >> >> >> >> >> >> On Mon, Feb 14, 2011 at 4:57 PM, Stephen Wilde
> >> >> >> >> >> >> >> <wstephen80 at gmail.com>
> >> >> >> >> >> >> >> wrote:
> >> >> >> >> >> >> >>>
> >> >> >> >> >> >> >>> The problem I have is to propagate the audio coming
> >> >> >> >> >> >> >>> from
> >> >> >> >> >> >> >>> an
> >> >> >> >> >> >> >>> "originated"
> >> >> >> >> >> >> >>> outbound session to the inbound session when the
> >> >> >> >> >> >> >>> outbound
> >> >> >> >> >> >> >>> is
> >> >> >> >> >> >> >>> in
> >> >> >> >> >> >> >>> the
> >> >> >> >> >> >> >>> PROGRESS
> >> >> >> >> >> >> >>> MEDIA phase.
> >> >> >> >> >> >> >>> When my application receives the
> >> >> >> >> >> >> >>> "CHANNEL_PROGRESS_MEDIA"
> >> >> >> >> >> >> >>> event
> >> >> >> >> >> >> >>> from
> >> >> >> >> >> >> >>> outbound session I can do a "pre_answer" on inbound
> >> >> >> >> >> >> >>> session
> >> >> >> >> >> >> >>> but
> >> >> >> >> >> >> >>> I'm
> >> >> >> >> >> >> >>> not
> >> >> >> >> >> >> >>> capable to do an audio bridge.
> >> >> >> >> >> >> >>> I have tried with "uuid_bridge <outbound_uuid>
> >> >> >> >> >> >> >>> <inbound_uuid>"
> >> >> >> >> >> >> >>> with
> >> >> >> >> >> >> >>> no
> >> >> >> >> >> >> >>> result probably because this api requires that at
> least
> >> >> >> >> >> >> >>> one
> >> >> >> >> >> >> >>> session
> >> >> >> >> >> >> >>> must be
> >> >> >> >> >> >> >>> answered.
> >> >> >> >> >> >> >>> I don't want to answer to the inbound session to
> >> >> >> >> >> >> >>> propagate
> >> >> >> >> >> >> >>> the
> >> >> >> >> >> >> >>> outbound
> >> >> >> >> >> >> >>> progressing media but I want to answer to inbound
> only
> >> >> >> >> >> >> >>> on
> >> >> >> >> >> >> >>> outbound
> >> >> >> >> >> >> >>> answer.
> >> >> >> >> >> >> >>> Any way to do that?
> >> >> >> >> >> >> >>> Stephen
> >> >> >> >> >> >> >>> _______________________________________________
> >> >> >> >> >> >> >>> FreeSWITCH-users mailing list
> >> >> >> >> >> >> >>> FreeSWITCH-users at lists.freeswitch.org
> >> >> >> >> >> >> >>>
> >> >> >> >> >> >> >>>
> >> >> >> >> >> >> >>>
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> >> >> >> >> >> >> >>>
> >> >> >> >> >> >> >>>
> >> >> >> >> >> >> >>>
> >> >> >> >> >> >> >>>
> >> >> >> >> >> >> >>>
> >> >> >> >> >> >> >>>
> >> >> >> >> >> >> >>> UNSUBSCRIBE:
> http://lists.freeswitch.org/mailman/options/freeswitch-users
> >> >> >> >> >> >> >>> http://www.freeswitch.org
> >> >> >> >> >> >> >>>
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >> _______________________________________________
> >> >> >> >> >> >> >> FreeSWITCH-users mailing list
> >> >> >> >> >> >> >> FreeSWITCH-users at lists.freeswitch.org
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >>
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >> UNSUBSCRIBE:
> http://lists.freeswitch.org/mailman/options/freeswitch-users
> >> >> >> >> >> >> >> http://www.freeswitch.org
> >> >> >> >> >> >> >>
> >> >> >> >> >> >> >
> >> >> >> >> >> >> >
> >> >> >> >> >> >> > _______________________________________________
> >> >> >> >> >> >> > FreeSWITCH-users mailing list
> >> >> >> >> >> >> > FreeSWITCH-users at lists.freeswitch.org
> >> >> >> >> >> >> >
> >> >> >> >> >> >> >
> >> >> >> >> >> >> >
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> >> >> >> >> >> >> >
> >> >> >> >> >> >> >
> >> >> >> >> >> >> >
> >> >> >> >> >> >> >
> >> >> >> >> >> >> >
> >> >> >> >> >> >> > UNSUBSCRIBE:
> http://lists.freeswitch.org/mailman/options/freeswitch-users
> >> >> >> >> >> >> > 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
> >> >> >> >> >> >> googletalk:conf+888 at conference.freeswitch.org
> >> >> >> >> >> >> pstn:+19193869900
> >> >> >> >> >> >>
> >> >> >> >> >> >> _______________________________________________
> >> >> >> >> >> >> FreeSWITCH-users mailing list
> >> >> >> >> >> >> FreeSWITCH-users at lists.freeswitch.org
> >> >> >> >> >> >>
> >> >> >> >> >> >>
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> >> >> >> >> >> >>
> >> >> >> >> >> >>
> >> >> >> >> >> >>
> >> >> >> >> >> >>
> >> >> >> >> >> >>
> >> >> >> >> >> >> UNSUBSCRIBE:
> http://lists.freeswitch.org/mailman/options/freeswitch-users
> >> >> >> >> >> >> http://www.freeswitch.org
> >> >> >> >> >> >
> >> >> >> >> >> >
> >> >> >> >> >> > _______________________________________________
> >> >> >> >> >> > FreeSWITCH-users mailing list
> >> >> >> >> >> > FreeSWITCH-users at lists.freeswitch.org
> >> >> >> >> >> >
> >> >> >> >> >> >
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> >> >> >> >> >> >
> >> >> >> >> >> >
> >> >> >> >> >> >
> >> >> >> >> >> >
> >> >> >> >> >> > UNSUBSCRIBE:
> http://lists.freeswitch.org/mailman/options/freeswitch-users
> >> >> >> >> >> > 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
> >> >> >> >> >> googletalk:conf+888 at conference.freeswitch.org
> >> >> >> >> >> pstn:+19193869900
> >> >> >> >> >>
> >> >> >> >> >> _______________________________________________
> >> >> >> >> >> FreeSWITCH-users mailing list
> >> >> >> >> >> FreeSWITCH-users at lists.freeswitch.org
> >> >> >> >> >>
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >>
> >> >> >> >> >> UNSUBSCRIBE:
> http://lists.freeswitch.org/mailman/options/freeswitch-users
> >> >> >> >> >> http://www.freeswitch.org
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >> > _______________________________________________
> >> >> >> >> > FreeSWITCH-users mailing list
> >> >> >> >> > FreeSWITCH-users at lists.freeswitch.org
> >> >> >> >> >
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >> >
> >> >> >> >> > UNSUBSCRIBE:
> http://lists.freeswitch.org/mailman/options/freeswitch-users
> >> >> >> >> > 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
> >> >> >> >> googletalk:conf+888 at conference.freeswitch.org
> >> >> >> >> pstn:+19193869900
> >> >> >> >>
> >> >> >> >> _______________________________________________
> >> >> >> >> FreeSWITCH-users mailing list
> >> >> >> >> FreeSWITCH-users at lists.freeswitch.org
> >> >> >> >> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> >> >> >> >>
> >> >> >> >>
> >> >> >> >>
> >> >> >> >> UNSUBSCRIBE:
> http://lists.freeswitch.org/mailman/options/freeswitch-users
> >> >> >> >> http://www.freeswitch.org
> >> >> >> >
> >> >> >> >
> >> >> >> > _______________________________________________
> >> >> >> > FreeSWITCH-users mailing list
> >> >> >> > FreeSWITCH-users at lists.freeswitch.org
> >> >> >> > http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> >> >> >> >
> >> >> >> >
> >> >> >> > UNSUBSCRIBE:
> http://lists.freeswitch.org/mailman/options/freeswitch-users
> >> >> >> > 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
> >> >> >> googletalk:conf+888 at conference.freeswitch.org
> >> >> >> pstn:+19193869900
> >> >> >>
> >> >> >> _______________________________________________
> >> >> >> FreeSWITCH-users mailing list
> >> >> >> FreeSWITCH-users at lists.freeswitch.org
> >> >> >> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> >> >> >>
> >> >> >>
> >> >> >> UNSUBSCRIBE:
> http://lists.freeswitch.org/mailman/options/freeswitch-users
> >> >> >> http://www.freeswitch.org
> >> >> >
> >> >> >
> >> >> > _______________________________________________
> >> >> > FreeSWITCH-users mailing list
> >> >> > FreeSWITCH-users at lists.freeswitch.org
> >> >> > http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> >> >> >
> >> >> > UNSUBSCRIBE:
> http://lists.freeswitch.org/mailman/options/freeswitch-users
> >> >> > 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
> >> >> googletalk:conf+888 at conference.freeswitch.org
> >> >> pstn:+19193869900
> >> >>
> >> >> _______________________________________________
> >> >> FreeSWITCH-users mailing list
> >> >> FreeSWITCH-users at lists.freeswitch.org
> >> >> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> >> >>
> >> >> UNSUBSCRIBE:
> http://lists.freeswitch.org/mailman/options/freeswitch-users
> >> >> http://www.freeswitch.org
> >> >
> >> >
> >> > _______________________________________________
> >> > FreeSWITCH-users mailing list
> >> > FreeSWITCH-users at lists.freeswitch.org
> >> > http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> >> > UNSUBSCRIBE:
> http://lists.freeswitch.org/mailman/options/freeswitch-users
> >> > 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
> >> googletalk:conf+888 at conference.freeswitch.org
> >> pstn:+19193869900
> >>
> >> _______________________________________________
> >> FreeSWITCH-users mailing list
> >> FreeSWITCH-users at lists.freeswitch.org
> >> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> >> UNSUBSCRIBE:
> http://lists.freeswitch.org/mailman/options/freeswitch-users
> >> http://www.freeswitch.org
> >
> >
> > _______________________________________________
> > FreeSWITCH-users mailing list
> > FreeSWITCH-users at lists.freeswitch.org
> > http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> > UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> > 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
> googletalk:conf+888 at conference.freeswitch.org
> pstn:+19193869900
>
> _______________________________________________
> FreeSWITCH-users mailing list
> FreeSWITCH-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20110216/7af6347d/attachment-0001.html 


More information about the FreeSWITCH-users mailing list