[Freeswitch-users] Javascript, Hanguphooks, CDRs and User Variables.

Keith Laaks keithl at voxtelecom.co.za
Tue Mar 31 04:25:12 PDT 2009


Hi,

 

Here is what I am trying to accomplish:

 

//--- completecall.js trigged via api_hangup_hook ----

 

use("CURL");

 

const loglevel='notice';

var uuid = request.getHeader("Core-UUID");    

var billmsec = request.getHeader("billmsec");

var urlrequest = "UUID=" + uuid + "&billmsec=" + billmsec;

 

function reply_callback(string, arg) {

  string = string.substring(string.search("API")+3);

  string = string.substring(0,string.search("<"));

  var splits = string.split("~");

  var i = 0;

  var length = splits.length;

  for (i=0; i < length; i++) {

    var fv=splits[i].split("=");

    console_log(loglevel, "setting: " + fv[0] + " = " + fv[1] + "\n");

    //session.setVariable(fv[0],fv[1]); // Cant use set here as the
session is dead by now - the call has been terminated

  }

  return true;

}

 

var curl = new CURL();

console_log(loglevel,"-- completecall.js ->" + url + "?" + urlrequest +
"\n");

 

var env = request.dumpENV("text");  // debug

console_log("ENV:\n", env + "\n"); // debug

 

curl.run("POST", "http://127.0.0.1:10502/rate", urlrequest,
reply_callback, "CBrate\n");

//returns string like <sometag>APIcharge=10.20</sometag>

 

exit();

 

 

So the trick is that I am accessing an external system via CURL where
the call rate is calculated and returned (based on the call duration and
uuid). 

Now I need to use a 'setVariable' to get it back as one of the
parameters that the cdr module can write out for me.

Note that in the above, the external system will return 'charge=value'. 

I need to set the variable 'charge' to the value in 'value'.

Then using the config below, 'charge' can be written out as one of the
cdr fields.

 

 

<configuration name="cdr_csv.conf" description="CDR CSV Format">

  <settings>

    <!-- 'cdr-csv' will always be appended to log-base -->

    <!--<param name="log-base" value="/var/log"/>-->

    <param name="default-template" value="def"/>

    <!-- This is like the info app but after the call is hung up -->

    <param name="debug" value="true"/>

    <param name="rotate-on-hup" value="true"/>

    <!-- may be a b or ab -->

    <param name="legs" value="a"/>

  </settings>

  <templates>

     <template
name="def">"${accountcode}","${billsec}","${charge}","${sip_req_user}","
${hangup_cause}","${uuid}","${bleg_uuid}"</template>

  </templates>

</configuration>

 

 

 

Best Regards

 

Keith

 

 

From: Anthony Minessale [mailto:anthony.minessale at gmail.com] 
Sent: 31 March 2009 00:13
To: freeswitch-users at lists.freeswitch.org
Subject: Re: [Freeswitch-users] Javascript, Hanguphooks,CDRs and User
Variables.

 

in your script called via api_hangup_hook:

var env = request.dumpENV("text");

consoleLog("info", env);

all those vars are there for you, you can get the individually with 
var hval = request.getHeader("some_header");



2009/3/30 Keith Laaks <keithl at voxtelecom.co.za>

Hi,

 

I have an application where my Javascript hanguphook code calculates a
value (e.g. the cost of the call which can only be calculated post
hangup) and I need to have that value appear as a field in the cdrs.

 

As the 'session' object is no longer available for javascript logic post
hangup, I can't figure out how to 'set' a user variable post hangup,
such that it can be written to the cdr when the state changes from
CS_HANGUP -> CS_REPORTING.  Maybe it's just not possible......? It would
be a pity to have to resort to writing out cdrs from the javascript
itself and duplicating what fs does so well already.

 

Any advice / suggestions would be appreciated.

 

Best Regards

 

Keith

 


_______________________________________________
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/

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

FreeSWITCH Developer Conference
sip:888 at conference.freeswitch.org
<mailto:sip%3A888 at conference.freeswitch.org> 
iax:guest at conference.freeswitch.org/888
googletalk:conf+888 at conference.freeswitch.org
<mailto: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-users/attachments/20090331/ff03685f/attachment-0002.html 


More information about the FreeSWITCH-users mailing list