[Freeswitch-branches] [commit] r3522 - in freeswitch/branches/knhor/trunk: . conf libs libs/libdingaling libs/libdingaling/src libs/libteletone/src libs/udns libs/udns/debian libs/win32 libs/win32/etpan libs/win32/sofia libs/win32/udns src src/include src/mod/applications/mod_bridgecall src/mod/applications/mod_commands src/mod/applications/mod_conference src/mod/applications/mod_dptools src/mod/applications/mod_echo src/mod/applications/mod_enum src/mod/applications/mod_ivrtest src/mod/applications/mod_park src/mod/applications/mod_playback src/mod/applications/mod_rss src/mod/applications/mod_skel src/mod/asr_tts/mod_cepstral src/mod/codecs/mod_g711 src/mod/codecs/mod_g722 src/mod/codecs/mod_g723_1 src/mod/codecs/mod_g726 src/mod/codecs/mod_g729 src/mod/codecs/mod_gsm src/mod/codecs/mod_ilbc src/mod/codecs/mod_l16 src/mod/codecs/mod_lpc10 src/mod/codecs/mod_speex src/mod/dialplans/mod_dialplan_directory src/mod/dialplans/mod_dialplan_xml src/mod/directories/mod_ldap src/mod/endpoints/mod_dingaling src/mod/endpoints/mod_iax src/mod/endpoints/mod_portaudio src/mod/endpoints/mod_sofia src/mod/endpoints/mod_wanpipe src/mod/endpoints/mod_woomera src/mod/event_handlers/mod_cdr src/mod/event_handlers/mod_event_multicast src/mod/event_handlers/mod_event_socket src/mod/event_handlers/mod_event_test src/mod/event_handlers/mod_xmpp_event src/mod/event_handlers/mod_zeroconf src/mod/formats/mod_native_file src/mod/formats/mod_sndfile src/mod/languages/mod_mono src/mod/languages/mod_perl src/mod/languages/mod_php src/mod/languages/mod_python src/mod/languages/mod_ruby src/mod/languages/mod_spidermonkey src/mod/languages/mod_spidermonkey_core_db src/mod/languages/mod_spidermonkey_etpan src/mod/languages/mod_spidermonkey_odbc src/mod/languages/mod_spidermonkey_skel src/mod/languages/mod_spidermonkey_teletone src/mod/loggers/mod_console src/mod/loggers/mod_syslog src/mod/timers/mod_softtimer src/mod/xml_int/mod_xml_rpc support

Freeswitch SVN knhor at freeswitch.org
Sun Dec 3 17:55:38 EST 2006


Author: knhor
Date: Sun Dec  3 17:55:28 2006
New Revision: 3522

Added:
   freeswitch/branches/knhor/trunk/libs/udns/
      - copied from r3518, /freeswitch/trunk/libs/udns/
   freeswitch/branches/knhor/trunk/libs/udns.build.sh
      - copied unchanged from r3518, /freeswitch/trunk/libs/udns.build.sh
   freeswitch/branches/knhor/trunk/libs/udns/COPYING.LGPL
      - copied unchanged from r3518, /freeswitch/trunk/libs/udns/COPYING.LGPL
   freeswitch/branches/knhor/trunk/libs/udns/Makefile
      - copied unchanged from r3518, /freeswitch/trunk/libs/udns/Makefile
   freeswitch/branches/knhor/trunk/libs/udns/NOTES
      - copied unchanged from r3518, /freeswitch/trunk/libs/udns/NOTES
   freeswitch/branches/knhor/trunk/libs/udns/TODO
      - copied unchanged from r3518, /freeswitch/trunk/libs/udns/TODO
   freeswitch/branches/knhor/trunk/libs/udns/debian/
      - copied from r3518, /freeswitch/trunk/libs/udns/debian/
   freeswitch/branches/knhor/trunk/libs/udns/debian/changelog
      - copied unchanged from r3518, /freeswitch/trunk/libs/udns/debian/changelog
   freeswitch/branches/knhor/trunk/libs/udns/debian/control
      - copied unchanged from r3518, /freeswitch/trunk/libs/udns/debian/control
   freeswitch/branches/knhor/trunk/libs/udns/debian/copyright
      - copied unchanged from r3518, /freeswitch/trunk/libs/udns/debian/copyright
   freeswitch/branches/knhor/trunk/libs/udns/debian/rules
      - copied unchanged from r3518, /freeswitch/trunk/libs/udns/debian/rules
   freeswitch/branches/knhor/trunk/libs/udns/dnsget.1
      - copied unchanged from r3518, /freeswitch/trunk/libs/udns/dnsget.1
   freeswitch/branches/knhor/trunk/libs/udns/dnsget.c
      - copied unchanged from r3518, /freeswitch/trunk/libs/udns/dnsget.c
   freeswitch/branches/knhor/trunk/libs/udns/ex-rdns.c
      - copied unchanged from r3518, /freeswitch/trunk/libs/udns/ex-rdns.c
   freeswitch/branches/knhor/trunk/libs/udns/inet_pton.c
      - copied unchanged from r3518, /freeswitch/trunk/libs/udns/inet_pton.c
   freeswitch/branches/knhor/trunk/libs/udns/inet_pton.h
      - copied unchanged from r3518, /freeswitch/trunk/libs/udns/inet_pton.h
   freeswitch/branches/knhor/trunk/libs/udns/rblcheck.1
      - copied unchanged from r3518, /freeswitch/trunk/libs/udns/rblcheck.1
   freeswitch/branches/knhor/trunk/libs/udns/rblcheck.c
      - copied unchanged from r3518, /freeswitch/trunk/libs/udns/rblcheck.c
   freeswitch/branches/knhor/trunk/libs/udns/udns.3
      - copied unchanged from r3518, /freeswitch/trunk/libs/udns/udns.3
   freeswitch/branches/knhor/trunk/libs/udns/udns.h
      - copied unchanged from r3518, /freeswitch/trunk/libs/udns/udns.h
   freeswitch/branches/knhor/trunk/libs/udns/udns_bl.c
      - copied unchanged from r3518, /freeswitch/trunk/libs/udns/udns_bl.c
   freeswitch/branches/knhor/trunk/libs/udns/udns_codes.c
      - copied unchanged from r3518, /freeswitch/trunk/libs/udns/udns_codes.c
   freeswitch/branches/knhor/trunk/libs/udns/udns_dn.c
      - copied unchanged from r3518, /freeswitch/trunk/libs/udns/udns_dn.c
   freeswitch/branches/knhor/trunk/libs/udns/udns_dntosp.c
      - copied unchanged from r3518, /freeswitch/trunk/libs/udns/udns_dntosp.c
   freeswitch/branches/knhor/trunk/libs/udns/udns_misc.c
      - copied unchanged from r3518, /freeswitch/trunk/libs/udns/udns_misc.c
   freeswitch/branches/knhor/trunk/libs/udns/udns_parse.c
      - copied unchanged from r3518, /freeswitch/trunk/libs/udns/udns_parse.c
   freeswitch/branches/knhor/trunk/libs/udns/udns_resolver.c
      - copied unchanged from r3518, /freeswitch/trunk/libs/udns/udns_resolver.c
   freeswitch/branches/knhor/trunk/libs/udns/udns_rr_a.c
      - copied unchanged from r3518, /freeswitch/trunk/libs/udns/udns_rr_a.c
   freeswitch/branches/knhor/trunk/libs/udns/udns_rr_mx.c
      - copied unchanged from r3518, /freeswitch/trunk/libs/udns/udns_rr_mx.c
   freeswitch/branches/knhor/trunk/libs/udns/udns_rr_naptr.c
      - copied unchanged from r3518, /freeswitch/trunk/libs/udns/udns_rr_naptr.c
   freeswitch/branches/knhor/trunk/libs/udns/udns_rr_ptr.c
      - copied unchanged from r3518, /freeswitch/trunk/libs/udns/udns_rr_ptr.c
   freeswitch/branches/knhor/trunk/libs/udns/udns_rr_srv.c
      - copied unchanged from r3518, /freeswitch/trunk/libs/udns/udns_rr_srv.c
   freeswitch/branches/knhor/trunk/libs/udns/udns_rr_txt.c
      - copied unchanged from r3518, /freeswitch/trunk/libs/udns/udns_rr_txt.c
   freeswitch/branches/knhor/trunk/libs/win32/Download ETPAN.vcproj
      - copied unchanged from r3518, /freeswitch/trunk/libs/win32/Download ETPAN.vcproj
   freeswitch/branches/knhor/trunk/libs/win32/etpan/
      - copied from r3518, /freeswitch/trunk/libs/win32/etpan/
   freeswitch/branches/knhor/trunk/libs/win32/etpan/cleancount
      - copied unchanged from r3518, /freeswitch/trunk/libs/win32/etpan/cleancount
   freeswitch/branches/knhor/trunk/libs/win32/etpan/libetpan.vcproj
      - copied unchanged from r3518, /freeswitch/trunk/libs/win32/etpan/libetpan.vcproj
   freeswitch/branches/knhor/trunk/libs/win32/udns/
      - copied from r3518, /freeswitch/trunk/libs/win32/udns/
   freeswitch/branches/knhor/trunk/libs/win32/udns/libudns.vcproj
      - copied unchanged from r3518, /freeswitch/trunk/libs/win32/udns/libudns.vcproj
   freeswitch/branches/knhor/trunk/src/mod/applications/mod_enum/
      - copied from r3518, /freeswitch/trunk/src/mod/applications/mod_enum/
   freeswitch/branches/knhor/trunk/src/mod/applications/mod_enum/Makefile
      - copied unchanged from r3518, /freeswitch/trunk/src/mod/applications/mod_enum/Makefile
   freeswitch/branches/knhor/trunk/src/mod/applications/mod_enum/mod_enum.c
      - copied unchanged from r3518, /freeswitch/trunk/src/mod/applications/mod_enum/mod_enum.c
   freeswitch/branches/knhor/trunk/src/mod/applications/mod_enum/mod_enum.vcproj
      - copied unchanged from r3518, /freeswitch/trunk/src/mod/applications/mod_enum/mod_enum.vcproj
   freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey_etpan/
      - copied from r3518, /freeswitch/trunk/src/mod/languages/mod_spidermonkey_etpan/
   freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey_etpan/Makefile
      - copied unchanged from r3518, /freeswitch/trunk/src/mod/languages/mod_spidermonkey_etpan/Makefile
   freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey_etpan/mod_spidermonkey_etpan.c
      - copied unchanged from r3518, /freeswitch/trunk/src/mod/languages/mod_spidermonkey_etpan/mod_spidermonkey_etpan.c
   freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey_etpan/mod_spidermonkey_etpan.vcproj
      - copied unchanged from r3518, /freeswitch/trunk/src/mod/languages/mod_spidermonkey_etpan/mod_spidermonkey_etpan.vcproj
   freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey_odbc/
      - copied from r3518, /freeswitch/trunk/src/mod/languages/mod_spidermonkey_odbc/
   freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey_odbc/Makefile
      - copied unchanged from r3518, /freeswitch/trunk/src/mod/languages/mod_spidermonkey_odbc/Makefile
   freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey_odbc/mod_spidermonkey_odbc.c
      - copied unchanged from r3518, /freeswitch/trunk/src/mod/languages/mod_spidermonkey_odbc/mod_spidermonkey_odbc.c
   freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey_odbc/mod_spidermonkey_odbc.vcproj
      - copied unchanged from r3518, /freeswitch/trunk/src/mod/languages/mod_spidermonkey_odbc/mod_spidermonkey_odbc.vcproj
Modified:
   freeswitch/branches/knhor/trunk/   (props changed)
   freeswitch/branches/knhor/trunk/AUTHORS
   freeswitch/branches/knhor/trunk/Freeswitch.sln
   freeswitch/branches/knhor/trunk/INSTALL
   freeswitch/branches/knhor/trunk/conf/freeswitch.xml
   freeswitch/branches/knhor/trunk/libs/libdingaling/.update
   freeswitch/branches/knhor/trunk/libs/libdingaling/src/ldl_compat.h
   freeswitch/branches/knhor/trunk/libs/libdingaling/src/libdingaling.c
   freeswitch/branches/knhor/trunk/libs/libdingaling/src/libdingaling.h
   freeswitch/branches/knhor/trunk/libs/libdingaling/src/sha1.c
   freeswitch/branches/knhor/trunk/libs/libteletone/src/libteletone.h
   freeswitch/branches/knhor/trunk/libs/libteletone/src/libteletone_detect.c
   freeswitch/branches/knhor/trunk/libs/libteletone/src/libteletone_detect.h
   freeswitch/branches/knhor/trunk/libs/libteletone/src/libteletone_generate.c
   freeswitch/branches/knhor/trunk/libs/libteletone/src/libteletone_generate.h
   freeswitch/branches/knhor/trunk/libs/mozilla.build.sh
   freeswitch/branches/knhor/trunk/libs/win32/Download SOFIA.vcproj
   freeswitch/branches/knhor/trunk/libs/win32/sofia/libsofia_sip_ua_static.vcproj
   freeswitch/branches/knhor/trunk/modules.conf.in
   freeswitch/branches/knhor/trunk/src/include/switch.h
   freeswitch/branches/knhor/trunk/src/include/switch_apr.h
   freeswitch/branches/knhor/trunk/src/include/switch_bitpack.h
   freeswitch/branches/knhor/trunk/src/include/switch_buffer.h
   freeswitch/branches/knhor/trunk/src/include/switch_caller.h
   freeswitch/branches/knhor/trunk/src/include/switch_channel.h
   freeswitch/branches/knhor/trunk/src/include/switch_config.h
   freeswitch/branches/knhor/trunk/src/include/switch_console.h
   freeswitch/branches/knhor/trunk/src/include/switch_core.h
   freeswitch/branches/knhor/trunk/src/include/switch_event.h
   freeswitch/branches/knhor/trunk/src/include/switch_frame.h
   freeswitch/branches/knhor/trunk/src/include/switch_ivr.h
   freeswitch/branches/knhor/trunk/src/include/switch_loadable_module.h
   freeswitch/branches/knhor/trunk/src/include/switch_log.h
   freeswitch/branches/knhor/trunk/src/include/switch_module_interfaces.h
   freeswitch/branches/knhor/trunk/src/include/switch_platform.h
   freeswitch/branches/knhor/trunk/src/include/switch_resample.h
   freeswitch/branches/knhor/trunk/src/include/switch_rtp.h
   freeswitch/branches/knhor/trunk/src/include/switch_sqlite.h
   freeswitch/branches/knhor/trunk/src/include/switch_stun.h
   freeswitch/branches/knhor/trunk/src/include/switch_types.h
   freeswitch/branches/knhor/trunk/src/include/switch_utils.h
   freeswitch/branches/knhor/trunk/src/include/switch_xml.h
   freeswitch/branches/knhor/trunk/src/mod/applications/mod_bridgecall/mod_bridgecall.c
   freeswitch/branches/knhor/trunk/src/mod/applications/mod_commands/mod_commands.c
   freeswitch/branches/knhor/trunk/src/mod/applications/mod_conference/mod_conference.c
   freeswitch/branches/knhor/trunk/src/mod/applications/mod_dptools/mod_dptools.c
   freeswitch/branches/knhor/trunk/src/mod/applications/mod_echo/mod_echo.c
   freeswitch/branches/knhor/trunk/src/mod/applications/mod_ivrtest/mod_ivrtest.c
   freeswitch/branches/knhor/trunk/src/mod/applications/mod_park/mod_park.c
   freeswitch/branches/knhor/trunk/src/mod/applications/mod_playback/mod_playback.c
   freeswitch/branches/knhor/trunk/src/mod/applications/mod_rss/mod_rss.c
   freeswitch/branches/knhor/trunk/src/mod/applications/mod_skel/mod_skel.c
   freeswitch/branches/knhor/trunk/src/mod/asr_tts/mod_cepstral/mod_cepstral.c
   freeswitch/branches/knhor/trunk/src/mod/codecs/mod_g711/mod_g711.c
   freeswitch/branches/knhor/trunk/src/mod/codecs/mod_g722/mod_g722.c
   freeswitch/branches/knhor/trunk/src/mod/codecs/mod_g723_1/mod_g723_1.c
   freeswitch/branches/knhor/trunk/src/mod/codecs/mod_g726/mod_g726.c
   freeswitch/branches/knhor/trunk/src/mod/codecs/mod_g729/mod_g729.c
   freeswitch/branches/knhor/trunk/src/mod/codecs/mod_gsm/mod_gsm.c
   freeswitch/branches/knhor/trunk/src/mod/codecs/mod_ilbc/mod_ilbc.c
   freeswitch/branches/knhor/trunk/src/mod/codecs/mod_l16/mod_l16.c
   freeswitch/branches/knhor/trunk/src/mod/codecs/mod_lpc10/mod_lpc10.c
   freeswitch/branches/knhor/trunk/src/mod/codecs/mod_speex/mod_speex.c
   freeswitch/branches/knhor/trunk/src/mod/dialplans/mod_dialplan_directory/mod_dialplan_directory.c
   freeswitch/branches/knhor/trunk/src/mod/dialplans/mod_dialplan_xml/mod_dialplan_xml.c
   freeswitch/branches/knhor/trunk/src/mod/directories/mod_ldap/mod_ldap.c
   freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_dingaling/mod_dingaling.c
   freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_iax/mod_iax.c
   freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_portaudio/mod_portaudio.c
   freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_sofia/Makefile
   freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c
   freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_sofia/mod_sofia.vcproj
   freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_wanpipe/mod_wanpipe.c
   freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_woomera/mod_woomera.c
   freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/basecdr.cpp
   freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/basecdr.h
   freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/baseregistry.cpp
   freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/baseregistry.h
   freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/cdrcontainer.cpp
   freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/cdrcontainer.h
   freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/csvcdr.cpp
   freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/csvcdr.h
   freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/mod_cdr.cpp
   freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/mysqlcdr.cpp
   freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/mysqlcdr.h
   freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/pddcdr.cpp
   freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/pddcdr.h
   freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/xmlcdr.cpp
   freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/xmlcdr.h
   freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_event_multicast/mod_event_multicast.c
   freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_event_socket/mod_event_socket.c
   freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_event_test/mod_event_test.c
   freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_xmpp_event/mod_xmpp_event.c
   freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_zeroconf/mod_zeroconf.c
   freeswitch/branches/knhor/trunk/src/mod/formats/mod_native_file/mod_native_file.c
   freeswitch/branches/knhor/trunk/src/mod/formats/mod_sndfile/mod_sndfile.c
   freeswitch/branches/knhor/trunk/src/mod/languages/mod_mono/mod_mono.c
   freeswitch/branches/knhor/trunk/src/mod/languages/mod_perl/mod_perl.c
   freeswitch/branches/knhor/trunk/src/mod/languages/mod_perl/switch_swig_wrap.c
   freeswitch/branches/knhor/trunk/src/mod/languages/mod_php/mod_php.c
   freeswitch/branches/knhor/trunk/src/mod/languages/mod_php/switch_swig_wrap.c
   freeswitch/branches/knhor/trunk/src/mod/languages/mod_python/mod_python.c
   freeswitch/branches/knhor/trunk/src/mod/languages/mod_python/switch_swig_wrap.c
   freeswitch/branches/knhor/trunk/src/mod/languages/mod_ruby/mod_ruby.c
   freeswitch/branches/knhor/trunk/src/mod/languages/mod_ruby/switch_swig_wrap.c
   freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey/Makefile
   freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c
   freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey/mod_spidermonkey.h
   freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey_core_db/mod_spidermonkey_core_db.c
   freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey_skel/mod_spidermonkey_skel.c
   freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey_teletone/mod_spidermonkey_teletone.c
   freeswitch/branches/knhor/trunk/src/mod/loggers/mod_console/mod_console.c
   freeswitch/branches/knhor/trunk/src/mod/loggers/mod_syslog/mod_syslog.c
   freeswitch/branches/knhor/trunk/src/mod/timers/mod_softtimer/mod_softtimer.c
   freeswitch/branches/knhor/trunk/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c
   freeswitch/branches/knhor/trunk/src/switch.c
   freeswitch/branches/knhor/trunk/src/switch_buffer.c
   freeswitch/branches/knhor/trunk/src/switch_caller.c
   freeswitch/branches/knhor/trunk/src/switch_channel.c
   freeswitch/branches/knhor/trunk/src/switch_config.c
   freeswitch/branches/knhor/trunk/src/switch_console.c
   freeswitch/branches/knhor/trunk/src/switch_core.c
   freeswitch/branches/knhor/trunk/src/switch_event.c
   freeswitch/branches/knhor/trunk/src/switch_ivr.c
   freeswitch/branches/knhor/trunk/src/switch_loadable_module.c
   freeswitch/branches/knhor/trunk/src/switch_log.c
   freeswitch/branches/knhor/trunk/src/switch_resample.c
   freeswitch/branches/knhor/trunk/src/switch_rtp.c
   freeswitch/branches/knhor/trunk/src/switch_stun.c
   freeswitch/branches/knhor/trunk/src/switch_swig.c
   freeswitch/branches/knhor/trunk/src/switch_utils.c
   freeswitch/branches/knhor/trunk/src/switch_xml.c
   freeswitch/branches/knhor/trunk/support/freeswitch.pub

Log:
Merged revisions 3441-3521 via svnmerge from trunk


Modified: freeswitch/branches/knhor/trunk/AUTHORS
==============================================================================
--- freeswitch/branches/knhor/trunk/AUTHORS	(original)
+++ freeswitch/branches/knhor/trunk/AUTHORS	Sun Dec  3 17:55:28 2006
@@ -30,6 +30,8 @@
  Ken Rice of Asteria Solutions Group, INC <ken AT asteriasgi.com> - xmlcdr, sofia improvements, load testing.
  Neal Horman <neal at wanlink dot com> - conference improvements, switch_ivr menu additions and other tweaks.
  Johny Kadarisman <jkr888 at gmail.com> - mod_python fixups.
+ Michael Murdock <mike at mmurdock dot org> - testing, documentation, bug finding and usability enhancements.
+ Matt Klein <mklein at nmedia.net>
 
 A big THANK YOU goes to:
 

Modified: freeswitch/branches/knhor/trunk/Freeswitch.sln
==============================================================================
--- freeswitch/branches/knhor/trunk/Freeswitch.sln	(original)
+++ freeswitch/branches/knhor/trunk/Freeswitch.sln	Sun Dec  3 17:55:28 2006
@@ -11,14 +11,14 @@
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FreeSwitchCoreLib", "w32\Library\FreeSwitchCore.vcproj", "{202D7A4E-760D-4D0E-AFA1-D7459CED30FF}"
 	ProjectSection(ProjectDependencies) = postProject
