<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
-->
</style>
<!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=WordSection1>
<p class=MsoNormal>Hello,<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>I’ve been looking for this on voip-info and this list
threads, and I am guessing I am not looking right.<o:p></o:p></p>
<p class=MsoNormal>What I need is the way to capture (and write to DB) the
information on who ‘picked’ or ‘received’ the incoming
call.<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Here is the example of .rb file that is called from
extensions.conf:<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal> private <o:p></o:p></p>
<p class=MsoNormal> def
lokal<o:p></o:p></p>
<p class=MsoNormal> call_log_id
= nil<o:p></o:p></p>
<p class=MsoNormal> begin<o:p></o:p></p>
<p class=MsoNormal> call_log_id
= call_log()<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> $agi.answer<o:p></o:p></p>
<p class=MsoNormal> $agi.exec('WAIT',
'2')<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> local_channels
= get_locals()<o:p></o:p></p>
<p class=MsoNormal> dial_params
= local_channels.join('&')<o:p></o:p></p>
<p class=MsoNormal> dial_params
<< "||m(moh-0900-#{@moh_id})" if moh_available?()<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal> 1.times
do<o:p></o:p></p>
<p class=MsoNormal> r
= $agi.exec('DIAL', dial_params)<o:p></o:p></p>
<p class=MsoNormal> r
= $agi.get_variable('DIALSTATUS')<o:p></o:p></p>
<p class=MsoNormal> retry
if r.message.include?('BUSY')<o:p></o:p></p>
<p class=MsoNormal> end<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> ensure<o:p></o:p></p>
<p class=MsoNormal> call_log(call_log_id)
unless call_log_id.nil?<o:p></o:p></p>
<p class=MsoNormal> end<o:p></o:p></p>
<p class=MsoNormal> end<o:p></o:p></p>
<p class=MsoNormal> <o:p></o:p></p>
<p class=MsoNormal> private<o:p></o:p></p>
<p class=MsoNormal> def
get_locals<o:p></o:p></p>
<p class=MsoNormal> local_channels
= @locals.map { |x| 'Sip/operator1&Zap/' + x.strip }<o:p></o:p></p>
<p class=MsoNormal> #
FIX - ovaj raise treba da prijavi nedefinisane lokale za servis a ne za telefon<o:p></o:p></p>
<p class=MsoNormal> raise
"Nisu definisani lokalni kanali u settings za telephone_id =
#{@settings_row['telephone_id']}" if local_channels.empty?<o:p></o:p></p>
<p class=MsoNormal> local_channels<o:p></o:p></p>
<p class=MsoNormal> end<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>As you see the call can be picked either by the Zap channels
in locals of SIP/operator user. Now i Need to know here:<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal> $my.select_db('tvr2')<o:p></o:p></p>
<p class=MsoNormal> $my.query("UPDATE
call_log SET endtime = NOW(), local=#SOMETHINGHERE# WHERE id =
#{call_log_id}")<o:p></o:p></p>
<p class=MsoNormal> raise
'Cant write from log: call_log_id = #{call_log_id}' if $my.affected_rows() != 1<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal> if place of #SOMETHINGHERE# - where the call was
transferred (from the part above).<o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal>Anyone?><o:p></o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
<p class=MsoNormal><o:p> </o:p></p>
</div>
<BR><BR>__________ Information from ESET NOD32 Antivirus, version of virus signature database 5313 (20100726) __________<BR><BR>The message was checked by ESET NOD32 Antivirus.<BR><BR><A HREF="http://www.eset.com">http://www.eset.com</A><BR> </body>
</html>