[Freeswitch-users] Use of loopback channels and bridge() in scripts...

Peter Olsson peter.olsson at visionutveckling.se
Mon Apr 13 09:21:22 PDT 2009


 1.  The latest trunk I've tried with is 13008. Since I'm not doing anything for production yet (just testing/evaluating), so I tend to update as soon as there is new version available..
 2.  Yep, you will find it below. In javascript - my sample for .NET does basically the same thing, with the same result, except that it also won't drop the loopback-a call leg.
 3.  Hmm.. Not really - I'm just in the middle of learning FS, so I guess I'm not 100% sure what I'm doing.. :) What I want to be able to do is to dial into a script, let the script dial another extension, and bridge them together when the other party answers the call. I also need to take care of call setup problems - if the other part doesn't respond, is unavailable or busy in the phone - so I though this was the only way? If I use the session.execute("bridge"..), will I be able to control the call if it couldn't be connected?

---

if (session.ready()) {

   session.answer();

   new_session = new Session("loopback/5000", session);
   new_session.waitForAnswer();

   bridge(session, new_session);

   // Not sure if this is needed - I've tried with it both enabled and disabled
   session.hangup();
   new_session.hangup();
}

Peter


On 09-04-13 17.54, "Anthony Minessale" <anthony.minessale at gmail.com> wrote:

1) When you say latest, which rev does that mean? we change revs pretty often.
2) Do you have a minimal script that reproduces your issue.
3) is there a reason you cannot just session.execute("bridge", dest);
    instead of doing it manually (which is a process not for the faint at heart)?



On Mon, Apr 13, 2009 at 10:29 AM, Peter Olsson <peter.olsson at visionutveckling.se> wrote:
I have two problems that I haven't been able to solve. I've done the same tests in both javascript, and in .NET.

The two scripts are pretty simple, they just answer an incomming call, creates a new session, wait for an answer on the second call leg, and then bridge the two channels together.

In both cases everything works just fine, but the audio is distorted. The destination I'm calling is "loopback/5000" - the sample IVR application included in FreeSWITCH. I first thought it was a codec issue, but even after trying to switch to different codecs the problem was the same. It more sounds like it's a timestamping issue - the voice is not distorted enough to be a bad codec, but it reads way to fast (mayby twice the "normal" speed). When doing a direct transfer() to the other destination this works just fine, but I need to be able to have some extra logic to tell if the destination is available or not.

The second problem occurs only in .NET. After doing this sample there is as loopback channel still hanging around. It seems like the call creates a loopback-a and loopback-b, the loopback-b dissapears as it should (when the call has been disconnected), but the other one stays there. When doing the same in javascript this doesn't seem to occur.

I'm using the latest SVN trunk, and my OS is Windows XP.

I found bug FSCORE-349 in Jira, which seems to point in to the direction that there might be a bug with the loopback channels in some cases, but I could not find anything about the audio which plays too fast.

Has anyone else experienced this?

Regards,

Peter Olsson

_______________________________________________
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







More information about the FreeSWITCH-users mailing list