-		{50AD0E28-B8D7-4FCC-8FC3-599F6AC69761} = {50AD0E28-B8D7-4FCC-8FC3-599F6AC69761}
-		{89385C74-5860-4174-9CAF-A39E7C48909C} = {89385C74-5860-4174-9CAF-A39E7C48909C}
 		{6EDFEFD5-3596-4FA9-8EBA-B331547B35A3} = {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}
 		{101130D1-3EA6-4ED2-B65D-CEB5243A20ED} = {101130D1-3EA6-4ED2-B65D-CEB5243A20ED}
 		{EEF031CB-FED8-451E-A471-91EC8D4F6750} = {EEF031CB-FED8-451E-A471-91EC8D4F6750}
 		{F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
 		{F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}
+		{89385C74-5860-4174-9CAF-A39E7C48909C} = {89385C74-5860-4174-9CAF-A39E7C48909C}
 		{8D04B550-D240-4A44-8A18-35DA3F7038D9} = {8D04B550-D240-4A44-8A18-35DA3F7038D9}
+		{50AD0E28-B8D7-4FCC-8FC3-599F6AC69761} = {50AD0E28-B8D7-4FCC-8FC3-599F6AC69761}
 	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_g729", "src\mod\codecs\mod_g729\mod_g729.vcproj", "{1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}"
@@ -566,6 +566,43 @@
 		{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}
 	EndProjectSection
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libudns", "libs\win32\udns\libudns.vcproj", "{4043FC6A-9A30-4577-8AD5-9B233C9575D8}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_enum", "src\mod\applications\mod_enum\mod_enum.vcproj", "{71A967D5-0E99-4CEF-A587-98836EE6F2EF}"
+	ProjectSection(ProjectDependencies) = postProject
+		{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+		{8D04B550-D240-4A44-8A18-35DA3F7038D9} = {8D04B550-D240-4A44-8A18-35DA3F7038D9}
+		{4043FC6A-9A30-4577-8AD5-9B233C9575D8} = {4043FC6A-9A30-4577-8AD5-9B233C9575D8}
+		{F057DA7F-79E5-4B00-845C-EF446EF055E3} = {F057DA7F-79E5-4B00-845C-EF446EF055E3}
+		{F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+		{101130D1-3EA6-4ED2-B65D-CEB5243A20ED} = {101130D1-3EA6-4ED2-B65D-CEB5243A20ED}
+		{6EDFEFD5-3596-4FA9-8EBA-B331547B35A3} = {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_etpan", "src\mod\languages\mod_spidermonkey_etpan\mod_spidermonkey_etpan.vcproj", "{D6C82F86-2B05-4A7F-8CC6-D2592E66FBB9}"
+	ProjectSection(ProjectDependencies) = postProject
+		{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}
+		{BA4DED3C-E56F-4484-BFC3-9C13E461A1BE} = {BA4DED3C-E56F-4484-BFC3-9C13E461A1BE}
+		{204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}
+		{F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+		{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_spidermonkey_odbc", "src\mod\languages\mod_spidermonkey_odbc\mod_spidermonkey_odbc.vcproj", "{0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}"
+	ProjectSection(ProjectDependencies) = postProject
+		{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F}
+		{202D7A4E-760D-4D0E-AFA1-D7459CED30FF} = {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}
+		{F6C55D93-B927-4483-BB69-15AEF3DD2DFF} = {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}
+		{204FA0DE-305D-4414-AE2E-F195A23F390D} = {204FA0DE-305D-4414-AE2E-F195A23F390D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download ETPAN", "libs\win32\Download ETPAN.vcproj", "{EAE4F6B7-B1E3-4975-8580-481E47A9BEAB}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libetpan", "libs\win32\etpan\libetpan.vcproj", "{BA4DED3C-E56F-4484-BFC3-9C13E461A1BE}"
+	ProjectSection(ProjectDependencies) = postProject
+		{EAE4F6B7-B1E3-4975-8580-481E47A9BEAB} = {EAE4F6B7-B1E3-4975-8580-481E47A9BEAB}
+	EndProjectSection
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Win32 = Debug|Win32
@@ -928,6 +965,30 @@
 		{8F992C49-6C51-412F-B2A3-34EAB708EB65}.Debug|Win32.Build.0 = Debug|Win32
 		{8F992C49-6C51-412F-B2A3-34EAB708EB65}.Release|Win32.ActiveCfg = Release|Win32
 		{8F992C49-6C51-412F-B2A3-34EAB708EB65}.Release|Win32.Build.0 = Release|Win32
+		{4043FC6A-9A30-4577-8AD5-9B233C9575D8}.Debug|Win32.ActiveCfg = Debug|Win32
+		{4043FC6A-9A30-4577-8AD5-9B233C9575D8}.Debug|Win32.Build.0 = Debug|Win32
+		{4043FC6A-9A30-4577-8AD5-9B233C9575D8}.Release|Win32.ActiveCfg = Release|Win32
+		{4043FC6A-9A30-4577-8AD5-9B233C9575D8}.Release|Win32.Build.0 = Release|Win32
+		{71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug|Win32.ActiveCfg = Debug|Win32
+		{71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug|Win32.Build.0 = Debug|Win32
+		{71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release|Win32.ActiveCfg = Release|Win32
+		{71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release|Win32.Build.0 = Release|Win32
+		{D6C82F86-2B05-4A7F-8CC6-D2592E66FBB9}.Debug|Win32.ActiveCfg = Debug|Win32
+		{D6C82F86-2B05-4A7F-8CC6-D2592E66FBB9}.Debug|Win32.Build.0 = Debug|Win32
+		{D6C82F86-2B05-4A7F-8CC6-D2592E66FBB9}.Release|Win32.ActiveCfg = Release|Win32
+		{D6C82F86-2B05-4A7F-8CC6-D2592E66FBB9}.Release|Win32.Build.0 = Release|Win32
+		{0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Debug|Win32.ActiveCfg = Debug|Win32
+		{0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Debug|Win32.Build.0 = Debug|Win32
+		{0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Release|Win32.ActiveCfg = Release|Win32
+		{0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF}.Release|Win32.Build.0 = Release|Win32
+		{EAE4F6B7-B1E3-4975-8580-481E47A9BEAB}.Debug|Win32.ActiveCfg = Debug|Win32
+		{EAE4F6B7-B1E3-4975-8580-481E47A9BEAB}.Debug|Win32.Build.0 = Debug|Win32
+		{EAE4F6B7-B1E3-4975-8580-481E47A9BEAB}.Release|Win32.ActiveCfg = Release|Win32
+		{EAE4F6B7-B1E3-4975-8580-481E47A9BEAB}.Release|Win32.Build.0 = Release|Win32
+		{BA4DED3C-E56F-4484-BFC3-9C13E461A1BE}.Debug|Win32.ActiveCfg = Debug|Win32
+		{BA4DED3C-E56F-4484-BFC3-9C13E461A1BE}.Debug|Win32.Build.0 = Debug|Win32
+		{BA4DED3C-E56F-4484-BFC3-9C13E461A1BE}.Release|Win32.ActiveCfg = Release|Win32
+		{BA4DED3C-E56F-4484-BFC3-9C13E461A1BE}.Release|Win32.Build.0 = Release|Win32
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
@@ -959,6 +1020,7 @@
 		{C24FB505-05D7-4319-8485-7540B44C8603} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
 		{B5881A85-FE70-4F64-8607-2CAAE52669C6} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
 		{2740F45C-475A-4DE0-BCED-6E2E5F6C4B8B} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
+		{71A967D5-0E99-4CEF-A587-98836EE6F2EF} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
 		{5FD31A25-5D83-4794-8BEE-904DAD84CE71} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
 		{FE3540C5-3303-46E0-A69E-D92F775687F1} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
 		{3A5B9131-F20C-4A85-9447-6C1610941CEE} = {9460B5F1-0A95-41C4-BEB7-9C2C96459A7C}
@@ -998,11 +1060,15 @@
 		{D71E7338-8D9C-4FE4-A15F-D5CC60202C7C} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
 		{70A49BC2-7500-41D0-B75D-EDCC5BE987A0} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
 		{DF018947-0FFF-4EB3-BDEE-441DC81DA7A4} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
+		{4043FC6A-9A30-4577-8AD5-9B233C9575D8} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
+		{BA4DED3C-E56F-4484-BFC3-9C13E461A1BE} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
 		{1AD3F51E-BBB6-4090-BA39-9DFAB1EF1F5F} = {0C808854-54D1-4230-BFF5-77B5FD905000}
 		{B0C6CFF9-7DCD-4A21-8BA4-C2011E18DED8} = {0C808854-54D1-4230-BFF5-77B5FD905000}
 		{7B077E7F-1BE7-4291-AB86-55E527B25CAC} = {0C808854-54D1-4230-BFF5-77B5FD905000}
 		{ACFFF684-4D19-4D48-AF12-88EA1D778BDF} = {0C808854-54D1-4230-BFF5-77B5FD905000}
 		{8F992C49-6C51-412F-B2A3-34EAB708EB65} = {0C808854-54D1-4230-BFF5-77B5FD905000}
+		{D6C82F86-2B05-4A7F-8CC6-D2592E66FBB9} = {0C808854-54D1-4230-BFF5-77B5FD905000}
+		{0A6B5EA5-6E9B-4A51-931F-ED25AA87B4DF} = {0C808854-54D1-4230-BFF5-77B5FD905000}
 		{692F6330-4D87-4C82-81DF-40DB5892636E} = {4CF6A6AC-07DE-4B9E-ABE1-7F98B64E0BB0}
 		{1C453396-D912-4213-89FD-9B489162B7B5} = {A7AB4405-FDB7-4853-9FBB-1516B1C3D80A}
 		{CBEC7225-0C21-4DA8-978E-1F158F8AD950} = {F69A4A6B-9360-4EBB-A280-22AA3C455AC5}
@@ -1021,5 +1087,6 @@
 		{B0AA13FC-636C-45A7-8EAE-663220679A75} = {C120A020-773F-4EA3-923F-B67AF28B750D}
 		{8B2CE7D1-77EF-45ED-927D-82147805440B} = {C120A020-773F-4EA3-923F-B67AF28B750D}
 		{8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A} = {C120A020-773F-4EA3-923F-B67AF28B750D}
+		{EAE4F6B7-B1E3-4975-8580-481E47A9BEAB} = {C120A020-773F-4EA3-923F-B67AF28B750D}
 	EndGlobalSection
 EndGlobal

Modified: freeswitch/branches/knhor/trunk/INSTALL
==============================================================================
--- freeswitch/branches/knhor/trunk/INSTALL	(original)
+++ freeswitch/branches/knhor/trunk/INSTALL	Sun Dec  3 17:55:28 2006
@@ -1,3 +1,9 @@
+**************************************** NOTICE *******************************
+You MUST own the destination path of /usr/local/freeswitch for the project to 
+build properly!  The alternative is to pick a different prefix with ./configure
+--prefix=/my/special/place .
+*******************************************************************************
+
 UNIX:
 	You will need 'wget' installed in your path so the build system
 	can download the dependancies.

Modified: freeswitch/branches/knhor/trunk/conf/freeswitch.xml
==============================================================================
--- freeswitch/branches/knhor/trunk/conf/freeswitch.xml	(original)
+++ freeswitch/branches/knhor/trunk/conf/freeswitch.xml	Sun Dec  3 17:55:28 2006
@@ -22,6 +22,10 @@
         <load module="mod_console"/>
         <!-- <load module="mod_syslog"/> -->
 
+        <!-- Multi-Faceted -->
+	<!-- mod_enum is a dialplan interface, an application interface and an api command interface -->
+        <load module="mod_enum"/>
+
         <!-- XML Interfaces -->
         <!-- <load module="mod_xml_rpc"/> -->
 
@@ -46,7 +50,7 @@
         <!-- Applications -->
         <load module="mod_bridgecall"/>
         <load module="mod_commands"/>
-        <!--<load module="mod_conference"/>-->
+        <load module="mod_conference"/>
         <load module="mod_dptools"/>
         <load module="mod_echo"/>
         <!--<load module="mod_park"/>-->
@@ -77,7 +81,6 @@
         <!-- ASR /TTS -->
         <!-- <load module="mod_cepstral"/> -->
         <!-- <load module="mod_rss"/> -->
-
       </modules>
     </configuration>
 
@@ -85,6 +88,7 @@
       <modules>
 	<load module="mod_spidermonkey_teletone"/>
 	<load module="mod_spidermonkey_core_db"/>
+	<!--<load module="mod_spidermonkey_odbc"/>-->
       </modules>
     </configuration>
 
@@ -404,6 +408,19 @@
         </profile>
       </profiles>
     </configuration>
+
+    <configuration name="enum.conf" description="ENUM Module">
+      <settings>
+	<param name="default-root" value="e164.org"/>
+      </settings>
+
+      <routes>
+	<route service="E2U+SIP" regex="sip:(.*)" replace="sofia/test/$1"/>
+	<route service="E2U+IAX2" regex="iax2:(.*)" replace="iax/$1"/>
+	<route service="E2U+XMPP" regex="XMPP:(.*)" replace="dingaling/jingle/$1"/>
+      </routes>
+    </configuration>
+
   </section>
   
   <section name="dialplan" description="Regex/XML Dialplan">
@@ -415,7 +432,8 @@
     <context name="default">
       <extension name="tollfree">
         <condition field="destination_number" expression="^(18(0{2}|8{2}|7{2}|6{2})\d{7})$">
-          <action application="bridge" data="sofia/test/$1-freeswitch at voip.trxtel.com"/>
+	  <action application="enum" data="$1"/>
+	  <action application="bridge" data="${enum_auto_route}"/>
         </condition>
       </extension>
 

Modified: freeswitch/branches/knhor/trunk/libs/libdingaling/.update
==============================================================================
--- freeswitch/branches/knhor/trunk/libs/libdingaling/.update	(original)
+++ freeswitch/branches/knhor/trunk/libs/libdingaling/.update	Sun Dec  3 17:55:28 2006
@@ -1 +1 @@
-Thu Nov 16 16:09:31 UTC 2006
+Fri Dec  1 21:13:04 EST 2006

Modified: freeswitch/branches/knhor/trunk/libs/libdingaling/src/ldl_compat.h
==============================================================================
--- freeswitch/branches/knhor/trunk/libs/libdingaling/src/ldl_compat.h	(original)
+++ freeswitch/branches/knhor/trunk/libs/libdingaling/src/ldl_compat.h	Sun Dec  3 17:55:28 2006
@@ -61,3 +61,14 @@
 #endif
 
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/libs/libdingaling/src/libdingaling.c
==============================================================================
--- freeswitch/branches/knhor/trunk/libs/libdingaling/src/libdingaling.c	(original)
+++ freeswitch/branches/knhor/trunk/libs/libdingaling/src/libdingaling.c	Sun Dec  3 17:55:28 2006
@@ -497,17 +497,20 @@
 			struct ldl_buffer *buffer;
 			size_t x;
 
+
+			apr_cpystrn(id, from, sizeof(id));
+			if ((resource = strchr(id, '/'))) {
+				*resource++ = '\0';
+			}
+
 			if (!apr_hash_get(handle->sub_hash, from, APR_HASH_KEY_STRING)) {
 				iks *msg;
 				apr_hash_set(handle->sub_hash, 	apr_pstrdup(handle->pool, from), APR_HASH_KEY_STRING, &marker);
-				msg = iks_make_s10n (IKS_TYPE_SUBSCRIBED, from, "Ding A Ling...."); 
+				msg = iks_make_s10n (IKS_TYPE_SUBSCRIBED, id, "Ding A Ling...."); 
 				apr_queue_push(handle->queue, msg);
 			}
 
-			apr_cpystrn(id, from, sizeof(id));
-			if ((resource = strchr(id, '/'))) {
-				*resource++ = '\0';
-			}
+			
 
 			if (resource) {
 				for (x = 0; x < strlen(resource); x++) {
@@ -705,20 +708,23 @@
 	if (!status) {
 		status = type;
 	}
+
+
+	apr_cpystrn(id, from, sizeof(id));
+	lowercase(id);
+
+	if ((resource = strchr(id, '/'))) {
+		*resource++ = '\0';
+	}
 	
 	if (!apr_hash_get(handle->sub_hash, from, APR_HASH_KEY_STRING)) {
 		iks *msg;
 		apr_hash_set(handle->sub_hash, 	apr_pstrdup(handle->pool, from), APR_HASH_KEY_STRING, &marker);
-		msg = iks_make_s10n (IKS_TYPE_SUBSCRIBED, from, "Ding A Ling...."); 
+		msg = iks_make_s10n (IKS_TYPE_SUBSCRIBED, id, "Ding A Ling...."); 
 		apr_queue_push(handle->queue, msg);
 	}
 
-	apr_cpystrn(id, from, sizeof(id));
-	lowercase(id);
 
-	if ((resource = strchr(id, '/'))) {
-		*resource++ = '\0';
-	}
 	
 	if (resource && strstr(resource, "talk") && (buffer = apr_hash_get(handle->probe_hash, id, APR_HASH_KEY_STRING))) {
 		apr_cpystrn(buffer->buf, from, buffer->len);
@@ -811,14 +817,25 @@
 	ldl_handle_t *handle = user_data;
 	char *from = iks_find_attrib(pak->x, "from");
 	char *to = iks_find_attrib(pak->x, "to");
-	iks *msg = iks_make_s10n (IKS_TYPE_SUBSCRIBED, from, "Ding A Ling...."); 
+	iks *msg = NULL;
+	char *id = strdup(from);
+	char *r;
 
+	if (!id) {
+		return -1;
+	}
+	if ((r = strchr(from, '/'))) {
+		*r++ = '\0';
+	}
+
+	msg = iks_make_s10n (IKS_TYPE_SUBSCRIBED, id, "Ding A Ling....");
+	
 	if (to && ldl_test_flag(handle, LDL_FLAG_COMPONENT)) {
 		iks_insert_attrib(msg, "from", to);
 	}
 
 	apr_queue_push(handle->queue, msg);
-	msg = iks_make_s10n (IKS_TYPE_SUBSCRIBE, from, "Ding A Ling...."); 
+	msg = iks_make_s10n (IKS_TYPE_SUBSCRIBE, id, "Ding A Ling...."); 
 
 	if (to && ldl_test_flag(handle, LDL_FLAG_COMPONENT)) {
 		iks_insert_attrib(msg, "from", to);
@@ -2134,4 +2151,13 @@
 	handle->log_stream = log_stream;
 }
 
-
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/libs/libdingaling/src/libdingaling.h
==============================================================================
--- freeswitch/branches/knhor/trunk/libs/libdingaling/src/libdingaling.h	(original)
+++ freeswitch/branches/knhor/trunk/libs/libdingaling/src/libdingaling.h	Sun Dec  3 17:55:28 2006
@@ -557,3 +557,14 @@
  *
  */
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/libs/libdingaling/src/sha1.c
==============================================================================
--- freeswitch/branches/knhor/trunk/libs/libdingaling/src/sha1.c	(original)
+++ freeswitch/branches/knhor/trunk/libs/libdingaling/src/sha1.c	Sun Dec  3 17:55:28 2006
@@ -212,4 +212,13 @@
 #endif
 }
 
-
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/libs/libteletone/src/libteletone.h
==============================================================================
--- freeswitch/branches/knhor/trunk/libs/libteletone/src/libteletone.h	(original)
+++ freeswitch/branches/knhor/trunk/libs/libteletone/src/libteletone.h	Sun Dec  3 17:55:28 2006
@@ -74,3 +74,14 @@
 #endif
 
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/libs/libteletone/src/libteletone_detect.c
==============================================================================
--- freeswitch/branches/knhor/trunk/libs/libteletone/src/libteletone_detect.c	(original)
+++ freeswitch/branches/knhor/trunk/libs/libteletone/src/libteletone_detect.c	Sun Dec  3 17:55:28 2006
@@ -401,3 +401,13 @@
     return  max;
 }
 
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/libs/libteletone/src/libteletone_detect.h
==============================================================================
--- freeswitch/branches/knhor/trunk/libs/libteletone/src/libteletone_detect.h	(original)
+++ freeswitch/branches/knhor/trunk/libs/libteletone/src/libteletone_detect.h	Sun Dec  3 17:55:28 2006
@@ -225,3 +225,14 @@
 #endif
 
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/libs/libteletone/src/libteletone_generate.c
==============================================================================
--- freeswitch/branches/knhor/trunk/libs/libteletone/src/libteletone_generate.c	(original)
+++ freeswitch/branches/knhor/trunk/libs/libteletone/src/libteletone_generate.c	Sun Dec  3 17:55:28 2006
@@ -414,3 +414,14 @@
 
 	return 0;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/libs/libteletone/src/libteletone_generate.h
==============================================================================
--- freeswitch/branches/knhor/trunk/libs/libteletone/src/libteletone_generate.h	(original)
+++ freeswitch/branches/knhor/trunk/libs/libteletone/src/libteletone_generate.h	Sun Dec  3 17:55:28 2006
@@ -163,3 +163,14 @@
 #endif
 
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/libs/mozilla.build.sh
==============================================================================
--- freeswitch/branches/knhor/trunk/libs/mozilla.build.sh	(original)
+++ freeswitch/branches/knhor/trunk/libs/mozilla.build.sh	Sun Dec  3 17:55:28 2006
@@ -23,6 +23,7 @@
 cp js/src/config/Linux_All.mk js/src/config/`uname -s``uname -r`.mk
 
 ldflags="-lpthread"
+other_libs="-lpthread"
 fi
 
 if [ $hosttype = "OpenBSD" ] ; then
@@ -49,5 +50,6 @@
 
 cd nsprpub && CFLAGS=$cflags LDFLAGS=$ldflags ./configure $opts && $MAKE
 
-cd ../js/src && CFLAGS=$cflags BUILD_OPT=$BUILD_OPT LDFLAGS=$ldflags JS_THREADSAFE=1 JS_HAS_FILE_OBJECT=1 OTHER_LIBS="-L../../../mozilla/nsprpub/dist/lib" INCLUDES="-I../../../mozilla/nsprpub/dist/include/nspr"  $MAKE -f Makefile.ref `find . -name libjs.a`
+cd ../js/src && CFLAGS=$cflags BUILD_OPT=$BUILD_OPT LDFLAGS=$ldflags JS_THREADSAFE=1 JS_HAS_FILE_OBJECT=1 OTHER_LIBS="$other_libs -L../../../mozilla/nsprpub/dist/lib" INCLUDES="-I../../../mozilla/nsprpub/dist/include/nspr"  $MAKE -f Makefile.ref `find . -name libjs.a`
+
 

Modified: freeswitch/branches/knhor/trunk/libs/win32/Download SOFIA.vcproj
==============================================================================
--- freeswitch/branches/knhor/trunk/libs/win32/Download SOFIA.vcproj	(original)
+++ freeswitch/branches/knhor/trunk/libs/win32/Download SOFIA.vcproj	Sun Dec  3 17:55:28 2006
@@ -76,8 +76,8 @@
 				<Tool
 					Name="VCCustomBuildTool"
 					Description="Downloading SOFIA."
-					CommandLine="if not exist &quot;$(ProjectDir)..\sofia-sip-1.12.3.11&quot; cscript /nologo &quot;$(ProjectDir)util.vbs&quot; GetUnzip http://svn.freeswitch.org/downloads/libs/sofia-sip-1.12.3.11.tar.gz &quot;$(ProjectDir)..&quot;&#x0D;&#x0A;"
-					Outputs="$(ProjectDir)..\sofia-sip-1.12.3.11"
+					CommandLine="if not exist &quot;$(ProjectDir)..\sofia-sip-1.12.4&quot; cscript /nologo &quot;$(ProjectDir)util.vbs&quot; GetUnzip http://svn.freeswitch.org/downloads/libs/sofia-sip-1.12.4.tar.gz &quot;$(ProjectDir)..&quot;&#x0D;&#x0A;"
+					Outputs="$(ProjectDir)..\sofia-sip-1.12.4"
 				/>
 			</FileConfiguration>
 			<FileConfiguration
@@ -86,8 +86,8 @@
 				<Tool
 					Name="VCCustomBuildTool"
 					Description="Downloading SOFIA."
-					CommandLine="if not exist &quot;$(ProjectDir)..\sofia-sip-1.12.3.11&quot; cscript /nologo &quot;$(ProjectDir)util.vbs&quot; GetUnzip http://svn.freeswitch.org/downloads/libs/sofia-sip-1.12.3.11.tar.gz &quot;$(ProjectDir)..&quot;&#x0D;&#x0A;"
-					Outputs="$(ProjectDir)..\sofia-sip-1.12.3.11"
+					CommandLine="if not exist &quot;$(ProjectDir)..\sofia-sip-1.12.4&quot; cscript /nologo &quot;$(ProjectDir)util.vbs&quot; GetUnzip http://svn.freeswitch.org/downloads/libs/sofia-sip-1.12.4.tar.gz &quot;$(ProjectDir)..&quot;&#x0D;&#x0A;"
+					Outputs="$(ProjectDir)..\sofia-sip-1.12.4"
 				/>
 			</FileConfiguration>
 		</File>

Modified: freeswitch/branches/knhor/trunk/libs/win32/sofia/libsofia_sip_ua_static.vcproj
==============================================================================
--- freeswitch/branches/knhor/trunk/libs/win32/sofia/libsofia_sip_ua_static.vcproj	(original)
+++ freeswitch/branches/knhor/trunk/libs/win32/sofia/libsofia_sip_ua_static.vcproj	Sun Dec  3 17:55:28 2006
@@ -26,7 +26,7 @@
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
-				CommandLine="if not exist &quot;$(ProjectDir)..\..\sofia-sip-1.12.3.11\win32\gawk.exe&quot; cscript /nologo &quot;$(ProjectDir)..\util.vbs&quot; Get http://svn.freeswitch.org/downloads/win32/gawk.exe &quot;$(ProjectDir)..\..\sofia-sip-1.12.3.11\win32\&quot;&#x0D;&#x0A;cd /D &quot;$(ProjectDir)..\..\sofia-sip-1.12.3.11\win32\&quot;&#x0D;&#x0A;&quot;autogen.cmd&quot;&#x0D;&#x0A;"
+				CommandLine="if not exist &quot;$(ProjectDir)..\..\sofia-sip-1.12.4\win32\gawk.exe&quot; cscript /nologo &quot;$(ProjectDir)..\util.vbs&quot; Get http://svn.freeswitch.org/downloads/win32/gawk.exe &quot;$(ProjectDir)..\..\sofia-sip-1.12.4\win32\&quot;&#x0D;&#x0A;cd /D &quot;$(ProjectDir)..\..\sofia-sip-1.12.4\win32\&quot;&#x0D;&#x0A;&quot;autogen.cmd&quot;&#x0D;&#x0A;"
 			/>
 			<Tool
 				Name="VCCustomBuildTool"
@@ -43,7 +43,7 @@
 			<Tool
 				Name="VCCLCompilerTool"
 				Optimization="0"
-				AdditionalIncludeDirectories="&quot;..\..\sofia-sip-1.12.3.11\win32&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\ipt&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sresolv&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\bnf&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\url&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\msg&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nta&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nua&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\iptsec&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\http&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nth&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nea&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sdp&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\soa&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\stun&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\tport&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\features&quot;;&quot;..\..\pthreads-w32-2-7-0-release&quot;;."
+				AdditionalIncludeDirectories="&quot;..\..\sofia-sip-1.12.4\win32&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\su&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\ipt&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\sresolv&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\bnf&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\url&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\msg&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\nta&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\nua&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\iptsec&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\http&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\nth&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\nea&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\sdp&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\soa&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\stun&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\tport&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\features&quot;;&quot;..\..\pthreads-w32-2-7-0-release&quot;;."
 				PreprocessorDefinitions="WIN32;_DEBUG;_LIB;IN_LIBSOFIA_SIP_UA_STATIC;LIBSOFIA_SIP_UA_STATIC;LIBSRES_STATIC;PTW32_STATIC_LIB"
 				MinimalRebuild="true"
 				BasicRuntimeChecks="3"
@@ -104,7 +104,7 @@
 			>
 			<Tool
 				Name="VCPreBuildEventTool"
-				CommandLine="if not exist &quot;$(ProjectDir)..\..\sofia-sip-1.12.3.11\win32\gawk.exe&quot; cscript /nologo &quot;$(ProjectDir)..\util.vbs&quot; Get http://svn.freeswitch.org/downloads/win32/gawk.exe &quot;$(ProjectDir)..\..\sofia-sip-1.12.3.11\win32\&quot;&#x0D;&#x0A;cd /D &quot;$(ProjectDir)..\..\sofia-sip-1.12.3.11\win32\&quot;&#x0D;&#x0A;&quot;autogen.cmd&quot;&#x0D;&#x0A;"
+				CommandLine="if not exist &quot;$(ProjectDir)..\..\sofia-sip-1.12.4\win32\gawk.exe&quot; cscript /nologo &quot;$(ProjectDir)..\util.vbs&quot; Get http://svn.freeswitch.org/downloads/win32/gawk.exe &quot;$(ProjectDir)..\..\sofia-sip-1.12.4\win32\&quot;&#x0D;&#x0A;cd /D &quot;$(ProjectDir)..\..\sofia-sip-1.12.4\win32\&quot;&#x0D;&#x0A;&quot;autogen.cmd&quot;&#x0D;&#x0A;"
 			/>
 			<Tool
 				Name="VCCustomBuildTool"
@@ -122,7 +122,7 @@
 				Name="VCCLCompilerTool"
 				Optimization="2"
 				InlineFunctionExpansion="1"
-				AdditionalIncludeDirectories="&quot;..\..\sofia-sip-1.12.3.11\win32&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\ipt&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sresolv&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\bnf&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\url&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\msg&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nta&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nua&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\iptsec&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\http&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nth&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nea&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sdp&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\soa&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\stun&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\tport&quot;;&quot;..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\features&quot;;&quot;..\..\pthreads-w32-2-7-0-release&quot;;."
+				AdditionalIncludeDirectories="&quot;..\..\sofia-sip-1.12.4\win32&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\su&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\ipt&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\sresolv&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\bnf&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\url&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\msg&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\nta&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\nua&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\iptsec&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\http&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\nth&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\nea&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\sdp&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\soa&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\stun&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\tport&quot;;&quot;..\..\sofia-sip-1.12.4\libsofia-sip-ua\features&quot;;&quot;..\..\pthreads-w32-2-7-0-release&quot;;."
 				PreprocessorDefinitions="WIN32;NDEBUG;_LIB;IN_LIBSOFIA_SIP_UA_STATIC;LIBSOFIA_SIP_UA_STATIC;LIBSRES_STATIC;PTW32_STATIC_LIB"
 				StringPooling="true"
 				RuntimeLibrary="2"
@@ -182,247 +182,247 @@
 				Name="su"
 				Filter="su*.c"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\inet_ntop.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\inet_pton.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\su.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\su_addrinfo.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\su_alloc.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\su_alloc_lock.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\su_bm.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\su_default_log.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\su_errno.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\su_global_log.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\su_localinfo.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\su_log.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\su_md5.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\su_os_nw.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\su_port.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\su_root.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\su_sprintf.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\su_strdup.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\su_strlst.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\su_tag.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\su_tag_io.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\su_taglist.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\su_time.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\su_time0.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\su_timer.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\su_uniqueid.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\su_vector.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\su_wait.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\inet_ntop.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\inet_pton.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\su.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\su_addrinfo.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\su_alloc.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\su_alloc_lock.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\su_bm.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\su_default_log.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\su_errno.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\su_global_log.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\su_localinfo.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\su_log.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\su_md5.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\su_os_nw.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\su_port.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\su_root.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\su_sprintf.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\su_strdup.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\su_strlst.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\su_tag.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\su_tag_io.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\su_taglist.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\su_time.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\su_time0.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\su_timer.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\su_uniqueid.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\su_vector.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\su_wait.c"></File>
 			</Filter>
 			<Filter
 				Name="ipt"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\ipt\base64.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\ipt\rc4.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\ipt\string0.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\ipt\token64.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\ipt\base64.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\ipt\rc4.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\ipt\string0.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\ipt\token64.c"></File>
 			</Filter>
 			<Filter
 				Name="url"
 				Filter="url*.c"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\url\url.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\url\url_tag.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\url\url_tag_ref.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\url\url.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\url\url_tag.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\url\url_tag_ref.c"></File>
 			</Filter>
 			<Filter
 				Name="features"
 				Filter="features*.c"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\features\features.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\features\features.c"></File>
 			</Filter>
 			<Filter
 				Name="bnf"
 				Filter="bnf*.c"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\bnf\bnf.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\bnf\bnf.c"></File>
 			</Filter>
 			<Filter
 				Name="msg"
 				Filter="msg*.c"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\msg\msg.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\msg\msg_auth.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\msg\msg_basic.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\msg\msg_date.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\msg\msg_generic.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\msg\msg_header_copy.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\msg\msg_header_make.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\msg\msg_mclass.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\msg\msg_mime.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\msg\msg_mime_table.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\msg\msg_parser.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\msg\msg_parser_util.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\msg\msg_tag.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\msg\msg.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\msg\msg_auth.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\msg\msg_basic.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\msg\msg_date.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\msg\msg_generic.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\msg\msg_header_copy.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\msg\msg_header_make.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\msg\msg_mclass.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\msg\msg_mime.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\msg\msg_mime_table.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\msg\msg_parser.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\msg\msg_parser_util.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\msg\msg_tag.c"></File>
 			</Filter>
 			<Filter
 				Name="clib replacement"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\memcspn.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\memmem.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\memspn.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\strcasestr.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\strtoull.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\memcspn.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\memmem.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\memspn.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\strcasestr.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\strtoull.c"></File>
 			</Filter>
 			<Filter
 				Name="sip"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sip_basic.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sip_caller_prefs.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sip_event.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sip_extra.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sip_feature.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sip_header.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sip_mime.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sip_parser.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sip_parser_table.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sip_prack.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sip_pref_util.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sip_reason.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sip_refer.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sip_security.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sip_session.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sip_status.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sip_tag.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sip_tag_class.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sip_tag_ref.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sip_time.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sip_util.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sip_basic.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sip_caller_prefs.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sip_event.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sip_extra.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sip_feature.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sip_header.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sip_mime.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sip_parser.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sip_parser_table.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sip_prack.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sip_pref_util.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sip_reason.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sip_refer.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sip_security.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sip_session.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sip_status.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sip_tag.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sip_tag_class.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sip_tag_ref.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sip_time.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sip_util.c"></File>
 			</Filter>
 			<Filter
 				Name="http"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\http\http_basic.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\http\http_extra.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\http\http_header.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\http\http_parser.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\http\http_parser_table.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\http\http_status.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\http\http_tag.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\http\http_tag_class.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\http\http_tag_ref.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\http\http_basic.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\http\http_extra.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\http\http_header.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\http\http_parser.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\http\http_parser_table.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\http\http_status.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\http\http_tag.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\http\http_tag_class.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\http\http_tag_ref.c"></File>
 			</Filter>
 			<Filter
 				Name="nth"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nth\nth_client.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nth\nth_server.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nth\nth_tag.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nth\nth_tag_ref.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nth\nth_client.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nth\nth_server.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nth\nth_tag.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nth\nth_tag_ref.c"></File>
 			</Filter>
 			<Filter
 				Name="sresolv"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sresolv\sres.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sresolv\sres_blocking.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sresolv\sres_cache.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sresolv\sresolv.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sresolv\sres.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sresolv\sres_blocking.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sresolv\sres_cache.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sresolv\sresolv.c"></File>
 			</Filter>
 			<Filter
 				Name="nea"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nea\nea.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nea\nea_debug.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nea\nea_event.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nea\nea_server.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nea\nea_tag.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nea\nea_tag_ref.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nea\nea.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nea\nea_debug.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nea\nea_event.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nea\nea_server.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nea\nea_tag.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nea\nea_tag_ref.c"></File>
 			</Filter>
 			<Filter
 				Name="iptsec"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\iptsec\auth_client.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\iptsec\auth_common.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\iptsec\auth_digest.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\iptsec\auth_module.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\iptsec\auth_module_http.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\iptsec\auth_module_sip.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\iptsec\auth_plugin.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\iptsec\auth_plugin_delayed.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\iptsec\auth_tag.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\iptsec\auth_tag_ref.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\iptsec\iptsec_debug.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\iptsec\auth_client.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\iptsec\auth_common.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\iptsec\auth_digest.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\iptsec\auth_module.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\iptsec\auth_module_http.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\iptsec\auth_module_sip.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\iptsec\auth_plugin.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\iptsec\auth_plugin_delayed.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\iptsec\auth_tag.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\iptsec\auth_tag_ref.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\iptsec\iptsec_debug.c"></File>
 			</Filter>
 			<Filter
 				Name="stun"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\stun\stun.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\stun\stun_common.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\stun\stun_dns.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\stun\stun_internal.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\stun\stun_mini.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\stun\stun_tag.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\stun\stun_tag_ref.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\stun\stun.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\stun\stun_common.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\stun\stun_dns.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\stun\stun_internal.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\stun\stun_mini.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\stun\stun_tag.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\stun\stun_tag_ref.c"></File>
 			</Filter>
 			<Filter
 				Name="nua"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nua\nua.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nua\nua_common.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nua\nua_dialog.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nua\nua_dialog.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nua\nua_event_server.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nua\nua_extension.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nua\nua_message.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nua\nua_notifier.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nua\nua_options.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nua\nua_params.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nua\nua_params.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nua\nua_publish.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nua\nua_register.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nua\nua_registrar.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nua\nua_session.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nua\nua_stack.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nua\nua_stack.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nua\nua_subnotref.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nua\nua_tag.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nua\nua_tag_ref.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nua\outbound.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nua\nua.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nua\nua_common.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nua\nua_dialog.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nua\nua_dialog.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nua\nua_event_server.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nua\nua_extension.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nua\nua_message.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nua\nua_notifier.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nua\nua_options.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nua\nua_params.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nua\nua_params.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nua\nua_publish.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nua\nua_register.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nua\nua_registrar.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nua\nua_session.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nua\nua_stack.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nua\nua_stack.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nua\nua_subnotref.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nua\nua_tag.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nua\nua_tag_ref.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nua\outbound.c"></File>
 			</Filter>
 			<Filter
 				Name="nta"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nta\nta.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nta\nta_check.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nta\nta_tag.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nta\nta_tag_ref.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nta\sl_read_payload.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nta\sl_utils_log.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nta\sl_utils_print.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nta\nta.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nta\nta_check.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nta\nta_tag.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nta\nta_tag_ref.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nta\sl_read_payload.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nta\sl_utils_log.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nta\sl_utils_print.c"></File>
 			</Filter>
 			<Filter
 				Name="tport"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\tport\tport.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\tport\tport_internal.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\tport\tport_logging.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\tport\tport_stub_sigcomp.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\tport\tport_stub_stun.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\tport\tport_tag.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\tport\tport_tag_ref.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\tport\tport_type_connect.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\tport\tport_type_tcp.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\tport\tport_type_udp.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\tport\tport.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\tport\tport_internal.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\tport\tport_logging.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\tport\tport_stub_sigcomp.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\tport\tport_stub_stun.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\tport\tport_tag.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\tport\tport_tag_ref.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\tport\tport_type_connect.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\tport\tport_type_tcp.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\tport\tport_type_udp.c"></File>
 			</Filter>
 			<Filter
 				Name="sdp"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sdp\sdp.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sdp\sdp_parse.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sdp\sdp_print.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sdp\sdp_tag.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sdp\sdp_tag_ref.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sdp\sdp.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sdp\sdp_parse.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sdp\sdp_print.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sdp\sdp_tag.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sdp\sdp_tag_ref.c"></File>
 			</Filter>
 			<Filter
 				Name="soa"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\soa\soa.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\soa\sofia-sip\soa_session.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\soa\soa_static.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\soa\soa_tag.c"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\soa\soa_tag_ref.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\soa\soa.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\soa\sofia-sip\soa_session.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\soa\soa_static.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\soa\soa_tag.c"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\soa\soa_tag_ref.c"></File>
 			</Filter>
 		</Filter>
 		<Filter
@@ -433,194 +433,194 @@
 				Name="su headers"
 				Filter="su*.h"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\sofia-sip\htable.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\sofia-sip\htable2.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\sofia-sip\rbtree.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\sofia-sip\su.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\sofia-sip\su_addrinfo.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\sofia-sip\su_alloc.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\sofia-sip\su_alloc_stat.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\sofia-sip\su_bm.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\sofia-sip\su_config.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\sofia-sip\su_debug.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\sofia-sip\su_errno.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\sofia-sip\su_localinfo.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\sofia-sip\su_log.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\sofia-sip\su_md5.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\su_module_debug.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\sofia-sip\su_os_nw.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\su_port.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\sofia-sip\su_source.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\sofia-sip\su_strlst.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\sofia-sip\su_tag.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\sofia-sip\su_tag_class.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\sofia-sip\su_tag_inline.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\sofia-sip\su_tag_io.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\sofia-sip\su_tagarg.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\sofia-sip\su_time.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\sofia-sip\su_types.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\sofia-sip\su_uniqueid.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\sofia-sip\su_vector.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\sofia-sip\su_wait.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\su\sofia-sip\tstdef.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\sofia-sip\htable.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\sofia-sip\htable2.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\sofia-sip\rbtree.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\sofia-sip\su.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\sofia-sip\su_addrinfo.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\sofia-sip\su_alloc.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\sofia-sip\su_alloc_stat.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\sofia-sip\su_bm.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\sofia-sip\su_config.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\sofia-sip\su_debug.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\sofia-sip\su_errno.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\sofia-sip\su_localinfo.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\sofia-sip\su_log.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\sofia-sip\su_md5.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\su_module_debug.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\sofia-sip\su_os_nw.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\su_port.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\sofia-sip\su_source.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\sofia-sip\su_strlst.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\sofia-sip\su_tag.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\sofia-sip\su_tag_class.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\sofia-sip\su_tag_inline.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\sofia-sip\su_tag_io.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\sofia-sip\su_tagarg.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\sofia-sip\su_time.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\sofia-sip\su_types.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\sofia-sip\su_uniqueid.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\sofia-sip\su_vector.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\sofia-sip\su_wait.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\su\sofia-sip\tstdef.h"></File>
 			</Filter>
 			<Filter
 				Name="win32 headers"
 				>
 				<File RelativePath="..\config.h"></File>
-				<File RelativePath="..\sofia-sip-1.12.3.11\su_configure.h"></File>
+				<File RelativePath="..\sofia-sip-1.12.4\su_configure.h"></File>
 				<File RelativePath="..\unistd.h"></File>
 			</Filter>
 			<Filter
 				Name="ipt headers"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\ipt\sofia-sip\base64.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\ipt\sofia-sip\rc4.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\ipt\sofia-sip\string0.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\ipt\sofia-sip\token64.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\ipt\sofia-sip\base64.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\ipt\sofia-sip\rc4.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\ipt\sofia-sip\string0.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\ipt\sofia-sip\token64.h"></File>
 			</Filter>
 			<Filter
 				Name="url headers"
 				Filter="url*.h"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\url\sofia-sip\url.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\url\sofia-sip\url_tag.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\url\sofia-sip\url_tag_class.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\url\sofia-sip\url.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\url\sofia-sip\url_tag.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\url\sofia-sip\url_tag_class.h"></File>
 			</Filter>
 			<Filter
 				Name="features headers"
 				Filter="features*.h"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\features\sofia-sip\sofia_features.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\features\sofia-sip\sofia_features.h"></File>
 			</Filter>
 			<Filter
 				Name="bnf headers"
 				Filter="bnf*.h"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\bnf\sofia-sip\bnf.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\bnf\sofia-sip\hostdomain.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\bnf\sofia-sip\bnf.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\bnf\sofia-sip\hostdomain.h"></File>
 			</Filter>
 			<Filter
 				Name="msg headers"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\msg\sofia-sip\msg.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\msg\sofia-sip\msg_addr.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\msg\msg_bnf.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\msg\sofia-sip\msg_buffer.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\msg\sofia-sip\msg_date.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\msg\sofia-sip\msg_header.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\msg\msg_internal.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\msg\sofia-sip\msg_mclass.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\msg\sofia-sip\msg_mclass_hash.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\msg\sofia-sip\msg_mime.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\msg\sofia-sip\msg_mime_protos.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\msg\sofia-sip\msg_parser.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\msg\sofia-sip\msg_protos.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\msg\sofia-sip\msg_tag_class.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\msg\sofia-sip\msg_types.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\msg\sofia-sip\msg.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\msg\sofia-sip\msg_addr.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\msg\msg_bnf.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\msg\sofia-sip\msg_buffer.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\msg\sofia-sip\msg_date.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\msg\sofia-sip\msg_header.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\msg\msg_internal.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\msg\sofia-sip\msg_mclass.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\msg\sofia-sip\msg_mclass_hash.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\msg\sofia-sip\msg_mime.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\msg\sofia-sip\msg_mime_protos.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\msg\sofia-sip\msg_parser.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\msg\sofia-sip\msg_protos.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\msg\sofia-sip\msg_tag_class.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\msg\sofia-sip\msg_types.h"></File>
 			</Filter>
 			<Filter
 				Name="sip headers"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sofia-sip\sip.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sip_extensions.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sofia-sip\sip_hclasses.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sofia-sip\sip_header.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sip_internal.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sofia-sip\sip_parser.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sofia-sip\sip_protos.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sofia-sip\sip_status.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sofia-sip\sip_tag.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sofia-sip\sip_tag_class.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sip\sofia-sip\sip_util.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sofia-sip\sip.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sip_extensions.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sofia-sip\sip_hclasses.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sofia-sip\sip_header.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sip_internal.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sofia-sip\sip_parser.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sofia-sip\sip_protos.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sofia-sip\sip_status.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sofia-sip\sip_tag.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sofia-sip\sip_tag_class.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sip\sofia-sip\sip_util.h"></File>
 			</Filter>
 			<Filter
 				Name="http headers"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\http\sofia-sip\http.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\http\sofia-sip\http_hclasses.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\http\sofia-sip\http_header.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\http\sofia-sip\http_parser.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\http\sofia-sip\http_protos.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\http\sofia-sip\http_status.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\http\sofia-sip\http_tag.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\http\sofia-sip\http_tag_class.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\http\sofia-sip\http.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\http\sofia-sip\http_hclasses.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\http\sofia-sip\http_header.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\http\sofia-sip\http_parser.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\http\sofia-sip\http_protos.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\http\sofia-sip\http_status.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\http\sofia-sip\http_tag.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\http\sofia-sip\http_tag_class.h"></File>
 			</Filter>
 			<Filter
 				Name="nth headers"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nth\sofia-sip\nth.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nth\sofia-sip\nth_tag.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nth\sofia-sip\nth.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nth\sofia-sip\nth_tag.h"></File>
 			</Filter>
 			<Filter
 				Name="sresolv headers"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sresolv\sofia-resolv\sres.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sresolv\sofia-resolv\sres_async.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sresolv\sofia-resolv\sres_cache.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sresolv\sofia-resolv\sres_record.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sresolv\sofia-sip\sresolv.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sresolv\sofia-resolv\sres.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sresolv\sofia-resolv\sres_async.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sresolv\sofia-resolv\sres_cache.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sresolv\sofia-resolv\sres_record.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sresolv\sofia-sip\sresolv.h"></File>
 			</Filter>
 			<Filter
 				Name="nea headers"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nea\sofia-sip\nea.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nea\nea_debug.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nea\sofia-sip\nea_tag.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nea\sofia-sip\nea.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nea\nea_debug.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nea\sofia-sip\nea_tag.h"></File>
 			</Filter>
 			<Filter
 				Name="iptsec headers"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\iptsec\sofia-sip\auth_client.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\iptsec\sofia-sip\auth_digest.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\iptsec\sofia-sip\auth_module.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\iptsec\sofia-sip\auth_ntlm.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\iptsec\sofia-sip\auth_plugin.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\iptsec\iptsec_debug.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\iptsec\sofia-sip\auth_client.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\iptsec\sofia-sip\auth_digest.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\iptsec\sofia-sip\auth_module.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\iptsec\sofia-sip\auth_ntlm.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\iptsec\sofia-sip\auth_plugin.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\iptsec\iptsec_debug.h"></File>
 			</Filter>
 			<Filter
 				Name="stun headers"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\stun\sofia-sip\stun.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\stun\sofia-sip\stun_common.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\stun\sofia-sip\stun_tag.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\stun\sofia-sip\stun.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\stun\sofia-sip\stun_common.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\stun\sofia-sip\stun_tag.h"></File>
 			</Filter>
 			<Filter
 				Name="nua headers"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nua\sofia-sip\nua.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nua\sofia-sip\nua_tag.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nua\sofia-sip\nua.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nua\sofia-sip\nua_tag.h"></File>
 			</Filter>
 			<Filter
 				Name="nta headers"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nta\sofia-sip\nta.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nta\nta_internal.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nta\sofia-sip\nta_stateless.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nta\sofia-sip\nta_tag.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nta\sofia-sip\nta_tport.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\nta\sofia-sip\sl_utils.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nta\sofia-sip\nta.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nta\nta_internal.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nta\sofia-sip\nta_stateless.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nta\sofia-sip\nta_tag.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nta\sofia-sip\nta_tport.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\nta\sofia-sip\sl_utils.h"></File>
 			</Filter>
 			<Filter
 				Name="tport headers"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\tport\sofia-sip\tport.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\tport\sofia-sip\tport_plugins.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\tport\sofia-sip\tport_tag.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\tport\tport_tls.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\tport\sofia-sip\tport.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\tport\sofia-sip\tport_plugins.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\tport\sofia-sip\tport_tag.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\tport\tport_tls.h"></File>
 			</Filter>
 			<Filter
 				Name="sdp headers"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sdp\sofia-sip\sdp.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\sdp\sofia-sip\sdp_tag.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sdp\sofia-sip\sdp.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\sdp\sofia-sip\sdp_tag.h"></File>
 			</Filter>
 			<Filter
 				Name="soa headers"
 				>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\soa\sofia-sip\soa.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\soa\sofia-sip\soa_add.h"></File>
-				<File RelativePath="..\..\sofia-sip-1.12.3.11\libsofia-sip-ua\soa\sofia-sip\soa_tag.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\soa\sofia-sip\soa.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\soa\sofia-sip\soa_add.h"></File>
+				<File RelativePath="..\..\sofia-sip-1.12.4\libsofia-sip-ua\soa\sofia-sip\soa_tag.h"></File>
 			</Filter>
 		</Filter>
 	</Files>

Modified: freeswitch/branches/knhor/trunk/modules.conf.in
==============================================================================
--- freeswitch/branches/knhor/trunk/modules.conf.in	(original)
+++ freeswitch/branches/knhor/trunk/modules.conf.in	Sun Dec  3 17:55:28 2006
@@ -43,5 +43,6 @@
 #languages/mod_spidermonkey
 #languages/mod_spidermonkey_teletone
 #languages/mod_spidermonkey_core_db
+#languages/mod_spidermonkey_odbc
 timers/mod_softtimer
 #xml_int/mod_xml_rpc

Modified: freeswitch/branches/knhor/trunk/src/include/switch.h
==============================================================================
--- freeswitch/branches/knhor/trunk/src/include/switch.h	(original)
+++ freeswitch/branches/knhor/trunk/src/include/switch.h	Sun Dec  3 17:55:28 2006
@@ -166,3 +166,14 @@
  *
  */
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/include/switch_apr.h
==============================================================================
--- freeswitch/branches/knhor/trunk/src/include/switch_apr.h	(original)
+++ freeswitch/branches/knhor/trunk/src/include/switch_apr.h	Sun Dec  3 17:55:28 2006
@@ -1441,3 +1441,14 @@
 SWITCH_END_EXTERN_C
 
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/include/switch_bitpack.h
==============================================================================
--- freeswitch/branches/knhor/trunk/src/include/switch_bitpack.h	(original)
+++ freeswitch/branches/knhor/trunk/src/include/switch_bitpack.h	Sun Dec  3 17:55:28 2006
@@ -280,3 +280,14 @@
 
 SWITCH_END_EXTERN_C
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/include/switch_buffer.h
==============================================================================
--- freeswitch/branches/knhor/trunk/src/include/switch_buffer.h	(original)
+++ freeswitch/branches/knhor/trunk/src/include/switch_buffer.h	Sun Dec  3 17:55:28 2006
@@ -131,3 +131,14 @@
 SWITCH_END_EXTERN_C
 
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/include/switch_caller.h
==============================================================================
--- freeswitch/branches/knhor/trunk/src/include/switch_caller.h	(original)
+++ freeswitch/branches/knhor/trunk/src/include/switch_caller.h	Sun Dec  3 17:55:28 2006
@@ -88,6 +88,9 @@
 	char *context;
 	/*! flags */
 	switch_caller_profile_flag_t flags;
+	struct switch_caller_profile *originator_caller_profile;
+	struct switch_caller_profile *originatee_caller_profile;
+	struct switch_channel_timetable *times;
 	struct switch_caller_profile *next;
 };
 
@@ -203,4 +206,13 @@
 
 #endif
 
-
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/include/switch_channel.h
==============================================================================
--- freeswitch/branches/knhor/trunk/src/include/switch_channel.h	(original)
+++ freeswitch/branches/knhor/trunk/src/include/switch_channel.h	Sun Dec  3 17:55:28 2006
@@ -46,6 +46,7 @@
 	switch_time_t created;
 	switch_time_t answered;
 	switch_time_t hungup;
+	switch_time_t transferred;
 	struct switch_channel_timetable *next;
 };
 
@@ -428,11 +429,19 @@
 */
 SWITCH_DECLARE(char *) switch_channel_expand_variables(switch_channel_t *channel, char *in);
 
-// These may go away
-SWITCH_DECLARE(switch_status_t) switch_channel_set_raw_mode (switch_channel_t *channel, int freq, int bits, int channels, int ms, int kbps);
-SWITCH_DECLARE(switch_status_t) switch_channel_get_raw_mode (switch_channel_t *channel, int *freq, int *bits, int *channels, int *ms, int *kbps);
 /** @} */
 
 SWITCH_END_EXTERN_C
 
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/include/switch_config.h
==============================================================================
--- freeswitch/branches/knhor/trunk/src/include/switch_config.h	(original)
+++ freeswitch/branches/knhor/trunk/src/include/switch_config.h	Sun Dec  3 17:55:28 2006
@@ -109,3 +109,14 @@
 /** @} */
 
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/include/switch_console.h
==============================================================================
--- freeswitch/branches/knhor/trunk/src/include/switch_console.h	(original)
+++ freeswitch/branches/knhor/trunk/src/include/switch_console.h	Sun Dec  3 17:55:28 2006
@@ -71,3 +71,14 @@
 SWITCH_END_EXTERN_C
 
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/include/switch_core.h
==============================================================================
--- freeswitch/branches/knhor/trunk/src/include/switch_core.h	(original)
+++ freeswitch/branches/knhor/trunk/src/include/switch_core.h	Sun Dec  3 17:55:28 2006
@@ -1362,3 +1362,14 @@
 SWITCH_END_EXTERN_C
 
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/include/switch_event.h
==============================================================================
--- freeswitch/branches/knhor/trunk/src/include/switch_event.h	(original)
+++ freeswitch/branches/knhor/trunk/src/include/switch_event.h	Sun Dec  3 17:55:28 2006
@@ -313,3 +313,14 @@
 SWITCH_END_EXTERN_C
 
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/include/switch_frame.h
==============================================================================
--- freeswitch/branches/knhor/trunk/src/include/switch_frame.h	(original)
+++ freeswitch/branches/knhor/trunk/src/include/switch_frame.h	Sun Dec  3 17:55:28 2006
@@ -71,3 +71,14 @@
 SWITCH_END_EXTERN_C
 
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/include/switch_ivr.h
==============================================================================
--- freeswitch/branches/knhor/trunk/src/include/switch_ivr.h	(original)
+++ freeswitch/branches/knhor/trunk/src/include/switch_ivr.h	Sun Dec  3 17:55:28 2006
@@ -200,15 +200,17 @@
   \param dtmf_callback code to execute if any dtmf is dialed during the recording
   \param buf an object to maintain across calls
   \param buflen the size of buf
+  \param limit max limit to record for (0 for infinite)
   \return SWITCH_STATUS_SUCCESS if all is well
   \note passing a NULL dtmf_callback nad a not NULL buf indicates to copy any dtmf to buf and stop recording.
 */
 SWITCH_DECLARE(switch_status_t) switch_ivr_record_file(switch_core_session_t *session,
-													 switch_file_handle_t *fh,
-													 char *file,
-													 switch_input_callback_function_t dtmf_callback,
-													 void *buf,
-													 uint32_t buflen);
+                                                       switch_file_handle_t *fh,
+                                                       char *file,
+                                                       switch_input_callback_function_t dtmf_callback,
+                                                       void *buf,
+                                                       uint32_t buflen,
+                                                       uint32_t limit);
 
 /*!
  \brief Function to evaluate an expression against a string
@@ -456,6 +458,7 @@
 /*!
   \brief Set a digit string terminator
   \param parser a pointer to the parser object created by switch_ivr_digit_stream_parser_new
+  \param digit the terminator digit
   \return SWITCH_STATUS_SUCCESS if all is well 
 */
 SWITCH_DECLARE(switch_status_t) switch_ivr_digit_stream_parser_set_terminator(switch_ivr_digit_stream_parser_t *parser, char digit);
@@ -606,4 +609,13 @@
 
 #endif
 
-
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/include/switch_loadable_module.h
==============================================================================
--- freeswitch/branches/knhor/trunk/src/include/switch_loadable_module.h	(original)
+++ freeswitch/branches/knhor/trunk/src/include/switch_loadable_module.h	Sun Dec  3 17:55:28 2006
@@ -251,3 +251,14 @@
 SWITCH_END_EXTERN_C
 
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/include/switch_log.h
==============================================================================
--- freeswitch/branches/knhor/trunk/src/include/switch_log.h	(original)
+++ freeswitch/branches/knhor/trunk/src/include/switch_log.h	Sun Dec  3 17:55:28 2006
@@ -120,3 +120,14 @@
 SWITCH_END_EXTERN_C
 
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/include/switch_module_interfaces.h
==============================================================================
--- freeswitch/branches/knhor/trunk/src/include/switch_module_interfaces.h	(original)
+++ freeswitch/branches/knhor/trunk/src/include/switch_module_interfaces.h	Sun Dec  3 17:55:28 2006
@@ -313,6 +313,8 @@
 	void *private_info;
 	int64_t pos;
 	switch_buffer_t *audio_buffer;
+    uint32_t thresh;
+    uint32_t silence_hits;
 };
 
 /*! \brief Abstract interface to an asr module */
@@ -604,3 +606,14 @@
 SWITCH_END_EXTERN_C
 
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/include/switch_platform.h
==============================================================================
--- freeswitch/branches/knhor/trunk/src/include/switch_platform.h	(original)
+++ freeswitch/branches/knhor/trunk/src/include/switch_platform.h	Sun Dec  3 17:55:28 2006
@@ -155,3 +155,14 @@
 SWITCH_END_EXTERN_C
 
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/include/switch_resample.h
==============================================================================
--- freeswitch/branches/knhor/trunk/src/include/switch_resample.h	(original)
+++ freeswitch/branches/knhor/trunk/src/include/switch_resample.h	Sun Dec  3 17:55:28 2006
@@ -168,4 +168,13 @@
 
 #endif
 
-
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/include/switch_rtp.h
==============================================================================
--- freeswitch/branches/knhor/trunk/src/include/switch_rtp.h	(original)
+++ freeswitch/branches/knhor/trunk/src/include/switch_rtp.h	Sun Dec  3 17:55:28 2006
@@ -380,3 +380,14 @@
 SWITCH_END_EXTERN_C
 
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/include/switch_sqlite.h
==============================================================================
--- freeswitch/branches/knhor/trunk/src/include/switch_sqlite.h	(original)
+++ freeswitch/branches/knhor/trunk/src/include/switch_sqlite.h	Sun Dec  3 17:55:28 2006
@@ -1808,3 +1808,14 @@
 SWITCH_END_EXTERN_C
 
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/include/switch_stun.h
==============================================================================
--- freeswitch/branches/knhor/trunk/src/include/switch_stun.h	(original)
+++ freeswitch/branches/knhor/trunk/src/include/switch_stun.h	Sun Dec  3 17:55:28 2006
@@ -243,3 +243,14 @@
 SWITCH_END_EXTERN_C
 
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/include/switch_types.h
==============================================================================
--- freeswitch/branches/knhor/trunk/src/include/switch_types.h	(original)
+++ freeswitch/branches/knhor/trunk/src/include/switch_types.h	Sun Dec  3 17:55:28 2006
@@ -86,6 +86,8 @@
 #define SWITCH_LOCAL_MEDIA_PORT_VARIABLE "_local_media_port_"
 #define SWITCH_REMOTE_MEDIA_IP_VARIABLE "_remote_media_ip_"
 #define SWITCH_REMOTE_MEDIA_PORT_VARIABLE "_remote_media_port_"
+#define SWITCH_HANGUP_AFTER_BRIDGE_VARIABLE "hangup_after_bridge"
+
 #define SWITCH_SPEECH_KEY "_speech_"
 #define SWITCH_UUID_BRIDGE "_uuid_bridge_"
 #define SWITCH_BITS_PER_BYTE 8
@@ -465,7 +467,8 @@
 	CF_CONTROLLED	= (1 << 12),
 	CF_NOMEDIA		= (1 << 13),
 	CF_SUSPEND		= (1 << 14),
-	CF_EVENT_PARSE	= (1 << 15)
+	CF_EVENT_PARSE	= (1 << 15),
+	CF_NO_INDICATE	= (1 << 16)
 } switch_channel_flag_t;
 
 
@@ -911,3 +914,14 @@
 SWITCH_END_EXTERN_C
 
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/include/switch_utils.h
==============================================================================
--- freeswitch/branches/knhor/trunk/src/include/switch_utils.h	(original)
+++ freeswitch/branches/knhor/trunk/src/include/switch_utils.h	Sun Dec  3 17:55:28 2006
@@ -39,6 +39,7 @@
 #define SWITCH_UTILS_H
 
 #include <switch.h>
+#include <pcre.h>
 
 SWITCH_BEGIN_EXTERN_C
 
@@ -231,8 +232,15 @@
 */
 SWITCH_DECLARE(char *) switch_cut_path(char *in);
 
+#define switch_clean_re(re)	if (re) {\
+				pcre_free(re);\
+				re = NULL;\
+			}
+
 SWITCH_DECLARE(char *) switch_string_replace(const char *string, const char *search, const char *replace);
 SWITCH_DECLARE(switch_status_t) switch_string_match(const char *string, size_t string_len, const char *search, size_t search_len);
+SWITCH_DECLARE(int) switch_perform_regex(char *field, char *expression, pcre **new_re, int *ovector, uint32_t olen);
+SWITCH_DECLARE(void) switch_perform_substitution(pcre *re, int match_count, char *data, char *field_data, char *substituted, uint32_t len, int *ovector);
 
 #define SWITCH_READ_ACCEPTABLE(status) status == SWITCH_STATUS_SUCCESS || status == SWITCH_STATUS_BREAK
 SWITCH_DECLARE(size_t) switch_url_encode(char *url, char *buf, size_t len);
@@ -240,3 +248,14 @@
 SWITCH_END_EXTERN_C
 
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/include/switch_xml.h
==============================================================================
--- freeswitch/branches/knhor/trunk/src/include/switch_xml.h	(original)
+++ freeswitch/branches/knhor/trunk/src/include/switch_xml.h	Sun Dec  3 17:55:28 2006
@@ -336,3 +336,14 @@
 ///\}
 
 #endif // _SWITCH_XML_H
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/applications/mod_bridgecall/mod_bridgecall.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/applications/mod_bridgecall/mod_bridgecall.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/applications/mod_bridgecall/mod_bridgecall.c	Sun Dec  3 17:55:28 2006
@@ -42,17 +42,27 @@
 	switch_core_session_t *peer_session;
 	unsigned int timelimit = 60;
 	char *var;
+	uint8_t no_media_bridge = 0;
 	switch_call_cause_t cause = SWITCH_CAUSE_NORMAL_CLEARING;
 
+    if (switch_strlen_zero(data)) {
+        return;
+    }
+
 	caller_channel = switch_core_session_get_channel(session);
 	assert(caller_channel != NULL);
 
 	if ((var = switch_channel_get_variable(caller_channel, "call_timeout"))) {
 		timelimit = atoi(var);
 	}
-
-	if ((var = switch_channel_get_variable(caller_channel, "no_media"))) {
-		switch_channel_set_flag(caller_channel, CF_NOMEDIA);		
+	
+	if ((var = switch_channel_get_variable(caller_channel, "no_media")) && switch_true(var)) {
+		if (!switch_channel_test_flag(caller_channel, CF_ANSWERED) && !switch_channel_test_flag(caller_channel, CF_EARLY_MEDIA)) {
+			switch_channel_set_flag(caller_channel, CF_NOMEDIA);
+		} else {
+			switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Channel is already up, delaying point-to-point mode 'till both legs are up.\n");
+			no_media_bridge = 1;
+		}
 	}
 
 	if (switch_ivr_originate(session, &peer_session, &cause, data, timelimit, NULL, NULL, NULL, NULL) != SWITCH_STATUS_SUCCESS) {
@@ -61,10 +71,17 @@
 		switch_channel_hangup(caller_channel, cause);
 		return;
 	} else {
-		if (switch_channel_test_flag(caller_channel, CF_NOMEDIA)) {
-			switch_ivr_signal_bridge(session, peer_session);			
+		if (no_media_bridge) {
+			switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Redirecting media to point-to-point mode.\n");
+			switch_ivr_nomedia(switch_core_session_get_uuid(session), SMF_FORCE);
+			switch_ivr_nomedia(switch_core_session_get_uuid(peer_session), SMF_FORCE);
+			switch_ivr_signal_bridge(session, peer_session);
 		} else {
-			switch_ivr_multi_threaded_bridge(session, peer_session, NULL, NULL, NULL);
+			if (switch_channel_test_flag(caller_channel, CF_NOMEDIA)) {
+				switch_ivr_signal_bridge(session, peer_session);
+			} else {
+				switch_ivr_multi_threaded_bridge(session, peer_session, NULL, NULL, NULL);
+			}
 		}
 	}
 }
@@ -95,3 +112,14 @@
 	/* indicate that the module should continue to be loaded */
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/applications/mod_commands/mod_commands.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/applications/mod_commands/mod_commands.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/applications/mod_commands/mod_commands.c	Sun Dec  3 17:55:28 2006
@@ -26,12 +26,14 @@
  * Anthony Minessale II <anthmct at yahoo.com>
  * Michael Jerris <mike at jerris.com>
  * Johny Kadarisman <jkr888 at gmail.com>
+ * Paul Tinsley <jackhammer at gmail.com>
  *
  * 
  * mod_commands.c -- Misc. Command Module
  *
  */
 #include <switch.h>
+#include <switch_version.h>
 
 static const char modname[] = "mod_commands";
 static switch_api_interface_t ctl_api_interface;
@@ -613,9 +615,9 @@
 		// If you change one, you must change the other!
 		if ((cmdname = strchr(cmd, ' ')) != 0) {
 			*cmdname++ = '\0';
-			sprintf (sql, "select description, name, syntax from interfaces where type = 'api' and name = '%s'", cmdname);
+			snprintf (sql, sizeof(sql) - 1, "select description, name, syntax from interfaces where type = 'api' and name = '%s'", cmdname);
 		} else {
-			sprintf (sql, "select description, name, syntax from interfaces where type = 'api'");
+			snprintf (sql, sizeof(sql) - 1, "select description, name, syntax from interfaces where type = 'api'");
 		}
 	} else {
 		stream->write_function(stream, "USAGE: %s\n", show_api_interface.syntax);
@@ -650,6 +652,15 @@
 	return SWITCH_STATUS_SUCCESS;
 }
 
+static switch_status_t version_function(char *cmd, switch_core_session_t *session, switch_stream_handle_t *stream)
+{
+	char version_string[1024];
+	snprintf(version_string, sizeof(version_string) - 1,  "FreeSwitch Version %s\n", SWITCH_VERSION_FULL);
+
+	stream->write_function(stream, version_string);
+	return SWITCH_STATUS_SUCCESS;
+}
+
 static switch_status_t help_function(char *cmd, switch_core_session_t *session, switch_stream_handle_t *stream)
 {
 	char showcmd[1024];
@@ -658,7 +669,7 @@
 		sprintf (showcmd, "help");
 		all = 1;
 	} else {
-		sprintf (showcmd, "help %s", cmd);
+		snprintf(showcmd, sizeof(showcmd) -1, "help %s", cmd);
 	}
 
 	if (all) {
@@ -667,19 +678,23 @@
 
 	show_function(showcmd, session, stream);
 
-	if (all) {
-		stream->write_function(stream, "version\n" "shutdown - stop the program\n");
-	}
-
 	return SWITCH_STATUS_SUCCESS;
 }
 
+static switch_api_interface_t version_api_interface = {
+	/*.interface_name */ "version",
+	/*.desc */ "Show version of the switch",
+	/*.function */ version_function,
+	/*.syntax */ "",
+	/*.next */ NULL
+};
+
 static switch_api_interface_t help_api_interface = {
 	/*.interface_name */ "help",
 	/*.desc */ "Show help for all the api commands",
 	/*.function */ help_function,
 	/*.syntax */ "",
-	/*.next */ NULL
+	/*.next */ &version_api_interface,
 };
 
 static switch_api_interface_t ctl_api_interface = {
@@ -805,3 +820,14 @@
 	/* indicate that the module should continue to be loaded */
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/applications/mod_conference/mod_conference.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/applications/mod_conference/mod_conference.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/applications/mod_conference/mod_conference.c	Sun Dec  3 17:55:28 2006
@@ -3923,3 +3923,14 @@
 
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/applications/mod_dptools/mod_dptools.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/applications/mod_dptools/mod_dptools.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/applications/mod_dptools/mod_dptools.c	Sun Dec  3 17:55:28 2006
@@ -25,6 +25,7 @@
  * 
  * Anthony Minessale II <anthmct at yahoo.com>
  * Ken Rice, Asteria Solutions Group, Inc <ken at asteriasgi.com>
+ * Michael Murdock <mike at mmurdock dot org>
  *
  *
  * mod_dptools.c -- Raw Audio File Streaming Application Module
@@ -135,6 +136,48 @@
 	}
 }
 
+static void log_function(switch_core_session_t *session, char *data)
+{
+	switch_channel_t *channel;
+    char *level, *log_str;
+
+	channel = switch_core_session_get_channel(session);
+    assert(channel != NULL);
+
+    if ((level = strdup(data))) {
+        switch_event_types_t etype = SWITCH_LOG_DEBUG;
+        
+        if ((log_str = strchr(level, ' '))) {
+            *log_str++ = '\0';
+            switch_name_event(level, &etype);
+        } else {
+            log_str = level;
+        }
+
+        switch_log_printf(SWITCH_CHANNEL_LOG, etype, "%s\n", log_str);
+        switch_safe_free(level);
+    }
+}
+
+
+static void info_function(switch_core_session_t *session, char *data)
+{
+	switch_channel_t *channel;
+    switch_event_t *event;
+    char *buf;
+
+	channel = switch_core_session_get_channel(session);
+    assert(channel != NULL);
+
+    if (switch_event_create(&event, SWITCH_EVENT_MESSAGE) == SWITCH_STATUS_SUCCESS) {
+        switch_channel_event_set_data(channel, event);
+        switch_event_serialize(event, &buf);
+        switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "CHANNEL_DATA:\n%s\n", buf);
+        switch_event_destroy(&event);
+    }
+    
+}
+
 static void privacy_function(switch_core_session_t *session, char *data)
 {
 	switch_channel_t *channel;
@@ -315,13 +358,31 @@
 	/*.next */ &ringback_application_interface
 };
 
+static const switch_application_interface_t info_application_interface = {
+	/*.interface_name */ "info",
+	/*.application_function */ info_function,
+	/* long_desc */ "Display Call Info",
+	/* short_desc */ "Display Call Info",
+	/* syntax */ "",
+	/*.next */ &set_application_interface
+};
+
+static const switch_application_interface_t log_application_interface = {
+	/*.interface_name */ "log",
+	/*.application_function */ log_function,
+	/* long_desc */ "Logs a channel varaible for the channel calling the application.",
+	/* short_desc */ "Logs a channel varaible",
+	/* syntax */ "<varname>",
+	/*.next */ &info_application_interface
+};
+
 static const switch_application_interface_t answer_application_interface = {
 	/*.interface_name */ "answer",
 	/*.application_function */ answer_function,
 	/* long_desc */ "Answer the call for a channel.",
 	/* short_desc */ "Answer the call",
 	/* syntax */ "",
-	/*.next */ &set_application_interface
+	/*.next */ &log_application_interface
 
 };
 
@@ -399,3 +460,14 @@
 
 
 //switch_status_t switch_module_runtime(void)
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/applications/mod_echo/mod_echo.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/applications/mod_echo/mod_echo.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/applications/mod_echo/mod_echo.c	Sun Dec  3 17:55:28 2006
@@ -72,3 +72,14 @@
 	/* indicate that the module should continue to be loaded */
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/applications/mod_ivrtest/mod_ivrtest.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/applications/mod_ivrtest/mod_ivrtest.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/applications/mod_ivrtest/mod_ivrtest.c	Sun Dec  3 17:55:28 2006
@@ -491,3 +491,14 @@
 
 
 //switch_status_t switch_module_runtime(void)
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/applications/mod_park/mod_park.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/applications/mod_park/mod_park.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/applications/mod_park/mod_park.c	Sun Dec  3 17:55:28 2006
@@ -65,3 +65,14 @@
 	/* indicate that the module should continue to be loaded */
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/applications/mod_playback/mod_playback.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/applications/mod_playback/mod_playback.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/applications/mod_playback/mod_playback.c	Sun Dec  3 17:55:28 2006
@@ -132,11 +132,21 @@
 {
 	switch_channel_t *channel;
 	switch_status_t status;
+    uint32_t limit = 0;
+    char *path;
+    char *p;
+
 	channel = switch_core_session_get_channel(session);
     assert(channel != NULL);
 
-	status = switch_ivr_record_file(session, NULL, data, on_dtmf, NULL, 0);
+    path = switch_core_session_strdup(session, data);
+    if ((p = strchr(path, '+'))) {
+        *p++ = '\0';
+        limit = atoi(p);
+    }
 
+	status = switch_ivr_record_file(session, NULL, path, on_dtmf, NULL, 0, limit);
+
 	if (!switch_channel_ready(channel) || (status != SWITCH_STATUS_SUCCESS && !SWITCH_STATUS_IS_BREAK(status))) {
 		switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
 	}
@@ -224,3 +234,14 @@
 
 
 //switch_status_t switch_module_runtime(void)
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/applications/mod_rss/mod_rss.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/applications/mod_rss/mod_rss.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/applications/mod_rss/mod_rss.c	Sun Dec  3 17:55:28 2006
@@ -679,3 +679,13 @@
 	return SWITCH_STATUS_SUCCESS;
 }
 
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/applications/mod_skel/mod_skel.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/applications/mod_skel/mod_skel.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/applications/mod_skel/mod_skel.c	Sun Dec  3 17:55:28 2006
@@ -78,3 +78,14 @@
 	return SWITCH_STATUS_TERM;
 }
 */
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/asr_tts/mod_cepstral/mod_cepstral.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/asr_tts/mod_cepstral/mod_cepstral.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/asr_tts/mod_cepstral/mod_cepstral.c	Sun Dec  3 17:55:28 2006
@@ -435,3 +435,14 @@
 	/* indicate that the module should continue to be loaded */
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/codecs/mod_g711/mod_g711.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/codecs/mod_g711/mod_g711.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/codecs/mod_g711/mod_g711.c	Sun Dec  3 17:55:28 2006
@@ -326,3 +326,14 @@
 	/* indicate that the module should continue to be loaded */
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/codecs/mod_g722/mod_g722.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/codecs/mod_g722/mod_g722.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/codecs/mod_g722/mod_g722.c	Sun Dec  3 17:55:28 2006
@@ -183,3 +183,14 @@
 	/* indicate that the module should continue to be loaded */
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/codecs/mod_g723_1/mod_g723_1.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/codecs/mod_g723_1/mod_g723_1.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/codecs/mod_g723_1/mod_g723_1.c	Sun Dec  3 17:55:28 2006
@@ -222,3 +222,14 @@
 	/* indicate that the module should continue to be loaded */ 
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/codecs/mod_g726/mod_g726.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/codecs/mod_g726/mod_g726.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/codecs/mod_g726/mod_g726.c	Sun Dec  3 17:55:28 2006
@@ -448,3 +448,14 @@
 	/* indicate that the module should continue to be loaded */ 
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/codecs/mod_g729/mod_g729.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/codecs/mod_g729/mod_g729.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/codecs/mod_g729/mod_g729.c	Sun Dec  3 17:55:28 2006
@@ -282,3 +282,14 @@
 	/* indicate that the module should continue to be loaded */ 
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/codecs/mod_gsm/mod_gsm.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/codecs/mod_gsm/mod_gsm.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/codecs/mod_gsm/mod_gsm.c	Sun Dec  3 17:55:28 2006
@@ -135,7 +135,7 @@
 static const switch_codec_implementation_t gsm_8k_implementation = { 
 		/*.codec_type */ SWITCH_CODEC_TYPE_AUDIO, 
 		/*.ianacode */ 3, 
-		/*.iananame */ "gsm", 
+		/*.iananame */ "GSM", 
 		/*.fmtp */ NULL,
 		/*.samples_per_second */ 8000, 
 		/*.bits_per_second */ 13200, 
@@ -174,4 +174,13 @@
 		return SWITCH_STATUS_SUCCESS;
 }
 
-
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/codecs/mod_ilbc/mod_ilbc.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/codecs/mod_ilbc/mod_ilbc.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/codecs/mod_ilbc/mod_ilbc.c	Sun Dec  3 17:55:28 2006
@@ -333,9 +333,13 @@
 
 }
 
-
-
-
-
-
-
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/codecs/mod_l16/mod_l16.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/codecs/mod_l16/mod_l16.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/codecs/mod_l16/mod_l16.c	Sun Dec  3 17:55:28 2006
@@ -263,3 +263,14 @@
 	/* indicate that the module should continue to be loaded */
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/codecs/mod_lpc10/mod_lpc10.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/codecs/mod_lpc10/mod_lpc10.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/codecs/mod_lpc10/mod_lpc10.c	Sun Dec  3 17:55:28 2006
@@ -210,3 +210,14 @@
 	/* indicate that the module should continue to be loaded */ 
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/codecs/mod_speex/mod_speex.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/codecs/mod_speex/mod_speex.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/codecs/mod_speex/mod_speex.c	Sun Dec  3 17:55:28 2006
@@ -351,3 +351,14 @@
 	/* indicate that the module should continue to be loaded */
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/dialplans/mod_dialplan_directory/mod_dialplan_directory.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/dialplans/mod_dialplan_directory/mod_dialplan_directory.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/dialplans/mod_dialplan_directory/mod_dialplan_directory.c	Sun Dec  3 17:55:28 2006
@@ -183,3 +183,14 @@
 	/* indicate that the module should continue to be loaded */
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/dialplans/mod_dialplan_xml/mod_dialplan_xml.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/dialplans/mod_dialplan_xml/mod_dialplan_xml.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/dialplans/mod_dialplan_xml/mod_dialplan_xml.c	Sun Dec  3 17:55:28 2006
@@ -37,96 +37,8 @@
 
 static const char modname[] = "mod_dialplan_xml";
 
-#define cleanre(re)	if (re) {\
-				pcre_free(re);\
-				re = NULL;\
-			}
 
 
-static int perform_regex(switch_channel_t *channel, char *field, char *expression, pcre **new_re, int *ovector, uint32_t olen)
-{
-	const char *error = NULL;
-	int erroffset = 0;
-	pcre *re = NULL;
-	int match_count = 0;
-	
-	if (!(field && expression)) {
-		return 0;
-	}
-
-	re = pcre_compile(expression, /* the pattern */
-					  0,		  /* default options */
-					  &error,	  /* for error message */
-					  &erroffset, /* for error offset */
-					  NULL);	  /* use default character tables */
-	if (error) {
-		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "COMPILE ERROR: %d [%s]\n", erroffset, error);
-		cleanre(re);
-		return 0;
-	}
-
-	match_count = pcre_exec(re,	/* result of pcre_compile() */
-							NULL,	/* we didn't study the pattern */
-							field,	/* the subject string */
-							(int) strlen(field), /* the length of the subject string */
-							0,	/* start at offset 0 in the subject */
-							0,	/* default options */
-							ovector,	/* vector of integers for substring information */
-							olen); /* number of elements (NOT size in bytes) */
-
-	if (match_count <= 0) {
-		cleanre(re);
-		match_count = 0;
-	}
-
-	*new_re = re;
-
-	return match_count;
-}
-
-
-static void perform_substitution(pcre *re, int match_count, char *data, char *field_data, char *substituted, uint32_t len, int *ovector)
-{
-	char index[10] = "";
-	char replace[1024] = "";
-	uint32_t x, y = 0, z = 0, num = 0;
-
-	for (x = 0; x < (len-1) && x < strlen(data);) {
-		if (data[x] == '$') {
-			x++;
-			
-			if (!(data[x] > 47 && data[x] < 58)) {
-				substituted[y++] = data[x-1];
-				continue;
-			}
-
-			while (data[x] > 47 && data[x] < 58) {
-				index[z++] = data[x];
-				x++;
-			}
-			index[z++] = '\0';
-			z = 0;
-			num = atoi(index);
-			
-			if (pcre_copy_substring(field_data,
-									ovector,
-									match_count,
-									num,
-									replace,
-									sizeof(replace)) > 0) {
-				unsigned int r;
-				for (r = 0; r < strlen(replace); r++) {
-					substituted[y++] = replace[r];
-				}
-			}
-		} else {
-			substituted[y++] = data[x];
-			x++;
-		}
-	}
-	substituted[y++] = '\0';
-}
-
 typedef enum {
 	BREAK_ON_TRUE,
 	BREAK_ON_FALSE,
@@ -197,7 +109,7 @@
 				field_data = "";
 			}
 			switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "test conditions %s(%s) =~ /%s/\n", field, field_data, expression);
-			if (!(proceed = perform_regex(channel, field_data, expression, &re, ovector, sizeof(ovector) / sizeof(ovector[0])))) {
+			if (!(proceed = switch_perform_regex(field_data, expression, &re, ovector, sizeof(ovector) / sizeof(ovector[0])))) {
 				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Regex mismatch\n");
 
 				for (xaction = switch_xml_child(xcond, "anti-action"); xaction; xaction = xaction->next) {
@@ -232,7 +144,7 @@
 			char *app_data = NULL;
 
 			if (field && strchr(expression, '(')) {
-				perform_substitution(re, proceed, data, field_data, substituted, sizeof(substituted), ovector);
+				switch_perform_substitution(re, proceed, data, field_data, substituted, sizeof(substituted), ovector);
 				app_data = substituted;
 			} else {
 				app_data = data;
@@ -249,7 +161,7 @@
 			switch_caller_extension_add_application(session, *extension, application, app_data);
 		}
 
-		cleanre(re);
+		switch_clean_re(re);
 
 		if (do_break_i == BREAK_ON_TRUE || do_break_i == BREAK_ALWAYS) {
 			break;
@@ -356,3 +268,14 @@
 	/* indicate that the module should continue to be loaded */
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/directories/mod_ldap/mod_ldap.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/directories/mod_ldap/mod_ldap.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/directories/mod_ldap/mod_ldap.c	Sun Dec  3 17:55:28 2006
@@ -228,3 +228,14 @@
 	/* indicate that the module should continue to be loaded */
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_dingaling/mod_dingaling.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_dingaling/mod_dingaling.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_dingaling/mod_dingaling.c	Sun Dec  3 17:55:28 2006
@@ -2633,3 +2633,13 @@
 	return LDL_STATUS_SUCCESS;
 }
 
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_iax/mod_iax.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_iax/mod_iax.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_iax/mod_iax.c	Sun Dec  3 17:55:28 2006
@@ -1200,3 +1200,14 @@
 	}
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_portaudio/mod_portaudio.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_portaudio/mod_portaudio.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_portaudio/mod_portaudio.c	Sun Dec  3 17:55:28 2006
@@ -1029,3 +1029,14 @@
 
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_sofia/Makefile
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_sofia/Makefile	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_sofia/Makefile	Sun Dec  3 17:55:28 2006
@@ -1,6 +1,6 @@
 OS_ARCH         := $(subst /,_,$(shell uname -s | sed /\ /s//_/))
 VERSION = sofia-sip-1.12
-TARBALL = sofia-sip-1.12.3.11.tar.gz
+TARBALL = sofia-sip-1.12.4.tar.gz
 CFLAGS += -I. -I$(PREFIX)/include/$(VERSION)
 LDFLAGS += -lsofia-sip-ua
 LINKER=$(CC)

Modified: freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_sofia/mod_sofia.c	Sun Dec  3 17:55:28 2006
@@ -762,6 +762,8 @@
 
 static void tech_set_codecs(private_object_t *tech_pvt)
 {
+    switch_channel_t *channel;
+    char *codec_string = NULL;
 
 	if (switch_test_flag(tech_pvt, TFLAG_NOMEDIA)) {
 		return;
@@ -771,7 +773,16 @@
 		return;
 	}
 
-	if (tech_pvt->profile->codec_string) {
+    assert(tech_pvt->session != NULL);
+
+    channel = switch_core_session_get_channel(tech_pvt->session);
+    assert (channel != NULL);
+
+    if (!(codec_string = switch_channel_get_variable(channel, "codec_string"))) {
+        codec_string = tech_pvt->profile->codec_string;
+    }
+
+	if (codec_string) {
 		tech_pvt->num_codecs = switch_loadable_module_get_codecs_sorted(tech_pvt->codecs,
 																		SWITCH_MAX_CODECS,
 																		tech_pvt->profile->codec_order,
@@ -2344,7 +2355,7 @@
 			to_host = (char *) to->a_url->url_host;
 		}
 
-
+        
 		if (!to_user) {
 			return;
 		}
@@ -2441,9 +2452,10 @@
 		if (!switch_channel_get_variable(other_channel, SWITCH_B_SDP_VARIABLE)) {
 			switch_channel_set_variable(other_channel, SWITCH_B_SDP_VARIABLE, sdp);
 		}
+
 		if (!switch_test_flag(tech_pvt, TFLAG_CHANGE_MEDIA) && (
 			switch_channel_test_flag(other_channel, CF_OUTBOUND) && 
-			switch_channel_test_flag(other_channel, CF_NOMEDIA) && 
+			//switch_channel_test_flag(other_channel, CF_NOMEDIA) && 
 			switch_channel_test_flag(channel, CF_OUTBOUND) && 
 			switch_channel_test_flag(channel, CF_NOMEDIA))) {
 			switch_ivr_nomedia(val, SMF_FORCE);
@@ -2526,7 +2538,7 @@
 		break;
 	case nua_callstate_proceeding:
 		if (channel) {
-			if (status == 180) {
+			if (status == 180 && !(switch_channel_test_flag(channel, CF_NO_INDICATE))) {
 				if (switch_test_flag(tech_pvt, TFLAG_NOMEDIA)) {
 					if ((uuid = switch_channel_get_variable(channel, SWITCH_BRIDGE_VARIABLE)) && (other_session = switch_core_session_locate(uuid))) {
 						switch_core_session_message_t msg;
@@ -3924,7 +3936,11 @@
 			char *displayname;
 			char *username, *to_username = NULL;
 			char *url_user = (char *) from->a_url->url_user;
-			char *to_user, *to_host;
+			char *to_user, *to_host, *to_port;
+            char *req_user, *req_host, *req_port;
+            char *contact_user, *contact_host, *contact_port;
+            char *via_rport, *via_host, *via_port;
+            char uri[1024];
 
 			if (!(tech_pvt = (private_object_t *) switch_core_session_alloc(session, sizeof(private_object_t)))) {
 				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Hey where is my memory pool?\n");
@@ -3938,6 +3954,9 @@
 
 			to_user = (char *) to->a_url->url_user;
 			to_host = (char *) to->a_url->url_host;
+			if (!(to_port = (char *) to->a_url->url_port)) {
+				to_port = "5060";
+			}
 			
 			if (switch_strlen_zero(to_user)) { /* if sofia doesnt parse the To: right, we'll have to do it */
 				if ((to_user = sip_header_as_string(tech_pvt->home, (sip_header_t *) to))) {
@@ -3979,7 +3998,7 @@
 			}
 
 			if (profile->pflags & PFLAG_FULL_ID)  {
-				if (!(to_username = switch_mprintf("%s@%s", (char *) to_user, (char *) to_host))) {
+				if (!(to_username = switch_mprintf("%s@%s:%s", (char *) to_user, (char *) to_host, to_port))) {
 					switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Memory Error!\n");
 					switch_safe_free(username);
 					return;
@@ -4000,6 +4019,50 @@
 				switch_channel_set_variable(channel, "sip_from_user_stripped", (char *)from->a_url->url_user);
 			}
 			switch_channel_set_variable(channel, "sip_from_host", (char *) from->a_url->url_host);
+			switch_channel_set_variable(channel, "sip_from_port", (char *) from->a_url->url_port);
+
+
+            snprintf(uri, sizeof(uri), "%s@%s:%s", (char *) from->a_url->url_user, (char *) from->a_url->url_host, (char *) from->a_url->url_port);
+            switch_channel_set_variable(channel, "sip_from_uri", uri);
+            
+            
+			switch_channel_set_variable(channel, "sip_to_user", to_user);
+			switch_channel_set_variable(channel, "sip_to_host", to_host);
+			switch_channel_set_variable(channel, "sip_to_port", to_port);
+
+            snprintf(uri, sizeof(uri), "%s@%s:%s", to_user, to_host, to_port);
+            switch_channel_set_variable(channel, "sip_to_uri", uri);
+
+
+            req_user = (char *) sip->sip_request->rq_url->url_user;
+            req_host = (char *) sip->sip_request->rq_url->url_host;
+            req_port = (char *) sip->sip_request->rq_url->url_port;
+            
+			switch_channel_set_variable(channel, "sip_req_user", req_user);
+			switch_channel_set_variable(channel, "sip_req_host", req_host);
+			switch_channel_set_variable(channel, "sip_req_port", req_port);
+
+            contact_user = (char *) sip->sip_contact->m_url->url_user;
+            contact_host = (char *) sip->sip_contact->m_url->url_host;
+            contact_port = (char *) sip->sip_contact->m_url->url_port;
+            
+			switch_channel_set_variable(channel, "sip_contact_user", contact_user);
+			switch_channel_set_variable(channel, "sip_contact_host", contact_host);
+			switch_channel_set_variable(channel, "sip_contact_port", contact_port);
+
+            via_host = (char *) sip->sip_via->v_host;
+            via_port = (char *) sip->sip_via->v_port;
+            via_rport = (char *) sip->sip_via->v_rport;
+            
+			switch_channel_set_variable(channel, "sip_via_host", via_host);
+			switch_channel_set_variable(channel, "sip_via_port", via_port);
+			switch_channel_set_variable(channel, "sip_via_rport", via_rport);
+
+            
+            snprintf(uri, sizeof(uri), "%s@%s:%s", req_user, req_host, req_port);
+            switch_channel_set_variable(channel, "sip_req_uri", uri);
+            
+
 			if ((tech_pvt->caller_profile = switch_caller_profile_new(switch_core_session_get_pool(session),
 																	  (char *) from->a_url->url_user,
 																	  profile->dialplan,
@@ -4261,6 +4324,9 @@
 	if ((profile->pflags & PFLAG_AUTH_ALL) && tech_pvt && tech_pvt->key && sip) {
 		sip_authorization_t const *authorization = NULL;
 
+		switch_channel_t *channel = switch_core_session_get_channel(tech_pvt->session);
+		assert(channel != NULL);
+
 		if (sip->sip_authorization) {
 			authorization = sip->sip_authorization;
 		} else if (sip->sip_proxy_authorization) {
@@ -4272,11 +4338,14 @@
 		}
 
 		if (auth_res != AUTH_OK) {
-			switch_channel_t *channel = switch_core_session_get_channel(tech_pvt->session);
 			switch_channel_hangup(channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
 			nua_respond(nh, SIP_401_UNAUTHORIZED, TAG_END());
 			goto done;
 		}
+
+		if (session) {
+			switch_channel_set_variable(channel, "sip_authorized", "true");
+		}
 	}
 
 	if (status == 401 || status == 407) {
@@ -4460,9 +4529,9 @@
 							SIPTAG_CONTACT_STR(oregp->register_from),
 							SIPTAG_EXPIRES_STR(oregp->expires_str),
 							NUTAG_REGISTRAR(oregp->register_proxy),
-							NUTAG_OUTBOUND("no-options-keepalive"),
-							NUTAG_OUTBOUND("no-validate"),
-							NUTAG_KEEPALIVE(0),
+							NUTAG_OUTBOUND("no-options-keepalive"),
+							NUTAG_OUTBOUND("no-validate"),
+							NUTAG_KEEPALIVE(0),
 							TAG_NULL());
 				oregp->retry = now + 10;
 				oregp->state = REG_STATE_TRYING;
@@ -4522,8 +4591,8 @@
 				   TAG_IF((profile->pflags & PFLAG_PRESENCE), NUTAG_ALLOW("NOTIFY")),
 				   TAG_IF((profile->pflags & PFLAG_PRESENCE), NUTAG_ALLOW("SUBSCRIBE")),
 				   TAG_IF((profile->pflags & PFLAG_PRESENCE), NUTAG_ENABLEMESSAGE(1)),
-				   //TAG_IF((profile->pflags & PFLAG_PRESENCE), NUTAG_ALLOW_EVENTS("presence")),
-				   //TAG_IF((profile->pflags & PFLAG_PRESENCE), NUTAG_ALLOW_EVENTS("presence.winfo")),
+				   TAG_IF((profile->pflags & PFLAG_PRESENCE), NUTAG_ALLOW_EVENTS("presence")),
+				   TAG_IF((profile->pflags & PFLAG_PRESENCE), NUTAG_ALLOW_EVENTS("presence.winfo")),
 				   SIPTAG_SUPPORTED_STR("100rel, precondition"),
 				   SIPTAG_USER_AGENT_STR(SOFIA_USER_AGENT),
 				   TAG_END());
@@ -5340,3 +5409,14 @@
 
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_sofia/mod_sofia.vcproj
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_sofia/mod_sofia.vcproj	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_sofia/mod_sofia.vcproj	Sun Dec  3 17:55:28 2006
@@ -42,7 +42,7 @@
 			<Tool
 				Name="VCCLCompilerTool"
 				Optimization="0"
-				AdditionalIncludeDirectories="&quot;$(InputDir)..\..\..\include&quot;;&quot;$(InputDir)..\..\..\..\libs\include&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.11\libsofia-sip-ua\su&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.11\libsofia-sip-ua\nua&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.11\win32&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.11\libsofia-sip-ua\url&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.11\libsofia-sip-ua\sip&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.11\libsofia-sip-ua\msg&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.11\libsofia-sip-ua\sdp&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.11\libsofia-sip-ua\nta&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.11\libsofia-sip-ua\nea&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.11\libsofia-sip-ua\soa&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.11\libsofia-sip-ua\iptsec&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.11\libsofia-sip-ua\bnf&quot;"
+				AdditionalIncludeDirectories="&quot;$(InputDir)..\..\..\include&quot;;&quot;$(InputDir)..\..\..\..\libs\include&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.4\libsofia-sip-ua\su&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.4\libsofia-sip-ua\nua&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.4\win32&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.4\libsofia-sip-ua\url&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.4\libsofia-sip-ua\sip&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.4\libsofia-sip-ua\msg&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.4\libsofia-sip-ua\sdp&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.4\libsofia-sip-ua\nta&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.4\libsofia-sip-ua\nea&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.4\libsofia-sip-ua\soa&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.4\libsofia-sip-ua\iptsec&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.4\libsofia-sip-ua\bnf&quot;"
 				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;LIBSOFIA_SIP_UA_STATIC;PTW32_STATIC_LIB"
 				MinimalRebuild="true"
 				BasicRuntimeChecks="3"
@@ -126,7 +126,7 @@
 			/>
 			<Tool
 				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="&quot;$(InputDir)..\..\..\include&quot;;&quot;$(InputDir)..\..\..\..\libs\include&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.11\libsofia-sip-ua\su&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.11\libsofia-sip-ua\nua&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.11\win32&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.11\libsofia-sip-ua\url&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.11\libsofia-sip-ua\sip&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.11\libsofia-sip-ua\msg&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.11\libsofia-sip-ua\sdp&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.11\libsofia-sip-ua\nta&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.11\libsofia-sip-ua\nea&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.11\libsofia-sip-ua\soa&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.11\libsofia-sip-ua\iptsec&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.3.11\libsofia-sip-ua\bnf&quot;"
+				AdditionalIncludeDirectories="&quot;$(InputDir)..\..\..\include&quot;;&quot;$(InputDir)..\..\..\..\libs\include&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.4\libsofia-sip-ua\su&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.4\libsofia-sip-ua\nua&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.4\win32&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.4\libsofia-sip-ua\url&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.4\libsofia-sip-ua\sip&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.4\libsofia-sip-ua\msg&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.4\libsofia-sip-ua\sdp&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.4\libsofia-sip-ua\nta&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.4\libsofia-sip-ua\nea&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.4\libsofia-sip-ua\soa&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.4\libsofia-sip-ua\iptsec&quot;;&quot;$(InputDir)..\..\..\..\libs\sofia-sip-1.12.4\libsofia-sip-ua\bnf&quot;"
 				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;MOD_EXPORTS;LIBSOFIA_SIP_UA_STATIC;PTW32_STATIC_LIB"
 				RuntimeLibrary="2"
 				UsePrecompiledHeader="0"

Modified: freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_wanpipe/mod_wanpipe.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_wanpipe/mod_wanpipe.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_wanpipe/mod_wanpipe.c	Sun Dec  3 17:55:28 2006
@@ -1532,5 +1532,13 @@
 
 }
 
-
-
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_woomera/mod_woomera.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_woomera/mod_woomera.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/endpoints/mod_woomera/mod_woomera.c	Sun Dec  3 17:55:28 2006
@@ -1391,3 +1391,14 @@
 	/* indicate that the module should continue to be loaded */
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/basecdr.cpp
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/basecdr.cpp	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/basecdr.cpp	Sun Dec  3 17:55:28 2006
@@ -358,3 +358,14 @@
 		}
 	}
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/basecdr.h
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/basecdr.h	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/basecdr.h	Sun Dec  3 17:55:28 2006
@@ -105,3 +105,14 @@
 
 #endif
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/baseregistry.cpp
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/baseregistry.cpp	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/baseregistry.cpp	Sun Dec  3 17:55:28 2006
@@ -79,3 +79,14 @@
 {
 	BaseRegistry::get().add(creator);
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/baseregistry.h
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/baseregistry.h	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/baseregistry.h	Sun Dec  3 17:55:28 2006
@@ -76,3 +76,14 @@
 
 #endif // ifdef __cplusplus
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/cdrcontainer.cpp
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/cdrcontainer.cpp	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/cdrcontainer.cpp	Sun Dec  3 17:55:28 2006
@@ -163,3 +163,14 @@
 			delete newloggerobject;
 		}
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/cdrcontainer.h
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/cdrcontainer.h	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/cdrcontainer.h	Sun Dec  3 17:55:28 2006
@@ -69,3 +69,14 @@
 #endif
 
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/csvcdr.cpp
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/csvcdr.cpp	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/csvcdr.cpp	Sun Dec  3 17:55:28 2006
@@ -284,3 +284,14 @@
 }
 
 AUTO_REGISTER_BASECDR(CsvCDR);
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/csvcdr.h
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/csvcdr.h	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/csvcdr.h	Sun Dec  3 17:55:28 2006
@@ -75,3 +75,14 @@
 };
 
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/mod_cdr.cpp
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/mod_cdr.cpp	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/mod_cdr.cpp	Sun Dec  3 17:55:28 2006
@@ -105,3 +105,14 @@
 	delete newcdrcontainer;
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/mysqlcdr.cpp
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/mysqlcdr.cpp	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/mysqlcdr.cpp	Sun Dec  3 17:55:28 2006
@@ -54,7 +54,7 @@
 		src_length = (long unsigned int)strlen(src);
 		dst_length = (long unsigned int)strlen(dst);
 		ani_length = (long unsigned int)strlen(ani);
-		ani2_length = (long unsigned int)strlen(ani2);
+		aniii_length = (long unsigned int)strlen(aniii);
 		dialplan_length = (long unsigned int)strlen(dialplan);
 		myuuid_length = (long unsigned int)strlen(myuuid);
 		destuuid_length = (long unsigned int)strlen(destuuid);
@@ -181,7 +181,7 @@
 		
 		if(activated)
 		{
-			tmp_sql_query = "INSERT INTO freeswitchcdr  (callstartdate,callanswerdate,callenddate,originated,clid,src,dst,ani,ani2,dialplan,myuuid,destuuid,srcchannel,dstchannel,lastapp,lastdata,billusec,disposition,hangupcause,amaflags";
+			tmp_sql_query = "INSERT INTO freeswitchcdr  (callstartdate,callanswerdate,callenddate,originated,clid,src,dst,ani,aniii,dialplan,myuuid,destuuid,srcchannel,dstchannel,lastapp,lastdata,billusec,disposition,hangupcause,amaflags";
 			
 			int items_appended = 0;
 			
@@ -324,7 +324,7 @@
 	add_string_parameter(src,src_length,MYSQL_TYPE_VAR_STRING,0);
 	add_string_parameter(dst,dst_length,MYSQL_TYPE_VAR_STRING,0);
 	add_string_parameter(ani,ani_length,MYSQL_TYPE_VAR_STRING,0);
-	add_string_parameter(ani2,ani2_length,MYSQL_TYPE_VAR_STRING,0);
+	add_string_parameter(aniii,aniii_length,MYSQL_TYPE_VAR_STRING,0);
 	add_string_parameter(dialplan,dialplan_length,MYSQL_TYPE_VAR_STRING,0);
 	add_string_parameter(myuuid,myuuid_length,MYSQL_TYPE_VAR_STRING,0);
 	add_string_parameter(destuuid,destuuid_length,MYSQL_TYPE_VAR_STRING,0);
@@ -625,3 +625,14 @@
 }
 
 AUTO_REGISTER_BASECDR(MysqlCDR);
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/mysqlcdr.h
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/mysqlcdr.h	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/mysqlcdr.h	Sun Dec  3 17:55:28 2006
@@ -99,3 +99,14 @@
 };
 
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/pddcdr.cpp
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/pddcdr.cpp	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/pddcdr.cpp	Sun Dec  3 17:55:28 2006
@@ -214,3 +214,14 @@
 }
 
 AUTO_REGISTER_BASECDR(PddCDR);
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/pddcdr.h
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/pddcdr.h	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/pddcdr.h	Sun Dec  3 17:55:28 2006
@@ -69,3 +69,14 @@
 };
 
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/xmlcdr.cpp
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/xmlcdr.cpp	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/xmlcdr.cpp	Sun Dec  3 17:55:28 2006
@@ -219,3 +219,14 @@
 }
 
 AUTO_REGISTER_BASECDR(XmlCDR);
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/xmlcdr.h
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/xmlcdr.h	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_cdr/xmlcdr.h	Sun Dec  3 17:55:28 2006
@@ -70,3 +70,14 @@
 };
 
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_event_multicast/mod_event_multicast.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_event_multicast/mod_event_multicast.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_event_multicast/mod_event_multicast.c	Sun Dec  3 17:55:28 2006
@@ -331,5 +331,13 @@
 	return SWITCH_STATUS_TERM;
 }
 
-
-
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_event_socket/mod_event_socket.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_event_socket/mod_event_socket.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_event_socket/mod_event_socket.c	Sun Dec  3 17:55:28 2006
@@ -1041,5 +1041,13 @@
 	return SWITCH_STATUS_TERM;
 }
 
-
-
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_event_test/mod_event_test.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_event_test/mod_event_test.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_event_test/mod_event_test.c	Sun Dec  3 17:55:28 2006
@@ -153,3 +153,14 @@
 	/* indicate that the module should continue to be loaded */
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_xmpp_event/mod_xmpp_event.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_xmpp_event/mod_xmpp_event.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_xmpp_event/mod_xmpp_event.c	Sun Dec  3 17:55:28 2006
@@ -439,3 +439,14 @@
 	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "disconnecting client %d\n", RUNNING);
 	return RUNNING ? SWITCH_STATUS_SUCCESS : SWITCH_STATUS_TERM;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_zeroconf/mod_zeroconf.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_zeroconf/mod_zeroconf.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/event_handlers/mod_zeroconf/mod_zeroconf.c	Sun Dec  3 17:55:28 2006
@@ -318,3 +318,14 @@
 	RUNNING = 0;
 	return SWITCH_STATUS_TERM;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/formats/mod_native_file/mod_native_file.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/formats/mod_native_file/mod_native_file.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/formats/mod_native_file/mod_native_file.c	Sun Dec  3 17:55:28 2006
@@ -180,3 +180,14 @@
 	/* indicate that the module should continue to be loaded */
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/formats/mod_sndfile/mod_sndfile.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/formats/mod_sndfile/mod_sndfile.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/formats/mod_sndfile/mod_sndfile.c	Sun Dec  3 17:55:28 2006
@@ -350,3 +350,14 @@
 	/* indicate that the module should continue to be loaded */
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/languages/mod_mono/mod_mono.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/languages/mod_mono/mod_mono.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/languages/mod_mono/mod_mono.c	Sun Dec  3 17:55:28 2006
@@ -283,3 +283,14 @@
 {
 	switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, msg);
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/languages/mod_perl/mod_perl.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/languages/mod_perl/mod_perl.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/languages/mod_perl/mod_perl.c	Sun Dec  3 17:55:28 2006
@@ -137,3 +137,14 @@
 	/* indicate that the module should continue to be loaded */
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/languages/mod_perl/switch_swig_wrap.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/languages/mod_perl/switch_swig_wrap.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/languages/mod_perl/switch_swig_wrap.c	Sun Dec  3 17:55:28 2006
@@ -43,7 +43,6 @@
  ************************************************************************/
 
 #include <string.h>
-#include <switch.h>
 
 #if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
 #  if defined(_MSC_VER) || defined(__GNUC__)
@@ -808,7 +807,7 @@
 extern void fs_channel_get_variable(switch_core_session_t *,char *);
 extern void fs_channel_set_state(switch_core_session_t *,char *);
 extern int fs_ivr_play_file(switch_core_session_t *,char *,char *,switch_input_callback_function_t,void *,unsigned int);
-extern int fs_switch_ivr_record_file(switch_core_session_t *,switch_file_handle_t *,char *,switch_input_callback_function_t,void *,unsigned int);
+extern int fs_switch_ivr_record_file(switch_core_session_t *,switch_file_handle_t *,char *,switch_input_callback_function_t,void *,unsigned int,unsigned int);
 extern int fs_switch_ivr_sleep(switch_core_session_t *,uint32_t);
 extern int fs_ivr_play_file2(switch_core_session_t *,char *);
 extern int fs_switch_ivr_collect_digits_callback(switch_core_session_t *,switch_input_callback_function_t,void *,unsigned int,unsigned int);
@@ -1263,12 +1262,13 @@
         switch_input_callback_function_t arg4 ;
         void *arg5 = (void *) 0 ;
         unsigned int arg6 ;
+        unsigned int arg7 ;
         int result;
         int argvi = 0;
         dXSARGS;
         
-        if ((items < 6) || (items > 6)) {
-            SWIG_croak("Usage: fs_switch_ivr_record_file(session,fh,file,dtmf_callback,buf,buflen);");
+        if ((items < 7) || (items > 7)) {
+            SWIG_croak("Usage: fs_switch_ivr_record_file(session,fh,file,dtmf_callback,buf,buflen,limit);");
         }
         {
             if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_switch_core_session_t,0) < 0) {
@@ -1295,7 +1295,8 @@
             }
         }
         arg6 = (unsigned int) SvUV(ST(5));
-        result = (int)fs_switch_ivr_record_file(arg1,arg2,arg3,arg4,arg5,arg6);
+        arg7 = (unsigned int) SvUV(ST(6));
+        result = (int)fs_switch_ivr_record_file(arg1,arg2,arg3,arg4,arg5,arg6,arg7);
         
         ST(argvi) = sv_newmortal();
         sv_setiv(ST(argvi++), (IV) result);

Modified: freeswitch/branches/knhor/trunk/src/mod/languages/mod_php/mod_php.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/languages/mod_php/mod_php.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/languages/mod_php/mod_php.c	Sun Dec  3 17:55:28 2006
@@ -307,3 +307,14 @@
   }
 
 */
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/languages/mod_php/switch_swig_wrap.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/languages/mod_php/switch_swig_wrap.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/languages/mod_php/switch_swig_wrap.c	Sun Dec  3 17:55:28 2006
@@ -577,7 +577,7 @@
 extern void fs_channel_get_variable(switch_core_session_t *,char *);
 extern void fs_channel_set_state(switch_core_session_t *,char *);
 extern int fs_ivr_play_file(switch_core_session_t *,char *,char *,switch_input_callback_function_t,void *,unsigned int);
-extern int fs_switch_ivr_record_file(switch_core_session_t *,switch_file_handle_t *,char *,switch_input_callback_function_t,void *,unsigned int);
+extern int fs_switch_ivr_record_file(switch_core_session_t *,switch_file_handle_t *,char *,switch_input_callback_function_t,void *,unsigned int,unsigned int);
 extern int fs_switch_ivr_sleep(switch_core_session_t *,uint32_t);
 extern int fs_ivr_play_file2(switch_core_session_t *,char *);
 extern int fs_switch_ivr_collect_digits_callback(switch_core_session_t *,switch_input_callback_function_t,void *,unsigned int,unsigned int);
@@ -1143,15 +1143,16 @@
     switch_input_callback_function_t arg4 ;
     void *arg5 = (void *) 0 ;
     unsigned int arg6 ;
+    unsigned int arg7 ;
     int result;
-    zval **args[7];
+    zval **args[8];
     int argbase=0 ;
     
     if (this_ptr && this_ptr->type==IS_OBJECT) {
         /* fake this_ptr as first arg (till we can work out how to do it better */
         argbase++;
     }
-    if(((ZEND_NUM_ARGS() + argbase )!= 6) || (zend_get_parameters_array_ex(6-argbase, args)!= SUCCESS)) {
+    if(((ZEND_NUM_ARGS() + argbase )!= 7) || (zend_get_parameters_array_ex(7-argbase, args)!= SUCCESS)) {
         WRONG_PARAM_COUNT;
     }
     
@@ -1187,7 +1188,11 @@
     convert_to_long_ex(args[5-argbase]);
     arg6 = (unsigned int) Z_LVAL_PP(args[5-argbase]);
     
-    result = (int)fs_switch_ivr_record_file(arg1,arg2,arg3,arg4,arg5,arg6);
+    
+    convert_to_long_ex(args[6-argbase]);
+    arg7 = (unsigned int) Z_LVAL_PP(args[6-argbase]);
+    
+    result = (int)fs_switch_ivr_record_file(arg1,arg2,arg3,arg4,arg5,arg6,arg7);
     
     
     ZVAL_LONG(return_value,result);

Modified: freeswitch/branches/knhor/trunk/src/mod/languages/mod_python/mod_python.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/languages/mod_python/mod_python.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/languages/mod_python/mod_python.c	Sun Dec  3 17:55:28 2006
@@ -110,3 +110,14 @@
 
 
 /* Return the number of arguments of the application command line */
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/languages/mod_python/switch_swig_wrap.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/languages/mod_python/switch_swig_wrap.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/languages/mod_python/switch_swig_wrap.c	Sun Dec  3 17:55:28 2006
@@ -716,7 +716,7 @@
 extern void fs_channel_get_variable(switch_core_session_t *,char *);
 extern void fs_channel_set_state(switch_core_session_t *,char *);
 extern int fs_ivr_play_file(switch_core_session_t *,char *,char *,switch_input_callback_function_t,void *,unsigned int);
-extern int fs_switch_ivr_record_file(switch_core_session_t *,switch_file_handle_t *,char *,switch_input_callback_function_t,void *,unsigned int);
+extern int fs_switch_ivr_record_file(switch_core_session_t *,switch_file_handle_t *,char *,switch_input_callback_function_t,void *,unsigned int,unsigned int);
 extern int fs_switch_ivr_sleep(switch_core_session_t *,uint32_t);
 extern int fs_ivr_play_file2(switch_core_session_t *,char *);
 extern int fs_switch_ivr_collect_digits_callback(switch_core_session_t *,switch_input_callback_function_t,void *,unsigned int,unsigned int);
@@ -1000,6 +1000,7 @@
     switch_input_callback_function_t arg4 ;
     void *arg5 = (void *) 0 ;
     unsigned int arg6 ;
+    unsigned int arg7 ;
     int result;
     switch_input_callback_function_t *argp4 ;
     PyObject * obj0 = 0 ;
@@ -1007,8 +1008,9 @@
     PyObject * obj3 = 0 ;
     PyObject * obj4 = 0 ;
     PyObject * obj5 = 0 ;
+    PyObject * obj6 = 0 ;
     
-    if(!PyArg_ParseTuple(args,(char *)"OOsOOO:fs_switch_ivr_record_file",&obj0,&obj1,&arg3,&obj3,&obj4,&obj5)) goto fail;
+    if(!PyArg_ParseTuple(args,(char *)"OOsOOOO:fs_switch_ivr_record_file",&obj0,&obj1,&arg3,&obj3,&obj4,&obj5,&obj6)) goto fail;
     if ((SWIG_ConvertPtr(obj0,(void **) &arg1, SWIGTYPE_p_switch_core_session_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
     if ((SWIG_ConvertPtr(obj1,(void **) &arg2, SWIGTYPE_p_switch_file_handle_t,SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
     if ((SWIG_ConvertPtr(obj3,(void **) &argp4, SWIGTYPE_p_switch_input_callback_function_t,SWIG_POINTER_EXCEPTION) == -1)) SWIG_fail;
@@ -1016,7 +1018,9 @@
     if ((SWIG_ConvertPtr(obj4,(void **) &arg5, 0, SWIG_POINTER_EXCEPTION | 0 )) == -1) SWIG_fail;
     arg6 = (unsigned int) PyInt_AsLong(obj5);
     if (PyErr_Occurred()) SWIG_fail;
-    result = (int)fs_switch_ivr_record_file(arg1,arg2,arg3,arg4,arg5,arg6);
+    arg7 = (unsigned int) PyInt_AsLong(obj6);
+    if (PyErr_Occurred()) SWIG_fail;
+    result = (int)fs_switch_ivr_record_file(arg1,arg2,arg3,arg4,arg5,arg6,arg7);
     
     resultobj = PyInt_FromLong((long)result);
     return resultobj;

Modified: freeswitch/branches/knhor/trunk/src/mod/languages/mod_ruby/mod_ruby.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/languages/mod_ruby/mod_ruby.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/languages/mod_ruby/mod_ruby.c	Sun Dec  3 17:55:28 2006
@@ -102,3 +102,14 @@
 	/* indicate that the module should continue to be loaded */
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/languages/mod_ruby/switch_swig_wrap.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/languages/mod_ruby/switch_swig_wrap.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/languages/mod_ruby/switch_swig_wrap.c	Sun Dec  3 17:55:28 2006
@@ -628,7 +628,7 @@
 extern void fs_channel_get_variable(switch_core_session_t *,char *);
 extern void fs_channel_set_state(switch_core_session_t *,char *);
 extern int fs_ivr_play_file(switch_core_session_t *,char *,char *,switch_input_callback_function_t,void *,unsigned int);
-extern int fs_switch_ivr_record_file(switch_core_session_t *,switch_file_handle_t *,char *,switch_input_callback_function_t,void *,unsigned int);
+extern int fs_switch_ivr_record_file(switch_core_session_t *,switch_file_handle_t *,char *,switch_input_callback_function_t,void *,unsigned int,unsigned int);
 extern int fs_switch_ivr_sleep(switch_core_session_t *,uint32_t);
 extern int fs_ivr_play_file2(switch_core_session_t *,char *);
 extern int fs_switch_ivr_collect_digits_callback(switch_core_session_t *,switch_input_callback_function_t,void *,unsigned int,unsigned int);
@@ -893,11 +893,12 @@
     switch_input_callback_function_t arg4 ;
     void *arg5 = (void *) 0 ;
     unsigned int arg6 ;
+    unsigned int arg7 ;
     int result;
     VALUE vresult = Qnil;
     
-    if ((argc < 6) || (argc > 6))
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 6)",argc);
+    if ((argc < 7) || (argc > 7))
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 7)",argc);
     SWIG_ConvertPtr(argv[0], (void **) &arg1, SWIGTYPE_p_switch_core_session_t, 1);
     SWIG_ConvertPtr(argv[1], (void **) &arg2, SWIGTYPE_p_switch_file_handle_t, 1);
     arg3 = StringValuePtr(argv[2]);
@@ -908,7 +909,8 @@
     }
     SWIG_ConvertPtr(argv[4], (void **) &arg5, 0, 1);
     arg6 = NUM2UINT(argv[5]);
-    result = (int)fs_switch_ivr_record_file(arg1,arg2,arg3,arg4,arg5,arg6);
+    arg7 = NUM2UINT(argv[6]);
+    result = (int)fs_switch_ivr_record_file(arg1,arg2,arg3,arg4,arg5,arg6,arg7);
     
     vresult = INT2NUM(result);
     return vresult;

Modified: freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey/Makefile
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey/Makefile	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey/Makefile	Sun Dec  3 17:55:28 2006
@@ -1,5 +1,5 @@
 include sm.mak
-OBJS=$(BASE)/libs/mozilla/js/src/$(OS_CONFIG)_$(VER).OBJ/libjs.a $(BASE)/libs/mozilla/nsprpub/dist/lib/libnspr4.a -lcurl -letpan
+OBJS=$(BASE)/libs/mozilla/js/src/$(OS_CONFIG)_$(VER).OBJ/libjs.a $(BASE)/libs/mozilla/nsprpub/dist/lib/libnspr4.a -lcurl
 LINKER=$(CC)
 
 
@@ -8,7 +8,6 @@
 depends:
 	BUILD_OPT=$(BO) MAKE=$(MAKE) $(BASE)/build/buildlib.sh $(BASE) mozilla.tar.gz --prefix=$(PREFIX)
 	MAKE=$(MAKE) $(BASE)/build/buildlib.sh $(BASE) install curl-7.15.2.tar.gz --prefix=$(PREFIX) --without-libidn
-	MAKE=$(MAKE) $(BASE)/build/buildlib.sh $(BASE) install libetpan-0.45.tar.gz --prefix=$(PREFIX)
 
 $(MODNAME).$(DYNAMIC_LIB_EXTEN): $(MODNAME).c
 	$(CC) $(CFLAGS) -fPIC -c $(MODNAME).c -o $(MODNAME).o 

Modified: freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey/mod_spidermonkey.c	Sun Dec  3 17:55:28 2006
@@ -94,6 +94,7 @@
 	jsval ret;
 	JSContext *cx;
 	JSObject *obj;
+    jsrefcount saveDepth;
 	void *extra;
 };
 
@@ -409,7 +410,7 @@
 }
 
 
-static switch_status_t sm_load_file(char *filename, sm_loadable_module_t **new_module)
+static switch_status_t sm_load_file(char *filename)
 {
 	sm_loadable_module_t *module = NULL;
 	apr_dso_handle_t *dso = NULL;
@@ -424,7 +425,6 @@
 
 	assert(filename != NULL);
 
-	*new_module = NULL;
 	status = apr_dso_load(&dso, filename, module_manager.pool);
 
 	while (loading) {
@@ -447,7 +447,7 @@
 			break;
 		}
 
-		if ((module = switch_core_permanent_alloc(sizeof(sm_loadable_module_t))) == 0) {
+		if (!(module = (sm_loadable_module_t *) switch_core_permanent_alloc(sizeof(*module)))) {
 			err = "Could not allocate memory\n";
 			break;
 		}
@@ -465,11 +465,10 @@
 	module->module_interface = module_interface;
 	
 	module->lib = dso;
-	*new_module = module;
 
 	switch_core_hash_insert(module_manager.mod_hash, (char *) module->filename, (void *) module);
 	
-	for (mp = module_interface; mp; mp = mp->next) {
+	for (mp = module->module_interface; mp; mp = mp->next) {
 		switch_core_hash_insert(module_manager.load_hash, (char *)mp->name, (void *) mp);
 	}
 	
@@ -484,7 +483,6 @@
 	switch_size_t len = 0;
 	char *path;
 	char *file;
-	sm_loadable_module_t *new_module = NULL;
 
 #ifdef WIN32
 	const char *ext = ".dll";
@@ -517,7 +515,7 @@
 		}
 	}
 	
-	return sm_load_file(path, &new_module);
+	return sm_load_file(path);
 }
 
 static switch_status_t load_modules(void)
@@ -644,7 +642,9 @@
 		argv[argc++] = cb_state->arg;
 	}
 
+    JS_ResumeRequest(cb_state->cx, cb_state->saveDepth);
 	JS_CallFunction(cb_state->cx, cb_state->obj, cb_state->function, argc, argv, &cb_state->ret);
+    cb_state->saveDepth = JS_SuspendRequest(cb_state->cx);
 
 	return SWITCH_STATUS_SUCCESS;
 }
@@ -827,13 +827,13 @@
 	struct js_session *jss = JS_GetPrivate(cx, obj);
 	switch_channel_t *channel;
 	char *file_name = NULL;
-	char *input_callback = NULL;
 	void *bp = NULL;
 	int len = 0;
 	switch_input_callback_function_t dtmf_func = NULL;
 	struct input_callback_state cb_state = {0};
-	switch_file_handle_t fh;
+	switch_file_handle_t fh = {0};
 	JSFunction *function;
+    int32 limit = 0;
 
 	channel = switch_core_session_get_channel(jss->session);
 	assert(channel != NULL);
@@ -847,7 +847,6 @@
 	if (argc > 1) {
 		if ((function = JS_ValueToFunction(cx, argv[1]))) {
 			memset(&cb_state, 0, sizeof(cb_state));
-			switch_copy_string(cb_state.code_buffer, input_callback, sizeof(cb_state.code_buffer));
 			cb_state.session_state = jss;
 			cb_state.function = function;
 			cb_state.cx = cx;
@@ -860,12 +859,30 @@
 			bp = &cb_state;
 			len = sizeof(cb_state);
 		}
+
+        if (argc > 3) {
+            JS_ValueToInt32(cx, argv[3], &limit);
+        }
+
+        if (argc > 4) {
+            int32 thresh;
+            JS_ValueToInt32(cx, argv[4], &thresh);
+            fh.thresh = thresh;
+        }
+
+        if (argc > 5) {
+            int32 silence_hits;
+            JS_ValueToInt32(cx, argv[5], &silence_hits);
+            fh.silence_hits = silence_hits;
+        }
 	}
 
-	memset(&fh, 0, sizeof(fh));
+    
 	cb_state.extra = &fh;
 	cb_state.ret = BOOLEAN_TO_JSVAL( JS_FALSE );
-	switch_ivr_record_file(jss->session, &fh, file_name, dtmf_func, bp, len);
+    cb_state.saveDepth = JS_SuspendRequest(cx);
+	switch_ivr_record_file(jss->session, &fh, file_name, dtmf_func, bp, len, limit);
+    JS_ResumeRequest(cx, cb_state.saveDepth);
 	*rval = cb_state.ret;
 
 	return (switch_channel_ready(channel)) ? JS_TRUE : JS_FALSE;
@@ -908,7 +925,10 @@
 		JS_ValueToInt32(jss->cx, argv[2], &to);
 	}
 
+    cb_state.saveDepth = JS_SuspendRequest(cx);
 	switch_ivr_collect_digits_callback(jss->session, dtmf_func, bp, len, to);
+    JS_ResumeRequest(cx, cb_state.saveDepth);
+
 	*rval = cb_state.ret;
 
 	return (switch_channel_ready(channel)) ? JS_TRUE : JS_FALSE;
@@ -925,7 +945,7 @@
 	int len = 0;
 	switch_input_callback_function_t dtmf_func = NULL;
 	struct input_callback_state cb_state = {0};
-	switch_file_handle_t fh;
+	switch_file_handle_t fh = {0};
 	JSFunction *function;
 
 	channel = switch_core_session_get_channel(jss->session);
@@ -961,10 +981,17 @@
 		}
 	}
 
-	memset(&fh, 0, sizeof(fh));
+    if (argc > 4) {
+        int32 samps;
+        JS_ValueToInt32(cx, argv[4], &samps);
+        fh.samples = samps;
+    }
+
 	cb_state.extra = &fh;
 	cb_state.ret = BOOLEAN_TO_JSVAL( JS_FALSE );
+    cb_state.saveDepth = JS_SuspendRequest(cx);
 	switch_ivr_play_file(jss->session, &fh, file_name, timer_name, dtmf_func, bp, len);
+    JS_ResumeRequest(cx, cb_state.saveDepth);
 	*rval = cb_state.ret;
 	
 	return (switch_channel_ready(channel)) ? JS_TRUE : JS_FALSE;
@@ -1073,6 +1100,7 @@
 
 	codec = switch_core_session_get_read_codec(jss->session);
 	cb_state.ret = BOOLEAN_TO_JSVAL( JS_FALSE );
+    cb_state.saveDepth = JS_SuspendRequest(cx);
 	switch_ivr_speak_text(jss->session,
 						  tts_name,
 						  voice_name && strlen(voice_name) ? voice_name : NULL, 
@@ -1082,7 +1110,7 @@
 						  text,
 						  bp,
 						  len);
-
+    JS_ResumeRequest(cx, cb_state.saveDepth);
 	*rval = cb_state.ret;
 
 	return (switch_channel_ready(channel)) ? JS_TRUE : JS_FALSE;
@@ -1979,20 +2007,6 @@
 	return JS_FALSE;
 }
 
-#define B64BUFFLEN 1024
-static const char c64[65] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-
-static int write_buf(int fd, char *buf) {
-
-	int len = (int)strlen(buf);
-	if (fd && write(fd, buf, len) != len) {
-		close(fd);
-		return 0;
-	}
-
-	return 1;
-}
-
 static JSBool js_api_use(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
 {
 	char *mod_name = NULL;
@@ -2099,140 +2113,18 @@
 		}
 	}
 
+    cb_state.saveDepth = JS_SuspendRequest(cx);
 	switch_ivr_multi_threaded_bridge(jss_a->session, jss_b->session, dtmf_func, bp, bp);
+    JS_ResumeRequest(cx, cb_state.saveDepth);
 
+
 	return JS_TRUE;
 }
 
-static JSBool js_email(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)
-{
-	char *to = NULL, *from = NULL, *headers, *body = NULL, *file = NULL;
-	char *bound = "XXXX_boundary_XXXX";
-	char filename[80], buf[B64BUFFLEN];
-	int fd = 0, ifd = 0;
-	int x=0, y=0, bytes=0, ilen=0;
-	unsigned int b=0, l=0;
-	unsigned char in[B64BUFFLEN];
-	unsigned char out[B64BUFFLEN+512];
-	char *path = NULL;
-
-	
-	if ( 
-		argc > 3 && 
-		(from = JS_GetStringBytes(JS_ValueToString(cx, argv[0]))) &&
-		(to = JS_GetStringBytes(JS_ValueToString(cx, argv[1]))) &&
-		(headers = JS_GetStringBytes(JS_ValueToString(cx, argv[2]))) &&
-		(body = JS_GetStringBytes(JS_ValueToString(cx, argv[3]))) 
-		) {
-		if ( argc > 4) {
-			file = JS_GetStringBytes(JS_ValueToString(cx, argv[4]));
-		}
-		snprintf(filename, 80, "%smail.%ld%04x", SWITCH_GLOBAL_dirs.temp_dir, time(NULL), rand() & 0xffff);
-
-		if ((fd = open(filename, O_WRONLY | O_CREAT | O_TRUNC, 0644))) {
-			if (file) {
-				path = file;
-				if ((ifd = open(path, O_RDONLY)) < 1) {
-					return JS_FALSE;
-				}
-
-				snprintf(buf, B64BUFFLEN, "MIME-Version: 1.0\nContent-Type: multipart/mixed; boundary=\"%s\"\n", bound);
-				if (!write_buf(fd, buf)) {
-					return JS_FALSE;
-				}
-			}
-			
-			if (!write_buf(fd, headers))
-				return JS_FALSE;
-
-			if (!write_buf(fd, "\n\n"))
-				return JS_FALSE;
-			
-			if (file) {
-				snprintf(buf, B64BUFFLEN, "--%s\nContent-Type: text/plain\n\n", bound);
-				if (!write_buf(fd, buf))
-					return JS_FALSE;
-			}
-			
-			if (!write_buf(fd, body))
-				return JS_FALSE;
-			
-			if (file) {
-				snprintf(buf, B64BUFFLEN, "\n\n--%s\nContent-Type: application/octet-stream\n"
-						 "Content-Transfer-Encoding: base64\n"
-						 "Content-Description: Sound attachment.\n"
-						 "Content-Disposition: attachment; filename=\"%s\"\n\n", bound, file);
-				if (!write_buf(fd, buf))
-					return JS_FALSE;
-				
-				while((ilen=read(ifd, in, B64BUFFLEN))) {
-					for (x=0;x<ilen;x++) {
-						b = (b<<8) + in[x];
-						l += 8;
-						while (l >= 6) {
-							out[bytes++] = c64[(b>>(l-=6))%64];
-							if (++y!=72)
-								continue;
-							out[bytes++] = '\n';
-							y=0;
-						}
-					}
-					if (write(fd, &out, bytes) != bytes) { 
-						return -1;
-					} else 
-						bytes=0;
-					
-				}
-				
-				if (l > 0) {
-					out[bytes++] = c64[((b%16)<<(6-l))%64];
-				}
-				if (l != 0) while (l < 6) {
-					out[bytes++] = '=', l += 2;
-				}
-				if (write(fd, &out, bytes) != bytes) { 
-					return -1;
-				}
-
-			}
-			
-
-			
-			if (file) {
-				snprintf(buf, B64BUFFLEN, "\n\n--%s--\n.\n", bound);
-				if (!write_buf(fd, buf))
-					return JS_FALSE;
-			}
-		}
-
-		if (fd) {
-			close(fd);
-		}
-		if (ifd) {
-			close(ifd);
-		}
-		snprintf(buf, B64BUFFLEN, "/bin/cat %s | /usr/sbin/sendmail -tf \"%s\" %s", filename, from, to);
-		system(buf);
-		unlink(filename);
-
-
-		if (file) {
-			switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Emailed file [%s] to [%s]\n", filename, to);
-		} else {
-			switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Emailed data to [%s]\n", to);
-		}
-		return JS_TRUE;
-	}
-	
-
-	return JS_FALSE;
-}
-
 static JSFunctionSpec fs_functions[] = {
 	{"console_log", js_log, 2}, 
 	{"exit", js_exit, 0}, 
 	{"include", js_include, 1}, 
-	{"email", js_email, 2}, 
 	{"bridge", js_bridge, 2},
 	{"apiExecute", js_api_execute, 2},
 	{"use", js_api_use, 1},
@@ -2475,3 +2367,14 @@
 	curl_global_cleanup();
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey/mod_spidermonkey.h
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey/mod_spidermonkey.h	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey/mod_spidermonkey.h	Sun Dec  3 17:55:28 2006
@@ -50,7 +50,6 @@
 #include "jsparse.h"
 #include "jsscope.h"
 #include "jsscript.h"
-#include <libteletone.h>
 
 SWITCH_BEGIN_EXTERN_C
 

Modified: freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey_core_db/mod_spidermonkey_core_db.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey_core_db/mod_spidermonkey_core_db.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey_core_db/mod_spidermonkey_core_db.c	Sun Dec  3 17:55:28 2006
@@ -31,7 +31,7 @@
  */
 #include "mod_spidermonkey.h"
 
-static const char modname[] = "DB";
+static const char modname[] = "CoreDB";
 
 struct db_obj {
     switch_memory_pool_t *pool;
@@ -148,10 +148,9 @@
 {
 	struct db_obj *dbo = JS_GetPrivate(cx, obj);
 	*rval = BOOLEAN_TO_JSVAL( JS_FALSE );
-	
-	if (dbo->stmt) {
-		int running = 1;
 
+    if (dbo->stmt) {
+		int running = 1;
 		while (running < 5000) {
 			int result = switch_core_db_step(dbo->stmt);
 			if (result == SQLITE_ROW) {
@@ -210,10 +209,9 @@
 		dbo->stmt = NULL;
 	}
 
-	if (argc > 0) {		
+	if (argc > 0) {
 		char *sql = JS_GetStringBytes(JS_ValueToString(cx, argv[0]));
-
-		if(switch_core_db_prepare(dbo->db, sql, 0, &dbo->stmt, 0)) {
+		if(switch_core_db_prepare(dbo->db, sql, -1, &dbo->stmt, 0)) {
 			switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error %s\n", switch_core_db_errmsg(dbo->db));
 		} else {
 			*rval = BOOLEAN_TO_JSVAL( JS_TRUE );
@@ -266,18 +264,14 @@
 }
 
 JSClass db_class = {
-	"DB", JSCLASS_HAS_PRIVATE, 
+	modname, JSCLASS_HAS_PRIVATE, 
 	JS_PropertyStub,  JS_PropertyStub,	db_getProperty,  JS_PropertyStub, 
 	JS_EnumerateStub, JS_ResolveStub,	JS_ConvertStub,	  db_destroy, NULL, NULL, NULL,
 	db_construct
 };
 
 
-
-
-
-
-switch_status_t spidermonkey_load(JSContext *cx, JSObject *obj)
+switch_status_t db_load(JSContext *cx, JSObject *obj)
 {
 
 	JS_InitClass(cx,
@@ -291,14 +285,13 @@
 				 db_props,
 				 db_methods
 				 );
-
 	return SWITCH_STATUS_SUCCESS;
 }
 
 
 const sm_module_interface_t DB_module_interface = {
 	/*.name = */ modname,
-	/*.spidermonkey_load*/ spidermonkey_load,
+	/*.spidermonkey_load*/ db_load,
 	/*.next*/ NULL
 };
 
@@ -307,3 +300,14 @@
 	*module_interface = &DB_module_interface;
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey_skel/mod_spidermonkey_skel.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey_skel/mod_spidermonkey_skel.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey_skel/mod_spidermonkey_skel.c	Sun Dec  3 17:55:28 2006
@@ -108,3 +108,14 @@
 	*module_interface = &skel_module_interface;
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey_teletone/mod_spidermonkey_teletone.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey_teletone/mod_spidermonkey_teletone.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/languages/mod_spidermonkey_teletone/mod_spidermonkey_teletone.c	Sun Dec  3 17:55:28 2006
@@ -30,6 +30,7 @@
  *
  */
 #include "mod_spidermonkey.h"
+#include <libteletone.h>
 
 static const char modname[] = "TeleTone";
 
@@ -357,7 +358,7 @@
 };
 
 
-switch_status_t spidermonkey_load(JSContext *cx, JSObject *obj)
+switch_status_t teletone_load(JSContext *cx, JSObject *obj)
 {
 	JS_InitClass(cx,
 				 obj,
@@ -376,7 +377,7 @@
 
 const sm_module_interface_t teletone_module_interface = {
 	/*.name = */ modname,
-	/*.spidermonkey_load*/ spidermonkey_load,
+	/*.spidermonkey_load*/ teletone_load,
 	/*.next*/ NULL
 };
 
@@ -385,3 +386,14 @@
 	*module_interface = &teletone_module_interface;
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/loggers/mod_console/mod_console.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/loggers/mod_console/mod_console.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/loggers/mod_console/mod_console.c	Sun Dec  3 17:55:28 2006
@@ -158,3 +158,13 @@
 	return SWITCH_STATUS_SUCCESS;
 }
 
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/loggers/mod_syslog/mod_syslog.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/loggers/mod_syslog/mod_syslog.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/loggers/mod_syslog/mod_syslog.c	Sun Dec  3 17:55:28 2006
@@ -171,3 +171,13 @@
 	return SWITCH_STATUS_SUCCESS;
 }
 
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/timers/mod_softtimer/mod_softtimer.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/timers/mod_softtimer/mod_softtimer.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/timers/mod_softtimer/mod_softtimer.c	Sun Dec  3 17:55:28 2006
@@ -222,3 +222,14 @@
 
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c	(original)
+++ freeswitch/branches/knhor/trunk/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c	Sun Dec  3 17:55:28 2006
@@ -349,3 +349,13 @@
 	return SWITCH_STATUS_SUCCESS;
 }
 
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/switch.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/switch.c	(original)
+++ freeswitch/branches/knhor/trunk/src/switch.c	Sun Dec  3 17:55:28 2006
@@ -309,3 +309,14 @@
 
 	return switch_core_destroy(vg);
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/switch_buffer.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/switch_buffer.c	(original)
+++ freeswitch/branches/knhor/trunk/src/switch_buffer.c	Sun Dec  3 17:55:28 2006
@@ -255,3 +255,14 @@
 
 	*buffer = NULL;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/switch_caller.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/switch_caller.c	(original)
+++ freeswitch/branches/knhor/trunk/src/switch_caller.c	Sun Dec  3 17:55:28 2006
@@ -248,3 +248,14 @@
 	}
 
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/switch_channel.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/switch_channel.c	(original)
+++ freeswitch/branches/knhor/trunk/src/switch_channel.c	Sun Dec  3 17:55:28 2006
@@ -108,20 +108,12 @@
 	uint32_t flags;
 	uint32_t state_flags;
 	switch_caller_profile_t *caller_profile;
-	switch_caller_profile_t *originator_caller_profile;
-	switch_caller_profile_t *originatee_caller_profile;
 	switch_caller_extension_t *caller_extension;
 	const switch_state_handler_table_t *state_handlers[SWITCH_MAX_STATE_HANDLERS];
 	int state_handler_index;
 	switch_hash_t *variables;
 	switch_hash_t *private_hash;
-	switch_channel_timetable_t *times;
 	switch_call_cause_t hangup_cause;
-	int freq;
-	int bits;
-	int channels;
-	int ms;
-	int kbps;
 };
 
 
@@ -160,8 +152,16 @@
 
 SWITCH_DECLARE(switch_channel_timetable_t *) switch_channel_get_timetable(switch_channel_t *channel)
 {
+    switch_channel_timetable_t *times = NULL;
+
 	assert(channel != NULL);
-	return channel->times;
+    if (channel->caller_profile) {
+        switch_mutex_lock(channel->profile_mutex);
+        times = channel->caller_profile->times;
+        switch_mutex_unlock(channel->profile_mutex);
+    }
+
+	return times;
 }
 
 SWITCH_DECLARE(switch_status_t) switch_channel_alloc(switch_channel_t **channel, switch_memory_pool_t *pool)
@@ -184,46 +184,6 @@
 	return SWITCH_STATUS_SUCCESS;
 }
 
-SWITCH_DECLARE(switch_status_t) switch_channel_set_raw_mode(switch_channel_t *channel, int freq, int bits, int channels,
-														  int ms, int kbps)
-{
-
-	assert(channel != NULL);
-
-	channel->freq = freq;
-	channel->bits = bits;
-	channel->channels = channels;
-	channel->ms = ms;
-	channel->kbps = kbps;
-
-
-	return SWITCH_STATUS_SUCCESS;
-}
-
-SWITCH_DECLARE(switch_status_t) switch_channel_get_raw_mode(switch_channel_t *channel, int *freq, int *bits, int *channels,
-														  int *ms, int *kbps)
-{
-	if (freq) {
-		*freq = channel->freq;
-	}
-	if (bits) {
-		*bits = channel->bits;
-	}
-	if (channels) {
-		*channels = channel->channels;
-	}
-	if (ms) {
-		*ms = channel->ms;
-	}
-	if (kbps) {
-		*kbps = channel->kbps;
-	}
-
-	return SWITCH_STATUS_SUCCESS;
-
-}
-
-
 SWITCH_DECLARE(switch_size_t) switch_channel_has_dtmf(switch_channel_t *channel)
 {
 	switch_size_t has;
@@ -306,7 +266,6 @@
 	channel->state = state;
 	channel->flags = flags;
 	channel->session = session;
-	switch_channel_set_raw_mode(channel, 8000, 16, 1, 20, 8);
 	return SWITCH_STATUS_SUCCESS;
 }
 
@@ -348,7 +307,7 @@
 	assert(channel != NULL);
 
 	if (!(v=switch_core_hash_find(channel->variables, varname))) {
-		if (!(v = switch_caller_get_field_by_name(channel->caller_profile, varname))) {
+		if (!channel->caller_profile || !(v = switch_caller_get_field_by_name(channel->caller_profile, varname))) {
 			if (!strcmp(varname, "base_dir")) {
 				return SWITCH_GLOBAL_dirs.base_dir;
 			}
@@ -710,16 +669,17 @@
 
 SWITCH_DECLARE(void) switch_channel_event_set_data(switch_channel_t *channel, switch_event_t *event)
 {
-	switch_caller_profile_t *caller_profile, *originator_caller_profile, *originatee_caller_profile;
+	switch_caller_profile_t *caller_profile, *originator_caller_profile = NULL, *originatee_caller_profile = NULL;
 	switch_hash_index_t *hi;
 	switch_codec_t *codec;
 	void *val;
 	const void *var;
 	char state_num[25];
 
-	caller_profile = switch_channel_get_caller_profile(channel);
-	originator_caller_profile = switch_channel_get_originator_caller_profile(channel);
-	originatee_caller_profile = switch_channel_get_originatee_caller_profile(channel);
+	if ((caller_profile = switch_channel_get_caller_profile(channel))) {
+        originator_caller_profile = caller_profile->originator_caller_profile;
+        originatee_caller_profile = caller_profile->originatee_caller_profile;
+    }
 
 	switch_event_add_header(event, SWITCH_STACK_BOTTOM, "Channel-State", (char *) switch_channel_state_name(channel->state));
 	snprintf(state_num, sizeof(state_num), "%d", channel->state);
@@ -767,11 +727,10 @@
 
 SWITCH_DECLARE(void) switch_channel_set_caller_profile(switch_channel_t *channel, switch_caller_profile_t *caller_profile)
 {
-	switch_channel_timetable_t *times;
-
 	assert(channel != NULL);
 	assert(channel->session != NULL);
 	switch_mutex_lock(channel->profile_mutex);
+	assert(caller_profile != NULL);
 
 	if (!caller_profile->uuid) {
 		caller_profile->uuid = switch_core_session_strdup(channel->session, switch_core_session_get_uuid(channel->session));
@@ -793,13 +752,15 @@
 			switch_event_fire(&event);
 		}
 	} 
-	
-	if ((times = (switch_channel_timetable_t *) switch_core_session_alloc(channel->session, sizeof(*times)))) {
-		times->next = channel->times;
-		channel->times = times;
-	}
-	channel->times->created = switch_time_now();
+    
+    caller_profile->times = (switch_channel_timetable_t *) switch_core_session_alloc(channel->session, sizeof(*caller_profile->times));
+	caller_profile->times->created = switch_time_now();
 
+    if (channel->caller_profile && channel->caller_profile->times) {
+        channel->caller_profile->times->transferred = switch_time_now();
+        caller_profile->times->answered = channel->caller_profile->times->answered;
+    }
+
 	caller_profile->next = channel->caller_profile;
 	channel->caller_profile = caller_profile;
 
@@ -822,53 +783,61 @@
 																  switch_caller_profile_t *caller_profile)
 {
 	assert(channel != NULL);
-	switch_mutex_lock(channel->profile_mutex);
-	caller_profile->next = channel->originator_caller_profile;
-	channel->originator_caller_profile = caller_profile;
-	switch_mutex_unlock(channel->profile_mutex);
+    if (channel->caller_profile) {
+        switch_mutex_lock(channel->profile_mutex);
+        caller_profile->next = channel->caller_profile->originator_caller_profile;
+        channel->caller_profile->originator_caller_profile = caller_profile;
+        switch_mutex_unlock(channel->profile_mutex);
+    }
 }
 
 SWITCH_DECLARE(void) switch_channel_set_originatee_caller_profile(switch_channel_t *channel,
 																  switch_caller_profile_t *caller_profile)
 {
 	assert(channel != NULL);
-	switch_mutex_lock(channel->profile_mutex);
-	caller_profile->next = channel->originatee_caller_profile;
-	channel->originatee_caller_profile = caller_profile;
-	switch_mutex_unlock(channel->profile_mutex);
+    if (channel->caller_profile) {
+        switch_mutex_lock(channel->profile_mutex);
+        caller_profile->next = channel->caller_profile->originatee_caller_profile;
+        channel->caller_profile->originatee_caller_profile = caller_profile;
+        switch_mutex_unlock(channel->profile_mutex);
+    }
 }
 
 SWITCH_DECLARE(switch_caller_profile_t *) switch_channel_get_originator_caller_profile(switch_channel_t *channel)
 {
-	switch_caller_profile_t *profile;
+	switch_caller_profile_t *profile = NULL;
 	assert(channel != NULL);
 
-	switch_mutex_lock(channel->profile_mutex);
-	profile = channel->originator_caller_profile;
-	switch_mutex_unlock(channel->profile_mutex);
+    if (channel->caller_profile) {
+        switch_mutex_lock(channel->profile_mutex);
+        profile = channel->caller_profile->originator_caller_profile;
+        switch_mutex_unlock(channel->profile_mutex);
+    }
 
 	return profile;
 }
 
-SWITCH_DECLARE(char *) switch_channel_get_uuid(switch_channel_t *channel)
-{
-	assert(channel != NULL);
-	assert(channel->session != NULL);
-	return switch_core_session_get_uuid(channel->session);
-}
-
 SWITCH_DECLARE(switch_caller_profile_t *) switch_channel_get_originatee_caller_profile(switch_channel_t *channel)
 {
-	switch_caller_profile_t *profile;
+	switch_caller_profile_t *profile = NULL;
 	assert(channel != NULL);
 
-	switch_mutex_lock(channel->profile_mutex);
-	profile = channel->originatee_caller_profile;
-	switch_mutex_unlock(channel->profile_mutex);
+    if (channel->caller_profile) {
+        switch_mutex_lock(channel->profile_mutex);
+        profile = channel->caller_profile->originatee_caller_profile;
+        switch_mutex_unlock(channel->profile_mutex);
+    }
 
 	return profile;
 }
 
+SWITCH_DECLARE(char *) switch_channel_get_uuid(switch_channel_t *channel)
+{
+	assert(channel != NULL);
+	assert(channel->session != NULL);
+	return switch_core_session_get_uuid(channel->session);
+}
+
 SWITCH_DECLARE(int) switch_channel_add_state_handler(switch_channel_t *channel,
 													 const switch_state_handler_table_t *state_handler)
 {
@@ -974,8 +943,10 @@
 	assert(channel != NULL);
 	switch_mutex_lock(channel->flag_mutex);
 
-	if (channel->times && !channel->times->hungup) {
-		channel->times->hungup = switch_time_now();
+	if (channel->caller_profile && channel->caller_profile->times && !channel->caller_profile->times->hungup) {
+        switch_mutex_lock(channel->profile_mutex);
+		channel->caller_profile->times->hungup = switch_time_now();
+        switch_mutex_unlock(channel->profile_mutex);
 	}
 
 	if (channel->state < CS_HANGUP) {
@@ -1096,7 +1067,12 @@
 	if (switch_core_session_answer_channel(channel->session) == SWITCH_STATUS_SUCCESS) {
 		switch_event_t *event;
 
-		channel->times->answered = switch_time_now();
+        if (channel->caller_profile && channel->caller_profile->times) {
+            switch_mutex_lock(channel->profile_mutex);
+            channel->caller_profile->times->answered = switch_time_now();
+            switch_mutex_unlock(channel->profile_mutex);
+        }
+
 		switch_channel_set_flag(channel, CF_ANSWERED);
 		switch_log_printf(SWITCH_CHANNEL_ID_LOG, (char *) file, func, line, SWITCH_LOG_NOTICE, "Answer %s!\n", channel->name);
 		if (switch_event_create(&event, SWITCH_EVENT_CHANNEL_ANSWER) == SWITCH_STATUS_SUCCESS) {
@@ -1196,19 +1172,22 @@
 						return in;
 					}
 				}
-				nlen = sub_val ? strlen(sub_val) : 0;
+				if ((nlen = sub_val ? strlen(sub_val) : 0)) {
+					if (len + nlen >= olen) {
+						char *dp;
+						olen += (len + nlen + block);
+						cpos = c - data;
+						if ((dp = realloc(data, olen))) {
+							data = dp;
+							c = data + cpos;
+							memset(c, 0, olen - cpos);
+						}
+					}
 
-				if (len + nlen >= olen) {
-					olen = (olen + len + nlen + block);
-					cpos = c - data;
-					data = realloc(data, olen);
-					c = data + cpos;
-					memset(c, 0, olen - cpos);
-				}
-				if (nlen) {
 					len += nlen;
 					strcat(c, sub_val);
 					c += nlen;
+
 				}
 				
 				switch_safe_free(func_val);
@@ -1230,3 +1209,14 @@
 	free(indup);
 	return data;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/switch_config.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/switch_config.c	(original)
+++ freeswitch/branches/knhor/trunk/src/switch_config.c	Sun Dec  3 17:55:28 2006
@@ -205,3 +205,14 @@
 	return ret;
 
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/switch_console.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/switch_console.c	(original)
+++ freeswitch/branches/knhor/trunk/src/switch_console.c	Sun Dec  3 17:55:28 2006
@@ -250,3 +250,14 @@
 	
 
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/switch_core.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/switch_core.c	(original)
+++ freeswitch/branches/knhor/trunk/src/switch_core.c	Sun Dec  3 17:55:28 2006
@@ -2673,7 +2673,8 @@
 	}
 
 	while (switch_channel_get_state(session->channel) == CS_EXECUTE && extension->current_application) {
-		char *expanded;
+		char *expanded = NULL;
+
 		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Execute %s(%s)\n",
 							  extension->current_application->application_name,
 							  extension->current_application->application_data);
@@ -2720,7 +2721,7 @@
 		application_interface->application_function(session, expanded);
 
 		if (expanded != extension->current_application->application_data) {
-			free(expanded);
+			switch_safe_free(expanded);
 		}
 		extension->current_application = extension->current_application->next;
 	}
@@ -4187,3 +4188,14 @@
 
 	return SWITCH_STATUS_SUCCESS;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/switch_event.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/switch_event.c	(original)
+++ freeswitch/branches/knhor/trunk/src/switch_event.c	Sun Dec  3 17:55:28 2006
@@ -600,19 +600,52 @@
 {
 	switch_size_t len = 0;
 	switch_event_header_t *hp;
-	switch_size_t llen = 0, dlen = 0, blocksize = 512;
+	switch_size_t llen = 0, dlen = 0, blocksize = 512, encode_len = 1024;
 	char *buf;
+    char *encode_buf = NULL; /* used for url encoding of variables to make sure unsafe things stay out of the serialzed copy */
 	
 	*str = NULL;
 
-	if (!(buf = malloc(blocksize))) {
+	dlen = blocksize * 2;
+
+	if (!(buf = malloc(dlen))) {
 		return SWITCH_STATUS_MEMERR;
 	}
 
-	dlen = blocksize;
+    /* go ahead and give ourselves some space to work with, should save a few reallocs */
+    if(!(encode_buf = malloc(encode_len))) {
+        return SWITCH_STATUS_MEMERR;
+    }
 
+    //switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "hit serialze!.\n");
 	for (hp = event->headers; hp; hp = hp->next) {
-		llen = strlen(hp->name) + strlen(hp->value) + 2;
+        /*
+         * grab enough memory to store 3x the string (url encode takes one char and turns it into %XX)
+         * so we could end up with a string that is 3 times the original's length, unlikely but rather
+         * be safe than destroy the string, also add one for the null.  And try to be smart about using 
+         * the memory, allocate and only reallocate if we need more.  This avoids an alloc, free CPU
+         * destroying loop.
+         */
+        if(encode_len < ((strlen(hp->value) * 3) + 1)) {
+            char* tmp;
+	        //switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Allocing %d was %d.\n", ((strlen(hp->value) * 3) + 1), encode_len);
+            /* we can use realloc for initial alloc as well, if encode_buf is zero it treats it as a malloc */
+            if(!(tmp = realloc(encode_buf, ((strlen(hp->value) * 3) + 1)))) {
+                /* oh boy, ram's gone, give back what little we grabbed and bail */
+                switch_safe_free(buf);
+                return SWITCH_STATUS_MEMERR;
+            }
+
+            /* keep track of the size of our allocation */
+            encode_len = (strlen(hp->value) * 3) + 1;
+
+            encode_buf = tmp;
+        }
+
+        /* handle any bad things in the string like newlines : etc that screw up the serialized format */
+        switch_url_encode(hp->value, encode_buf, encode_len - 1);
+
+		llen = strlen(hp->name) + strlen(encode_buf) + 2;
 		
 		if ((len + llen) > dlen) {
 			char *m;
@@ -620,15 +653,21 @@
 			if ((m = realloc(buf, dlen))) {
 				buf = m;
 			} else {
+                /* we seem to be out of memory trying to resize the serialize string, give back what we already have and give up */
 				switch_safe_free(buf);
+                switch_safe_free(encode_buf);
 				return SWITCH_STATUS_MEMERR;
 			}
 		}
 
-		snprintf(buf + len, dlen - len, "%s: %s\n", hp->name, hp->value);
+		snprintf(buf + len, dlen - len, "%s: %s\n", hp->name, encode_buf);
 		len = strlen(buf);
+
 	}
 
+    /* we are done with the memory we used for encoding, give it back */
+    switch_safe_free(encode_buf);
+
 	if (event->body) {
 		int blen = (int) strlen(event->body);
 		llen = blen;
@@ -848,3 +887,14 @@
 
 	return SWITCH_STATUS_MEMERR;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/switch_ivr.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/switch_ivr.c	(original)
+++ freeswitch/branches/knhor/trunk/src/switch_ivr.c	Sun Dec  3 17:55:28 2006
@@ -26,6 +26,7 @@
  * Anthony Minessale II <anthmct at yahoo.com>
  * Paul D. Tinsley <pdt at jackhammer.org>
  * Neal Horman <neal at wanlink dot com>
+ * Matt Klein <mklein at nmedia.net>
  *
  * switch_ivr.c -- IVR Library
  *
@@ -136,7 +137,7 @@
 	switch_status_t status = SWITCH_STATUS_SUCCESS;
 	switch_channel_t *channel;
 	switch_frame_t *frame;
-	int stream_id;
+	int stream_id = 0;
 	switch_event_t *event;
 	
 	channel = switch_core_session_get_channel(session);
@@ -151,19 +152,18 @@
 
 	switch_channel_set_flag(channel, CF_CONTROLLED);
 	while (switch_channel_ready(channel)) {
-		for (stream_id = 0; stream_id < switch_core_session_get_stream_count(session); stream_id++) {
-			if ((status = switch_core_session_read_frame(session, &frame, -1, stream_id)) == SWITCH_STATUS_SUCCESS) {
-				if (!SWITCH_READ_ACCEPTABLE(status)) {
-					break;
-				}
-
-				if (switch_core_session_dequeue_private_event(session, &event) == SWITCH_STATUS_SUCCESS) {
-					switch_ivr_parse_event(session, event);
-					switch_event_destroy(&event);
-				}
-
-			}
-		}
+        
+        if ((status = switch_core_session_read_frame(session, &frame, -1, stream_id)) == SWITCH_STATUS_SUCCESS) {
+            if (!SWITCH_READ_ACCEPTABLE(status)) {
+                break;
+            }
+            
+            if (switch_core_session_dequeue_private_event(session, &event) == SWITCH_STATUS_SUCCESS) {
+                switch_ivr_parse_event(session, event);
+                switch_event_destroy(&event);
+            }
+        }
+		
 	}
 	switch_channel_clear_flag(channel, CF_CONTROLLED);
 
@@ -327,11 +327,12 @@
 
 
 SWITCH_DECLARE(switch_status_t) switch_ivr_record_file(switch_core_session_t *session, 
-													 switch_file_handle_t *fh,
-													 char *file,
-													 switch_input_callback_function_t input_callback,
-													 void *buf,
-													 uint32_t buflen)
+                                                       switch_file_handle_t *fh,
+                                                       char *file,
+                                                       switch_input_callback_function_t input_callback,
+                                                       void *buf,
+                                                       uint32_t buflen,
+                                                       uint32_t limit)
 {
 	switch_channel_t *channel;
     char dtmf[128];
@@ -342,6 +343,7 @@
 	switch_status_t status = SWITCH_STATUS_SUCCESS;
 	char *p;
 	const char *vval;
+    time_t start = 0;
 
 	if (!fh) {
 		fh = &lfh;
@@ -424,17 +426,29 @@
 		return SWITCH_STATUS_GENERR;
 	}
 	
+    if (limit) {
+        start = time(NULL);
+    }
 
+    if (fh->thresh) {
+        if (!fh->silence_hits) {
+            fh->silence_hits = 20;
+        }
+    }
+
 	while(switch_channel_ready(channel)) {
 		switch_size_t len;
 		switch_event_t *event;
 
-
-		if (switch_core_session_dequeue_private_event(session, &event) == SWITCH_STATUS_SUCCESS) {
+        if (switch_core_session_dequeue_private_event(session, &event) == SWITCH_STATUS_SUCCESS) {
 			switch_ivr_parse_event(session, event);
 			switch_event_destroy(&event);
 		}
 
+        if (start && (time(NULL) - start) > limit) {
+            break;
+        }
+
 		if (input_callback || buf || buflen) {
 			/*
 			  dtmf handler function you can hook up to be executed when a digit is dialed during playback 
@@ -471,6 +485,26 @@
 		if (!SWITCH_READ_ACCEPTABLE(status)) {
 			break;
 		}
+
+        if (fh->thresh) {
+            int16_t *fdata = (int16_t *) read_frame->data;
+            uint32_t samples = read_frame->datalen / sizeof(*fdata);
+            uint32_t score, count = 0, j = 0;
+            double energy = 0;
+
+            for (count = 0; count < samples; count++) {
+                energy += abs(fdata[j]);
+                j += read_codec->implementation->number_of_channels;
+            }
+		
+            score = (uint32_t)(energy / samples);
+            if (score < fh->thresh) {
+                if (!--fh->silence_hits) {
+                    break;
+                }
+            }
+        }
+
 		if (!switch_test_flag(fh, SWITCH_FILE_PAUSE)) {
 			len = (switch_size_t) read_frame->datalen / 2;
 			switch_core_file_write(fh, read_frame->data, &len);
@@ -924,7 +958,7 @@
 	switch_channel_t *channel;
 	int16_t abuf[FILE_STARTSAMPLES];
 	char dtmf[128];
-	uint32_t interval = 0, samples = 0, framelen;
+	uint32_t interval = 0, samples = 0, framelen, sample_start = 0;
 	uint32_t ilen = 0;
 	switch_size_t olen = 0;
 	switch_frame_t write_frame = {0};
@@ -933,7 +967,7 @@
 	switch_codec_t codec;
 	switch_memory_pool_t *pool = switch_core_session_get_pool(session);
 	char *codec_name;
-	int stream_id;
+	int stream_id = 0;
 	switch_status_t status = SWITCH_STATUS_SUCCESS;
 	switch_file_handle_t lfh;
 	switch_codec_t *read_codec = switch_core_session_get_read_codec(session);
@@ -962,6 +996,13 @@
 		memset(fh, 0, sizeof(lfh));
 	}
 
+
+	if (fh->samples > 0) {
+		sample_start = fh->samples;
+		fh->samples = 0;
+	}
+
+
 	channel = switch_core_session_get_channel(session);
 	assert(channel != NULL);
 
@@ -977,6 +1018,10 @@
 	write_frame.data = abuf;
 	write_frame.buflen = sizeof(abuf);
 
+    if (sample_start > 0) {
+        uint32_t pos = 0;
+        switch_core_file_seek(fh, &pos, sample_start, SEEK_CUR);
+    }
 	
 	if (switch_core_file_get_string(fh, SWITCH_AUDIO_COL_STR_TITLE, &p) == SWITCH_STATUS_SUCCESS) {
 		title = (char *) switch_core_session_strdup(session, (char *)p);
@@ -1218,21 +1263,23 @@
 		if (!asis) {switch_swap_linear(write_frame.data, (int) write_frame.datalen / 2);}
 #endif
 #endif
-		for (stream_id = 0; stream_id < switch_core_session_get_stream_count(session); stream_id++) {
-			status = switch_core_session_write_frame(session, &write_frame, -1, stream_id);
+		stream_id = 0; 
 
-			if (status == SWITCH_STATUS_MORE_DATA) {
-				status = SWITCH_STATUS_SUCCESS;
-				continue;
-			} else if (status != SWITCH_STATUS_SUCCESS) {
-				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Bad Write\n");
-				done = 1;
-				break;
-			}
-			if (done) {
-				break;
-			}
-		}
+        status = switch_core_session_write_frame(session, &write_frame, -1, stream_id);
+        
+        if (status == SWITCH_STATUS_MORE_DATA) {
+            status = SWITCH_STATUS_SUCCESS;
+            continue;
+        } else if (status != SWITCH_STATUS_SUCCESS) {
+            switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Bad Write\n");
+            done = 1;
+            break;
+        }
+
+        if (done) {
+            break;
+        }
+    
 		
 		if (timer_name) {
 			if (switch_core_timer_next(&timer) < 0) {
@@ -1446,7 +1493,7 @@
 	switch_size_t ilen = 0;
 	switch_frame_t write_frame = {0};
 	int x;
-	int stream_id;
+	int stream_id = 0;
 	int done = 0;
 	int lead_in_out = 10;
 	switch_status_t status = SWITCH_STATUS_SUCCESS;
@@ -1481,13 +1528,11 @@
 	write_frame.codec = codec;
 
 	for( x = 0; !done && x < lead_in_out; x++) {
-		for (stream_id = 0; stream_id < switch_core_session_get_stream_count(session); stream_id++) {
-			if (switch_core_session_write_frame(session, &write_frame, -1, stream_id) != SWITCH_STATUS_SUCCESS) {
-				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Bad Write\n");
-				done = 1;
-				break;
-			}
-		}
+        if (switch_core_session_write_frame(session, &write_frame, -1, stream_id) != SWITCH_STATUS_SUCCESS) {
+            switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Bad Write\n");
+            done = 1;
+            break;
+        }		
 	}
 
 	ilen = len;
@@ -1565,13 +1610,11 @@
 
 		if (status != SWITCH_STATUS_SUCCESS) {
 			for( x = 0; !done && x < lead_in_out; x++) {
-				for (stream_id = 0; stream_id < switch_core_session_get_stream_count(session); stream_id++) {
-					if (switch_core_session_write_frame(session, &write_frame, -1, stream_id) != SWITCH_STATUS_SUCCESS) {
-						switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Bad Write\n");
-						done = 1;
-						break;
-					}
-				}
+                if (switch_core_session_write_frame(session, &write_frame, -1, stream_id) != SWITCH_STATUS_SUCCESS) {
+                    switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Bad Write\n");
+                    done = 1;
+                    break;
+                }
 			}
 			if (status == SWITCH_STATUS_BREAK) {
 				status = SWITCH_STATUS_SUCCESS;
@@ -1586,17 +1629,15 @@
 		write_frame.datalen = (uint32_t)ilen;
 		write_frame.samples = (uint32_t)(ilen / 2);
 
-		for (stream_id = 0; stream_id < switch_core_session_get_stream_count(session); stream_id++) {
-			if (switch_core_session_write_frame(session, &write_frame, -1, stream_id) != SWITCH_STATUS_SUCCESS) {
-				switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Bad Write\n");
-				done = 1;
-				break;
-			}
+        if (switch_core_session_write_frame(session, &write_frame, -1, stream_id) != SWITCH_STATUS_SUCCESS) {
+            switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Bad Write\n");
+            done = 1;
+            break;
+        }
 
-			if (done) {
-				break;
-			}
-		}
+        if (done) {
+            break;
+        }
 
 		if (timer) {
 			if ((x = switch_core_timer_next(timer)) < 0) {
@@ -1645,7 +1686,7 @@
 	switch_codec_t codec;
 	switch_memory_pool_t *pool = switch_core_session_get_pool(session);
 	char *codec_name;
-	int stream_id;
+	int stream_id = 0;
 	switch_status_t status = SWITCH_STATUS_SUCCESS;
 	switch_speech_handle_t sh;
 	switch_speech_flag_t flags = SWITCH_SPEECH_FLAG_NONE;
@@ -1841,6 +1882,8 @@
 			switch_core_session_receive_message(session_a, message);
 			if (switch_test_flag(message, SCSMF_DYNAMIC)) {
 				switch_safe_free(message);
+			} else {
+				message = NULL;
 			}
 		}
  
@@ -2154,7 +2197,8 @@
 									uint32_t len,
 									int32_t *idx,
 									char *file,
-									char *key)
+									char *key,
+									char *ringback_data)
 {
 
 	uint32_t i;
@@ -2167,7 +2211,8 @@
 		}
 		if (switch_channel_get_state(peer_channels[i]) >= CS_HANGUP) {
 			hups++;
-		} else if ((switch_channel_test_flag(peer_channels[i], CF_ANSWERED) || (len == 1 && switch_channel_test_flag(peer_channels[0], CF_EARLY_MEDIA))) && 
+		} else if ((switch_channel_test_flag(peer_channels[i], CF_ANSWERED) || 
+					(!ringback_data && len == 1 && switch_channel_test_flag(peer_channels[0], CF_EARLY_MEDIA))) && 
 				   !switch_channel_test_flag(peer_channels[i], CF_TAGGED)) {
 
 			if (key) {
@@ -2264,6 +2309,7 @@
 	char *ringback_data = NULL;
 	switch_codec_t *read_codec = NULL;
 	uint8_t sent_ring = 0;
+	switch_core_session_message_t *message = NULL;
 
 	write_frame.data = fdata;
 	
@@ -2434,13 +2480,15 @@
 				peer_sessions[i] = NULL;
 				continue;
 			}
-
+			
 			switch_core_session_read_lock(peer_sessions[i]);
 			pool = NULL;
 	
 			peer_channels[i] = switch_core_session_get_channel(peer_sessions[i]);
 			assert(peer_channels[i] != NULL);
-		
+
+			//switch_channel_set_flag(peer_channels[i], CF_NO_INDICATE);
+
 			if (table == &noop_state_handler) {
 				table = NULL;
 			} else if (!table) {
@@ -2499,7 +2547,7 @@
 			switch_channel_pre_answer(caller_channel);
 		}
 
-		if (session && !switch_channel_test_flag(caller_channel, CF_NOMEDIA)) {
+		if (session && (ringback_data || !switch_channel_test_flag(caller_channel, CF_NOMEDIA))) {
 			read_codec = switch_core_session_get_read_codec(session);
 			assert(read_codec != NULL);
 
@@ -2525,6 +2573,7 @@
 
 					if (ringback_data) {
 						char *tmp_data = NULL;
+						
 						switch_buffer_create_dynamic(&ringback.audio_buffer, 512, 1024, 0);
 						switch_buffer_create_dynamic(&ringback.loop_buffer, 512, 1024, 0);
 
@@ -2579,33 +2628,36 @@
 				}
 			}
 		}
-		
+
 		while ((!caller_channel || switch_channel_ready(caller_channel)) && 
-			   check_channel_status(peer_channels, peer_sessions, and_argc, &idx, file, key)) {
+			   check_channel_status(peer_channels, peer_sessions, and_argc, &idx, file, key, ringback_data)) {
 
 			if ((to = (uint8_t)((time(NULL) - start) >= (time_t)timelimit_sec))) {
 				idx = IDX_CANCEL;
 				goto notready;
 			}
 
-			if (session && or_argc == 1 && and_argc == 1) { /* when there is only 1 channel to call and bridge */
-				switch_core_session_message_t *message = NULL;
-				if (switch_core_session_dequeue_message(peer_sessions[0], &message) == SWITCH_STATUS_SUCCESS) {
+			if (switch_core_session_dequeue_message(peer_sessions[0], &message) == SWITCH_STATUS_SUCCESS) {
+				if (session && !ringback_data && or_argc == 1 && and_argc == 1) { /* when there is only 1 channel to call and bridge and no ringback */
 					switch_core_session_receive_message(session, message);
-					if (switch_test_flag(message, SCSMF_DYNAMIC)) {
-						switch_safe_free(message);
-					}
 				}
+				
+				if (switch_test_flag(message, SCSMF_DYNAMIC)) {
+					switch_safe_free(message);
+				} else {
+					message = NULL;
+				}
 			}
 
 			/* read from the channel while we wait if the audio is up on it */
-			if (session && !switch_channel_test_flag(caller_channel, CF_NOMEDIA) && 
+			if (session && (ringback_data || !switch_channel_test_flag(caller_channel, CF_NOMEDIA)) && 
 				(switch_channel_test_flag(caller_channel, CF_ANSWERED) || switch_channel_test_flag(caller_channel, CF_EARLY_MEDIA))) {
 				switch_status_t status = switch_core_session_read_frame(session, &read_frame, 1000, 0);
 			
 				if (!SWITCH_READ_ACCEPTABLE(status)) {
 					break;
 				}
+
 				if (read_frame && !pass && !switch_test_flag(read_frame, SFF_CNG) && read_frame->datalen > 1) {
 					if (ringback.fh) {
 						uint8_t abuf[1024];
@@ -2649,7 +2701,8 @@
 								break;
 							}
 						}
-					}	
+					}
+
 					if (switch_core_session_write_frame(session, &write_frame, 1000, 0) != SWITCH_STATUS_SUCCESS) {
 						break;
 					}
@@ -2670,7 +2723,7 @@
 			idx = IDX_CANCEL;
 		}
 
-		if (session && !switch_channel_test_flag(caller_channel, CF_NOMEDIA)) {
+		if (session && (ringback_data || !switch_channel_test_flag(caller_channel, CF_NOMEDIA))) {
 			switch_core_session_reset(session);
 		}
 
@@ -3077,8 +3130,6 @@
 	/*.on_hibernate*/ signal_bridge_on_hibernate
 };
 
-
-
 SWITCH_DECLARE(switch_status_t) switch_ivr_signal_bridge(switch_core_session_t *session, switch_core_session_t *peer_session)
 {
 	switch_channel_t *caller_channel, *peer_channel;
@@ -3266,9 +3317,15 @@
 						  switch_channel_get_name(peer_channel)
 						  );
 		switch_channel_hangup(peer_channel, SWITCH_CAUSE_NO_ANSWER);
-	}
+	} 
 
  done:
+
+    if (switch_channel_get_state(caller_channel) < CS_HANGUP && 
+        switch_true(switch_channel_get_variable(caller_channel, SWITCH_HANGUP_AFTER_BRIDGE_VARIABLE))) {
+        switch_channel_hangup(caller_channel, SWITCH_CAUSE_NORMAL_CLEARING);
+    }
+
 	return status;
 }
 
@@ -4230,3 +4287,14 @@
 
 	return status;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/switch_loadable_module.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/switch_loadable_module.c	(original)
+++ freeswitch/branches/knhor/trunk/src/switch_loadable_module.c	Sun Dec  3 17:55:28 2006
@@ -380,7 +380,12 @@
 			snprintf(path, len, "%s%s%s%s", dir, SWITCH_PATH_SEPARATOR, file, ext);
 		}
 	}
-	
+
+    if (switch_core_hash_find(loadable_modules.module_hash, file)) {
+        switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Module %s Already Loaded!\n", file);
+        return SWITCH_STATUS_FALSE;
+    }
+
 	if ((status = switch_loadable_module_load_file(path, &new_module) == SWITCH_STATUS_SUCCESS)) {
 		return switch_loadable_module_process((char *) file, new_module);
 	} else {
@@ -800,3 +805,14 @@
 
 	return status;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/switch_log.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/switch_log.c	(original)
+++ freeswitch/branches/knhor/trunk/src/switch_log.c	Sun Dec  3 17:55:28 2006
@@ -287,3 +287,13 @@
 	return SWITCH_STATUS_SUCCESS;
 }
 
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/switch_resample.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/switch_resample.c	(original)
+++ freeswitch/branches/knhor/trunk/src/switch_resample.c	Sun Dec  3 17:55:28 2006
@@ -216,3 +216,13 @@
 	}
 }
 
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/switch_rtp.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/switch_rtp.c	(original)
+++ freeswitch/branches/knhor/trunk/src/switch_rtp.c	Sun Dec  3 17:55:28 2006
@@ -1429,3 +1429,14 @@
 {
 	return rtp_session->private_data;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/switch_stun.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/switch_stun.c	(original)
+++ freeswitch/branches/knhor/trunk/src/switch_stun.c	Sun Dec  3 17:55:28 2006
@@ -370,3 +370,14 @@
 
 	return SWITCH_STATUS_FALSE;
 }
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/switch_swig.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/switch_swig.c	(original)
+++ freeswitch/branches/knhor/trunk/src/switch_swig.c	Sun Dec  3 17:55:28 2006
@@ -88,17 +88,17 @@
 
 void fs_consol_log(char *level_str, char *msg)
 {
-        switch_log_level_t level = SWITCH_LOG_DEBUG;
-        if (level_str) {
-                level = switch_log_str2level(level_str);
+    switch_log_level_t level = SWITCH_LOG_DEBUG;
+    if (level_str) {
+        level = switch_log_str2level(level_str);
 	}
       
-        switch_log_printf(SWITCH_CHANNEL_LOG, level, msg);
+    switch_log_printf(SWITCH_CHANNEL_LOG, level, msg);
 }
 	
 void fs_consol_clean(char *msg)
 {
-        switch_log_printf(SWITCH_CHANNEL_LOG_CLEAN, SWITCH_LOG_DEBUG, msg);
+    switch_log_printf(SWITCH_CHANNEL_LOG_CLEAN, SWITCH_LOG_DEBUG, msg);
 }
 
 switch_core_session_t *fs_core_session_locate(char *uuid)
@@ -154,7 +154,7 @@
 
 
 /*
-IVR Routines!  You can do IVR in PHP NOW!
+  IVR Routines!  You can do IVR in PHP NOW!
 */
 
 int fs_ivr_play_file(switch_core_session_t *session,
@@ -174,20 +174,22 @@
 }
 
 int fs_switch_ivr_record_file(switch_core_session_t *session,
-						switch_file_handle_t *fh,
-						char *file,
-						switch_input_callback_function_t dtmf_callback,
-						void *buf,
-						unsigned int buflen)
+                              switch_file_handle_t *fh,
+                              char *file,
+                              switch_input_callback_function_t dtmf_callback,
+                              void *buf,
+                              unsigned int buflen,
+                              unsigned int limit
+                              )
 {  
 	switch_status_t status;
 	
-        status = switch_ivr_record_file(session, fh, file, dtmf_callback, buf, buflen);
-        return status == SWITCH_STATUS_SUCCESS ? 1 : 0;
+    status = switch_ivr_record_file(session, fh, file, dtmf_callback, buf, buflen, limit);
+    return status == SWITCH_STATUS_SUCCESS ? 1 : 0;
 }
 
 int fs_switch_ivr_sleep(switch_core_session_t *session,
-					uint32_t ms)
+                        uint32_t ms)
 {
 	switch_status_t status;
 	status = switch_ivr_sleep(session, ms);
@@ -211,98 +213,98 @@
 										   unsigned int buflen,
 										   unsigned int timeout)
 {
-        switch_status_t status;
+    switch_status_t status;
 
-        status = switch_ivr_collect_digits_callback(session, dtmf_callback, buf, buflen, timeout);
-        return status == SWITCH_STATUS_SUCCESS ? 1 : 0;
+    status = switch_ivr_collect_digits_callback(session, dtmf_callback, buf, buflen, timeout);
+    return status == SWITCH_STATUS_SUCCESS ? 1 : 0;
 }
 
 int fs_switch_ivr_collect_digits_count  	(switch_core_session_t *session,
-					char *buf,
-					unsigned int buflen,
-					unsigned int maxdigits,
-					const char *terminators,
-					char *terminator,
-					unsigned int timeout)  
+                                             char *buf,
+                                             unsigned int buflen,
+                                             unsigned int maxdigits,
+                                             const char *terminators,
+                                             char *terminator,
+                                             unsigned int timeout)  
 {
-        switch_status_t status;
+    switch_status_t status;
 
-        status = switch_ivr_collect_digits_count(session, buf, buflen, maxdigits, terminators, terminator, timeout);
-        return status == SWITCH_STATUS_SUCCESS ? 1 : 0;
+    status = switch_ivr_collect_digits_count(session, buf, buflen, maxdigits, terminators, terminator, timeout);
+    return status == SWITCH_STATUS_SUCCESS ? 1 : 0;
 }
 
 /*int fs_switch_ivr_multi_threaded_bridge   (switch_core_session_t *session,
-					switch_core_session_t *peer_session,
-					switch_input_callback_function_t dtmf_callback,
-					void *session_data,
-					void *peer_session_data)  
-{
-        switch_status_t status;
+  switch_core_session_t *peer_session,
+  switch_input_callback_function_t dtmf_callback,
+  void *session_data,
+  void *peer_session_data)  
+  {
+  switch_status_t status;
 
-        status = switch_ivr_multi_threaded_bridge(session, peer_session, dtmf_callback, session_data, peer_session_data);
-        return status == SWITCH_STATUS_SUCCESS ? 1 : 0;
-}
+  status = switch_ivr_multi_threaded_bridge(session, peer_session, dtmf_callback, session_data, peer_session_data);
+  return status == SWITCH_STATUS_SUCCESS ? 1 : 0;
+  }
 */
 
 int fs_switch_ivr_originate       (switch_core_session_t *session,
-				switch_core_session_t **bleg,
-				char *  	bridgeto,
-				uint32_t  	timelimit_sec)
-				/*const switch_state_handler_table_t *table,
-				char *  	cid_name_override,
-				char *  	cid_num_override,
-				switch_caller_profile_t *caller_profile_override)  */
+                                   switch_core_session_t **bleg,
+                                   char *  	bridgeto,
+                                   uint32_t  	timelimit_sec)
+/*const switch_state_handler_table_t *table,
+  char *  	cid_name_override,
+  char *  	cid_num_override,
+  switch_caller_profile_t *caller_profile_override)  */
 {
 
-        switch_channel_t *caller_channel;
-        switch_core_session_t *peer_session;
-        unsigned int timelimit = 60;
-        char *var;
-		switch_call_cause_t cause = SWITCH_CAUSE_NORMAL_CLEARING;
+    switch_channel_t *caller_channel;
+    switch_core_session_t *peer_session;
+    unsigned int timelimit = 60;
+    char *var;
+    switch_call_cause_t cause = SWITCH_CAUSE_NORMAL_CLEARING;
 
-        caller_channel = switch_core_session_get_channel(session);
-        assert(caller_channel != NULL);
+    caller_channel = switch_core_session_get_channel(session);
+    assert(caller_channel != NULL);
 
-        if ((var = switch_channel_get_variable(caller_channel, "call_timeout"))) {
-                timelimit = atoi(var);
-        }
+    if ((var = switch_channel_get_variable(caller_channel, "call_timeout"))) {
+        timelimit = atoi(var);
+    }
         
-        if (switch_ivr_originate(session, &peer_session, &cause, bridgeto, timelimit, NULL, NULL, NULL, NULL) != SWITCH_STATUS_SUCCESS) {
-                switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot Create Outgoing Channel!\n");
-                switch_channel_hangup(caller_channel, SWITCH_CAUSE_REQUESTED_CHAN_UNAVAIL);
-                return;
-        } else {
-                switch_ivr_multi_threaded_bridge(session, peer_session, NULL, NULL, NULL);
-        }
+    if (switch_ivr_originate(session, &peer_session, &cause, bridgeto, timelimit, NULL, NULL, NULL, NULL) != SWITCH_STATUS_SUCCESS) {
+        switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot Create Outgoing Channel!\n");
+        switch_channel_hangup(caller_channel, SWITCH_CAUSE_REQUESTED_CHAN_UNAVAIL);
+        return;
+    } else {
+        switch_ivr_multi_threaded_bridge(session, peer_session, NULL, NULL, NULL);
+    }
 
 
 }
 
 int fs_switch_ivr_session_transfer(switch_core_session_t *session,
-				char *extension,
-				char *dialplan,
-				char *context)  
+                                   char *extension,
+                                   char *dialplan,
+                                   char *context)  
 {
-        switch_status_t status;
+    switch_status_t status;
 
-        status = switch_ivr_session_transfer(session,extension,dialplan,context);
-        return status == SWITCH_STATUS_SUCCESS ? 1 : 0;
+    status = switch_ivr_session_transfer(session,extension,dialplan,context);
+    return status == SWITCH_STATUS_SUCCESS ? 1 : 0;
 }
 
 int fs_switch_ivr_speak_text      (switch_core_session_t *session,
-				char *tts_name,
-				char *voice_name,
-				char *timer_name,
-				uint32_t  	rate,
-				switch_input_callback_function_t dtmf_callback,
-				char *text,
-				void *buf,
-				unsigned int buflen)  
+                                   char *tts_name,
+                                   char *voice_name,
+                                   char *timer_name,
+                                   uint32_t  	rate,
+                                   switch_input_callback_function_t dtmf_callback,
+                                   char *text,
+                                   void *buf,
+                                   unsigned int buflen)  
 {
-        switch_status_t status;
+    switch_status_t status;
 
-        status = switch_ivr_speak_text(session,tts_name,voice_name,timer_name,rate,dtmf_callback,text,buf,buflen);
-        return status == SWITCH_STATUS_SUCCESS ? 1 : 0;
+    status = switch_ivr_speak_text(session,tts_name,voice_name,timer_name,rate,dtmf_callback,text,buf,buflen);
+    return status == SWITCH_STATUS_SUCCESS ? 1 : 0;
 }
 
 
@@ -320,9 +322,19 @@
 
 int fs_switch_channel_set_variable(switch_channel_t *channel, char *varname, char *value)
 {
-        switch_status_t status;
+    switch_status_t status;
 
-        status = switch_channel_set_variable(channel, varname, value);
-        return status == SWITCH_STATUS_SUCCESS ? 1 : 0;
+    status = switch_channel_set_variable(channel, varname, value);
+    return status == SWITCH_STATUS_SUCCESS ? 1 : 0;
 }  
 
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/switch_utils.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/switch_utils.c	(original)
+++ freeswitch/branches/knhor/trunk/src/switch_utils.c	Sun Dec  3 17:55:28 2006
@@ -35,6 +35,92 @@
 #include <stdlib.h>
 
 
+
+SWITCH_DECLARE(int) switch_perform_regex(char *field, char *expression, pcre **new_re, int *ovector, uint32_t olen)
+{
+	const char *error = NULL;
+	int erroffset = 0;
+	pcre *re = NULL;
+	int match_count = 0;
+	
+	if (!(field && expression)) {
+		return 0;
+	}
+
+	re = pcre_compile(expression, /* the pattern */
+					  0,		  /* default options */
+					  &error,	  /* for error message */
+					  &erroffset, /* for error offset */
+					  NULL);	  /* use default character tables */
+	if (error) {
+		switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "COMPILE ERROR: %d [%s]\n", erroffset, error);
+		switch_clean_re(re);
+		return 0;
+	}
+
+	match_count = pcre_exec(re,	/* result of pcre_compile() */
+							NULL,	/* we didn't study the pattern */
+							field,	/* the subject string */
+							(int) strlen(field), /* the length of the subject string */
+							0,	/* start at offset 0 in the subject */
+							0,	/* default options */
+							ovector,	/* vector of integers for substring information */
+							olen); /* number of elements (NOT size in bytes) */
+
+	if (match_count <= 0) {
+		switch_clean_re(re);
+		match_count = 0;
+	}
+
+	*new_re = re;
+
+	return match_count;
+}
+
+
+SWITCH_DECLARE(void) switch_perform_substitution(pcre *re, int match_count, char *data, char *field_data, char *substituted, uint32_t len, int *ovector)
+{
+	char index[10] = "";
+	char replace[1024] = "";
+	uint32_t x, y = 0, z = 0, num = 0;
+
+	for (x = 0; x < (len-1) && x < strlen(data);) {
+		if (data[x] == '$') {
+			x++;
+			
+			if (!(data[x] > 47 && data[x] < 58)) {
+				substituted[y++] = data[x-1];
+				continue;
+			}
+
+			while (data[x] > 47 && data[x] < 58) {
+				index[z++] = data[x];
+				x++;
+			}
+			index[z++] = '\0';
+			z = 0;
+			num = atoi(index);
+			
+			if (pcre_copy_substring(field_data,
+									ovector,
+									match_count,
+									num,
+									replace,
+									sizeof(replace)) > 0) {
+				unsigned int r;
+				for (r = 0; r < strlen(replace); r++) {
+					substituted[y++] = replace[r];
+				}
+			}
+		} else {
+			substituted[y++] = data[x];
+			x++;
+		}
+	}
+	substituted[y++] = '\0';
+}
+
+
 SWITCH_DECLARE(char *) switch_priority_name(switch_priority_t priority)
 {
 	switch(priority) { /*lol*/
@@ -297,7 +383,7 @@
 {
     char *p;
     size_t x = 0;
-    const char urlunsafe[] = " \"#%&+:;<=>?@[\\]^`{|}";
+    const char urlunsafe[] = "\r\n \"#%&+:;<=>?@[\\]^`{|}";
     const char hex[] = "0123456789ABCDEF";
 
     memset(buf, 0, len);
@@ -347,3 +433,14 @@
 	apr_socket_opt_set(NULL, 0, 0);
 }
 #endif
+
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/src/switch_xml.c
==============================================================================
--- freeswitch/branches/knhor/trunk/src/switch_xml.c	(original)
+++ freeswitch/branches/knhor/trunk/src/switch_xml.c	Sun Dec  3 17:55:28 2006
@@ -1336,4 +1336,13 @@
     switch_xml_free(xml);
 }
 
-
+/* For Emacs:
+ * Local Variables:
+ * mode:c
+ * indent-tabs-mode:nil
+ * tab-width:4
+ * c-basic-offset:4
+ * End:
+ * For VIM:
+ * vim:set softtabstop=4 shiftwidth=4 tabstop=4 expandtab:
+ */

Modified: freeswitch/branches/knhor/trunk/support/freeswitch.pub
==============================================================================
--- freeswitch/branches/knhor/trunk/support/freeswitch.pub	(original)
+++ freeswitch/branches/knhor/trunk/support/freeswitch.pub	Sun Dec  3 17:55:28 2006
@@ -1 +1 @@
-ssh-dss AAAAB3NzaC1kc3MAAAEBAOWKsqPrtDlTVwuZa2GnGR9iTqPGI5dfHRwiJ33WVUIz5LdwqwDPQ1799cF1282YCL6eH55EXODUNskMWdmCe4lqFbW35aCepOL917p7oaf8KchWA5KRNyySlydr2WS51jNpZ47yICrf51nuBgmKchTh0AuBB50PcVff0SOvTuhTAdDdId6gsELdzLHDb+uSPdV77puQRhk7E5t1gy5y3Kfdz5SznCd+FLocYdliWSkduq04B6vZKc1fGkdu4zOfXy7dLp3ISj9Ci3AEqTnB7Ov9xpx5rkhbLDNmkac480IYdMw1M1JHRdK56uAzZgcwOetrN6K/6faBgKcPHDE2SwMAAAAVAN+ipXk7qhjA2SF20p02ZNrcEXujAAABAQDOwfZ22lfjnwkxgIgZjjdIAX0711e30UMyjQvCl2eKaLFharVMyzMFKER1hdjkd2UiU/rKgTKf/9qh8a6gqzaY5O19ZenXlPvVmgLLmwk21vGGrvXEVlacv18JdrkBharZbIrWx+TnxL0iJ7mKtxfafAJRpUMW+Jt9cklAVKOWAnLbXHZisbGamzjUnEfZrsdJl90MQ+3by2htBSdv3lVEXIuqw0duWNj23mW9BN2l3U6uumDFVjNSxf6apppekeprzXn1NXbPTgXp50ejGYnZWm0/sq1zB7ENMnsvpthrxTSeckTDkNVaoV+klJuMDUt1RTSxZQQS776+CcOIxXb5AAABAQCoa7+B2WPk/tToNoI9exb7UVmBYVmdWyIG+9q4apI1AA4VRz2HGqK233qe38VHsDjE8G7chXJrlu9RVHIvRVgZYjtBkLgPBPhcOFrrW/1TjrYLbIVJp/2fIHAZP41pbofwP/Mw8rgmoftWDMh4nx7zEYdGwxz9azgQWPKpPGf0SxLWaIjFqKsB2CFp/uAuMD6+g8LEf30hJ+tCsY4VY0zGGq8Ivofflqt1ZW/1g3AhZSH8DGp1hfOt3o3ZqPd7xg0T1RK+IHgy4FK2np1S7eavPw7fZ6L7QbYIJC5zoCq9IshmrGfSebkUH1XgSUdmDNdFXxHEueej9P79VpKDPtnW FreeSWITCH Public SSH Key
+ssh-dss AAAAB3NzaC1kc3MAAAEBALai7vFlKP9jcy8tb/UTvCvVUN5rCiPTux8vjaWY3uZAbGvfeKtbRLeSI1LGkujh/WRJTZdgRYyHaB0SqnR0Ifesw+bD0n4vhH64inESSVaCmgKaAblBiDloVxZNIa6KMzmCXoXLogSHD6FD/r1/LBvRV3Fsk7YwATltMzwug2tZxeKQBaRbsSYtwKR/7KdIlN9R3ieXaesEjvYgxcp/6UN8VOqqgxi6uHnBSYFhpOOXqFAm1Q92eC3NBtxD6KBjWzJmI4WgLTrVLXfUkVmWqkLtKLovpj4oMtM1pGk8rmb1N+vkB57utqpPqrQdgqMUMvPCufb7shHfwoA755yw/1MAAAAVAOCIbu71sK9dCY6sBPZEvDzIpvkjAAABAQCcGCIjWd+0U5LwYIRZjpicsWgetIvd0vTJ6/6mZwfEpB64IV3yqMOlzA/oOTjCHErs2insz0l6FqAVSp2BbQMD13ZULTuhb8G0Rlh2kwXJvFx+JVsJ+j1SMOJPaLp6ZN1xTQXJ3j+fmvLAzd3cPE/XHWOuvvCCmKV2sIA+nti6gR8WcqTyWrbWuooVBMRwTkajS7qZfwVZxtIvVvAh3FF9DtDfrECLMJ0dOg5W0aTtwqRIsL2f1QMI0pXQqrr+v6rQ+ml7L6fvcJQ1zXqk+zCqKBexG98q3p3MQfNEwusQuQ7WtK31crCPryTMjCo0rHbvo3akJEEraeSQLl1PBNP5AAABAA29RnQ6Yt/DaTq8F057IzI6dX2JSbUaAr26qXV05F6Tsm18PsBaTSaur/FSlGf5DovXwMGvWCg1aZpdOd6fAsrcFXomNH/lHaEqr55qn5zKEsImUD7+gmZl32syLPZLa+qTwARqAqk6WAK3j+6Q/QxsAJpLjmKwvvUMWFLbDWjYEWdUSvaBWACBop0qd6Xy1VVu28EYZeZAAiGKg93P1K3a0Ji0gUS+C+zZ/JwMtRQZXQXgiAOooawechf/SDuSnszrANQlk/2T+uQrN87HJrvLlx+p9TIGfu9NrcAPDsdAbKPZOwEaz+WniccMqGNha0wcSYXLSa1EHCyB3Y80FDM= FreeSWITCH Public SSH Key



More information about the Freeswitch-branches mailing list