Sponsor: VoiceMeUp - Corporate & Wholesale VoIP Services

VoIP Mailing List Archives
Mailing list archives for the VoIP community
 SearchSearch 

[Freeswitch-users] Bridge 2 calls, catchup hangup and connec


 
Post new topic   Reply to topic    VoIP Mailing List Archives Forum Index -> freeSWITCH Users
View previous topic :: View next topic  
Author Message
birgit at westhawk.co.uk
Guest





PostPosted: Wed Oct 08, 2008 12:23 pm    Post subject: [Freeswitch-users] Bridge 2 calls, catchup hangup and connec Reply with quote

Hi,

I'm running FreeSWITCH 498:8901 on x86_64 GNU/Linux.

I'm trying to get person 1 to speak to person 2, then after person 2
hangs up, speak to person 3, etc, etc.


So:
person1 -> person2
person1 -> person3
...
person1 -> personN

In between connecting person1 to the next person, I need to do some
admin and speak phrases to person1 and personX independently.

Our software originates the calls, so I've chosen for RPC and JS.

I succeed orginating a call to person1 and person2 and bridging them.
However, I struggle to find a way to 'catch' the hangup and make person1
connect to person3.

I tried using session.setHangupHook, but the function is never called.

Any idea how I can catch the hangup of person2 so it doesn't hangup on
person1, so I can connect person1 to person3?



This is what I've got so far:

function on_hangup2(hup_session, how) {
console_log("info", "on_hangup2(): " + how + " HOOK"
+ " name: " + hup_session.name
+ " state: " + hup_session.state
+ " cause: " + hup_session.cause + "\n");

exit();
}

