You are indeed correct.  I still had my asterisk hat on, and was expecting a hang-up event to be fired with the call outcome.  I was explicitly testing for call failure.  I’ve not modified the code to test the result of the originate and it works as expected.

 

I will add some words to the wiki explaining this for those converting from Asterisk

 

Regards,

 


From: freeswitch-users-bounces@lists.freeswitch.org [mailto:freeswitch-users-bounces@lists.freeswitch.org] On Behalf Of Anthony Minessale
Sent: 14 February 2009 22:45
To: freeswitch-users@lists.freeswitch.org
Subject: Re: [Freeswitch-users] Problems with Originate

 


What do you suggest is not working?

the call failed and it *did not* run the code inside if (new_session.ready())
The call was never established therefore it would not run the hangup hook either.
In order to trigger the hangup hook the session would need to exist.  If the session could not originate the new_session obj
is an empty shell with no actual session inside.

var new_session = new Session(<dial string>, <existing session>);
if (!new_session.ready()) {
   // the call never was established.
}

I gave you real code to try in my last email that you completely ignored.....


and finally you are declaring the function wrong

declare it at the top.

function on_hangup(hup_session, how)
{
.....
}

I sense you seem to think things are going to magically transform into however you are thinking they should work
instead of you perhaps learning how they actually work.


On Sat, Feb 14, 2009 at 1:47 PM, Nik Middleton <nik.middleton@noblesolutions.co.uk> wrote:

Nope,

 

Still not working.  Here's my little test javascript

 

var new_session = new Session('{ignore_early_media=true,}sofia/internal/1001@192.168.3.206');

   

            //set the on_hangup function to be called when this session is hungup                                                                                           

            new_session.setHangupHook(on_hangup,"hup");

           

            var on_hangup = function(hup_session, how) {                                                                                                                                                                                                                                                                                          

                                    console_log("err","In hangup section\n");                                                  

                                    //exit here would end the script so you could cleanup and just be done                                                                                     

                                    exit();                                                                                                                                                     

                        } 

           

           

    if (new_session.ready()) {

                        new_session.answer( );

                        new_session.sleep(1500);

                        new_session.streamFile("female2.wav");

            }

 

And this is the output

 

[NOTICE] sofia.c:3090 sofia_handle_sip_i_state() Hangup sofia/internal/sip:1001@192.168.0.29:5060 [CS_CONSUME_MEDIA] [USER_BUSY]

[ERR] switch_ivr_originate.c:1116 switch_ivr_originate() Cannot create outgoing channel of type [user] cause: [USER_BUSY]

[INFO] mod_dptools.c:1909 audio_bridge_function() Originate Failed.  Cause: USER_BUSY

[NOTICE] switch_core_session.c:957 switch_core_session_thread() Session 95 (sofia/internal/sip:1001@192.168.0.29:5060) Ended

[NOTICE] switch_core_session.c:959 switch_core_session_thread() Close Channel sofia/internal/sip:1001@192.168.0.29:5060 [CS_HANGUP]

[NOTICE] mod_dptools.c:600 answer_function() Channel [sofia/internal/0000000000@192.168.3.206] has been answered

 


From: freeswitch-users-bounces@lists.freeswitch.org [mailto:freeswitch-users-bounces@lists.freeswitch.org] On Behalf Of Anthony Minessale
Sent: 14 February 2009 17:20


To: freeswitch-users@lists.freeswitch.org
Subject: Re: [Freeswitch-users] Problems with Originate

 

are you running this as a dialplan app?
session is a reserved variable name for the session you executed the app on.

are you using an alternate name for your new session like my_session etc....?

this works for me, try it yourself.

var my_session = new Session("sofia/external/7003@conference.freeswitch.org");
consoleLog("err", "ready: " + my_session.ready() + "\n");


On Sat, Feb 14, 2009 at 7:17 AM, Nik Middleton <nik.middleton@noblesolutions.co.uk> wrote:

Understood.

 

However, using the second method, how can I trap on call failure?

 

If I originate a call and the user is busy, the console reports this fact, but then the script continues to execute

 

if (session.ready()) {

                        console_log("notice","Session result=[" + session.cause + "]  \n");

                        if (session.cause == "USER_BUSY") {

                                                            Disposition = "BUSY";

                                                session.Hangup();

                        }

In this case session.cause reports 'NONE'  and what's surprising is that even though the call failed (busy) session.ready returns a true value.


From: freeswitch-users-bounces@lists.freeswitch.org [mailto:freeswitch-users-bounces@lists.freeswitch.org] On Behalf Of Anthony Minessale
Sent: 13 February 2009 13:55

Subject: Re: [Freeswitch-users] Problems with Originate

 

The first way is deprecated and will be removed.
The 2nd way is the correct way.

On Fri, Feb 13, 2009 at 5:48 AM, Alexandru Nedelcu <alex@sinapticode.ro> wrote:

On Fri, 2009-02-13 at 13:33 +0200, Alexandru Nedelcu wrote:
> The problem with this setup is that origination_caller_id_number doesn't
> work from inside the JS file (when calling session.originate).

I just discovered something interesting.

When originating the call like this ...
 session = new Session("<connection_string>")
instead of this ...
 session = new Session(); session.originate("<connection_string>")

... then it works. Is this some kind of bug, or what's the difference
here?


Thanks,

--
Alexandru Nedelcu
Software Developer, Sinapticode



_______________________________________________
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




--
Anthony Minessale II

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

AIM: anthm
MSN:anthony_minessale@hotmail.com
GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com
IRC: irc.freenode.net #freeswitch

FreeSWITCH Developer Conference
sip:888@conference.freeswitch.org
iax:guest@conference.freeswitch.org/888
googletalk:conf+888@conference.freeswitch.org
pstn:213-799-1400


_______________________________________________
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




--
Anthony Minessale II

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

AIM: anthm
MSN:anthony_minessale@hotmail.com
GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com
IRC: irc.freenode.net #freeswitch

FreeSWITCH Developer Conference
sip:888@conference.freeswitch.org
iax:guest@conference.freeswitch.org/888
googletalk:conf+888@conference.freeswitch.org
pstn:213-799-1400


_______________________________________________
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




--
Anthony Minessale II

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

AIM: anthm
MSN:anthony_minessale@hotmail.com
GTALK/JABBER/PAYPAL:anthony.minessale@gmail.com
IRC: irc.freenode.net #freeswitch

FreeSWITCH Developer Conference
sip:888@conference.freeswitch.org
iax:guest@conference.freeswitch.org/888
googletalk:conf+888@conference.freeswitch.org
pstn:213-799-1400