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

Anthony Minessale anthony.minessale at gmail.com
Tue Mar 31 05:59:34 PDT 2009


if you set the channel variable 'session_in_hangup_hook=true' early in the
call, the session will be present in your script.



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

>  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 <MSN%3Aanthony_minessale at hotmail.com>
> GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com<PAYPAL%3Aanthony.minessale at gmail.com>
> IRC: irc.freenode.net #freeswitch
>
> FreeSWITCH Developer Conference
> sip:888 at conference.freeswitch.org <sip%3A888 at conference.freeswitch.org>
> iax:guest at conference.freeswitch.org/888
> googletalk:conf+888 at conference.freeswitch.org<googletalk%3Aconf%2B888 at conference.freeswitch.org>
> pstn:213-799-1400
>
> _______________________________________________
> 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 <MSN%3Aanthony_minessale at hotmail.com>
GTALK/JABBER/PAYPAL:anthony.minessale at gmail.com<PAYPAL%3Aanthony.minessale at gmail.com>
IRC: irc.freenode.net #freeswitch

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


More information about the FreeSWITCH-users mailing list