Thanks. I will put switch_ivr on top priority for documentation, after i finish this file, since it is the only file private directory.<br><br>Thank you.<br><br><br><div class="gmail_quote">On Tue, Oct 13, 2009 at 9:19 PM, Anthony Minessale <span dir="ltr">&lt;<a href="mailto:anthony.minessale@gmail.com">anthony.minessale@gmail.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">read_codec and write_codec are the current effective codecs.<br>real_read_codec and real_write_codec are the codecs set by the endpoint.<br>
<br>so when the endpoint sets the codec both read_codec and real_read_codec are the same<br>
but if someone temporarily adds another codec like L16 to transcode to raw then the L16 codec object goes into read codec and the original codec remains at real_read_codec.<br><br>the raw and enc frames are internally used by the transcoding process to hold the encoded or decoded version of the current audio packet depending on the situation.  <br>

<br>media_bug is an object that can be attached to the session to install callbacks in the transcoding path so your code gets called one time per audio frame giving you a chance to inspect or alter the contents.  (see my cluecon 09 presentation video for detailed explanation)<br>

<br>The things in #4 are mostly related to controlling the session per second soft limits.<br>the mutexs you asked about are for specific things in the core <br><br>global_var_mutex protects global variables<br>global_mutex protects a whole bunch of infrequent operations that cannot occur at the same time.<br>

throttle_mutex controls the access to the soft limit counter<br>sps is current sessions per second permitted<br>dummy_cng_frame is a global frame with the cng flag set which can be returned by the core read routine whenever it wants to send a cng frame.<br>

<br><br>I think the biggest focus should be on the switch_ivr family of files and any funcs used therein since that is the part of the api that most module programmers will need to use.  I guard the core with an evil 3 headed dog.<br>

<br><br><br><div class="gmail_quote"><div><div></div><div class="h5">On Tue, Oct 13, 2009 at 2:26 AM, Muhammad Shahzad <span dir="ltr">&lt;<a href="mailto:shahzad@vopium.com" target="_blank">shahzad@vopium.com</a>&gt;</span> wrote:<br>
</div></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div><div></div><div class="h5">
Hi,<br><br>As i discussed in last week&#39;s conference call, i have some identifers in source code for which i couldn&#39;t guess their purpose and / or use. So, i am going to list such identifiers here (one file at a time) and request you to give me hints on these, so i can complete the doxygen documentation for them.<br>


<br>FILE: &lt;FS-Trunk&gt;/src/include/private/switch_core_pvt.h<br>==================================<br>1. In struct <b>switch_core_session</b>, what is the difference between <b>read_codec</b> and <b>real_read_codec</b>, similarly <b>write_codec</b> and <b>real_write_codec</b>?<br>


2. In struct <b>switch_core_session</b>, what is the difference between <b>raw_read_frame</b> and <b>enc_read_frame</b>, similarly <b>raw_write_frame</b> and <b>enc_write_frame</b>?<br>3. What is struct <b>switch_media_bug</b>? I have some confusion ideas on it but better to know it from you.<br>


4. In struct <b>switch_runtime</b>, variables <b>offset</b>, <b>throttle_mutex</b>, <b>global_mutex</b> (how it is different then <b>global_var_mutex</b>?), <b>sps</b> and <b>dummy_cng_frame</b>?<br clear="all"><br>Thank you.<br>


<br><br>-- <br>________________________________________________________<br>|                                                                                                |<br>| FATAL ERROR                                                           --- O X |<br>


|_______________________________________________________|<br>|                        You have moved the mouse.                            |<br>| Windows must be restarted for the changes to take effect.   |<br>|                                        &lt;OK&gt;                                              |<br>


####################################/<br><font color="#888888"><br><br>Muhammad Shahzad<br>-----------------------------------<br>CISCO Rich Media Communication Specialist (CRMCS)<br>CISCO Certified Network Associate (CCNA)<br>

Cell: +92 334 422 40 88<br>
MSN: <a href="mailto:shari_786pk@hotmail.com" target="_blank">shari_786pk@hotmail.com</a><br>Email: <a href="mailto:shaheryarkh@googlemail.com" target="_blank">shaheryarkh@googlemail.com</a><br>
</font><br></div></div>_______________________________________________<br>
FreeSWITCH-dev mailing list<br>
<a href="mailto:FreeSWITCH-dev@lists.freeswitch.org" target="_blank">FreeSWITCH-dev@lists.freeswitch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-dev</a><br>
<a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br>Anthony Minessale II<br><br>FreeSWITCH <a href="http://www.freeswitch.org/" target="_blank">http://www.freeswitch.org/</a><br>ClueCon <a href="http://www.cluecon.com/" target="_blank">http://www.cluecon.com/</a><br>

Twitter: <a href="http://twitter.com/FreeSWITCH_wire" target="_blank">http://twitter.com/FreeSWITCH_wire</a><br><br>AIM: anthm<br><a href="mailto:MSN%3Aanthony_minessale@hotmail.com" target="_blank">MSN:anthony_minessale@hotmail.com</a><br>
GTALK/JABBER/<a href="mailto:PAYPAL%3Aanthony.minessale@gmail.com" target="_blank">PAYPAL:anthony.minessale@gmail.com</a><br>
IRC: <a href="http://irc.freenode.net" target="_blank">irc.freenode.net</a> #freeswitch<br><br>FreeSWITCH Developer Conference<br><a href="mailto:sip%3A888@conference.freeswitch.org" target="_blank">sip:888@conference.freeswitch.org</a><br>
<a href="http://iax:guest@conference.freeswitch.org/888" target="_blank">iax:guest@conference.freeswitch.org/888</a><br>
<a href="mailto:googletalk%3Aconf%2B888@conference.freeswitch.org" target="_blank">googletalk:conf+888@conference.freeswitch.org</a><br>pstn:213-799-1400<br>
<br>_______________________________________________<br>
FreeSWITCH-dev mailing list<br>
<a href="mailto:FreeSWITCH-dev@lists.freeswitch.org">FreeSWITCH-dev@lists.freeswitch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-dev</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-dev" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-dev</a><br>
<a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br>________________________________________________________<br>|                                                                                                |<br>| FATAL ERROR                                                           --- O X |<br>
|_______________________________________________________|<br>|                        You have moved the mouse.                            |<br>| Windows must be restarted for the changes to take effect.   |<br>|                                        &lt;OK&gt;                                              |<br>
####################################/<br><br><br>Muhammad Shahzad<br>-----------------------------------<br>CISCO Rich Media Communication Specialist (CRMCS)<br>CISCO Certified Network Associate (CCNA)<br>Cell: +92 334 422 40 88<br>
MSN: <a href="mailto:shari_786pk@hotmail.com">shari_786pk@hotmail.com</a><br>Email: <a href="mailto:shaheryarkh@googlemail.com">shaheryarkh@googlemail.com</a><br>