function on_hangup1(hup_session, how) {
console_log("info", "on_hangup1(): " + how + " HOOK"
+ " name: " + hup_session.name
+ " state: " + hup_session.state
+ " cause: " + hup_session.cause + "\n");

cSession.speak("cepstral", "Diane", "Wait we are trying to find the
next person");
var m2Session = new Session("sofia/gateway/westhawk/0661");
cSession.setHangupHook(on_hangup2);
m2Session.setHangupHook(on_hangup2);
bridge(cSession, m2Session);
}


var cSession = new
Session("{ignore_early_media=true,call_timeout=60}sofia/gateway/westhawk/0662");
while (cSession.ready()) {
// The call has been answered

cSession.speak("cepstral", "Diane", "Wait we are trying to find the
next person");
var m1Session = new Session("sofia/gateway/westhawk/0663");
cSession.setHangupHook(on_hangup1);
m1Session.setHangupHook(on_hangup1);
bridge(cSession, m1Session);
}

(end js).


I tried
cSession.bridge("sofia/gateway/westhawk/0663|sofia/gateway/westhawk/0661");
but that didn't work either.

Thanks, Birgit

--
-- Birgit Arkesteijn, birgit@westhawk.co.uk,
-- Westhawk Ltd, Albion Wharf, 19 Albion Street, Manchester M1 5LN, UK
-- Company no: 1769350
-- Registered Office:
-- 15 London Road, Stockton Heath, Warrington WA4 6SJ. UK.
-- tel.: +44 (0)161 237 0660
-- <URL: http://www.westhawk.co.uk>

_______________________________________________
Freeswitch-users mailing list
Freeswitch-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org
Back to top
dave at 3c.co.uk
Guest





PostPosted: Wed Oct 08, 2008 12:46 pm    Post subject: [Freeswitch-users] Bridge 2 calls, catchup hangup and connec Reply with quote

Hi Brigit,

Set
continue_on_fail=true
and
hangup_after_bridge=false

should let you just continue with your script after the bridge.

Cheers --

Dave


Quote:
Hi,

I'm running FreeSWITCH 498:8901 on x86_64 GNU/Linux.

I'm trying to get person 1 to speak to person 2, then after person 2
hangs up, speak to person 3, etc, etc.


So:
person1 -> person2
person1 -> person3
...
person1 -> personN

In between connecting person1 to the next person, I need to do some
admin and speak phrases to person1 and personX independently.

Our software originates the calls, so I've chosen for RPC and JS.

I succeed orginating a call to person1 and person2 and bridging them.
However, I struggle to find a way to 'catch' the hangup and make
person1
connect to person3.

I tried using session.setHangupHook, but the function is never called.

Any idea how I can catch the hangup of person2 so it doesn't hangup on
person1, so I can connect person1 to person3?



This is what I've got so far:

function on_hangup2(hup_session, how) {
console_log("info", "on_hangup2(): " + how + " HOOK"
+ " name: " + hup_session.name
+ " state: " + hup_session.state
+ " cause: " + hup_session.cause + "\n");

exit();
}

function on_hangup1(hup_session, how) {
console_log("info", "on_hangup1(): " + how + " HOOK"
+ " name: " + hup_session.name
+ " state: " + hup_session.state
+ " cause: " + hup_session.cause + "\n");

cSession.speak("cepstral", "Diane", "Wait we are trying to find
the
next person");
var m2Session = new Session("sofia/gateway/westhawk/0661");
cSession.setHangupHook(on_hangup2);
m2Session.setHangupHook(on_hangup2);
bridge(cSession, m2Session);
}


var cSession = new
Session("{ignore_early_media=true,call_timeout=60}sofia/gateway/
westhawk/0662");
while (cSession.ready()) {
// The call has been answered

cSession.speak("cepstral", "Diane", "Wait we are trying to find
the
next person");
var m1Session = new Session("sofia/gateway/westhawk/0663");
cSession.setHangupHook(on_hangup1);
m1Session.setHangupHook(on_hangup1);
bridge(cSession, m1Session);
}

(end js).


I tried
cSession.bridge("sofia/gateway/westhawk/0663|sofia/gateway/westhawk/
0661");
but that didn't work either.

Thanks, Birgit

--
-- Birgit Arkesteijn, birgit@westhawk.co.uk,
-- Westhawk Ltd, Albion Wharf, 19 Albion Street, Manchester M1 5LN, UK
-- Company no: 1769350
-- Registered Office:
-- 15 London Road, Stockton Heath, Warrington WA4 6SJ. UK.
-- tel.: +44 (0)161 237 0660
-- <URL: http://www.westhawk.co.uk>

_______________________________________________
Freeswitch-users mailing list
Freeswitch-users@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@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org
Back to top
birgit at westhawk.co.uk
Guest





PostPosted: Thu Oct 09, 2008 8:48 am    Post subject: [Freeswitch-users] Bridge 2 calls, catchup hangup and connec Reply with quote

Hi David,

Thanks for your answer.

I noticed that the behaviour between
bridge(cSession, m1Session);
and
cSession.execute("bridge", ....);
is different.

Using the first one ("bridge") will not call the HangupHook,
using the second one ("execute"), does call the HangupHook.


However, even with the two parameters you mentioned, the first session
hangs up. When I try to use the session in the HangupHook function, I
get the error "Session is not active".

I tried the bridge with multiple endpoints, but after 0663 it hangs up:
cSession.execute("bridge",
"sofia/gateway/westhawk/0663|sofia/gateway/westhawk/0661");


My questions:
01. Does anyone know how to make sure cSession remains active?

02. If I can only use cSession.execute, how do 'speak' to my endpoint
BEFORE the call is actually being bridged?
I tried
cSession.execute("set", "group_confirm_key=exec");
cSession.execute("set", "group_confirm_file=javascript person.js");
but that keeps ringing 0663 back, even when I hang up. I had to kill
(-9) FreeSWITCH.

03. Is my whole approach flawed?


Here is my updated JS:

function on_hangup1(hup_session, how) {
console_log("info", "on_hangup1(): " + how + " HOOK"
+ ", name: " + hup_session.name
+ ", state: " + hup_session.state
+ ", cause: " + hup_session.cause + "\n");

hup_session.speak("cepstral", "Diane", "Wait, we are trying to find
the next person"); // ---> Results in error
}


var cSession = new
Session("{ignore_early_media=true,call_timeout=60}sofia/gateway/westhawk/0662");
while (cSession.ready()) {
// The call has been answered

cSession.execute("set", "call_timeout=60");
cSession.execute("set", "continue_on_fail=true");
cSession.execute("set", "hangup_after_bridge=false");
cSession.execute("set", "ringback=%(2000,4000,440.0,480.0)")

cSession.setHangupHook(on_hangup1);
cSession.execute("bridge", "sofia/gateway/westhawk/0663");
}


exit();

(end of JS)


Thanks, Birgit

On 08/10/08 18:42, David Knell wrote:
Quote:
Hi Brigit,

Set
continue_on_fail=true
and
hangup_after_bridge=false

should let you just continue with your script after the bridge.

Cheers --

Dave


Quote:
Hi,

I'm running FreeSWITCH 498:8901 on x86_64 GNU/Linux.

I'm trying to get person 1 to speak to person 2, then after person 2
hangs up, speak to person 3, etc, etc.


So:
person1 -> person2
person1 -> person3
...
person1 -> personN

In between connecting person1 to the next person, I need to do some
admin and speak phrases to person1 and personX independently.

Our software originates the calls, so I've chosen for RPC and JS.

I succeed orginating a call to person1 and person2 and bridging them.
However, I struggle to find a way to 'catch' the hangup and make
person1
connect to person3.

I tried using session.setHangupHook, but the function is never called.

Any idea how I can catch the hangup of person2 so it doesn't hangup on
person1, so I can connect person1 to person3?



This is what I've got so far:

function on_hangup2(hup_session, how) {
console_log("info", "on_hangup2(): " + how + " HOOK"
+ " name: " + hup_session.name
+ " state: " + hup_session.state
+ " cause: " + hup_session.cause + "\n");

exit();
}

function on_hangup1(hup_session, how) {
console_log("info", "on_hangup1(): " + how + " HOOK"
+ " name: " + hup_session.name
+ " state: " + hup_session.state
+ " cause: " + hup_session.cause + "\n");

cSession.speak("cepstral", "Diane", "Wait we are trying to find
the
next person");
var m2Session = new Session("sofia/gateway/westhawk/0661");
cSession.setHangupHook(on_hangup2);
m2Session.setHangupHook(on_hangup2);
bridge(cSession, m2Session);
}


var cSession = new
Session("{ignore_early_media=true,call_timeout=60}sofia/gateway/
westhawk/0662");
while (cSession.ready()) {
// The call has been answered

cSession.speak("cepstral", "Diane", "Wait we are trying to find
the
next person");
var m1Session = new Session("sofia/gateway/westhawk/0663");
cSession.setHangupHook(on_hangup1);
m1Session.setHangupHook(on_hangup1);
bridge(cSession, m1Session);
}

(end js).


I tried
cSession.bridge("sofia/gateway/westhawk/0663|sofia/gateway/westhawk/
0661");
but that didn't work either.

Thanks, Birgit

_______________________________________________
Freeswitch-users mailing list
Freeswitch-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org
Back to top
Display posts from previous:   
Post new topic   Reply to topic    VoIP Mailing List Archives Forum Index -> freeSWITCH Users All times are GMT - 5 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group

VoiceMeUp - Corporate & Wholesale VoIP Services