<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[Freeswitch-trunk][17080] </title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<div id="header">FreeSWITCH Subversion</div>
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://fisheye.freeswitch.org/changelog/FreeSWITCH?cs=17080">17080</a></dd>
<dt>Author</dt> <dd>rupa</dd>
<dt>Date</dt> <dd>2010-03-23 11:35:38 -0500 (Tue, 23 Mar 2010)</dd>
</dl>
<h3>Log Message</h3>
<pre>update branch to <a href="http://fisheye.freeswitch.org/changelog/FreeSWITCH?cs=17079">r17079</a></pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#freeswitchbranchesrupa_limitFreeswitch2008expresssln">freeswitch/branches/rupa_limit/Freeswitch.2008.express.sln</a></li>
<li><a href="#freeswitchbranchesrupa_limitFreeswitch2008sln">freeswitch/branches/rupa_limit/Freeswitch.2008.sln</a></li>
<li><a href="#freeswitchbranchesrupa_limitMakefileam">freeswitch/branches/rupa_limit/Makefile.am</a></li>
<li><a href="#freeswitchbranchesrupa_limitbootstrapsh">freeswitch/branches/rupa_limit/bootstrap.sh</a></li>
<li><a href="#freeswitchbranchesrupa_limitbuildmodulesconfin">freeswitch/branches/rupa_limit/build/modules.conf.in</a></li>
<li><a href="#freeswitchbranchesrupa_limitconfsip_profilesinternalxml">freeswitch/branches/rupa_limit/conf/sip_profiles/internal.xml</a></li>
<li><a href="#freeswitchbranchesrupa_limitconfigurein">freeswitch/branches/rupa_limit/configure.in</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribdiegoviolarubymiscpresencerb">freeswitch/branches/rupa_limit/contrib/diegoviola/ruby/misc/presence.rb</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribmodxml_intmod_xml_odbcxml_odbcconfxml">freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/xml_odbc.conf.xml</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribsevenREADME">freeswitch/branches/rupa_limit/contrib/seven/README</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribsevenluagateway_reportlua">freeswitch/branches/rupa_limit/contrib/seven/lua/gateway_report.lua</a></li>
<li><a href="#freeswitchbranchesrupa_limitdebianfreeswitchconffiles">freeswitch/branches/rupa_limit/debian/freeswitch.conffiles</a></li>
<li><a href="#freeswitchbranchesrupa_limitdebianfreeswitchinit">freeswitch/branches/rupa_limit/debian/freeswitch.init</a></li>
<li><a href="#freeswitchbranchesrupa_limitdebianfreeswitchinstall">freeswitch/branches/rupa_limit/debian/freeswitch.install</a></li>
<li><a href="#freeswitchbranchesrupa_limitdebianrules">freeswitch/branches/rupa_limit/debian/rules</a></li>
<li><a href="#freeswitchbranchesrupa_limitdocsChangeLog">freeswitch/branches/rupa_limit/docs/ChangeLog</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibseslESLi">freeswitch/branches/rupa_limit/libs/esl/ESL.i</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibseslfs_clic">freeswitch/branches/rupa_limit/libs/esl/fs_cli.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibseslivrdc">freeswitch/branches/rupa_limit/libs/esl/ivrd.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibsesljavaesl_wrapcpp">freeswitch/branches/rupa_limit/libs/esl/java/esl_wrap.cpp</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibsesljavaorgfreeswitcheslESLconnectionjava">freeswitch/branches/rupa_limit/libs/esl/java/org/freeswitch/esl/ESLconnection.java</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibsesljavaorgfreeswitchesleslJNIjava">freeswitch/branches/rupa_limit/libs/esl/java/org/freeswitch/esl/eslJNI.java</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibseslluaesl_wrapcpp">freeswitch/branches/rupa_limit/libs/esl/lua/esl_wrap.cpp</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibseslmanagedESLPINVOKEcs">freeswitch/branches/rupa_limit/libs/esl/managed/ESLPINVOKE.cs</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibseslmanagedESLconnectioncs">freeswitch/branches/rupa_limit/libs/esl/managed/ESLconnection.cs</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibseslmanagedesl_wrapcpp">freeswitch/branches/rupa_limit/libs/esl/managed/esl_wrap.cpp</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibseslperlesl_wrapcpp">freeswitch/branches/rupa_limit/libs/esl/perl/esl_wrap.cpp</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibseslphpESLphp">freeswitch/branches/rupa_limit/libs/esl/php/ESL.php</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibseslphpesl_wrapcpp">freeswitch/branches/rupa_limit/libs/esl/php/esl_wrap.cpp</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibseslpythonesl_wrapcpp">freeswitch/branches/rupa_limit/libs/esl/python/esl_wrap.cpp</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibseslrubyesl_wrapcpp">freeswitch/branches/rupa_limit/libs/esl/ruby/esl_wrap.cpp</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibseslsrceslc">freeswitch/branches/rupa_limit/libs/esl/src/esl.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibseslsrcesl_eventc">freeswitch/branches/rupa_limit/libs/esl/src/esl_event.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibseslsrcesl_oopcpp">freeswitch/branches/rupa_limit/libs/esl/src/esl_oop.cpp</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibseslsrcincludeeslh">freeswitch/branches/rupa_limit/libs/esl/src/include/esl.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibseslsrcincludeesl_ooph">freeswitch/branches/rupa_limit/libs/esl/src/include/esl_oop.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibsminiupnpcminiwgetc">freeswitch/branches/rupa_limit/libs/miniupnpc/miniwget.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssofiasipconfigureac">freeswitch/branches/rupa_limit/libs/sofia-sip/configure.ac</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssqlitesrcsqliteInth">freeswitch/branches/rupa_limit/libs/sqlite/src/sqliteInt.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibswin32DownloadJSON2008vcproj">freeswitch/branches/rupa_limit/libs/win32/Download JSON.2008.vcproj</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibswin32jsonlibjson2008vcproj">freeswitch/branches/rupa_limit/libs/win32/json/libjson.2008.vcproj</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcincludeprivateswitch_core_pvth">freeswitch/branches/rupa_limit/src/include/private/switch_core_pvt.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcincludeswitch_coreh">freeswitch/branches/rupa_limit/src/include/switch_core.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcincludeswitch_cpph">freeswitch/branches/rupa_limit/src/include/switch_cpp.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcincludeswitch_ivrh">freeswitch/branches/rupa_limit/src/include/switch_ivr.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcincludeswitch_rtph">freeswitch/branches/rupa_limit/src/include/switch_rtp.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcincludeswitch_typesh">freeswitch/branches/rupa_limit/src/include/switch_types.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcincludeswitch_utilsh">freeswitch/branches/rupa_limit/src/include/switch_utils.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodapplicationsmod_cidlookupmod_cidlookupc">freeswitch/branches/rupa_limit/src/mod/applications/mod_cidlookup/mod_cidlookup.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodapplicationsmod_commandsmod_commandsc">freeswitch/branches/rupa_limit/src/mod/applications/mod_commands/mod_commands.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodapplicationsmod_curlMakefile">freeswitch/branches/rupa_limit/src/mod/applications/mod_curl/Makefile</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodapplicationsmod_curlmod_curl2008vcproj">freeswitch/branches/rupa_limit/src/mod/applications/mod_curl/mod_curl.2008.vcproj</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodapplicationsmod_dptoolsmod_dptoolsc">freeswitch/branches/rupa_limit/src/mod/applications/mod_dptools/mod_dptools.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodapplicationsmod_faxmod_faxc">freeswitch/branches/rupa_limit/src/mod/applications/mod_fax/mod_fax.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodapplicationsmod_fifomod_fifoc">freeswitch/branches/rupa_limit/src/mod/applications/mod_fifo/mod_fifo.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodapplicationsmod_lcrmod_lcrc">freeswitch/branches/rupa_limit/src/mod/applications/mod_lcr/mod_lcr.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodapplicationsmod_nibblebillmod_nibblebillc">freeswitch/branches/rupa_limit/src/mod/applications/mod_nibblebill/mod_nibblebill.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodapplicationsmod_valet_parkingmod_valet_parkingc">freeswitch/branches/rupa_limit/src/mod/applications/mod_valet_parking/mod_valet_parking.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodapplicationsmod_voicemailmod_voicemailc">freeswitch/branches/rupa_limit/src/mod/applications/mod_voicemail/mod_voicemail.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodasr_ttsmod_unimrcpmod_unimrcpc">freeswitch/branches/rupa_limit/src/mod/asr_tts/mod_unimrcp/mod_unimrcp.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_dingalingmod_dingalingc">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_dingaling/mod_dingaling.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skinnyMakefileam">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skinny/Makefile.am</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skinnymod_skinnyc">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skinny/mod_skinny.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skinnymod_skinnyh">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skinny/mod_skinny.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skinnyskinny_protocolc">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skinny/skinny_protocol.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skinnyskinny_protocolh">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skinny/skinny_protocol.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_sofiamod_sofiac">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_sofia/mod_sofia.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_sofiasofiac">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_sofia/sofia.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_sofiasofia_gluec">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_sofia/sofia_glue.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_sofiasofia_presencec">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_sofia/sofia_presence.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodformatsmod_sndfilemod_sndfilec">freeswitch/branches/rupa_limit/src/mod/formats/mod_sndfile/mod_sndfile.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodlanguagesmod_javasrcorgfreeswitchswigCoreSessionjava">freeswitch/branches/rupa_limit/src/mod/languages/mod_java/src/org/freeswitch/swig/CoreSession.java</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodlanguagesmod_javasrcorgfreeswitchswigfreeswitchJNIjava">freeswitch/branches/rupa_limit/src/mod/languages/mod_java/src/org/freeswitch/swig/freeswitchJNI.java</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodlanguagesmod_javaswitch_swig_wrapcpp">freeswitch/branches/rupa_limit/src/mod/languages/mod_java/switch_swig_wrap.cpp</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodlanguagesmod_luamod_lua_wrapcpp">freeswitch/branches/rupa_limit/src/mod/languages/mod_lua/mod_lua_wrap.cpp</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodlanguagesmod_managedfreeswitch_wrapcxx">freeswitch/branches/rupa_limit/src/mod/languages/mod_managed/freeswitch_wrap.cxx</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodlanguagesmod_managedmanagedswigcs">freeswitch/branches/rupa_limit/src/mod/languages/mod_managed/managed/swig.cs</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodlanguagesmod_perlmod_perl_wrapcpp">freeswitch/branches/rupa_limit/src/mod/languages/mod_perl/mod_perl_wrap.cpp</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodlanguagesmod_pythonmod_python_wrapcpp">freeswitch/branches/rupa_limit/src/mod/languages/mod_python/mod_python_wrap.cpp</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodsaymod_say_demod_say_dec">freeswitch/branches/rupa_limit/src/mod/say/mod_say_de/mod_say_de.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodsaymod_say_enmod_say_enc">freeswitch/branches/rupa_limit/src/mod/say/mod_say_en/mod_say_en.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodsaymod_say_esmod_say_esc">freeswitch/branches/rupa_limit/src/mod/say/mod_say_es/mod_say_es.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodsaymod_say_frmod_say_frc">freeswitch/branches/rupa_limit/src/mod/say/mod_say_fr/mod_say_fr.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodsaymod_say_humod_say_huc">freeswitch/branches/rupa_limit/src/mod/say/mod_say_hu/mod_say_hu.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodsaymod_say_itmod_say_itc">freeswitch/branches/rupa_limit/src/mod/say/mod_say_it/mod_say_it.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodsaymod_say_nlmod_say_nlc">freeswitch/branches/rupa_limit/src/mod/say/mod_say_nl/mod_say_nl.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodsaymod_say_rumod_say_ruc">freeswitch/branches/rupa_limit/src/mod/say/mod_say_ru/mod_say_ru.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodsaymod_say_thmod_say_thc">freeswitch/branches/rupa_limit/src/mod/say/mod_say_th/mod_say_th.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodsaymod_say_zhmod_say_zhc">freeswitch/branches/rupa_limit/src/mod/say/mod_say_zh/mod_say_zh.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodxml_intmod_xml_curlmod_xml_curlc">freeswitch/branches/rupa_limit/src/mod/xml_int/mod_xml_curl/mod_xml_curl.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodxml_intmod_xml_rpcmod_xml_rpcc">freeswitch/branches/rupa_limit/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcswitch_channelc">freeswitch/branches/rupa_limit/src/switch_channel.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcswitch_corec">freeswitch/branches/rupa_limit/src/switch_core.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcswitch_core_codecc">freeswitch/branches/rupa_limit/src/switch_core_codec.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcswitch_core_sessionc">freeswitch/branches/rupa_limit/src/switch_core_session.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcswitch_cppcpp">freeswitch/branches/rupa_limit/src/switch_cpp.cpp</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcswitch_ivrc">freeswitch/branches/rupa_limit/src/switch_ivr.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcswitch_ivr_bridgec">freeswitch/branches/rupa_limit/src/switch_ivr_bridge.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcswitch_ivr_originatec">freeswitch/branches/rupa_limit/src/switch_ivr_originate.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcswitch_ivr_play_sayc">freeswitch/branches/rupa_limit/src/switch_ivr_play_say.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcswitch_rtpc">freeswitch/branches/rupa_limit/src/switch_rtp.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcswitch_stunc">freeswitch/branches/rupa_limit/src/switch_stun.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcswitch_timec">freeswitch/branches/rupa_limit/src/switch_time.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcswitch_utilsc">freeswitch/branches/rupa_limit/src/switch_utils.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitw32LibraryFreeSwitchCore2008vcproj">freeswitch/branches/rupa_limit/w32/Library/FreeSwitchCore.2008.vcproj</a></li>
<li><a href="#freeswitchbranchesrupa_limitw32LibraryFreeSwitchCorevcproj">freeswitch/branches/rupa_limit/w32/Library/FreeSwitchCore.vcproj</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#freeswitchbranchesrupa_limitbuildfs_ivrdinitredhat">freeswitch/branches/rupa_limit/build/fs_ivrd.init.redhat</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribmodxml_intmod_xml_odbcstructurepgsqlsql">freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/structure.pgsql.sql</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribmodxml_intmod_xml_odbctestdatapgsqlsql">freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/testdata.pgsql.sql</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribmodxml_intmod_xml_odbcxml_odbc_templatesdirectorygatewaysmysqlxml">freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/xml_odbc_templates/directory-gateways.mysql.xml</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribmodxml_intmod_xml_odbcxml_odbc_templatesdirectorygatewayspgsqlxml">freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/xml_odbc_templates/directory-gateways.pgsql.xml</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribmodxml_intmod_xml_odbcxml_odbc_templatesdirectoryusermysqlxml">freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/xml_odbc_templates/directory-user.mysql.xml</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribmodxml_intmod_xml_odbcxml_odbc_templatesdirectoryuserpgsqlxml">freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/xml_odbc_templates/directory-user.pgsql.xml</a></li>
<li>freeswitch/branches/rupa_limit/contrib/nazim/</li>
<li>freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/</li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdAUTHORS">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/AUTHORS</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdCOPYING">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/COPYING</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdChangeLog">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/ChangeLog</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdINSTALL">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/INSTALL</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdMakefileam">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/Makefile.am</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdNEWS">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/NEWS</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdREADME">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/README</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdbootstrapsh">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/bootstrap.sh</a></li>
<li>freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/</li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdconfdb1conf">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/db1.conf</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdconflighttpdconfexample">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/lighttpd.conf.example</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdconfluaexecconfdist">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/luaexec.conf.dist</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdconftestlua">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/test.lua</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdconfxmlcdrconfdist">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/xmlcdr.conf.dist</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdconfigureac">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/configure.ac</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdinstallsh">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/install-sh</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdlogc">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/log.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdlogh">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/log.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdmainc">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/main.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdmissing">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/missing</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdplugc">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plug.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdplugh">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plug.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdplugcommonh">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugcommon.h</a></li>
<li>freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/</li>
<li>freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/luaexec/</li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdpluginsluaexecMakefileam">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/luaexec/Makefile.am</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdpluginsluaexecluaexecc">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/luaexec/luaexec.c</a></li>
<li>freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/mysqlcdr/</li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdpluginsmysqlcdrMakefileam">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/mysqlcdr/Makefile.am</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdpluginsmysqlcdrdbcommonc">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/mysqlcdr/dbcommon.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdpluginsmysqlcdrdbcommonh">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/mysqlcdr/dbcommon.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdpluginsmysqlcdrmysqlcdrc">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/mysqlcdr/mysqlcdr.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdplugldrc">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugldr.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdplugldrh">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugldr.h</a></li>
<li>freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/scripts/</li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdstmtexpc">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/stmtexp.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdstmtexph">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/stmtexp.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdstmtexpldrc">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/stmtexpldr.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdstmtexpldrh">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/stmtexpldr.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdstmtexptabh">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/stmtexptab.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdtestxml">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/test.xml</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdurldecodec">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/urldecode.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdurldecodeh">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/urldecode.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribsevenfsairREADME">freeswitch/branches/rupa_limit/contrib/seven/fsair/README</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribsevenluabatch_dialerlua">freeswitch/branches/rupa_limit/contrib/seven/lua/batch_dialer.lua</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribsevenluadialerlua">freeswitch/branches/rupa_limit/contrib/seven/lua/dialer.lua</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibseslperlESLDispatchpm">freeswitch/branches/rupa_limit/libs/esl/perl/ESL/Dispatch.pm</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibseslperldispatchpl">freeswitch/branches/rupa_limit/libs/esl/perl/dispatch.pl</a></li>
<li>freeswitch/branches/rupa_limit/libs/silk/</li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkupdate">freeswitch/branches/rupa_limit/libs/silk/.update</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkAUTHORS">freeswitch/branches/rupa_limit/libs/silk/AUTHORS</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkCOPYING">freeswitch/branches/rupa_limit/libs/silk/COPYING</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkChangeLog">freeswitch/branches/rupa_limit/libs/silk/ChangeLog</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkINSTALL">freeswitch/branches/rupa_limit/libs/silk/INSTALL</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkMakefileam">freeswitch/branches/rupa_limit/libs/silk/Makefile.am</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkNEWS">freeswitch/branches/rupa_limit/libs/silk/NEWS</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkREADME">freeswitch/branches/rupa_limit/libs/silk/README</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkSilk_SDKsln">freeswitch/branches/rupa_limit/libs/silk/Silk_SDK.sln</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkconfiguregnu">freeswitch/branches/rupa_limit/libs/silk/configure.gnu</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkconfigurein">freeswitch/branches/rupa_limit/libs/silk/configure.in</a></li>
<li>freeswitch/branches/rupa_limit/libs/silk/doc/</li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkdocSILKDataSheetpdf">freeswitch/branches/rupa_limit/libs/silk/doc/SILKDataSheet.pdf</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkdocSILK_RTP_PayloadFormatpdf">freeswitch/branches/rupa_limit/libs/silk/doc/SILK_RTP_PayloadFormat.pdf</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkdocSILK_SDK_APIpdf">freeswitch/branches/rupa_limit/libs/silk/doc/SILK_SDK_API.pdf</a></li>
<li>freeswitch/branches/rupa_limit/libs/silk/interface/</li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkinterfaceSKP_Silk_SDK_APIh">freeswitch/branches/rupa_limit/libs/silk/interface/SKP_Silk_SDK_API.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkinterfaceSKP_Silk_controlh">freeswitch/branches/rupa_limit/libs/silk/interface/SKP_Silk_control.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkinterfaceSKP_Silk_errorsh">freeswitch/branches/rupa_limit/libs/silk/interface/SKP_Silk_errors.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkinterfaceSKP_Silk_typedefh">freeswitch/branches/rupa_limit/libs/silk/interface/SKP_Silk_typedef.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkreadmetxt">freeswitch/branches/rupa_limit/libs/silk/readme.txt</a></li>
<li>freeswitch/branches/rupa_limit/libs/silk/src/</li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_A2NLSFc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_A2NLSF.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_CNGc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_CNG.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_HP_variable_cutoff_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_HP_variable_cutoff_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_Inlinesh">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_Inlines.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_LBRR_resetc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_LBRR_reset.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_LPC_inv_pred_gainc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_LPC_inv_pred_gain.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_LPC_stabilizec">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_LPC_stabilize.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_LPC_synthesis_filterc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_LPC_synthesis_filter.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_LPC_synthesis_order16c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_LPC_synthesis_order16.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_LP_variable_cutoffc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_LP_variable_cutoff.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_LSF_cos_tablec">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_LSF_cos_table.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_LTP_analysis_filter_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_LTP_analysis_filter_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_LTP_scale_ctrl_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_LTP_scale_ctrl_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_MAc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_MA.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_NLSF2Ac">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_NLSF2A.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_NLSF2A_stablec">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_NLSF2A_stable.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_NLSF_MSVQ_decodec">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_NLSF_MSVQ_decode.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_NLSF_MSVQ_encode_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_NLSF_MSVQ_encode_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_NLSF_VQ_rate_distortion_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_NLSF_VQ_rate_distortion_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_NLSF_VQ_sum_error_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_NLSF_VQ_sum_error_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_NLSF_VQ_weights_laroiac">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_NLSF_VQ_weights_laroia.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_NLSF_stabilizec">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_NLSF_stabilize.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_NSQc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_NSQ.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_NSQ_del_decc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_NSQ_del_dec.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_PLCc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_PLC.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_PLCh">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_PLC.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_SigProc_FIXh">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_SigProc_FIX.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_VADc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_VAD.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_VQ_nearest_neighbor_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_VQ_nearest_neighbor_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_allpass_intc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_allpass_int.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_ana_filt_bank_1c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_ana_filt_bank_1.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_apply_sine_windowc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_apply_sine_window.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_array_maxabsc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_array_maxabs.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_autocorrc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_autocorr.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_biquadc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_biquad.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_biquad_altc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_biquad_alt.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_burg_modifiedc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_burg_modified.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_bwexpanderc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_bwexpander.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_bwexpander_32c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_bwexpander_32.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_code_signsc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_code_signs.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_common_pitch_est_definesh">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_common_pitch_est_defines.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_control_codec_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_control_codec_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_corrMatrix_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_corrMatrix_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_create_init_destroyc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_create_init_destroy.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_dec_APIc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_dec_API.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_decode_corec">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_decode_core.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_decode_framec">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_decode_frame.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_decode_indices_v4c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_decode_indices_v4.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_decode_parametersc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_decode_parameters.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_decode_parameters_v4c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_decode_parameters_v4.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_decode_pulsesc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_decode_pulses.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_decoder_set_fsc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_decoder_set_fs.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_defineh">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_define.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_define_FIXh">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_define_FIX.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_detect_SWB_inputc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_detect_SWB_input.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_enc_APIc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_enc_API.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_encode_frame_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_encode_frame_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_encode_parametersc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_encode_parameters.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_encode_parameters_v4c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_encode_parameters_v4.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_encode_pulsesc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_encode_pulses.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_find_LPC_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_find_LPC_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_find_LTP_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_find_LTP_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_find_pitch_lags_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_find_pitch_lags_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_find_pred_coefs_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_find_pred_coefs_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_gain_quantc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_gain_quant.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_init_encoder_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_init_encoder_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_inner_prod_alignedc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_inner_prod_aligned.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_interpolatec">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_interpolate.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_k2ac">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_k2a.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_k2a_Q16c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_k2a_Q16.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_lin2logc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_lin2log.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_log2linc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_log2lin.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_lowpass_intc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_lowpass_int.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_lowpass_shortc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_lowpass_short.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_macrosh">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_macros.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_mainh">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_main.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_main_FIXh">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_main_FIX.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_noise_shape_analysis_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_noise_shape_analysis_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_perceptual_parameters_FIXh">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_perceptual_parameters_FIX.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_pitch_analysis_corec">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_pitch_analysis_core.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_pitch_est_definesh">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_pitch_est_defines.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_pitch_est_tablesc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_pitch_est_tables.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_prefilter_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_prefilter_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_process_NLSFs_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_process_NLSFs_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_process_gains_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_process_gains_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_pulses_to_bytesc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_pulses_to_bytes.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_quant_LTP_gains_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_quant_LTP_gains_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_range_coderc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_range_coder.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_regularize_correlations_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_regularize_correlations_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_resample_1_2c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_resample_1_2.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_resample_1_2_coarsec">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_resample_1_2_coarse.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_resample_1_2_coarsestc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_resample_1_2_coarsest.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_resample_1_3c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_resample_1_3.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_resample_2_1_coarsec">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_resample_2_1_coarse.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_resample_2_3c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_resample_2_3.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_resample_2_3_coarsec">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_resample_2_3_coarse.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_resample_2_3_coarsestc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_resample_2_3_coarsest.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_resample_2_3_romc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_resample_2_3_rom.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_resample_3_1c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_resample_3_1.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_resample_3_2c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_resample_3_2.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_resample_3_2_romc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_resample_3_2_rom.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_resample_3_4c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_resample_3_4.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_resample_4_3c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_resample_4_3.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_resample_romh">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_resample_rom.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_residual_energy16_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_residual_energy16_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_residual_energy_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_residual_energy_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_scale_copy_vector16c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_scale_copy_vector16.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_scale_vectorc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_scale_vector.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_schurc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_schur.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_schur64c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_schur64.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_shell_coderc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_shell_coder.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_sigm_Q15c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_sigm_Q15.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_solve_LS_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_solve_LS_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_sortc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_sort.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_structsh">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_structs.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_structs_FIXh">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_structs_FIX.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_sum_sqr_shiftc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_sum_sqr_shift.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tablesh">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tables_LTPc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables_LTP.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tables_NLSF_CB0_10c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables_NLSF_CB0_10.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tables_NLSF_CB0_10h">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables_NLSF_CB0_10.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tables_NLSF_CB0_16c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables_NLSF_CB0_16.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tables_NLSF_CB0_16h">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables_NLSF_CB0_16.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tables_NLSF_CB1_10c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables_NLSF_CB1_10.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tables_NLSF_CB1_10h">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables_NLSF_CB1_10.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tables_NLSF_CB1_16c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables_NLSF_CB1_16.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tables_NLSF_CB1_16h">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables_NLSF_CB1_16.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tables_gainc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables_gain.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tables_otherc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables_other.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tables_pitch_lagc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables_pitch_lag.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tables_pulses_per_blockc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables_pulses_per_block.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tables_signc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables_sign.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tables_type_offsetc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables_type_offset.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSilk_FIXvcproj">freeswitch/branches/rupa_limit/libs/silk/src/Silk_FIX.vcproj</a></li>
<li>freeswitch/branches/rupa_limit/libs/silk/test/</li>
<li><a href="#freeswitchbranchesrupa_limitlibssilktestDec_SDKvcproj">freeswitch/branches/rupa_limit/libs/silk/test/Dec_SDK.vcproj</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilktestDecoderc">freeswitch/branches/rupa_limit/libs/silk/test/Decoder.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilktestEnc_SDKvcproj">freeswitch/branches/rupa_limit/libs/silk/test/Enc_SDK.vcproj</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilktestEncoderc">freeswitch/branches/rupa_limit/libs/silk/test/Encoder.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilktestSignalComparevcproj">freeswitch/branches/rupa_limit/libs/silk/test/SignalCompare.vcproj</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilktestsignalComparec">freeswitch/branches/rupa_limit/libs/silk/test/signalCompare.c</a></li>
<li>freeswitch/branches/rupa_limit/scripts/applescript/</li>
<li><a href="#freeswitchbranchesrupa_limitscriptsapplescriptFreeSWITCHDialerscpt">freeswitch/branches/rupa_limit/scripts/applescript/FreeSWITCH Dialer.scpt</a></li>
<li><a href="#freeswitchbranchesrupa_limitscriptsperlrpccgi">freeswitch/branches/rupa_limit/scripts/perl/rpc.cgi</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcincludeswitch_profileh">freeswitch/branches/rupa_limit/src/include/switch_profile.h</a></li>
<li>freeswitch/branches/rupa_limit/src/mod/applications/mod_rad_auth/</li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodapplicationsmod_rad_authMakefile">freeswitch/branches/rupa_limit/src/mod/applications/mod_rad_auth/Makefile</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodapplicationsmod_rad_authmod_rad_authc">freeswitch/branches/rupa_limit/src/mod/applications/mod_rad_auth/mod_rad_auth.c</a></li>
<li>freeswitch/branches/rupa_limit/src/mod/codecs/mod_silk/</li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodcodecsmod_silkMakefile">freeswitch/branches/rupa_limit/src/mod/codecs/mod_silk/Makefile</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodcodecsmod_silkmod_silkc">freeswitch/branches/rupa_limit/src/mod/codecs/mod_silk/mod_silk.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skinnyskinny_tablesc">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skinny/skinny_tables.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skinnyskinny_tablesh">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skinny/skinny_tables.h</a></li>
<li>freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/</li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenMakefileam">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/Makefile.am</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenREADME">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/README</a></li>
<li>freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/alsa/</li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenalsaalsadriver1020dummyc">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/alsa/alsa-driver-1.0.20-dummy.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenalsadummyc">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/alsa/dummy.c</a></li>
<li>freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/asterisk/</li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenasteriskMakefile">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/asterisk/Makefile</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenasteriskREADME">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/asterisk/README</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenasteriskchan_skypiaxc">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/asterisk/chan_skypiax.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenasteriskcyg_no_pthread_killc">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/asterisk/cyg_no_pthread_kill.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenasteriskskypiaxconf">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/asterisk/skypiax.conf</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenasteriskskypiaxh">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/asterisk/skypiax.h</a></li>
<li>freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/</li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenconfigsREADMEskypopen_auth">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/README.skypopen_auth</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenconfigsclientc">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/client.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenconfigscopy">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/copy</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenconfigscreate">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/create</a></li>
<li>freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/multiple-instance-same-skype-username/</li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenconfigsmultipleinstancesameskypeusernameREADME">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/multiple-instance-same-skype-username/README</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenconfigsmultipleinstancesameskypeusernamemultish">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/multiple-instance-same-skype-username/multi.sh</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenconfigsmultipleinstancesameskypeusernameskypopenconfxml">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/multiple-instance-same-skype-username/skypopen.conf.xml</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenconfigsskypopenconfxml">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/skypopen.conf.xml</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenconfigsskypopen_authc">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/skypopen_auth.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenconfigsstartskypebat">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/startskype.bat</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenconfigsstartskypesh">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/startskype.sh</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenconfigswaitbat">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/wait.bat</a></li>
<li>freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/windows-service/</li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenconfigswindowsservicestartskypecmd">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/windows-service/startskype.cmd</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenconfigswindowsservicewaitcmd">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/windows-service/wait.cmd</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenmod_skypopen2008vcproj">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/mod_skypopen.2008.vcproj</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenmod_skypopenc">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/mod_skypopen.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenskypopenh">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/skypopen.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenskypopen_protocolc">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/skypopen_protocol.c</a></li>
<li>freeswitch/branches/rupa_limit/src/mod/event_handlers/mod_json_cdr/</li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodevent_handlersmod_json_cdrMakefile">freeswitch/branches/rupa_limit/src/mod/event_handlers/mod_json_cdr/Makefile</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodevent_handlersmod_json_cdrmod_json_cdr2008vcproj">freeswitch/branches/rupa_limit/src/mod/event_handlers/mod_json_cdr/mod_json_cdr.2008.vcproj</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodevent_handlersmod_json_cdrmod_json_cdrc">freeswitch/branches/rupa_limit/src/mod/event_handlers/mod_json_cdr/mod_json_cdr.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodevent_handlersmod_json_cdrmod_json_cdrvcproj">freeswitch/branches/rupa_limit/src/mod/event_handlers/mod_json_cdr/mod_json_cdr.vcproj</a></li>
<li>freeswitch/branches/rupa_limit/src/mod/say/mod_say_hr/</li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodsaymod_say_hrMakefile">freeswitch/branches/rupa_limit/src/mod/say/mod_say_hr/Makefile</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodsaymod_say_hrmod_say_hrc">freeswitch/branches/rupa_limit/src/mod/say/mod_say_hr/mod_say_hr.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcswitch_ivr_sayc">freeswitch/branches/rupa_limit/src/switch_ivr_say.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcswitch_profilec">freeswitch/branches/rupa_limit/src/switch_profile.c</a></li>
</ul>
<h3>Removed Paths</h3>
<ul>
<li><a href="#freeswitchbranchesrupa_limitcontribmodxml_intmod_xml_odbcxml_odbc_templatesdialplanxml">freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/xml_odbc_templates/dialplan.xml</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribmodxml_intmod_xml_odbcxml_odbc_templatesdirectorygatewaysxml">freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/xml_odbc_templates/directory-gateways.xml</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribmodxml_intmod_xml_odbcxml_odbc_templatesdirectoryuserxml">freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/xml_odbc_templates/directory-user.xml</a></li>
<li>freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/</li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdAUTHORS">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/AUTHORS</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdCOPYING">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/COPYING</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdChangeLog">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/ChangeLog</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdINSTALL">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/INSTALL</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdMakefileam">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/Makefile.am</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdNEWS">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/NEWS</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdREADME">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/README</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdbootstrapsh">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/bootstrap.sh</a></li>
<li>freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/</li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdconfdb1conf">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/db1.conf</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdconflighttpdconfexample">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/lighttpd.conf.example</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdconfluaexecconfdist">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/luaexec.conf.dist</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdconftestlua">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/test.lua</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdconfxmlcdrconfdist">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/xmlcdr.conf.dist</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdconfigureac">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/configure.ac</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdinstallsh">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/install-sh</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdlogc">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/log.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdlogh">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/log.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdmainc">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/main.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdmissing">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/missing</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdplugc">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plug.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdplugh">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plug.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdplugcommonh">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugcommon.h</a></li>
<li>freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/</li>
<li>freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/luaexec/</li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdpluginsluaexecMakefileam">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/luaexec/Makefile.am</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdpluginsluaexecluaexecc">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/luaexec/luaexec.c</a></li>
<li>freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/mysqlcdr/</li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdpluginsmysqlcdrMakefileam">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/mysqlcdr/Makefile.am</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdpluginsmysqlcdrdbcommonc">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/mysqlcdr/dbcommon.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdpluginsmysqlcdrdbcommonh">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/mysqlcdr/dbcommon.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdpluginsmysqlcdrmysqlcdrc">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/mysqlcdr/mysqlcdr.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdplugldrc">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugldr.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdplugldrh">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugldr.h</a></li>
<li>freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/scripts/</li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdstmtexpc">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/stmtexp.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdstmtexph">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/stmtexp.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdstmtexpldrc">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/stmtexpldr.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdstmtexpldrh">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/stmtexpldr.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdstmtexptabh">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/stmtexptab.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdtestxml">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/test.xml</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdurldecodec">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/urldecode.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitcontribnazimxmlcdrdurldecodeh">freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/urldecode.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkupdate">freeswitch/branches/rupa_limit/libs/silk/.update</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkAUTHORS">freeswitch/branches/rupa_limit/libs/silk/AUTHORS</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkCOPYING">freeswitch/branches/rupa_limit/libs/silk/COPYING</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkChangeLog">freeswitch/branches/rupa_limit/libs/silk/ChangeLog</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkINSTALL">freeswitch/branches/rupa_limit/libs/silk/INSTALL</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkMakefileam">freeswitch/branches/rupa_limit/libs/silk/Makefile.am</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkNEWS">freeswitch/branches/rupa_limit/libs/silk/NEWS</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkREADME">freeswitch/branches/rupa_limit/libs/silk/README</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkSilk_SDKsln">freeswitch/branches/rupa_limit/libs/silk/Silk_SDK.sln</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkconfiguregnu">freeswitch/branches/rupa_limit/libs/silk/configure.gnu</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkconfigurein">freeswitch/branches/rupa_limit/libs/silk/configure.in</a></li>
<li>freeswitch/branches/rupa_limit/libs/silk/doc/</li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkdocSILKDataSheetpdf">freeswitch/branches/rupa_limit/libs/silk/doc/SILKDataSheet.pdf</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkdocSILK_RTP_PayloadFormatpdf">freeswitch/branches/rupa_limit/libs/silk/doc/SILK_RTP_PayloadFormat.pdf</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkdocSILK_SDK_APIpdf">freeswitch/branches/rupa_limit/libs/silk/doc/SILK_SDK_API.pdf</a></li>
<li>freeswitch/branches/rupa_limit/libs/silk/interface/</li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkinterfaceSKP_Silk_SDK_APIh">freeswitch/branches/rupa_limit/libs/silk/interface/SKP_Silk_SDK_API.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkinterfaceSKP_Silk_controlh">freeswitch/branches/rupa_limit/libs/silk/interface/SKP_Silk_control.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkinterfaceSKP_Silk_errorsh">freeswitch/branches/rupa_limit/libs/silk/interface/SKP_Silk_errors.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkinterfaceSKP_Silk_typedefh">freeswitch/branches/rupa_limit/libs/silk/interface/SKP_Silk_typedef.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilkreadmetxt">freeswitch/branches/rupa_limit/libs/silk/readme.txt</a></li>
<li>freeswitch/branches/rupa_limit/libs/silk/src/</li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_A2NLSFc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_A2NLSF.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_CNGc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_CNG.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_HP_variable_cutoff_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_HP_variable_cutoff_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_Inlinesh">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_Inlines.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_LBRR_resetc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_LBRR_reset.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_LPC_inv_pred_gainc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_LPC_inv_pred_gain.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_LPC_stabilizec">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_LPC_stabilize.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_LPC_synthesis_filterc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_LPC_synthesis_filter.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_LPC_synthesis_order16c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_LPC_synthesis_order16.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_LP_variable_cutoffc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_LP_variable_cutoff.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_LSF_cos_tablec">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_LSF_cos_table.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_LTP_analysis_filter_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_LTP_analysis_filter_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_LTP_scale_ctrl_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_LTP_scale_ctrl_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_MAc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_MA.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_NLSF2Ac">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_NLSF2A.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_NLSF2A_stablec">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_NLSF2A_stable.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_NLSF_MSVQ_decodec">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_NLSF_MSVQ_decode.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_NLSF_MSVQ_encode_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_NLSF_MSVQ_encode_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_NLSF_VQ_rate_distortion_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_NLSF_VQ_rate_distortion_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_NLSF_VQ_sum_error_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_NLSF_VQ_sum_error_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_NLSF_VQ_weights_laroiac">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_NLSF_VQ_weights_laroia.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_NLSF_stabilizec">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_NLSF_stabilize.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_NSQc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_NSQ.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_NSQ_del_decc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_NSQ_del_dec.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_PLCc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_PLC.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_PLCh">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_PLC.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_SigProc_FIXh">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_SigProc_FIX.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_VADc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_VAD.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_VQ_nearest_neighbor_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_VQ_nearest_neighbor_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_allpass_intc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_allpass_int.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_ana_filt_bank_1c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_ana_filt_bank_1.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_apply_sine_windowc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_apply_sine_window.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_array_maxabsc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_array_maxabs.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_autocorrc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_autocorr.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_biquadc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_biquad.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_biquad_altc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_biquad_alt.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_burg_modifiedc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_burg_modified.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_bwexpanderc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_bwexpander.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_bwexpander_32c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_bwexpander_32.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_code_signsc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_code_signs.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_common_pitch_est_definesh">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_common_pitch_est_defines.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_control_codec_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_control_codec_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_corrMatrix_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_corrMatrix_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_create_init_destroyc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_create_init_destroy.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_dec_APIc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_dec_API.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_decode_corec">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_decode_core.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_decode_framec">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_decode_frame.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_decode_indices_v4c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_decode_indices_v4.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_decode_parametersc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_decode_parameters.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_decode_parameters_v4c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_decode_parameters_v4.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_decode_pulsesc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_decode_pulses.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_decoder_set_fsc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_decoder_set_fs.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_defineh">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_define.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_define_FIXh">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_define_FIX.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_detect_SWB_inputc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_detect_SWB_input.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_enc_APIc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_enc_API.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_encode_frame_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_encode_frame_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_encode_parametersc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_encode_parameters.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_encode_parameters_v4c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_encode_parameters_v4.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_encode_pulsesc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_encode_pulses.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_find_LPC_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_find_LPC_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_find_LTP_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_find_LTP_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_find_pitch_lags_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_find_pitch_lags_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_find_pred_coefs_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_find_pred_coefs_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_gain_quantc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_gain_quant.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_init_encoder_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_init_encoder_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_inner_prod_alignedc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_inner_prod_aligned.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_interpolatec">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_interpolate.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_k2ac">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_k2a.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_k2a_Q16c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_k2a_Q16.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_lin2logc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_lin2log.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_log2linc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_log2lin.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_lowpass_intc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_lowpass_int.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_lowpass_shortc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_lowpass_short.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_macrosh">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_macros.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_mainh">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_main.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_main_FIXh">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_main_FIX.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_noise_shape_analysis_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_noise_shape_analysis_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_perceptual_parameters_FIXh">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_perceptual_parameters_FIX.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_pitch_analysis_corec">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_pitch_analysis_core.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_pitch_est_definesh">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_pitch_est_defines.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_pitch_est_tablesc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_pitch_est_tables.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_prefilter_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_prefilter_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_process_NLSFs_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_process_NLSFs_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_process_gains_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_process_gains_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_pulses_to_bytesc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_pulses_to_bytes.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_quant_LTP_gains_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_quant_LTP_gains_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_range_coderc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_range_coder.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_regularize_correlations_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_regularize_correlations_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_resample_1_2c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_resample_1_2.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_resample_1_2_coarsec">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_resample_1_2_coarse.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_resample_1_2_coarsestc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_resample_1_2_coarsest.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_resample_1_3c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_resample_1_3.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_resample_2_1_coarsec">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_resample_2_1_coarse.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_resample_2_3c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_resample_2_3.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_resample_2_3_coarsec">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_resample_2_3_coarse.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_resample_2_3_coarsestc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_resample_2_3_coarsest.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_resample_2_3_romc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_resample_2_3_rom.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_resample_3_1c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_resample_3_1.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_resample_3_2c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_resample_3_2.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_resample_3_2_romc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_resample_3_2_rom.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_resample_3_4c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_resample_3_4.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_resample_4_3c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_resample_4_3.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_resample_romh">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_resample_rom.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_residual_energy16_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_residual_energy16_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_residual_energy_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_residual_energy_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_scale_copy_vector16c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_scale_copy_vector16.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_scale_vectorc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_scale_vector.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_schurc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_schur.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_schur64c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_schur64.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_shell_coderc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_shell_coder.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_sigm_Q15c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_sigm_Q15.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_solve_LS_FIXc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_solve_LS_FIX.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_sortc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_sort.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_structsh">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_structs.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_structs_FIXh">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_structs_FIX.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_sum_sqr_shiftc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_sum_sqr_shift.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tablesh">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tables_LTPc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables_LTP.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tables_NLSF_CB0_10c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables_NLSF_CB0_10.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tables_NLSF_CB0_10h">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables_NLSF_CB0_10.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tables_NLSF_CB0_16c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables_NLSF_CB0_16.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tables_NLSF_CB0_16h">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables_NLSF_CB0_16.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tables_NLSF_CB1_10c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables_NLSF_CB1_10.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tables_NLSF_CB1_10h">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables_NLSF_CB1_10.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tables_NLSF_CB1_16c">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables_NLSF_CB1_16.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tables_NLSF_CB1_16h">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables_NLSF_CB1_16.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tables_gainc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables_gain.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tables_otherc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables_other.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tables_pitch_lagc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables_pitch_lag.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tables_pulses_per_blockc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables_pulses_per_block.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tables_signc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables_sign.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSKP_Silk_tables_type_offsetc">freeswitch/branches/rupa_limit/libs/silk/src/SKP_Silk_tables_type_offset.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilksrcSilk_FIXvcproj">freeswitch/branches/rupa_limit/libs/silk/src/Silk_FIX.vcproj</a></li>
<li>freeswitch/branches/rupa_limit/libs/silk/test/</li>
<li><a href="#freeswitchbranchesrupa_limitlibssilktestDec_SDKvcproj">freeswitch/branches/rupa_limit/libs/silk/test/Dec_SDK.vcproj</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilktestDecoderc">freeswitch/branches/rupa_limit/libs/silk/test/Decoder.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilktestEnc_SDKvcproj">freeswitch/branches/rupa_limit/libs/silk/test/Enc_SDK.vcproj</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilktestEncoderc">freeswitch/branches/rupa_limit/libs/silk/test/Encoder.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilktestSignalComparevcproj">freeswitch/branches/rupa_limit/libs/silk/test/SignalCompare.vcproj</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibssilktestsignalComparec">freeswitch/branches/rupa_limit/libs/silk/test/signalCompare.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitscriptsapplescriptFreeSWITCHDialerscpt">freeswitch/branches/rupa_limit/scripts/applescript/FreeSWITCH Dialer.scpt</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodapplicationsmod_rad_authMakefile">freeswitch/branches/rupa_limit/src/mod/applications/mod_rad_auth/Makefile</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodapplicationsmod_rad_authmod_rad_authc">freeswitch/branches/rupa_limit/src/mod/applications/mod_rad_auth/mod_rad_auth.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodcodecsmod_silkMakefile">freeswitch/branches/rupa_limit/src/mod/codecs/mod_silk/Makefile</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodcodecsmod_silkmod_silkc">freeswitch/branches/rupa_limit/src/mod/codecs/mod_silk/mod_silk.c</a></li>
<li>freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypiax/</li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenMakefileam">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/Makefile.am</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenREADME">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/README</a></li>
<li>freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/alsa/</li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenalsaalsadriver1020dummyc">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/alsa/alsa-driver-1.0.20-dummy.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenalsadummyc">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/alsa/dummy.c</a></li>
<li>freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/asterisk/</li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenasteriskMakefile">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/asterisk/Makefile</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenasteriskREADME">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/asterisk/README</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenasteriskchan_skypiaxc">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/asterisk/chan_skypiax.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenasteriskcyg_no_pthread_killc">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/asterisk/cyg_no_pthread_kill.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenasteriskskypiaxconf">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/asterisk/skypiax.conf</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenasteriskskypiaxh">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/asterisk/skypiax.h</a></li>
<li>freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/</li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenconfigsREADMEskypopen_auth">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/README.skypopen_auth</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenconfigsclientc">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/client.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenconfigscopy">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/copy</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenconfigscreate">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/create</a></li>
<li>freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/multiple-instance-same-skype-username/</li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenconfigsmultipleinstancesameskypeusernameREADME">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/multiple-instance-same-skype-username/README</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenconfigsmultipleinstancesameskypeusernamemultish">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/multiple-instance-same-skype-username/multi.sh</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenconfigsmultipleinstancesameskypeusernameskypopenconfxml">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/multiple-instance-same-skype-username/skypopen.conf.xml</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenconfigsskypopenconfxml">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/skypopen.conf.xml</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenconfigsskypopen_authc">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/skypopen_auth.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenconfigsstartskypebat">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/startskype.bat</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenconfigsstartskypesh">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/startskype.sh</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenconfigswaitbat">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/wait.bat</a></li>
<li>freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/windows-service/</li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenconfigswindowsservicestartskypecmd">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/windows-service/startskype.cmd</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenconfigswindowsservicewaitcmd">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/configs/windows-service/wait.cmd</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenmod_skypopen2008vcproj">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/mod_skypopen.2008.vcproj</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenmod_skypopenc">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/mod_skypopen.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenskypopenh">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/skypopen.h</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodendpointsmod_skypopenskypopen_protocolc">freeswitch/branches/rupa_limit/src/mod/endpoints/mod_skypopen/skypopen_protocol.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodevent_handlersmod_json_cdrMakefile">freeswitch/branches/rupa_limit/src/mod/event_handlers/mod_json_cdr/Makefile</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodevent_handlersmod_json_cdrmod_json_cdr2008vcproj">freeswitch/branches/rupa_limit/src/mod/event_handlers/mod_json_cdr/mod_json_cdr.2008.vcproj</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodevent_handlersmod_json_cdrmod_json_cdrc">freeswitch/branches/rupa_limit/src/mod/event_handlers/mod_json_cdr/mod_json_cdr.c</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodevent_handlersmod_json_cdrmod_json_cdrvcproj">freeswitch/branches/rupa_limit/src/mod/event_handlers/mod_json_cdr/mod_json_cdr.vcproj</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodsaymod_say_hrMakefile">freeswitch/branches/rupa_limit/src/mod/say/mod_say_hr/Makefile</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodsaymod_say_hrmod_say_hrc">freeswitch/branches/rupa_limit/src/mod/say/mod_say_hr/mod_say_hr.c</a></li>
</ul>
<h3>Property Changed</h3>
<ul>
<li><a href="#freeswitchbranchesrupa_limit">freeswitch/branches/rupa_limit/</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibs">freeswitch/branches/rupa_limit/libs/</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibsesllua">freeswitch/branches/rupa_limit/libs/esl/lua/</a></li>
<li><a href="#freeswitchbranchesrupa_limitlibstiff382tools">freeswitch/branches/rupa_limit/libs/tiff-3.8.2/tools/</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmod">freeswitch/branches/rupa_limit/src/mod/</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodapplicationsmod_fax">freeswitch/branches/rupa_limit/src/mod/applications/mod_fax/</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodasr_tts">freeswitch/branches/rupa_limit/src/mod/asr_tts/</a></li>
<li><a href="#freeswitchbranchesrupa_limitsrcmodlanguages">freeswitch/branches/rupa_limit/src/mod/languages/</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="freeswitchbranchesrupa_limit"></a>
<div class="propset"><h4>Property changes: freeswitch/branches/rupa_limit</h4>
<pre class="diff"><span>
<span class="cx">Name: svn:ignore
</span><span class="cx"> - freeswitch-sounds-*.tar.gz
</span><span class="cx">.deps
</span><span class="cx">Makefile
</span><span class="cx">config.status
</span><span class="cx">modules.conf
</span><span class="cx">libtool
</span><span class="cx">quiet_libtool
</span><span class="cx">config.log
</span><span class="cx">.version
</span><span class="cx">.libs
</span><span class="cx">autom4te.cache
</span><span class="cx">freeswitch
</span><span class="cx">core.*
</span><span class="cx">debug
</span><span class="cx">release
</span><span class="cx">*.ncb
</span><span class="cx">*.suo
</span><span class="cx">*.bak
</span><span class="cx">.noversion
</span><span class="cx">testmode
</span><span class="cx">.complete
</span><span class="cx">*.c
</span><span class="cx">*.patch
</span><span class="cx">*.tmp
</span><span class="cx">wtf
</span><span class="cx">cc-mode-*
</span><span class="cx">config.cache
</span><span class="cx">Makefile.in
</span><span class="cx">AUTHORS
</span><span class="cx">COPYING
</span><span class="cx">NEWS
</span><span class="cx">ChangeLog
</span><span class="cx">configure
</span><span class="cx">README
</span><span class="cx">aclocal.m4
</span><span class="cx">debug static
</span><span class="cx">release static
</span><span class="cx">Debug
</span><span class="cx">Debug Static
</span><span class="cx">Release
</span><span class="cx">Freeswitch.2008cache.dat
</span><span class="cx">Freeswitchcache.dat
</span><span class="cx">Release Static
</span><span class="cx">bin
</span><span class="cx">*.diff
</span><span class="cx">*.pdb
</span><span class="cx">cmake.test
</span><span class="cx">All
</span><span class="cx">x64
</span><span class="cx">spandsp.h
</span><span class="cx">Release_CLR
</span><span class="cx">fs_cli
</span><span class="cx">fs_ivrd
</span><span class="cx">.
</span><span class="cx">status
</span><span class="cx">ignore.txt
</span><span class="cx">snom.pcap
</span><span class="cx">freeswitch-sounds-ru-ru-elena-48000.install
</span><span class="cx">1
</span><span class="cx">debian.diff.1
</span><span class="cx">zfone3-full-0.90.410.tar.gz
</span><span class="cx">freeswitch-sounds-ru-ru-elena-32000.install
</span><span class="cx">libzrtp-0.81.514.tar.gz
</span><span class="cx">l
</span><span class="cx">fucker.ul
</span><span class="cx">wanpipe-3.5.4.20.smg_pri.tgz
</span><span class="cx">libzrtp-0.81.514
</span><span class="cx">wtf.tgz
</span><span class="cx">paging-ttl-update.txt
</span><span class="cx">CentOS-5.3-x86_64-bin-7of7.iso
</span><span class="cx">vim.txt
</span><span class="cx">sofia_reg_gateways.db
</span><span class="cx">zfone3-full-0.90.404.tar.gz
</span><span class="cx">zfone-full-0.90.404
</span><span class="cx">freeswitch-lang-ru.install
</span><span class="cx">freeswitch-sounds-ru-ru-elena-16000.install
</span><span class="cx">zfone-full-0.90.410
</span><span class="cx">switch_core_state_machine.c.txt
</span><span class="cx">snom2.pcap
</span><span class="cx">bv.tar.gz
</span><span class="cx">file.pcap
</span><span class="cx">dump.pcap
</span><span class="cx">swimp.raw
</span><span class="cx">libzrtp-0.90.579
</span><span class="cx">vg.log
</span><span class="cx">test.txt
</span><span class="cx">blah.txt
</span><span class="cx">freeswitch-sounds-en-us-callie-48000.install
</span><span class="cx">bv32
</span><span class="cx">wtf.pcap
</span><span class="cx">ass
</span><span class="cx">wanpipe-3.5.4.20.smg_pri
</span><span class="cx">CentOS-5.3-x86_64-bin-7of7.iso.lftp-pget-status
</span><span class="cx">status
</span><span class="cx">svn_is_stupid.sh
</span><span class="cx">status
</span><span class="cx">libzrtp-1.00.591
</span><span class="cx">libzrtp-1.00.591-ec.tar.gz
</span><span class="cx">status
</span><span class="cx">build-stamp
</span><span class="cx"> + freeswitch-sounds-*.tar.gz
</span><span class="cx">.deps
</span><span class="cx">Makefile
</span><span class="cx">config.status
</span><span class="cx">modules.conf
</span><span class="cx">libtool
</span><span class="cx">quiet_libtool
</span><span class="cx">config.log
</span><span class="cx">.version
</span><span class="cx">.libs
</span><span class="cx">autom4te.cache
</span><span class="cx">freeswitch
</span><span class="cx">core.*
</span><span class="cx">debug
</span><span class="cx">release
</span><span class="cx">*.ncb
</span><span class="cx">*.suo
</span><span class="cx">*.bak
</span><span class="cx">.noversion
</span><span class="cx">testmode
</span><span class="cx">.complete
</span><span class="cx">*.c
</span><span class="cx">*.patch
</span><span class="cx">*.tmp
</span><span class="cx">wtf
</span><span class="cx">cc-mode-*
</span><span class="cx">config.cache
</span><span class="cx">Makefile.in
</span><span class="cx">AUTHORS
</span><span class="cx">COPYING
</span><span class="cx">NEWS
</span><span class="cx">ChangeLog
</span><span class="cx">configure
</span><span class="cx">README
</span><span class="cx">aclocal.m4
</span><span class="cx">debug static
</span><span class="cx">release static
</span><span class="cx">Debug
</span><span class="cx">Debug Static
</span><span class="cx">Release
</span><span class="cx">Freeswitch.2008cache.dat
</span><span class="cx">Freeswitchcache.dat
</span><span class="cx">Release Static
</span><span class="cx">bin
</span><span class="cx">*.diff
</span><span class="cx">*.pdb
</span><span class="cx">cmake.test
</span><span class="cx">All
</span><span class="cx">x64
</span><span class="cx">spandsp.h
</span><span class="cx">Release_CLR
</span><span class="cx">fs_cli
</span><span class="cx">fs_ivrd
</span><span class="cx">.
</span><span class="cx">status
</span><span class="cx">ignore.txt
</span><span class="cx">snom.pcap
</span><span class="cx">freeswitch-sounds-ru-ru-elena-48000.install
</span><span class="cx">1
</span><span class="cx">debian.diff.1
</span><span class="cx">zfone3-full-0.90.410.tar.gz
</span><span class="cx">freeswitch-sounds-ru-ru-elena-32000.install
</span><span class="cx">libzrtp-0.81.514.tar.gz
</span><span class="cx">l
</span><span class="cx">fucker.ul
</span><span class="cx">wanpipe-3.5.4.20.smg_pri.tgz
</span><span class="cx">libzrtp-0.81.514
</span><span class="cx">wtf.tgz
</span><span class="cx">paging-ttl-update.txt
</span><span class="cx">CentOS-5.3-x86_64-bin-7of7.iso
</span><span class="cx">vim.txt
</span><span class="cx">sofia_reg_gateways.db
</span><span class="cx">zfone3-full-0.90.404.tar.gz
</span><span class="cx">zfone-full-0.90.404
</span><span class="cx">freeswitch-lang-ru.install
</span><span class="cx">freeswitch-sounds-ru-ru-elena-16000.install
</span><span class="cx">zfone-full-0.90.410
</span><span class="cx">switch_core_state_machine.c.txt
</span><span class="cx">snom2.pcap
</span><span class="cx">bv.tar.gz
</span><span class="cx">file.pcap
</span><span class="cx">dump.pcap
</span><span class="cx">swimp.raw
</span><span class="cx">libzrtp-0.90.579
</span><span class="cx">vg.log
</span><span class="cx">test.txt
</span><span class="cx">blah.txt
</span><span class="cx">freeswitch-sounds-en-us-callie-48000.install
</span><span class="cx">bv32
</span><span class="cx">wtf.pcap
</span><span class="cx">ass
</span><span class="cx">wanpipe-3.5.4.20.smg_pri
</span><span class="cx">CentOS-5.3-x86_64-bin-7of7.iso.lftp-pget-status
</span><span class="cx">status
</span><span class="cx">svn_is_stupid.sh
</span><span class="cx">status
</span><span class="cx">libzrtp-1.00.591
</span><span class="cx">libzrtp-1.00.591-ec.tar.gz
</span><span class="cx">status
</span><span class="cx">build-stamp
</span><span class="cx">.indent.pro
</span><span class="cx">touch
</span><span class="cx">status
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitFreeswitch2008expresssln"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/Freeswitch.2008.express.sln (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/Freeswitch.2008.express.sln        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/Freeswitch.2008.express.sln        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -603,7 +603,7 @@
</span><span class="cx">                 {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
</span><span class="cx">         EndProjectSection
</span><span class="cx"> EndProject
</span><del>-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_skypiax", "src\mod\endpoints\mod_skypiax\mod_skypiax.2008.vcproj", "{C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}"
</del><ins>+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_skypopen", "src\mod\endpoints\mod_skypopen\mod_skypopen.2008.vcproj", "{C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}"
</ins><span class="cx">         ProjectSection(ProjectDependencies) = postProject
</span><span class="cx">                 {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
</span><span class="cx">         EndProjectSection
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitFreeswitch2008sln"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/Freeswitch.2008.sln (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/Freeswitch.2008.sln        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/Freeswitch.2008.sln        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -956,7 +956,7 @@
</span><span class="cx">                 {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
</span><span class="cx">         EndProjectSection
</span><span class="cx"> EndProject
</span><del>-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_skypiax", "src\mod\endpoints\mod_skypiax\mod_skypiax.2008.vcproj", "{C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}"
</del><ins>+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_skypopen", "src\mod\endpoints\mod_skypopen\mod_skypopen.2008.vcproj", "{C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}"
</ins><span class="cx">         ProjectSection(ProjectDependencies) = postProject
</span><span class="cx">                 {202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
</span><span class="cx">         EndProjectSection
</span><span class="lines">@@ -2701,13 +2701,9 @@
</span><span class="cx">                 {9778F1C0-09BC-4698-8EBC-BD982247209A}.All|x64.ActiveCfg = Release|x64
</span><span class="cx">                 {9778F1C0-09BC-4698-8EBC-BD982247209A}.All|x64.Build.0 = Release|x64
</span><span class="cx">                 {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug|Win32.ActiveCfg = Debug|Win32
</span><del>-                {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug|Win32.Build.0 = Debug|Win32
</del><span class="cx">                 {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug|x64.ActiveCfg = Debug|x64
</span><del>-                {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug|x64.Build.0 = Debug|x64
</del><span class="cx">                 {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release|Win32.ActiveCfg = Release|Win32
</span><del>-                {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release|Win32.Build.0 = Release|Win32
</del><span class="cx">                 {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release|x64.ActiveCfg = Release|x64
</span><del>-                {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release|x64.Build.0 = Release|x64
</del><span class="cx">         EndGlobalSection
</span><span class="cx">         GlobalSection(SolutionProperties) = preSolution
</span><span class="cx">                 HideSolutionNode = FALSE
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitMakefileam"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/Makefile.am (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/Makefile.am        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/Makefile.am        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -216,6 +216,7 @@
</span><span class="cx">         src/switch_ivr_originate.c \
</span><span class="cx">         src/switch_ivr_async.c \
</span><span class="cx">         src/switch_ivr_play_say.c \
</span><ins>+        src/switch_ivr_say.c \
</ins><span class="cx">         src/switch_ivr_menu.c \
</span><span class="cx">         src/switch_ivr.c \
</span><span class="cx">         src/switch_stun.c \
</span><span class="lines">@@ -229,6 +230,7 @@
</span><span class="cx">         src/switch_limit.c \
</span><span class="cx">         src/g711.c \
</span><span class="cx">         src/switch_pcm.c \
</span><ins>+        src/switch_profile.c\
</ins><span class="cx">         libs/stfu/stfu.c \
</span><span class="cx">         libs/libteletone/src/libteletone_detect.c \
</span><span class="cx">         libs/libteletone/src/libteletone_generate.c \
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitbootstrapsh"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/bootstrap.sh (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/bootstrap.sh        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/bootstrap.sh        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -4,7 +4,7 @@
</span><span class="cx"> BASEDIR=`pwd`;
</span><span class="cx"> LIBDIR=${BASEDIR}/libs;
</span><span class="cx"> SUBDIRS="ilbc curl iksemel js js/nsprpub libdingaling libedit libsndfile pcre sofia-sip \
</span><del>- speex sqlite srtp openzap spandsp libg722_1 portaudio unimrcp tiff-3.8.2 broadvoice";
</del><ins>+ speex sqlite srtp openzap spandsp libg722_1 portaudio unimrcp tiff-3.8.2 broadvoice silk";
</ins><span class="cx">
</span><span class="cx"> if [ ! -f modules.conf ]; then
</span><span class="cx"> cp build/modules.conf.in modules.conf
</span><span class="lines">@@ -25,6 +25,12 @@
</span><span class="cx"> echo " to build FreeSWITCH from SVN."
</span><span class="cx"> exit 1
</span><span class="cx"> fi
</span><ins>+
+if test `uname -s` = "OpenBSD" && test "$ac_version" = "2.62"; then
+echo "Autoconf 2.62 is broken on OpenBSD, please try another version"
+exit 1
+fi
+
</ins><span class="cx"> IFS=_; set $ac_version; IFS=' '
</span><span class="cx"> ac_version=$1
</span><span class="cx"> IFS=.; set $ac_version; IFS=' '
</span><span class="lines">@@ -37,6 +43,7 @@
</span><span class="cx"> echo "bootstrap: autoconf version $ac_version (ok)"
</span><span class="cx"> fi
</span><span class="cx">
</span><ins>+
</ins><span class="cx"> # automake 1.7 or newer
</span><span class="cx">
</span><span class="cx"> am_version=`${AUTOMAKE:-automake} --version 2>/dev/null|sed -e 's/^[^0-9]*//;s/[a-z]* *$//;s/[- ].*//g;q'`
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitbuildfs_ivrdinitredhatfromrev17079freeswitchtrunkbuildfs_ivrdinitredhat"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/build/fs_ivrd.init.redhat (from rev 17079, freeswitch/trunk/build/fs_ivrd.init.redhat) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/build/fs_ivrd.init.redhat         (rev 0)
+++ freeswitch/branches/rupa_limit/build/fs_ivrd.init.redhat        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,102 @@
</span><ins>+#!/bin/bash
+#
+# /etc/rc.d/init.d/fs_ivrd
+#
+# The FreeSwitch Open Source Voice Platform
+#
+# chkconfig: 345 89 14
+# description: Starts and stops the fs_ivrd server daemon
+# processname: fs_ivrd
+# pidfile: /usr/local/fs_ivrd/run/fs_ivrd.pid
+#
+
+# Source function library.
+. /etc/init.d/functions
+
+PROG_NAME=fs_ivrd
+PID_FILE=${PID_FILE-/usr/local/freeswitch/run/fs_ivrd.pid}
+#FS_USER=${FS_USER-freeswitch}
+FS_USER=${FS_USER-root}
+FS_FILE=${FS_FILE-/usr/local/freeswitch/bin/fs_ivrd}
+FS_HOME=${FS_HOME-/usr/local/freeswitch}
+LOCK_FILE=/var/lock/subsys/fs_ivrd
+IVRD_ARGS="-h localhost -p 9090"
+RETVAL=0
+
+# Source options file
+if [ -f /etc/sysconfig/fs_ivrd ]; then
+ . /etc/sysconfig/fs_ivrd
+fi
+
+# <define any local shell functions used by the code that follows>
+
+start() {
+ echo -n "Starting $PROG_NAME: "
+ if [ -e $LOCK_FILE ]; then
+ if [ -e $PID_FILE ] && [ -e /proc/`cat $PID_FILE` ]; then
+ echo
+ echo -n $"$PROG_NAME is already running.";
+ failure $"$PROG_NAME is already running.";
+ echo
+ return 1
+ fi
+ fi
+ cd $FS_HOME
+ daemon --user $FS_USER --pidfile $PID_FILE "$FS_FILE $IVRD_ARGS $IVRD_PARAMS >/dev/null 2>&1 &"
+ echo
+ RETVAL=$?
+ [ $RETVAL -eq 0 ] && touch $LOCK_FILE;
+ echo
+ return $RETVAL
+}
+
+stop() {
+ echo -n "Shutting down $PROG_NAME: "
+ if [ ! -e $LOCK_FILE ]; then
+ echo
+ echo -n $"cannot stop $PROG_NAME: $PROG_NAME is not running."
+ failure $"cannot stop $PROG_NAME: $PROG_NAME is not running."
+ echo
+ return 1;
+ fi
+ cd $FS_HOME
+ $FS_FILE -stop > /dev/null 2>&1
+ killproc $PROG_NAME
+ RETVAL=$?
+ echo
+ [ $RETVAL -eq 0 ] && rm -f $LOCK_FILE;
+ return $RETVAL
+}
+
+rhstatus() {
+ status $PROG_NAME;
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ status)
+ status $PROG_NAME
+ RETVAL=$?
+ ;;
+ restart)
+ stop
+ start
+ ;;
+ reload)
+# <cause the service configuration to be reread, either with
+# kill -HUP or by restarting the daemons, in a manner similar
+# to restart above>
+ ;;
+ condrestart)
+ ;;
+ *)
+ echo "Usage: $PROG_NAME {start|stop|status|restart}"
+ exit 1
+ ;;
+esac
+exit $RETVAL
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitbuildmodulesconfin"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/build/modules.conf.in (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/build/modules.conf.in        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/build/modules.conf.in        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -34,6 +34,7 @@
</span><span class="cx"> codecs/mod_g723_1
</span><span class="cx"> codecs/mod_amr
</span><span class="cx"> #codecs/mod_amrwb
</span><ins>+#codecs/mod_silk
</ins><span class="cx"> codecs/mod_g729
</span><span class="cx"> codecs/mod_h26x
</span><span class="cx"> codecs/mod_voipcodecs
</span><span class="lines">@@ -54,7 +55,7 @@
</span><span class="cx"> #endpoints/mod_alsa
</span><span class="cx"> #endpoints/mod_opal
</span><span class="cx"> #endpoints/mod_skinny
</span><del>-#endpoints/mod_skypiax
</del><ins>+#endpoints/mod_skypopen
</ins><span class="cx"> #endpoints/mod_h323
</span><span class="cx"> #../../libs/openzap/mod_openzap
</span><span class="cx"> #asr_tts/mod_unimrcp
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitconfsip_profilesinternalxml"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/conf/sip_profiles/internal.xml (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/conf/sip_profiles/internal.xml        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/conf/sip_profiles/internal.xml        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -83,6 +83,13 @@
</span><span class="cx"> <param name="local-network-acl" value="localnet.auto"/>
</span><span class="cx"> <!--<param name="apply-register-acl" value="domains"/>-->
</span><span class="cx"> <!--<param name="dtmf-type" value="info"/>-->
</span><ins>+
+
+ <!-- 'true' means every time 'first-only' means on the first register -->
+ <!--<param name="send-message-query-on-register" value="true"/>-->
+
+
+
</ins><span class="cx"> <param name="record-path" value="$${recordings_dir}"/>
</span><span class="cx"> <param name="record-template" value="${caller_id_number}.${target_domain}.${strftime(%Y-%m-%d-%H-%M-%S)}.wav"/>
</span><span class="cx"> <!--enable to use presence -->
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitconfigurein"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/configure.in (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/configure.in        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/configure.in        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -589,7 +589,7 @@
</span><span class="cx"> int64_value="long"
</span><span class="cx"> long_value=long
</span><span class="cx"> case "$host" in
</span><del>- *-solaris2*|*apple-darwin*)
</del><ins>+ *-solaris2*|*apple-darwin*|*-openbsd*)
</ins><span class="cx">          if test "$ac_cv_sizeof_long_long" = "8"; then
</span><span class="cx">          int64_t_fmt='#define SWITCH_INT64_T_FMT "lld"'
</span><span class="cx">                 uint64_t_fmt='#define SWITCH_UINT64_T_FMT "llu"'
</span><span class="lines">@@ -696,7 +696,16 @@
</span><span class="cx"> AC_SUBST(ssize_t_fmt)
</span><span class="cx"> AC_SUBST(size_t_fmt)
</span><span class="cx">
</span><del>-AC_PATH_PROGS(ZCAT, gunzip gzcat gzip zcat)
</del><ins>+case $host in
+ *-openbsd*)
+ # OpenBSD's gunzip and friends don't like -d because its redundant, only gzip does
+ AC_PATH_PROGS(ZCAT, gzip)
+ ;;
+ *)
+ AC_PATH_PROGS(ZCAT, gunzip gzcat gzip zcat)
+ ;;
+esac
+
</ins><span class="cx"> AC_PATH_PROGS(TAR, gtar tar)
</span><span class="cx"> AC_PATH_PROGS(WGET, wget)
</span><span class="cx"> AC_PATH_PROGS(CURL, curl)
</span><span class="lines">@@ -865,7 +874,7 @@
</span><span class="cx">                 src/mod/applications/mod_t38gateway/Makefile
</span><span class="cx">                 src/mod/endpoints/mod_portaudio/Makefile
</span><span class="cx">                 src/mod/endpoints/mod_skinny/Makefile
</span><del>-                src/mod/endpoints/mod_skypiax/Makefile
</del><ins>+                src/mod/endpoints/mod_skypopen/Makefile
</ins><span class="cx"> src/mod/endpoints/mod_sofia/Makefile
</span><span class="cx">                 src/mod/formats/mod_portaudio_stream/Makefile
</span><span class="cx"> src/mod/asr_tts/mod_unimrcp/Makefile
</span><span class="lines">@@ -950,7 +959,16 @@
</span><span class="cx"> AC_CONFIG_SUBDIRS([libs/spandsp])
</span><span class="cx"> AC_CONFIG_SUBDIRS([libs/broadvoice])
</span><span class="cx"> AC_CONFIG_SUBDIRS([libs/libg722_1])
</span><ins>+AC_CONFIG_SUBDIRS([libs/silk])
</ins><span class="cx">
</span><ins>+case $host in
+ *-openbsd*)
+ # libtool won't link static libs against shared ones on OpenBSD unless we tell it not to be stupid
+ AC_CONFIG_COMMANDS([hacklibtool], [cp libtool libtool.orig && sed -e "s/deplibs_check_method=.*/deplibs_check_method=pass_all/g" libtool.orig > libtool])
+ ;;
+esac
+
+
</ins><span class="cx"> AC_OUTPUT
</span><span class="cx">
</span><span class="cx"> ##
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribdiegoviolarubymiscpresencerb"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/contrib/diegoviola/ruby/misc/presence.rb (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/diegoviola/ruby/misc/presence.rb        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/contrib/diegoviola/ruby/misc/presence.rb        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -1,15 +1,14 @@
</span><del>-#!/usr/bin/ruby
</del><ins>+#!/usr/bin/env ruby
</ins><span class="cx">
</span><span class="cx"> require 'rubygems'
</span><span class="cx"> require 'fsr'
</span><span class="cx"> require "fsr/listener/inbound"
</span><span class="cx">
</span><del>-def presence_handler(event)
</del><ins>+def custom_channel_presence_handler(event)
</ins><span class="cx"> FSR::Log.info "From: #{event.content[:from]} - #{event.content[:status]}"
</span><span class="cx"> end
</span><span class="cx">
</span><del>-# Event hooks for presence.
-FSL::Inbound.add_event_hook(:PRESENCE_IN) {|event| presence_handler(event) }
-FSL::Inbound.add_event_hook(:PRESENCE_OUT) {|event| presence_handler(event) }
</del><ins>+FSL::Inbound.add_event_hook(:PRESENCE_IN) {|event| custom_channel_presence_handler(event) }
+FSL::Inbound.add_event_hook(:PRESENCE_OUT) {|event| custom_channel_presence_handler(event) }
</ins><span class="cx">
</span><span class="cx"> FSR.start_ies!(FSL::Inbound, :host => "localhost", :port => 8021)
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribmodxml_intmod_xml_odbcstructurepgsqlsqlfromrev17079freeswitchtrunkcontribmodxml_intmod_xml_odbcstructurepgsqlsql"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/structure.pgsql.sql (from rev 17079, freeswitch/trunk/contrib/mod/xml_int/mod_xml_odbc/structure.pgsql.sql) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/structure.pgsql.sql         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/structure.pgsql.sql        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,99 @@
</span><ins>+-- directory domains
+
+CREATE TABLE dir_domains (
+ id SERIAL NOT NULL,
+ name VARCHAR(255) NOT NULL,
+ CONSTRAINT dir_domains_id PRIMARY KEY (id)
+);
+
+CREATE UNIQUE INDEX dir_domains_name_index
+ ON dir_domains (name);
+
+
+CREATE TABLE dir_domain_params (
+ id SERIAL NOT NULL,
+ dir_domain_id INTEGER NOT NULL REFERENCES dir_domains(id),
+ name VARCHAR(255) NOT NULL,
+ value VARCHAR(255) NOT NULL,
+ CONSTRAINT dir_domain_params_id PRIMARY KEY (id)
+);
+
+CREATE UNIQUE INDEX dir_domain_params_dir_domain_id_name_index
+ ON dir_domain_params (dir_domain_id, name);
+
+
+CREATE TABLE dir_domain_variables (
+ id SERIAL NOT NULL,
+ dir_domain_id INTEGER NOT NULL REFERENCES dir_domains(id),
+ name VARCHAR(255) NOT NULL,
+ value VARCHAR(255) NOT NULL,
+ CONSTRAINT dir_domain_variables_id PRIMARY KEY (id)
+);
+
+CREATE UNIQUE INDEX dir_domain_variables_dir_domain_id_name_index
+ ON dir_domain_variables (dir_domain_id, name);
+
+
+
+-- directory users
+
+CREATE TABLE dir_users (
+ id SERIAL NOT NULL,
+ dir_domain_id INTEGER NOT NULL REFERENCES dir_domains(id),
+ username VARCHAR(255) NOT NULL,
+ enabled BOOLEAN NOT NULL DEFAULT 'true',
+ cidr VARCHAR(255),
+ mailbox VARCHAR(255),
+ "number-alias" VARCHAR(255),
+ CONSTRAINT dir_users_id PRIMARY KEY (id)
+);
+
+CREATE UNIQUE INDEX dir_users_dir_domain_id_username_index
+ ON dir_users (dir_domain_id, username);
+
+
+CREATE TABLE dir_user_params (
+ id SERIAL NOT NULL,
+ dir_user_id INTEGER NOT NULL REFERENCES dir_users(id),
+ name VARCHAR(255) NOT NULL,
+ value VARCHAR(255) NOT NULL,
+ CONSTRAINT dir_user_params_id PRIMARY KEY (id)
+);
+
+CREATE UNIQUE INDEX dir_user_params_dir_user_id_name_index
+ ON dir_user_params (dir_user_id, name);
+
+
+CREATE TABLE dir_user_variables (
+ id SERIAL NOT NULL,
+ dir_user_id INTEGER NOT NULL,
+ name VARCHAR(255) NOT NULL,
+ value VARCHAR(255) NOT NULL,
+ CONSTRAINT dir_user_variables_id PRIMARY KEY (id)
+);
+
+CREATE UNIQUE INDEX dir_user_variables_dir_user_id_name_index
+ ON dir_user_variables (dir_user_id, name);
+
+
+
+-- directory groups
+
+CREATE TABLE dir_groups (
+ id SERIAL NOT NULL,
+ name VARCHAR(255) NOT NULL,
+ CONSTRAINT dir_groups_id PRIMARY KEY (id)
+);
+
+CREATE UNIQUE INDEX dir_groups_name_index
+ ON dir_groups (name);
+
+
+CREATE TABLE dir_groups_users (
+ dir_group_id INTEGER NOT NULL REFERENCES dir_groups(id),
+ dir_user_id INTEGER NOT NULL REFERENCES dir_users(id)
+);
+
+CREATE UNIQUE INDEX dir_groups_users_index
+ ON dir_groups_users (dir_group_id, dir_user_id);
+
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribmodxml_intmod_xml_odbctestdatapgsqlsqlfromrev17079freeswitchtrunkcontribmodxml_intmod_xml_odbctestdatapgsqlsql"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/testdata.pgsql.sql (from rev 17079, freeswitch/trunk/contrib/mod/xml_int/mod_xml_odbc/testdata.pgsql.sql) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/testdata.pgsql.sql         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/testdata.pgsql.sql        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,8 @@
</span><ins>+INSERT INTO dir_domains (id, name) VALUES (1, 'freeswitch-rocks.org');
+INSERT INTO dir_domain_params (id, dir_domain_id, name, value) VALUES (1, 1, 'dom_param_name', 'dom_param_value');
+INSERT INTO dir_domain_variables (id, dir_domain_id, name, value) VALUES (1, 1, 'dom_variable_name', 'dom_variable_value');
+INSERT INTO dir_groups (id, name) VALUES (1, 'prepay'), (2, 'annoying_customers');
+INSERT INTO dir_groups_users (dir_group_id, dir_user_id) VALUES (1, 1), (2, 1);
+INSERT INTO dir_users (id, dir_domain_id, username, enabled, cidr, mailbox, number-alias) VALUES (1, 1, 'someuser', 'true', NULL, 'test@test.com', '1234');
+INSERT INTO dir_user_params (id, dir_user_id, name, value) VALUES (1, 1, 'password', 'topsecret'), (2, 1, 'vm-password', '0000');
+INSERT INTO dir_user_variables (id, dir_user_id, name, value) VALUES (1, 1, 'accountcode', '1234'), (2, 1, 'user_context', 'default'), (3, 1, 'vm_extension', '1234');
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribmodxml_intmod_xml_odbcxml_odbcconfxml"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/xml_odbc.conf.xml (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/xml_odbc.conf.xml        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/xml_odbc.conf.xml        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -56,7 +56,11 @@
</span><span class="cx"> </document>
</span><span class="cx"> </template>
</span><span class="cx">
</span><del>- <X-PRE-PROCESS cmd="include" data="xml_odbc_templates/*.xml"/>
</del><ins>+ <!-- There is some difference in queries to mysql or postgresql, for example:
+ mysql: tablename.`columnname-contains-hyphens`
+ postgresql: tablename."columnname-contains-hyphens"
+ Choose the database you're using in the include data (pgsql or mysql) -->
+ <X-PRE-PROCESS cmd="include" data="xml_odbc_templates/*.pgsql.xml"/>
</ins><span class="cx">
</span><span class="cx"> </templates>
</span><span class="cx">
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribmodxml_intmod_xml_odbcxml_odbc_templatesdialplanxml"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/xml_odbc_templates/dialplan.xml</h4></div>
<a id="freeswitchbranchesrupa_limitcontribmodxml_intmod_xml_odbcxml_odbc_templatesdirectorygatewaysmysqlxmlfromrev17079freeswitchtrunkcontribmodxml_intmod_xml_odbcxml_odbc_templatesdirectorygatewaysmysqlxml"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/xml_odbc_templates/directory-gateways.mysql.xml (from rev 17079, freeswitch/trunk/contrib/mod/xml_int/mod_xml_odbc/xml_odbc_templates/directory-gateways.mysql.xml) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/xml_odbc_templates/directory-gateways.mysql.xml         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/xml_odbc_templates/directory-gateways.mysql.xml        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,17 @@
</span><ins>+<include>
+ <!-- purpose=gateways is not only called for getting gateways, but also for getting a list
+ of domains that will be aliased to a profile if <domain .. alias="true"/> is set -->
+ <template name="directory-gateways">
+ <document type="freeswitch/xml">
+ <section name="directory">
+ <xml-odbc-do name="set-event-header" to-name="where-clause" to-value="`${key_name}`='${key_value}'"/>
+ <xml-odbc-do name="set-event-header" if-name="where-clause" if-value="``=''" to-value="1"/>
+ <xml-odbc-do name="query" on-empty-result-break-to="not-found"
+ value="SELECT name AS domain_name FROM dir_domains WHERE ${where-clause};">
+ <domain name="${domain_name}"/>
+ <!-- select all gateways of users within this domain_name here, to make parse=true working -->
+ </xml-odbc-do>
+ </section>
+ </document>
+ </template>
+</include>
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribmodxml_intmod_xml_odbcxml_odbc_templatesdirectorygatewayspgsqlxmlfromrev17079freeswitchtrunkcontribmodxml_intmod_xml_odbcxml_odbc_templatesdirectorygatewayspgsqlxml"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/xml_odbc_templates/directory-gateways.pgsql.xml (from rev 17079, freeswitch/trunk/contrib/mod/xml_int/mod_xml_odbc/xml_odbc_templates/directory-gateways.pgsql.xml) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/xml_odbc_templates/directory-gateways.pgsql.xml         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/xml_odbc_templates/directory-gateways.pgsql.xml        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,17 @@
</span><ins>+<include>
+ <!-- purpose=gateways is not only called for getting gateways, but also for getting a list
+ of domains that will be aliased to a profile if <domain .. alias="true"/> is set -->
+ <template name="directory-gateways">
+ <document type="freeswitch/xml">
+ <section name="directory"> <!-- not the most efficient way, but gets executed seldom, so let it slide... -->
+ <xml-odbc-do name="set-event-header" to-name="where-clause" to-value="&quot;${key_name}&quot;='${key_value}'"/>
+        <xml-odbc-do name="set-event-header" if-name="where-clause" if-value="&quot;&quot;=''" to-value="true"/>
+ <xml-odbc-do name="query" on-empty-result-break-to="not-found"
+ value="SELECT name AS domain_name FROM dir_domains WHERE ${where-clause};">
+ <domain name="${domain_name}"/>
+ <!-- select all gateways of users within this domain_name here, to make parse=true working -->
+ </xml-odbc-do>
+ </section>
+ </document>
+ </template>
+</include>
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribmodxml_intmod_xml_odbcxml_odbc_templatesdirectorygatewaysxml"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/xml_odbc_templates/directory-gateways.xml</h4></div>
<a id="freeswitchbranchesrupa_limitcontribmodxml_intmod_xml_odbcxml_odbc_templatesdirectoryusermysqlxmlfromrev17079freeswitchtrunkcontribmodxml_intmod_xml_odbcxml_odbc_templatesdirectoryusermysqlxml"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/xml_odbc_templates/directory-user.mysql.xml (from rev 17079, freeswitch/trunk/contrib/mod/xml_int/mod_xml_odbc/xml_odbc_templates/directory-user.mysql.xml) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/xml_odbc_templates/directory-user.mysql.xml         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/xml_odbc_templates/directory-user.mysql.xml        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,92 @@
</span><ins>+<include>
+ <template name="directory-user">
+ <document type="freeswitch/xml">
+ <xml-odbc-do name="set-event-header" if-name="key" if-value="id" to-value="username"/>
+ <xml-odbc-do name="query" on-empty-result-break-to="not-found" value="
+ SELECT
+ dir_domains.id AS domain_id,
+ dir_users.id AS user_id,
+ dir_users.username,
+ dir_users.cidr,
+ dir_users.mailbox,
+ dir_users.`number-alias`
+ FROM
+ dir_domains,
+ dir_users
+ WHERE
+ dir_users.`${key}` = '${user}' AND
+ dir_domains.name = '${domain}' AND
+ dir_users.dir_domain_id = dir_domains.id AND
+ dir_users.enabled = '1';"/>
+ <section name="directory">
+ <domain name="${domain}">
+ <params>
+ <xml-odbc-do name="query" value="
+ SELECT
+ name, value
+ FROM
+ dir_domain_params
+ WHERE
+ dir_domain_id = '${domain_id}';">
+ <param name="${name}" value="${value}"/>
+ </xml-odbc-do>
+ </params>
+ <variables>
+ <xml-odbc-do name="query" value="
+ SELECT
+ name, value
+ FROM
+ dir_domain_variables
+ WHERE
+ dir_domain_id = '${domain_id}';">
+ <variable name="${name}" value="${value}"/>
+ </xml-odbc-do>
+ </variables>
+ <groups>
+ <group name="default">
+ <users>
+ <user id="${username}" mailbox="${mailbox}" cidr="${cidr}" number-alias="${number-alias}">
+ <params>
+ <xml-odbc-do name="query" on-empty-result-break-to="not-found" value="
+ SELECT
+ name, value
+ FROM
+ dir_user_params
+ WHERE
+ dir_user_id = '${user_id}';">
+ <param name="${name}" value="${value}"/>
+ </xml-odbc-do>
+ </params>
+ <variables>
+ <xml-odbc-do name="query" value="
+ SELECT
+ name, value
+ FROM
+ dir_user_variables
+ WHERE
+ dir_user_id = '${user_id}';">
+ <variable name="${name}" value="${value}"/>
+ </xml-odbc-do>
+ </variables>
+ </user>
+ </users>
+ </group>
+ <xml-odbc-do name="query" value="
+ SELECT
+ name AS group_name
+ FROM
+ dir_groups,
+ dir_groups_users
+ WHERE
+ dir_groups_users.dir_group_id = dir_groups.id AND
+ dir_user_id = '${user_id}';">
+ <group name="${group_name}">
+ <user id="${username}" type="pointer"/>
+ </group>
+ </xml-odbc-do>
+ </groups>
+ </domain>
+ </section>
+ </document>
+ </template>
+</include>
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribmodxml_intmod_xml_odbcxml_odbc_templatesdirectoryuserpgsqlxmlfromrev17079freeswitchtrunkcontribmodxml_intmod_xml_odbcxml_odbc_templatesdirectoryuserpgsqlxml"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/xml_odbc_templates/directory-user.pgsql.xml (from rev 17079, freeswitch/trunk/contrib/mod/xml_int/mod_xml_odbc/xml_odbc_templates/directory-user.pgsql.xml) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/xml_odbc_templates/directory-user.pgsql.xml         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/xml_odbc_templates/directory-user.pgsql.xml        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,92 @@
</span><ins>+<include>
+ <template name="directory-user">
+ <document type="freeswitch/xml">
+ <xml-odbc-do name="set-event-header" if-name="key" if-value="id" to-value="username"/>
+ <xml-odbc-do name="query" on-empty-result-break-to="not-found" value="
+ SELECT
+ dir_domains.id AS domain_id,
+ dir_users.id AS user_id,
+ dir_users.username,
+ dir_users.cidr,
+ dir_users.mailbox,
+ dir_users.&quot;number-alias&quot;
+ FROM
+ dir_domains,
+ dir_users
+ WHERE
+ dir_users.&quot;${key}&quot; = '${user}' AND
+ dir_domains.name = '${domain}' AND
+ dir_users.dir_domain_id = dir_domains.id AND
+ dir_users.enabled = 'true';"/>
+ <section name="directory">
+ <domain name="${domain}">
+ <params>
+ <xml-odbc-do name="query" value="
+ SELECT
+ name, value
+ FROM
+ dir_domain_params
+ WHERE
+ dir_domain_id = '${domain_id}';">
+ <param name="${name}" value="${value}"/>
+ </xml-odbc-do>
+ </params>
+ <variables>
+ <xml-odbc-do name="query" value="
+ SELECT
+ name, value
+ FROM
+ dir_domain_variables
+ WHERE
+ dir_domain_id = '${domain_id}';">
+ <variable name="${name}" value="${value}"/>
+ </xml-odbc-do>
+ </variables>
+ <groups>
+ <group name="default">
+ <users>
+ <user id="${username}" mailbox="${mailbox}" cidr="${cidr}" number-alias="${number-alias}">
+ <params>
+ <xml-odbc-do name="query" on-empty-result-break-to="not-found" value="
+ SELECT
+ name, value
+ FROM
+ dir_user_params
+ WHERE
+ dir_user_id = '${user_id}';">
+ <param name="${name}" value="${value}"/>
+ </xml-odbc-do>
+ </params>
+ <variables>
+ <xml-odbc-do name="query" value="
+ SELECT
+ name, value
+ FROM
+ dir_user_variables
+ WHERE
+ dir_user_id = '${user_id}';">
+ <variable name="${name}" value="${value}"/>
+ </xml-odbc-do>
+ </variables>
+ </user>
+ </users>
+ </group>
+ <xml-odbc-do name="query" value="
+ SELECT
+ name AS group_name
+ FROM
+ dir_groups,
+ dir_groups_users
+ WHERE
+ dir_groups_users.dir_group_id = dir_groups.id AND
+ dir_user_id = '${user_id}';">
+ <group name="${group_name}">
+ <user id="${username}" type="pointer"/>
+ </group>
+ </xml-odbc-do>
+ </groups>
+ </domain>
+ </section>
+ </document>
+ </template>
+</include>
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribmodxml_intmod_xml_odbcxml_odbc_templatesdirectoryuserxml"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/mod/xml_int/mod_xml_odbc/xml_odbc_templates/directory-user.xml</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimfromrev17079freeswitchtrunkcontribnazim"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim (from rev 17079, freeswitch/trunk/contrib/nazim)</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdfromrev17079freeswitchtrunkcontribnazimxmlcdrd"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd)</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrd"></a>
<div class="propset"><h4>Property changes: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd</h4>
<pre class="diff"><span>
<span class="cx">Name: svn:ignore
</span><span class="cx"> + configure
</span><span class="cx">Makefile.in
</span><span class="cx">config.h.in
</span><span class="cx">aclocal.m4
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdAUTHORS"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/AUTHORS</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdAUTHORSfromrev17079freeswitchtrunkcontribnazimxmlcdrdAUTHORS"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/AUTHORS (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/AUTHORS) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/AUTHORS         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/AUTHORS        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,3 @@
</span><ins>+Nazim Aghabayov
+mail-to: nazim.aghabayov at buta-tech.com
+
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdCOPYING"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/COPYING</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdCOPYINGfromrev17079freeswitchtrunkcontribnazimxmlcdrdCOPYING"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/COPYING (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/COPYING) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/COPYING         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/COPYING        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,471 @@
</span><ins>+ MOZILLA PUBLIC LICENSE
+ Version 1.1
+
+ ---------------
+
+1. Definitions.
+
+ 1.0.1. "Commercial Use" means distribution or otherwise making the
+ Covered Code available to a third party.
+
+ 1.1. "Contributor" means each entity that creates or contributes to
+ the creation of Modifications.
+
+ 1.2. "Contributor Version" means the combination of the Original
+ Code, prior Modifications used by a Contributor, and the Modifications
+ made by that particular Contributor.
+
+ 1.3. "Covered Code" means the Original Code or Modifications or the
+ combination of the Original Code and Modifications, in each case
+ including portions thereof.
+
+ 1.4. "Electronic Distribution Mechanism" means a mechanism generally
+ accepted in the software development community for the electronic
+ transfer of data.
+
+ 1.5. "Executable" means Covered Code in any form other than Source
+ Code.
+
+ 1.6. "Initial Developer" means the individual or entity identified
+ as the Initial Developer in the Source Code notice required by Exhibit
+ A.
+
+ 1.7. "Larger Work" means a work which combines Covered Code or
+ portions thereof with code not governed by the terms of this License.
+
+ 1.8. "License" means this document.
+
+ 1.8.1. "Licensable" means having the right to grant, to the maximum
+ extent possible, whether at the time of the initial grant or
+ subsequently acquired, any and all of the rights conveyed herein.
+
+ 1.9. "Modifications" means any addition to or deletion from the
+ substance or structure of either the Original Code or any previous
+ Modifications. When Covered Code is released as a series of files, a
+ Modification is:
+ A. Any addition to or deletion from the contents of a file
+ containing Original Code or previous Modifications.
+
+ B. Any new file that contains any part of the Original Code or
+ previous Modifications.
+
+ 1.10. "Original Code" means Source Code of computer software code
+ which is described in the Source Code notice required by Exhibit A as
+ Original Code, and which, at the time of its release under this
+ License is not already Covered Code governed by this License.
+
+ 1.10.1. "Patent Claims" means any patent claim(s), now owned or
+ hereafter acquired, including without limitation, method, process,
+ and apparatus claims, in any patent Licensable by grantor.
+
+ 1.11. "Source Code" means the preferred form of the Covered Code for
+ making modifications to it, including all modules it contains, plus
+ any associated interface definition files, scripts used to control
+ compilation and installation of an Executable, or source code
+ differential comparisons against either the Original Code or another
+ well known, available Covered Code of the Contributor's choice. The
+ Source Code can be in a compressed or archival form, provided the
+ appropriate decompression or de-archiving software is widely available
+ for no charge.
+
+ 1.12. "You" (or "Your") means an individual or a legal entity
+ exercising rights under, and complying with all of the terms of, this
+ License or a future version of this License issued under Section 6.1.
+ For legal entities, "You" includes any entity which controls, is
+ controlled by, or is under common control with You. For purposes of
+ this definition, "control" means (a) the power, direct or indirect,
+ to cause the direction or management of such entity, whether by
+ contract or otherwise, or (b) ownership of more than fifty percent
+ (50%) of the outstanding shares or beneficial ownership of such
+ entity.
+
+2. Source Code License.
+
+ 2.1. The Initial Developer Grant.
+ The Initial Developer hereby grants You a world-wide, royalty-free,
+ non-exclusive license, subject to third party intellectual property
+ claims:
+ (a) under intellectual property rights (other than patent or
+ trademark) Licensable by Initial Developer to use, reproduce,
+ modify, display, perform, sublicense and distribute the Original
+ Code (or portions thereof) with or without Modifications, and/or
+ as part of a Larger Work; and
+
+ (b) under Patents Claims infringed by the making, using or
+ selling of Original Code, to make, have made, use, practice,
+ sell, and offer for sale, and/or otherwise dispose of the
+ Original Code (or portions thereof).
+
+ (c) the licenses granted in this Section 2.1(a) and (b) are
+ effective on the date Initial Developer first distributes
+ Original Code under the terms of this License.
+
+ (d) Notwithstanding Section 2.1(b) above, no patent license is
+ granted: 1) for code that You delete from the Original Code; 2)
+ separate from the Original Code; or 3) for infringements caused
+ by: i) the modification of the Original Code or ii) the
+ combination of the Original Code with other software or devices.
+
+ 2.2. Contributor Grant.
+ Subject to third party intellectual property claims, each Contributor
+ hereby grants You a world-wide, royalty-free, non-exclusive license
+
+ (a) under intellectual property rights (other than patent or
+ trademark) Licensable by Contributor, to use, reproduce, modify,
+ display, perform, sublicense and distribute the Modifications
+ created by such Contributor (or portions thereof) either on an
+ unmodified basis, with other Modifications, as Covered Code
+ and/or as part of a Larger Work; and
+
+ (b) under Patent Claims infringed by the making, using, or
+ selling of Modifications made by that Contributor either alone
+ and/or in combination with its Contributor Version (or portions
+ of such combination), to make, use, sell, offer for sale, have
+ made, and/or otherwise dispose of: 1) Modifications made by that
+ Contributor (or portions thereof); and 2) the combination of
+ Modifications made by that Contributor with its Contributor
+ Version (or portions of such combination).
+
+ (c) the licenses granted in Sections 2.2(a) and 2.2(b) are
+ effective on the date Contributor first makes Commercial Use of
+ the Covered Code.
+
+ (d) Notwithstanding Section 2.2(b) above, no patent license is
+ granted: 1) for any code that Contributor has deleted from the
+ Contributor Version; 2) separate from the Contributor Version;
+ 3) for infringements caused by: i) third party modifications of
+ Contributor Version or ii) the combination of Modifications made
+ by that Contributor with other software (except as part of the
+ Contributor Version) or other devices; or 4) under Patent Claims
+ infringed by Covered Code in the absence of Modifications made by
+ that Contributor.
+
+3. Distribution Obligations.
+
+ 3.1. Application of License.
+ The Modifications which You create or to which You contribute are
+ governed by the terms of this License, including without limitation
+ Section 2.2. The Source Code version of Covered Code may be
+ distributed only under the terms of this License or a future version
+ of this License released under Section 6.1, and You must include a
+ copy of this License with every copy of the Source Code You
+ distribute. You may not offer or impose any terms on any Source Code
+ version that alters or restricts the applicable version of this
+ License or the recipients' rights hereunder. However, You may include
+ an additional document offering the additional rights described in
+ Section 3.5.
+
+ 3.2. Availability of Source Code.
+ Any Modification which You create or to which You contribute must be
+ made available in Source Code form under the terms of this License
+ either on the same media as an Executable version or via an accepted
+ Electronic Distribution Mechanism to anyone to whom you made an
+ Executable version available; and if made available via Electronic
+ Distribution Mechanism, must remain available for at least twelve (12)
+ months after the date it initially became available, or at least six
+ (6) months after a subsequent version of that particular Modification
+ has been made available to such recipients. You are responsible for
+ ensuring that the Source Code version remains available even if the
+ Electronic Distribution Mechanism is maintained by a third party.
+
+ 3.3. Description of Modifications.
+ You must cause all Covered Code to which You contribute to contain a
+ file documenting the changes You made to create that Covered Code and
+ the date of any change. You must include a prominent statement that
+ the Modification is derived, directly or indirectly, from Original
+ Code provided by the Initial Developer and including the name of the
+ Initial Developer in (a) the Source Code, and (b) in any notice in an
+ Executable version or related documentation in which You describe the
+ origin or ownership of the Covered Code.
+
+ 3.4. Intellectual Property Matters
+ (a) Third Party Claims.
+ If Contributor has knowledge that a license under a third party's
+ intellectual property rights is required to exercise the rights
+ granted by such Contributor under Sections 2.1 or 2.2,
+ Contributor must include a text file with the Source Code
+ distribution titled "LEGAL" which describes the claim and the
+ party making the claim in sufficient detail that a recipient will
+ know whom to contact. If Contributor obtains such knowledge after
+ the Modification is made available as described in Section 3.2,
+ Contributor shall promptly modify the LEGAL file in all copies
+ Contributor makes available thereafter and shall take other steps
+ (such as notifying appropriate mailing lists or newsgroups)
+ reasonably calculated to inform those who received the Covered
+ Code that new knowledge has been obtained.
+
+ (b) Contributor APIs.
+ If Contributor's Modifications include an application programming
+ interface and Contributor has knowledge of patent licenses which
+ are reasonably necessary to implement that API, Contributor must
+ also include this information in the LEGAL file.
+
+ (c) Representations.
+ Contributor represents that, except as disclosed pursuant to
+ Section 3.4(a) above, Contributor believes that Contributor's
+ Modifications are Contributor's original creation(s) and/or
+ Contributor has sufficient rights to grant the rights conveyed by
+ this License.
+
+ 3.5. Required Notices.
+ You must duplicate the notice in Exhibit A in each file of the Source
+ Code. If it is not possible to put such notice in a particular Source
+ Code file due to its structure, then You must include such notice in a
+ location (such as a relevant directory) where a user would be likely
+ to look for such a notice. If You created one or more Modification(s)
+ You may add your name as a Contributor to the notice described in
+ Exhibit A. You must also duplicate this License in any documentation
+ for the Source Code where You describe recipients' rights or ownership
+ rights relating to Covered Code. You may choose to offer, and to
+ charge a fee for, warranty, support, indemnity or liability
+ obligations to one or more recipients of Covered Code. However, You
+ may do so only on Your own behalf, and not on behalf of the Initial
+ Developer or any Contributor. You must make it absolutely clear than
+ any such warranty, support, indemnity or liability obligation is
+ offered by You alone, and You hereby agree to indemnify the Initial
+ Developer and every Contributor for any liability incurred by the
+ Initial Developer or such Contributor as a result of warranty,
+ support, indemnity or liability terms You offer.
+
+ 3.6. Distribution of Executable Versions.
+ You may distribute Covered Code in Executable form only if the
+ requirements of Section 3.1-3.5 have been met for that Covered Code,
+ and if You include a notice stating that the Source Code version of
+ the Covered Code is available under the terms of this License,
+ including a description of how and where You have fulfilled the
+ obligations of Section 3.2. The notice must be conspicuously included
+ in any notice in an Executable version, related documentation or
+ collateral in which You describe recipients' rights relating to the
+ Covered Code. You may distribute the Executable version of Covered
+ Code or ownership rights under a license of Your choice, which may
+ contain terms different from this License, provided that You are in
+ compliance with the terms of this License and that the license for the
+ Executable version does not attempt to limit or alter the recipient's
+ rights in the Source Code version from the rights set forth in this
+ License. If You distribute the Executable version under a different
+ license You must make it absolutely clear that any terms which differ
+ from this License are offered by You alone, not by the Initial
+ Developer or any Contributor. You hereby agree to indemnify the
+ Initial Developer and every Contributor for any liability incurred by
+ the Initial Developer or such Contributor as a result of any such
+ terms You offer.
+
+ 3.7. Larger Works.
+ You may create a Larger Work by combining Covered Code with other code
+ not governed by the terms of this License and distribute the Larger
+ Work as a single product. In such a case, You must make sure the
+ requirements of this License are fulfilled for the Covered Code.
+
+4. Inability to Comply Due to Statute or Regulation.
+
+ If it is impossible for You to comply with any of the terms of this
+ License with respect to some or all of the Covered Code due to
+ statute, judicial order, or regulation then You must: (a) comply with
+ the terms of this License to the maximum extent possible; and (b)
+ describe the limitations and the code they affect. Such description
+ must be included in the LEGAL file described in Section 3.4 and must
+ be included with all distributions of the Source Code. Except to the
+ extent prohibited by statute or regulation, such description must be
+ sufficiently detailed for a recipient of ordinary skill to be able to
+ understand it.
+
+5. Application of this License.
+
+ This License applies to code to which the Initial Developer has
+ attached the notice in Exhibit A and to related Covered Code.
+
+6. Versions of the License.
+
+ 6.1. New Versions.
+ Netscape Communications Corporation ("Netscape") may publish revised
+ and/or new versions of the License from time to time. Each version
+ will be given a distinguishing version number.
+
+ 6.2. Effect of New Versions.
+ Once Covered Code has been published under a particular version of the
+ License, You may always continue to use it under the terms of that
+ version. You may also choose to use such Covered Code under the terms
+ of any subsequent version of the License published by Netscape. No one
+ other than Netscape has the right to modify the terms applicable to
+ Covered Code created under this License.
+
+ 6.3. Derivative Works.
+ If You create or use a modified version of this License (which you may
+ only do in order to apply it to code which is not already Covered Code
+ governed by this License), You must (a) rename Your license so that
+ the phrases "Mozilla", "MOZILLAPL", "MOZPL", "Netscape",
+ "MPL", "NPL" or any confusingly similar phrase do not appear in your
+ license (except to note that your license differs from this License)
+ and (b) otherwise make it clear that Your version of the license
+ contains terms which differ from the Mozilla Public License and
+ Netscape Public License. (Filling in the name of the Initial
+ Developer, Original Code or Contributor in the notice described in
+ Exhibit A shall not of themselves be deemed to be modifications of
+ this License.)
+
+7. DISCLAIMER OF WARRANTY.
+
+ COVERED CODE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS,
+ WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ WITHOUT LIMITATION, WARRANTIES THAT THE COVERED CODE IS FREE OF
+ DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING.
+ THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED CODE
+ IS WITH YOU. SHOULD ANY COVERED CODE PROVE DEFECTIVE IN ANY RESPECT,
+ YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE
+ COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER
+ OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
+ ANY COVERED CODE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
+
+8. TERMINATION.
+
+ 8.1. This License and the rights granted hereunder will terminate
+ automatically if You fail to comply with terms herein and fail to cure
+ such breach within 30 days of becoming aware of the breach. All
+ sublicenses to the Covered Code which are properly granted shall
+ survive any termination of this License. Provisions which, by their
+ nature, must remain in effect beyond the termination of this License
+ shall survive.
+
+ 8.2. If You initiate litigation by asserting a patent infringement
+ claim (excluding declatory judgment actions) against Initial Developer
+ or a Contributor (the Initial Developer or Contributor against whom
+ You file such action is referred to as "Participant") alleging that:
+
+ (a) such Participant's Contributor Version directly or indirectly
+ infringes any patent, then any and all rights granted by such
+ Participant to You under Sections 2.1 and/or 2.2 of this License
+ shall, upon 60 days notice from Participant terminate prospectively,
+ unless if within 60 days after receipt of notice You either: (i)
+ agree in writing to pay Participant a mutually agreeable reasonable
+ royalty for Your past and future use of Modifications made by such
+ Participant, or (ii) withdraw Your litigation claim with respect to
+ the Contributor Version against such Participant. If within 60 days
+ of notice, a reasonable royalty and payment arrangement are not
+ mutually agreed upon in writing by the parties or the litigation claim
+ is not withdrawn, the rights granted by Participant to You under
+ Sections 2.1 and/or 2.2 automatically terminate at the expiration of
+ the 60 day notice period specified above.
+
+ (b) any software, hardware, or device, other than such Participant's
+ Contributor Version, directly or indirectly infringes any patent, then
+ any rights granted to You by such Participant under Sections 2.1(b)
+ and 2.2(b) are revoked effective as of the date You first made, used,
+ sold, distributed, or had made, Modifications made by that
+ Participant.
+
+ 8.3. If You assert a patent infringement claim against Participant
+ alleging that such Participant's Contributor Version directly or
+ indirectly infringes any patent where such claim is resolved (such as
+ by license or settlement) prior to the initiation of patent
+ infringement litigation, then the reasonable value of the licenses
+ granted by such Participant under Sections 2.1 or 2.2 shall be taken
+ into account in determining the amount or value of any payment or
+ license.
+
+ 8.4. In the event of termination under Sections 8.1 or 8.2 above,
+ all end user license agreements (excluding distributors and resellers)
+ which have been validly granted by You or any distributor hereunder
+ prior to termination shall survive termination.
+
+9. LIMITATION OF LIABILITY.
+
+ UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
+ (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL
+ DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED CODE,
+ OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR
+ ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY
+ CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL,
+ WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
+ COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
+ INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
+ LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY
+ RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW
+ PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE
+ EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO
+ THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
+
+10. U.S. GOVERNMENT END USERS.
+
+ The Covered Code is a "commercial item," as that term is defined in
+ 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer
+ software" and "commercial computer software documentation," as such
+ terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48
+ C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995),
+ all U.S. Government End Users acquire Covered Code with only those
+ rights set forth herein.
+
+11. MISCELLANEOUS.
+
+ This License represents the complete agreement concerning subject
+ matter hereof. If any provision of this License is held to be
+ unenforceable, such provision shall be reformed only to the extent
+ necessary to make it enforceable. This License shall be governed by
+ California law provisions (except to the extent applicable law, if
+ any, provides otherwise), excluding its conflict-of-law provisions.
+ With respect to disputes in which at least one party is a citizen of,
+ or an entity chartered or registered to do business in the United
+ States of America, any litigation relating to this License shall be
+ subject to the jurisdiction of the Federal Courts of the Northern
+ District of California, with venue lying in Santa Clara County,
+ California, with the losing party responsible for costs, including
+ without limitation, court costs and reasonable attorneys' fees and
+ expenses. The application of the United Nations Convention on
+ Contracts for the International Sale of Goods is expressly excluded.
+ Any law or regulation which provides that the language of a contract
+ shall be construed against the drafter shall not apply to this
+ License.
+
+12. RESPONSIBILITY FOR CLAIMS.
+
+ As between Initial Developer and the Contributors, each party is
+ responsible for claims and damages arising, directly or indirectly,
+ out of its utilization of rights under this License and You agree to
+ work with Initial Developer and Contributors to distribute such
+ responsibility on an equitable basis. Nothing herein is intended or
+ shall be deemed to constitute any admission of liability.
+
+13. MULTIPLE-LICENSED CODE.
+
+ Initial Developer may designate portions of the Covered Code as
+ "Multiple-Licensed". "Multiple-Licensed" means that the Initial
+ Developer permits you to utilize portions of the Covered Code under
+ Your choice of the NPL or the alternative licenses, if any, specified
+ by the Initial Developer in the file described in Exhibit A.
+
+EXHIBIT A -Mozilla Public License.
+
+ ``The contents of this file are subject to the Mozilla Public License
+ Version 1.1 (the "License"); you may not use this file except in
+ compliance with the License. You may obtain a copy of the License at
+ http://www.mozilla.org/MPL/
+
+ Software distributed under the License is distributed on an "AS IS"
+ basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ License for the specific language governing rights and limitations
+ under the License.
+
+ The Original Code is ______________________________________.
+
+ The Initial Developer of the Original Code is ________________________.
+ Portions created by ______________________ are Copyright (C) ______
+ _______________________. All Rights Reserved.
+
+ Contributor(s): ______________________________________.
+
+ Alternatively, the contents of this file may be used under the terms
+ of the _____ license (the "[___] License"), in which case the
+ provisions of [______] License are applicable instead of those
+ above. If you wish to allow use of your version of this file only
+ under the terms of the [____] License and not to allow others to use
+ your version of this file under the MPL, indicate your decision by
+ deleting the provisions above and replace them with the notice and
+ other provisions required by the [___] License. If you do not delete
+ the provisions above, a recipient may use your version of this file
+ under either the MPL or the [___] License."
+
+ [NOTE: The text of this Exhibit A may differ slightly from the text of
+ the notices in the Source Code files of the Original Code. You should
+ use the text of this Exhibit A rather than the text found in the
+ Original Code Source Code for Your Modifications.]
+
+
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdChangeLog"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/ChangeLog</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdChangeLogfromrev17079freeswitchtrunkcontribnazimxmlcdrdChangeLog"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/ChangeLog (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/ChangeLog) ( => )</h4>
<pre class="diff"><span>
<span class="info">
Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/INSTALL
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdINSTALLfromrev17079freeswitchtrunkcontribnazimxmlcdrdINSTALL"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/INSTALL (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/INSTALL) ( => )</h4>
<pre class="diff"><span>
<span class="info">
Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/Makefile.am
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdMakefileamfromrev17079freeswitchtrunkcontribnazimxmlcdrdMakefileam"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/Makefile.am (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/Makefile.am) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/Makefile.am         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/Makefile.am        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,79 @@
</span><ins>+SHELL = /bin/sh
+VPATH = @srcdir@
+
+confdir = "/etc/xmlcdrd"
+subdirs = @subdirs@
+top_srcdir = @top_srcdir@
+srcdir = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+bindir = $(exec_prefix)/bin
+infodir = $(prefix)/info
+libdir = $(prefix)/lib
+includedir = $(prefix)/include
+mandir = $(prefix)/man/man1
+snapshot = $(srcdir)/../`date +xmlcdr_%Y%m%d_%H%M`
+
+CC = @CC@
+CPPFLAGS = @CPPFLAGS@
+CFLAGS = $(CPPFLAGS) -fPIC -Wall @CFLAGS@
+LDFLAGS = @LDFLAGS@
+LIBS = @LIBS@
+INCS = @INCS@
+INSTALL = @INSTALL@
+
+all:
+        $(CC) $(CFLAGS) @with_glib2_flags@ -c stmtexpldr.c
+        $(CC) $(CFLAGS) @with_glib2_flags@ -lconfig -c stmtexp.c
+        $(CC) $(CFLAGS) @with_glib2_flags@ -c plug.c
+        $(CC) $(CFLAGS) @with_glib2_flags@ -c plugldr.c
+        $(CC) $(CFLAGS) -c log.c
+        $(CC) $(CFLAGS) `@with_apreq2_config@ --libs --includes` \
+`@with_apr_config@ --libs --includes --cppflags` @with_glib2_flags@ -c urldecode.c
+
+if BUILDMYSQLCDR
+        $(MAKE) -C plugins/mysqlcdr
+endif
+        
+if BUILDLUAEXEC
+        $(MAKE) -C plugins/luaexec
+endif
+
+        $(CC) $(CFLAGS) \
+ `@with_apreq2_config@ --libs --includes` \
+ `@with_apr_config@ --libs --includes --cppflags --link-ld ` \
+ @with_glib2_flags@ -lglib-2.0 \
+ `@with_xml2_config@ --cflags --libs` \
+ $(LIBS) \
+ stmtexpldr.o stmtexp.o log.o urldecode.o \
+ plugldr.o plug.o \
+-o xmlcdr.fcgi main.c
+
+
+snapshot:
+        -tar --exclude-vcs -zcf $(snapshot).tgz -R $(srcdir) ; fi
+
+install:
+        -cp xmlcdr.fcgi $(bindir)/
+        -if [ ! -d $(confdir) ]; then mkdir $(confdir); fi
+        -cp conf/* $(confdir)/
+
+if BUILDMYSQLCDR
+        $(MAKE) -C plugins/mysqlcdr install
+endif
+
+if BUILDLUAEXEC
+        $(MAKE) -C plugins/luaexec install
+endif
+
+
+clean:
+        -rm -f *.o xmlcdr.fcgi
+
+if BUILDMYSQLCDR
+        $(MAKE) -C plugins/mysqlcdr clean
+endif
+
+if BUILDLUAEXEC
+        $(MAKE) -C plugins/luaexec clean
+endif
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdNEWS"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/NEWS</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdNEWSfromrev17079freeswitchtrunkcontribnazimxmlcdrdNEWS"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/NEWS (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/NEWS) ( => )</h4>
<pre class="diff"><span>
<span class="info">
Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/README
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdREADMEfromrev17079freeswitchtrunkcontribnazimxmlcdrdREADME"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/README (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/README) ( => )</h4>
<pre class="diff"><span>
<span class="info">
Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/bootstrap.sh
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdbootstrapshfromrev17079freeswitchtrunkcontribnazimxmlcdrdbootstrapsh"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/bootstrap.sh (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/bootstrap.sh) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/bootstrap.sh         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/bootstrap.sh        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,8 @@
</span><ins>+#!/bin/sh
+
+aclocal
+autoconf
+autoheader
+automake
+rm -rf autom4te*.cache
+
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdconffromrev17079freeswitchtrunkcontribnazimxmlcdrdconf"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/conf)</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdconfdb1conf"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/db1.conf</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdconfdb1conffromrev17079freeswitchtrunkcontribnazimxmlcdrdconfdb1conf"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/db1.conf (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/conf/db1.conf) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/db1.conf         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/db1.conf        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,12 @@
</span><ins>+dbuserid="ddp";
+dbpasswd="password";
+dbschema="ddp";
+dbipaddr="localhost";
+dbipport=3306;
+
+
+stmt_template="insert into cdr (caller_id_number, effective_caller_id_number, destination_number, billsec) values ('$<caller_id_number>','$<effective_caller_id_number>', '$<destination_number>', $<billsec>)";
+
+
+
+
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdconflighttpdconfexample"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/lighttpd.conf.example</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdconflighttpdconfexamplefromrev17079freeswitchtrunkcontribnazimxmlcdrdconflighttpdconfexample"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/lighttpd.conf.example (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/conf/lighttpd.conf.example) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/lighttpd.conf.example         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/lighttpd.conf.example        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,57 @@
</span><ins>+## bind to port (default: 80)
+server.port = 8080
+
+
+server.modules = (
+ "mod_access",
+ "mod_alias",
+ "mod_accesslog",
+ "mod_compress",
+ "mod_fastcgi"
+ )
+
+fastcgi.debug = 1
+server.document-root = "/home/nazim/www/"
+server.errorlog = "/home/nazim/var/log/lighttpd/error.log"
+index-file.names = ( "index.php", "index.html",
+ "index.htm", "default.htm",
+ "index.lighttpd.html" )
+
+accesslog.filename = "/home/nazim/var/log/lighttpd/access.log"
+
+url.access-deny = ( "~", ".inc" )
+static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
+
+server.pid-file = "/home/nazim/var/run/lighttpd.pid"
+dir-listing.encoding = "utf-8"
+server.dir-listing = "enable"
+server.username = "www-data"
+server.groupname = "www-data"
+compress.cache-dir = "/home/nazim/var/cache/lighttpd/compress/"
+compress.filetype = ("text/plain", "text/html", "application/x-javascript", "text/css")
+
+include_shell "/usr/share/lighttpd/create-mime.assign.pl"
+include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
+
+$HTTP["remoteip"] == "127.0.0.1" {
+        alias.url += (
+                "/doc/" => "/usr/share/doc/",
+                "/images/" => "/usr/share/images/"
+        )
+        $HTTP["url"] =~ "^/doc/|^/images/" {
+                dir-listing.activate = "enable"
+        }
+}
+
+fastcgi.server = (
+ "xmlcdr.fcgi" =>
+ ( "localhost" =>
+ (
+ "socket" => "/home/nazim/tmp/lighttpd-cdr-fcgi.socket",
+ "max-procs" => 5,
+ "bin-path" => "/home/nazim/prj/buta/xmlcdr/trunk/xmlcdr.fcgi",
+ "check-local" => "disable"
+ )
+ )
+ )
+
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdconfluaexecconfdist"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/luaexec.conf.dist</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdconfluaexecconfdistfromrev17079freeswitchtrunkcontribnazimxmlcdrdconfluaexecconfdist"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/luaexec.conf.dist (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/conf/luaexec.conf.dist) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/luaexec.conf.dist         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/luaexec.conf.dist        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,2 @@
</span><ins>+luascript = "/etc/xmlcdrd/test.lua";
+
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdconftestlua"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/test.lua</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdconftestluafromrev17079freeswitchtrunkcontribnazimxmlcdrdconftestlua"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/test.lua (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/conf/test.lua) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/test.lua         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/test.lua        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,34 @@
</span><ins>+-- Lua script _must_ provide three functions:
+-- luaexec_init()
+-- luaexec_free()
+-- luaexec_man()
+-- Functions listed above can be empty, but they must exist for successful run.
+
+
+require "luasql.odbc"
+
+env = nil
+db_conn = nil
+count = 0
+
+function luaexec_init ()
+ env = assert(luasql.odbc())
+ db_conn = assert(env:connect("ddp") )
+ count = 1
+end
+
+
+function luaexec_free ()
+ db_conn:close()
+ env:close()
+end
+
+function luaexec_main ()
+
+ uuid = xcdr_varget("uuid")
+ billsec = xcdr_varget("billsec")
+
+ db_conn:execute(string.format("insert into planeta_cdr_notify (uuid,billsec) values ('%s', %d)", uuid, billsec + count))
+ count = count + 1
+end
+
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdconfxmlcdrconfdist"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/xmlcdr.conf.dist</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdconfxmlcdrconfdistfromrev17079freeswitchtrunkcontribnazimxmlcdrdconfxmlcdrconfdist"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/xmlcdr.conf.dist (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/conf/xmlcdr.conf.dist) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/xmlcdr.conf.dist         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/conf/xmlcdr.conf.dist        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,115 @@
</span><ins>+#Copy this file to /etc/xmlcdrd/xmlcdr.conf
+
+#Variables section
+Variables = (
+
+{
+name = "uuid";
+var_id = "uuid";
+xpath = "/cdr/callflow[@profile_index='1']/caller_profile/uuid";
+}
+,
+{
+name = "context";
+var_id = "context";
+xpath = "/cdr/callflow[@profile_index='1']/caller_profile/context";
+}
+,
+{
+name = "effective_caller_id_number";
+var_id = "effective_caller_id_number";
+xpath = "/cdr/variables/effective_caller_id_number";
+}
+,
+{
+name = "caller_id_number";
+var_id = "caller_id_number";
+xpath = "/cdr/callflow[@profile_index='1']/caller_profile/caller_id_number";
+}
+,
+{
+name = "destination_number";
+var_id = "destination_number";
+xpath = "/cdr/callflow[@profile_index='1']/caller_profile/destination_number";
+}
+,
+{
+name = "profile_destination_number";
+var_id = "profile_destination_number";
+xpath = "/cdr/callflow[@profile_index='1']/caller_profile/originatee/originatee_caller_profile/destination_number";
+}
+,
+{
+name = "callgroup";
+var_id = "callgroup";
+xpath = "/cdr/variables/planeta_callgroup";
+}
+,
+{
+name = "billsec";
+var_id = "billsec";
+xpath = "/cdr/variables/billsec";
+}
+,
+{
+name = "startep";
+var_id = "startep";
+xpath = "/cdr/variables/start_epoch";
+}
+,
+{
+name = "answep";
+var_id = "answep";
+xpath = "/cdr/variables/answer_epoch";
+}
+,
+{
+name = "endep";
+var_id = "endep";
+xpath = "/cdr/variables/end_epoch";
+}
+
+);
+#End of Variables
+
+
+#Plugins directory
+plugin_dir = "/usr/local/lib/xmlcdrd";
+
+
+
+#Plugins section
+Plugins = (
+
+#Plugin declaration
+{
+ #name is a name of so file without the extension
+ name="mysqlcdr";
+
+ #config file for plugin
+ options = "/etc/xmlcdrd/db1.conf";
+ priority = 10;
+
+ #Metrics control plugin execution
+ #Plugin with no metrics defined will be executed everytime
+ Metrics = (
+        {
+ metric = "destination_number";
+ regexp = "^6969.*";
+ }
+ );
+ #end of metrics
+
+},
+{
+ name="luaexec";
+ options="/etc/xmlcdrd/luaexec.conf";
+ priority=20;
+}
+
+#End of plugin declaration
+#You could define multiple plugins
+#Plugin declarations are separated with comma. See libconfig manual for details.
+
+);
+#End of Plugin section
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdconfigureac"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/configure.ac</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdconfigureacfromrev17079freeswitchtrunkcontribnazimxmlcdrdconfigureac"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/configure.ac (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/configure.ac) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/configure.ac         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/configure.ac        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,109 @@
</span><ins>+# -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+AC_PREREQ([2.6])
+AC_INIT([xmlcdrd], [0.1], [xmlcdr@buta-tech.com])
+AM_INIT_AUTOMAKE
+AC_CONFIG_SRCDIR([urldecode.c])
+AC_CONFIG_HEADERS([config.h])
+
+# Checks for programs.
+AC_PROG_CC
+AC_PROG_INSTALL
+
+# Checks for libraries.
+
+AC_CHECK_LIB([apreq2], [main])
+
+AC_CHECK_LIB([apr-1], [main])
+
+AC_CHECK_LIB([config], [main])
+
+AC_CHECK_LIB([dl], [main])
+
+AC_CHECK_LIB([fcgi], [main])
+
+AC_CHECK_LIB([pcre], [main])
+
+AC_CHECK_LIB([glib-2.0], [main])
+
+AC_CHECK_LIB([xml2], [main])
+
+# Checks for header files.
+AC_CHECK_HEADERS([malloc.h stdlib.h string.h syslog.h])
+
+#check for library config scripts
+AC_MSG_CHECKING(for apreq2config)
+AC_ARG_WITH(apreq2_config,
+ AC_HELP_STRING([--with-apreq2-config@<:@=PATH@:>@],[Location of apreq2 configuration script.]),
+ [with_apreq2_config="$withval"],[with_apreq2_config="apreq2-config"])
+AC_SUBST(with_apreq2_config)
+
+AC_MSG_CHECKING(for aprconfig)
+AC_ARG_WITH(apr_config,
+ AC_HELP_STRING([--with-apr-config@<:@=PATH@:>@],[Location of apr configuration script.]),
+ [with_apr_config="$withval"],[with_apr_config="apr-1-config"])
+AC_SUBST(with_apr_config)
+
+AC_MSG_CHECKING(for mysqlconfig)
+AC_ARG_WITH(mysql_config,
+ AC_HELP_STRING([--with-mysql-config@<:@=PATH@:>@],[Location of mysql configuration script.]),
+ [with_mysql_config="$withval"],[with_mysql_config="mysql_config"])
+AC_SUBST(with_mysql_config)
+
+AC_MSG_CHECKING(for xml2config)
+AC_ARG_WITH(xml2_config,
+ AC_HELP_STRING([--with-xml2-config@<:@=PATH@:>@],[Location of libxml2 configuration script.]),
+ [with_xml2_config=="$withval"],[with_xml2_config="xml2-config"])
+AC_SUBST(with_xml2_config)
+
+AC_MSG_CHECKING(for glib2 flags)
+AC_ARG_WITH(glib2_flags,
+ AC_HELP_STRING([--with-glib2-flags],[glib2 CFLAGS.]),
+ [with_glib2_flags="$withval"],[with_glib2_flags="-I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include"])
+AC_SUBST(with_glib2_flags)
+
+
+#Plugins to build
+
+#mysqlcdr
+domysqlcdr=yes
+
+AC_ARG_ENABLE(mysqlcdr,
+AS_HELP_STRING([--disable-mysqlcdr], [Disable building of mysqlcdr plugin]),
+[if test "$enableval" = "no"; then domysqlcdr="no"; fi],
+[
+domysqlcdr=yes
+]
+)
+
+AM_CONDITIONAL(BUILDMYSQLCDR, test x$domysqlcdr = xyes)
+
+
+#luaexec
+doluaexec=yes
+
+AC_ARG_ENABLE(luaexec,
+AS_HELP_STRING([--disable-luaexec], [Disable building of luaexec plugin]),
+[if test "$enableval" = "no"; then doluaexec="no"; fi],
+[
+doluaexec=yes
+]
+)
+
+AM_CONDITIONAL(BUILDLUAEXEC, test x$doluaexec = xyes)
+
+
+
+# Checks for typedefs, structures, and compiler characteristics.
+
+# Checks for library functions.
+AC_FUNC_MALLOC
+AC_FUNC_REALLOC
+AC_CHECK_FUNCS([memset strchr strdup strstr])
+
+AC_CONFIG_FILES([Makefile
+ plugins/mysqlcdr/Makefile
+ plugins/luaexec/Makefile])
+AC_OUTPUT
+
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdinstallsh"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/install-sh</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdinstallshfromrev17079freeswitchtrunkcontribnazimxmlcdrdinstallsh"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/install-sh (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/install-sh) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/install-sh         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/install-sh        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,520 @@
</span><ins>+#!/bin/sh
+# install - install a program, script, or datafile
+
+scriptversion=2009-04-28.21; # UTC
+
+# This originates from X11R5 (mit/util/scripts/install.sh), which was
+# later released in X11R6 (xc/config/util/install.sh) with the
+# following copyright and license.
+#
+# Copyright (C) 1994 X Consortium
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name of the X Consortium shall not
+# be used in advertising or otherwise to promote the sale, use or other deal-
+# ings in this Software without prior written authorization from the X Consor-
+# tium.
+#
+#
+# FSF changes to this file are in the public domain.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# `make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.
+
+nl='
+'
+IFS=" ""        $nl"
+
+# set DOITPROG to echo to test this script
+
+# Don't use :- since 4.3BSD and earlier shells don't like it.
+doit=${DOITPROG-}
+if test -z "$doit"; then
+ doit_exec=exec
+else
+ doit_exec=$doit
+fi
+
+# Put in absolute file names if you don't have them in your path;
+# or use environment vars.
+
+chgrpprog=${CHGRPPROG-chgrp}
+chmodprog=${CHMODPROG-chmod}
+chownprog=${CHOWNPROG-chown}
+cmpprog=${CMPPROG-cmp}
+cpprog=${CPPROG-cp}
+mkdirprog=${MKDIRPROG-mkdir}
+mvprog=${MVPROG-mv}
+rmprog=${RMPROG-rm}
+stripprog=${STRIPPROG-strip}
+
+posix_glob='?'
+initialize_posix_glob='
+ test "$posix_glob" != "?" || {
+ if (set -f) 2>/dev/null; then
+ posix_glob=
+ else
+ posix_glob=:
+ fi
+ }
+'
+
+posix_mkdir=
+
+# Desired mode of installed file.
+mode=0755
+
+chgrpcmd=
+chmodcmd=$chmodprog
+chowncmd=
+mvcmd=$mvprog
+rmcmd="$rmprog -f"
+stripcmd=
+
+src=
+dst=
+dir_arg=
+dst_arg=
+
+copy_on_change=false
+no_target_directory=
+
+usage="\
+Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+ or: $0 [OPTION]... SRCFILES... DIRECTORY
+ or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+ or: $0 [OPTION]... -d DIRECTORIES...
+
+In the 1st form, copy SRCFILE to DSTFILE.
+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+In the 4th, create DIRECTORIES.
+
+Options:
+ --help display this help and exit.
+ --version display version info and exit.
+
+ -c (ignored)
+ -C install only if different (preserve the last data modification time)
+ -d create directories instead of installing files.
+ -g GROUP $chgrpprog installed files to GROUP.
+ -m MODE $chmodprog installed files to MODE.
+ -o USER $chownprog installed files to USER.
+ -s $stripprog installed files.
+ -t DIRECTORY install into DIRECTORY.
+ -T report an error if DSTFILE is a directory.
+
+Environment variables override the default commands:
+ CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
+ RMPROG STRIPPROG
+"
+
+while test $# -ne 0; do
+ case $1 in
+ -c) ;;
+
+ -C) copy_on_change=true;;
+
+ -d) dir_arg=true;;
+
+ -g) chgrpcmd="$chgrpprog $2"
+        shift;;
+
+ --help) echo "$usage"; exit $?;;
+
+ -m) mode=$2
+        case $mode in
+         *' '* | *'        '* | *'
+'*         | *'*'* | *'?'* | *'['*)
+         echo "$0: invalid mode: $mode" >&2
+         exit 1;;
+        esac
+        shift;;
+
+ -o) chowncmd="$chownprog $2"
+        shift;;
+
+ -s) stripcmd=$stripprog;;
+
+ -t) dst_arg=$2
+        shift;;
+
+ -T) no_target_directory=true;;
+
+ --version) echo "$0 $scriptversion"; exit $?;;
+
+ --)        shift
+        break;;
+
+ -*)        echo "$0: invalid option: $1" >&2
+        exit 1;;
+
+ *) break;;
+ esac
+ shift
+done
+
+if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
+ # When -d is used, all remaining arguments are directories to create.
+ # When -t is used, the destination is already specified.
+ # Otherwise, the last argument is the destination. Remove it from $@.
+ for arg
+ do
+ if test -n "$dst_arg"; then
+ # $@ is not empty: it contains at least $arg.
+ set fnord "$@" "$dst_arg"
+ shift # fnord
+ fi
+ shift # arg
+ dst_arg=$arg
+ done
+fi
+
+if test $# -eq 0; then
+ if test -z "$dir_arg"; then
+ echo "$0: no input file specified." >&2
+ exit 1
+ fi
+ # It's OK to call `install-sh -d' without argument.
+ # This can happen when creating conditional directories.
+ exit 0
+fi
+
+if test -z "$dir_arg"; then
+ trap '(exit $?); exit' 1 2 13 15
+
+ # Set umask so as not to create temps with too-generous modes.
+ # However, 'strip' requires both read and write access to temps.
+ case $mode in
+ # Optimize common cases.
+ *644) cp_umask=133;;
+ *755) cp_umask=22;;
+
+ *[0-7])
+ if test -z "$stripcmd"; then
+        u_plus_rw=
+ else
+        u_plus_rw='% 200'
+ fi
+ cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
+ *)
+ if test -z "$stripcmd"; then
+        u_plus_rw=
+ else
+        u_plus_rw=,u+rw
+ fi
+ cp_umask=$mode$u_plus_rw;;
+ esac
+fi
+
+for src
+do
+ # Protect names starting with `-'.
+ case $src in
+ -*) src=./$src;;
+ esac
+
+ if test -n "$dir_arg"; then
+ dst=$src
+ dstdir=$dst
+ test -d "$dstdir"
+ dstdir_status=$?
+ else
+
+ # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+ # might cause directories to be created, which would be especially bad
+ # if $src (and thus $dsttmp) contains '*'.
+ if test ! -f "$src" && test ! -d "$src"; then
+ echo "$0: $src does not exist." >&2
+ exit 1
+ fi
+
+ if test -z "$dst_arg"; then
+ echo "$0: no destination specified." >&2
+ exit 1
+ fi
+
+ dst=$dst_arg
+ # Protect names starting with `-'.
+ case $dst in
+ -*) dst=./$dst;;
+ esac
+
+ # If destination is a directory, append the input filename; won't work
+ # if double slashes aren't ignored.
+ if test -d "$dst"; then
+ if test -n "$no_target_directory"; then
+        echo "$0: $dst_arg: Is a directory" >&2
+        exit 1
+ fi
+ dstdir=$dst
+ dst=$dstdir/`basename "$src"`
+ dstdir_status=0
+ else
+ # Prefer dirname, but fall back on a substitute if dirname fails.
+ dstdir=`
+        (dirname "$dst") 2>/dev/null ||
+        expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+         X"$dst" : 'X\(//\)[^/]' \| \
+         X"$dst" : 'X\(//\)$' \| \
+         X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
+        echo X"$dst" |
+         sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+                 s//\1/
+                 q
+                 }
+                 /^X\(\/\/\)[^/].*/{
+                 s//\1/
+                 q
+                 }
+                 /^X\(\/\/\)$/{
+                 s//\1/
+                 q
+                 }
+                 /^X\(\/\).*/{
+                 s//\1/
+                 q
+                 }
+                 s/.*/./; q'
+ `
+
+ test -d "$dstdir"
+ dstdir_status=$?
+ fi
+ fi
+
+ obsolete_mkdir_used=false
+
+ if test $dstdir_status != 0; then
+ case $posix_mkdir in
+ '')
+        # Create intermediate dirs using mode 755 as modified by the umask.
+        # This is like FreeBSD 'install' as of 1997-10-28.
+        umask=`umask`
+        case $stripcmd.$umask in
+         # Optimize common cases.
+         *[2367][2367]) mkdir_umask=$umask;;
+         .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+         *[0-7])
+         mkdir_umask=`expr $umask + 22 \
+         - $umask % 100 % 40 + $umask % 20 \
+         - $umask % 10 % 4 + $umask % 2
+         `;;
+         *) mkdir_umask=$umask,go-w;;
+        esac
+
+        # With -d, create the new directory with the user-specified mode.
+        # Otherwise, rely on $mkdir_umask.
+        if test -n "$dir_arg"; then
+         mkdir_mode=-m$mode
+        else
+         mkdir_mode=
+        fi
+
+        posix_mkdir=false
+        case $umask in
+         *[123567][0-7][0-7])
+         # POSIX mkdir -p sets u+wx bits regardless of umask, which
+         # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+         ;;
+         *)
+         tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+         trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+         if (umask $mkdir_umask &&
+                exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+         then
+         if test -z "$dir_arg" || {
+                 # Check for POSIX incompatibilities with -m.
+                 # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+                 # other-writeable bit of parent directory when it shouldn't.
+                 # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+                 ls_ld_tmpdir=`ls -ld "$tmpdir"`
+                 case $ls_ld_tmpdir in
+                 d????-?r-*) different_mode=700;;
+                 d????-?--*) different_mode=755;;
+                 *) false;;
+                 esac &&
+                 $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+                 ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+                 test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+                 }
+                 }
+         then posix_mkdir=:
+         fi
+         rmdir "$tmpdir/d" "$tmpdir"
+         else
+         # Remove any dirs left behind by ancient mkdir implementations.
+         rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+         fi
+         trap '' 0;;
+        esac;;
+ esac
+
+ if
+ $posix_mkdir && (
+        umask $mkdir_umask &&
+        $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+ )
+ then :
+ else
+
+ # The umask is ridiculous, or mkdir does not conform to POSIX,
+ # or it failed possibly due to a race condition. Create the
+ # directory the slow way, step by step, checking for races as we go.
+
+ case $dstdir in
+        /*) prefix='/';;
+        -*) prefix='./';;
+        *) prefix='';;
+ esac
+
+ eval "$initialize_posix_glob"
+
+ oIFS=$IFS
+ IFS=/
+ $posix_glob set -f
+ set fnord $dstdir
+ shift
+ $posix_glob set +f
+ IFS=$oIFS
+
+ prefixes=
+
+ for d
+ do
+        test -z "$d" && continue
+
+        prefix=$prefix$d
+        if test -d "$prefix"; then
+         prefixes=
+        else
+         if $posix_mkdir; then
+         (umask=$mkdir_umask &&
+         $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+         # Don't fail if two instances are running concurrently.
+         test -d "$prefix" || exit 1
+         else
+         case $prefix in
+         *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+         *) qprefix=$prefix;;
+         esac
+         prefixes="$prefixes '$qprefix'"
+         fi
+        fi
+        prefix=$prefix/
+ done
+
+ if test -n "$prefixes"; then
+        # Don't fail if two instances are running concurrently.
+        (umask $mkdir_umask &&
+         eval "\$doit_exec \$mkdirprog $prefixes") ||
+         test -d "$dstdir" || exit 1
+        obsolete_mkdir_used=true
+ fi
+ fi
+ fi
+
+ if test -n "$dir_arg"; then
+ { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+ { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
+ else
+
+ # Make a couple of temp file names in the proper directory.
+ dsttmp=$dstdir/_inst.$$_
+ rmtmp=$dstdir/_rm.$$_
+
+ # Trap to clean up those temp files at exit.
+ trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+
+ # Copy the file name to the temp name.
+ (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+
+ # and set any options; do chmod last to preserve setuid bits.
+ #
+ # If any of these fail, we abort the whole thing. If we want to
+ # ignore errors from any of these, just make sure not to ignore
+ # errors from the above "$doit $cpprog $src $dsttmp" command.
+ #
+ { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
+ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
+ { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
+ { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
+
+ # If -C, don't bother to copy if it wouldn't change the file.
+ if $copy_on_change &&
+ old=`LC_ALL=C ls -dlL "$dst"        2>/dev/null` &&
+ new=`LC_ALL=C ls -dlL "$dsttmp"        2>/dev/null` &&
+
+ eval "$initialize_posix_glob" &&
+ $posix_glob set -f &&
+ set X $old && old=:$2:$4:$5:$6 &&
+ set X $new && new=:$2:$4:$5:$6 &&
+ $posix_glob set +f &&
+
+ test "$old" = "$new" &&
+ $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
+ then
+ rm -f "$dsttmp"
+ else
+ # Rename the file to the real destination.
+ $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
+
+ # The rename failed, perhaps because mv can't rename something else
+ # to itself, or perhaps because mv is so ancient that it does not
+ # support -f.
+ {
+        # Now remove or move aside any old file at destination location.
+        # We try this two ways since rm can't unlink itself on some
+        # systems and the destination file might be busy for other
+        # reasons. In this case, the final cleanup might fail but the new
+        # file should still install successfully.
+        {
+         test ! -f "$dst" ||
+         $doit $rmcmd -f "$dst" 2>/dev/null ||
+         { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+         { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+         } ||
+         { echo "$0: cannot unlink or rename $dst" >&2
+         (exit 1); exit 1
+         }
+        } &&
+
+        # Now rename the file to the real destination.
+        $doit $mvcmd "$dsttmp" "$dst"
+ }
+ fi || exit 1
+
+ trap '' 0
+ fi
+done
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdlogc"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/log.c</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdlogcfromrev17079freeswitchtrunkcontribnazimxmlcdrdlogc"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/log.c (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/log.c) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/log.c         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/log.c        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,55 @@
</span><ins>+#include "log.h"
+#include <syslog.h>
+#include <errno.h>
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+
+void syslog_open (const char *ident, int facility) {
+        openlog(ident, LOG_PID, facility);
+        return;
+}
+
+void syslog_close () {
+        closelog ();
+        return;
+}
+
+void syslog_error (const char *message) {
+        syslog (LOG_ALERT, "error. %s", message);
+}
+
+void syslog_msg (int priority, int echotoconsole, const char *fmt, ...) {
+        int n, size;
+        char *p;
+        va_list ap;
+        
+        size = 100;
+        if (NULL == (p = malloc (size))) {
+                fprintf (stderr, "syslog_msg failed. malloc error %s:%d\r\n", __FILE__, __LINE__);
+                return;
+        }
+
+        while (1) {
+                va_start(ap, fmt);
+                n = vsnprintf (p, size, fmt, ap);
+                va_end(ap);
+
+                if (n > -1 && n < size) {
+                        syslog (priority, "%s", p);
+                        if (echotoconsole) fprintf (stderr, "%s\r\n", p);
+                        free (p);
+                        return;
+                }
+
+                if (n > -1) size = n+1;
+                else size *= 2;
+                
+                if ((p = realloc (p, size)) == NULL) {
+                        fprintf (stderr, "syslog_msg failed. realloc error %s:%d\r\n", __FILE__, __LINE__);
+                        return;
+                }
+         }
+}
+
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdlogh"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/log.h</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdloghfromrev17079freeswitchtrunkcontribnazimxmlcdrdlogh"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/log.h (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/log.h) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/log.h         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/log.h        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,13 @@
</span><ins>+#ifndef LOG_H
+#define LOG_H
+
+#include <stdlib.h>
+
+void syslog_open (const char *ident, int facility);
+void syslog_close (void);
+
+void syslog_msg (int priority, int echotoconsole, const char *fmt, ...);
+void syslog_error (const char *message);
+
+#endif
+
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdmainc"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/main.c</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdmaincfromrev17079freeswitchtrunkcontribnazimxmlcdrdmainc"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/main.c (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/main.c) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/main.c         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/main.c        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,334 @@
</span><ins>+#include <fcgi_stdio.h> /* fcgi library; put it first*/
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <syslog.h>
+#include <libxml/tree.h>
+#include <libxml/parser.h>
+#include <libxml/xpath.h>
+#include <libxml/xpathInternals.h>
+#include "log.h"
+#include "urldecode.h"
+#include "stmtexp.h"
+#include "stmtexpldr.h"
+#include "plugldr.h"
+#include "plug.h"
+
+#define STR_MAX 512
+
+#define CONFIG "/etc/xmlcdrd/xmlcdr.conf"
+#define XURL_CDR "cdr"
+
+
+typedef struct
+{
+ xmlDocPtr doc;
+ xmlXPathContextPtr xpathCtx;
+} stmtexp_cb_data_t;
+
+
+
+#if defined(LIBXML_XPATH_ENABLED) && defined(LIBXML_SAX1_ENABLED)
+
+
+stmtexp_tab_t vex;
+
+
+
+void stmtexp_callback (stmtexp_key_t *key, stmtexp_val_t *val, void *userdata);
+void stmtexp_callback_clean (stmtexp_key_t *key, stmtexp_val_t *val,
+ void *userdata);
+
+int execute_xpath_expression(const char* buf, int buflen);
+
+
+int execute_xpath_expression(const char* buf, int buflen)
+{
+ xmlDocPtr doc;
+ stmtexp_cb_data_t cbd;
+ memset (&cbd, 0x0, sizeof (stmtexp_cb_data_t));
+
+
+ /* Load XML document */
+ doc = xmlParseMemory (buf, buflen);
+
+ if (doc == NULL)
+ {
+ fprintf(stderr, "Error: unable to parse memory\n");
+ return(-1);
+ }
+
+ /* Create xpath evaluation context */
+ cbd.xpathCtx = xmlXPathNewContext(doc);
+ if(cbd.xpathCtx == NULL)
+ {
+ fprintf(stderr,"Error: unable to create new XPath context\n");
+ xmlFreeDoc(doc);
+ return(-1);
+ }
+
+ /*run callback*/
+ stmtexp_foreach_callback (&vex, stmtexp_callback, &cbd);
+
+
+ xmlXPathFreeContext(cbd.xpathCtx);
+ xmlFreeDoc(doc);
+
+ return(0);
+}
+
+
+void stmtexp_callback_clean (stmtexp_key_t *key, stmtexp_val_t *val, void *userdata)
+{
+ if (NULL != val)
+ {
+ if (NULL != val->val)
+ {
+ free (val->val);
+ val->val = NULL;
+ }
+ }
+}
+
+
+void stmtexp_callback (stmtexp_key_t *key, stmtexp_val_t *val, void *userdata)
+{
+ xmlXPathObjectPtr xpathObj;
+ xmlNodePtr cur;
+
+ stmtexp_cb_data_t * cbd = (stmtexp_cb_data_t *) userdata;
+
+
+
+ /* Evaluate xpath expression */
+ xpathObj = xmlXPathEvalExpression((xmlChar*)key->xpath, cbd->xpathCtx);
+ if(xpathObj == NULL)
+ {
+ fprintf(stderr,
+ "Error: unable to evaluate xpath expression \"%s\"\n",
+ key->xpath);
+ return;
+ }
+
+ /* Print results */
+ xmlNodeSetPtr nodes = xpathObj->nodesetval;
+ if (NULL != nodes)
+ {
+ if (0 < nodes->nodeNr)
+ {
+ if (nodes->nodeTab[0])
+ {
+ if(nodes->nodeTab[0]->type == XML_ELEMENT_NODE)
+ {
+ cur = nodes->nodeTab[0];         
+ if(cur->ns)
+ {
+ fprintf(stderr, "= element node \"%s:%s\"\n",
+ cur->ns->href, cur->name);
+ } else
+ {
+ fprintf(stderr, "= element node \"%s\"\n",
+ cur->name);
+ xmlChar *content = xmlNodeGetContent(cur);
+
+ if (NULL != val)
+ {
+ if (NULL != val->val)
+ {
+ free (val->val);
+ val->val = NULL;
+ }
+ val->val = strdup((const char*)content);
+
+ fprintf(stderr, "%s\n", val->val);
+ xmlFree (content);
+ }
+ }
+ }
+ }
+ } else /* if (0 < nodes->nodeNr) */
+ {
+ if (NULL != val)
+ {
+ if (NULL != val->val)
+ {
+ free (val->val);
+ val->val = NULL;
+ }
+ }
+
+ }
+ }
+
+ /* Cleanup */
+ xmlXPathFreeObject(xpathObj);
+
+}
+
+
+
+
+/*
+ *
+ */
+int main(int argc, char** argv)
+{
+
+
+
+ XCDR_PLUGTAB plugtab;
+
+ if (-1 == xcdr_plugldr_load_config(&plugtab, CONFIG))
+ {
+ fprintf (stderr, "Failed to configure plugins from config: '%s'", CONFIG);
+ return -1;
+ }
+
+
+ if (-1 == xcdr_plugldr_load_plugins(&plugtab) )
+ {
+ fprintf (stderr, "Failed to load plugins from config: '%s'", CONFIG);
+ xcdr_plugldr_free_plugins (&plugtab);
+ return -1;
+ }
+
+ if (-1 == stmtexp_load_config (&vex, CONFIG))
+ {
+ fprintf (stderr, "Failed to load vars from config: '%s'", CONFIG);
+ xcdr_plugldr_free_plugins (&plugtab);
+ stmtexp_free (&vex);
+ return -1;
+ }
+
+
+ /* Init libxml */
+ xmlInitParser();
+ LIBXML_TEST_VERSION
+
+
+
+
+ GString * cgi_req_str = g_string_sized_new (102400);
+ GString * cgi_decoded_str = g_string_sized_new (102400);
+ GString * temp = g_string_sized_new (102400);
+
+
+ while (FCGI_Accept() >= 0)
+ {
+ //Set length of received request to 0
+ int cgi_req_len = 0;
+ g_string_set_size (cgi_req_str, 0);
+
+
+ char c;
+ while (EOF != (c = fgetc (stdin)) )
+ {
+ g_string_append_c (cgi_req_str, c);
+ cgi_req_len++;
+ } //~while We have received the full request string
+
+
+ //fprintf (stderr, "%s\n", cgi_req_str->str);
+ stmtexp_foreach_callback (&vex, stmtexp_callback_clean, NULL);
+
+ int decoded_len = cgi_req_len * 3 + 1;
+ g_string_set_size (cgi_decoded_str, decoded_len);
+ memset (cgi_decoded_str->str, 0x0, decoded_len);
+
+
+ int status;
+ if (NULL != urldecode_expand_value (cgi_req_str,
+ XURL_CDR, strlen(XURL_CDR),
+ 1,
+ temp, &status,
+ cgi_decoded_str))
+ {
+ execute_xpath_expression(cgi_decoded_str->str,
+ strlen(cgi_decoded_str->str) );
+
+ /*Dump entire dom tree on stdout*/
+ //fprintf (stderr, "%s\n", cgi_decoded_str->str);
+
+
+ int i;
+ XCDR_PLUGINFO *plug;
+
+ for (i = 0; i < plugtab.tag_count; i ++)
+ {
+ plug = &plugtab.tags[i].plug;
+
+ //If no metrics defined, run anyway
+ if (0 == plugtab.tags[i].metrics.tag_count)
+ {
+ fprintf (stderr, "plugin matched\n");
+ plug->plugin_main(&vex, &plug->state);
+ continue;
+ }
+
+ //match metric regexps
+ int j;
+ int run = 1;
+ for (j = 0; j < plugtab.tags[i].metrics.tag_count; j++)
+ {
+ const char *metric_val =
+ stmtexp_lookup_var (&vex,
+ plugtab.tags[i].metrics.tags[j].metric);
+
+
+
+ //if metric is not found, replace with an empty string.
+ if (NULL == metric_val)
+ {
+ metric_val = "";
+ }
+
+ fprintf (stderr, "metric [%s] '%s':'%s'\n",
+ plugtab.tags[i].metrics.tags[j].metric,
+ plugtab.tags[i].metrics.tags[j].regexp,
+ metric_val);
+
+
+
+ if (0 > xcdr_plugldr_match_regexp (
+ plugtab.tags[i].metrics.tags[j].regexp,
+ metric_val, strlen(metric_val)) )
+ {
+ run = 0;
+ break;
+ }
+ }
+
+ if (0 < run)
+ {
+ fprintf (stderr, "plugin metrics matched\n");
+ plug->plugin_main(&vex, &plug->state);
+ }
+ }
+
+ } else fprintf (stderr, "'%s' not found in '%s'\n",
+ XURL_CDR, cgi_req_str->str);
+
+
+ }
+
+ g_string_free (cgi_req_str, TRUE);
+ g_string_free (cgi_decoded_str, TRUE);
+ g_string_free (temp, TRUE);
+
+ stmtexp_free (&vex);
+ xcdr_plugldr_free_plugins(&plugtab);
+
+ xmlCleanupParser();
+
+
+ return 0;
+}
+
+
+
+#else
+int main(void) {
+ fprintf(stderr, "XPath support not compiled in\n");
+ exit(1);
+}
+#endif
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdmissing"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/missing</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdmissingfromrev17079freeswitchtrunkcontribnazimxmlcdrdmissing"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/missing (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/missing) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/missing         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/missing        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,376 @@
</span><ins>+#! /bin/sh
+# Common stub for a few missing GNU programs while installing.
+
+scriptversion=2009-04-28.21; # UTC
+
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
+# 2008, 2009 Free Software Foundation, Inc.
+# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+if test $# -eq 0; then
+ echo 1>&2 "Try \`$0 --help' for more information"
+ exit 1
+fi
+
+run=:
+sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
+sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
+
+# In the cases where this matters, `missing' is being run in the
+# srcdir already.
+if test -f configure.ac; then
+ configure_ac=configure.ac
+else
+ configure_ac=configure.in
+fi
+
+msg="missing on your system"
+
+case $1 in
+--run)
+ # Try to run requested program, and just exit if it succeeds.
+ run=
+ shift
+ "$@" && exit 0
+ # Exit code 63 means version mismatch. This often happens
+ # when the user try to use an ancient version of a tool on
+ # a file that requires a minimum version. In this case we
+ # we should proceed has if the program had been absent, or
+ # if --run hadn't been passed.
+ if test $? = 63; then
+ run=:
+ msg="probably too old"
+ fi
+ ;;
+
+ -h|--h|--he|--hel|--help)
+ echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
+error status if there is no known handling for PROGRAM.
+
+Options:
+ -h, --help display this help and exit
+ -v, --version output version information and exit
+ --run try to run the given command, and emulate it if it fails
+
+Supported PROGRAM values:
+ aclocal touch file \`aclocal.m4'
+ autoconf touch file \`configure'
+ autoheader touch file \`config.h.in'
+ autom4te touch the output file, or create a stub one
+ automake touch all \`Makefile.in' files
+ bison create \`y.tab.[ch]', if possible, from existing .[ch]
+ flex create \`lex.yy.c', if possible, from existing .c
+ help2man touch the output file
+ lex create \`lex.yy.c', if possible, from existing .c
+ makeinfo touch the output file
+ tar try tar, gnutar, gtar, then tar without non-portable flags
+ yacc create \`y.tab.[ch]', if possible, from existing .[ch]
+
+Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
+\`g' are ignored when checking the name.
+
+Send bug reports to <bug-automake@gnu.org>."
+ exit $?
+ ;;
+
+ -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+ echo "missing $scriptversion (GNU Automake)"
+ exit $?
+ ;;
+
+ -*)
+ echo 1>&2 "$0: Unknown \`$1' option"
+ echo 1>&2 "Try \`$0 --help' for more information"
+ exit 1
+ ;;
+
+esac
+
+# normalize program name to check for.
+program=`echo "$1" | sed '
+ s/^gnu-//; t
+ s/^gnu//; t
+ s/^g//; t'`
+
+# Now exit if we have it, but it failed. Also exit now if we
+# don't have it and --version was passed (most likely to detect
+# the program). This is about non-GNU programs, so use $1 not
+# $program.
+case $1 in
+ lex*|yacc*)
+ # Not GNU programs, they don't have --version.
+ ;;
+
+ tar*)
+ if test -n "$run"; then
+ echo 1>&2 "ERROR: \`tar' requires --run"
+ exit 1
+ elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+ exit 1
+ fi
+ ;;
+
+ *)
+ if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
+ # We have it, but it failed.
+ exit 1
+ elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
+ # Could not run --version or --help. This is probably someone
+ # running `$TOOL --version' or `$TOOL --help' to check whether
+ # $TOOL exists and not knowing $TOOL uses missing.
+ exit 1
+ fi
+ ;;
+esac
+
+# If it does not exist, or fails to run (possibly an outdated version),
+# try to emulate it.
+case $program in
+ aclocal*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`acinclude.m4' or \`${configure_ac}'. You might want
+ to install the \`Automake' and \`Perl' packages. Grab them from
+ any GNU archive site."
+ touch aclocal.m4
+ ;;
+
+ autoconf*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`${configure_ac}'. You might want to install the
+ \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
+ archive site."
+ touch configure
+ ;;
+
+ autoheader*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`acconfig.h' or \`${configure_ac}'. You might want
+ to install the \`Autoconf' and \`GNU m4' packages. Grab them
+ from any GNU archive site."
+ files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
+ test -z "$files" && files="config.h"
+ touch_files=
+ for f in $files; do
+ case $f in
+ *:*) touch_files="$touch_files "`echo "$f" |
+                                 sed -e 's/^[^:]*://' -e 's/:.*//'`;;
+ *) touch_files="$touch_files $f.in";;
+ esac
+ done
+ touch $touch_files
+ ;;
+
+ automake*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
+ You might want to install the \`Automake' and \`Perl' packages.
+ Grab them from any GNU archive site."
+ find . -type f -name Makefile.am -print |
+         sed 's/\.am$/.in/' |
+         while read f; do touch "$f"; done
+ ;;
+
+ autom4te*)
+ echo 1>&2 "\
+WARNING: \`$1' is needed, but is $msg.
+ You might have modified some files without having the
+ proper tools for further handling them.
+ You can get \`$1' as part of \`Autoconf' from any GNU
+ archive site."
+
+ file=`echo "$*" | sed -n "$sed_output"`
+ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+ if test -f "$file"; then
+        touch $file
+ else
+        test -z "$file" || exec >$file
+        echo "#! /bin/sh"
+        echo "# Created by GNU Automake missing as a replacement of"
+        echo "# $ $@"
+        echo "exit 0"
+        chmod +x $file
+        exit 1
+ fi
+ ;;
+
+ bison*|yacc*)
+ echo 1>&2 "\
+WARNING: \`$1' $msg. You should only need it if
+ you modified a \`.y' file. You may need the \`Bison' package
+ in order for those modifications to take effect. You can get
+ \`Bison' from any GNU archive site."
+ rm -f y.tab.c y.tab.h
+ if test $# -ne 1; then
+ eval LASTARG="\${$#}"
+        case $LASTARG in
+        *.y)
+         SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
+         if test -f "$SRCFILE"; then
+         cp "$SRCFILE" y.tab.c
+         fi
+         SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
+         if test -f "$SRCFILE"; then
+         cp "$SRCFILE" y.tab.h
+         fi
+         ;;
+        esac
+ fi
+ if test ! -f y.tab.h; then
+        echo >y.tab.h
+ fi
+ if test ! -f y.tab.c; then
+        echo 'main() { return 0; }' >y.tab.c
+ fi
+ ;;
+
+ lex*|flex*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified a \`.l' file. You may need the \`Flex' package
+ in order for those modifications to take effect. You can get
+ \`Flex' from any GNU archive site."
+ rm -f lex.yy.c
+ if test $# -ne 1; then
+ eval LASTARG="\${$#}"
+        case $LASTARG in
+        *.l)
+         SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
+         if test -f "$SRCFILE"; then
+         cp "$SRCFILE" lex.yy.c
+         fi
+         ;;
+        esac
+ fi
+ if test ! -f lex.yy.c; then
+        echo 'main() { return 0; }' >lex.yy.c
+ fi
+ ;;
+
+ help2man*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+         you modified a dependency of a manual page. You may need the
+         \`Help2man' package in order for those modifications to take
+         effect. You can get \`Help2man' from any GNU archive site."
+
+ file=`echo "$*" | sed -n "$sed_output"`
+ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+ if test -f "$file"; then
+        touch $file
+ else
+        test -z "$file" || exec >$file
+        echo ".ab help2man is required to generate this page"
+        exit $?
+ fi
+ ;;
+
+ makeinfo*)
+ echo 1>&2 "\
+WARNING: \`$1' is $msg. You should only need it if
+ you modified a \`.texi' or \`.texinfo' file, or any other file
+ indirectly affecting the aspect of the manual. The spurious
+ call might also be the consequence of using a buggy \`make' (AIX,
+ DU, IRIX). You might want to install the \`Texinfo' package or
+ the \`GNU make' package. Grab either from any GNU archive site."
+ # The file to touch is that specified with -o ...
+ file=`echo "$*" | sed -n "$sed_output"`
+ test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+ if test -z "$file"; then
+ # ... or it is the one specified with @setfilename ...
+ infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
+ file=`sed -n '
+        /^@setfilename/{
+         s/.* \([^ ]*\) *$/\1/
+         p
+         q
+        }' $infile`
+ # ... or it is derived from the source name (dir/f.texi becomes f.info)
+ test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
+ fi
+ # If the file does not exist, the user really needs makeinfo;
+ # let's fail without touching anything.
+ test -f $file || exit 1
+ touch $file
+ ;;
+
+ tar*)
+ shift
+
+ # We have already tried tar in the generic part.
+ # Look for gnutar/gtar before invocation to avoid ugly error
+ # messages.
+ if (gnutar --version > /dev/null 2>&1); then
+ gnutar "$@" && exit 0
+ fi
+ if (gtar --version > /dev/null 2>&1); then
+ gtar "$@" && exit 0
+ fi
+ firstarg="$1"
+ if shift; then
+        case $firstarg in
+        *o*)
+         firstarg=`echo "$firstarg" | sed s/o//`
+         tar "$firstarg" "$@" && exit 0
+         ;;
+        esac
+        case $firstarg in
+        *h*)
+         firstarg=`echo "$firstarg" | sed s/h//`
+         tar "$firstarg" "$@" && exit 0
+         ;;
+        esac
+ fi
+
+ echo 1>&2 "\
+WARNING: I can't seem to be able to run \`tar' with the given arguments.
+ You may want to install GNU tar or Free paxutils, or check the
+ command line arguments."
+ exit 1
+ ;;
+
+ *)
+ echo 1>&2 "\
+WARNING: \`$1' is needed, and is $msg.
+ You might have modified some files without having the
+ proper tools for further handling them. Check the \`README' file,
+ it often tells you about the needed prerequisites for installing
+ this package. You may also peek at any GNU archive site, in case
+ some other package would contain this missing \`$1' program."
+ exit 1
+ ;;
+esac
+
+exit 0
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdplugc"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plug.c</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdplugcfromrev17079freeswitchtrunkcontribnazimxmlcdrdplugc"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plug.c (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/plug.c) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plug.c         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plug.c        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,97 @@
</span><ins>+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <dlfcn.h>
+#include "plug.h"
+
+/*returns 0 on success, -1 on error*/
+int plug_init(const char *filename, const char *options,
+ XCDR_PLUGINFO *plug)
+{
+
+ char *error;
+
+ if (NULL == (plug->handle = dlopen(filename, RTLD_LAZY | RTLD_GLOBAL)))
+ {
+ fprintf(stderr, "%s\r\n", dlerror());
+ return -1;
+ }
+
+ //clear any existing dl error.
+ dlerror();
+ *(void **) (&plug->plugin_get_name) = dlsym(plug->handle, "plugin_get_name");
+ if ((error = dlerror()) != NULL)
+ {
+ fprintf(stderr, "%s\n", error);
+ return -1;
+ }
+
+ dlerror();
+ *(void **) (&plug->plugin_get_description) = dlsym(plug->handle, "plugin_get_description");
+ if ((error = dlerror()) != NULL)
+ {
+ fprintf(stderr, "%s\n", error);
+ return -1;
+ }
+
+ dlerror();
+ *(void **) (&plug->plugin_init) = dlsym(plug->handle, "plugin_init");
+ if ((error = dlerror()) != NULL)
+ {
+ fprintf(stderr, "%s\n", error);
+ return -1;
+ }
+
+ dlerror();
+ *(void **) (&plug->plugin_free) = dlsym(plug->handle, "plugin_free");
+ if ((error = dlerror()) != NULL)
+ {
+ fprintf(stderr, "%s\n", error);
+ return -1;
+ }
+
+ dlerror();
+ *(void **) (&plug->plugin_main) = dlsym(plug->handle, "plugin_main");
+ if ((error = dlerror()) != NULL)
+ {
+ fprintf(stderr, "%s\n", error);
+ return -1;
+ }
+
+
+
+ strncpy(plug->name, plug->plugin_get_name(), XCDR_PLUGIN_NAME_LEN_MAX);
+
+ if (-1 == plug->plugin_init(filename, options, &plug->state))
+ {
+ fprintf(stderr, "Failed to load plugin:'%s' InternalName:'%s' Options:'%s'\n", plug->name, filename, options);
+ return -1;
+ }
+
+
+ return 0;
+}
+
+int plug_free(XCDR_PLUGINFO *plug)
+{
+
+ if (NULL != plug->handle)
+ {
+ plug->plugin_free(&plug->state);
+ }
+
+ return 0;
+}
+
+
+int plug_destroy(XCDR_PLUGINFO *plug)
+{
+
+ if (NULL != plug->handle)
+ {
+ return dlclose(plug->handle);
+ }
+
+ return 0;
+}
+
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdplugh"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plug.h</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdplughfromrev17079freeswitchtrunkcontribnazimxmlcdrdplugh"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plug.h (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/plug.h) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plug.h         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plug.h        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,48 @@
</span><ins>+#ifndef PLUG_H
+#define PLUG_H
+
+#include "plugcommon.h"
+#include "stmtexptab.h"
+
+
+typedef struct xcdr_plugin_info
+{
+        void *handle;
+        char name [XCDR_PLUGIN_NAME_LEN_MAX];
+
+ XCDR_PLUGSTATE state;
+
+ /*Functions exported by plugin*/
+
+ int (*plugin_init) (const char *filename, const char *options,
+ XCDR_PLUGSTATE *state);
+
+ int (*plugin_free) (XCDR_PLUGSTATE *state);
+
+ char* (*plugin_get_description) (void);
+ char* (*plugin_get_name) (void);
+
+ /*
+ Main function which processes a hash table of variables/values @vex
+ Function returns:
+ PLUG_STATUS_OK
+ PLUG_STATUS_ERR */
+
+ int (*plugin_main) (STMTEXP_TAB *vex, XCDR_PLUGSTATE *state);
+
+ /* ~Functions exported by plugin*/
+
+} XCDR_PLUGINFO, *PXCDR_PLUGINFO;
+
+/* plug_int() calls plugin_init() which initializes
+ XCDR_PLUGSTATE.state used by plugin internally */
+int plug_init (const char *filename, const char *options, XCDR_PLUGINFO *plug);
+
+/* plug_free() calls plugin_free() to deallocate all dynamic resources
+ bound to XCDR_PLUGSTATE.local_vars. Must be invoked before plug_destroy() */
+int plug_free (XCDR_PLUGINFO *plug);
+
+/* plug_destroy() calls library dlclose() AFTER plug_free() */
+int plug_destroy(XCDR_PLUGINFO *plug);
+
+#endif
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdplugcommonh"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugcommon.h</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdplugcommonhfromrev17079freeswitchtrunkcontribnazimxmlcdrdplugcommonh"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugcommon.h (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/plugcommon.h) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugcommon.h         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugcommon.h        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,25 @@
</span><ins>+#ifndef PLUGCOMMON_H
+#define PLUGCOMMON_H
+
+
+#define XCDR_PLUGIN_NAME_LEN_MAX 64
+#define XCDR_PLUGIN_FILENAME_LEN_MAX 256
+#define XCDR_PLUGIN_STRMAXLEN 256
+
+
+#define PLUG_STATUS_OK 0
+//#define PLUG_STATUS_STOPPROCESSING_HERE 1
+#define PLUG_STATUS_ERROR -1
+
+
+typedef struct xcdr_plugin_state
+{
+ /* local_vars are initialized by plugin during plugin_init
+ and destroyed in plugin_free
+ */
+ void *local_vars;
+
+} XCDR_PLUGSTATE, *PXCDR_PLUGSTATE;
+
+
+#endif
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdpluginsfromrev17079freeswitchtrunkcontribnazimxmlcdrdplugins"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/plugins)</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdpluginsluaexecfromrev17079freeswitchtrunkcontribnazimxmlcdrdpluginsluaexec"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/luaexec (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/plugins/luaexec)</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdpluginsluaexec"></a>
<div class="propset"><h4>Property changes: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/luaexec</h4>
<pre class="diff"><span>
<span class="cx">Name: svn:ignore
</span><span class="cx"> + Makefile.in
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdpluginsluaexecMakefileam"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/luaexec/Makefile.am</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdpluginsluaexecMakefileamfromrev17079freeswitchtrunkcontribnazimxmlcdrdpluginsluaexecMakefileam"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/luaexec/Makefile.am (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/plugins/luaexec/Makefile.am) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/luaexec/Makefile.am         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/luaexec/Makefile.am        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,19 @@
</span><ins>+SHELL = /bin/sh
+CC = @CC@
+
+FLAGS= -W -Wmissing-prototypes -Wstrict-prototypes -g3 -Wall $(CFLAGS)
+
+all:
+        $(CC) $(CFLAGS) \
+        -shared -fPIC -o luaexec.so luaexec.c \
+        -I../../ \
+        @with_glib2_flags@ \
+        -llua -ldl -lglib-2.0 \
+        -lconfig \
+        ../../stmtexpldr.o ../../stmtexp.o ../../log.o
+
+install:
+        -cp luaexec.so $(libdir)/xmlcdrd/
+
+clean:
+        -rm -f *.o luaexec.so
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdpluginsluaexecluaexecc"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/luaexec/luaexec.c</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdpluginsluaexecluaexeccfromrev17079freeswitchtrunkcontribnazimxmlcdrdpluginsluaexecluaexecc"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/luaexec/luaexec.c (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/plugins/luaexec/luaexec.c) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/luaexec/luaexec.c         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/luaexec/luaexec.c        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,261 @@
</span><ins>+/*
+ plugin_init() accepts single option - absolute name of configuration file to parse.
+
+ Lua script _must_ provide three functions:
+ luaexec_init()
+ luaexec_free()
+ luaexec_man()
+
+ Functions listed above can be empty, but they must exist for successful run.
+
+ ******* Example script ********
+require "luasql.odbc"
+
+env = nil
+db_conn = nil
+count = 0
+
+function luaexec_init ()
+ env = assert(luasql.odbc())
+ db_conn = assert(env:connect("ddp") )
+ count = 1
+end
+
+
+function luaexec_free ()
+ db_conn:close()
+ env:close()
+end
+
+function luaexec_main ()
+ uuid = xcdr_varget("uuid")
+ billsec = xcdr_varget("billsec")
+
+ db_conn:execute(string.format("insert into planeta_cdr_notify (uuid,billsec) values ('%s', %d)", uuid, billsec + count))
+
+ count = count + 1
+end
+
+ ******* End of example script ********
+*/
+
+#include "plugcommon.h"
+#include "plug.h"
+#include "stmtexp.h"
+#include "log.h"
+#include <syslog.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <libconfig.h>
+#include <lua.h>
+#include <lauxlib.h>
+#include <lualib.h>
+#include <dlfcn.h>
+
+#define PLUGIN_NAME "lua exec"
+#define PLUGIN_DESC "Lua script wrapper"
+
+#define FILENAME_LEN_MAX 512
+#define STR_LEN_MAX 256
+
+/*that's what lua script would call to get variable*/
+#define LUAEXEC_VAR_GET_FUNC "xcdr_varget"
+
+#define LUAEXEC_DBG_PRN_FUNCT "xcdr_prn_debug"
+
+/*Names of standard function which script must provide*/
+#define LUAEXEC_FUNC_INIT "luaexec_init"
+#define LUAEXEC_FUNC_FREE "luaexec_free"
+#define LUAEXEC_FUNC_PROCESS_CDR "luaexec_main"
+
+typedef struct luaexec_local_vars
+{
+ char *t;
+
+ int cfgres;
+ config_t cfg;
+ config_setting_t *setting;
+
+
+ luaL_reg *lualibs;
+ int lualibs_count;
+
+ char luascript [FILENAME_LEN_MAX];
+ lua_State *L;
+
+ STMTEXP_TAB *vex;
+
+} LUAEXECVARS;
+
+
+/*Local variables*/
+LUAEXECVARS *vars;
+
+
+
+char * plugin_get_name ()
+{
+
+ return PLUGIN_NAME;
+}
+
+
+
+char * plugin_get_description ()
+{
+
+ return PLUGIN_DESC;
+}
+
+
+static int l_varget (lua_State *L)
+{
+ const char* varid = luaL_checkstring(L, 1);
+
+ const char* val = stmtexp_lookup_var (vars->vex, varid);
+
+ lua_pushstring(L, val);
+
+ return 1;
+}
+
+
+
+
+static int l_debug_prn (lua_State *L)
+{
+ const char* str = luaL_checkstring(L, 1);
+
+ fprintf (stderr, "%s\n", str);
+ syslog (LOG_DEBUG, "xmlcdr '%s' [%d]: %s\n", vars->luascript, getpid(), str);
+
+ return 0;
+}
+
+
+
+ /**/
+int plugin_init (const char* filename, const char *options, XCDR_PLUGSTATE *state)
+{
+
+ int i;
+
+ vars = calloc (1, sizeof(LUAEXECVARS) );
+ state->local_vars = vars;
+
+
+ if (NULL == vars)
+ {
+ fprintf (stderr,
+ "%s plugin_init(). Can't allocate memory for state vars\n",
+ PLUGIN_NAME);
+ return PLUG_STATUS_ERROR;
+ }
+
+ fprintf (stderr, "%s plugin_init (%s) \n", PLUGIN_NAME, options);
+
+ config_init(&vars->cfg);
+
+ if (!config_read_file(&vars->cfg, options) )
+ {
+ fprintf (stderr, "%s plugin_init (%s). Error parsing: '%s'\n",
+ PLUGIN_NAME, options, options);
+
+ config_destroy(&vars->cfg);
+
+ return PLUG_STATUS_ERROR;
+ }
+
+
+ memset (vars->luascript , 0x0, FILENAME_LEN_MAX);
+
+ const char *t = NULL;
+
+ if (CONFIG_TRUE == config_lookup_string (&vars->cfg, "luascript", &t) )
+ snprintf (vars->luascript, FILENAME_LEN_MAX - 1, "%s", t);
+
+ config_destroy(&vars->cfg);
+
+ vars->L = lua_open();
+ luaL_openlibs (vars->L);
+
+ lua_pushcfunction(vars->L, l_varget);
+ lua_setglobal(vars->L, LUAEXEC_VAR_GET_FUNC);
+
+ lua_pushcfunction(vars->L, l_debug_prn);
+ lua_setglobal(vars->L, LUAEXEC_DBG_PRN_FUNCT);
+
+
+ if (luaL_loadfile(vars->L, vars->luascript) )
+ fprintf(stderr, "can't load file: %s, %s\n", vars->luascript,
+ lua_tostring(vars->L, -1));
+
+ if(lua_pcall(vars->L, 0, 0, 0) )
+ fprintf(stderr, "can't run file: %s, %s\n", vars->luascript,
+ lua_tostring(vars->L, -1));
+
+
+ lua_getglobal(vars->L, LUAEXEC_FUNC_INIT);
+ if(lua_pcall(vars->L, 0, 0, 0) )
+ {
+ fprintf(stderr, "can't run %s function: %s, %s\n",
+ LUAEXEC_FUNC_INIT,
+ vars->luascript,
+ lua_tostring(vars->L, -1));
+
+ lua_pop(vars->L, 1);
+
+ }
+
+ return PLUG_STATUS_OK;
+}
+
+
+int plugin_free (XCDR_PLUGSTATE *state)
+{
+ vars = state->local_vars;
+
+ lua_getglobal(vars->L, LUAEXEC_FUNC_FREE);
+ if(lua_pcall(vars->L, 0, 0,0) )
+ {
+ fprintf(stderr, "can't run %s function: %s, %s\n",
+ LUAEXEC_FUNC_FREE,
+ vars->luascript,
+ lua_tostring(vars->L, -1));
+
+ lua_pop(vars->L, 1);
+ }
+
+ lua_close (vars->L);
+
+ free (vars);
+
+ return PLUG_STATUS_OK;
+}
+
+
+int plugin_main (STMTEXP_TAB *vex, XCDR_PLUGSTATE *state)
+{
+
+ vars = state->local_vars;
+ vars->vex = vex;
+
+
+ int res = PLUG_STATUS_OK;
+
+ lua_getglobal(vars->L, LUAEXEC_FUNC_PROCESS_CDR);
+ if(lua_pcall(vars->L, 0, 0, 0))
+ {
+ fprintf(stderr, "can't run %s function: %s, %s\n",
+ LUAEXEC_FUNC_PROCESS_CDR,
+ vars->luascript,
+ lua_tostring(vars->L, -1));
+
+ lua_pop(vars->L, 1);
+
+ res = PLUG_STATUS_ERROR;
+ }
+
+ return res;
+}
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdpluginsmysqlcdrfromrev17079freeswitchtrunkcontribnazimxmlcdrdpluginsmysqlcdr"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/mysqlcdr (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/plugins/mysqlcdr)</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdpluginsmysqlcdr"></a>
<div class="propset"><h4>Property changes: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/mysqlcdr</h4>
<pre class="diff"><span>
<span class="cx">Name: svn:ignore
</span><span class="cx"> + Makefile.in
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdpluginsmysqlcdrMakefileam"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/mysqlcdr/Makefile.am</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdpluginsmysqlcdrMakefileamfromrev17079freeswitchtrunkcontribnazimxmlcdrdpluginsmysqlcdrMakefileam"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/mysqlcdr/Makefile.am (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/plugins/mysqlcdr/Makefile.am) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/mysqlcdr/Makefile.am         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/mysqlcdr/Makefile.am        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,23 @@
</span><ins>+SHELL = /bin/sh
+CC = @CC@
+
+FLAGS= -W -Wmissing-prototypes -Wstrict-prototypes -fPIC -g3 -Wall $(CFLAGS)
+
+all:
+        $(CC) $(CFLAGS) -fPIC -W -Wall -I../../ `@with_mysql_config@ --include` -c dbcommon.c
+
+        $(CC) $(CFLAGS) \
+        -shared -fPIC -o mysqlcdr.so mysqlcdr.c \
+        -I../../ \
+        `@with_mysql_config@ --libs --include` \
+        @with_glib2_flags@ \
+        -lconfig -lglib-2.0 \
+        dbcommon.o \
+        ../../stmtexpldr.o ../../stmtexp.o ../../log.o
+
+install:
+        cp mysqlcdr.so $(libdir)/xmlcdrd/
+
+
+clean:
+        -rm -f *.o mysqlcdr.so
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdpluginsmysqlcdrdbcommonc"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/mysqlcdr/dbcommon.c</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdpluginsmysqlcdrdbcommoncfromrev17079freeswitchtrunkcontribnazimxmlcdrdpluginsmysqlcdrdbcommonc"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/mysqlcdr/dbcommon.c (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/plugins/mysqlcdr/dbcommon.c) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/mysqlcdr/dbcommon.c         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/mysqlcdr/dbcommon.c        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,64 @@
</span><ins>+#include <stdio.h>
+#include <syslog.h>
+#include "dbcommon.h"
+#include "string.h"
+#include "log.h"
+
+MYSQL *mysql_do_connect(char *host_name,
+ char *user_name, char *password, char *db_name,
+ unsigned long port_num, char *socket_name,
+ unsigned int flags)
+{
+
+ MYSQL *conn; /* pointer to connection handler */
+
+ conn = mysql_init(NULL); /* allocate, initialize connection handler */
+ if (conn == NULL)
+ {
+ //fprintf (stderr, "mysql_init() failed\n");
+ syslog_error("mysql_init() failed");
+ return (NULL);
+ }
+
+ my_bool reconnect = 1;
+ mysql_options(conn, MYSQL_OPT_RECONNECT, &reconnect);
+
+ if (mysql_real_connect(conn, host_name, user_name, password,
+ db_name, port_num, socket_name, flags) == NULL)
+ {
+ fprintf (stderr, "mysql_real_connect() failed:\nError %u (%s)\n", mysql_errno (conn), mysql_error (conn));
+ //syslog_mysql_error(conn, "error. mysql_real_connect() failed");
+ return (NULL);
+ }
+
+ return (conn);
+}
+
+void mysql_do_disconnect(MYSQL *conn)
+{
+ mysql_close(conn);
+}
+
+void mysql_print_error(MYSQL *conn, char *message)
+{
+
+ if (conn != NULL)
+ {
+ syslog_msg(LOG_ALERT, 1, "MySQL connection error. '%s'. %u (%s)",
+ message, mysql_errno(conn), mysql_error(conn));
+
+ fprintf (stderr, "MySQL connection error. '%s'. %u (%s)",
+ message, mysql_errno(conn), mysql_error(conn));
+ }
+ else
+ {
+ fprintf (stderr, "MySQL connection error. \
+'%s'. Can't get mysql_errno() because connection handler is invalid", message);
+
+ syslog_msg(LOG_ALERT, 0,
+ "MySQL connection error. \
+'%s'. Can't get mysql_errno() because connection handler is invalid", message);
+
+ }
+}
+
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdpluginsmysqlcdrdbcommonh"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/mysqlcdr/dbcommon.h</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdpluginsmysqlcdrdbcommonhfromrev17079freeswitchtrunkcontribnazimxmlcdrdpluginsmysqlcdrdbcommonh"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/mysqlcdr/dbcommon.h (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/plugins/mysqlcdr/dbcommon.h) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/mysqlcdr/dbcommon.h         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/mysqlcdr/dbcommon.h        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,16 @@
</span><ins>+#ifndef DBCOMMON_H
+#define DBCOMMON_H
+
+#include <mysql.h>
+
+
+MYSQL *mysql_do_connect (char *host_name,
+ char *user_name, char *password, char *db_name,
+ unsigned long port_num, char *socket_name, unsigned int flags);
+
+
+void mysql_do_disconnect (MYSQL *conn);
+void mysql_print_error (MYSQL *conn, char *message);
+
+#endif
+
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdpluginsmysqlcdrmysqlcdrc"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/mysqlcdr/mysqlcdr.c</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdpluginsmysqlcdrmysqlcdrcfromrev17079freeswitchtrunkcontribnazimxmlcdrdpluginsmysqlcdrmysqlcdrc"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/mysqlcdr/mysqlcdr.c (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/plugins/mysqlcdr/mysqlcdr.c) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/mysqlcdr/mysqlcdr.c         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugins/mysqlcdr/mysqlcdr.c        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,336 @@
</span><ins>+/*
+ plugin_init() accepts single option - absolute name of configuration file to parse.
+*/
+
+#include "plugcommon.h"
+#include "plug.h"
+#include "stmtexp.h"
+#include "log.h"
+#include <syslog.h>
+#include <mysql.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <libconfig.h>
+#include <glib.h>
+
+
+#define PLUGIN_NAME "mysql cdr"
+#define PLUGIN_DESC "MySQL cdr logger"
+
+#define STMT_RETRY_MAX 2
+#define MYSQL_IPPORT 3306
+
+
+
+
+/* Statement expansion */
+#define VARSTART "$<"
+#define VAREND ">"
+
+#define VARSTART_LEN strlen (VARSTART)
+#define VAREND_LEN strlen (VAREND)
+
+#define VARID_LEN 512
+
+#define TEMP_GSTRING_INIT_SIZE 1024
+#define STMT_TEMPLATE_MAX_LEN 40960
+
+typedef struct mysqlcdr_local_vars
+{
+ unsigned int sql_insert_retry_max;
+
+ GString *temp;
+
+ MYSQL *conn;
+ char dbuserid [XCDR_PLUGIN_STRMAXLEN];
+ char dbpasswd [XCDR_PLUGIN_STRMAXLEN];
+ char dbschema [XCDR_PLUGIN_STRMAXLEN];
+ char dbipaddr [XCDR_PLUGIN_STRMAXLEN];
+ unsigned int dbipport;
+ unsigned long dbflags;
+ char stmt_template [STMT_TEMPLATE_MAX_LEN];
+
+ char *t;
+
+ int cfgres;
+ config_t cfg;
+
+} MYSQLCDRVARS;
+
+
+/*Local variables*/
+MYSQLCDRVARS *vars;
+
+
+int mysql_query_retry_on_fail (MYSQL *conn, const char *stmt,
+ unsigned int retrycount)
+{
+
+ unsigned int rc = 0;
+ int res;
+
+ while (rc++ <= retrycount)
+ {
+ res = mysql_query (conn, stmt);
+ if (0 != res)
+ {
+ mysql_print_error (conn, "mysql_query() failed.");
+
+ if (-1 == mysql_ping(conn) )
+ fprintf (stderr, "Connection to db lost\n");
+
+ } else return res;
+
+ }
+
+}
+
+
+
+
+/*Returns NULL if escaping of string fails*/
+const char *mysqlcdr_expand_str (MYSQL *conn, stmtexp_tab_t *vex,
+ const char *src, int srclen)
+{
+ const char *s; //src
+ char *e; //end
+ char varid [VARID_LEN];
+
+ s = src;
+ g_string_set_size (vex->expanded, 0);
+
+ //fprintf (stderr, "mysqlcdr_expand_str '%s'\n", src);
+
+ while (s < src + srclen)
+ {
+ if (NULL != (e = strstr (s, VARSTART)) )
+ {
+ g_string_append_len (vex->expanded, s, e - s);
+ s = e++;
+
+ if (NULL != (e = strstr (s, VAREND)) )
+ {
+
+ /* Remove placeholders VARSTART and VAREND, then lookup */
+ memset (varid, 0x0, VARID_LEN);
+ strncpy (varid, s + VARSTART_LEN, (e - s) - VARSTART_LEN );
+
+ const char* ev = stmtexp_lookup_var (vex, varid);
+ //fprintf (stderr, "---%s\n", ev);
+ if (NULL != ev)
+ {
+ unsigned int ev_len = strlen(ev);
+
+ g_string_set_size (vars->temp, (ev_len * 2) + 1);
+ memset (vars->temp->str, 0x0, (ev_len * 2) + 1);
+
+ unsigned long res = mysql_real_escape_string (
+ conn,
+ vars->temp->str,
+ ev,
+ ev_len
+ );
+
+ /*if length of escaped string is less than input bail out*/
+ if (res < ev_len)
+ return NULL;
+
+ /*append expanded var to destination*/
+ g_string_append (vex->expanded, vars->temp->str);
+ }
+ else
+ {
+ /*variable was not found, skip it*/
+ }
+
+ s = e + 1;
+ //fprintf (stderr, "s: '%s'\n", s);
+
+ }
+ else /*no more signatures found, append the rest of the str*/
+ {
+ if (NULL != s)
+ g_string_append (vex->expanded, s);
+ break;
+ }
+ }
+ else /*no more signatures found, append the rest of the str*/
+ {
+ if (NULL != s)
+ g_string_append (vex->expanded, s);
+ break;
+ }
+ }//while (s < src + src_len)
+
+ return vex->expanded->str;
+
+}
+
+
+
+char * plugin_get_name ()
+{
+
+ return PLUGIN_NAME;
+}
+
+
+
+char * plugin_get_description ()
+{
+
+ return PLUGIN_DESC;
+}
+
+ /**/
+int plugin_init (const char* filename, const char *options, XCDR_PLUGSTATE *state)
+{
+
+ vars = calloc (1, sizeof(MYSQLCDRVARS) );
+ state->local_vars = vars;
+
+
+ if (NULL == vars)
+ {
+ fprintf (stderr,
+ "%s plugin_init(). Can't allocate memory for state vars\n",
+ PLUGIN_NAME);
+ return PLUG_STATUS_ERROR;
+ }
+
+ fprintf (stderr, "%s plugin_init (%s) \n", PLUGIN_NAME, options);
+
+
+ vars->temp = g_string_sized_new (TEMP_GSTRING_INIT_SIZE);
+
+ config_init(&vars->cfg);
+
+ if (!config_read_file(&vars->cfg, options) )
+ {
+ fprintf (stderr, "%s plugin_init (%s). Error parsing: '%s'\n",
+ PLUGIN_NAME, options, options);
+
+ config_destroy(&vars->cfg);
+
+ return PLUG_STATUS_ERROR;
+ }
+
+
+ memset (vars->dbuserid, 0x0, XCDR_PLUGIN_STRMAXLEN);
+ memset (vars->dbpasswd, 0x0, XCDR_PLUGIN_STRMAXLEN);
+ memset (vars->dbipaddr, 0x0, XCDR_PLUGIN_STRMAXLEN);
+ memset (vars->dbschema, 0x0, XCDR_PLUGIN_STRMAXLEN);
+ memset (vars->stmt_template, 0x0, XCDR_PLUGIN_STRMAXLEN);
+
+
+ const char *t = NULL;
+ int it;
+
+ if (CONFIG_TRUE == config_lookup_string (&vars->cfg, "dbuserid", &t) )
+ snprintf (vars->dbuserid, XCDR_PLUGIN_STRMAXLEN, "%s", t);
+
+ if (CONFIG_TRUE == config_lookup_string (&vars->cfg, "dbpasswd", &t) )
+ snprintf (vars->dbpasswd, XCDR_PLUGIN_STRMAXLEN, "%s", t);
+
+ if (CONFIG_TRUE == config_lookup_string (&vars->cfg, "dbipaddr", &t))
+ snprintf (vars->dbipaddr, XCDR_PLUGIN_STRMAXLEN, "%s", t);
+
+ if (CONFIG_TRUE == config_lookup_string (&vars->cfg, "dbschema", &t))
+ snprintf (vars->dbschema, XCDR_PLUGIN_STRMAXLEN, "%s", t);
+
+ if (CONFIG_TRUE == config_lookup_string (&vars->cfg, "stmt_template", &t))
+ snprintf (vars->stmt_template, STMT_TEMPLATE_MAX_LEN, "%s", t);
+
+ if (CONFIG_TRUE != config_lookup_int (&vars->cfg, "dbipport", &vars->dbipport) )
+ vars->dbipport = MYSQL_IPPORT;
+
+ if (CONFIG_TRUE != config_lookup_int (&vars->cfg, "sql_insert_retry_max",
+ &vars->sql_insert_retry_max) )
+ vars->sql_insert_retry_max = STMT_RETRY_MAX;
+
+ if (0 >= vars->sql_insert_retry_max)
+ vars->sql_insert_retry_max = STMT_RETRY_MAX;
+
+
+ config_destroy(&vars->cfg);
+
+ fprintf (stderr, "%s plugin_init (%s). \
+dbschema: %s, dbuserid: %s, dbpasswd: %s, dbipaddr: %s, \
+dbipport: %i \r\n",
+ PLUGIN_NAME, options,
+ vars->dbschema, vars->dbuserid, vars->dbpasswd,
+ vars->dbipaddr, vars->dbipport);
+
+
+ vars->dbflags = 0;
+ vars->conn = (MYSQL *) mysql_do_connect (vars->dbipaddr,
+ vars->dbuserid, vars->dbpasswd,
+ vars->dbschema,
+ vars->dbipport, NULL, vars->dbflags);
+ if (vars->conn == NULL)
+ {
+ fprintf (stderr, "%s plugin_init (%s). Can't connect to db: '%s'",
+ PLUGIN_NAME, options, vars->dbschema);
+
+ syslog_msg (LOG_ALERT, 0, "%s plugin_init (%s). Can't connect to db: '%s'\n",
+ PLUGIN_NAME, options, vars->dbschema);
+
+ return PLUG_STATUS_ERROR;
+ }
+
+ return PLUG_STATUS_OK;
+}
+
+int plugin_free (XCDR_PLUGSTATE *state)
+{
+ vars = state->local_vars;
+
+ mysql_close (vars->conn);
+ g_string_free (vars->temp, TRUE);
+
+ free (vars);
+
+ return PLUG_STATUS_OK;
+}
+
+
+int plugin_main (STMTEXP_TAB *vex, XCDR_PLUGSTATE *state)
+{
+
+ vars = state->local_vars;
+
+ int retr = vars->sql_insert_retry_max;
+ int stmt_done = 0;
+
+ while (retr--)
+ {
+ const char* stmt = mysqlcdr_expand_str (vars->conn, vex, vars->stmt_template,
+ strlen(vars->stmt_template));
+ if (NULL == stmt)
+ {
+ fprintf (stderr, "mysqlcdr_expand_str() returned error. Retrying\n");
+ mysql_ping(vars->conn);
+ }
+ else
+ {
+
+ if (0 != mysql_query_retry_on_fail (vars->conn, stmt, STMT_RETRY_MAX))
+ fprintf (stderr, "Error. '%s' failed. Retrying.\n", stmt);
+ else
+ {
+ fprintf (stderr, "%s\n", stmt);
+ stmt_done = 1;
+ break;
+ }
+ }
+
+ }//~while (retr--)
+
+ if (!stmt_done)
+ {
+ //!FixMe - Failover action. Log to file ... e.t.c
+ }
+
+ return PLUG_STATUS_OK;
+}
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdplugldrc"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugldr.c</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdplugldrcfromrev17079freeswitchtrunkcontribnazimxmlcdrdplugldrc"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugldr.c (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/plugldr.c) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugldr.c         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugldr.c        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,254 @@
</span><ins>+#include <stdio.h>
+#include <syslog.h>
+#include <pcre.h>
+#include <string.h>
+#include <libconfig.h>
+#include "plugcommon.h"
+#include "plugldr.h"
+#include "log.h"
+
+
+#define XCDR_FILE_PATH_MAX 1024
+#define XCDR_STR_LEN_MAX 1024
+
+
+
+int xcdr_plug_ldr_sort_plugins(XCDR_PLUGTAB *plugtab)
+{
+ unsigned int a, b;
+ XCDR_PLUGTAG x;
+
+
+ for (a = 1; a < plugtab->tag_count; ++a)
+ {
+ for (b = plugtab->tag_count - 1; b >= a; --b)
+ {
+ if (plugtab->tags[b - 1].priority > plugtab->tags[b].priority)
+ {
+ x = plugtab->tags[b - 1];
+ plugtab->tags[b - 1] = plugtab->tags[b];
+ plugtab->tags[b] = x;
+ }
+ }
+ }
+
+ return 0;
+}
+
+
+int
+xcdr_plugldr_load_plugins(XCDR_PLUGTAB *plugtab)
+{
+ unsigned int i;
+
+ if (NULL == plugtab->tags || 0 >= plugtab->tag_count)
+ {
+ syslog_msg(LOG_ALERT, 1,
+ "xcdr_plugldr_load_plugins %s:%d No plugins configured",
+ __FILE__, __LINE__);
+ return -1;
+ }
+
+ for (i = 0; i < plugtab->tag_count; i++)
+ {
+
+ if (PLUG_STATUS_ERROR == plug_init(plugtab->tags[i].fname,
+ plugtab->tags[i].options,
+ &plugtab->tags[i].plug))
+ {
+ syslog_msg(LOG_ALERT, 1,
+ "plugldr_load_plugins %s:%d can't load plugin '%s'",
+ __FILE__, __LINE__, plugtab->tags[i].fname);
+ return -1;
+ }
+
+ fprintf(stderr, "plugin: '%s' loaded priority:'%d' options:'%s'\n",
+ plugtab->tags[i].fname, plugtab->tags[i].priority,
+ plugtab->tags[i].options);
+
+ }// ~for (i
+
+ if (1 < plugtab->tag_count)
+ xcdr_plug_ldr_sort_plugins(plugtab);
+
+
+ return 0;
+}
+
+
+
+
+
+int xcdr_plugldr_load_config(XCDR_PLUGTAB *plugtab, const char* config_file)
+{
+
+ config_t cfg;
+ config_setting_t *setting;
+
+ config_init(&cfg);
+
+ fprintf (stderr, "xcdr_plugldr_load_config. Reading config: '%s'\n", config_file);
+
+        if (!config_read_file(&cfg, config_file))
+ {
+                fprintf(stderr, "%s:%d - %s\n",
+ config_file,
+ config_error_line(&cfg),
+ config_error_text(&cfg));
+                config_destroy(&cfg);
+
+                return -1;
+        }
+
+
+ const char *plugin_dir;
+ config_lookup_string (&cfg, "plugin_dir", &plugin_dir);
+
+ setting = config_lookup(&cfg, "Plugins");
+ if(setting != NULL)
+ {
+ int count = config_setting_length(setting);
+ int i;
+
+ plugtab->tags = NULL;
+ plugtab->tag_count = count;
+
+ plugtab->tags = (XCDR_PLUGTAG*)
+ calloc(plugtab->tag_count, sizeof (XCDR_PLUGTAG));
+ if (NULL == plugtab->tags)
+ {
+ config_destroy(&cfg);
+ return -1;
+ }
+
+ for(i = 0; i < count; ++i)
+ {
+ config_setting_t *plugin = config_setting_get_elem(setting, i);
+
+ const char *name, *options;
+ int priority;
+
+ if(!(config_setting_lookup_string(plugin, "name", &name)
+ && config_setting_lookup_string(plugin, "options", &options)
+ && config_setting_lookup_int(plugin, "priority", &priority)))
+ continue;
+
+ fprintf(stderr, " Plugin [%d] %s:\n", i, name);
+ snprintf(plugtab->tags[i].fname, XCDR_PLUGIN_STRMAXLEN - 1,
+ "%s/%s.so", plugin_dir, name);
+
+ snprintf(plugtab->tags[i].options, XCDR_PLUGIN_STRMAXLEN - 1,
+ "%s", options);
+
+ plugtab->tags[i].priority = priority;
+
+ fprintf(stderr, " %u plugin = '%s' options = '%s'\n",
+ plugtab->tags[i].priority,
+ plugtab->tags[i].fname,
+ plugtab->tags[i].options);
+ }
+
+
+ for(i = 0; i < count; ++i)
+ {
+ char metric_name [XCDR_STR_LEN_MAX];
+ snprintf (metric_name, XCDR_STR_LEN_MAX - 1, "Plugins.[%d].Metrics", i);
+ config_setting_t *setting_m = config_lookup(&cfg, metric_name);
+ if (NULL == setting_m)
+ continue;
+
+
+ int metric_count = config_setting_length(setting_m);
+
+ plugtab->tags[i].metrics.tag_count = metric_count;
+
+ plugtab->tags[i].metrics.tags =
+ (XCDR_METRTAG*) calloc(metric_count,
+ sizeof (XCDR_METRTAG));
+
+ int j;
+ const char *name, *regexp;
+ for (j = 0; j < metric_count; j++)
+ {
+ config_setting_t *metric = config_setting_get_elem(setting_m, j);
+
+ if(!(config_setting_lookup_string(metric, "metric", &name)
+ && config_setting_lookup_string(metric, "regexp", &regexp)))
+ continue;
+
+ snprintf (plugtab->tags[i].metrics.tags[j].metric,
+ XCDR_METRIC_ID_MAX,
+ "%s",
+ name);
+
+ snprintf (plugtab->tags[i].metrics.tags[j].regexp,
+ XCDR_METRIC_REGEXP_MAX,
+ "%s",
+ regexp);
+
+ fprintf(stderr, " Loaded metric %s:%s:%d [%s] '%s'\n",
+ plugtab->tags[i].fname,
+ plugtab->tags[i].options,
+ plugtab->tags[i].priority,
+ name, regexp);
+ }
+ }
+ }
+
+ config_destroy(&cfg);
+
+ return 0;
+}
+
+
+
+void
+xcdr_plugldr_free_plugins(XCDR_PLUGTAB *plugtab)
+{
+ unsigned int i;
+
+ if (NULL == plugtab) return;
+
+ for (i = 0; i < plugtab->tag_count; i++)
+ if (NULL != plugtab->tags[i].fname)
+ {
+ plug_free(&plugtab->tags[i].plug);
+ free(plugtab->tags[i].metrics.tags);
+
+ fprintf(stderr, "plugldr_free_plugins %s\n", plugtab->tags[i].fname);
+ }
+
+ if (NULL != plugtab->tags)
+ {
+ free(plugtab->tags);
+ plugtab->tag_count = 0;
+ }
+
+ plugtab->tags = NULL;
+
+ fprintf(stderr, "plugldr_free_plugins done\r\n");
+
+ return;
+}
+
+/*
+ Returns non -negative value on success
+ Negative value on failure
+ */
+int xcdr_plugldr_match_regexp(const char *regexp,
+ const char *text, int text_len)
+{
+ pcre *re;
+ const char *error;
+ int ovector[30];
+ int erroffset;
+ int res;
+
+ re = pcre_compile(regexp, 0, &error, &erroffset, NULL);
+
+ res = pcre_exec(re, NULL, text, text_len, 0, 0, ovector, 30);
+
+ pcre_free (re);
+
+ return res;
+}
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdplugldrh"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugldr.h</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdplugldrhfromrev17079freeswitchtrunkcontribnazimxmlcdrdplugldrh"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugldr.h (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/plugldr.h) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugldr.h         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/plugldr.h        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,86 @@
</span><ins>+#ifndef PLUGLDR_H
+#define PLUGLDR_H
+
+#include "plug.h"
+
+
+#define XCDR_PLUGLDR_PREPROCESSOR_PLUGIN_TOKEN "preprocessor_plugin"
+#define XCDR_PLUGLDR_PROCESSOR_PLUGIN_TOKEN "processor_plugin"
+#define XCDR_PLUGLDR_FALLBACK_PLUGIN_TOKEN "fallback_plugin"
+#define XCDR_PLUGLDR_PLUGIN_DIR_TOKEN "plugin_dir"
+
+#define XCDR_METRIC_ID_MAX 256
+#define XCDR_METRIC_REGEXP_MAX 256
+
+
+
+typedef struct xcdr_plugin_metric_tag
+{
+ char metric [XCDR_METRIC_ID_MAX];
+ char regexp [XCDR_METRIC_REGEXP_MAX];
+} XCDR_METRTAG, *PXCDR_METRTAG;
+
+
+typedef struct xcdr_metric_table
+{
+        XCDR_METRTAG *tags;
+        unsigned int tag_count;
+} XCDR_METRTAB, *PXCDR_METRTAB;
+
+
+
+
+typedef struct xcdr_plugin_tag
+{
+
+ unsigned int id;
+
+ /*plugin priority in config table*/
+        unsigned int priority;
+
+ /*plugin file name*/
+        char fname [XCDR_PLUGIN_STRMAXLEN];
+
+ /*options passed to plugin*/
+        char options [XCDR_PLUGIN_STRMAXLEN];
+
+
+ /* plugin function pointers*/
+        XCDR_PLUGINFO plug;
+
+ /*table of plugin metrics*/
+ XCDR_METRTAB metrics;
+
+
+} XCDR_PLUGTAG, *PXCDR_PLUGTAG;
+
+
+typedef struct plugin_table
+{
+        XCDR_PLUGTAG *tags;
+        unsigned int tag_count;
+} XCDR_PLUGTAB, *PXCDR_PLUGTAB;
+
+
+/*First configure PLUGTAB table*/
+int xcdr_plugldr_load_config(XCDR_PLUGTAB *plugtab, const char* config_file);
+
+/*Load plugins after successful configuration*/
+int xcdr_plugldr_load_plugins (XCDR_PLUGTAB *plugtab);
+
+
+/*int xcdr_plugldr_match_plugin (const PLUGINCALLINFO *plugci,
+ const XCDR_PLUGTAB *plugtab, XCDR_PLUGINFO **plug,
+ const int startpos);
+*/
+
+void xcdr_plugldr_free_plugins (XCDR_PLUGTAB *plugtab);
+
+int xcdr_plug_ldr_sort_plugins (XCDR_PLUGTAB *plugtab);
+
+int xcdr_plugldr_match_regexp (const char *regexp,
+ const char *text, int text_len);
+
+
+#endif
+
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdscriptsfromrev17079freeswitchtrunkcontribnazimxmlcdrdscripts"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/scripts (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/scripts)</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdstmtexpc"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/stmtexp.c</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdstmtexpcfromrev17079freeswitchtrunkcontribnazimxmlcdrdstmtexpc"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/stmtexp.c (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/stmtexp.c) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/stmtexp.c         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/stmtexp.c        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,144 @@
</span><ins>+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <glib.h>
+#include "stmtexp.h"
+#include "stmtexpldr.h"
+
+
+#define VARSTART "$<"
+#define VAREND ">"
+
+#define VARSTART_LEN strlen (VARSTART)
+#define VAREND_LEN strlen (VAREND)
+
+#define VARID_LEN 512
+
+int stmtexp_load_config (stmtexp_tab_t *vex, const char* config_file)
+{
+ stmtexpldr_init (vex);
+
+ return stmtexpldr_load_config (vex, config_file);
+}
+
+void stmtexp_free (stmtexp_tab_t *vex)
+{
+ stmtexpldr_clear (vex);
+}
+
+void stmtexp_assign_var (stmtexp_tab_t *vex,
+ const char *varid, const char *vartext)
+{
+ stmtexp_key_t t;
+ memset (&t, 0x0, sizeof(stmtexp_key_t) );
+
+ snprintf (t.stmt_var, STMTEXPAND_STRLEN_MAX - 1, "%s", varid);
+
+ stmtexp_val_t *tv = g_hash_table_lookup (vex->ght, &t);
+
+ if (NULL == tv)
+ {
+ /*
+ fprintf (stderr,
+ "Index '%s' is not found. Can't assign var.\n",
+ varid);
+ */
+ return;
+ }
+
+ if (NULL != tv->val)
+ {
+ /*
+ fprintf (stderr, "free old val %s\n", tv->val);
+ */
+ free (tv->val);
+ tv->val = NULL;
+ }
+
+ tv->val = strdup (vartext);
+
+}
+
+const char* stmtexp_lookup_var (stmtexp_tab_t *vex, const char *varid)
+{
+ stmtexp_key_t t;
+ memset (&t, 0x0, sizeof(stmtexp_key_t) );
+
+ snprintf (t.stmt_var, STMTEXPAND_STRLEN_MAX - 1, "%s", varid);
+
+
+ stmtexp_val_t *tv = g_hash_table_lookup (vex->ght, &t);
+
+ //fprintf (stderr, "stmtexp_lookup_var('%s')", varid);
+
+ if (NULL != tv)
+ return tv->val;
+ else return NULL;
+}
+
+
+void stmtexp_foreach_callback (stmtexp_tab_t *vex,
+ stmtexp_foreach_callback_t c,
+ void *data)
+{
+ g_hash_table_foreach (vex->ght, (GHFunc)c, data);
+}
+
+
+const char *stmtexp_expand_str (stmtexp_tab_t *vex,
+ const char *src, int srclen)
+{
+ const char *s; //src
+ char *e; //end
+ char varid [VARID_LEN];
+
+ s = src;
+ g_string_set_size (vex->expanded, 0);
+
+ while (s < src + srclen)
+ {
+ if (NULL != (e = strstr (s, VARSTART)) )
+ {
+ g_string_append_len (vex->expanded, s, e - s);
+ s = e++;
+
+ if (NULL != (e = strstr (s, VAREND)) )
+ {
+
+ /* Remove placeholders VARSTART and VAREND, then lookup */
+ memset (varid, 0x0, VARID_LEN);
+ strncpy (varid, s + VARSTART_LEN, (e - s) - VARSTART_LEN );
+
+ const char* ev = stmtexp_lookup_var (vex, varid);
+ if (NULL != ev)
+ {
+ /*append expanded var to destination*/
+ g_string_append (vex->expanded, ev);
+ }
+ else
+ {
+ /*variable was not found, skip it*/
+ }
+
+ s = e + 1;
+ //fprintf (stderr, "s: '%s'\n", s);
+
+ }
+ else /*no more signatures found, append the rest of the str*/
+ {
+ if (NULL != s)
+ g_string_append (vex->expanded, s);
+ break;
+ }
+ }
+ else /*no more signatures found, append the rest of the str*/
+ {
+ if (NULL != s)
+ g_string_append (vex->expanded, s);
+ break;
+ }
+ }//while (s < src + src_len)
+
+ return vex->expanded->str;
+
+}
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdstmtexph"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/stmtexp.h</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdstmtexphfromrev17079freeswitchtrunkcontribnazimxmlcdrdstmtexph"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/stmtexp.h (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/stmtexp.h) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/stmtexp.h         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/stmtexp.h        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,52 @@
</span><ins>+#ifndef STMTEXP_H
+#define STMTEXP_H
+
+#include "stmtexptab.h"
+#include "stmtexpldr.h"
+#include <glib.h>
+
+/*
+ Very simple and slow variable expansion. No text escaping is provided.
+ No recursion checks, so if your expanded var contains variable definition
+ you're in trouble.
+*/
+
+
+/* Callback to modify each key and value */
+typedef void (* stmtexp_foreach_callback_t) (stmtexp_key_t *key,
+ stmtexp_val_t *val,
+ void *userdata);
+
+
+/*
+ Returns:
+ -1 if error occured, any other value on success
+*/
+int stmtexp_load_config (stmtexp_tab_t *vex, const char* config_file);
+
+void stmtexp_free (stmtexp_tab_t *vex);
+
+const char* stmtexp_lookup_var (stmtexp_tab_t *vex, const char *varid);
+
+void stmtexp_foreach_callback (stmtexp_tab_t *vex,
+ stmtexp_foreach_callback_t c,
+ void *data);
+
+void stmtexp_assign_var (stmtexp_tab_t *vex,
+ const char *varid, const char *vartext);
+
+/*
+ @vex - variables to expand
+ Returns:
+ pointer to a static buffer which gets overwritten on next call to the func.
+ NULL on errror
+*/
+const char *stmtexp_expand_str (stmtexp_tab_t * vex,
+ const char *src, int srclen);
+
+
+
+
+#endif
+
+
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdstmtexpldrc"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/stmtexpldr.c</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdstmtexpldrcfromrev17079freeswitchtrunkcontribnazimxmlcdrdstmtexpldrc"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/stmtexpldr.c (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/stmtexpldr.c) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/stmtexpldr.c         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/stmtexpldr.c        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,218 @@
</span><ins>+#include "stmtexptab.h"
+#include "stmtexpldr.h"
+#include <libconfig.h>
+#include <stdlib.h>
+#include <malloc.h>
+#include <string.h>
+
+
+#define EXPANDED_STR_DEF_LEN 10240
+
+
+
+gboolean stmtexpldr_equal (gconstpointer a, gconstpointer b);
+guint stmtexpldr_str_hash (gconstpointer v);
+void stmtexpldr_destroy_val (gpointer data);
+void stmtexpldr_destroy_key (gpointer data);
+
+
+gboolean stmtexpldr_equal (gconstpointer a, gconstpointer b)
+{
+ const stmtexp_key_t* ta = (stmtexp_key_t *) a;
+ const stmtexp_key_t* tb = (stmtexp_key_t *) b;
+
+ return g_str_equal (ta->stmt_var, tb->stmt_var);
+}
+
+
+guint stmtexpldr_str_hash (gconstpointer v)
+{
+ const stmtexp_key_t* tv = (stmtexp_key_t *) v;
+
+ return (g_str_hash(tv->stmt_var) );
+}
+
+
+void stmtexpldr_destroy_val (gpointer data)
+{
+ if (NULL == data)
+ return;
+
+ stmtexp_val_t * val = (stmtexp_val_t*) data;
+
+ if (NULL != val->val)
+ free (val->val);
+
+ free (val);
+}
+
+void stmtexpldr_destroy_key (gpointer data)
+{
+ if (NULL == data)
+ return;
+
+ stmtexp_key_t * key = (stmtexp_key_t*) data;
+
+ if (NULL != key)
+ free (key);
+}
+
+
+
+void stmtexpldr_init (stmtexp_tab_t *vex)
+{
+ vex->ght = g_hash_table_new_full (g_str_hash, stmtexpldr_equal,
+ stmtexpldr_destroy_key, stmtexpldr_destroy_val);
+
+ vex->expanded = g_string_sized_new (EXPANDED_STR_DEF_LEN);
+}
+
+
+int stmtexpldr_load_config (stmtexp_tab_t *vex, const char* config_file)
+{
+
+ int fret;
+ config_t cfg;
+ config_setting_t *setting;
+
+        config_init(&cfg);
+
+        if (!config_read_file(&cfg, config_file))
+ {
+                fprintf(stderr, "%s:%d - %s\n",
+ config_file,
+ config_error_line(&cfg),
+ config_error_text(&cfg));
+                config_destroy(&cfg);
+
+                return -1;
+        }
+
+
+ setting = config_lookup(&cfg, "Variables");
+ if(setting != NULL)
+ {
+ int count = config_setting_length(setting);
+ printf("%d configured variables:\n", count);
+
+ int i;
+ for(i = 0; i < count; ++i)
+ {
+ config_setting_t *var = config_setting_get_elem(setting, i);
+
+ const char *var_id, *xpath;
+
+ if(!(config_setting_lookup_string(var, "var_id",
+ &var_id)
+ && config_setting_lookup_string(var, "xpath", &xpath))
+ )
+ continue;
+
+ stmtexp_key_t* sk = calloc (1, sizeof(stmtexp_key_t) );
+ if (NULL != sk)
+ {
+ fprintf(stderr, " Variable [%d] '%s':'%s'\n", i,
+ var_id, xpath );
+
+ snprintf (sk->stmt_var, STMTEXPAND_STRLEN_MAX - 1, "%s",
+ var_id);
+
+ snprintf (sk->xpath, STMTEXPAND_STRLEN_MAX - 1, "%s", xpath );
+
+ //add index and value
+ stmtexp_val_t *sv = calloc (1, sizeof(stmtexp_val_t) );
+ g_hash_table_replace (vex->ght, sk, sv);
+ } else
+ {
+ perror ("stmtexpldr_load_config() malloc error\n");
+ fret = -1;
+ break;
+ }
+
+
+ }
+ fret = 0;
+
+ }
+
+
+ config_destroy(&cfg);
+
+ return fret;
+
+/*
+ cfg_t *cfg;
+
+
+ int res;
+ int fret = 0;
+
+ cfg = cfg_init(opts, 0);
+ res = cfg_parse(cfg, config_file);
+
+ printf("Parsing result == %d\n", res);
+ if(res == CFG_FILE_ERROR)
+ {
+ perror(config_file);
+ return -1;
+ } else if(res == CFG_PARSE_ERROR)
+ {
+ fprintf(stderr, "'%s' parse error\n", config_file);
+ return -1;
+ }
+
+ int n = cfg_size(cfg, "var");
+ printf("%d configured variables:\n", n);
+
+ int i;
+ for(i = 0; i < n; i++)
+ {
+ stmtexp_key_t* sk = calloc (1, sizeof(stmtexp_key_t) );
+ if (NULL != sk)
+ {
+ cfg_t *vars = cfg_getnsec(cfg, "var", i);
+
+ printf(" Variable [%d] %s:\n", i, cfg_title(vars) );
+ snprintf (sk->stmt_var, STMTEXPAND_STRLEN_MAX - 1,
+ "%s", cfg_getstr(vars, "var_placeholder") );
+ printf(" Var. Placeholder = %s\n", sk->stmt_var);
+
+
+ snprintf (sk->xpath, STMTEXPAND_STRLEN_MAX - 1,
+ "%s", cfg_getstr(vars, "xpath") );
+ printf(" Var. XPATH = %s\n", sk->xpath);
+
+
+ //add index and value
+ stmtexp_val_t *sv = calloc (1, sizeof(stmtexp_val_t) );
+ g_hash_table_replace (vex->ght, sk, sv);
+ } else
+ {
+ perror ("stmtexpldr_load_config() malloc error\n");
+ fret = -1;
+ break;
+ }
+ }
+
+
+
+ cfg_free(cfg);
+
+
+ return fret;
+*/
+}
+
+
+void stmtexpldr_clear (stmtexp_tab_t *vex)
+{
+ g_hash_table_remove_all (vex->ght);
+}
+
+
+void stmtexpldr_free (stmtexp_tab_t *vex)
+{
+ g_hash_table_destroy (vex->ght);
+ g_string_free (vex->expanded, TRUE);
+}
+
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdstmtexpldrh"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/stmtexpldr.h</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdstmtexpldrhfromrev17079freeswitchtrunkcontribnazimxmlcdrdstmtexpldrh"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/stmtexpldr.h (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/stmtexpldr.h) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/stmtexpldr.h         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/stmtexpldr.h        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,45 @@
</span><ins>+#ifndef STMTEXPLDR_H
+#define STMTEXPLDR_H
+
+#include "stmtexptab.h"
+
+#define STMTEXPAND_STRLEN_MAX 512
+
+typedef enum
+{
+ STMTEXP_DB_DT_VARCHAR = 1,
+ STMTEXP_DB_DT_INT
+} stmtexp_db_field_dt;
+
+typedef struct
+{
+ /*stmt_var - variable id inside a statement: $<SOMEVAR> */
+ char stmt_var [STMTEXPAND_STRLEN_MAX];
+
+ /*XPATH of value inside the XMLCDR hierarchy*/
+ char xpath [STMTEXPAND_STRLEN_MAX];
+
+} stmtexp_key_t, *pstmtexp_key_t;
+
+typedef struct
+{
+ char *val;
+} stmtexp_val_t, *pstmtexp_val_t;
+
+
+
+void stmtexpldr_init (stmtexp_tab_t *vex);
+
+/* Returns:
+
+ -1 if error occured*/
+int stmtexpldr_load_config (stmtexp_tab_t *vex, const char* config_file);
+
+void stmtexpldr_clear (stmtexp_tab_t *vex);
+
+void stmtexpldr_free (stmtexp_tab_t *vex);
+
+
+
+
+#endif
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdstmtexptabh"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/stmtexptab.h</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdstmtexptabhfromrev17079freeswitchtrunkcontribnazimxmlcdrdstmtexptabh"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/stmtexptab.h (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/stmtexptab.h) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/stmtexptab.h         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/stmtexptab.h        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+#ifndef STMTEXPTAB_H
+#define STMTEXPTAB_H
+
+#include <glib.h>
+
+typedef struct
+{
+ GHashTable *ght;
+ GString *expanded;
+} stmtexp_tab_t, *pstmtexp_tab_t, STMTEXP_TAB, *PSTMTEXP_TAB;
+
+
+
+#endif
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdtestxml"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/test.xml</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdtestxmlfromrev17079freeswitchtrunkcontribnazimxmlcdrdtestxml"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/test.xml (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/test.xml) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/test.xml         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/test.xml        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,187 @@
</span><ins>+<?xml version="1.0"?>
+<cdr>
+ <variables>
+ <sip_received_ip>192.168.50.21</sip_received_ip>
+ <sip_received_port>39368</sip_received_port>
+ <sip_authorized>true</sip_authorized>
+ <sip_mailbox>1160</sip_mailbox>
+ <sip_auth_username>1160</sip_auth_username>
+
+ <sip_auth_realm>192.168.50.229</sip_auth_realm>
+ <mailbox>1160</mailbox>
+ <record_stereo>true</record_stereo>
+ <accountcode>1160</accountcode>
+ <user_context>default</user_context>
+ <effective_caller_id_name>Michael%20S%20Collins</effective_caller_id_name>
+
+ <effective_caller_id_number>5597993757</effective_caller_id_number>
+ <sip_from_user>1160</sip_from_user>
+ <sip_from_uri>1160%40192.168.50.229</sip_from_uri>
+ <sip_from_host>192.168.50.229</sip_from_host>
+ <sip_from_user_stripped>1160</sip_from_user_stripped>
+ <sip_from_tag>a360bd54</sip_from_tag>
+
+ <sofia_profile_name>internal</sofia_profile_name>
+ <sofia_profile_domain_name>192.168.50.229</sofia_profile_domain_name>
+ <sip_req_user>92137991400</sip_req_user>
+ <sip_req_uri>92137991400%40192.168.50.229</sip_req_uri>
+ <sip_req_host>192.168.50.229</sip_req_host>
+ <sip_to_user>92137991400</sip_to_user>
+
+ <sip_to_uri>92137991400%40192.168.50.229</sip_to_uri>
+ <sip_to_host>192.168.50.229</sip_to_host>
+ <sip_contact_user>1160</sip_contact_user>
+ <sip_contact_port>39368</sip_contact_port>
+ <sip_contact_uri>1160%40192.168.50.21%3A39368</sip_contact_uri>
+ <sip_contact_host>192.168.50.21</sip_contact_host>
+
+ <channel_name>sofia/internal/1160%40192.168.50.229</channel_name>
+ <sip_call_id>NzUyYzU2ZmU0NjQ0NmNkMGExYTNiZjIzMjIwMWNiODc.</sip_call_id>
+ <sip_via_host>192.168.50.21</sip_via_host>
+ <sip_via_port>39368</sip_via_port>
+ <sip_via_rport>39368</sip_via_rport>
+ <max_forwards>70</max_forwards>
+
+ <presence_id>1160%40192.168.50.229</presence_id>
+ <switch_r_sdp>v%3D0%0D%0Ao%3D-%206%202%20IN%20IP4%20192.168.50.21%0D%0As%3DCounterPath%20X-Lite%203.0%0D%0Ac%3DIN%20IP4%20192.168.50.21%0D%0At%3D0%200%0D%0Am%3Daudio%209140%20RTP/AVP%20107%20119%20100%20106%200%20105%2098%208%203%20101%0D%0Aa%3Drtpmap%3A107%20BV32/16000%0D%0Aa%3Drtpmap%3A119%20BV32-FEC/16000%0D%0Aa%3Drtpmap%3A100%20SPEEX/16000%0D%0Aa%3Drtpmap%3A106%20SPEEX-FEC/16000%0D%0Aa%3Drtpmap%3A105%20SPEEX-FEC/8000%0D%0Aa%3Drtpmap%3A98%20iLBC/8000%0D%0Aa%3Drtpmap%3A101%20telephone-event/8000%0D%0Aa%3Dfmtp%3A101%200-15%0D%0Aa%3Dalt%3A1%201%20%3A%20CV3qZAA1%209gFf2/Iz%20192.168.50.21%209140%0D%0A</switch_r_sdp>
+ <remote_media_ip>192.168.50.21</remote_media_ip>
+ <remote_media_port>9140</remote_media_port>
+ <write_codec>PCMU</write_codec>
+ <write_rate>8000</write_rate>
+
+ <open>true</open>
+ <use_profile>nat</use_profile>
+ <numbering_plan>US</numbering_plan>
+ <default_gateway>asterlink.com</default_gateway>
+ <default_area_code>559</default_area_code>
+ <user_name>default</user_name>
+
+ <domain_name>192.168.50.229</domain_name>
+ <local_media_ip>192.168.50.229</local_media_ip>
+ <local_media_port>9140</local_media_port>
+ <current_application>bridge</current_application>
+ <originate_disposition>SUCCESS</originate_disposition>
+ <bridge_channel>OpenZAP/1%3A23/2137991400</bridge_channel>
+
+ <bridge_uuid>e012ce96-7f9c-4194-87fe-5ba86a3930ca</bridge_uuid>
+ <signal_bond>e012ce96-7f9c-4194-87fe-5ba86a3930ca</signal_bond>
+ <sip_nat_detected>true</sip_nat_detected>
+ <endpoint_disposition>ANSWER</endpoint_disposition>
+ <sip_user_agent>X-Lite%20release%201100l%20stamp%2047546</sip_user_agent>
+ <sip_term_status>200</sip_term_status>
+
+ <sip_term_cause>16</sip_term_cause>
+ <hangup_cause>NORMAL_CLEARING</hangup_cause>
+ <start_stamp>2008-07-31%2011%3A35%3A38</start_stamp>
+ <profile_start_stamp>2008-07-31%2011%3A35%3A38</profile_start_stamp>
+ <answer_stamp>2008-07-31%2011%3A35%3A41</answer_stamp>
+ <progress_stamp>2008-07-31%2011%3A35%3A38</progress_stamp>
+
+ <progress_media_stamp>2008-07-31%2011%3A35%3A38</progress_media_stamp>
+ <end_stamp>2008-07-31%2011%3A36%3A17</end_stamp>
+ <start_epoch>1217529338</start_epoch>
+ <start_uepoch>1217529338212616</start_uepoch>
+ <profile_start_epoch>1217529338</profile_start_epoch>
+ <profile_start_uepoch>1217529338212616</profile_start_uepoch>
+
+ <answer_epoch>1217529338</answer_epoch>
+ <answer_uepoch>1217529338452698</answer_uepoch>
+ <end_epoch>1217529377</end_epoch>
+ <end_uepoch>1217529377795951</end_uepoch>
+ <last_app>bridge</last_app>
+ <last_arg>openzap/1/A/2137991400</last_arg>
+
+ <caller_id>%22Mikey%22%20%3C1160%3E</caller_id>
+ <duration>39</duration>
+ <billsec>36</billsec>
+ <progresssec>0</progresssec>
+ <progress_mediasec>0</progress_mediasec>
+ <flow_billsec>39</flow_billsec>
+
+ <mduration>39583</mduration>
+ <billmsec>36267</billmsec>
+ <progressmsec>238</progressmsec>
+ <progress_mediamsec>237955</progress_mediamsec>
+ <flow_billmsec>39583</flow_billmsec>
+ <uduration>39583335</uduration>
+
+ <billusec>36267529</billusec>
+ <progressusec>237955</progressusec>
+ <progress_mediausec>237955</progress_mediausec>
+ <flow_billusec>39583335</flow_billusec>
+ <read_codec>PCMU</read_codec>
+ <read_rate>8000</read_rate>
+
+ </variables>
+ <app_log>
+ <application app_name="set" app_data="open=true"></application>
+ <application app_name="set" app_data="use_profile=nat"></application>
+ <application app_name="set_user" app_data="default@192.168.50.229"></application>
+ <application app_name="db" app_data="insert/spymap/1160/6f32e2f8-38d1-43a7-b6ea-215bbfe6a314"></application>
+ <application app_name="db" app_data="insert/last_dial/1160/92137991400"></application>
+ <application app_name="db" app_data="insert/last_dial/global/6f32e2f8-38d1-43a7-b6ea-215bbfe6a314"></application>
+ <application app_name="record_session" app_data="/mnt/powervault/Databases/XMLCDR/6f32e2f8-38d1-43a7-b6ea-215bbfe6a314__1.wav"></application>
+
+ <application app_name="bridge" app_data="openzap/1/A/2137991400"></application>
+ </app_log>
+ <callflow dialplan="XML" profile_index="1">
+ <extension name="tod_example" number="92137991400">
+ <application app_name="set" app_data="open=true"></application>
+ <application app_name="set" app_data="use_profile=${cond(${acl(${network_addr} rfc1918)} == true ? nat : default)}"></application>
+ <application app_name="set_user" app_data="default@${domain}"></application>
+ <application app_name="db" app_data="insert/spymap/${caller_id_number}/${uuid}"></application>
+ <application app_name="db" app_data="insert/last_dial/${caller_id_number}/${destination_number}"></application>
+
+ <application app_name="db" app_data="insert/last_dial/global/${uuid}"></application>
+ <application app_name="record_session" app_data="/mnt/powervault/Databases/XMLCDR/${uuid}__1.wav"></application>
+ <application app_name="bridge" app_data="openzap/1/A/2137991400"></application>
+ </extension>
+ <caller_profile>
+ <username>1160</username>
+ <dialplan>XML</dialplan>
+ <caller_id_name>Mikey</caller_id_name>
+
+ <ani></ani>
+ <aniii></aniii>
+ <caller_id_number>1160</caller_id_number>
+ <network_addr>192.168.50.21</network_addr>
+ <rdnis></rdnis>
+ <destination_number>92137991400</destination_number>
+ <uuid>6f32e2f8-38d1-43a7-b6ea-215bbfe6a314</uuid>
+
+ <source>mod_sofia</source>
+ <context>default</context>
+ <chan_name>sofia/internal/1160@192.168.50.229</chan_name>
+ <originatee>
+ <originatee_caller_profile>
+ <username>1160</username>
+ <dialplan>XML</dialplan>
+
+ <caller_id_name>Michael S Collins</caller_id_name>
+ <ani></ani>
+ <aniii></aniii>
+ <caller_id_number>5597993757</caller_id_number>
+ <network_addr>192.168.50.21</network_addr>
+ <rdnis></rdnis>
+ <destination_number>1/A/2137991400</destination_number>
+
+ <uuid>e012ce96-7f9c-4194-87fe-5ba86a3930ca</uuid>
+ <source>mod_sofia</source>
+ <context>default</context>
+ <chan_name>OpenZAP/1:23/2137991400</chan_name>
+ </originatee_caller_profile>
+ </originatee>
+ </caller_profile>
+
+ <times>
+ <created_time>1217529338212616</created_time>
+ <profile_created_time>1217529338212616</profile_created_time>
+ <progress_time>1217529338450571</progress_time>
+ <progress_media_time>1217529338452698</progress_media_time>
+ <answered_time>1217529341528422</answered_time>
+
+ <hangup_time>1217529377795951</hangup_time>
+ <transfer_time>0</transfer_time>
+ </times>
+ </callflow>
+</cdr>
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdurldecodec"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/urldecode.c</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdurldecodecfromrev17079freeswitchtrunkcontribnazimxmlcdrdurldecodec"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/urldecode.c (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/urldecode.c) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/urldecode.c         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/urldecode.c        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,86 @@
</span><ins>+#include <glib.h>
+#include "urldecode.h"
+
+
+
+const char * urldecode_expand_value (GString *url,
+ const char *key, int key_len,
+ int case_sensative,
+ GString *temp, int *status, GString *val)
+{
+ const char *p;
+ char *end;
+ apr_size_t len;
+
+ if ( NULL == key )
+ {
+ *status = URLUTIL_STATUS_INVALID_PARAMS;
+ return NULL;
+ }
+
+ if (0 == strlen(key) || 0 == key_len)
+ {
+ *status = URLUTIL_STATUS_EMPTY_SRCH_KEY;
+ return NULL;
+ }
+        
+ if (strlen((char*)url->str) < key_len )
+ {
+ *status = URLUTIL_STATUS_URL_STR_TOO_SHORT;
+ return NULL;
+ }
+
+
+ //convert key to urlencoded string,
+ //since we are searching for urlencoded keys
+
+ //max length of urlencoded key is 3 * key length
+ len = 3 * key_len + 1;
+ g_string_set_size(temp, len);
+ memset (temp->str, 0x0, len);
+
+ apreq_encode(temp->str, key, key_len );
+ //append '=' to the key_name
+ temp->str [strlen(temp->str)] = '=';
+
+
+ if (0 == case_sensative)
+ {
+ if (NULL == (p = strcasestr ((const char*) url->str, temp->str)) )
+ {
+ *status = URLUTIL_STATUS_SRCH_KEY_NOT_FOUND;
+ return NULL;
+ }
+ } else
+ {
+ if (NULL == (p = strstr ((const char*) url->str, temp->str)) )
+ {
+ *status = URLUTIL_STATUS_SRCH_KEY_NOT_FOUND;
+ return NULL;
+ }
+ } //~else case_sensative
+
+
+ //urlencoded key is found in cgi request string
+ if (NULL == (end = strchr (p, '=')) )
+ {
+ *status = URLUTIL_STATUS_URL_KEY_VAL_BROKEN;
+ return NULL;
+ }
+
+ //get value
+ //if terminating '&' is not found,
+ //then our value ends at the end of the @url string
+ p = ++end;
+ if (NULL == (end = strchr (p, '&')) )
+ end = url->str + strlen(url->str);
+
+ len = 3 * (end - p) + 1;
+ g_string_set_size(val, len);
+ memset (val->str, 0x0, len);
+
+ apreq_decode (val->str, &len, p, end - p);
+
+ return val->str;
+}
+
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdurldecodeh"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/urldecode.h</h4></div>
<a id="freeswitchbranchesrupa_limitcontribnazimxmlcdrdurldecodehfromrev17079freeswitchtrunkcontribnazimxmlcdrdurldecodeh"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/urldecode.h (from rev 17079, freeswitch/trunk/contrib/nazim/xmlcdrd/urldecode.h) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/urldecode.h         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/nazim/xmlcdrd/urldecode.h        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,28 @@
</span><ins>+#ifndef URLDECODE_H
+#define URLDECODE_H
+
+
+#include <apreq2/apreq_util.h>
+#include <glib.h>
+
+
+/*
+Status codes
+*/
+
+#define URLUTIL_STATUS_OK 0
+#define URLUTIL_STATUS_MEM_ALLOC_ERR -1
+#define URLUTIL_STATUS_INVALID_PARAMS -2
+#define URLUTIL_STATUS_EMPTY_SRCH_KEY -3
+#define URLUTIL_STATUS_SRCH_KEY_NOT_FOUND -4
+#define URLUTIL_STATUS_URL_STR_TOO_SHORT -5
+#define URLUTIL_STATUS_URL_KEY_VAL_BROKEN -6
+
+
+const char * urldecode_expand_value (GString *url,
+ const char *key, int key_len,
+ int case_sensative,
+ GString *temp, int *status, GString *val);
+
+
+#endif
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribsevenREADME"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/contrib/seven/README (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/seven/README        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/contrib/seven/README        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -1 +1,3 @@
</span><del>-fsair - FreeSWITCH Air http://wiki.freeswitch.org/wiki/FsAir
</del><ins>+Author: Seven Du (seven .. at .. idapted.com )
+License: MIT
+WWW: www.idapted.com
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribsevenfsairREADMEfromrev17079freeswitchtrunkcontribsevenfsairREADME"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/seven/fsair/README (from rev 17079, freeswitch/trunk/contrib/seven/fsair/README) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/seven/fsair/README         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/seven/fsair/README        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,6 @@
</span><ins>+Author: Seven Du (seven .. at .. idapted.com )
+License: MIT
+WWW: www.idapted.com
+
+
+fsair - FreeSWITCH Air http://wiki.freeswitch.org/wiki/FsAir
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribsevenluabatch_dialerluafromrev17079freeswitchtrunkcontribsevenluabatch_dialerlua"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/seven/lua/batch_dialer.lua (from rev 17079, freeswitch/trunk/contrib/seven/lua/batch_dialer.lua) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/seven/lua/batch_dialer.lua         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/seven/lua/batch_dialer.lua        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,121 @@
</span><ins>+--[[
+        Author: Seven du (seven .. at .. idapted.com)
+        Licence: MIT
+        WWW: http://www.idapted.com
+        
+        FreeSWITCH batch dialer
+        Dial numbers in <number_file_name> and playback a sound,
+        no more than <max_calls> calls in concurrent.
+        
+        Usage: luarun batch_dialer.lua <max_calls>
+         luarun batch_dialer.lua stop
+        
+        Disclamer: Note, this is just an example and it might have bugs
+        
+]]
+
+dialer_value = argv[0] or "batch_dialer.lua"
+-- prefix = "{ignore_early_media=true}sofia/gateway/cnc/"
+prefix = "{ignore_early_media=true,dialer_var=" .. dialer_value .. "}user/"
+number_file_name = "/usr/local/freeswitch/scripts/number.txt"
+file_to_play = "/usr/local/freeswitch/sounds/custom/8000/sound.wav"
+log_file_name = "/usr/local/freeswitch/log/dialer_log.txt"
+
+con = freeswitch.EventConsumer("all");
+
+freeswitch.consoleLog("info", "==== Lua Script [" .. argv[0] .. "] Starting =====\n");
+
+local all_events = 0;
+local event_name
+local event_subclass
+
+debug = {}
+
+function debug.var(k, v)
+        v = v or 'nil'
+        freeswitch.consoleLog("notice", "====DebugVar=== " .. k .. ": " .. v .. "\n")
+end
+
+function debug.info(s)
+        freeswitch.consoleLog("info", s .. "\n")
+end
+
+function debug.notice(s)
+        freeswitch.consoleLog("notice", s .. "\n")
+end
+
+if argv[1] == "stop" then
+ local event = freeswitch.Event("custom", "lua::stopscript");
+ event:addHeader("Seven", "7777777");
+ event:fire();
+ debug.info("stop message sent to lua script[" .. argv[0] .. "]")
+ return;
+end
+
+number_file = io.open(number_file_name, "r")
+log_file = io.open(log_file_name, "a+")
+max_calls = tonumber(argv[1] or 10)
+current_calls = 0
+
+debug.info("Max calls: " .. max_calls)
+
+function log(s)
+        log_file:write(os.date("%H:%M:%S ") .. s .. "\n")
+        log_file:flush()
+end
+
+api = freeswitch.API();
+
+function new_call()
+        line = number_file:read("*line")
+        if line == "" or line == nil then return 0 end
+        
+        api:execute("bgapi", "originate " .. prefix .. line .. " &echo()")
+        return 1;
+
+end
+
+function init_call()
+
+        while current_calls < max_calls do
+                if (new_call() == 0) then return 0 end
+                current_calls = current_calls + 1
+        end
+        return current_calls
+end
+
+init_call()
+
+for e in (function() return con:pop(1) end) do
+
+ -- freeswitch.consoleLog("info", "event\n" .. e:serialize("xml"));
+         all_events = all_events + 1;
+        freeswitch.consoleLog("info", "all_events: " .. all_events .. "\n")
+        
+        event_name = e:getHeader("Event-Name") or ""
+                debug.info(event_name)
+        event_subclass = e:getHeader("Event-Subclass") or ""
+        
+        if (event_name == "CHANNEL_HANGUP") then
+ -- freeswitch.consoleLog("info", "event\n" .. e:serialize("xml"));
+
+                local dialer_var = e:getHeader("variable_dialer_var")
+                if (dialer_var == dialer_value) then
+                        dest = e:getHeader("Caller-Destination-Number")
+                        cause = e:getHeader("Hangup-Cause")
+                        log(dest .. " " .. cause)
+                        if (new_call() == 0) then break end
+                end
+                
+        elseif (event_name == "CHANNEL_ORIGINATE") then
+                local dialer_var = e:getHeader("variable_dialer_var")                
+        end
+        
+        if (event_name == "CUSTOM" and event_subclass == "lua::stopscript") then
+         freeswitch.consoleLog("info", "-----lua Script [" .. argv[0] .. "]---Exiting------\n")
+         break
+        end
+
+        
+end
+
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribsevenluadialerluafromrev17079freeswitchtrunkcontribsevenluadialerlua"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/contrib/seven/lua/dialer.lua (from rev 17079, freeswitch/trunk/contrib/seven/lua/dialer.lua) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/seven/lua/dialer.lua         (rev 0)
+++ freeswitch/branches/rupa_limit/contrib/seven/lua/dialer.lua        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,58 @@
</span><ins>+--[[
+        Author: Seven du (seven .. at .. idapted.com)
+        Licence: MIT
+        WWW: http://www.idapted.com
+        
+        FreeSWITCH dialer
+        Dial numbers in <number_file_name> and playback a sound once a time
+        
+        Usage: luarun dialer.lua
+        
+        See also:
+        http://www.dujinfang.com/past/2010/3/13/yi-ge-zai-freeswitchzhong-wai-hu-de-luajiao-ben/
+]]
+
+prefix = "{ignore_early_media=true}sofia/gateway/cnc/"
+prefix = "{ignore_early_media=true}user/"
+number_file_name = "/usr/local/freeswitch/scripts/number.txt"
+file_to_play = "/usr/local/freeswitch/sounds/custom/8000/sound.wav"
+log_file_name = "/usr/local/freeswitch/log/dialer_log.txt"
+
+
+function debug(s)
+        freeswitch.consoleLog("notice", s .. "\n")
+end
+
+function call_number(number)
+        dial_string = prefix .. tostring(number);
+        
+        debug("calling " .. dial_string);
+        session = freeswitch.Session(dial_string);
+
+        if session:ready() then
+                session:sleep(1000)
+                session:streamFile(file_to_play)
+                session:hangup()
+        end
+        -- waiting for hangup
+        while session:ready() do
+                debug("waiting for hangup " .. number)
+                session:sleep(1000)
+        end
+
+        return session:hangupCause()
+end
+        
+        
+number_file = io.open(number_file_name, "r")
+log_file = io.open(log_file_name, "a+")
+
+while true do
+
+        line = number_file:read("*line")
+        if line == "" or line == nil then break end
+
+        hangup_cause = call_number(line)
+        log_file:write(os.date("%H:%M:%S ") .. line .. " " .. hangup_cause .. "\n")
+end
+
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitcontribsevenluagateway_reportlua"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/contrib/seven/lua/gateway_report.lua (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/contrib/seven/lua/gateway_report.lua        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/contrib/seven/lua/gateway_report.lua        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -1,7 +1,9 @@
</span><del>---- Lua gateway report - Monitor and report gateway status by catching events
---- Seven AT idapted.com
-
</del><span class="cx"> --[[
</span><ins>+        Author: Seven du (seven .. at .. idapted.com)
+        Licence: MIT
+        WWW: http://www.idapted.com
+        
+
</ins><span class="cx"> Listen to FreeSWITCH events and report to
</span><span class="cx">         1) fire an event
</span><span class="cx">         2) post to a http server
</span><span class="lines">@@ -55,11 +57,11 @@
</span><span class="cx"> <Sip-Gateway-Sample-Time2>10</Sip-Gateway-Sample-Time2>
</span><span class="cx"> </headers>
</span><span class="cx"> </event>
</span><ins>+
+        A Chinese explaination is available at:
+http://www.dujinfang.com/past/2010/3/13/zai-freeswitchzhong-zhi-xing-chang-qi-yun-xing-de-qian-ru-shi-jiao-ben-luayu-yan-li-zi/
</ins><span class="cx"> ]]
</span><span class="cx">
</span><del>--- Standard FreeSWITCH doesn't has argv[0]
-argv[0] = "gateway_report.lua"
-
</del><span class="cx"> script_name = argv[0]
</span><span class="cx"> report_type = argv[1] or "http_post"
</span><span class="cx">
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitdebianfreeswitchconffiles"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/debian/freeswitch.conffiles (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/debian/freeswitch.conffiles        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/debian/freeswitch.conffiles        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -1,91 +1,96 @@
</span><del>-/opt/freeswitch/conf/vars.xml
-/opt/freeswitch/conf/mime.types
-/opt/freeswitch/conf/web-vm.tpl
-/opt/freeswitch/conf/tetris.ttml
-/opt/freeswitch/conf/fur_elise.ttml
-/opt/freeswitch/conf/voicemail.tpl
-/opt/freeswitch/conf/freeswitch.xml
-/opt/freeswitch/conf/extensions.conf
-/opt/freeswitch/conf/zt.conf
-/opt/freeswitch/conf/tones.conf
-/opt/freeswitch/conf/pika.conf
-/opt/freeswitch/conf/notify-voicemail.tpl
-/opt/freeswitch/conf/m3ua.conf
-/opt/freeswitch/conf/dialplan/public.xml
-/opt/freeswitch/conf/dialplan/default.xml
-/opt/freeswitch/conf/dialplan/features.xml
</del><ins>+/opt/freeswitch/conf/autoload_configs/acl.conf.xml
+/opt/freeswitch/conf/autoload_configs/alsa.conf.xml
+/opt/freeswitch/conf/autoload_configs/cdr_csv.conf.xml
+/opt/freeswitch/conf/autoload_configs/cidlookup.conf.xml
+/opt/freeswitch/conf/autoload_configs/conference.conf.xml
+/opt/freeswitch/conf/autoload_configs/console.conf.xml
+/opt/freeswitch/conf/autoload_configs/dialplan_directory.conf.xml
+/opt/freeswitch/conf/autoload_configs/dingaling.conf.xml
+/opt/freeswitch/conf/autoload_configs/directory.conf.xml
+/opt/freeswitch/conf/autoload_configs/easyroute.conf.xml
+/opt/freeswitch/conf/autoload_configs/enum.conf.xml
+/opt/freeswitch/conf/autoload_configs/event_multicast.conf.xml
+/opt/freeswitch/conf/autoload_configs/event_socket.conf.xml
+/opt/freeswitch/conf/autoload_configs/fax.conf.xml
+/opt/freeswitch/conf/autoload_configs/fifo.conf.xml
+/opt/freeswitch/conf/autoload_configs/ivr.conf.xml
+/opt/freeswitch/conf/autoload_configs/java.conf.xml
+/opt/freeswitch/conf/autoload_configs/lcr.conf.xml
+/opt/freeswitch/conf/autoload_configs/limit.conf.xml
+/opt/freeswitch/conf/autoload_configs/local_stream.conf.xml
+/opt/freeswitch/conf/autoload_configs/logfile.conf.xml
+/opt/freeswitch/conf/autoload_configs/memcache.conf.xml
+/opt/freeswitch/conf/autoload_configs/modules.conf.xml
+/opt/freeswitch/conf/autoload_configs/nibblebill.conf.xml
+/opt/freeswitch/conf/autoload_configs/opal.conf.xml
+/opt/freeswitch/conf/autoload_configs/pocketsphinx.conf.xml
+/opt/freeswitch/conf/autoload_configs/portaudio.conf.xml
+/opt/freeswitch/conf/autoload_configs/post_load_modules.conf.xml
+/opt/freeswitch/conf/autoload_configs/python.conf.xml
+/opt/freeswitch/conf/autoload_configs/rss.conf.xml
+/opt/freeswitch/conf/autoload_configs/shout.conf.xml
+/opt/freeswitch/conf/autoload_configs/skinny.conf.xml
+/opt/freeswitch/conf/autoload_configs/sofia.conf.xml
+/opt/freeswitch/conf/autoload_configs/switch.conf.xml
+/opt/freeswitch/conf/autoload_configs/syslog.conf.xml
+/opt/freeswitch/conf/autoload_configs/timezones.conf.xml
+/opt/freeswitch/conf/autoload_configs/tts_commandline.conf.xml
+/opt/freeswitch/conf/autoload_configs/unicall.conf.xml
+/opt/freeswitch/conf/autoload_configs/voicemail.conf.xml
+/opt/freeswitch/conf/autoload_configs/xml_cdr.conf.xml
+/opt/freeswitch/conf/autoload_configs/xml_curl.conf.xml
+/opt/freeswitch/conf/autoload_configs/xml_rpc.conf.xml
+/opt/freeswitch/conf/autoload_configs/zeroconf.conf.xml
</ins><span class="cx"> /opt/freeswitch/conf/dialplan/default/00_pizza_demo.xml
</span><span class="cx"> /opt/freeswitch/conf/dialplan/default/01_example.com.xml
</span><span class="cx"> /opt/freeswitch/conf/dialplan/default/99999_enum.xml
</span><ins>+/opt/freeswitch/conf/dialplan/default.xml
+/opt/freeswitch/conf/dialplan/features.xml
</ins><span class="cx"> /opt/freeswitch/conf/dialplan/public/00_inbound_did.xml
</span><del>-/opt/freeswitch/conf/sip_profiles/external.xml
-/opt/freeswitch/conf/sip_profiles/internal/example.xml
-/opt/freeswitch/conf/sip_profiles/internal.xml
-/opt/freeswitch/conf/sip_profiles/internal-ipv6.xml
-/opt/freeswitch/conf/sip_profiles/external/example.xml
-/opt/freeswitch/conf/directory/default/1007.xml
</del><ins>+/opt/freeswitch/conf/dialplan/public.xml
+/opt/freeswitch/conf/directory/default/1000.xml
</ins><span class="cx"> /opt/freeswitch/conf/directory/default/1001.xml
</span><del>-/opt/freeswitch/conf/directory/default/1008.xml
-/opt/freeswitch/conf/directory/default/1019.xml
</del><span class="cx"> /opt/freeswitch/conf/directory/default/1002.xml
</span><del>-/opt/freeswitch/conf/directory/default/1011.xml
-/opt/freeswitch/conf/directory/default/1014.xml
</del><span class="cx"> /opt/freeswitch/conf/directory/default/1003.xml
</span><del>-/opt/freeswitch/conf/directory/default/brian.xml
-/opt/freeswitch/conf/directory/default/1013.xml
-/opt/freeswitch/conf/directory/default/1000.xml
</del><ins>+/opt/freeswitch/conf/directory/default/1004.xml
+/opt/freeswitch/conf/directory/default/1005.xml
+/opt/freeswitch/conf/directory/default/1006.xml
+/opt/freeswitch/conf/directory/default/1007.xml
+/opt/freeswitch/conf/directory/default/1008.xml
</ins><span class="cx"> /opt/freeswitch/conf/directory/default/1009.xml
</span><del>-/opt/freeswitch/conf/directory/default/1005.xml
</del><span class="cx"> /opt/freeswitch/conf/directory/default/1010.xml
</span><ins>+/opt/freeswitch/conf/directory/default/1011.xml
+/opt/freeswitch/conf/directory/default/1012.xml
+/opt/freeswitch/conf/directory/default/1013.xml
+/opt/freeswitch/conf/directory/default/1014.xml
</ins><span class="cx"> /opt/freeswitch/conf/directory/default/1015.xml
</span><del>-/opt/freeswitch/conf/directory/default/1004.xml
</del><ins>+/opt/freeswitch/conf/directory/default/1016.xml
</ins><span class="cx"> /opt/freeswitch/conf/directory/default/1017.xml
</span><ins>+/opt/freeswitch/conf/directory/default/1018.xml
+/opt/freeswitch/conf/directory/default/1019.xml
+/opt/freeswitch/conf/directory/default/brian.xml
</ins><span class="cx"> /opt/freeswitch/conf/directory/default/default.xml
</span><del>-/opt/freeswitch/conf/directory/default/1018.xml
-/opt/freeswitch/conf/directory/default/1006.xml
-/opt/freeswitch/conf/directory/default/1016.xml
-/opt/freeswitch/conf/directory/default/1012.xml
</del><span class="cx"> /opt/freeswitch/conf/directory/default/example.com.xml
</span><span class="cx"> /opt/freeswitch/conf/directory/default.xml
</span><del>-/opt/freeswitch/conf/autoload_configs/ivr.conf.xml
-/opt/freeswitch/conf/autoload_configs/shout.conf.xml
-/opt/freeswitch/conf/autoload_configs/skinny.conf.xml
-/opt/freeswitch/conf/autoload_configs/voicemail.conf.xml
-/opt/freeswitch/conf/autoload_configs/switch.conf.xml
-/opt/freeswitch/conf/autoload_configs/syslog.conf.xml
-/opt/freeswitch/conf/autoload_configs/zeroconf.conf.xml
-/opt/freeswitch/conf/autoload_configs/alsa.conf.xml
-/opt/freeswitch/conf/autoload_configs/portaudio.conf.xml
-/opt/freeswitch/conf/autoload_configs/xml_curl.conf.xml
-/opt/freeswitch/conf/autoload_configs/enum.conf.xml
-/opt/freeswitch/conf/autoload_configs/logfile.conf.xml
-/opt/freeswitch/conf/autoload_configs/limit.conf.xml
-/opt/freeswitch/conf/autoload_configs/java.conf.xml
-/opt/freeswitch/conf/autoload_configs/sofia.conf.xml
-/opt/freeswitch/conf/autoload_configs/event_multicast.conf.xml
-/opt/freeswitch/conf/autoload_configs/rss.conf.xml
-/opt/freeswitch/conf/autoload_configs/xml_rpc.conf.xml
-/opt/freeswitch/conf/autoload_configs/local_stream.conf.xml
-/opt/freeswitch/conf/autoload_configs/conference.conf.xml
-/opt/freeswitch/conf/autoload_configs/event_socket.conf.xml
-/opt/freeswitch/conf/autoload_configs/modules.conf.xml
-/opt/freeswitch/conf/autoload_configs/dingaling.conf.xml
-/opt/freeswitch/conf/autoload_configs/post_load_modules.conf.xml
-/opt/freeswitch/conf/autoload_configs/pocketsphinx.conf.xml
-/opt/freeswitch/conf/autoload_configs/xml_cdr.conf.xml
-/opt/freeswitch/conf/autoload_configs/cdr_csv.conf.xml
-/opt/freeswitch/conf/autoload_configs/dialplan_directory.conf.xml
-/opt/freeswitch/conf/autoload_configs/console.conf.xml
-/opt/freeswitch/conf/autoload_configs/timezones.conf.xml
-/opt/freeswitch/conf/autoload_configs/fax.conf.xml
-/opt/freeswitch/conf/autoload_configs/acl.conf.xml
-/opt/freeswitch/conf/autoload_configs/lcr.conf.xml
-/opt/freeswitch/conf/autoload_configs/opal.conf.xml
-/opt/freeswitch/conf/autoload_configs/easyroute.conf.xml
-/opt/freeswitch/conf/autoload_configs/memcache.conf.xml
-/opt/freeswitch/conf/autoload_configs/unicall.conf.xml
-/opt/freeswitch/conf/autoload_configs/python.conf.xml
-/opt/freeswitch/conf/autoload_configs/tts_commandline.conf.xml
</del><ins>+/opt/freeswitch/conf/extensions.conf
+/opt/freeswitch/conf/freeswitch.xml
+/opt/freeswitch/conf/fur_elise.ttml
+/opt/freeswitch/conf/ivr_menus/demo_ivr.xml
+/opt/freeswitch/conf/jingle_profiles/client.xml
</ins><span class="cx"> /opt/freeswitch/conf/jingle_profiles/server.xml
</span><del>-/opt/freeswitch/conf/jingle_profiles/client.xml
-/opt/freeswitch/conf/ivr_menus/demo_ivr.xml
</del><ins>+/opt/freeswitch/conf/m3ua.conf
+/opt/freeswitch/conf/mime.types
+/opt/freeswitch/conf/notify-voicemail.tpl
+/opt/freeswitch/conf/pika.conf
+/opt/freeswitch/conf/sip_profiles/external/example.xml
+/opt/freeswitch/conf/sip_profiles/external.xml
+/opt/freeswitch/conf/sip_profiles/internal/example.xml
+/opt/freeswitch/conf/sip_profiles/internal-ipv6.xml
+/opt/freeswitch/conf/sip_profiles/internal.xml
+/opt/freeswitch/conf/tetris.ttml
+/opt/freeswitch/conf/tones.conf
+/opt/freeswitch/conf/vars.xml
+/opt/freeswitch/conf/voicemail.tpl
+/opt/freeswitch/conf/web-vm.tpl
+/opt/freeswitch/conf/zt.conf
+
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitdebianfreeswitchinit"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/debian/freeswitch.init (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/debian/freeswitch.init        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/debian/freeswitch.init        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -20,7 +20,7 @@
</span><span class="cx"> NAME=freeswitch
</span><span class="cx"> DAEMON=/opt/freeswitch/bin/$NAME
</span><span class="cx"> USER=freeswitch
</span><del>-PIDFILE=/opt/freeswitch/log/$NAME.pid
</del><ins>+PIDFILE=/opt/freeswitch/run/$NAME.pid
</ins><span class="cx"> SCRIPTNAME=/etc/init.d/$NAME
</span><span class="cx"> WORKDIR=/opt/$NAME
</span><span class="cx">
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitdebianfreeswitchinstall"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/debian/freeswitch.install (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/debian/freeswitch.install        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/debian/freeswitch.install        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -1,51 +1,159 @@
</span><del>-opt/freeswitch/htdocs/*
</del><span class="cx"> opt/freeswitch/bin/freeswitch
</span><span class="cx"> opt/freeswitch/bin/fs_cli
</span><ins>+opt/freeswitch/bin/fs_ivrd
+opt/freeswitch/bin/fsxs
</ins><span class="cx"> opt/freeswitch/bin/gentls_cert
</span><del>-opt/freeswitch/bin/fsxs
-opt/freeswitch/bin/fs_ivrd
</del><span class="cx"> opt/freeswitch/bin/scripts/*
</span><ins>+opt/freeswitch/conf/autoload_configs/acl.conf.xml
+opt/freeswitch/conf/autoload_configs/alsa.conf.xml
+opt/freeswitch/conf/autoload_configs/cdr_csv.conf.xml
+opt/freeswitch/conf/autoload_configs/cidlookup.conf.xml
+opt/freeswitch/conf/autoload_configs/conference.conf.xml
+opt/freeswitch/conf/autoload_configs/console.conf.xml
+opt/freeswitch/conf/autoload_configs/dialplan_directory.conf.xml
+opt/freeswitch/conf/autoload_configs/dingaling.conf.xml
+opt/freeswitch/conf/autoload_configs/directory.conf.xml
+opt/freeswitch/conf/autoload_configs/easyroute.conf.xml
+opt/freeswitch/conf/autoload_configs/enum.conf.xml
+opt/freeswitch/conf/autoload_configs/event_multicast.conf.xml
+opt/freeswitch/conf/autoload_configs/event_socket.conf.xml
+opt/freeswitch/conf/autoload_configs/fax.conf.xml
+opt/freeswitch/conf/autoload_configs/fifo.conf.xml
+opt/freeswitch/conf/autoload_configs/ivr.conf.xml
+opt/freeswitch/conf/autoload_configs/java.conf.xml
+opt/freeswitch/conf/autoload_configs/lcr.conf.xml
+opt/freeswitch/conf/autoload_configs/limit.conf.xml
+opt/freeswitch/conf/autoload_configs/local_stream.conf.xml
+opt/freeswitch/conf/autoload_configs/logfile.conf.xml
+opt/freeswitch/conf/autoload_configs/memcache.conf.xml
+opt/freeswitch/conf/autoload_configs/modules.conf.xml
+opt/freeswitch/conf/autoload_configs/nibblebill.conf.xml
+opt/freeswitch/conf/autoload_configs/opal.conf.xml
+opt/freeswitch/conf/autoload_configs/openzap.conf.xml
+opt/freeswitch/conf/autoload_configs/pocketsphinx.conf.xml
+opt/freeswitch/conf/autoload_configs/portaudio.conf.xml
+opt/freeswitch/conf/autoload_configs/post_load_modules.conf.xml
+opt/freeswitch/conf/autoload_configs/python.conf.xml
+opt/freeswitch/conf/autoload_configs/rss.conf.xml
+opt/freeswitch/conf/autoload_configs/shout.conf.xml
+opt/freeswitch/conf/autoload_configs/skinny.conf.xml
+opt/freeswitch/conf/autoload_configs/sofia.conf.xml
+opt/freeswitch/conf/autoload_configs/switch.conf.xml
+opt/freeswitch/conf/autoload_configs/syslog.conf.xml
+opt/freeswitch/conf/autoload_configs/timezones.conf.xml
+opt/freeswitch/conf/autoload_configs/tts_commandline.conf.xml
+opt/freeswitch/conf/autoload_configs/unicall.conf.xml
+opt/freeswitch/conf/autoload_configs/voicemail.conf.xml
+opt/freeswitch/conf/autoload_configs/xml_cdr.conf.xml
+opt/freeswitch/conf/autoload_configs/xml_curl.conf.xml
+opt/freeswitch/conf/autoload_configs/xml_rpc.conf.xml
+opt/freeswitch/conf/autoload_configs/zeroconf.conf.xml
+opt/freeswitch/conf/dialplan/default/00_pizza_demo.xml
+opt/freeswitch/conf/dialplan/default/01_example.com.xml
+opt/freeswitch/conf/dialplan/default/99999_enum.xml
+opt/freeswitch/conf/dialplan/default.xml
+opt/freeswitch/conf/dialplan/features.xml
+opt/freeswitch/conf/dialplan/public/00_inbound_did.xml
+opt/freeswitch/conf/dialplan/public.xml
+opt/freeswitch/conf/directory/default/1000.xml
+opt/freeswitch/conf/directory/default/1001.xml
+opt/freeswitch/conf/directory/default/1002.xml
+opt/freeswitch/conf/directory/default/1003.xml
+opt/freeswitch/conf/directory/default/1004.xml
+opt/freeswitch/conf/directory/default/1005.xml
+opt/freeswitch/conf/directory/default/1006.xml
+opt/freeswitch/conf/directory/default/1007.xml
+opt/freeswitch/conf/directory/default/1008.xml
+opt/freeswitch/conf/directory/default/1009.xml
+opt/freeswitch/conf/directory/default/1010.xml
+opt/freeswitch/conf/directory/default/1011.xml
+opt/freeswitch/conf/directory/default/1012.xml
+opt/freeswitch/conf/directory/default/1013.xml
+opt/freeswitch/conf/directory/default/1014.xml
+opt/freeswitch/conf/directory/default/1015.xml
+opt/freeswitch/conf/directory/default/1016.xml
+opt/freeswitch/conf/directory/default/1017.xml
+opt/freeswitch/conf/directory/default/1018.xml
+opt/freeswitch/conf/directory/default/1019.xml
+opt/freeswitch/conf/directory/default/brian.xml
+opt/freeswitch/conf/directory/default/default.xml
+opt/freeswitch/conf/directory/default/example.com.xml
+opt/freeswitch/conf/directory/default.xml
+opt/freeswitch/conf/extensions.conf
+opt/freeswitch/conf/freeswitch.xml
+opt/freeswitch/conf/fur_elise.ttml
+opt/freeswitch/conf/ivr_menus/demo_ivr.xml
+opt/freeswitch/conf/jingle_profiles/client.xml
+opt/freeswitch/conf/jingle_profiles/server.xml
+opt/freeswitch/conf/m3ua.conf
+opt/freeswitch/conf/mime.types
+opt/freeswitch/conf/notify-voicemail.tpl
+opt/freeswitch/conf/openzap.conf
+opt/freeswitch/conf/pika.conf
+opt/freeswitch/conf/sip_profiles/external/example.xml
+opt/freeswitch/conf/sip_profiles/external.xml
+opt/freeswitch/conf/sip_profiles/internal/example.xml
+opt/freeswitch/conf/sip_profiles/internal-ipv6.xml
+opt/freeswitch/conf/sip_profiles/internal.xml
+opt/freeswitch/conf/tetris.ttml
+opt/freeswitch/conf/tones.conf
+opt/freeswitch/conf/vars.xml
+opt/freeswitch/conf/voicemail.tpl
+opt/freeswitch/conf/wanpipe.conf
+opt/freeswitch/conf/web-vm.tpl
+opt/freeswitch/conf/zt.conf
+opt/freeswitch/htdocs/*
</ins><span class="cx"> opt/freeswitch/lib/libfreeswitch*.so*
</span><span class="cx"> opt/freeswitch/lib/libopenzap*.so*
</span><ins>+opt/freeswitch/mod/mod_cdr_csv.so*
+opt/freeswitch/mod/mod_celt.so*
</ins><span class="cx"> opt/freeswitch/mod/mod_cidlookup.so*
</span><ins>+opt/freeswitch/mod/mod_cluechoo.so*
+opt/freeswitch/mod/mod_commands.so*
+opt/freeswitch/mod/mod_conference.so*
+opt/freeswitch/mod/mod_console.so*
</ins><span class="cx"> opt/freeswitch/mod/mod_curl.so*
</span><ins>+opt/freeswitch/mod/mod_dialplan*.so*
+opt/freeswitch/mod/mod_dingaling.so*
+opt/freeswitch/mod/mod_directory.so*
+opt/freeswitch/mod/mod_dptools.so*
</ins><span class="cx"> opt/freeswitch/mod/mod_easyroute.so*
</span><ins>+opt/freeswitch/mod/mod_enum.so*
+opt/freeswitch/mod/mod_esf.so*
+opt/freeswitch/mod/mod_event_*.so*
+opt/freeswitch/mod/mod_expr.so*
+opt/freeswitch/mod/mod_fax.so*
+opt/freeswitch/mod/mod_fifo.so*
+opt/freeswitch/mod/mod_fsv.so*
+opt/freeswitch/mod/mod_h26x.so*
+opt/freeswitch/mod/mod_ilbc.so*
</ins><span class="cx"> opt/freeswitch/mod/mod_lcr.so*
</span><ins>+opt/freeswitch/mod/mod_limit.so*
+opt/freeswitch/mod/mod_local_stream.so*
+opt/freeswitch/mod/mod_logfile.so*
+opt/freeswitch/mod/mod_loopback.so*
+opt/freeswitch/mod/mod_native_file.so*
</ins><span class="cx"> opt/freeswitch/mod/mod_nibblebill.so*
</span><del>-opt/freeswitch/mod/mod_skypiax.so*
</del><ins>+opt/freeswitch/mod/mod_openzap.so
+opt/freeswitch/mod/mod_portaudio.so*
+opt/freeswitch/mod/mod_rss.so*
+opt/freeswitch/mod/mod_shout.so*
+opt/freeswitch/mod/mod_siren.so*
+opt/freeswitch/mod/mod_skypopen.so*
+opt/freeswitch/mod/mod_sndfile.so*
</ins><span class="cx"> opt/freeswitch/mod/mod_snom.so*
</span><ins>+opt/freeswitch/mod/mod_sofia.so*
+opt/freeswitch/mod/mod_speex.so*
+opt/freeswitch/mod/mod_speex.so*
</ins><span class="cx"> opt/freeswitch/mod/mod_spy.so*
</span><ins>+opt/freeswitch/mod/mod_syslog.so*
+opt/freeswitch/mod/mod_tone_stream.so*
+opt/freeswitch/mod/mod_tts_commandline.so*
+opt/freeswitch/mod/mod_valet_parking.so*
</ins><span class="cx"> opt/freeswitch/mod/mod_vmd.so*
</span><del>-opt/freeswitch/mod/mod_shout.so*
-opt/freeswitch/mod/mod_cdr_csv.so*
-opt/freeswitch/mod/mod_console.so*
-opt/freeswitch/mod/mod_expr.so*
-opt/freeswitch/mod/mod_rss.so*
-opt/freeswitch/mod/mod_h26x.so*
</del><span class="cx"> opt/freeswitch/mod/mod_voicemail.so*
</span><del>-opt/freeswitch/mod/mod_limit.so*
-opt/freeswitch/mod/mod_ilbc.so*
-opt/freeswitch/mod/mod_speex.so*
-opt/freeswitch/mod/mod_siren.so*
-opt/freeswitch/mod/mod_celt.so*
-opt/freeswitch/mod/mod_esf.so*
-opt/freeswitch/mod/mod_logfile.so*
-opt/freeswitch/mod/mod_syslog.so*
-opt/freeswitch/mod/mod_commands.so*
-opt/freeswitch/mod/mod_conference.so*
-opt/freeswitch/mod/mod_dptools.so*
-opt/freeswitch/mod/mod_enum.so*
-opt/freeswitch/mod/mod_fifo.so*
</del><span class="cx"> opt/freeswitch/mod/mod_voipcodecs.so*
</span><del>-opt/freeswitch/mod/mod_speex.so*
-opt/freeswitch/mod/mod_dialplan*.so*
-opt/freeswitch/mod/mod_dingaling.so*
-opt/freeswitch/mod/mod_portaudio.so*
-opt/freeswitch/mod/mod_sofia.so*
-opt/freeswitch/mod/mod_openzap.so
-opt/freeswitch/mod/mod_directory.so*
-opt/freeswitch/mod/mod_valet_parking.so*
-opt/freeswitch/mod/mod_cluechoo.so*
</del><ins>+opt/freeswitch/mod/mod_xml_*.so*
</ins><span class="cx"> opt/freeswitch/mod/ozmod_analog_em.so*
</span><span class="cx"> opt/freeswitch/mod/ozmod_analog.so*
</span><span class="cx"> opt/freeswitch/mod/ozmod_isdn.so*
</span><span class="lines">@@ -53,110 +161,4 @@
</span><span class="cx"> opt/freeswitch/mod/ozmod_ss7_boost.so*
</span><span class="cx"> opt/freeswitch/mod/ozmod_wanpipe.so*
</span><span class="cx"> opt/freeswitch/mod/ozmod_zt.so*
</span><del>-opt/freeswitch/mod/mod_event_*.so*
-opt/freeswitch/mod/mod_native_file.so*
-opt/freeswitch/mod/mod_sndfile.so*
-opt/freeswitch/mod/mod_local_stream.so*
-opt/freeswitch/mod/mod_xml_*.so*
-opt/freeswitch/mod/mod_fsv.so*
-opt/freeswitch/mod/mod_tone_stream.so*
-opt/freeswitch/mod/mod_fax.so*
-opt/freeswitch/mod/mod_loopback.so*
-opt/freeswitch/mod/mod_tts_commandline.so*
-opt/freeswitch/conf/vars.xml
-opt/freeswitch/conf/mime.types
-opt/freeswitch/conf/web-vm.tpl
-opt/freeswitch/conf/tetris.ttml
-opt/freeswitch/conf/fur_elise.ttml
-opt/freeswitch/conf/openzap.conf
-opt/freeswitch/conf/wanpipe.conf
-opt/freeswitch/conf/zt.conf
-opt/freeswitch/conf/tones.conf
-opt/freeswitch/conf/pika.conf
-opt/freeswitch/conf/notify-voicemail.tpl
-opt/freeswitch/conf/m3ua.conf
-opt/freeswitch/conf/dialplan/public.xml
-opt/freeswitch/conf/dialplan/default.xml
-opt/freeswitch/conf/dialplan/features.xml
-opt/freeswitch/conf/dialplan/default/00_pizza_demo.xml
-opt/freeswitch/conf/dialplan/default/01_example.com.xml
-opt/freeswitch/conf/dialplan/default/99999_enum.xml
-opt/freeswitch/conf/dialplan/public/00_inbound_did.xml
-opt/freeswitch/conf/sip_profiles/external.xml
-opt/freeswitch/conf/sip_profiles/internal/example.xml
-opt/freeswitch/conf/sip_profiles/internal.xml
-opt/freeswitch/conf/sip_profiles/internal-ipv6.xml
-opt/freeswitch/conf/sip_profiles/external/example.xml
-opt/freeswitch/conf/directory/default/1007.xml
-opt/freeswitch/conf/directory/default/1001.xml
-opt/freeswitch/conf/directory/default/1008.xml
-opt/freeswitch/conf/directory/default/1019.xml
-opt/freeswitch/conf/directory/default/1002.xml
-opt/freeswitch/conf/directory/default/1011.xml
-opt/freeswitch/conf/directory/default/1014.xml
-opt/freeswitch/conf/directory/default/1003.xml
-opt/freeswitch/conf/directory/default/brian.xml
-opt/freeswitch/conf/directory/default/1013.xml
-opt/freeswitch/conf/directory/default/1000.xml
-opt/freeswitch/conf/directory/default/1009.xml
-opt/freeswitch/conf/directory/default/1005.xml
-opt/freeswitch/conf/directory/default/1010.xml
-opt/freeswitch/conf/directory/default/1015.xml
-opt/freeswitch/conf/directory/default/1004.xml
-opt/freeswitch/conf/directory/default/1017.xml
-opt/freeswitch/conf/directory/default/default.xml
-opt/freeswitch/conf/directory/default/1018.xml
-opt/freeswitch/conf/directory/default/1006.xml
-opt/freeswitch/conf/directory/default/1016.xml
-opt/freeswitch/conf/directory/default/1012.xml
-opt/freeswitch/conf/directory/default/example.com.xml
-opt/freeswitch/conf/directory/default.xml
-opt/freeswitch/conf/voicemail.tpl
-opt/freeswitch/conf/freeswitch.xml
-opt/freeswitch/conf/extensions.conf
-opt/freeswitch/conf/jingle_profiles/server.xml
-opt/freeswitch/conf/jingle_profiles/client.xml
-opt/freeswitch/conf/autoload_configs/skinny.conf.xml
-opt/freeswitch/conf/autoload_configs/openzap.conf.xml
-opt/freeswitch/conf/autoload_configs/ivr.conf.xml
-opt/freeswitch/conf/autoload_configs/shout.conf.xml
-opt/freeswitch/conf/autoload_configs/voicemail.conf.xml
-opt/freeswitch/conf/autoload_configs/switch.conf.xml
-opt/freeswitch/conf/autoload_configs/syslog.conf.xml
-opt/freeswitch/conf/autoload_configs/zeroconf.conf.xml
-opt/freeswitch/conf/autoload_configs/alsa.conf.xml
-opt/freeswitch/conf/autoload_configs/portaudio.conf.xml
-opt/freeswitch/conf/autoload_configs/xml_curl.conf.xml
-opt/freeswitch/conf/autoload_configs/enum.conf.xml
-opt/freeswitch/conf/autoload_configs/logfile.conf.xml
-opt/freeswitch/conf/autoload_configs/limit.conf.xml
-opt/freeswitch/conf/autoload_configs/java.conf.xml
-opt/freeswitch/conf/autoload_configs/sofia.conf.xml
-opt/freeswitch/conf/autoload_configs/event_multicast.conf.xml
-opt/freeswitch/conf/autoload_configs/rss.conf.xml
-opt/freeswitch/conf/autoload_configs/xml_rpc.conf.xml
-opt/freeswitch/conf/autoload_configs/local_stream.conf.xml
-opt/freeswitch/conf/autoload_configs/conference.conf.xml
-opt/freeswitch/conf/autoload_configs/event_socket.conf.xml
-opt/freeswitch/conf/autoload_configs/modules.conf.xml
-opt/freeswitch/conf/autoload_configs/dingaling.conf.xml
-opt/freeswitch/conf/autoload_configs/post_load_modules.conf.xml
-opt/freeswitch/conf/autoload_configs/pocketsphinx.conf.xml
-opt/freeswitch/conf/autoload_configs/xml_cdr.conf.xml
-opt/freeswitch/conf/autoload_configs/cdr_csv.conf.xml
-opt/freeswitch/conf/autoload_configs/dialplan_directory.conf.xml
-opt/freeswitch/conf/autoload_configs/console.conf.xml
-opt/freeswitch/conf/autoload_configs/timezones.conf.xml
-opt/freeswitch/conf/autoload_configs/fax.conf.xml
-opt/freeswitch/conf/autoload_configs/fifo.conf.xml
-opt/freeswitch/conf/autoload_configs/acl.conf.xml
-opt/freeswitch/conf/autoload_configs/lcr.conf.xml
-opt/freeswitch/conf/autoload_configs/opal.conf.xml
-opt/freeswitch/conf/autoload_configs/easyroute.conf.xml
-opt/freeswitch/conf/autoload_configs/memcache.conf.xml
-opt/freeswitch/conf/autoload_configs/unicall.conf.xml
-opt/freeswitch/conf/autoload_configs/python.conf.xml
-opt/freeswitch/conf/autoload_configs/cidlookup.conf.xml
-opt/freeswitch/conf/autoload_configs/nibblebill.conf.xml
-opt/freeswitch/conf/autoload_configs/tts_commandline.conf.xml
-opt/freeswitch/conf/ivr_menus/demo_ivr.xml
</del><ins>+
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitdebianrules"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/debian/rules (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/debian/rules        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/debian/rules        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -21,7 +21,7 @@
</span><span class="cx"> export DIRECTORIES_MODULES=
</span><span class="cx"> export DOTNET_MODULES=
</span><span class="cx"> export ENDPOINTS_MODULES=endpoints/mod_dingaling endpoints/mod_portaudio endpoints/mod_sofia \
</span><del>-                         endpoints/mod_loopback ../../libs/openzap/mod_openzap endpoints/mod_skypiax
</del><ins>+                         endpoints/mod_loopback ../../libs/openzap/mod_openzap endpoints/mod_skypopen
</ins><span class="cx"> export EVENT_HANDLERS_MODULES=event_handlers/mod_event_multicast event_handlers/mod_event_socket event_handlers/mod_cdr_csv
</span><span class="cx"> export FORMATS_MODULES=formats/mod_local_stream formats/mod_native_file formats/mod_sndfile formats/mod_tone_stream formats/mod_shout
</span><span class="cx"> export LANGUAGES_MODULES=languages/mod_spidermonkey languages/mod_perl languages/mod_lua
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitdocsChangeLog"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/docs/ChangeLog (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/docs/ChangeLog        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/docs/ChangeLog        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -64,6 +64,7 @@
</span><span class="cx">         config: Add confirm-key & -macro, tts-engine & -voice, confirm-attempts attributes, extra comments to ivr.conf.xml (r:15929)
</span><span class="cx">         config: Allow specifying auth-scheme in config (r:16350/MDXMLINT-56)
</span><span class="cx">         config: Improvements to french lang (FSCONFIG-18/r:16585)
</span><ins>+        config: Add new English sounds, sound prompts (r:16911)
</ins><span class="cx">         core: Add per-call logging (r:14509)
</span><span class="cx">         core: Fix IVR menu timeout when caller presses no digits (DP-4/r:14548)
</span><span class="cx">         core: re-factor node allocation and make a copy of userdata in case the session gets killed before the logger module gets the node (r:14555)
</span><span class="lines">@@ -231,6 +232,21 @@
</span><span class="cx">         core: add force_local_ip_v4 and force_local_ip_v6 global vars to override the core funcs to always discover the same ip (r:16801)
</span><span class="cx">         core: compromising on timing code, remove -vm and make it default, make new -heavy-timing for previous default, change tipping-point to work of count of active timers rather than sessions, this should statisfy the droves of 'I wish it worked like 1.0.4 people' (r:16853)
</span><span class="cx">         core: add events for bug start and stop (r:16858)
</span><ins>+        core: "I want my two dollars, er, CPU percentage points" (r:16869)
+        core: skip dialplan args with bad char sequences (r:16882)
+        core: fix mem leak in phrases (r:16884)
+        core: add an event to phrases to be used as possible variables in parsing (r:16885)
+        core: Fix infinite loop that consumes RAM on bridge group/ and enterprise originate (r:16913)
+        core: Fix crash in UniMRCP stream_write callback (r:16917)
+        core: Fix dore dump in mod_stun.c (MODENDP-297/r:16953)
+        core: add fsctl min_idle_cpu and min-idle-cpu feature to refuse calls after the system falls below a certain percentage of idle cpu (r:16962)
+        core: add record_fill_cng var (r:16964)
+        core: Remove proxy media flag on video calls when not in proxy media (FSRTP-12/r:16969)
+        core: improve group_confirm:
+                group_confirm_read_timeout=<ms>
+                group_confirm_file=<file>
+                group_confirm_error_file=<file>
+                group_confirm_key=<now can be one or more keys>
</ins><span class="cx">         docs: Add large Doxygen update (thanks Muhammed Shahzad) (r:14973)
</span><span class="cx">         docs: update es phrase file (MODAPP-317/r:15575)
</span><span class="cx">         embedded_languages: Prevent unloading of embedded languages modules (also fixes MODLANG-121/r:14491)
</span><span class="lines">@@ -258,6 +274,8 @@
</span><span class="cx">         libesl: fix filters (and please use JIRA instead of mailing list to report bugs) (r:16527)
</span><span class="cx">         libesl: Add new examples about use ESL managed. Inbound and Outbound modes were documented. (r:16541)
</span><span class="cx">         libesl: Fix possible ESL deadlock when waiting for non-existent data on socket (r:16721)
</span><ins>+        libesl: fix esl sendevent issue and change the sendEvent method to return the reply text like sendRecv etc (r:16921)
+        libesl: Add ESL Dispatch perl example (Thanks Jay Binks) (r:16922)
</ins><span class="cx">         libiksemel: fix iksemel build against gnutls 2.x (FSBUILD-219/r:16019)
</span><span class="cx">         libjs: pass ldflags to dso builds for libjs and nspr (r:16549)
</span><span class="cx">         libminiupnpc: make socket connection nonblocking to timeout to dead ip addrs (r:16611)
</span><span class="lines">@@ -331,12 +349,14 @@
</span><span class="cx">         mod_conference: mod_conference add conference_max_members channel variable that can be set on the first channel calling a conference to override the profiles max-members param (r:16597)
</span><span class="cx">         mod_conference: Change conf recording to start properly when 2nd person joins (MODAPP-398/r:16681)
</span><span class="cx">         mod_conference: Fix race condition that occasionally prevents conf "alone" sound from playing (MODAPP-400/r:16723)
</span><ins>+        mod_conference: Add 'you are now muted' prompt to deaf-mute conference option. (MODAPP-402/r:16908)
</ins><span class="cx">         mod_console: Improved tab completions, and more description usage informations (LOGGER-2/r:15103)
</span><span class="cx">         mod_curl: don't include response code in response data as it has its own var (MODAPP-369/r:15591)
</span><span class="cx">         mod_dialplan_xml: Fix anti-action not being supported for time-based conditions (DP-6/r:14901)
</span><span class="cx">         mod_dialplan_xml: add inline=true to actions to exec certain apps right away (also mod_dptools) (r:14906)
</span><span class="cx">         mod_dialplan_xml: Fix condition "week of year" calculation (DP-7/r:14968)
</span><span class="cx">         mod_dialplan_xml: Add holiday, week of year matching (Thanks Vagabond) (r:15721)
</span><ins>+        mod_dialplan_xml: Add optional loops attr to xml dp extension (thanks MOC) (r:16886)
</ins><span class="cx">         mod_dingaling: fix segfault on unload (MODENDP-243/r:14588)
</span><span class="cx">         mod_dingaling: Fix mod_dingaling does not reads profile information from configuration file at runtime till whole module is reloaded (LBDING-15/r:14917)
</span><span class="cx">         mod_directory: initial commit of real code (MODAPP-325/r:14981)
</span><span class="lines">@@ -370,6 +390,7 @@
</span><span class="cx">         mod_event_socket: only kill event socket on 100 consecutive errors (r:15671)
</span><span class="cx">         mod_event_socket: add userauth <user>@<domain>:<pass> to event_socket to auth against user directory uses esl-password esl-allowed-api esl-allowed-events and esl-allowed-log to control resource access (r:16160)
</span><span class="cx">         mod_fax: add spandsp_start_dtmf app to mod_fax (r:16727)
</span><ins>+        mod_fax: put tx page count if its TX (r:16940)
</ins><span class="cx">         mod_fifo: fix mod_fifo not honoring member_timeout (MODAPP-322/r:14552)
</span><span class="cx">         mod_fifo: add fifo_position var (r:14806)
</span><span class="cx">         mod_fifo: add API: fifo_add_outbound to add outbound members to a FIFO (r:14809)
</span><span class="lines">@@ -401,6 +422,7 @@
</span><span class="cx">         mod_limit: move mod_limit to cache_db and clean up vm legacy code (r:15677)
</span><span class="cx">         mod_limit: remove memcache version, it never worked right and is unworkable w/out a lot        of effort. will revisit when pluggable limit implemented (r:15908)
</span><span class="cx">         mod_limit: mod_limit: use = instead of like (r:16020)
</span><ins>+        mod_limit: Fix stack corruption when calling an empty call-group (MODAPP-407/r:16957)
</ins><span class="cx">         mod_local_stream: add chime-list to local_stream (r:14966)
</span><span class="cx">         mod_local_stream: Fix memory leak at mod_local_stream (MODFORM-36/r:15431)
</span><span class="cx">         mod_logfile: add uuid parameter to prefix log files by the call's uuid (r:15502)
</span><span class="lines">@@ -432,11 +454,15 @@
</span><span class="cx">         mod_python: Fix input callback with additional argument causes segfault (MODLANG-153/r:16536)
</span><span class="cx">         mod_radius_cdr: Fix Framed-IP-Address in start and stop having wrong IP (MODEVENT-52/r:15197)
</span><span class="cx">         mod_radius_cdr: Fix memory leak from large CPS test (MODEVENT-55/r:15198)
</span><ins>+        mod_say: first cut and say interface rework to include gender and put all args into a struct for easier future extension (r:16929)
</ins><span class="cx">         mod_say_es: Improve Spanish lang handling (MODAPP-317/r:15424)
</span><ins>+        mod_say_fr: mod_say_fr: Update for better french support. Will probably have more stuff from FSCORE-528 to complement this patch (r:16933)
</ins><span class="cx">         mod_say_hu: add mod_say_hu to trunk from csecket branch (r:15622)
</span><span class="cx">         mod_say_it: Fix italian pronounce in mod_say_it (MODAPP-362/r:15407)
</span><span class="cx">         mod_say_it: fix hundred pronunciation (MODAPP-367/r:15500)
</span><span class="cx">         mod_say_th: add mod_say_th (MODLANG-144/r:15592)
</span><ins>+        mod_silk: add new module FTW! (r:16945)
+        mod_skinny: add new module, add conf.xml file and add to modules.in (r:16863)
</ins><span class="cx">         mod_skel_codec: Add (thanks Moy) (MODCODEC-14/r:14959)
</span><span class="cx">         mod_skypiax: ubermegapatch, more stability, robustness, scalability. Memory leaks not yet investigated, we'll do next (r:14517)
</span><span class="cx">         mod_skypiax: more stability, no dangling channels, MODSKYPIAX-42, added 'sk list' statistics (thanks Seven Du) MODENDP-236 (r:14533)
</span><span class="lines">@@ -565,8 +591,13 @@
</span><span class="cx">         mod_sofia: allow domains with no dot in them as long as you specify a profile name (r:16739)
</span><span class="cx">         mod_sofia: add sofia_dig [xml] api func (r:16745)
</span><span class="cx">         mod_sofia: Allow rewrite of the o= line either by detault or as an option when proxy_media=true (MODSOFIA-50/r:16806)
</span><ins>+        mod_sofia: change default dtmf duration to 2000ms from 100ms (MODENDP-296/r:16888)
+        mod_sofia: move exception for iLBC hack to sdp up to sofia (see Moc if anything breaks) (r:16898)
+        mod_sofia: Rewrite of the s= line when proxy_media=true (Following MODSOFIA-50) (MODSOFIA-64/r:16919)
+        mod_sofia: Add expires to PRESENCE_PROBE event (MODENDP-298/r:16968)
</ins><span class="cx">         mod_spidermonkey: allow inline javascript, use a ~ as first script character (r:15598)
</span><span class="cx">         mod_spidermonkey: fix mod_spidermonkey on OSX 10.6 (lets see if this breaks any other platforms) (r:15650)
</span><ins>+        mod_spidermonkey: fix teletone issues in javascript (MODLANG-159/MODLANG-162/r:16909)
</ins><span class="cx">         mod_spidermonkey_core_db: Allow to bind value to parameters in prepared statements (MODLANG-139/r:15632)
</span><span class="cx">         mod_syslog: Enable mod_syslog to log to a specific facility (LOGGER-3/r:15162)
</span><span class="cx">         mod_syslog: mod_syslog does not respect facility setting, always logs to user.* (LOGGER-4/r:15447)
</span><span class="lines">@@ -590,6 +621,7 @@
</span><span class="cx">         mod_unimrcp: fix for loquendo MRCPv2 - destroy session instead of removing channel (r:15736)
</span><span class="cx">         mod_unimrcp: Added synthparams and recogparams to config so that default MRCP params can be defined for SPEAK and RECOGNIZE requests (r:16717)
</span><span class="cx">         mod_unimrcp: Added ssml-mime-type config param to deal with server that doesn't like application/ssml+xml (r:16720)
</span><ins>+        mod_unimrcp: Do not allow speech_channel_destroy() to return unless MRCP session has been terminated. Do not explicitly destroy mutexes, buffers, and condvars that are allocated off of pool. (r:16938)
</ins><span class="cx">         mod_valet_parking: add (r:15072)
</span><span class="cx">         mod_valet_parking: sense att xfer in valet (r:15126)
</span><span class="cx">         mod_valet_parking: add events and valet_info fsapi to valet parking (r:15136)
</span><span class="lines">@@ -630,6 +662,7 @@
</span><span class="cx">         mod_xml_curl: Allow choice between HTTP Basic and Digest authentication (r:15107)
</span><span class="cx">         mod_xml_curl: Don't use signals when a timeout is specified (XMLINT-13/r:15997)
</span><span class="cx">         mod_xml_rpc: Fix auth issue (XMLINT-54/r:14580)
</span><ins>+        mod_xml_rpc: Fix crash in xml_rpc web interface (XML-23/r:16941)
</ins><span class="cx">         phrases: Add Recursive phrases support (FSCORE-458/r:15101)
</span><span class="cx">         scripts: Fix Freeswitch gentls_cert script so the remove option works (FSBUILD-216/r:15965)
</span><span class="cx">         support: add fscore_pb script for dumping core info directly to pastebin (r:14904)
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibs"></a>
<div class="propset"><h4>Property changes: freeswitch/branches/rupa_limit/libs</h4>
<pre class="diff"><span>
<span class="cx">Name: svn:ignore
</span><span class="cx"> - libpri*
</span><span class="cx">wanpipe*
</span><span class="cx">*.zip
</span><span class="cx">*.tar
</span><span class="cx">*.tar.gz
</span><span class="cx">*.tgz
</span><span class="cx">apr-iconv
</span><span class="cx">apr-util
</span><span class="cx">curl
</span><span class="cx">howl
</span><span class="cx">iksemel
</span><span class="cx">include
</span><span class="cx">js
</span><span class="cx">libetpan
</span><span class="cx">libeXosip2
</span><span class="cx">libresample
</span><span class="cx">libsndfile
</span><span class="cx">openldap
</span><span class="cx">osip
</span><span class="cx">pcre
</span><span class="cx">PortAudio
</span><span class="cx">speex
</span><span class="cx">sqlite
</span><span class="cx">xmlrpc
</span><span class="cx">apr
</span><span class="cx">libeXosip2-2.2.3
</span><span class="cx">libosip2-2.2.2
</span><span class="cx">libosip2-2.2.3
</span><span class="cx">apr-1.2.6
</span><span class="cx">pcre-6.4
</span><span class="cx">pcre-6.7
</span><span class="cx">apr-util-1.2.6
</span><span class="cx">libeXosip2-2.2.3-pre1
</span><span class="cx">iksemel-1.2
</span><span class="cx">xmlrpc-c-1.03.14
</span><span class="cx">libsndfile-1.0.12
</span><span class="cx">libresample-0.1.3
</span><span class="cx">curl-7.15.2
</span><span class="cx">sqlite-3.3.5
</span><span class="cx">portaudio
</span><span class="cx">libetpan-0.45
</span><span class="cx">howl-1.0.0
</span><span class="cx">openldap-2.3.19
</span><span class="cx">speex-1.1.11.1
</span><span class="cx">mozilla
</span><span class="cx">apr-1.2.7
</span><span class="cx">apr-util-1.2.7
</span><span class="cx">apr-iconv-1.1.1
</span><span class="cx">js20051231
</span><span class="cx">mono-1.1.13.8
</span><span class="cx">php-5.1.6
</span><span class="cx">portaudio_v18_1
</span><span class="cx">pthreads-w32-2-7-0-release
</span><span class="cx">sofia-sip
</span><span class="cx">libeXosip2-2.2.2
</span><span class="cx">libsndfile-1.0.16
</span><span class="cx">nspr-4.6.1.winnt5.release
</span><span class="cx">sqlite-source-3_3_6
</span><span class="cx">VSDependancies
</span><span class="cx">nspr-4.6.1.winnt5.debug
</span><span class="cx">libg729
</span><span class="cx">zlib-1.2.3
</span><span class="cx">speex-1.1.12
</span><span class="cx">sqlite-3.3.6
</span><span class="cx">sofia-sip-1.12.1
</span><span class="cx">sofia-sip-1.12.1
</span><span class="cx">libresample
</span><span class="cx">libsangoma
</span><span class="cx">sqlite-3.2.8
</span><span class="cx">sofia-sip-1*
</span><span class="cx">ruby-1*
</span><span class="cx">Python-2*
</span><span class="cx">resip.build.sh
</span><span class="cx">jitterbuffer
</span><span class="cx">pjproject*
</span><span class="cx">sipsak*
</span><span class="cx">jrtplib*
</span><span class="cx">iovm
</span><span class="cx">sipXtackLib
</span><span class="cx">sipx
</span><span class="cx">cppunit-1*
</span><span class="cx">resiprocate*
</span><span class="cx">sipXportLib
</span><span class="cx">new
</span><span class="cx">unixODBC*
</span><span class="cx">libshout*
</span><span class="cx">lame*
</span><span class="cx">glib-2.12.3
</span><span class="cx">pkg-config-0.21
</span><span class="cx">gettext-0.15
</span><span class="cx">mono-1.2.3.1
</span><span class="cx">sphinxbase-0.4.99
</span><span class="cx">pocketsphinx-0.5.99
</span><span class="cx">iax
</span><span class="cx">flite-1.3.9
</span><span class="cx">Communicator_semi_40.cd_semi_6000
</span><span class="cx">en
</span><span class="cx">lib
</span><span class="cx">music
</span><span class="cx">sounds
</span><span class="cx">libogg-1.1.3
</span><span class="cx">flite-1.3.99
</span><span class="cx">mpg123
</span><span class="cx">tiff
</span><span class="cx">tiff-3.8.2
</span><span class="cx">celt-0.5.1
</span><span class="cx">openzap
</span><span class="cx">stuff
</span><span class="cx">celt-0.7.0
</span><span class="cx">voipcodecs
</span><span class="cx">libbv32-0.1
</span><span class="cx">libbv16-0.1
</span><span class="cx">freeradius-client-1.1.6
</span><span class="cx">openzap
</span><span class="cx">libevrc
</span><span class="cx">json-c-0.8
</span><span class="cx">._libg729
</span><span class="cx">SILK_SDK
</span><span class="cx">broadvoice-0.0.1
</span><span class="cx">libmemcached-0.32
</span><span class="cx">openzap
</span><span class="cx">celt-0.7.0-1
</span><span class="cx">openzap
</span><span class="cx">g729
</span><span class="cx">celt-0.7.1
</span><span class="cx"> + libpri*
</span><span class="cx">wanpipe*
</span><span class="cx">*.zip
</span><span class="cx">*.tar
</span><span class="cx">*.tar.gz
</span><span class="cx">*.tgz
</span><span class="cx">apr-iconv
</span><span class="cx">apr-util
</span><span class="cx">curl
</span><span class="cx">howl
</span><span class="cx">iksemel
</span><span class="cx">include
</span><span class="cx">js
</span><span class="cx">libetpan
</span><span class="cx">libeXosip2
</span><span class="cx">libresample
</span><span class="cx">libsndfile
</span><span class="cx">openldap
</span><span class="cx">osip
</span><span class="cx">pcre
</span><span class="cx">PortAudio
</span><span class="cx">speex
</span><span class="cx">sqlite
</span><span class="cx">xmlrpc
</span><span class="cx">apr
</span><span class="cx">libeXosip2-2.2.3
</span><span class="cx">libosip2-2.2.2
</span><span class="cx">libosip2-2.2.3
</span><span class="cx">apr-1.2.6
</span><span class="cx">pcre-6.4
</span><span class="cx">pcre-6.7
</span><span class="cx">apr-util-1.2.6
</span><span class="cx">libeXosip2-2.2.3-pre1
</span><span class="cx">iksemel-1.2
</span><span class="cx">xmlrpc-c-1.03.14
</span><span class="cx">libsndfile-1.0.12
</span><span class="cx">libresample-0.1.3
</span><span class="cx">curl-7.15.2
</span><span class="cx">sqlite-3.3.5
</span><span class="cx">portaudio
</span><span class="cx">libetpan-0.45
</span><span class="cx">howl-1.0.0
</span><span class="cx">openldap-2.3.19
</span><span class="cx">speex-1.1.11.1
</span><span class="cx">mozilla
</span><span class="cx">apr-1.2.7
</span><span class="cx">apr-util-1.2.7
</span><span class="cx">apr-iconv-1.1.1
</span><span class="cx">js20051231
</span><span class="cx">mono-1.1.13.8
</span><span class="cx">php-5.1.6
</span><span class="cx">portaudio_v18_1
</span><span class="cx">pthreads-w32-2-7-0-release
</span><span class="cx">sofia-sip
</span><span class="cx">libeXosip2-2.2.2
</span><span class="cx">libsndfile-1.0.16
</span><span class="cx">nspr-4.6.1.winnt5.release
</span><span class="cx">sqlite-source-3_3_6
</span><span class="cx">VSDependancies
</span><span class="cx">nspr-4.6.1.winnt5.debug
</span><span class="cx">libg729
</span><span class="cx">zlib-1.2.3
</span><span class="cx">speex-1.1.12
</span><span class="cx">sqlite-3.3.6
</span><span class="cx">sofia-sip-1.12.1
</span><span class="cx">sofia-sip-1.12.1
</span><span class="cx">libresample
</span><span class="cx">libsangoma
</span><span class="cx">sqlite-3.2.8
</span><span class="cx">sofia-sip-1*
</span><span class="cx">ruby-1*
</span><span class="cx">Python-2*
</span><span class="cx">resip.build.sh
</span><span class="cx">jitterbuffer
</span><span class="cx">pjproject*
</span><span class="cx">sipsak*
</span><span class="cx">jrtplib*
</span><span class="cx">iovm
</span><span class="cx">sipXtackLib
</span><span class="cx">sipx
</span><span class="cx">cppunit-1*
</span><span class="cx">resiprocate*
</span><span class="cx">sipXportLib
</span><span class="cx">new
</span><span class="cx">unixODBC*
</span><span class="cx">libshout*
</span><span class="cx">lame*
</span><span class="cx">glib-2.12.3
</span><span class="cx">pkg-config-0.21
</span><span class="cx">gettext-0.15
</span><span class="cx">mono-1.2.3.1
</span><span class="cx">sphinxbase-0.4.99
</span><span class="cx">pocketsphinx-0.5.99
</span><span class="cx">iax
</span><span class="cx">flite-1.3.9
</span><span class="cx">Communicator_semi_40.cd_semi_6000
</span><span class="cx">en
</span><span class="cx">lib
</span><span class="cx">music
</span><span class="cx">sounds
</span><span class="cx">libogg-1.1.3
</span><span class="cx">flite-1.3.99
</span><span class="cx">mpg123
</span><span class="cx">tiff
</span><span class="cx">tiff-3.8.2
</span><span class="cx">celt-0.5.1
</span><span class="cx">openzap
</span><span class="cx">stuff
</span><span class="cx">celt-0.7.0
</span><span class="cx">voipcodecs
</span><span class="cx">libbv32-0.1
</span><span class="cx">libbv16-0.1
</span><span class="cx">freeradius-client-1.1.6
</span><span class="cx">openzap
</span><span class="cx">libevrc
</span><span class="cx">json-c-0.8
</span><span class="cx">._libg729
</span><span class="cx">SILK_SDK
</span><span class="cx">broadvoice-0.0.1
</span><span class="cx">libmemcached-0.32
</span><span class="cx">openzap
</span><span class="cx">celt-0.7.0-1
</span><span class="cx">openzap
</span><span class="cx">g729
</span><span class="cx">celt-0.7.1
</span><span class="cx">openzap
</span><span class="cx">json-c-0.9
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibseslESLi"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/libs/esl/ESL.i (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/libs/esl/ESL.i        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/libs/esl/ESL.i        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -10,6 +10,7 @@
</span><span class="cx"> %newobject ::getInfo();
</span><span class="cx"> %newobject ESLconnection::filter();
</span><span class="cx"> %newobject ::recvEvent();
</span><ins>+%newobject ::sendEvent();
</ins><span class="cx"> %newobject ESLconnection::recvEventTimed();
</span><span class="cx"> #else
</span><span class="cx"> %newobject ESLconnection::sendRecv;
</span><span class="lines">@@ -17,6 +18,7 @@
</span><span class="cx"> %newobject ESLconnection::bgapi;
</span><span class="cx"> %newobject ESLconnection::getInfo;
</span><span class="cx"> %newobject ESLconnection::filter;
</span><ins>+%newobject ESLconnection::sendEvent;
</ins><span class="cx"> %newobject ESLconnection::recvEvent;
</span><span class="cx"> %newobject ESLconnection::recvEventTimed;
</span><span class="cx"> %newobject ESLconnection::execute;
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibseslfs_clic"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/libs/esl/fs_cli.c (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/libs/esl/fs_cli.c        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/libs/esl/fs_cli.c        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -1,4 +1,4 @@
</span><del>-#ifndef _XOPEN_SOURCE
</del><ins>+#if !defined(_XOPEN_SOURCE) && !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__)
</ins><span class="cx"> #define _XOPEN_SOURCE 600
</span><span class="cx"> #endif
</span><span class="cx">
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibseslivrdc"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/libs/esl/ivrd.c (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/libs/esl/ivrd.c        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/libs/esl/ivrd.c        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -66,7 +66,7 @@
</span><span class="cx">         handle.sock = -1;
</span><span class="cx">         esl_disconnect(&handle);
</span><span class="cx">         
</span><del>-        execl(path_buffer, path_buffer, NULL);
</del><ins>+        execl(path_buffer, path_buffer, (char *)NULL);
</ins><span class="cx">         //system(path_buffer);
</span><span class="cx">         close(client_sock);
</span><span class="cx">         exit(0);
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibsesljavaesl_wrapcpp"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/libs/esl/java/esl_wrap.cpp (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/libs/esl/java/esl_wrap.cpp        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/libs/esl/java/esl_wrap.cpp        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -819,11 +819,11 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-SWIGEXPORT jint JNICALL Java_org_freeswitch_esl_eslJNI_ESLconnection_1sendEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
- jint jresult = 0 ;
</del><ins>+SWIGEXPORT jlong JNICALL Java_org_freeswitch_esl_eslJNI_ESLconnection_1sendEvent(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jlong jarg2, jobject jarg2_) {
+ jlong jresult = 0 ;
</ins><span class="cx"> ESLconnection *arg1 = (ESLconnection *) 0 ;
</span><span class="cx"> ESLevent *arg2 = (ESLevent *) 0 ;
</span><del>- int result;
</del><ins>+ ESLevent *result = 0 ;
</ins><span class="cx">
</span><span class="cx"> (void)jenv;
</span><span class="cx"> (void)jcls;
</span><span class="lines">@@ -831,8 +831,8 @@
</span><span class="cx"> (void)jarg2_;
</span><span class="cx"> arg1 = *(ESLconnection **)&jarg1;
</span><span class="cx"> arg2 = *(ESLevent **)&jarg2;
</span><del>- result = (int)(arg1)->sendEvent(arg2);
- jresult = (jint)result;
</del><ins>+ result = (ESLevent *)(arg1)->sendEvent(arg2);
+ *(ESLevent **)&jresult = result;
</ins><span class="cx"> return jresult;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibsesljavaorgfreeswitcheslESLconnectionjava"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/libs/esl/java/org/freeswitch/esl/ESLconnection.java (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/libs/esl/java/org/freeswitch/esl/ESLconnection.java        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/libs/esl/java/org/freeswitch/esl/ESLconnection.java        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -77,8 +77,9 @@
</span><span class="cx"> return (cPtr == 0) ? null : new ESLevent(cPtr, true);
</span><span class="cx"> }
</span><span class="cx">
</span><del>- public int sendEvent(ESLevent send_me) {
- return eslJNI.ESLconnection_sendEvent(swigCPtr, this, ESLevent.getCPtr(send_me), send_me);
</del><ins>+ public ESLevent sendEvent(ESLevent send_me) {
+ long cPtr = eslJNI.ESLconnection_sendEvent(swigCPtr, this, ESLevent.getCPtr(send_me), send_me);
+ return (cPtr == 0) ? null : new ESLevent(cPtr, true);
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> public ESLevent recvEvent() {
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibsesljavaorgfreeswitchesleslJNIjava"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/libs/esl/java/org/freeswitch/esl/eslJNI.java (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/libs/esl/java/org/freeswitch/esl/eslJNI.java        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/libs/esl/java/org/freeswitch/esl/eslJNI.java        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -40,7 +40,7 @@
</span><span class="cx"> public final static native long ESLconnection_sendRecv(long jarg1, ESLconnection jarg1_, String jarg2);
</span><span class="cx"> public final static native long ESLconnection_api(long jarg1, ESLconnection jarg1_, String jarg2, String jarg3);
</span><span class="cx"> public final static native long ESLconnection_bgapi(long jarg1, ESLconnection jarg1_, String jarg2, String jarg3);
</span><del>- public final static native int ESLconnection_sendEvent(long jarg1, ESLconnection jarg1_, long jarg2, ESLevent jarg2_);
</del><ins>+ public final static native long ESLconnection_sendEvent(long jarg1, ESLconnection jarg1_, long jarg2, ESLevent jarg2_);
</ins><span class="cx"> public final static native long ESLconnection_recvEvent(long jarg1, ESLconnection jarg1_);
</span><span class="cx"> public final static native long ESLconnection_recvEventTimed(long jarg1, ESLconnection jarg1_, int jarg2);
</span><span class="cx"> public final static native long ESLconnection_filter(long jarg1, ESLconnection jarg1_, String jarg2, String jarg3);
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibsesllua"></a>
<div class="propset"><h4>Property changes: freeswitch/branches/rupa_limit/libs/esl/lua</h4>
<pre class="diff"><span>
<span class="cx">Name: svn:ignore
</span><span class="cx"> + originate.lua
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibseslluaesl_wrapcpp"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/libs/esl/lua/esl_wrap.cpp (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/libs/esl/lua/esl_wrap.cpp        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/libs/esl/lua/esl_wrap.cpp        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -2530,7 +2530,7 @@
</span><span class="cx"> int SWIG_arg = -1;
</span><span class="cx"> ESLconnection *arg1 = (ESLconnection *) 0 ;
</span><span class="cx"> ESLevent *arg2 = (ESLevent *) 0 ;
</span><del>- int result;
</del><ins>+ ESLevent *result = 0 ;
</ins><span class="cx">
</span><span class="cx"> SWIG_check_num_args("sendEvent",2,2)
</span><span class="cx"> if(!SWIG_isptrtype(L,1)) SWIG_fail_arg("sendEvent",1,"ESLconnection *");
</span><span class="lines">@@ -2545,9 +2545,9 @@
</span><span class="cx"> SWIG_fail_ptr("ESLconnection_sendEvent",2,SWIGTYPE_p_ESLevent);
</span><span class="cx"> }
</span><span class="cx">
</span><del>- result = (int)(arg1)->sendEvent(arg2);
</del><ins>+ result = (ESLevent *)(arg1)->sendEvent(arg2);
</ins><span class="cx"> SWIG_arg=0;
</span><del>- lua_pushnumber(L, (lua_Number) result); SWIG_arg++;
</del><ins>+ SWIG_NewPointerObj(L,result,SWIGTYPE_p_ESLevent,1); SWIG_arg++;
</ins><span class="cx"> return SWIG_arg;
</span><span class="cx">
</span><span class="cx"> if(0) SWIG_fail;
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibseslmanagedESLPINVOKEcs"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/libs/esl/managed/ESLPINVOKE.cs (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/libs/esl/managed/ESLPINVOKE.cs        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/libs/esl/managed/ESLPINVOKE.cs        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -278,7 +278,7 @@
</span><span class="cx"> public static extern IntPtr ESLconnection_Bgapi(HandleRef jarg1, string jarg2, string jarg3);
</span><span class="cx">
</span><span class="cx"> [DllImport("ESL", EntryPoint="CSharp_ESLconnection_SendEvent")]
</span><del>- public static extern int ESLconnection_SendEvent(HandleRef jarg1, HandleRef jarg2);
</del><ins>+ public static extern IntPtr ESLconnection_SendEvent(HandleRef jarg1, HandleRef jarg2);
</ins><span class="cx">
</span><span class="cx"> [DllImport("ESL", EntryPoint="CSharp_ESLconnection_RecvEvent")]
</span><span class="cx"> public static extern IntPtr ESLconnection_RecvEvent(HandleRef jarg1);
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibseslmanagedESLconnectioncs"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/libs/esl/managed/ESLconnection.cs (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/libs/esl/managed/ESLconnection.cs        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/libs/esl/managed/ESLconnection.cs        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -86,8 +86,9 @@
</span><span class="cx"> return ret;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- public int SendEvent(ESLevent send_me) {
- int ret = ESLPINVOKE.ESLconnection_SendEvent(swigCPtr, ESLevent.getCPtr(send_me));
</del><ins>+ public ESLevent SendEvent(ESLevent send_me) {
+ IntPtr cPtr = ESLPINVOKE.ESLconnection_SendEvent(swigCPtr, ESLevent.getCPtr(send_me));
+ ESLevent ret = (cPtr == IntPtr.Zero) ? null : new ESLevent(cPtr, true);
</ins><span class="cx"> return ret;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibseslmanagedesl_wrapcpp"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/libs/esl/managed/esl_wrap.cpp (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/libs/esl/managed/esl_wrap.cpp        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/libs/esl/managed/esl_wrap.cpp        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -693,16 +693,16 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-SWIGEXPORT int SWIGSTDCALL CSharp_ESLconnection_SendEvent(void * jarg1, void * jarg2) {
- int jresult ;
</del><ins>+SWIGEXPORT void * SWIGSTDCALL CSharp_ESLconnection_SendEvent(void * jarg1, void * jarg2) {
+ void * jresult ;
</ins><span class="cx"> ESLconnection *arg1 = (ESLconnection *) 0 ;
</span><span class="cx"> ESLevent *arg2 = (ESLevent *) 0 ;
</span><del>- int result;
</del><ins>+ ESLevent *result = 0 ;
</ins><span class="cx">
</span><span class="cx"> arg1 = (ESLconnection *)jarg1;
</span><span class="cx"> arg2 = (ESLevent *)jarg2;
</span><del>- result = (int)(arg1)->sendEvent(arg2);
- jresult = result;
</del><ins>+ result = (ESLevent *)(arg1)->sendEvent(arg2);
+ jresult = (void *)result;
</ins><span class="cx"> return jresult;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibseslperlESLDispatchpmfromrev17079freeswitchtrunklibseslperlESLDispatchpm"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/libs/esl/perl/ESL/Dispatch.pm (from rev 17079, freeswitch/trunk/libs/esl/perl/ESL/Dispatch.pm) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/libs/esl/perl/ESL/Dispatch.pm         (rev 0)
+++ freeswitch/branches/rupa_limit/libs/esl/perl/ESL/Dispatch.pm        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,109 @@
</span><ins>+package ESL::Dispatch;
+use Data::Dumper;
+require ESL;
+require Exporter;
+use AutoLoader ();
+
+use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $AUTOLOAD);
+
+$VERSION = "1.0";
+
+@ISA = qw(Exporter DynaLoader);
+
+
+sub init($;$) {
+ my $proto = shift;
+ my $args = shift;
+ my $class = ref($proto) || $proto;
+ my $self = {};
+
+ $self->{_debug} = $args->{debug} ||= 0;
+
+ $self->{host} = $args->{host} ||= "localhost";
+ $self->{port} = $args->{port} ||= "8021";
+ $self->{pass} = $args->{pass} ||= "ClueCon";
+ $self->{_esl} = new ESL::ESLconnection("$self->{host}", "$self->{port}", "$self->{pass}");
+ $self->{_callback} = undef;
+ $self->{_custom_subclass} = undef;
+ return bless($self, $class);
+}
+
+sub set_worker($;$$) {
+ my $self = shift;
+ $self->{_worker} = shift;
+ $self->{_timeout} = shift;
+}
+
+sub set_callback($;$$) {
+ my $self = shift;
+ my $event = shift;
+ $self->{_callback}->{$event} = shift;
+ my $subclass = shift;
+ if($subclass) {
+ $self->{_custom_subclass} = split(/,/, $subclass);
+ }
+}
+
+sub render_event($;$) {
+ my $self = shift;
+ my $event = shift;
+ my $h = $event->firstHeader();
+
+ while ($h) {
+ $val = $event->getHeader($h);
+ if($self->{_debug} > 3) {
+ print "$h -> $val\n";
+ }
+ if ($self->{_decode}) {
+ $val =~ s/\%([A-Fa-f0-9]{2})/pack('C', hex($1))/seg;
+ }
+ $h =~ s/^variable_//;
+ $self->{event_hash}->{lc($h)} = $val;
+ $h = $event->nextHeader();
+ }
+ # Execute callback for this event
+ eval {
+ if($self->{_debug}) {
+ $callback = lc($self->{event_hash}->{'event-name'});
+ print "DEBUG: executing $callback callback\n";
+ }
+ &{$self->{_callback}->{lc($self->{event_hash}->{'event-name'})}}($self, $self->{event_hash});
+ };
+}
+
+
+sub run($;) {
+ my $self = shift;
+ my $event;
+
+ for(;;) {
+ # Only register for events we have callbacks for.
+ for my $key ( keys %{$self->{_callback}} ) {
+ if ($key eq "CUSTOM") {
+        foreach $subclass (@{$self->{_custom_subclass}}) {
+         $self->{_esl}->events("plain", "$key $subclass");
+        }
+        next;
+ }
+ $self->{_esl}->events("plain", "$key");
+ }
+
+ while ($self->{_esl}->connected()) {
+ if($self->{_timeout} > 0) {
+        $event = $self->{_esl}->recvEventTimed($self->{_timeout});
+        if(!$event) {
+         eval {&{$self->{_worker}}($self);};
+         next;
+        }
+ } else {
+        $event = $self->{_esl}->recvEvent();
+ }
+ $self->render_event($event,1);
+ delete $self->{event_hash};
+ }
+ sleep 1;
+ $self->{_esl} = new ESL::ESLconnection("$self->{host}", "$self->{port}", "$self->{pass}");
+ }
+}
+
+1;
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibseslperldispatchplfromrev17079freeswitchtrunklibseslperldispatchpl"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/libs/esl/perl/dispatch.pl (from rev 17079, freeswitch/trunk/libs/esl/perl/dispatch.pl) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/libs/esl/perl/dispatch.pl         (rev 0)
+++ freeswitch/branches/rupa_limit/libs/esl/perl/dispatch.pl        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,33 @@
</span><ins>+#!/usr/bin/perl
+
+use ESL::Dispatch;
+use Data::Dumper;
+my $daemon = init ESL::Dispatch({});
+
+$| = 1;
+
+sub worker {
+ my $self = shift;
+ print "I'm a worker\n";
+}
+
+sub heartbeat {
+ my $self = shift;
+ my $event = shift;
+ print Dumper $event;
+}
+
+sub channel_hangup {
+ my $self = shift;
+ my $event = shift;
+ print Dumper $event;
+ print "DO SQL GOODIES HERE!\n";
+}
+
+$0 = "ESL::Dispatch rocks!";
+
+$daemon->set_worker(\&worker, 2000);
+$daemon->set_callback("heartbeat", \&heartbeat);
+$daemon->set_callback("channel_hangup", \&channel_hangup);
+
+$daemon->run;
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibseslperlesl_wrapcpp"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/libs/esl/perl/esl_wrap.cpp (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/libs/esl/perl/esl_wrap.cpp        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/libs/esl/perl/esl_wrap.cpp        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -3123,7 +3123,7 @@
</span><span class="cx"> {
</span><span class="cx"> ESLconnection *arg1 = (ESLconnection *) 0 ;
</span><span class="cx"> ESLevent *arg2 = (ESLevent *) 0 ;
</span><del>- int result;
</del><ins>+ ESLevent *result = 0 ;
</ins><span class="cx"> void *argp1 = 0 ;
</span><span class="cx"> int res1 = 0 ;
</span><span class="cx"> void *argp2 = 0 ;
</span><span class="lines">@@ -3144,8 +3144,8 @@
</span><span class="cx"> SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "ESLconnection_sendEvent" "', argument " "2"" of type '" "ESLevent *""'");
</span><span class="cx"> }
</span><span class="cx"> arg2 = reinterpret_cast< ESLevent * >(argp2);
</span><del>- result = (int)(arg1)->sendEvent(arg2);
- ST(argvi) = SWIG_From_int SWIG_PERL_CALL_ARGS_1(static_cast< int >(result)); argvi++ ;
</del><ins>+ result = (ESLevent *)(arg1)->sendEvent(arg2);
+ ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ESLevent, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
</ins><span class="cx">
</span><span class="cx">
</span><span class="cx"> XSRETURN(argvi);
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibseslphpESLphp"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/libs/esl/php/ESL.php (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/libs/esl/php/ESL.php        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/libs/esl/php/ESL.php        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -161,7 +161,8 @@
</span><span class="cx">         }
</span><span class="cx">
</span><span class="cx">         function sendEvent($send_me) {
</span><del>-                return ESLconnection_sendEvent($this->_cPtr,$send_me);
</del><ins>+                $r=ESLconnection_sendEvent($this->_cPtr,$send_me);
+                return is_resource($r) ? new ESLevent($r) : $r;
</ins><span class="cx">         }
</span><span class="cx">
</span><span class="cx">         function recvEvent() {
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibseslphpesl_wrapcpp"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/libs/esl/php/esl_wrap.cpp (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/libs/esl/php/esl_wrap.cpp        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/libs/esl/php/esl_wrap.cpp        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -1091,7 +1091,7 @@
</span><span class="cx"> }
</span><span class="cx"> if(!arg1) SWIG_PHP_Error(E_ERROR, "this pointer is NULL");
</span><span class="cx">
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[1]);
</span><span class="cx"> arg2 = (char *) Z_STRVAL_PP(args[1]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="lines">@@ -1159,7 +1159,7 @@
</span><span class="cx"> }
</span><span class="cx"> if(!arg1) SWIG_PHP_Error(E_ERROR, "this pointer is NULL");
</span><span class="cx">
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,7,CONVERT_INT_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,7,CONVERT_INT_IN@*/
</ins><span class="cx"> convert_to_long_ex(args[1]);
</span><span class="cx"> arg2 = (int) Z_LVAL_PP(args[1]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="lines">@@ -1213,13 +1213,13 @@
</span><span class="cx"> WRONG_PARAM_COUNT;
</span><span class="cx">
</span><span class="cx">
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[0]);
</span><span class="cx"> arg1 = (char *) Z_STRVAL_PP(args[0]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="cx">
</span><span class="cx"> if(arg_count > 1) {
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[1]);
</span><span class="cx"> arg2 = (char *) Z_STRVAL_PP(args[1]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="lines">@@ -1254,7 +1254,7 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx"> if(arg_count > 1) {
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,7,CONVERT_INT_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,7,CONVERT_INT_IN@*/
</ins><span class="cx"> convert_to_long_ex(args[1]);
</span><span class="cx"> arg2 = (int) Z_LVAL_PP(args[1]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="lines">@@ -1384,7 +1384,7 @@
</span><span class="cx"> }
</span><span class="cx"> if(!arg1) SWIG_PHP_Error(E_ERROR, "this pointer is NULL");
</span><span class="cx"> if(arg_count > 1) {
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[1]);
</span><span class="cx"> arg2 = (char *) Z_STRVAL_PP(args[1]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="lines">@@ -1460,7 +1460,7 @@
</span><span class="cx"> }
</span><span class="cx"> if(!arg1) SWIG_PHP_Error(E_ERROR, "this pointer is NULL");
</span><span class="cx">
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[1]);
</span><span class="cx"> arg2 = (char *) Z_STRVAL_PP(args[1]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="lines">@@ -1557,7 +1557,7 @@
</span><span class="cx"> }
</span><span class="cx"> if(!arg1) SWIG_PHP_Error(E_ERROR, "this pointer is NULL");
</span><span class="cx">
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[1]);
</span><span class="cx"> arg2 = (char *) Z_STRVAL_PP(args[1]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="lines">@@ -1591,13 +1591,13 @@
</span><span class="cx"> }
</span><span class="cx"> if(!arg1) SWIG_PHP_Error(E_ERROR, "this pointer is NULL");
</span><span class="cx">
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[1]);
</span><span class="cx"> arg2 = (char *) Z_STRVAL_PP(args[1]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="cx">
</span><span class="cx">
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[2]);
</span><span class="cx"> arg3 = (char *) Z_STRVAL_PP(args[2]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="lines">@@ -1630,7 +1630,7 @@
</span><span class="cx"> }
</span><span class="cx"> if(!arg1) SWIG_PHP_Error(E_ERROR, "this pointer is NULL");
</span><span class="cx">
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[1]);
</span><span class="cx"> arg2 = (char *) Z_STRVAL_PP(args[1]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="lines">@@ -1719,25 +1719,25 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[0]);
</span><span class="cx"> arg1 = (char *) Z_STRVAL_PP(args[0]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="cx">
</span><span class="cx">
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[1]);
</span><span class="cx"> arg2 = (char *) Z_STRVAL_PP(args[1]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="cx">
</span><span class="cx">
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[2]);
</span><span class="cx"> arg3 = (char *) Z_STRVAL_PP(args[2]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="cx">
</span><span class="cx">
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[3]);
</span><span class="cx"> arg4 = (char *) Z_STRVAL_PP(args[3]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="lines">@@ -1765,19 +1765,19 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[0]);
</span><span class="cx"> arg1 = (char *) Z_STRVAL_PP(args[0]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="cx">
</span><span class="cx">
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[1]);
</span><span class="cx"> arg2 = (char *) Z_STRVAL_PP(args[1]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="cx">
</span><span class="cx">
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[2]);
</span><span class="cx"> arg3 = (char *) Z_STRVAL_PP(args[2]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="lines">@@ -1803,7 +1803,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,7,CONVERT_INT_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,7,CONVERT_INT_IN@*/
</ins><span class="cx"> convert_to_long_ex(args[0]);
</span><span class="cx"> arg1 = (int) Z_LVAL_PP(args[0]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="lines">@@ -1980,7 +1980,7 @@
</span><span class="cx"> }
</span><span class="cx"> if(!arg1) SWIG_PHP_Error(E_ERROR, "this pointer is NULL");
</span><span class="cx">
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[1]);
</span><span class="cx"> arg2 = (char *) Z_STRVAL_PP(args[1]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="lines">@@ -2013,7 +2013,7 @@
</span><span class="cx"> }
</span><span class="cx"> if(!arg1) SWIG_PHP_Error(E_ERROR, "this pointer is NULL");
</span><span class="cx">
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[1]);
</span><span class="cx"> arg2 = (char *) Z_STRVAL_PP(args[1]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="lines">@@ -2049,13 +2049,13 @@
</span><span class="cx"> }
</span><span class="cx"> if(!arg1) SWIG_PHP_Error(E_ERROR, "this pointer is NULL");
</span><span class="cx">
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[1]);
</span><span class="cx"> arg2 = (char *) Z_STRVAL_PP(args[1]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="cx">
</span><span class="cx"> if(arg_count > 2) {
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[2]);
</span><span class="cx"> arg3 = (char *) Z_STRVAL_PP(args[2]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="lines">@@ -2092,13 +2092,13 @@
</span><span class="cx"> }
</span><span class="cx"> if(!arg1) SWIG_PHP_Error(E_ERROR, "this pointer is NULL");
</span><span class="cx">
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[1]);
</span><span class="cx"> arg2 = (char *) Z_STRVAL_PP(args[1]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="cx">
</span><span class="cx"> if(arg_count > 2) {
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[2]);
</span><span class="cx"> arg3 = (char *) Z_STRVAL_PP(args[2]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="lines">@@ -2117,7 +2117,7 @@
</span><span class="cx"> ZEND_NAMED_FUNCTION(_wrap_ESLconnection_sendEvent) {
</span><span class="cx"> ESLconnection *arg1 = (ESLconnection *) 0 ;
</span><span class="cx"> ESLevent *arg2 = (ESLevent *) 0 ;
</span><del>- int result;
</del><ins>+ ESLevent *result = 0 ;
</ins><span class="cx"> zval **args[2];
</span><span class="cx">
</span><span class="cx"> SWIG_ResetError();
</span><span class="lines">@@ -2136,9 +2136,9 @@
</span><span class="cx"> SWIG_PHP_Error(E_ERROR, "Type error in argument 2 of ESLconnection_sendEvent. Expected SWIGTYPE_p_ESLevent");
</span><span class="cx"> }
</span><span class="cx"> }
</span><del>- result = (int)(arg1)->sendEvent(arg2);
</del><ins>+ result = (ESLevent *)(arg1)->sendEvent(arg2);
</ins><span class="cx"> {
</span><del>- ZVAL_LONG(return_value,result);
</del><ins>+ SWIG_SetPointerZval(return_value, (void *)result, SWIGTYPE_p_ESLevent, 0);
</ins><span class="cx"> }
</span><span class="cx"> return;
</span><span class="cx"> fail:
</span><span class="lines">@@ -2190,7 +2190,7 @@
</span><span class="cx"> }
</span><span class="cx"> if(!arg1) SWIG_PHP_Error(E_ERROR, "this pointer is NULL");
</span><span class="cx">
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,7,CONVERT_INT_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,7,CONVERT_INT_IN@*/
</ins><span class="cx"> convert_to_long_ex(args[1]);
</span><span class="cx"> arg2 = (int) Z_LVAL_PP(args[1]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="lines">@@ -2224,13 +2224,13 @@
</span><span class="cx"> }
</span><span class="cx"> if(!arg1) SWIG_PHP_Error(E_ERROR, "this pointer is NULL");
</span><span class="cx">
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[1]);
</span><span class="cx"> arg2 = (char *) Z_STRVAL_PP(args[1]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="cx">
</span><span class="cx">
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[2]);
</span><span class="cx"> arg3 = (char *) Z_STRVAL_PP(args[2]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="lines">@@ -2264,13 +2264,13 @@
</span><span class="cx"> }
</span><span class="cx"> if(!arg1) SWIG_PHP_Error(E_ERROR, "this pointer is NULL");
</span><span class="cx">
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[1]);
</span><span class="cx"> arg2 = (char *) Z_STRVAL_PP(args[1]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="cx">
</span><span class="cx">
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[2]);
</span><span class="cx"> arg3 = (char *) Z_STRVAL_PP(args[2]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="lines">@@ -2307,20 +2307,20 @@
</span><span class="cx"> }
</span><span class="cx"> if(!arg1) SWIG_PHP_Error(E_ERROR, "this pointer is NULL");
</span><span class="cx">
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[1]);
</span><span class="cx"> arg2 = (char *) Z_STRVAL_PP(args[1]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="cx">
</span><span class="cx"> if(arg_count > 2) {
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[2]);
</span><span class="cx"> arg3 = (char *) Z_STRVAL_PP(args[2]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="cx">
</span><span class="cx"> }
</span><span class="cx"> if(arg_count > 3) {
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[3]);
</span><span class="cx"> arg4 = (char *) Z_STRVAL_PP(args[3]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="lines">@@ -2358,20 +2358,20 @@
</span><span class="cx"> }
</span><span class="cx"> if(!arg1) SWIG_PHP_Error(E_ERROR, "this pointer is NULL");
</span><span class="cx">
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[1]);
</span><span class="cx"> arg2 = (char *) Z_STRVAL_PP(args[1]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="cx">
</span><span class="cx"> if(arg_count > 2) {
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[2]);
</span><span class="cx"> arg3 = (char *) Z_STRVAL_PP(args[2]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="cx">
</span><span class="cx"> }
</span><span class="cx"> if(arg_count > 3) {
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[3]);
</span><span class="cx"> arg4 = (char *) Z_STRVAL_PP(args[3]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="lines">@@ -2405,7 +2405,7 @@
</span><span class="cx"> }
</span><span class="cx"> if(!arg1) SWIG_PHP_Error(E_ERROR, "this pointer is NULL");
</span><span class="cx">
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[1]);
</span><span class="cx"> arg2 = (char *) Z_STRVAL_PP(args[1]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="lines">@@ -2438,7 +2438,7 @@
</span><span class="cx"> }
</span><span class="cx"> if(!arg1) SWIG_PHP_Error(E_ERROR, "this pointer is NULL");
</span><span class="cx">
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,26,CONVERT_STRING_IN@*/
</ins><span class="cx"> convert_to_string_ex(args[1]);
</span><span class="cx"> arg2 = (char *) Z_STRVAL_PP(args[1]);
</span><span class="cx"> /*@SWIG@*/;
</span><span class="lines">@@ -2489,7 +2489,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>- /*@SWIG:/usr/share/swig/1.3.35/php4/utils.i,7,CONVERT_INT_IN@*/
</del><ins>+ /*@SWIG:/usr/local/share/swig/1.3.35/php4/utils.i,7,CONVERT_INT_IN@*/
</ins><span class="cx"> convert_to_long_ex(args[0]);
</span><span class="cx"> arg1 = (int) Z_LVAL_PP(args[0]);
</span><span class="cx"> /*@SWIG@*/;
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibseslpythonesl_wrapcpp"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/libs/esl/python/esl_wrap.cpp (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/libs/esl/python/esl_wrap.cpp        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/libs/esl/python/esl_wrap.cpp        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -4205,7 +4205,7 @@
</span><span class="cx"> PyObject *resultobj = 0;
</span><span class="cx"> ESLconnection *arg1 = (ESLconnection *) 0 ;
</span><span class="cx"> ESLevent *arg2 = (ESLevent *) 0 ;
</span><del>- int result;
</del><ins>+ ESLevent *result = 0 ;
</ins><span class="cx"> void *argp1 = 0 ;
</span><span class="cx"> int res1 = 0 ;
</span><span class="cx"> void *argp2 = 0 ;
</span><span class="lines">@@ -4227,10 +4227,10 @@
</span><span class="cx"> arg2 = reinterpret_cast< ESLevent * >(argp2);
</span><span class="cx"> {
</span><span class="cx"> SWIG_PYTHON_THREAD_BEGIN_ALLOW;
</span><del>- result = (int)(arg1)->sendEvent(arg2);
</del><ins>+ result = (ESLevent *)(arg1)->sendEvent(arg2);
</ins><span class="cx"> SWIG_PYTHON_THREAD_END_ALLOW;
</span><span class="cx"> }
</span><del>- resultobj = SWIG_From_int(static_cast< int >(result));
</del><ins>+ resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ESLevent, SWIG_POINTER_OWN | 0 );
</ins><span class="cx"> SWIG_PYTHON_THREAD_END_BLOCK;
</span><span class="cx"> return resultobj;
</span><span class="cx"> fail:
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibseslrubyesl_wrapcpp"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/libs/esl/ruby/esl_wrap.cpp (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/libs/esl/ruby/esl_wrap.cpp        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/libs/esl/ruby/esl_wrap.cpp        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -1902,7 +1902,7 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx">
</span><del>-/*@SWIG:/usr/share/swig/1.3.35/ruby/rubyprimtypes.swg,23,%ruby_aux_method@*/
</del><ins>+/*@SWIG:/usr/local/share/swig/1.3.35/ruby/rubyprimtypes.swg,23,%ruby_aux_method@*/
</ins><span class="cx"> SWIGINTERN VALUE SWIG_AUX_NUM2LONG(VALUE *args)
</span><span class="cx"> {
</span><span class="cx"> VALUE obj = args[0];
</span><span class="lines">@@ -3102,7 +3102,7 @@
</span><span class="cx"> _wrap_ESLconnection_sendEvent(int argc, VALUE *argv, VALUE self) {
</span><span class="cx"> ESLconnection *arg1 = (ESLconnection *) 0 ;
</span><span class="cx"> ESLevent *arg2 = (ESLevent *) 0 ;
</span><del>- int result;
</del><ins>+ ESLevent *result = 0 ;
</ins><span class="cx"> void *argp1 = 0 ;
</span><span class="cx"> int res1 = 0 ;
</span><span class="cx"> void *argp2 = 0 ;
</span><span class="lines">@@ -3122,8 +3122,8 @@
</span><span class="cx"> SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "ESLevent *","sendEvent", 2, argv[0] ));
</span><span class="cx"> }
</span><span class="cx"> arg2 = reinterpret_cast< ESLevent * >(argp2);
</span><del>- result = (int)(arg1)->sendEvent(arg2);
- vresult = SWIG_From_int(static_cast< int >(result));
</del><ins>+ result = (ESLevent *)(arg1)->sendEvent(arg2);
+ vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_ESLevent, SWIG_POINTER_OWN | 0 );
</ins><span class="cx"> return vresult;
</span><span class="cx"> fail:
</span><span class="cx"> return Qnil;
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibseslsrceslc"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/libs/esl/src/esl.c (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/libs/esl/src/esl.c        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/libs/esl/src/esl.c        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -453,15 +453,13 @@
</span><span class="cx">                 
</span><span class="cx">         snprintf(event_buf, sizeof(event_buf), "sendevent %s\n", esl_event_name(event->event_id));
</span><span class="cx">         
</span><del>-        if (send(handle->sock, event_buf, strlen(event_buf), 0)) goto fail;
-        if (send(handle->sock, txt, strlen(txt), 0)) goto fail;
-        if (send(handle->sock, "\n\n", 2, 0)) goto fail;
</del><ins>+        if (send(handle->sock, event_buf, strlen(event_buf), 0) <= 0) goto fail;
+        if (send(handle->sock, txt, strlen(txt), 0) <= 0) goto fail;
</ins><span class="cx">         
</span><span class="cx">         free(txt);
</span><span class="cx">
</span><del>-        return ESL_SUCCESS;
</del><ins>+        return esl_recv(handle);
</ins><span class="cx">
</span><del>-
</del><span class="cx"> fail:
</span><span class="cx">
</span><span class="cx">         handle->connected = 0;
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibseslsrcesl_eventc"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/libs/esl/src/esl_event.c (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/libs/esl/src/esl_event.c        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/libs/esl/src/esl_event.c        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -441,6 +441,7 @@
</span><span class="cx">         size_t llen = 0, dlen = 0, blocksize = 512, encode_len = 1536, new_len = 0;
</span><span class="cx">         char *buf;
</span><span class="cx">         char *encode_buf = NULL;        /* used for url encoding of variables to make sure unsafe things stay out of the serialized copy */
</span><ins>+        int clen = 0;
</ins><span class="cx">
</span><span class="cx">         *str = NULL;
</span><span class="cx">
</span><span class="lines">@@ -466,7 +467,11 @@
</span><span class="cx">                  * destroying loop.
</span><span class="cx">                  */
</span><span class="cx">
</span><del>-                
</del><ins>+                if (!strcasecmp(hp->name, "content-length")) {
+                        clen++;
+                }
+
+
</ins><span class="cx">                 new_len = (strlen(hp->value) * 3) + 1;
</span><span class="cx">
</span><span class="cx">                 if (encode_len < new_len) {
</span><span class="lines">@@ -537,7 +542,7 @@
</span><span class="cx">                         }
</span><span class="cx">                 }
</span><span class="cx">                 
</span><del>-                if (blen) {
</del><ins>+                if (blen && !clen) {
</ins><span class="cx">                         snprintf(buf + len, dlen - len, "Content-Length: %d\n\n%s", (int)strlen(event->body), event->body);
</span><span class="cx">                 } else {
</span><span class="cx">                         snprintf(buf + len, dlen - len, "\n");
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibseslsrcesl_oopcpp"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/libs/esl/src/esl_oop.cpp (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/libs/esl/src/esl_oop.cpp        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/libs/esl/src/esl_oop.cpp        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -186,9 +186,18 @@
</span><span class="cx">         return NULL;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-int ESLconnection::sendEvent(ESLevent *send_me)
</del><ins>+ESLevent *ESLconnection::sendEvent(ESLevent *send_me)
</ins><span class="cx"> {
</span><del>-        return esl_sendevent(&handle, send_me->event);
</del><ins>+        if (esl_sendevent(&handle, send_me->event) == ESL_SUCCESS) {
+                esl_event_t *e = handle.last_ievent ? handle.last_ievent : handle.last_event;
+                if (e) {
+                        esl_event_t *event;
+                        esl_event_dup(&event, e);
+                        return new ESLevent(event, 1);
+                }
+        }
+
+        return new ESLevent("server_disconnected");
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> ESLevent *ESLconnection::recvEvent()
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibseslsrcincludeeslh"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/libs/esl/src/include/esl.h (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/libs/esl/src/include/esl.h        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/libs/esl/src/include/esl.h        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -116,7 +116,7 @@
</span><span class="cx"> #define ESL_SEQ_CLEARSCR ESL_SEQ_ESC ESL_SEQ_CLEARSCR_CHAR ESL_SEQ_HOME
</span><span class="cx"> #endif
</span><span class="cx">
</span><del>-#if !defined(_XOPEN_SOURCE) && !defined(__FreeBSD__) && !defined(__NetBSD__)
</del><ins>+#if !defined(_XOPEN_SOURCE) && !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__)
</ins><span class="cx"> #define _XOPEN_SOURCE 600
</span><span class="cx"> #endif
</span><span class="cx">
</span><span class="lines">@@ -198,6 +198,7 @@
</span><span class="cx"> #define esl_safe_free(_x) if (_x) free(_x); _x = NULL
</span><span class="cx"> #define esl_strlen_zero(s) (!s || *(s) == '\0')
</span><span class="cx"> #define esl_strlen_zero_buf(s) (*(s) == '\0')
</span><ins>+#define end_of(_s) *(*_s == '\0' ? _s : _s + strlen(_s) - 1)
</ins><span class="cx">
</span><span class="cx"> #ifdef WIN32
</span><span class="cx"> #include <winsock2.h>
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibseslsrcincludeesl_ooph"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/libs/esl/src/include/esl_oop.h (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/libs/esl/src/include/esl_oop.h        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/libs/esl/src/include/esl_oop.h        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -83,7 +83,7 @@
</span><span class="cx">         ESLevent *sendRecv(const char *cmd);
</span><span class="cx">         ESLevent *api(const char *cmd, const char *arg = NULL);
</span><span class="cx">         ESLevent *bgapi(const char *cmd, const char *arg = NULL);
</span><del>-        int sendEvent(ESLevent *send_me);
</del><ins>+        ESLevent *sendEvent(ESLevent *send_me);
</ins><span class="cx">         ESLevent *recvEvent();
</span><span class="cx">         ESLevent *recvEventTimed(int ms);
</span><span class="cx">         ESLevent *filter(const char *header, const char *value);
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibsminiupnpcminiwgetc"></a>
<div class="modfile"><h4>Modified: freeswitch/branches/rupa_limit/libs/miniupnpc/miniwget.c (17079 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/libs/miniupnpc/miniwget.c        2010-03-23 16:17:15 UTC (rev 17079)
+++ freeswitch/branches/rupa_limit/libs/miniupnpc/miniwget.c        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -19,6 +19,8 @@
</span><span class="cx"> #define socklen_t int
</span><span class="cx"> #else
</span><span class="cx"> #include <unistd.h>
</span><ins>+#include <sys/time.h>
+#include <sys/types.h>
</ins><span class="cx"> #include <sys/param.h>
</span><span class="cx"> #include <sys/socket.h>
</span><span class="cx"> #include <netdb.h>
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibssilkfromrev17079freeswitchtrunklibssilk"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/libs/silk (from rev 17079, freeswitch/trunk/libs/silk)</h4></div>
<a id="freeswitchbranchesrupa_limitlibssilk"></a>
<div class="propset"><h4>Property changes: freeswitch/branches/rupa_limit/libs/silk</h4>
<pre class="diff"><span>
<span class="cx">Name: svn:ignore
</span><span class="cx"> + Encoder
</span><span class="cx">config.status
</span><span class="cx">config.log
</span><span class="cx">config.guess
</span><span class="cx">install-sh
</span><span class="cx">Makefile
</span><span class="cx">configure
</span><span class="cx">signalCompare
</span><span class="cx">compile
</span><span class="cx">config.sub
</span><span class="cx">missing
</span><span class="cx">ltmain.sh
</span><span class="cx">aclocal.m4
</span><span class="cx">Makefile.in
</span><span class="cx">depcomp
</span><span class="cx">Decoder
</span><span class="cx">.deps
</span><span class="cx">libtool
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibssilkupdate"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/libs/silk/.update</h4></div>
<a id="freeswitchbranchesrupa_limitlibssilkupdatefromrev17079freeswitchtrunklibssilkupdate"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/libs/silk/.update (from rev 17079, freeswitch/trunk/libs/silk/.update) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/libs/silk/.update         (rev 0)
+++ freeswitch/branches/rupa_limit/libs/silk/.update        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1 @@
</span><ins>+Wed Mar 17 11:21:56 CDT 2010
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibssilkAUTHORS"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/libs/silk/AUTHORS</h4></div>
<a id="freeswitchbranchesrupa_limitlibssilkAUTHORSfromrev17079freeswitchtrunklibssilkAUTHORS"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/libs/silk/AUTHORS (from rev 17079, freeswitch/trunk/libs/silk/AUTHORS) ( => )</h4>
<pre class="diff"><span>
<span class="info">
Deleted: freeswitch/branches/rupa_limit/libs/silk/COPYING
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibssilkCOPYINGfromrev17079freeswitchtrunklibssilkCOPYING"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/libs/silk/COPYING (from rev 17079, freeswitch/trunk/libs/silk/COPYING) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/libs/silk/COPYING         (rev 0)
+++ freeswitch/branches/rupa_limit/libs/silk/COPYING        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,26 @@
</span><ins>+/***********************************************************************
+Copyright (c) 2006-2010, Skype Limited. All rights reserved.
+Redistribution and use in source and binary forms, with or without
+modification, (subject to the limitations in the disclaimer below)
+are permitted provided that the following conditions are met:
+- Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+- Neither the name of Skype Limited, nor the names of specific
+contributors, may be used to endorse or promote products derived from
+this software without specific prior written permission.
+NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED
+BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
+CONTRIBUTORS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+***********************************************************************/
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibssilkChangeLog"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/libs/silk/ChangeLog</h4></div>
<a id="freeswitchbranchesrupa_limitlibssilkChangeLogfromrev17079freeswitchtrunklibssilkChangeLog"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/libs/silk/ChangeLog (from rev 17079, freeswitch/trunk/libs/silk/ChangeLog) ( => )</h4>
<pre class="diff"><span>
<span class="info">
Deleted: freeswitch/branches/rupa_limit/libs/silk/INSTALL
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibssilkINSTALLfromrev17079freeswitchtrunklibssilkINSTALL"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/libs/silk/INSTALL (from rev 17079, freeswitch/trunk/libs/silk/INSTALL) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/libs/silk/INSTALL         (rev 0)
+++ freeswitch/branches/rupa_limit/libs/silk/INSTALL        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,236 @@
</span><ins>+Installation Instructions
+*************************
+
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
+Software Foundation, Inc.
+
+This file is free documentation; the Free Software Foundation gives
+unlimited permission to copy, distribute and modify it.
+
+Basic Installation
+==================
+
+These are generic installation instructions.
+
+ The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions. Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+ It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring. (Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.)
+
+ If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release. If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+ The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'. You only need
+`configure.ac' if you want to change it or regenerate `configure' using
+a newer version of `autoconf'.
+
+The simplest way to compile this package is:
+
+ 1. `cd' to the directory containing the package's source code and type
+ `./configure' to configure the package for your system. If you're
+ using `csh' on an old version of System V, you might need to type
+ `sh ./configure' instead to prevent `csh' from trying to execute
+ `configure' itself.
+
+ Running `configure' takes awhile. While running, it prints some
+ messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Optionally, type `make check' to run any self-tests that come with
+ the package.
+
+ 4. Type `make install' to install the programs and any data files and
+ documentation.
+
+ 5. You can remove the program binaries and object files from the
+ source code directory by typing `make clean'. To also remove the
+ files that `configure' created (so you can compile the package for
+ a different kind of computer), type `make distclean'. There is
+ also a `make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+Compilers and Options
+=====================
+
+Some systems require unusual options for compilation or linking that the
+`configure' script does not know about. Run `./configure --help' for
+details on some of the pertinent environment variables.
+
+ You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment. Here
+is an example:
+
+ ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
+
+ *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'. `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script. `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+ If you have to use a `make' that does not support the `VPATH'
+variable, you have to compile the package for one architecture at a
+time in the source code directory. After you have installed the
+package for one architecture, use `make distclean' before reconfiguring
+for another architecture.
+
+Installation Names
+==================
+
+By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc. You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX'.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
+
+ In addition, if you use an unusual directory layout you can give
+options like `--bindir=DIR' to specify different values for particular
+kinds of files. Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+ If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System). The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+There may be some features `configure' cannot figure out automatically,
+but needs to determine by the type of machine the package will run on.
+Usually, assuming the package is built to be run on the _same_
+architectures, `configure' can figure that out, but if it prints a
+message saying it cannot guess the machine type, give it the
+`--build=TYPE' option. TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+ CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+ OS KERNEL-OS
+
+ See the file `config.sub' for the possible values of each field. If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+ If you are _building_ compiler tools for cross-compiling, you should
+use the option `--target=TYPE' to select the type of system they will
+produce code for.
+
+ If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+If you want to set default values for `configure' scripts to share, you
+can create a site shell script called `config.site' that gives default
+values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists. Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+Variables not defined in a site shell script can be set in the
+environment passed to `configure'. However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost. In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'. For example:
+
+ ./configure CC=/usr/local2/bin/gcc
+
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script). Here is a another example:
+
+ /bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
+configuration-related scripts to be executed by `/bin/bash'.
+
+`configure' Invocation
+======================
+
+`configure' recognizes the following options to control how it operates.
+
+`--help'
+`-h'
+ Print a summary of the options to `configure', and exit.
+
+`--version'
+`-V'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`--cache-file=FILE'
+ Enable the cache: use and save the results of the tests in FILE,
+ traditionally `config.cache'. FILE defaults to `/dev/null' to
+ disable caching.
+
+`--config-cache'
+`-C'
+ Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+ Do not print messages saying which checks are being made. To
+ suppress all normal output, redirect it to `/dev/null' (any error
+ messages will still be shown).
+
+`--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ `configure' can determine that directory automatically.
+
+`configure' also accepts some other, not widely useful, options. Run
+`configure --help' for more details.
+
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibssilkMakefileam"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/libs/silk/Makefile.am</h4></div>
<a id="freeswitchbranchesrupa_limitlibssilkMakefileamfromrev17079freeswitchtrunklibssilkMakefileam"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/libs/silk/Makefile.am (from rev 17079, freeswitch/trunk/libs/silk/Makefile.am) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/libs/silk/Makefile.am         (rev 0)
+++ freeswitch/branches/rupa_limit/libs/silk/Makefile.am        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,172 @@
</span><ins>+
+AM_CFLAGS = -Isrc -Iinterface -fPIC -Wall -O3
+AUTOMAKE_OPTS = gnu
+NAME = libSKP_SILK_SDK
+AM_CPPFLAGS = $(AM_CFLAGS)
+
+EXTRA_DIST = Silk_SDK.sln \
+src/Silk_FIX.vcproj \
+test/Encoder.c \
+test/Enc_SDK.vcproj \
+test/Decoder.c \
+test/Dec_SDK.vcproj \
+test/signalCompare.c \
+test/SignalCompare.vcproj
+
+lib_LTLIBRARIES        = libSKP_SILK_SDK.la
+libSKP_SILK_SDK_la_SOURCES = src/SKP_Silk_A2NLSF.c \
+src/SKP_Silk_allpass_int.c \
+src/SKP_Silk_ana_filt_bank_1.c \
+src/SKP_Silk_apply_sine_window.c \
+src/SKP_Silk_array_maxabs.c \
+src/SKP_Silk_autocorr.c \
+src/SKP_Silk_biquad_alt.c \
+src/SKP_Silk_biquad.c \
+src/SKP_Silk_burg_modified.c \
+src/SKP_Silk_bwexpander_32.c \
+src/SKP_Silk_bwexpander.c \
+src/SKP_Silk_CNG.c \
+src/SKP_Silk_code_signs.c \
+src/SKP_Silk_control_codec_FIX.c \
+src/SKP_Silk_corrMatrix_FIX.c \
+src/SKP_Silk_create_init_destroy.c \
+src/SKP_Silk_dec_API.c \
+src/SKP_Silk_decode_core.c \
+src/SKP_Silk_decode_frame.c \
+src/SKP_Silk_decode_indices_v4.c \
+src/SKP_Silk_decode_parameters.c \
+src/SKP_Silk_decode_parameters_v4.c \
+src/SKP_Silk_decode_pulses.c \
+src/SKP_Silk_decoder_set_fs.c \
+src/SKP_Silk_detect_SWB_input.c \
+src/SKP_Silk_enc_API.c \
+src/SKP_Silk_encode_frame_FIX.c \
+src/SKP_Silk_encode_parameters.c \
+src/SKP_Silk_encode_parameters_v4.c \
+src/SKP_Silk_encode_pulses.c \
+src/SKP_Silk_find_LPC_FIX.c \
+src/SKP_Silk_find_LTP_FIX.c \
+src/SKP_Silk_find_pitch_lags_FIX.c \
+src/SKP_Silk_find_pred_coefs_FIX.c \
+src/SKP_Silk_gain_quant.c \
+src/SKP_Silk_HP_variable_cutoff_FIX.c \
+src/SKP_Silk_init_encoder_FIX.c \
+src/SKP_Silk_inner_prod_aligned.c \
+src/SKP_Silk_interpolate.c \
+src/SKP_Silk_k2a.c \
+src/SKP_Silk_k2a_Q16.c \
+src/SKP_Silk_LBRR_reset.c \
+src/SKP_Silk_lin2log.c \
+src/SKP_Silk_log2lin.c \
+src/SKP_Silk_lowpass_int.c \
+src/SKP_Silk_lowpass_short.c \
+src/SKP_Silk_LPC_inv_pred_gain.c \
+src/SKP_Silk_LPC_stabilize.c \
+src/SKP_Silk_LPC_synthesis_filter.c \
+src/SKP_Silk_LPC_synthesis_order16.c \
+src/SKP_Silk_LP_variable_cutoff.c \
+src/SKP_Silk_LSF_cos_table.c \
+src/SKP_Silk_LTP_analysis_filter_FIX.c \
+src/SKP_Silk_LTP_scale_ctrl_FIX.c \
+src/SKP_Silk_MA.c \
+src/SKP_Silk_NLSF2A.c \
+src/SKP_Silk_NLSF2A_stable.c \
+src/SKP_Silk_NLSF_MSVQ_decode.c \
+src/SKP_Silk_NLSF_MSVQ_encode_FIX.c \
+src/SKP_Silk_NLSF_stabilize.c \
+src/SKP_Silk_NLSF_VQ_rate_distortion_FIX.c \
+src/SKP_Silk_NLSF_VQ_sum_error_FIX.c \
+src/SKP_Silk_NLSF_VQ_weights_laroia.c \
+src/SKP_Silk_noise_shape_analysis_FIX.c \
+src/SKP_Silk_NSQ.c \
+src/SKP_Silk_NSQ_del_dec.c \
+src/SKP_Silk_pitch_analysis_core.c \
+src/SKP_Silk_pitch_est_tables.c \
+src/SKP_Silk_PLC.c \
+src/SKP_Silk_prefilter_FIX.c \
+src/SKP_Silk_process_gains_FIX.c \
+src/SKP_Silk_process_NLSFs_FIX.c \
+src/SKP_Silk_pulses_to_bytes.c \
+src/SKP_Silk_quant_LTP_gains_FIX.c \
+src/SKP_Silk_range_coder.c \
+src/SKP_Silk_regularize_correlations_FIX.c \
+src/SKP_Silk_resample_1_2.c \
+src/SKP_Silk_resample_1_2_coarse.c \
+src/SKP_Silk_resample_1_2_coarsest.c \
+src/SKP_Silk_resample_1_3.c \
+src/SKP_Silk_resample_2_1_coarse.c \
+src/SKP_Silk_resample_2_3.c \
+src/SKP_Silk_resample_2_3_coarse.c \
+src/SKP_Silk_resample_2_3_coarsest.c \
+src/SKP_Silk_resample_2_3_rom.c \
+src/SKP_Silk_resample_3_1.c \
+src/SKP_Silk_resample_3_2.c \
+src/SKP_Silk_resample_3_2_rom.c \
+src/SKP_Silk_resample_3_4.c \
+src/SKP_Silk_resample_4_3.c \
+src/SKP_Silk_residual_energy16_FIX.c \
+src/SKP_Silk_residual_energy_FIX.c \
+src/SKP_Silk_scale_copy_vector16.c \
+src/SKP_Silk_scale_vector.c \
+src/SKP_Silk_schur64.c \
+src/SKP_Silk_schur.c \
+src/SKP_Silk_shell_coder.c \
+src/SKP_Silk_sigm_Q15.c \
+src/SKP_Silk_solve_LS_FIX.c \
+src/SKP_Silk_sort.c \
+src/SKP_Silk_sum_sqr_shift.c \
+src/SKP_Silk_tables_gain.c \
+src/SKP_Silk_tables_LTP.c \
+src/SKP_Silk_tables_NLSF_CB0_10.c \
+src/SKP_Silk_tables_NLSF_CB0_16.c \
+src/SKP_Silk_tables_NLSF_CB1_10.c \
+src/SKP_Silk_tables_NLSF_CB1_16.c \
+src/SKP_Silk_tables_other.c \
+src/SKP_Silk_tables_pitch_lag.c \
+src/SKP_Silk_tables_pulses_per_block.c \
+src/SKP_Silk_tables_sign.c \
+src/SKP_Silk_tables_type_offset.c \
+src/SKP_Silk_VAD.c \
+src/SKP_Silk_VQ_nearest_neighbor_FIX.c
+
+
+libSKP_SILK_SDK_la_CFLAGS = $(AM_CFLAGS)
+libSKP_SILK_SDK_la_LDFLAGS = $(LIBS)
+
+library_includedir = $(prefix)/include/silk
+library_include_HEADERS        = src/SKP_Silk_common_pitch_est_defines.h \
+src/SKP_Silk_define_FIX.h \
+src/SKP_Silk_define.h \
+src/SKP_Silk_Inlines.h \
+src/SKP_Silk_macros.h \
+src/SKP_Silk_main_FIX.h \
+src/SKP_Silk_main.h \
+src/SKP_Silk_perceptual_parameters_FIX.h \
+src/SKP_Silk_pitch_est_defines.h \
+src/SKP_Silk_PLC.h \
+src/SKP_Silk_resample_rom.h \
+src/SKP_Silk_SigProc_FIX.h \
+src/SKP_Silk_structs_FIX.h \
+src/SKP_Silk_structs.h \
+src/SKP_Silk_tables.h \
+src/SKP_Silk_tables_NLSF_CB0_10.h \
+src/SKP_Silk_tables_NLSF_CB0_16.h \
+src/SKP_Silk_tables_NLSF_CB1_10.h \
+src/SKP_Silk_tables_NLSF_CB1_16.h \
+interface/SKP_Silk_control.h \
+interface/SKP_Silk_errors.h \
+interface/SKP_Silk_SDK_API.h \
+interface/SKP_Silk_typedef.h
+
+bin_PROGRAMS = Encoder Decoder signalCompare
+Encoder_SOURCES = test/Encoder.c $(top_builddir)/interface/SKP_Silk_SDK_API.h
+Encoder_LDADD = $(lib_LTLIBRARIES)
+Encoder_LDFLAGS = $(LIBS)
+
+Decoder_SOURCES = test/Decoder.c $(top_builddir)/interface/SKP_Silk_SDK_API.h
+Decoder_LDADD = $(lib_LTLIBRARIES)
+Decoder_LDFLAGS = $(LIBS)
+
+signalCompare_SOURCES = test/signalCompare.c $(top_builddir)/interface/SKP_Silk_SDK_API.h
+signalCompare_LDADD = $(lib_LTLIBRARIES)
+signalCompare_LDFLAGS = $(LIBS)
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibssilkNEWS"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/libs/silk/NEWS</h4></div>
<a id="freeswitchbranchesrupa_limitlibssilkNEWSfromrev17079freeswitchtrunklibssilkNEWS"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/libs/silk/NEWS (from rev 17079, freeswitch/trunk/libs/silk/NEWS) ( => )</h4>
<pre class="diff"><span>
<span class="info">
Deleted: freeswitch/branches/rupa_limit/libs/silk/README
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibssilkREADMEfromrev17079freeswitchtrunklibssilkREADME"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/libs/silk/README (from rev 17079, freeswitch/trunk/libs/silk/README) ( => )</h4>
<pre class="diff"><span>
<span class="info">
Deleted: freeswitch/branches/rupa_limit/libs/silk/Silk_SDK.sln
</span></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibssilkSilk_SDKslnfromrev17079freeswitchtrunklibssilkSilk_SDKsln"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/libs/silk/Silk_SDK.sln (from rev 17079, freeswitch/trunk/libs/silk/Silk_SDK.sln) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/libs/silk/Silk_SDK.sln         (rev 0)
+++ freeswitch/branches/rupa_limit/libs/silk/Silk_SDK.sln        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,44 @@
</span><ins>+
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Silk_FIX", "src\Silk_FIX.vcproj", "{56B91D01-9150-4BBF-AFA1-5B68AB991B76}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Dec_SDK", "test\Dec_SDK.vcproj", "{82685D7F-0589-42BD-877C-31A952D53A8E}"
+        ProjectSection(ProjectDependencies) = postProject
+                {56B91D01-9150-4BBF-AFA1-5B68AB991B76} = {56B91D01-9150-4BBF-AFA1-5B68AB991B76}
+        EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SignalCompare", "test\SignalCompare.vcproj", "{7FE8F544-9175-40C3-A187-7F15CE9A75D8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Enc_SDK", "test\Enc_SDK.vcproj", "{6D97A8EF-5724-4D85-8BF4-C583714BBA78}"
+        ProjectSection(ProjectDependencies) = postProject
+                {56B91D01-9150-4BBF-AFA1-5B68AB991B76} = {56B91D01-9150-4BBF-AFA1-5B68AB991B76}
+        EndProjectSection
+EndProject
+Global
+        GlobalSection(SolutionConfigurationPlatforms) = preSolution
+                Debug|Win32 = Debug|Win32
+                Release|Win32 = Release|Win32
+        EndGlobalSection
+        GlobalSection(ProjectConfigurationPlatforms) = postSolution
+                {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug|Win32.ActiveCfg = Debug|Win32
+                {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug|Win32.Build.0 = Debug|Win32
+                {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release|Win32.ActiveCfg = Release|Win32
+                {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release|Win32.Build.0 = Release|Win32
+                {82685D7F-0589-42BD-877C-31A952D53A8E}.Debug|Win32.ActiveCfg = Debug|Win32
+                {82685D7F-0589-42BD-877C-31A952D53A8E}.Debug|Win32.Build.0 = Debug|Win32
+                {82685D7F-0589-42BD-877C-31A952D53A8E}.Release|Win32.ActiveCfg = Release|Win32
+                {82685D7F-0589-42BD-877C-31A952D53A8E}.Release|Win32.Build.0 = Release|Win32
+                {7FE8F544-9175-40C3-A187-7F15CE9A75D8}.Debug|Win32.ActiveCfg = Debug|Win32
+                {7FE8F544-9175-40C3-A187-7F15CE9A75D8}.Debug|Win32.Build.0 = Debug|Win32
+                {7FE8F544-9175-40C3-A187-7F15CE9A75D8}.Release|Win32.ActiveCfg = Release|Win32
+                {7FE8F544-9175-40C3-A187-7F15CE9A75D8}.Release|Win32.Build.0 = Release|Win32
+                {6D97A8EF-5724-4D85-8BF4-C583714BBA78}.Debug|Win32.ActiveCfg = Debug|Win32
+                {6D97A8EF-5724-4D85-8BF4-C583714BBA78}.Debug|Win32.Build.0 = Debug|Win32
+                {6D97A8EF-5724-4D85-8BF4-C583714BBA78}.Release|Win32.ActiveCfg = Release|Win32
+                {6D97A8EF-5724-4D85-8BF4-C583714BBA78}.Release|Win32.Build.0 = Release|Win32
+        EndGlobalSection
+        GlobalSection(SolutionProperties) = preSolution
+                HideSolutionNode = FALSE
+        EndGlobalSection
+EndGlobal
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibssilkconfiguregnu"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/libs/silk/configure.gnu</h4></div>
<a id="freeswitchbranchesrupa_limitlibssilkconfiguregnufromrev17079freeswitchtrunklibssilkconfiguregnu"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/libs/silk/configure.gnu (from rev 17079, freeswitch/trunk/libs/silk/configure.gnu) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/libs/silk/configure.gnu         (rev 0)
+++ freeswitch/branches/rupa_limit/libs/silk/configure.gnu        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,4 @@
</span><ins>+#! /bin/sh
+srcpath=$(dirname $0 2>/dev/null ) || srcpath="."
+$srcpath/configure "$@" --disable-shared --with-pic
+
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibssilkconfigurein"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/libs/silk/configure.in</h4></div>
<a id="freeswitchbranchesrupa_limitlibssilkconfigureinfromrev17079freeswitchtrunklibssilkconfigurein"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/libs/silk/configure.in (from rev 17079, freeswitch/trunk/libs/silk/configure.in) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/libs/silk/configure.in         (rev 0)
+++ freeswitch/branches/rupa_limit/libs/silk/configure.in        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,26 @@
</span><ins>+# -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+AC_PREREQ([2.59])
+AC_INIT(libSKP_SILK_SDK, 1.0.2, brian@freeswitch.org, libSKP_SILK_SDK)
+AM_INIT_AUTOMAKE(libSKP_SILK_SDK,1.0.2)
+
+# Checks for programs.
+AC_PROG_CC
+AC_PROG_LIBTOOL
+
+# Checks for header files.
+AC_HEADER_STDC
+AC_CHECK_HEADERS([float.h stdint.h stdlib.h string.h])
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_C_CONST
+AC_C_INLINE
+AC_TYPE_SIZE_T
+
+# Checks for library functions.
+AC_FUNC_MALLOC
+AC_CHECK_LIB([m],[pow])
+
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
</ins></span></pre></div>
<a id="freeswitchbranchesrupa_limitlibssilkdocfromrev17079freeswitchtrunklibssilkdoc"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/libs/silk/doc (from rev 17079, freeswitch/trunk/libs/silk/doc)</h4></div>
<a id="freeswitchbranchesrupa_limitlibssilkdocSILKDataSheetpdf"></a>
<div class="delfile"><h4>Deleted: freeswitch/branches/rupa_limit/libs/silk/doc/SILKDataSheet.pdf</h4></div>
<a id="freeswitchbranchesrupa_limitlibssilkdocSILKDataSheetpdffromrev17079freeswitchtrunklibssilkdocSILKDataSheetpdf"></a>
<div class="copfile"><h4>Copied: freeswitch/branches/rupa_limit/libs/silk/doc/SILKDataSheet.pdf (from rev 17079, freeswitch/trunk/libs/silk/doc/SILKDataSheet.pdf) (0 => 17080)</h4>
<pre class="diff"><span>
<span class="info">--- freeswitch/branches/rupa_limit/libs/silk/doc/SILKDataSheet.pdf         (rev 0)
+++ freeswitch/branches/rupa_limit/libs/silk/doc/SILKDataSheet.pdf        2010-03-23 16:35:38 UTC (rev 17080)
</span><span class="lines">@@ -0,0 +1,4433 @@
</span><ins>+%PDF-1.4
+%\xB5\xED\xAE\xFB
+3 0 obj
+<< /Length 4 0 R
+ /Filter /FlateDecode
+ /Type /XObject
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources 2 0 R
+>>
+stream
+x\x9C\xED]\xDBn4\xB9q\xBE律\xD8\xD9\xE6\x99_        \x90
+ȅ\xE1\xA9%90\xF4;\xB1\xD7@\xF2\xF8\xA9\xAF$\xA7g\xB43\x9B\x9E\xBD\xB3
+\xADT5\xDDUd\xB1\xCE$\xE7\xFF벞\xEB\x9A\xF7'\xFA\xA3E\xE7*\xFD\xE1\(>\x9D\xFE\xF6\xA7\xD3\xF7/\xEB\xE9O?-)\xA5sM\xFE\xE4
+}\xCA\xE9\xDB)\xE5x\x8E%t\xCCg\xC7\xF8u={\xFA\x9Dj=\xB7ZO\xDE\xC7s\xA9\xED\xB4d\xD7Ύ\xC8b;\xE5\xD8\xCE>\xFB\x8E\xC9%\xD0o\xD7IlL6"R\xFD9\xAE~\xE2k\xBF\xA6\xF3\xEA\xCB)\xA7x^]>\xF9\xCEѝ:W\x89D\xAA\xF1\xECC4\x8C\xCD\xCD\xDE\xDF\xCFu;}\x90\x90r,kjRZ˨y\x97\xCA,\xA3XΩ\xD4YF)\xD3cm\x96\x91b\xFC\xCF5\xE4\x86\x8Fd\xCDa\x91"HD)\x9C\xAB\x8F\x83ٮ\xC9u
+\xCF"j4ܒg)Ư\xEDL\x93ȩ\xF2H}t\xE7L+Թ*\x95Fo\xF8\x8E\xB2\xC9)\x85\xFD\EF1\xFBɦ\xA4\i\xAC\xF4\xFD\xF6B
+\xB4\xE2e\x96Q\xAA\xCD\xCD2RXERG\xA5Fm(n\x92"6\x9E\xAB\x80b0ߐC'a\xF0\x85\x90\xA0\x9D\xF1BH\x82\xF1.\x9EM=\xE7p\x86\x91\x8E\xB6\xE6'!        \xCCB"\x8Di\xB1\xA3trF`7W\x91QM\xB1\xAD0\xB6\xE6\xC9\xDA\xF0G,57ˈim\xB3\x8C\x8A?w!#ôt\x86\xA9\xB5pNDû|Ni\x91"`jdb\xAEuL\xCE\xE9\x9CH\xF5\x94B'        \x9AF\xBE\x90\x90b`\x9E\x91$\xF3e\x8B\xF7\x89&\x9C\x87\x88f[\xABbъҹ\x85\xDDTED\x8El\x8D$\x99l\xFE\xA8\xFCo1\xCA<\xB4DKF28\xD3o2i,@&\xED$\xEA\x89(\x95s\xA8\xA5C(\xD3,\x86\xF8\x8E,\xA9\xA5\xFE\xB2\x81B{\xEB0Z }\x90\x97]-\xE7H\xE6\xBF(m\xB7\xCEZ60}\xF9r\xDCO\x97<\x9A_C\x9F\xACF\x89=-m\xAA4&\xFAɑ\xD5
+7\x926P\xA4        +ƹ\xB3\xF7\xFDm\x83\xBAxA\x83L\xAD\xDAۮ\x82K>-F^᭳W\x84\x8DM_ߍ\xFD\xE19\xB7\x880D\x83$ʙ\xE6l\x88\xE8Y\xC9\xE0\xA0`\xBF\xBE\xF2\xAAew\xAE\xA5u\x90G\xB5LZ1\xAB\x9B\xFA\xEB*\xF9\xAD#h\xD8p%\xFA\xBA#\xFD\x853Z\x8C\xBE\xC2[\xE7\xAF\x9D\xBE\xBE\xFDó\xF6i\xB2\x89+x\x9Av\xC7D\xA2\xE1ȗh\xA00\xE5`|\xE5\x9CS\xEE0P\xC3\xCA\xDA#+r\x83\x84\xC1\xCAd\xB2
+k\x89R\xC5\xF9\x85\xB71{\xC2\xC6\xD9I\xEC\xA6\xF2\xB0\xDC*\x8C%T&\xF0\xED\xD41\xAE\x9EWR\xB1@$\xF1t\xABc\xF34Q\xB7\xA6\x93\x82\x93xi(O~\x8Ec\xB1\x92\xE8\xB02\xD9&\xD1\xC8e
+b\xAD\x9D\x89o\x85~n\x83\xD4\xF7
+^\x8BG\xBD        \xBBVb\xEC\xC39{\xFFf\x985p@s\x8E\x84Oq\x98\xBC\xCCJ^N6T\x83\xC8\xD9\xD3\xC0\xE8\xBDE\xB1\xB1%\xDA\xCB*\xF5\xAD#\xA2\xA4\xFA\xB6\xCB+\xCBcQ\xEAo\x9D\xBBa\xFA\xE8\x94\xC0~\xFCO<B\xEB|fE\xAD)\xD1\xC4;&\xAC$L2KZN\xA5r\x85\xFDl@.\x87 \xAB0V\x9E\xC6?ay\xB9X)tXylC6\x9Ei:J`q\xEE(<\xDE\xC6(\xD3G\xA9^\x93Gu\xA5\xB8Q\x88O-\x90@DŽU2\xB2J\xC9F"\xE1\xDFH\xB1s%\xF3\xCA\x86\xFD\xC7L.:\x8DGȷ9\xE4XF\xC2`e\xB2
+Lq\xE4\xF6\xEADB\xE3X\xE7\xD2]\x87b\xFA8\x8D\xC4~*\x8FkA!\xF5\x81\xDDQʋhIZ`\xB2Ș)\xE0\x91\xE2Q\xDFH\xBD)\xF0D\xB2/\xA46
+\x92 "\xD6^X0\xA15\xC9V\xF5\xF5+\x83m`\x90m\xE72( 3\xF1q\xF00x\xB31\xF4l\x88\x9D\xC2n\x8F\xAB \xAC\x96;\xD2Dq\x98T\xC00\xE4phaN\x81|g\x94)\xD32\x90\xE8%\xB92*Ш,\xA9\xA3\xC8!\x91\x9DD\x87\x95\xC960\xF4\xBB\xAEi"\xD1%\xF4upQx\xE3\xB0'l\x9CFb?\x95\xC7U\x80^,$Ux\x98\xE6\x90\xE1u\xC97\x90\xA6R\xC3a\xC6&9\xF1\x9AE\xD7,\xFEڤ4\xAD1(tXyLZ@ʎ89H\xB0\x9D\x87\xCED\xC1m\x8C\xC2\xE8\xE36
+\xBB\x89<\xAE\xE6t2J`v\x86I\x8E3\xA9@\xC5qB\x8ABE2\xFA@,b0\!\xA6\xDE\xC2x$d\xCDz\x94\x84\xC1\xCAd\x98\x92)\xF6\xE5\x89D%\x84L\xDC\xC6(\xF4\xF3\xEE+\xE5}\x83\x97\xC1\xE2\xD1L\xC8\xD3\xFD\x94\xFF\xC2\xB8\xB5p \xB7\xFC\xCEU        \xBB#\\xE0\x8A\xD8\xD9#        \xF1\xB0t\xEEYZ\xC7h7Hh\x9A\xF4<\xB0\x8FC16L\xA5\xA0\xE0\xF2\x8B3AG5ke\x8D\x96\xB5C\x91\xA3\xA7mR\xB2\xEA\xEB\x89\xF2\x96\x8C4$J\xF0Q\xF3'u%Ϭ2gq\x82\xF2\xB6\x81][\x91\xF3\xB9\xADOP\xE0\x88\x9D\xBC\xC1[\xE7ߟ\xB0\xF1\x85\x97\xC1\xE3\xE1< \xB3\xA3.p`\x90P\xE4\x81\xA2QC\x95\xA21\xE7\xE6
+Ð%YE GB\xBC>\xFE6\xA7\xD41\xE4\xB2\xD1K\xB1\xD7]
+g\x87\xC5\xEB\xB1\x8D1(\xA6\x8FOI\xECg\xF0\xB8\xDD\xC7\xD1}B\!\xBB7YZ\x89w\xA5\xBD/\xD85\x8C\xFCn\xE6~Z\x84\x94\x90\x8D\xD8Hܣ\xD9\xC0dւA\x82|9_\xE7\xA2\xF06\xC6aO\xF4\x91\x89\xDDT~\x81\xE9G4\x99\xAC\xB2\xF8v\xEARQJ\xE1<\x95\xD1\xE8P\x9E\x86n\x8FwT\O0\xC2\xC5*I\xE9\xF4\x91u\xE5\xDE^\xA7\xD0\xE1^\xCE\xA6R\x94\xABu"\x81\xDEp\xC6E\xE1\xAD\xC3\xD0A*\x97\xC1\xE2Q\xC3'Ã\xEB\xE4d\x92\xFB?C\x997i\xA8Z\x8B\ˊ]]\x99\xF2RWm)Y\xEB\xAF+\xA4\xE47\x83\xD1R\xA2\xF9-\xAB\xEF\xEB+\xA6\x8FN        \xBCϼr~j\xD1\xF4۩cȥ\xA0\x92p\xB4\xB1\x8EZc\xA9S%BS\xA7\x9CO\xE2\xA6`(5A        d\xEC\xDCh"\xE7tҷ\x97\xEE\xEF\x8DA\xF7\xF7}\xF6\x84
+Q)\xBC\x8Fz=\x8A\x955\xE8\xAAE8|C\x90\xA1`\x91\x8A\x8F\xA1\x97\xC95\xD3ߔ[\xE4#\xE7\xA1wW\xED9\xF2#\x96\xB6        \x83\x95\xC760\xA1\x90\xAA\xB4\x89q\xA8a:\x85\xB71{B\x87\xA9\\x8FG\xBB\-\x8B\xDB\xC5Z%\x84\xFC\x8E!J\xA1\x9D%\xC9I\xAC\xE5+%uuFÑ\x86k\xE1\x98!\xA5/\xBCO\xA1$V&\xDB\xC0\xA4ȿ        \xF2_\xE8Jv.
+oc\x{184373}\x93\xD8M\xE5t\xFA\xC8
+\xE9\xBBP\xE5\xC0\xAD>Ő_\xC1^I"G\xCC\xFD8\xD5\xDCD\x8E\x9ASP\x85!RAt\xE2\xFA#N\xF7L\x8C\x84\xC1\xCAd\x9B0\xEEdo\x93\xFD\xD2\xE3\xA4\x9D\x83\xC2\xDB\x83=\xD1G\xEDN\xFB<>uO\xC1\xC9E\xEE\x9FDn\xFBtLq'
+\xBA\xB7y\xDCؐTO\x99\x8A./='{\x82\xF29NE\x94B\x87\x95\xC760\x94\x92\xEAO$4i4&=\xAD\xEC\xA3PL\xA5Q\xD8O\xE4a        dJ\xB0\x9F\x80
+&\xF8\xED\xD41l\x84\xFE\x94Whq\x92ԋ\x9Cvjh\xB6\xB9sǽI\xF3\xC5A\xEB\xD9V&\xDB\xC0\xC4H\xE5\\x98H\x90ES\x9Aܙ\xB8\x8DQ\xA2R\xDF7x,U\x81*\xFDkT;uL\x8E\xE4\xBFi,\xD0Y\x93\xA1hI\xB5\x9AW\xC5K}hIT\xB7A\xD1\xFB[\xF7\x96x\xC7P\x94\xD7\xD7)\x9B\xE7^y\xA7\xAE\x88\xAD\xB3VD\x99Q؍\xFD\xE1I\xEB\xFE\xC2w\xB2\xB7\xF2m\xEC?\xA0a^O\x9F\xA7"I\xDC@8\xE7\xD1Z f\xC4\xC3]B
+\x90&\x8C2\xFA\xE4\xF1\xADV\xE1]\x8D\xB2\xA6Zyxu-\xCFqi
+\xDC*        j\xB5\xEC\xEC\x94֕+\x80\x82}\x92w\xA0\xA4!S\xDDl0R\xD2\xCA\x87\xFD        \xA2\xA8\xF4\xF1%\xB5C\xE0b\xBC\xAE\xBC\xB9T(\x83n0+\xEE\xA7\x90pܚ
+\xF4I\xD4@z\x83\xB2[\x9F\xFDY\xEC=1sh\xF4\xF9*L\xD8.        \x87ߠQ\xE4\x84Ժr\xC3\x9C7\x93`k\xC3`.\xA9\xB7\xBD\xC7#\x8E\x950\x85ʓi\x9E\x84ɕ\xB7G\xD07\x86B\x94"ΒR\xEB\xC2R+4C\xB8g\xB4Q(A4}\x95\x95
+\xAE?\xB0\xFAsc
+\x99\xEDi\xF1\xAD\xF2\xA2\xDA\xCCм\x8E,\xC7Rt'&\xCC+\x908\x8D\xF7\x95;"E\x86|\xFD@y"\xCE+P\xA2\xE5\x8A\xD8        \xD9\xB7P
+q\xCD\xE8a\x8E\x98Gbw\xE0\xD1\xE3\x80(Lo\x90\xC0I+\xFB\xB1(I\xB6\xC1K!\x9F+\xCCx\x84\x92I\xAAGΉa\xE4\x92C+F]\x8E72\xAF\xC9\xD8&\xA6\x98\x9C\xB2P\xA8`JcXC\x87\xE9\x8D ۖ\xFD        ,P\xE6a8\x9E\xA0\x8E[wPVC\x90\xFE(\x8COH\xAE\xAFKH0VۛX\xED\xC5\xA8\x8A\xA9'?AkZ\xB2g\x93\x81rv\x98J4\xD9\xE97\xCCRp\x80\x81J\xAE\x92V\xADs'T\xE4\x81\xF7\xAC\x83F<0\xF2F\xE2\x86\xDCB        g?\x86($\xD9\xE81DXYJ\x9E\x82T\xAA\xD0h\x91皴Cl\xBC\xBB]\xDA\xF4\xD5Ԕ5Lx*m\xB1\xEC\x98A\xF1\x9E\xA5Godm\xFA\xE0\x8BG:ʯΏ<'c\xAE\xC3c\x90\x86\xCEO@\x9FF\xA0\x87M:\x83^.`(\xB64,=,
+\x990\x9E\xAAx\x94\xE24\xFCsb\x83\xC0A
+\x81`\xB8\xE8\xD9\xFB\xA64\xA7\xA1\xBA\xF4\xA1\x9A
+;ޥ,\xA8]Xu\xF9\xD8\xBB\xA6O\xB2+g\xE9\x8A\xD8-AŌ\xEC\xD7\xE0\x8D۟X\x97\xFED\x88\xBCWL\xE5\xCB\x8E bX,Y\xBAg!3
+!\xC8\xDF<        \xC6b0*\xEEȭdÐ3j,-,\x96\x8E\xC0Rp:\x92\x98(=\xC0n\x96\$W\x80\x95\x8B#u\xA1\x8B\xC1\xFBa\xF6\xE4\xF6٠\xFAB>\xB3\xC34\x94\x96\xF7Z\xC3:s-\xC4gZd\xA7KZ,\xFB\x91Jmv\x99I2\x8B&\xA4\xF8\x89\xA6}\xC0A(\xA5\xF4\xE3\xE4.\xFA\xA3I\x9CM\xF6ܨG\xD40\x81\x8F\xF7|k\xC7N\xEF!\xEF|JX\xF2l\x96\x86\xEA\xB4\xBFUo\xE2\xDC\xC0̄.\xC7\xF3y\xFA\xCFc\xBC1\x{11A614}\x92\xE6\xD1\xC8D\xE1kh\xF6ذ\xFA\xCC|\xC2d\x8E>cjbp\xB9\x9C\xBD ƨ\xA9\xB8\xE5@t\x8D\xA1\xDC%=\x93!Ԛ'\xB8\xA3\x811\xBF\xC6\xC9ƌ\!\xF0K*\x8F\x865\x9CQ3\xBD\xE6x}o`\xE6y]
+\x88{%\xB4(\xC8?\xE4\x97*1\xE6 DN\x87\xC3H\xB0Y\x92`J\xDC        N\xDC\xCA{\x87PV        R
+o\x92\x94\xFA\xB5L\x8FP&I\xC2\xC1. \xB6h\xA7|\xC69\xEA%Sl\x88׃\xF4\x9Ad\xC3\xDDXà\x8B\xA7K\x94
+\xDC';\xB0\xD7QHii\xC6 \x910\xAE̻z\x9D`>%\x82\xF0R\x83gv)\x98x\xDE\xC8l\xF1t\xB83\xB2"\x860\xF6:1L\xDE\xEE\xDE\xCF\xF1\x84t,q\x82\x82p\xF1\xAD#\x92\x9C\x99\xA0\xD2b\xC3:\xA1\x9D\xBE@\xC4h\xD0b\xE3\xA7\x8C\xA6\x98\x80\xEC1\x8C"[Fk?y\xCEO_bY ab\x85l\x9C@!g\xE7\xFC\xD9HP\xD4E\xE621A\xC6\xE7\xA7aP~\x87\xD0\xE5\xC4\xCC ]\xE4w\x85K
+\x8EŔ\xF1q\xA2\xAA\x98\xCF        \xD38G\x84j*\xA3\xC2F\xCE\xC5Nm ^\xF6\\xA7\x81\xB8&\xFA\xD4G\xA2YH_ {d        h\xAE\xB2"3\x91I\xCA\x9C4\xA5&\x9EE>\x98`\xF3\x82Գ\x83\xEAy.2\xB9\xA0Y˯Y\xF2\xC4\xD9j\x90<\x85fK\x94\xD6\xC3\xE7g\x90`т\xA1\xA8\xFA\xE4\xCCF\xB3n)sj\xA0\x8C\xF9Al\xD3\xD0|\x95tx<\x919a!
+H \xA9jI\xAA
+\xCE\xB7\xA1\xF2U\x8DA\xFB\x8A\xA6\xC3L\xC1i\xC1f<\xE4\x92uZNG\xA3H-+_
+W\xDA&d\xB4Y\xD2\xE6$ͭO?\x8A\xA2*\xC7\xE5>\xC7C\xD8\xFA\x9C(G        <
+\xD9\xC3+*\x8C\x81\x90\xC3X\xFB#\xB0E\x86\x85B\x85\xC560d\x818\x93\x83q$\xDEg@\xF6Eu9Ŋ\xEC9\xB8\xA7D\xCDq6\xD64\xFDB\xF9\x83YsB\x98D\x90n%0\xC8\x89\x83T7\xEA        xo`\x9B0\x89K쉄\x9C\xE1\xD3aq\xC0R\xA7a\xFFp<\xC1Ex!\xF3Ō\xF8\xB8X\xE1\xA0!\xA9\x83\x99\xE2\x98-\xDC3\xF6\x93,ͽM\x84\xC1(\x94\xA2M*L\x95Fu^g\xF7p/\xBC\xF9\xC4N\xCEH\x8CfV\xE0\x82\xC804\x83\xC8;=\x8Dz5\x94\xEEA\x8A\xFC%Z\xE7rX[\xA5X7\x88\xE5\x93ׅ#k\\xB9\x90e\xF1q\xF1k\x918\xA3\xABު        \x901z.\xED6\xD4;\xC4mM"r\x9C\xC20\xE2\xE1L\x86:        ^\xC6LP\xFCI0bp\xE32\x96\xD7\xC8>\x8Fz\xC85Tv)}\xE6\xA8dZ\x9Ee\xE4D8\x80S\xF1E\xD6\xA1\xBB!\x86\x90\x87\xD1\xFB#I%\xE17 \xBA\x8E\x87dڦ\x87\xE7\xA3i\x9F\xE3!\x9C0\x81՛%Q3\xB6\xC1V\xCDq\x8F\xA8\xB9        \x83\x95\xC9d\xF5\xD0Zz\x988\xFA \xA8u<{\x8CO\xAEKٽ\xD0\xE8\xA7^h\xAC\xB0\xFF\xF5\x95\x83!\xA5η\xAA\xA6Mc\xAB؝j\xD3#U\xD6A\x89v\x98\xA4\xDC8\x86D`\xFE\xEC7\x9D(C\xCE\s!\xC4'o\xEC\xD3\xD0\xF6\x83_\x80\xBB\xFCd\xC7        \xBEXN (q
+Y\xBA-U\x8EDF\x93p\xE4\xCFgjc\xA0\x94L2]\xD83$q\xE08}\xA3-\xA2dMv\x96)[a6mk\xA1l\xC5\xD88n\x94\xCAe,B\xBCG\xF6\x88\xACJaЀK\xE8\x88O\x8E$h1-\xFD\x9D*5vA\x88e)\xEC8\xFF\xD8&D>Gi\x98\xA1        \x84 z>\x98\xA2'e\x84M\xAD[\xD6\xC0'\xDDP\x8E\xA3^_I8\xF0=0                4\xCDl\xF6        {Ɉ\x9A\x86\xC0I\xF9&\xB1\xF6\xA3\xC8i\x99\x8D9wJ\xC78\x88A\xE4&*\x9BUP\x84O\xAD\x9C\xA91\xD2        Se\xD5\xE0\xCAp\xE4\x91>        y\x98\xF7)Z\x9Eu\xBDQl\xF4G\xB0\xBB|\x82:\xE2\x80\x922/\xDE\xCC\xF3\xAA\xA35Qx\x91\xE1\x93\xF2\xB6\xC6s\xFB\xFBe\x95\x94}p@Gr\xB2i\xF4\x8C\xE18\xF6\xB5\xC3P\xF2*\xD9u\xC7n\x83KW\xB9\xB1s\xDEL\xE9&\xDEb\x88\x8Dvq`\xFAH\x875\xF5\xB6a\x8D\x94\x96Ic'`\x8FXN$\x8D9~U\xC30{FHy\x88\xB8(\xA6g\xC9QzM\x97I\xF3\xAD\xF6\xC7z\xC2\xFF\xFF\xFD_\xFA\xD69
+\x96D\x92\xFF\xFA\xE8\xF7\x8B?\xFDy\xF9\xC3O\xE4\xC5OoK<\xFD\xEB)\xC9\xDEܲ\x9E&\xC3M$t\xBC\x83\xFB[\x9E\xB9\xFB\x88\xED\xB99\xDE:_:ۈ\xEC\x98
+\x83nhc
+;\xBD\xEC!\xB1\xF1\xE0|g\xB9(\xBC٨\xA6\xF7%MV8\x8A\xC7RbMI\xB6\xC1|\xDA6\\xA5\xD5gs)\x80\x8D\xEA\xAE+\x99\xFCN\xC5:\xC4\xFC\xBB\x97\xEF?\xBE[\xBF[I\xF8?\xD2*\x90h-R\xB0\xC0c\xCA\\xC1\x94ȡR\xC2\xE0,\xFC\xB6\xFC\xE17\xEB\xBA:\xFA\xF1\xF4C\xEEc\x8D\xF4\x93\xCE\xF4S\xE8\xA7\xD2O\xD3\xCF^\xE8\xE7U\xFF\xDE\xE8\xE7\x8D~\xDE\xFAχ"_\xE5e\xD0d\x9C\xC2\xF6\x92s\xFAτ\x89\xF0\xEB\xB2{0
+\x97\xF4\xE1<\xC7Ͻ\x81\xC8o\xFFx\xFA\xF1\xF7\xCB?\xFF\xF8\xFF\x95
+J\xAB\xD22N \xDFX\x96\xC3,\xA2\x9C0\xBE\xA4\xFF\xFD\xE9\xC7?\x9F\x8EPF\xA0s\xE8w\__\x8FG\xB7\x96\xB4\xE6\xB6d\xB0@E%\x9F\xB2\xE4ٚ\xBF\xC1\x82\xAAG\xE7R\xB1-\xE6Ф\xF9b\x95\xA1X\xFE\xF0\xC8V%S\xE4]\xAF\xE7\xE0\x8FΡ!\x8Fw\xE8\xF0ܞ\xC30٣\xF3\xC0\xB9\xE1\x95bG\xD8{pj\xE7\x813lj\xB2\xBF+\xA55\xBD\x82\x9B\x81\xC1\xD7)b\xF3\xB7X\xBD\x98\xC8\xB3\xC9hH\xACذ\xBA\xC1fv\xA0O\xF1'
+M\x8AT\xEE֬\x9E\xA3\xC8i\xE5\xFBU7\xCBaEN\xBC#\xF3U<\x82\xB4\xB6\x83ħX\x87\xAD\xB1\xE4Q\xCF\xEEc]\xE7%\xB2\xD2\xDFM\xFE\xB6e\xE2\xD8\xF6\xB1\x8F:\x8B\x85\xFD\xA0\xEDb]\xD2_U\x83\xA1ɯ\xE3Y~7k\xACsU)\xE7I9v\x81\x93GI\xCC\xDC&J\xF4\xE5\xD1\xFE*\xB8wwC@\xF0\xE4o\xC7C*\xF7,Pv^\xB2 \x87\xB7\xA3^\xBB\xE1\xC5\xE3\xD4\xDA\xF5\xF8Y\x94\xC3\xFB\xFDp\xFA\xEBByV+\x85\x9B\xF7\xB8\xD8K\xE5\xDBw(
+\xFF\xF6~\xFA\x8F\xD3_\x96\xBF\x9E\xBE\xFF\xB7\x97\xBF\xFF\xFD\xFDo9m?\x9D\xBE\xFF\xEF|\xFAi\xFB˜\xC4f\xADT5\xD1\xF3\xCBLu6t$Y I\xEF\xFCT\xE9\xF3\xD3\xF7\xFF\xDBN\xFF\xF4_\xA7\xE3VAQ\xFAȸ\xDBs&14CzEx\xAAT\xDDk\xD0\xC0\x91\xFF\xB1*{sاs\xEAgYZ\x9A櫦y\xB1P?\xF8\x90\xDDzG\x85\xEE\x8Dy\xC5\xDE6\xDFc@eO8\x99\xB3-\xB1Ӂ\xE3\x81=\xFF\xB8\xB2\xF2\xF0U`        H&\x99\x99}\xCFSY2G"7\xA8\xD8\xB81\xAB\xA8\xB9.~\xE7c\x8C\xB0\x9D\xB0R\xE5m3K\xC8\xE3<3v*\x98];Έ
+\xCA\xC8W\xBF\xBE\x9C\\xE0\xCB1FE\xC9\xC4\xF8\xD8&_\xD732\xDF\x86\xDBAf8P\xC9\xF5 &E\xB55\xE6g\x93z\xD1I\xC1\x8F\xBF\xE4\xB3"\x8AW\xBE\xE8s\xB5L\xEEC4\xBD[(\xFE8\xCA\xD0\x95\xE2\x97\xCBők0b7\xD4
+\xC5\xC95%\xC5\xE5        WW'\\x9C_\x8E\x8A_\xC1\xF9\x9Fskz\xC7F\xCBW\x91}\x85\xBDgs\xEFj\xBFZԺ\x8F\xA9\xFE\\xC5\xC6!^\xFC"\xF6\xEA
+ݶ\xA8\x8B\xC3A?\xB4\xBD\x8D\xCFXlǷ){\xE0ꘈ\xF84\x90^\x8B\xD8\xC1e"\xE4\x9FRC9?\xF3r\xDF~\xCAS\x8AM\x9C$\x85ִ[G\xBC\xB8g\xE6wWX/\xAFY\xB0\x8C_tW.p\x8F\xB2\xC3i\xCEؼ\xDBψ\xB8\xF9\xF2\x84DT\xF5\xD3\xD5[\x8Ai\x91\xD3i\xB9\xB3\x9A\xAA\xEC\xF1y\xA1%\x8F/\xBB\xBD\xC6k\xAF\x89bP\xC5\xCC\xFB\xF4\xF6\xA8Цy\xAD\x9E\x90\xD1\xE6*t\xF7\xE3\xEB\xB0=Kw\x9D\xD9\x8D\xCA\xD3\xE8\xFD\xAB\xD9!L\x86L¿)R+\xFF>\xA6#\xA9\xC7\xF3\xA6\x80c\xBEĄ2\x8D#3\xF8\xD8\xCD \xAC?7\xFA\xE1U\xF0w_\xA0,\x8A\xE0\xEC\xCBr\xDBc<D\x90\xA3\xFB\xF12\x81\xBB\x8F\xC8\xC1.d\xC4vx8\x85\xC7.hF3\xE6\x8Av>L\x97\xDE
+<\xE0\xD5ڲd\x8E\xFB\xA8\x84f6g\xFB\xD1?\xD1g\x87\x9D-x\xA638՝\xB7\xF5\xA2
+,}\xE5Zv\xEE\xCBZJp\xD0Z6\xC4\xF1\x9B_z}\xAE\xB7H\xE9\x8B
+\xD3\xE9
+\xBD\xAB\xBE]\x9C\ٶ\xB3\x94`\x9Dg?}`\xC1W\xFB\x93\x9C\xAD̈́\xB5m=\x8An\x9A\xE1rx\x8A\xD2q\xC0\xC6H\xA4֮:\xC1\xEF#\x86\x99\xF5\xF3\xE7Y\x87\xBA\xAA\x9B\xB6!V\xF3\xF7i\x8DM:F\xDFR_\x9A\xFD\xD9\xDEqx\x9B>\xB8\xE7A\xBD\xCD9͙d\xBCl\x96\xE2\xA4        \xAER\xF8ȶ\xAC\xBE\xFByF:\xCF\xD2̓0\xB5a\xF8p\x94Z\xC0\xF3\xD1\xE3+\xC2ݴ\xAC\xCAs\xEB\xED-\xB7\x8EZ\xF8Eq\xB6\xE4ƪ\x9A\xE0\x99\xC0\xBB~\xF6!/\xF0\x829\xFD\xACb\xCE+\xFB\xB0?\xE8t\xE1\xB4a\xC5\xFFiJ\xE0MLD\xFE\xF6\xF4\x9D;\xC1\xCF-Zij\xB9\xF9\x85\xCBڛ\xAC\xFC\\xED\xEF\xAC\xCB\xC4'\xAB\xBA6\xFB\xF0\x8E\xDDYnBQ\x85\x8A3\xE1\xFBe~9\xB4\xCC\x9Dk\xF4\xAF\xE8^\xDF\xF2.e\xB8=\xE6;\xDB\xF7(\xE3\xAB\x84nbY\xEE\xB5:\xEE\xD2\xC7        I\xEC\xE3\xEE%r'\x92ߥ\xDBnJ\xC4\xDF\xDD,\xE4\xFD\x88\xFB\xA0ܻ\xBA\xA2\xCFN<^\x88\xE9\xF7\xF8\xE0\x86ȯ\xB3\xB29\xFE\xEC\xCAv/\xF2\x9B+B\x86Ψ\xE2\x8E,\xEF\xDF<{F8"\xF2\xCD5\xE1\x91]\xBE\x9DQ\x85\xB5\xC0\xB5\x8E,)Օ\xDC\xC9:\xEFR\x8E7\xEC\x8B%\xBFy\xAF\xCBv\x8F\xBA\\xE8\xE7\xAFl\xBBI\xFF\xA0\x95E\x8F\xEF\xC9\xE0\xC4\xEC\xD9r\xC1q\xE2p\xAD\x85O9\xCE\xDDXѹM\xCC)1\xE7@ył\xABL_\xFA\xBAë\xCC\xDF
+|\xDB\xD7q\xC0\xDCA|F\xFB\x86\x9A\x9A3=h"\xEE\xD1\xF1\xE6\xD2\xEE\xCEJַ\xE1\xF2z\x92\x8A|\xE4^\x87\xF3\xECZ^G\xB9\x83\x89#\xAEb߲mgv\xD5kJ\xA88\xB1\xDB\xF46e\xC4\x97\x9Fq&r\xDE\xC1\xAES>\xF9\xA6M\x88"\xF9fO\xD3hor\x9B\xC0r\xD2b8\x9A\xF4\xA1ʼn\x8E\xA57\x8B\xF4\xAE\x85\xE6S"\xBEY\xF6aa_\x85\xE1v+\x9D\xA7KV\xFBE\xAB\x9C<b\xA3Xb\xBAOT\xB9'\xB2\x9A }\xD9vys磺6=\xBE4\xF2s\xB0\xA8\xFDʰB\xDC\xDBH\xBD\x9Bp\xE2t4\xB7\xAEW\x9EKۣi\xA1\\xBF&\x9E\x9F\x90\xE1\xC7_,\xC5\xFE\xF2\x8A\xBES\xEB\xB8\xD7\xC0\xBD\xC7#\xAD\x97ğ\x90\xDE\xC0
+\xA7\xDB2\xB7D\xEDp\x8A\x83\xDBtu/\xF8g$\x9B8s.\x89\xF2\xC1\xA2*ק\xB6\xF8\x9B\x82~B\x9D\x86B\xAD oj^\xD1Z։\x9B\xF2G5_n\xFE\x85ʬ\xBD\x98~B\x86\xB0\xE2\xB8\xF1W\xF6*\xFA\xD1L\xDFl_\xAFlkr\xE7\xD0\xD7\xDDL\xD0\xD9F\xCB\xE5\xF7\xC39\xA6un\xAE6"\xDAA?\xC7\xDE\xD0\x8F\xBEYq\x99\x8E\xE6\x82\xC9z\xEF_\xCE\xE9\xB06\xE1\xEEH\xBA='\xD3'\xAF\xDE\x99y\xE2r\xECW͢\xF9A        Uލ\xB5\xC2Rs\x82H.\xAD2}\xAE/Lk\xED\x95\xE9\xCD\xF5>p\xF0\xEDY8\xFB\xFA+\x8C\xDC\xE1\xB7T-\xB7F\xCE=\x8D\x83\x9A\x9A|꽌\xDBZ\xF3\xAC\xFC\x9A\xBF)\x89\xC5d_\x9B\xBDΎ\xEF\xEDڲ\xD6\xEB崵il\x86\xC3\xF02u\xAA\xECtE\x9E\xB4}\xDFt
+#u\xB6^\xAB_5\xA7\xE5\x8C\xF5e\x95\xD4\xC7`~.\xE7~\xD7\xEC\xDA\x8C\xE84
+\xB6\xA9x\x9B\xCA:'\xE9\xA2 \xDAU\xB6$\xEF\xBA8\x8A\x9EQ\xE8\xE8N\xD4\xEB\xDA;\xDD}|M\xED{[.w\xD7(        \xD4ł=\xA3\x9FY,g\xBDRY\x9D\xE3\xFDL\xAD\xF1\xAF\xE9?\xC1\xBFbg2e\x9F\xBE\xA0\xEE\x8EG\xA6\xC0\xB7\xBA\xF9d\xDE^\xF6\xF7\xAEܥ\x9C\xCE\xD7z8#n\x96\x9A}-\x92\xA3\x8BZq\x8B\xCE\xD5\xE8f\xDD\xD5\xDF\xB6\xD5"G+\xBE(\xE4ڌ.\xD2\xE4\xA3\xF8\x82\xFB\xF2\xE7S{\xDB\xD0\xF5\\xDDMUwOH\x84)\xD4\xEB\xC1\x96'\xABy\xA4P\xEFk\xBB\x8A6Oh\xB6R\x90\xD7D\xF8\xB6\xAEoNj\xFA\xC8`\xBFp`OHޢ盪{\xC9L\xDCb\xE8i\xE7\x93\xFDK\xC4\xCD\xCE/l\xFF(\xE5f\xA5ؓ\xBDJ\xC4\xF7\xA4\xE7\xEB|\xE7        c\x8E\xC9\xD2\xCC+\xDD>V\xD2\xE3\x8F&\xC8_\xFA\xAA\x9E\xC8\xDDT\xC8=\xCD\xDF\xCF"\x9CE\xAEg>\x9By\xC3\xF6\xC1\xF8\x8A\xEC\xDB~6\xDC9\xF5y\x97r:_\xB9Y\x98\xE4AQ\x94f;77\xD9)\xA7\xB4G\xAB\\xFE^\xA7k\x95\xEC\xC7I\xEFm8D\xA3/\x84\xE5\xB0O\xE3~\xD1\xE3"<\xCE\xC0\xDC\xD8f8'\xF9\x97Wܢ\xC2\xF5\xE0_|\xAA\xC8S2"dK\xBD \x9A\x8F\xA1[K\xBC\x89o\xE7\xCE|\x91\x9F{\xD7m\xACۣ\xD8]\xF2~\xBEv\xB4b\xE0M>\x83xq:\xDCg=\xCD]~\xEE4w\xB2\xE9ϟ\xCF\xEDJ\xCEVS\xD4X\xBE\x97#\x93\xD7\xE4a=rv\xF8x}·2y\xB7N'\xB4\x8A\xEC\x8B\xF0t\x83\x88\x82O|G\xDD/\xB1\x93[v\xB8\xAC\x8E\x86o\x93\xE0\\xF6IX\x8E\xAFnL\xC57dƋNS\xD5\xE9m\xA4\xD7=-N\xF7\xF6\xAFcBr['\xEDf\xF4\xA6\xB8m\xBD\xBCt\xF0j&\x82\xFEq\xAF\x82\xEF\xA9P;\xE1\x89\xD8Q*\xE3\xFD\x88\xA4\xF5\x9C\xA0\xB3]DCY\xFCO\x90\xB8_R\xF2|\xE0\xDC\x9AԧAq\xCF︐\xF4\xE69.\x909Z?\xDFj\xF1k\xBF\xD9\xC2<\xD7\x84\xF7b[\xF4\x8F4\xD4\xE5        ²\xA7$;_6ܦG\xA1\xA7\xA1\x98U\xF55
+\xFA\x99z\xAD\xF9\xD2\xCEm\x9Bd\xE9S8?\x9D_\xE4\x93⇇\xAF-\xCF\xE8\xF9\x9F\xFF\x99n|9\xB3*\x95\xEF\xEE\xBEiW'\xD5'oy\xF46\xBE\x8ED\xAE\xFC\xE0\xDF \xD5qM\x8Bόކ\x9A\xF4\x98\xB9vR\x86;8z5͟\x83XA*y7\xAC \xDA:8L\x8C\xB3\xC2\xE1ޙ\xE0{\xCC*\xDD[B\xB3\xA2\xF0%f\xCDT\xD2ϧw\xE7\xD0\xCEA.\xF3
+\xAE\xF9\x9E\xE3+\xD8Qo%\xE0_V\xD3\xEFE\x98\xE3\xF1\xC1\xDBY\xF8\xDA)m>E|=̮\x91\xFA\xAA+m\xAE'\xE8\xC1m\xB3\xA78\\xDBܓLߛ\xE5K"\xFE\x89\\xF9n\x9B\xF6\xECw\xD2\xE4\xAC\xDF/\x8D\xDF"\x95\x9B,6Տe\xB1\xA8\x8E28\xE72y\xD2\xEE \x9B:A\xF5\xE0\xC1
+\xD1q\x8CLÍ9\xB1ݢ\xB2?z]g\xFA\x87\xC9\xEFҐ\xF7\xB1h\xCF6\xEF\x80o\xE6g\x83\x80u_\xF25\xEBFa\x87[8\xBEtT\xA3٥\x953C\xDB\Zu\xA2/\xB4%`\xA8W)\xC5\xF6\xE7#\xF8!\xED>\xE3\x8A-\xBEޝ\x93387)\xB9\x8B\xFE\xB2\xE3\xF9\xFE\x9E\xD7\xEF$\xFA^:\x8BU\xC1\xBE\xB4\xA1G\xFC\xBB:i8\xE3\x9Ed\x87\xA2~\xB1õ\xB7\xF8Ev\xF86Y\x83%\xE5<ʣ6\x98=\xBE\xB6p\xED)\xE6\xC5|U\xCFA\xF2z\xE9\x80\xDAd\xAC\xAB}\xDB
+\x9CA\x92\xA6\xB2U\x92\xDBpp\xB6\xE8\xC8T42#[\xFE\x8E\xC9*\xA2\xC5u;\xB7\xD6%\xB0\x89\xED\x98\xC1\xDA\xFA\x98d\xE0%\x96C\xA3\xC3?v&\xBE\xE1\xDAMܴ\xA2'X.\x98V)\xAB\xAF]\x85\x9B\x8E\xF0\xF5sbۓ\x98J\xAF\xE0\xDA_Ȭ.\x99BRY\xAD\xB8\xF7n\x8A-q\xE4\xDD\xDD\xE7\xB43\x89&<+\xA1@+\xCFi\xA8\xBEv\x93\xB36pi\x90\xAB>s\xF9\xD5\xC7=C̽\xB7\xFD4πF\xD0\xDB\xEE\xC1\x8F\xF0Aoԇ\xE9F}\xD0\xF5a\xBAQ\xF4F}\x98n\xD4m\x88\xC4\xE9F}Tq\xE2\x95G\x9CxD\xE5\xF3\xB1fJ\xD0l\xDFƘ\xE2\xFE\xCB9&\xFF\x{DD08}y\xA4\xC4\xEF\x91\xE8\xBA\xA1B\x9E\xF3ڃ\xD9\xF64        |=\xF5\xC5\xC1\xDE^m\xCDAhn\xAA\xE88\xBE\xEE_,jWZ\xBF\xF3\x87Q\x89=\xB1\x9EEM\xE2\xE4\xACKµ\xA7\xF5\xE2k\xA7\xB9\xF3@^e=\xC8+\xCE\xC41%rw7\xDEp\x94\x8E\xF7Ǿ\x98\xD1U\xF6x\x99X\xFD\xB0\xFC\x84\xB0\xC5
+endstream
+endobj
+4 0 obj
+ 8019
+endobj
+2 0 obj
+<<
+ /ExtGState <<
+ /a0 << /CA 1 /ca 1 >>
+ /s8 8 0 R
+ /s10 10 0 R
+ /s13 13 0 R
+ /s15 15 0 R
+ /s17 17 0 R
+ /s19 19 0 R
+ /s21 21 0 R
+ /s26 26 0 R
+ /s29 29 0 R
+ /s31 31 0 R
+ /s33 33 0 R
+ /s35 35 0 R
+ /s37 37 0 R
+ /s39 39 0 R
+ /s41 41 0 R
+ /s43 43 0 R
+ /s45 45 0 R
+ >>
+ /Pattern << /p6 6 0 R /p7 7 0 R >>
+ /XObject << /x9 9 0 R /x11 11 0 R /x14 14 0 R /x16 16 0 R /x18 18 0 R /x20 20 0 R /x22 22 0 R /x27 27 0 R /x30 30 0 R /x32 32 0 R /x34 34 0 R /x36 36 0 R /x38 38 0 R /x40 40 0 R /x42 42 0 R /x44 44 0 R /x46 46 0 R >>
+ /Font <<
+ /f-0-0 5 0 R
+ /f-1-0 12 0 R
+ /f-2-0 23 0 R
+ /f-3-0 24 0 R
+ /f-4-0 25 0 R
+ /f-5-0 28 0 R
+ >>
+>>
+endobj
+47 0 obj
+<< /Type /Page
+ /Parent 1 0 R
+ /MediaBox [ 0 0 612 792 ]
+ /Contents 3 0 R
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources 2 0 R
+>>
+endobj
+48 0 obj
+<< /Type /XObject
+ /Length 40
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 0.7 /ca 0.7 >>
+ >>
+>>
+>>
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854. x\xFB3
+endstream
+endobj
+9 0 obj
+<< /Type /XObject
+ /Length 58
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 1 /ca 1 >>
+ >>
+ /Pattern << /p49 49 0 R >>
+>>
+>>
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/0\xB1T(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4 d\x93\xE6
+endstream
+endobj
+50 0 obj
+<< /Type /Mask
+ /S /Alpha
+ /G 48 0 R
+>>
+endobj
+8 0 obj
+<< /Type /ExtGState
+ /SMask 50 0 R
+ /ca 1
+ /CA 1
+ /AIS false
+>>
+endobj
+51 0 obj
+<< /Type /XObject
+ /Length 40
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 0.399038 /ca 0.399038 >>
+ >>
+>>
+>>
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854. x\xFB3
+endstream
+endobj
+11 0 obj
+<< /Type /XObject
+ /Length 58
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 1 /ca 1 >>
+ >>
+ /Pattern << /p52 52 0 R >>
+>>
+>>
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/05R(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4 c\xD4\xE0
+endstream
+endobj
+53 0 obj
+<< /Type /Mask
+ /S /Alpha
+ /G 51 0 R
+>>
+endobj
+10 0 obj
+<< /Type /ExtGState
+ /SMask 53 0 R
+ /ca 1
+ /CA 1
+ /AIS false
+>>
+endobj
+54 0 obj
+<< /Type /XObject
+ /Length 40
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 0.399038 /ca 0.399038 >>
+ >>
+>>
+>>
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854. x\xFB3
+endstream
+endobj
+14 0 obj
+<< /Type /XObject
+ /Length 58
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 1 /ca 1 >>
+ >>
+ /Pattern << /p55 55 0 R >>
+>>
+>>
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/05U(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4 d4\xE3
+endstream
+endobj
+56 0 obj
+<< /Type /Mask
+ /S /Alpha
+ /G 54 0 R
+>>
+endobj
+13 0 obj
+<< /Type /ExtGState
+ /SMask 56 0 R
+ /ca 1
+ /CA 1
+ /AIS false
+>>
+endobj
+57 0 obj
+<< /Type /XObject
+ /Length 40
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 0.399038 /ca 0.399038 >>
+ >>
+>>
+>>
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854. x\xFB3
+endstream
+endobj
+16 0 obj
+<< /Type /XObject
+ /Length 58
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 1 /ca 1 >>
+ >>
+ /Pattern << /p58 58 0 R >>
+>>
+>>
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/0\xB5P(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4 d\x94\xE6
+endstream
+endobj
+59 0 obj
+<< /Type /Mask
+ /S /Alpha
+ /G 57 0 R
+>>
+endobj
+15 0 obj
+<< /Type /ExtGState
+ /SMask 59 0 R
+ /ca 1
+ /CA 1
+ /AIS false
+>>
+endobj
+60 0 obj
+<< /Type /XObject
+ /Length 40
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 0.399038 /ca 0.399038 >>
+ >>
+>>
+>>
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854. x\xFB3
+endstream
+endobj
+18 0 obj
+<< /Type /XObject
+ /Length 58
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 1 /ca 1 >>
+ >>
+ /Pattern << /p61 61 0 R >>
+>>
+>>
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/03T(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4 c\xD5\xE0
+endstream
+endobj
+62 0 obj
+<< /Type /Mask
+ /S /Alpha
+ /G 60 0 R
+>>
+endobj
+17 0 obj
+<< /Type /ExtGState
+ /SMask 62 0 R
+ /ca 1
+ /CA 1
+ /AIS false
+>>
+endobj
+63 0 obj
+<< /Type /XObject
+ /Length 40
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 0.399038 /ca 0.399038 >>
+ >>
+>>
+>>
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854. x\xFB3
+endstream
+endobj
+20 0 obj
+<< /Type /XObject
+ /Length 58
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 1 /ca 1 >>
+ >>
+ /Pattern << /p64 64 0 R >>
+>>
+>>
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/03Q(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4 d5\xE3
+endstream
+endobj
+65 0 obj
+<< /Type /Mask
+ /S /Alpha
+ /G 63 0 R
+>>
+endobj
+19 0 obj
+<< /Type /ExtGState
+ /SMask 65 0 R
+ /ca 1
+ /CA 1
+ /AIS false
+>>
+endobj
+66 0 obj
+<< /Type /XObject
+ /Length 40
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 0.399038 /ca 0.399038 >>
+ >>
+>>
+>>
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854. x\xFB3
+endstream
+endobj
+22 0 obj
+<< /Type /XObject
+ /Length 58
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 1 /ca 1 >>
+ >>
+ /Pattern << /p67 67 0 R >>
+>>
+>>
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/03W(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4 d\x95\xE6
+endstream
+endobj
+68 0 obj
+<< /Type /Mask
+ /S /Alpha
+ /G 66 0 R
+>>
+endobj
+21 0 obj
+<< /Type /ExtGState
+ /SMask 68 0 R
+ /ca 1
+ /CA 1
+ /AIS false
+>>
+endobj
+69 0 obj
+<< /Type /XObject
+ /Length 40
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 0.7 /ca 0.7 >>
+ >>
+>>
+>>
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854. x\xFB3
+endstream
+endobj
+27 0 obj
+<< /Type /XObject
+ /Length 58
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 1 /ca 1 >>
+ >>
+ /Pattern << /p70 70 0 R >>
+>>
+>>
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/07P(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4 c\xD6\xE0
+endstream
+endobj
+71 0 obj
+<< /Type /Mask
+ /S /Alpha
+ /G 69 0 R
+>>
+endobj
+26 0 obj
+<< /Type /ExtGState
+ /SMask 71 0 R
+ /ca 1
+ /CA 1
+ /AIS false
+>>
+endobj
+72 0 obj
+<< /Type /XObject
+ /Length 40
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 0.399038 /ca 0.399038 >>
+ >>
+>>
+>>
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854. x\xFB3
+endstream
+endobj
+30 0 obj
+<< /Type /XObject
+ /Length 58
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 1 /ca 1 >>
+ >>
+ /Pattern << /p73 73 0 R >>
+>>
+>>
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/07V(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4 d6\xE3
+endstream
+endobj
+74 0 obj
+<< /Type /Mask
+ /S /Alpha
+ /G 72 0 R
+>>
+endobj
+29 0 obj
+<< /Type /ExtGState
+ /SMask 74 0 R
+ /ca 1
+ /CA 1
+ /AIS false
+>>
+endobj
+75 0 obj
+<< /Type /XObject
+ /Length 40
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 0.399038 /ca 0.399038 >>
+ >>
+>>
+>>
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854. x\xFB3
+endstream
+endobj
+32 0 obj
+<< /Type /XObject
+ /Length 58
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 1 /ca 1 >>
+ >>
+ /Pattern << /p76 76 0 R >>
+>>
+>>
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/07S(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4 d\x96\xE6
+endstream
+endobj
+77 0 obj
+<< /Type /Mask
+ /S /Alpha
+ /G 75 0 R
+>>
+endobj
+31 0 obj
+<< /Type /ExtGState
+ /SMask 77 0 R
+ /ca 1
+ /CA 1
+ /AIS false
+>>
+endobj
+78 0 obj
+<< /Type /XObject
+ /Length 40
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 0.399038 /ca 0.399038 >>
+ >>
+>>
+>>
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854. x\xFB3
+endstream
+endobj
+34 0 obj
+<< /Type /XObject
+ /Length 58
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 1 /ca 1 >>
+ >>
+ /Pattern << /p79 79 0 R >>
+>>
+>>
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/0\xB7T(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4 d\xF6\xE9
+endstream
+endobj
+80 0 obj
+<< /Type /Mask
+ /S /Alpha
+ /G 78 0 R
+>>
+endobj
+33 0 obj
+<< /Type /ExtGState
+ /SMask 80 0 R
+ /ca 1
+ /CA 1
+ /AIS false
+>>
+endobj
+81 0 obj
+<< /Type /XObject
+ /Length 40
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 0.399038 /ca 0.399038 >>
+ >>
+>>
+>>
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854. x\xFB3
+endstream
+endobj
+36 0 obj
+<< /Type /XObject
+ /Length 58
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 1 /ca 1 >>
+ >>
+ /Pattern << /p82 82 0 R >>
+>>
+>>
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/\xB00R(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4 d7\xE3
+endstream
+endobj
+83 0 obj
+<< /Type /Mask
+ /S /Alpha
+ /G 81 0 R
+>>
+endobj
+35 0 obj
+<< /Type /ExtGState
+ /SMask 83 0 R
+ /ca 1
+ /CA 1
+ /AIS false
+>>
+endobj
+84 0 obj
+<< /Type /XObject
+ /Length 40
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 0.399038 /ca 0.399038 >>
+ >>
+>>
+>>
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854. x\xFB3
+endstream
+endobj
+38 0 obj
+<< /Type /XObject
+ /Length 58
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 1 /ca 1 >>
+ >>
+ /Pattern << /p85 85 0 R >>
+>>
+>>
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/\xB00U(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4 d\x97\xE6
+endstream
+endobj
+86 0 obj
+<< /Type /Mask
+ /S /Alpha
+ /G 84 0 R
+>>
+endobj
+37 0 obj
+<< /Type /ExtGState
+ /SMask 86 0 R
+ /ca 1
+ /CA 1
+ /AIS false
+>>
+endobj
+87 0 obj
+<< /Type /XObject
+ /Length 40
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 0.399038 /ca 0.399038 >>
+ >>
+>>
+>>
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854. x\xFB3
+endstream
+endobj
+40 0 obj
+<< /Type /XObject
+ /Length 58
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 1 /ca 1 >>
+ >>
+ /Pattern << /p88 88 0 R >>
+>>
+>>
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/\xB0\xB0P(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4 d\xF7\xE9
+endstream
+endobj
+89 0 obj
+<< /Type /Mask
+ /S /Alpha
+ /G 87 0 R
+>>
+endobj
+39 0 obj
+<< /Type /ExtGState
+ /SMask 89 0 R
+ /ca 1
+ /CA 1
+ /AIS false
+>>
+endobj
+90 0 obj
+<< /Type /XObject
+ /Length 40
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 0.399038 /ca 0.399038 >>
+ >>
+>>
+>>
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854. x\xFB3
+endstream
+endobj
+42 0 obj
+<< /Type /XObject
+ /Length 58
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 1 /ca 1 >>
+ >>
+ /Pattern << /p91 91 0 R >>
+>>
+>>
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/\xB04T(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4 d8\xE3
+endstream
+endobj
+92 0 obj
+<< /Type /Mask
+ /S /Alpha
+ /G 90 0 R
+>>
+endobj
+41 0 obj
+<< /Type /ExtGState
+ /SMask 92 0 R
+ /ca 1
+ /CA 1
+ /AIS false
+>>
+endobj
+93 0 obj
+<< /Type /XObject
+ /Length 40
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 0.399038 /ca 0.399038 >>
+ >>
+>>
+>>
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854. x\xFB3
+endstream
+endobj
+44 0 obj
+<< /Type /XObject
+ /Length 58
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 1 /ca 1 >>
+ >>
+ /Pattern << /p94 94 0 R >>
+>>
+>>
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/\xB04Q(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4 d\x98\xE6
+endstream
+endobj
+95 0 obj
+<< /Type /Mask
+ /S /Alpha
+ /G 93 0 R
+>>
+endobj
+43 0 obj
+<< /Type /ExtGState
+ /SMask 95 0 R
+ /ca 1
+ /CA 1
+ /AIS false
+>>
+endobj
+96 0 obj
+<< /Type /XObject
+ /Length 40
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 0.399038 /ca 0.399038 >>
+ >>
+>>
+>>
+stream
+x\x9C3T0¢t\xFDD\x85\xF4b.3C#sK#\x85\xA2T\x854. x\xFB3
+endstream
+endobj
+46 0 obj
+<< /Type /XObject
+ /Length 58
+ /Filter /FlateDecode
+ /Subtype /Form
+ /BBox [ 0 0 612 792 ]
+ /Group <<
+ /Type /Group
+ /S /Transparency
+ /CS /DeviceRGB
+ >>
+ /Resources
+<<
+ /ExtGState <<
+ /a0 << /CA 1 /ca 1 >>
+ >>
+ /Pattern << /p97 97 0 R >>
+>>
+>>
+stream
+x\x9C+T\xD0H,)I-\xCASH.V\xD0/\xB04W(N\xCES\xD0O4PH/\xE62P0P034R0\xB74R(JUH\xE3
+\xE4 d\xF8\xE9
+endstream
+endobj
+98 0 obj
+<< /Type /Mask
+ /S /Alpha
+ /G 96 0 R
+>>
+endobj
+45 0 obj
+<< /Type /ExtGState
+ /SMask 98 0 R
+ /ca 1
+ /CA 1
+ /AIS false
+>>
+endobj
+99 0 obj
+<< /Length 100 0 R
+ /Filter /FlateDecode
+ /Type /XObject
+ /Subtype /Image
+ /Width 4804
+ /Height 3600
+ /ColorSpace /DeviceRGB
+ /BitsPerComponent 8
+>>
+stream
+x\x9C\xECݻ\xAE\xDB0DQ\xFD\xFFO+E\x9A\x80\x81\xA9\x87Ej\xBCV\xB7+Q,|\xED \x83\xEC; \xACh[U\xF5\xC5 @\x88\xEA\xC9\xE0G\xD5 !\xAA'\x83U_ \x84\xA8\x9E~T}1 \xA2z2\xF8Q\xF5\xC5 @\x82\xEA\xBD`O\xF5\xDD @\x82\xEA\xBD`O\xF5\xDD @\x82\xEA\xBD`O\xF5\xDD @\x82\xEA\xBD`O\xF5\xDD @\x82\xEA\xBD`O\xF5\xDD @\x82\xEA\xBD`O\xF5\xDD \xC0\xEBU\x8FT_ \xBC\x9E5 d\xB3% \x80l\xB6\x84 \x90͖ \xB2\xD9 @6[B v8$\xB4% \x80W3$ \x80l\xB6\x84 \x90͖ \xB2\xD9 @6[B v8$\xB4% \x80W3$ \x80l\xB6\x84 \x90͖ \xB2\xD9 @6[B \xC8fK \xC1\x87\x84\xB6\x84 \xF0j\x86\x84 \x90\xED\x91-\xE1\x99\xFF\xDC\xD0, J\xDC \x9E\xDC\xDA @\xAD\xAB\xA3\xBF/'\x84\xAF>\xFE\x8Eo\xBC b\x9C\x9F\xB9\xFDΘn蛮\xFF\xFA $9?s=\xA6\xFB\xF7Y\xE5\xE6\xBC\xEC\x82/ @\x9E3\xB7        K\xBA\xE6\x89\xE5&\xBF\xF2\xFF/.\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)ep \x93m\xAB\xFA\xC1ki \xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)ej \x93m\xFB\xB5ki \xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)ej \x93mk\xFB\xA9ki \xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)ej \x93m\xCB\xFB\x9Dki \xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)ej 3m/\xF1#7\xD0LJ)\xA5\x94RnG9\xA4\x94\xB2*?%V8\xA4\x94R\xCA\xC9ٷ\xC8!\xA5\x94r\xA9<\xF9\xE1\xB9ԙ\xA5\x94RJ)\xA5\x94RJ)勲o f9\xFC~~҄\xA7,~\x8Fh&\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)ej 3mߙ\xFC\xC4\xC7_\xFF\xCB\xF3<\xAE9\x98\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94RJ)\xA5\x94\xA9