Merge branch 'master' of fs-git:freeswitch

This commit is contained in:
Raymond Chandler 2013-01-04 20:53:16 -05:00
commit aeae7ebc83
11 changed files with 1986 additions and 140 deletions

View File

@ -1058,22 +1058,22 @@ Global
{8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release|x64.Build.0 = Release|x64
{8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release|x64 Setup.ActiveCfg = Release|x64
{8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release|x86 Setup.ActiveCfg = Release|Win32
{1CED5987-A529-46DC-B30F-870D85FF9C94}.All|Win32.ActiveCfg = Release|x64
{1CED5987-A529-46DC-B30F-870D85FF9C94}.All|x64.ActiveCfg = Release|x64
{1CED5987-A529-46DC-B30F-870D85FF9C94}.All|x64.Build.0 = Release|x64
{1CED5987-A529-46DC-B30F-870D85FF9C94}.All|Win32.ActiveCfg = Release|Win32
{1CED5987-A529-46DC-B30F-870D85FF9C94}.All|x64.ActiveCfg = Release|Win32
{1CED5987-A529-46DC-B30F-870D85FF9C94}.All|x64.Build.0 = Release|Win32
{1CED5987-A529-46DC-B30F-870D85FF9C94}.All|x64 Setup.ActiveCfg = Release|x64
{1CED5987-A529-46DC-B30F-870D85FF9C94}.All|x64 Setup.Build.0 = Release|x64
{1CED5987-A529-46DC-B30F-870D85FF9C94}.All|x86 Setup.ActiveCfg = Release|x64
{1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|Win32.ActiveCfg = Debug|Win32
{1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|Win32.Build.0 = Debug|Win32
{1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|x64.ActiveCfg = Debug|x64
{1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|x64.Build.0 = Debug|x64
{1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|x64.ActiveCfg = Debug|Win32
{1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|x64.Build.0 = Debug|Win32
{1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|x64 Setup.ActiveCfg = Debug|x64
{1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|x86 Setup.ActiveCfg = Debug|Win32
{1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|Win32.ActiveCfg = Release|Win32
{1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|Win32.Build.0 = Release|Win32
{1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|x64.ActiveCfg = Release|x64
{1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|x64.Build.0 = Release|x64
{1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|x64.ActiveCfg = Release|Win32
{1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|x64.Build.0 = Release|Win32
{1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|x64 Setup.ActiveCfg = Release|x64
{1CED5987-A529-46DC-B30F-870D85FF9C94}.Release|x86 Setup.ActiveCfg = Release|Win32
{F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.All|Win32.ActiveCfg = Release|x64

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,515 @@
<language>
<zh_CN>
<ascii>
<prompt phrase="空格" filename="32.wav"/>
<prompt phrase="井" filename="35.wav"/>
<prompt phrase="星" filename="42.wav"/>
<prompt phrase="点" filename="46.wav"/>
<prompt phrase="杠" filename="45.wav"/>
<prompt phrase="叹号" filename="33.wav"/>
<prompt phrase="At" filename="64.wav"/>
<prompt phrase="Dollar" filename="36.wav"/>
<prompt phrase="百分号" filename="37.wav"/>
<prompt phrase="And号" filename="38.wav"/>
<prompt phrase="双引号" filename="34.wav"/>
<prompt phrase="单引号" filename="39.wav"/>
<prompt phrase="斜杠" filename="47.wav"/>
<prompt phrase="下划线" filename="95.wav"/>
<prompt phrase="反斜杠" filename="92.wav"/>
<prompt phrase="波浪线" filename="126.wav"/>
<prompt phrase="等号" filename="61.wav"/>
<prompt phrase="冒号" filename="58.wav"/>
<prompt phrase="分号" filename="59.wav"/>
<prompt phrase="脱字符" filename="94.wav"/>
<prompt phrase="竖线" filename="124.wav"/>
<prompt phrase="A" filename="97.wav"/>
<prompt phrase="B" filename="98.wav"/>
<prompt phrase="C" filename="99.wav"/>
<prompt phrase="D" filename="100.wav"/>
<prompt phrase="E" filename="101.wav"/>
<prompt phrase="F" filename="102.wav"/>
<prompt phrase="G" filename="103.wav"/>
<prompt phrase="H" filename="104.wav"/>
<prompt phrase="I" filename="105.wav"/>
<prompt phrase="J" filename="106.wav"/>
<prompt phrase="K" filename="107.wav"/>
<prompt phrase="L" filename="108.wav"/>
<prompt phrase="M" filename="109.wav"/>
<prompt phrase="N" filename="110.wav"/>
<prompt phrase="O" filename="111.wav"/>
<prompt phrase="P" filename="112.wav"/>
<prompt phrase="Q" filename="113.wav"/>
<prompt phrase="R" filename="114.wav"/>
<prompt phrase="S" filename="115.wav"/>
<prompt phrase="T" filename="116.wav"/>
<prompt phrase="U" filename="117.wav"/>
<prompt phrase="V" filename="118.wav"/>
<prompt phrase="W" filename="119.wav"/>
<prompt phrase="X" filename="120.wav"/>
<prompt phrase="Y" filename="121.wav"/>
<prompt phrase="Z" filename="122.wav"/>
</ascii>
<phonetic-ascii>
<prompt phrase="空格" filename="32.wav"/>
<prompt phrase="点" filename="46.wav"/>
<prompt phrase="Alpha" filename="97.wav"/>
<prompt phrase="Bravo" filename="98.wav"/>
<prompt phrase="Charlie" filename="99.wav"/>
<prompt phrase="Delta" filename="100.wav"/>
<prompt phrase="Echo" filename="101.wav"/>
<prompt phrase="Foxtrot" filename="102.wav"/>
<prompt phrase="Golf" filename="103.wav"/>
<prompt phrase="Hotel" filename="104.wav"/>
<prompt phrase="India" filename="105.wav"/>
<prompt phrase="Juliet" filename="106.wav"/>
<prompt phrase="Kilo" filename="107.wav"/>
<prompt phrase="Lima" filename="108.wav"/>
<prompt phrase="Mike" filename="109.wav"/>
<prompt phrase="November" filename="110.wav"/>
<prompt phrase="Oscar" filename="111.wav"/>
<prompt phrase="Papa" filename="112.wav"/>
<prompt phrase="Quebec" filename="113.wav"/>
<prompt phrase="Romeo" filename="114.wav"/>
<prompt phrase="Sierra" filename="115.wav"/>
<prompt phrase="Tango" filename="116.wav"/>
<prompt phrase="Uniform" filename="117.wav"/>
<prompt phrase="Victor" filename="118.wav"/>
<prompt phrase="Whiskey" filename="119.wav"/>
<prompt phrase="Xray" filename="120.wav"/>
<prompt phrase="Yankee" filename="121.wav"/>
<prompt phrase="Zulu" filename="122.wav"/>
</phonetic-ascii>
<digits>
<prompt phrase="零" filename="0.wav"/>
<prompt phrase="一" filename="1.wav"/>
<prompt phrase="二" filename="2.wav"/>
<prompt phrase="三" filename="3.wav"/>
<prompt phrase="四" filename="4.wav"/>
<prompt phrase="五" filename="5.wav"/>
<prompt phrase="六" filename="6.wav"/>
<prompt phrase="七" filename="7.wav"/>
<prompt phrase="八" filename="8.wav"/>
<prompt phrase="九" filename="9.wav"/>
<prompt phrase="十" filename="10.wav"/>
<prompt phrase="十一" filename="11.wav"/>
<prompt phrase="十二" filename="12.wav"/>
<prompt phrase="十三" filename="13.wav"/>
<prompt phrase="十四" filename="14.wav"/>
<prompt phrase="十五" filename="15.wav"/>
<prompt phrase="十六" filename="16.wav"/>
<prompt phrase="十七" filename="17.wav"/>
<prompt phrase="十八" filename="18.wav"/>
<prompt phrase="十九" filename="19.wav"/>
<prompt phrase="二十" filename="20.wav"/>
<prompt phrase="三十" filename="30.wav"/>
<prompt phrase="四十" filename="40.wav"/>
<prompt phrase="五十" filename="50.wav"/>
<prompt phrase="六十" filename="60.wav"/>
<prompt phrase="七十" filename="70.wav"/>
<prompt phrase="八十" filename="80.wav"/>
<prompt phrase="九十" filename="90.wav"/>
<prompt phrase="点" filename="dot.wav"/>
<prompt phrase="第一" filename="h-1.wav"/>
<prompt phrase="第二" filename="h-2.wav"/>
<prompt phrase="第三" filename="h-3.wav"/>
<prompt phrase="第四" filename="h-4.wav"/>
<prompt phrase="第五" filename="h-5.wav"/>
<prompt phrase="第六" filename="h-6.wav"/>
<prompt phrase="第七" filename="h-7.wav"/>
<prompt phrase="第八" filename="h-8.wav"/>
<prompt phrase="第九" filename="h-9.wav"/>
<prompt phrase="第十" filename="h-10.wav"/>
<prompt phrase="第十一" filename="h-11.wav"/>
<prompt phrase="第十二" filename="h-12.wav"/>
<prompt phrase="第十三" filename="h-13.wav"/>
<prompt phrase="第十四" filename="h-14.wav"/>
<prompt phrase="第十五" filename="h-15.wav"/>
<prompt phrase="第十六" filename="h-16.wav"/>
<prompt phrase="第十七" filename="h-17.wav"/>
<prompt phrase="第十八" filename="h-18.wav"/>
<prompt phrase="第十九" filename="h-19.wav"/>
<prompt phrase="第二十" filename="h-20.wav"/>
<prompt phrase="第三十" filename="h-30.wav"/>
<prompt phrase="百" filename="hundred.wav"/>
<prompt phrase="百万" filename="million.wav"/>
<prompt phrase="点" filename="period.wav"/>
<prompt phrase="点" filename="point.wav"/>
<prompt phrase="井" filename="pound.wav"/>
<prompt phrase="星" filename="star.wav"/>
<prompt phrase="千" filename="thousand.wav"/>
</digits>
<currency>
<prompt phrase="And" filename="and.wav"/>
<prompt phrase="分" filename="cent.wav"/>
<prompt phrase="Central" filename="central.wav"/>
<prompt phrase="分每分钟" filename="cents-per-minute.wav"/>
<prompt phrase="分" filename="cents.wav"/>
<prompt phrase="元" filename="dollar.wav"/>
<prompt phrase="元" filename="dollars.wav"/>
<prompt phrase="负" filename="minus.wav"/>
<prompt phrase="负" filename="negative.wav"/>
<prompt phrase="元" filename="yuan.wav"/>
<prompt phrase="角" filename="jiao.wav"/>
<prompt phrase="分" filename="fen.wav"/>
<prompt phrase="厘" filename="li.wav"/>
</currency>
<time>
<prompt phrase="上午" filename="a-m.wav"/>
<prompt phrase="在" filename="at.wav"/>
<prompt phrase="星期日" filename="day-0.wav"/>
<prompt phrase="星期一" filename="day-1.wav"/>
<prompt phrase="星期二" filename="day-2.wav"/>
<prompt phrase="星期三" filename="day-3.wav"/>
<prompt phrase="星期四" filename="day-4.wav"/>
<prompt phrase="星期五" filename="day-5.wav"/>
<prompt phrase="星期六" filename="day-6.wav"/>
<prompt phrase="时" filename="hour.wav"/>
<prompt phrase="小时" filename="hours.wav"/>
<prompt phrase="分" filename="minute.wav"/>
<prompt phrase="分" filename="minutes.wav"/>
<prompt phrase="一月" filename="mon-0.wav"/>
<prompt phrase="二月" filename="mon-1.wav"/>
<prompt phrase="三月" filename="mon-2.wav"/>
<prompt phrase="四月" filename="mon-3.wav"/>
<prompt phrase="五月" filename="mon-4.wav"/>
<prompt phrase="六月" filename="mon-5.wav"/>
<prompt phrase="七月" filename="mon-6.wav"/>
<prompt phrase="八月" filename="mon-7.wav"/>
<prompt phrase="九月" filename="mon-8.wav"/>
<prompt phrase="十月" filename="mon-9.wav"/>
<prompt phrase="十一月" filename="mon-10.wav"/>
<prompt phrase="十二月" filename="mon-11.wav"/>
<prompt phrase="点" filename="oclock.wav"/>
<prompt phrase="oh" filename="oh.wav"/>
<prompt phrase="下午" filename="p-m.wav"/>
<prompt phrase="秒" filename="second.wav"/>
<prompt phrase="秒" filename="seconds.wav"/>
<prompt phrase="今天" filename="today.wav"/>
<prompt phrase="明天" filename="tomorrow.wav"/>
<prompt phrase="昨天" filename="yesterday.wav"/>
</time>
<voicemail>
<prompt phrase="分机" filename="vm-person.wav"/>
<prompt phrase="设置紧急" filename="vm-marked-urgent.wav"/>
<prompt phrase="已发送邮件" filename="vm-emailed.wav"/>
<prompt phrase="您有" filename="vm-you_have.wav"/>
<prompt phrase="请输入您的ID然后按" filename="vm-enter_id.wav"/>
<prompt phrase="请输入您的密码,然后按" filename="vm-enter_pass.wav"/>
<prompt phrase="登录错误" filename="vm-fail_auth.wav"/>
<prompt phrase="欢迎进入您的语音邮箱" filename="vm-hello.wav"/>
<prompt phrase="再见" filename="vm-goodbye.wav"/>
<prompt phrase="请在滴声后录下您的名字,按任意键结束录音" filename="vm-record_name1.wav"/>
<prompt phrase="选择欢迎声音请按1到9选择" filename="vm-choose_greeting_choose.wav"/>
<prompt phrase="选择错误" filename="vm-choose_greeting_fail.wav"/>
<prompt phrase="失败次数过多" filename="vm-abort.wav"/>
<prompt phrase="修改密码" filename="vm-change_password.wav"/>
<prompt phrase="请在滴声后开始欢迎音录音,按任意键或停止说话结束录音" filename="vm-record_greeting.wav"/>
<prompt phrase="请在滴声后开始录音,按任意键或停止说话结束录音" filename="vm-record_message.wav"/>
<prompt phrase="不可达" filename="vm-play_greeting.wav"/>
<prompt phrase="新紧急" filename="vm-urgent-new.wav"/>
<prompt phrase="新" filename="vm-new.wav"/>
<prompt phrase="紧急留言已保存" filename="vm-urgent-saved.wav"/>
<prompt phrase="已保存" filename="vm-saved.wav"/>
<prompt phrase="信息" filename="vm-message.wav"/>
<prompt phrase="信息" filename="vm-messages.wav"/>
<prompt phrase="按" filename="vm-press.wav"/>
<prompt phrase="听取新留言" filename="vm-listen_new.wav"/>
<prompt phrase="听取已保存的留言" filename="vm-listen_saved.wav"/>
<prompt phrase="高级选项" filename="vm-advanced.wav"/>
<prompt phrase="转发留言" filename="vm-to_forward.wav"/>
<prompt phrase="退出" filename="vm-to_exit.wav"/>
<prompt phrase="录制欢迎音" filename="vm-record_greeting.wav"/>
<prompt phrase="选择一个欢迎音" filename="vm-choose_greeting.wav"/>
<prompt phrase="录制您的名字" filename="vm-record_name2.wav"/>
<prompt phrase="主菜单" filename="vm-main_menu.wav"/>
<prompt phrase="收听录音" filename="vm-listen_to_recording.wav"/>
<prompt phrase="保存录音" filename="vm-save_recording.wav"/>
<prompt phrase="重新录音" filename="vm-rerecord.wav"/>
<prompt phrase="将该留言设置为紧急" filename="vm-mark-urgent.wav"/>
<prompt phrase="继续" filename="vm-continue.wav"/>
<prompt phrase="重听" filename="vm-listen_to_recording_again.wav"/>
<prompt phrase="删除录音" filename="vm-delete_recording.wav"/>
<prompt phrase="将录音转发到您的电子邮箱" filename="vm-forward_to_email.wav"/>
<prompt phrase="欢迎" filename="vm-greeting.wav"/>
<prompt phrase="已选择" filename="vm-selected.wav"/>
<prompt phrase="不存在" filename="vm-not_available.wav"/>
<prompt phrase="留言号码" filename="vm-message_number.wav"/>
<prompt phrase="已删除" filename="vm-deleted.wav"/>
<prompt phrase="留言时间太短,请重试" filename="vm-too-small.wav"/>
<prompt phrase="收件箱" filename="vm-in_folder.wav"/>
<prompt phrase="返回通话" filename="vm-return_call.wav"/>
<prompt phrase="紧急" filename="vm-urgent.wav"/>
<prompt phrase="留言信箱已满,请稍后再试" filename="vm-mailbox_full.wav"/>
<prompt phrase="欢迎进入您的新语音信息。收听设置语音信箱的帮助信息请按1跳过请按2" filename="vm-tutorial_yes_no.wav"/>
<prompt phrase="我们需要录制您的姓名,该姓名会用于整个系统,包括公司电话号码簿" filename="vm-tutorial_record_name.wav"/>
<prompt phrase="您的密码用于保护您的语音邮箱,您想要现在修改密码吗?" filename="vm-tutorial_change_pin.wav"/>
<prompt phrase="您所拨号的用户不可达,他也没有语音邮箱" filename="vm-not_available_no_voicemail.wav"/>
<prompt phrase="您输入的密码长度不够" filename="voicemail/vm-pin_below_minimum_length.wav"/>
<prompt phrase="最小的密码长度是..." filename="voicemail/vm-minimum_pin_length_is.wav"/>
</voicemail>
<directory>
<prompt phrase="请输入姓名拼音的前几位字母" filename="dir-enter_person.wav"/>
<prompt phrase="...姓..." filename="dir-last_name.wav"/>
<prompt phrase="搜索..." filename="dir-to_search_by.wav"/>
<prompt phrase="...名字..." filename="dir-first_name.wav"/>
<prompt phrase="没找到相应的结果" filename="dir-no_matching_results.wav"/>
<prompt phrase="...条相应的结果" filename="dir-result_match.wav"/>
<prompt phrase="搜到太多对应的结果" filename="dir-too_many_result.wav"/>
<prompt phrase="没有了" filename="dir-no_more_results.wav"/>
<prompt phrase="号码是..." filename="dir-result_number.wav"/>
<prompt phrase="...分机号..." filename="dir-at_extension.wav"/>
<prompt phrase="选择该条..." filename="dir-to_select_entry.wav"/>
<prompt phrase="选择下一条..." filename="dir-for_next.wav"/>
<prompt phrase="选择上一条..." filename="dir-for_prev.wav"/>
<prompt phrase="重新搜索..." filename="dir-start_new_search.wav"/>
<prompt phrase="请输入最小的..." filename="dir-specify_mininum.wav"/>
<prompt phrase="...人名的字符" filename="dir-letters_of_person_name.wav"/>
<prompt phrase="请重试" filename="dir-please_try_again.wav"/>
<prompt phrase="请按..." filename="dir-press.wav" info="we can copy vm/vm-press.wav"/>
<prompt phrase="到下一条..." filename="dir-for_next.wav" note="re-recorded because original was wrong"/>
<prompt phrase="请输入您要查找的人姓名的开头几个字母" filename="dir-enter_person_first_or_last.wav"/>
</directory>
<conference>
<prompt phrase="NULL" filename="conf-ack.wav" type="tone"/>
<prompt phrase="NULL" filename="conf-nack.wav" type="tone"/>
<prompt phrase="静音" filename="conf-muted.wav"/>
<prompt phrase="解除静音" filename="conf-unmuted.wav"/>
<prompt phrase="目前该会议中只有您一个人" filename="conf-alone.wav"/>
<prompt phrase="NULL" filename="conf-perpetual.wav" type="music"/>
<prompt phrase="NULL" filename="conf-enter.wav" type="tone"/>
<prompt phrase="NULL" filename="conf-exit.wav" type="tone"/>
<prompt phrase="您已被踢出会议室" filename="conf-kicked.wav"/>
<prompt phrase="会议已锁定" filename="conf-locked.wav"/>
<prompt phrase="会议已锁定" filename="conf-is-locked.wav"/>
<prompt phrase="会议已解除锁定" filename="conf-is-unlocked.wav"/>
<prompt phrase="请输入会议密码" filename="conf-pin.wav"/>
<prompt phrase="密码错误,请重新输入" filename="conf-bad-pin.wav"/>
<prompt phrase="再见" filename="conf-goodbye.wav"/>
<prompt phrase="欢迎进入本会议" filename="conf-welcome.wav"/>
<prompt phrase="请输入会议号码,按#号结束" filename="conf-enter_conf_number.wav"/>
<prompt phrase="请输入会议密码,按#号结束" filename="conf-enter_conf_pin.wav"/>
<prompt phrase="...进入会议" filename="conf-has_joined.wav"/>
<prompt phrase="...离开会议" filename="conf-has_left.wav"/>
<prompt phrase="您已静音" filename="conf-you_are_already_muted.wav"/>
<prompt phrase="您已双向静音" filename="conf-you_are_now_bidirectionally_muted.wav"/>
<prompt phrase="输入与会者编号然后按#号键" filename="conf-number_of_listeners.wav"/>
<prompt phrase="...名听众参与本次会议" filename="conf-listeners_in_conference.wav"/>
<prompt phrase="...名听众参与本次会议" filename="conf-listener_in_conference.wav"/>
<prompt phrase="...名与会者参与本次会议" filename="conf-members_in_conference.wav"/>
<prompt phrase="本会议现在是 Q and A 模式" filename="conference/conf-conference_is_in_qna_mode.wav"/>
<prompt phrase="Q and A 模式..." filename="conference/conf-qna_mode.wav"/>
<prompt phrase="进入声音..." filename="conference/conf-entry_sound.wav"/>
<prompt phrase="退出声音..." filename="conference/conf-exit_sound.wav"/>
</conference>
<ivr>
<prompt phrase="账号" filename="ivr-account_number.wav"/>
<prompt phrase="连接到主叫" filename="ivr-connect_to_caller.wav"/>
<prompt phrase="如果您知道分机号码,请现在输入" filename="ivr-enter_ext_pound.wav"/>
<prompt phrase="请输入分机号,以#号结束" filename="ivr-enter_ext.wav"/>
<prompt phrase="该分机" filename="ivr-for_this_person.wav"/>
<prompt phrase="正在呼叫,请稍候..." filename="ivr-hold_connect_call.wav"/>
<prompt phrase="对不起" filename="ivr-im_sorry.wav"/>
<prompt phrase="请" filename="ivr-please.wav"/>
<prompt phrase="请在以下时间致电我们" filename="ivr-please_return_our_call_at.wav"/>
<prompt phrase="参考号码" filename="ivr-regarding_reference_number.wav"/>
<prompt phrase="这是一个IVR子菜单的例子..." filename="ivr-sample_submenu.wav"/>
<prompt phrase="请在滴声后说出您的姓名" filename="ivr-say_name.wav"/>
<prompt phrase="将该呼叫转移到语音邮箱" filename="ivr-send_to_voicemail.wav"/>
<prompt phrase="转接线员" filename="ivr-speak_to_a_customer_service_representative.wav"/>
<prompt phrase="选择一条信息" filename="ivr-take_a_message.wav"/>
<prompt phrase="谢谢" filename="ivr-thank_you.wav"/>
<prompt phrase="输入错误" filename="ivr-that_was_an_invalid_entry.wav"/>
<prompt phrase="有一个电话来自" filename="ivr-this_is_a_call_from.wav"/>
<prompt phrase="您可以通过本 IVR 测试一些功能..." filename="ivr-this_ivr_will_let_you_test_features.wav"/>
<prompt phrase="呼叫FreeSWITCH会议" filename="ivr-to_call_the_freeswitch_conference.wav"/>
<prompt phrase="进行回音测试" filename="ivr-to_do_a_freeswitch_echo_test.wav"/>
<prompt phrase="进行延迟回音测试" filename="ivr-to_do_a_fwd_echo_test.wav"/>
<prompt phrase="收听下级测试菜单" filename="ivr-to_hear_sample_submenu.wav"/>
<prompt phrase="收听疯狂的猴子" filename="ivr-to_hear_screaming_monkeys.wav"/>
<prompt phrase="收听保持音乐" filename="ivr-to_listen_to_moh.wav"/>
<prompt phrase="重听" filename="ivr-to_repeat_these_options.wav"/>
<prompt phrase="返回上一级菜单" filename="ivr-to_return_to_previous_menu.wav"/>
<prompt phrase="转接线员" filename="ivr-to_speak_with_an_operator.wav"/>
<prompt phrase="欢迎来到FreeSWITCH电话系统的未来" filename="ivr-welcome_to_freeswitch.wav"/>
<prompt phrase="您可以随时挂机" filename="ivr-you_may_exit_by_hanging_up.wav"/>
<prompt phrase="或" filename ="ivr-or.wav"/>
<prompt phrase="否" filename ="ivr-not.wav"/>
<prompt phrase="呼叫" filename ="ivr-call.wav"/>
<prompt phrase="您可以" filename ="ivr-you_may.wav"/>
<prompt phrase="您好" filename="ivr-hello.wav"/>
<prompt phrase="使用您电话上的按键..." filename="ivr-use_telephone_keypad.wav"/>
<prompt phrase="请说出您想要呼叫的人的名字" filename="ivr-spell_name.wav"/>
<prompt phrase="姓氏优先" filename="ivr-last_name_first.wav"/>
<prompt phrase="名字优先" filename="ivr-first_name_first.wav"/>
<prompt phrase="Q或Z请按1" filename="ivr-press_one_q_or_z.wav"/>
<prompt phrase="销售" filename="ivr-sales.wav"/>
<prompt phrase="客服" filename="ivr-customer_service.wav"/>
<prompt phrase="技术支持" filename="ivr-technical_support.wav"/>
<prompt phrase="接线员" filename="ivr-operator.wav"/>
<prompt phrase="您呼叫的分机不存在" filename="ivr-you_have_dialed_an_invalid_extension.wav"/>
<prompt phrase="请输入分机号,以#号键结束" filename="ivr-please_enter_extension_followed_by_pound.wav"/>
<prompt phrase="请输入密码,以#号键结束" filename="ivr-please_enter_pin_followed_by_pound.wav"/>
<prompt phrase="您的分机号的密码有误" filename="ivr-pin_or_extension_is-invalid.wav"/>
<prompt phrase="您将为您的账号预留该电话..." filename="ivr-you_are_about_to_provision_this_phone.wav"/>
<prompt phrase="请再输入一次密码" filename="ivr-please_reenter_your_pin.wav"/>
<prompt phrase="注册到 ClueCon请按..." filename="ivr-register_for_cluecon.wav"/>
<prompt phrase="登录" filename="ivr-to_log_in.wav"/>
<prompt phrase="退出" filename="ivr-to_log_out.wav"/>
<prompt phrase="您已登录" filename="ivr-you_are_now_logged_in.wav"/>
<prompt phrase="您已退出" filename="ivr-you_are_now_logged_out.wav"/>
<prompt phrase="请重试" filename="ivr-please_try_again.wav"/>
<prompt phrase="您将永久预留该电话到您的分机" filename="ivr-provision_phone_permanently_to_extension.wav"/>
<prompt phrase="预留该电话到分机,请输入分机号,以#号结束" filename="ivr-extension_to_provision_this_phone.wav"/>
<prompt phrase="谢谢,该电话将会重启动" filename="ivr-this_phone_will_now_reboot.wav"/>
<prompt phrase="谢谢,您的录音已保存" filename="ivr-recording_saved.wav"/>
<prompt phrase="保存录音请按1收听录音请按2重新录音请按 3" filename="ivr-save_review_record.wav"/>
<prompt phrase="现在不能保存录音,请稍后再试" filename="ivr-unable_save.wav"/>
<prompt phrase="您是第..." filename="ivr-you_are_number.wav"/>
<prompt phrase="...排队者" filename="ivr-in_line.wav"/>
<prompt phrase="感谢您耐心等待" filename="ivr-thank_you_for_holding.wav"/>
<prompt phrase="您大约需要的等待时间是..." filename="ivr-estimated_hold_time.wav"/>
<prompt phrase="多于..." filename="ivr-more_than.wav"/>
<prompt phrase="少于..." filename="ivr-less_than.wav"/>
<prompt phrase="开始录音" filename="ivr-begin_recording.wav "/>
<prompt phrase="呼叫前转已取消" filename="ivr-call_forwarding_has_been_cancelled.wav"/>
<prompt phrase="呼叫前转已设置" filename="ivr-call_forwarding_has_been_set.wav"/>
<prompt phrase="请输入电话号码" filename="ivr-please_enter_the_phone_number.wav"/>
<prompt phrase="请说出您的姓名和呼叫原因" filename="ivr-please_state_your_name_and_reason_for_calling.wav"/>
<prompt phrase="接受请按1拒绝请按2转语音邮箱请按3" filename="ivr-accept_reject_voicemail.wav"/>
<prompt phrase="来电" filename="ivr-incoming_call.wav"/>
<prompt phrase="感谢致电" filename="ivr-thank_you_for_calling.wav"/>
<prompt phrase="请稍候" filename="ivr-stay_on_line_call_answered_momentarily.wav"/>
<prompt phrase="电话转接中" filename="ivr-call_being_transferred.wav"/>
<prompt phrase="电话转接中,请稍候" filename="ivr-enjoy_music_while_transfer.wav"/>
<prompt phrase="电话来自..." filename="ivr-call_from.wav"/>
<prompt phrase="该菜单没有选项,请联系管理员" filename="ivr-no_menu_items.wav"/>
<prompt phrase="选择企业目录, 请按..." filename="ivr-for_directory_press.wav"/>
<prompt phrase="使用您的电话拨号盘..." filename="ivr-using_telephone_keypad.wav"/>
<prompt phrase="请输入姓氏的开头几个字母" filename="ivr-enter_letters_last_name.wav"/>
<prompt phrase="请输入名字的开头几个字母" filename="ivr-enter_letters_first_name.wav"/>
<prompt phrase="请输入姓名的开头几个字母" filename="ivr-enter_letters_first_or_last_name.wav"/>
<prompt phrase="正确请按..." filename="ivr-if_correct_press.wav"/>
<prompt phrase="错误请按..." filename="ivr-if_not_press.wav"/>
<prompt phrase="输入完毕请按#号键" filename="ivr-finished_pound_hash_key.wav"/>
<prompt phrase="免打扰未生效" filename="ivr-dnd_activated.wav"/>
<prompt phrase="免打扰已生效" filename="ivr-dnd_cancelled.wav"/>
<prompt phrase="请输入任意其它数字..." filename="ivr-any_other_digit.wav"/>
<prompt phrase="确认请按1否则请按2" filename="ivr-one_yes_two_no.wav"/>
<prompt phrase="请输入队列号码,以#号结束" filename="ivr-enter_queue_number.wav"/>
<prompt phrase="请输入..." filename="ivr-please_enter_the.wav"/>
<prompt phrase="号码." filename="ivr-number.wav"/>
<prompt phrase="...以#号结束" filename="ivr-followed_by_pound.wav"/>
<prompt phrase="账户余额为..." filename="ivr-account_balance_is.wav"/>
<prompt phrase="欢迎致电,请直拨分机号,查号请拨 0" filename="ivr-generic_greeting.wav"/>
<prompt phrase="正确认按1错误请按2" filename="ivr-if_correct_one_if_not_two.wav"/>
<prompt phrase="...文件..." filename="ivr-file.wav"/>
<prompt phrase="...文件..." filename="ivr-files-.wav"/>
<prompt phrase="叫醒服务..." filename="ivr-for_a_wakeup_call.wav"/>
<prompt phrase="这里是电话叫醒服务" filename="ivr-this_is_your_wakeup_call.wav"/>
<prompt phrase="设置电话叫醒服务..." filename="ivr-request_wakeup_call.wav"/>
<prompt phrase="确认电话叫醒服务..." filename="ivr-confirm_wakeup_call.wav"/>
<prompt phrase="取消电话叫醒服务..." filename="ivr-cancel_wakeup_call.wav"/>
<prompt phrase="您已设置电话叫醒服务.." filename="ivr-requested_wakeup_call_for.wav"/>
<prompt phrase="您未设置电话叫醒服务" filename="ivr-not_requested_wakeup_call.wav"/>
<prompt phrase="您的电话叫醒服务已取消" filename="ivr-wakeup_call_cancelled.wav"/>
<prompt phrase="每日叫醒电话..." filename="ivr-for_daily_wakeup_call.wav"/>
<prompt phrase="每日叫醒电话..." filename="ivr-daily_wakeup_call.wav"/>
<prompt phrase="每日叫醒电话..." filename="ivr-for_daily_wakeup_calls.wav"/>
<prompt phrase="一次性叫醒电话..." filename="ivr-for_one_time_wakeup_call.wav"/>
<prompt phrase="一次性叫醒电话..." filename="ivr-one_time_wakeup_call.wav"/>
<prompt phrase="...叫醒电话..." filename="ivr-wakeup_call.wav"/>
<prompt phrase="该起床了,太阳晒屁股了!" filename="ivr-wakey_wakey_sunshine.wav"/>
<prompt phrase="欢迎" filename="ivr-welcome.wav"/>
<prompt phrase="欢迎致电..." filename="ivr-welcome_to.wav"/>
<prompt phrase="早上好." filename="ivr-good_morning.wav"/>
<prompt phrase="中午好." filename="ivr-good_afternoon.wav"/>
<prompt phrase="晚上好." filename="ivr-good_evening.wav"/>
<prompt phrase="谢谢." filename="ivr-Thank_you.wav"/>
<prompt phrase="为..." filename="ivr-for.wav"/>
<prompt phrase="这次等待时间比往常长一点" filename="ivr-longer_than_usual_hold_times.wav"/>
<prompt phrase="您是..." filename="ivr-you_are_the.wav"/>
<prompt phrase="请稍候" filename="ivr-one_moment_please.wav"/>
<prompt phrase="您的电话会被按顺序接听" filename="ivr-call_answered_order_received.wav"/>
<prompt phrase="您输入的是..." filename="ivr-you_entered.wav"/>
<prompt phrase="分机号..." filename="ivr-extension_number.wav"/>
<prompt phrase="电话转接中,请稍候." filename="ivr-please_hold_while_party_contacted.wav"/>
<prompt phrase="电话转接中,请先欣赏音乐." filename="ivr-please_enjoy_music_while_party_reached.wav"/>
<prompt phrase="重听..." filename="ivr-repeat_this_information.wav"/>
<prompt phrase="不 不 不!" filename="ivr-no_no_no.wav"/>
<prompt phrase="您是说要按那个键吗?" filename="ivr-did_you_mean_to_press_key.wav"/>
<prompt phrase="我是认真的,你真的是说要按那个键吗?" filename="ivr-seriously_mean_to_press_key.wav"/>
<prompt phrase="好吧,随便" filename="ivr-oh_whatever.wav"/>
<prompt phrase="总算对了!如果你再输错小心我打你屁股" filename="ivr-one_more_mistake.wav"/>
<prompt phrase="恭喜,您按的是星号键,这并不表示您是一个明星。只是意味着你有一个手指头可以按键" filename="ivr-congratulations_you_pressed_star.wav"/>
<prompt phrase="所有工程师都在忙着帮助其它销售代表演示CudaTel有多酷" filename="ivr-engineers_busy_assisting_other_sales.wav"/>
<prompt phrase="该信息将会自已删除,倒计时 5, 4, 3, 2, 1 ..." filename="ivr-message_self_destruct.wav"/>
<prompt phrase="您所有的电话都属于我们." filename="ivr-all_your_call_are_belong_to_us.wav"/>
<prompt phrase="我就是喜欢你按电话按键的那股劲!" filename="ivr-love_those_touch_tones.wav"/>
<prompt phrase="是的,我们没有香蕉." filename="ivr-yes_we_have_no_bananas.wav"/>
<prompt phrase="哥们,你太恶心了!" filename="ivr-dude_you_suck.wav"/>
<prompt phrase="您的来电对我们很重要,但您的耐心却不是,所以,我们很高兴把您放到等待队列里,用我们烦人的保持音乐恶心你" filename="ivr-on_hold_indefinitely.wav"/>
<prompt phrase="...离开办公室了" filename="ivr-has_left_the_building.wav"/>
<prompt phrase="无此电话号码" filename="ivr-phone_is_unassigned.wav"/>
<prompt phrase="该电话设置有误" filename="ivr-phone_not_configured.wav"/>
<prompt phrase="恭喜! 电话配置已成功,现在可以分配给一个用户了" filename="ivr-phone_is_configured_properly.wav"/>
<prompt phrase="请联系系统管理员" filename="ivr-contact_system_administrator.wav"/>
<prompt phrase="Barracuda Networks" filename="ivr-barracuda_networks.wav"/>
<prompt phrase="CudaTel Communication Server" filename="ivr-cudatel_communication_server.wav"/>
<prompt phrase="该队列没有电话了" filename="ivr-no_calls_waiting_in_queue.wav"/>
<prompt phrase="您是第一个呼叫者,当然,在我们的字典里每个人都是第一个,所以,请稍等一会儿..." filename="ivr-youre_number_one.wav"/>
<prompt phrase="...呼叫了紧急服务" filename="ivr-has_called_emergency_services.wav"/>
<prompt phrase="那里有..." filename="ivr-there_are.wav"/>
<prompt phrase="请输入主叫电话号码,以#号结束." filename="ivr-enter_source_telephone_number.wav"/>
<prompt phrase="请输入被叫电话号码,以#号结束." filename="ivr-enter_destination_telephone_number.wav"/>
<prompt phrase="录音开始" filename="ivr-recording_started.wav"/>
<prompt phrase="录音结束" filename="ivr-recording_stopped.wav"/>
<prompt phrase="录音暂停" filename="ivr-recording_paused.wav"/>
<prompt phrase="录音删除" filename="ivr-recording_deleted.wav"/>
<prompt phrase="您不再在队列中" filename="ivr-no_longer_in_queue.wav"/>
<prompt phrase="...取款." filename="ivr-withdrawn.wav"/>
<prompt phrase="问题..." filename="ivr-question.wav"/>
<prompt phrase="...问题." filename="ivr-questions.wav"/>
<prompt phrase="...已应答" filename="ivr-has_been_answered.wav"/>
<prompt phrase="...已删除" filename="ivr-has_been_removed.wav"/>
<prompt phrase="队列中已没有问题了." filename="ivr-no_questions_in_queue.wav"/>
<prompt phrase="...已开启" filename="ivr/ivr_is_now_on.wav"/>
<prompt phrase="...已关闭" filename="ivr/ivr_is_now_off.wav"/>
<prompt phrase="该电话不允许呼叫外部号码" filename="ivr-phone_not_make_external_calls.wav"/>
<prompt phrase="身份证号..." filename="ivr-id_number.wav"/>
<prompt phrase="跳过该帮助信息..." filename="ivr-skip_instructions.wav"/>
<prompt phrase="不按任何键挂断该电话以放弃录音." filename="ivr-hangup_to_discard.wav"/>
<prompt phrase="...或按..." filename="ivr-or_press.wav"/>
<prompt phrase="英语,请按..." filename="ivr-for_english_press.wav"/>
<prompt phrase="您拨叫的号码是空号" filename="ivr-call_cannot_be_completed_as_dialed.wav"/>
<prompt phrase="请查证后再拨" filename="ivr-please_check_number_try_again.wav"/>
<prompt phrase="失败原因为..." filename="ivr-failure_reason_is.wav"/>
<prompt phrase="空号" filename="ivr-unallocated_number.wav"/>
<prompt phrase="无响应" filename="ivr-no_user_response.wav"/>
<prompt phrase="号码错误" filename="ivr-invalid_number_format.wav"/>
<prompt phrase="网关错误" filename="ivr-gateway_down.wav"/>
<prompt phrase="无法路由" filename="ivr-no_route_destination.wav"/>
<prompt phrase="用户忙" filename="ivr-user_busy.wav"/>
<prompt phrase="呼叫被拒绝" filename="ivr-call_rejected.wav"/>
<prompt phrase="未知错误" filename="ivr-normal_unspecified.wav"/>
<prompt phrase="目的地不兼容" filename="ivr-incompatible_destination.wav"/>
<prompt phrase="正常挂机" filename="ivr-normal_clearing.wav"/>
<prompt phrase="会议室已满,请联系管理员" filename="conf-conference_is_full.wav"/>
<prompt phrase="操作受限" filename="ivr-not_have_permission.wav"/>
</ivr>
<misc>
<prompt phrase="已进入安全通信" filename="call_secured.wav"/>
<prompt phrase="然后按#号" filename="followed.wav"/>
<prompt phrase="如果您是这个人" filename="if_you_are_this_person.wav"/>
<prompt phrase="如果您愿意" filename="if_you_would_like_to.wav"/>
<prompt phrase="提供参考号码" filename="provide_reference_number.wav"/>
<prompt phrase="请输入您想要转移到的分机号" filename="transfer1.wav"/>
<prompt phrase="转移" filename="transfer2.wav"/>
<prompt phrase="我们正在尝试呼叫" filename="we_are_trying_to_reach.wav"/>
<prompt phrase="有错误发生,请联系管理员" filename="error.wav"/>
<prompt phrase="您的电话将会在以下时间内挂断..." filename="misc-your_call_will_be_terminated_in.wav"/>
<prompt phrase="您的电话已挂断" filename="misc-your_call_has_been_terminated.wav"/>
</misc>
</zh_CN>
</language>
<!-- Based on phrase_en.xml at Sep 15 2011 -->

View File

@ -39,9 +39,9 @@
<PropertyGroup>
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(PlatformName)\OPENSSL\$(Configuration)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(PlatformName)\OPENSSL\$(Configuration)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<BuildLog>
@ -51,11 +51,11 @@
<ItemGroup>
<CustomBuild Include="OPENSSL\cleancount">
<FileType>Document</FileType>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Downloading OPENSSL.</Message>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Downloading OPENSSL</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">if not exist "$(ProjectDir)..\openssl-1.0.0a" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://openssl.org/source/openssl-1.0.0a.tar.gz "$(ProjectDir).."
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)..\OPENSSL;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Downloading OPENSSL.</Message>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Downloading OPENSSL</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">if not exist "$(ProjectDir)..\openssl-1.0.0a" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://openssl.org/source/openssl-1.0.0a.tar.gz "$(ProjectDir).."
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)..\OPENSSL;%(Outputs)</Outputs>

View File

@ -41,9 +41,9 @@
<PropertyGroup>
<_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(PlatformName)\OPENSSL\$(Configuration)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)$(Configuration)\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(Configuration)\</IntDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(PlatformName)\OPENSSL\$(Configuration)\</IntDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<BuildLog>
@ -53,11 +53,11 @@
<ItemGroup>
<CustomBuild Include="OPENSSL\cleancount">
<FileType>Document</FileType>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Downloading OPENSSL.</Message>
<Message Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Downloading OPENSSL</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">if not exist "$(ProjectDir)..\openssl-1.0.0a" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://openssl.org/source/openssl-1.0.0a.tar.gz "$(ProjectDir).."
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)..\OPENSSL;%(Outputs)</Outputs>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Downloading OPENSSL.</Message>
<Message Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Downloading OPENSSL</Message>
<Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">if not exist "$(ProjectDir)..\openssl-1.0.0a" cscript /nologo "$(ProjectDir)util.vbs" GetUnzip http://openssl.org/source/openssl-1.0.0a.tar.gz "$(ProjectDir).."
</Command>
<Outputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)..\OPENSSL;%(Outputs)</Outputs>

View File

@ -47,7 +47,7 @@ If objArgs.Count >=3 Then
WgetUnCompress objArgs(1), Showpath(objArgs(2))
Case "GetUnzipSounds"
WgetSounds objArgs(1), objArgs(2), Showpath(objArgs(3)), objArgs(4)
Case "Version"
Case "Version"
'CreateVersion(tmpFolder, VersionDir, includebase, includedest)
CreateVersion Showpath(objArgs(1)), Showpath(objArgs(2)), objArgs(3), objArgs(4)
End Select
@ -59,28 +59,28 @@ End If
' *******************
Sub WgetSounds(PrimaryName, Freq, DestFolder, VersionFile)
BaseURL = "http://files.freeswitch.org/freeswitch-sounds"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile(VersionFile,1)
Do Until objTextFile.AtEndOfStream
strLine = objTextFile.Readline
if Len(strLine) > 2 then
versionPos = InstrRev(strLine, " ", -1, 1)
name = Left(strLine, versionPos-1)
if name = PrimaryName Then
version = Right(strLine, Len(strLine) - versionPos)
Wscript.Echo "Sound name: " & name & " Version " & version
URL = BaseURL & "-" & name & "-" & Freq &"-" & version & ".tar.gz"
Wscript.Echo "URL: " & URL
WgetUnCompress URL, Showpath(DestFolder)
End If
End if
Loop
BaseURL = "http://files.freeswitch.org/freeswitch-sounds"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile(VersionFile,1)
Do Until objTextFile.AtEndOfStream
strLine = objTextFile.Readline
if Len(strLine) > 2 then
versionPos = InstrRev(strLine, " ", -1, 1)
name = Left(strLine, versionPos-1)
if name = PrimaryName Then
version = Right(strLine, Len(strLine) - versionPos)
Wscript.Echo "Sound name: " & name & " Version " & version
URL = BaseURL & "-" & name & "-" & Freq &"-" & version & ".tar.gz"
Wscript.Echo "URL: " & URL
WgetUnCompress URL, Showpath(DestFolder)
End If
End if
Loop
End Sub
Sub WgetUnCompress(URL, DestFolder)
If Right(DestFolder, 1) <> "\" Then DestFolder = DestFolder & "\" End If
StartPos = InstrRev(URL, "/", -1, 1)
StartPos = InstrRev(URL, "/", -1, 1)
strlength = Len(URL)
filename=Right(URL,strlength-StartPos)
NameEnd = InstrRev(filename, ".",-1, 1)
@ -91,7 +91,7 @@ Sub WgetUnCompress(URL, DestFolder)
If fileext = "zip" Then
UnCompress Destfolder & filename, DestFolder & filebase
Else
UnCompress Destfolder & filename, DestFolder
UnCompress Destfolder & filename, DestFolder
End If
End Sub
@ -121,14 +121,21 @@ End Sub
Sub GetWgetEXE(DestFolder)
Dim oExec
If Right(DestFolder, 1) <> "\" Then DestFolder = DestFolder & "\" End If
If Not FSO.FileExists(DestFolder & "wget.exe") Then
If Not FSO.FileExists(DestFolder & "wget.exe") Then
Slow_Wget ToolsBase & "wget.exe", DestFolder
End If
End If
End Sub
Function Strip(Str)
Set oRE = New Regexp
oRE.Pattern = "[\W_]"
oRE.Global = True
Strip=oRE.Replace(Str, "")
End Function
Sub UnCompress(Archive, DestFolder)
batname = "tmp" & CStr(Int(10000*Rnd)) & ".bat"
wscript.echo("Extracting: " & Archive)
batname = "tmp" & Strip(Archive) & CStr(Int(10000*Rnd)) & ".bat"
wscript.echo("Extracting: " & Archive & " - using: " & batname)
Set MyFile = fso.CreateTextFile(UtilsDir & batname, True)
MyFile.WriteLine("@" & quote & UtilsDir & "7za.exe" & quote & " x " & quote & Archive & quote & " -y -o" & quote & DestFolder & quote )
MyFile.Close
@ -136,77 +143,87 @@ Sub UnCompress(Archive, DestFolder)
Do
WScript.Echo OExec.StdOut.ReadLine()
Loop While Not OExec.StdOut.atEndOfStream
If FSO.FileExists(Left(Archive, Len(Archive)-3))Then
wscript.echo("Ready extracting: " & Archive)
Fn = Left(Archive, Len(Archive)-3)
If FSO.FileExists(Fn) Then
WScript.Sleep(100)
FSO.DeleteFile UtilsDir & batname, True
wscript.echo("Processing: " & Fn & " - deleting " & batname)
FSO.DeleteFile UtilsDir & batname, True
Set MyFile = fso.CreateTextFile(UtilsDir & batname, True)
MyFile.WriteLine("@" & quote & UtilsDir & "7za.exe" & quote & " x " & quote & Left(Archive, Len(Archive)-3) & quote & " -y -o" & quote & DestFolder & quote )
MyFile.WriteLine("@" & quote & UtilsDir & "7za.exe" & quote & " x " & quote & Fn & quote & " -y -o" & quote & DestFolder & quote )
MyFile.Close
Set oExec = WshShell.Exec(UtilsDir & batname)
Do
WScript.Echo OExec.StdOut.ReadLine()
Loop While Not OExec.StdOut.atEndOfStream
wscript.echo("Ready extracting: " & Fn)
WScript.Sleep(500)
FSO.DeleteFile Left(Archive, Len(Archive)-3) ,true
wscript.echo("Deleting: " & Fn)
FSO.DeleteFile Fn,true
End If
If FSO.FileExists(Left(Archive, Len(Archive)-3) & "tar")Then
Fn= Fn & tar
If FSO.FileExists(Fn) Then
WScript.Sleep(100)
FSO.DeleteFile UtilsDir & batname, True
wscript.echo("Processing: " & Fn & " - deleting " & batname)
FSO.DeleteFile UtilsDir & batname, True
Set MyFile = fso.CreateTextFile(UtilsDir & batname, True)
MyFile.WriteLine("@" & quote & UtilsDir & "7za.exe" & quote & " x " & quote & Left(Archive, Len(Archive)-3) & "tar" & quote & " -y -o" & quote & DestFolder & quote )
MyFile.WriteLine("@" & quote & UtilsDir & "7za.exe" & quote & " x " & quote & Fn & quote & " -y -o" & quote & DestFolder & quote )
MyFile.Close
Set oExec = WshShell.Exec(UtilsDir & batname)
Do
WScript.Echo OExec.StdOut.ReadLine()
Loop While Not OExec.StdOut.atEndOfStream
wscript.echo("Ready extracting: " & Fn )
WScript.Sleep(500)
FSO.DeleteFile Left(Archive, Len(Archive)-3) & "tar",true
wscript.echo("Deleting: " & Fn)
FSO.DeleteFile Fn,true
End If
WScript.Sleep(500)
If FSO.FileExists(UtilsDir & batname)Then
If FSO.FileExists(UtilsDir & batname)Then
FSO.DeleteFile UtilsDir & batname, True
End If
End Sub
Sub Wget(URL, DestFolder)
StartPos = InstrRev(URL, "/", -1, 1)
StartPos = InstrRev(URL, "/", -1, 1)
strlength = Len(URL)
filename=Right(URL,strlength-StartPos)
If Right(DestFolder, 1) <> "\" Then DestFolder = DestFolder & "\" End If
Wscript.echo("Downloading: " & URL)
If UseWgetEXE Then
batname = "tmp" & CStr(Int(10000*Rnd)) & ".bat"
Set MyFile = fso.CreateTextFile(UtilsDir & batname, True)
MyFile.WriteLine("@cd " & quote & DestFolder & quote)
MyFile.WriteLine("@" & quote & UtilsDir & "wget.exe" & quote & " " & URL)
MyFile.Close
Set oExec = WshShell.Exec(UtilsDir & batname)
Do
WScript.Echo OExec.StdOut.ReadLine()
Loop While Not OExec.StdOut.atEndOfStream
If UseWgetEXE Then
Wscript.echo("Downloading (wget): " & URL)
batname = "tmp" & CStr(Int(100000*Rnd)) & ".bat"
Set MyFile = fso.CreateTextFile(UtilsDir & batname, True)
MyFile.WriteLine("@cd " & quote & DestFolder & quote)
MyFile.WriteLine("@" & quote & UtilsDir & "wget.exe" & quote & " " & URL)
MyFile.Close
Set oExec = WshShell.Exec(UtilsDir & batname)
Do
WScript.Echo OExec.StdOut.ReadLine()
Loop While Not OExec.StdOut.atEndOfStream
Else
xml.Open "GET", URL, False
xml.Send
Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2
Const adSaveCreateNotExist = 1
Else
Wscript.echo("Downloading (HTTP GET): " & URL)
oStream.type = adTypeBinary
oStream.open
oStream.write xml.responseBody
oStream.savetofile DestFolder & filename, adSaveCreateOverWrite
oStream.close
End If
xml.Open "GET", URL, False
xml.Send
Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2
Const adSaveCreateNotExist = 1
oStream.type = adTypeBinary
oStream.open
oStream.write xml.responseBody
oStream.savetofile DestFolder & filename, adSaveCreateOverWrite
oStream.close
End If
End Sub
Sub Slow_Wget(URL, DestFolder)
StartPos = InstrRev(URL, "/", -1, 1)
StartPos = InstrRev(URL, "/", -1, 1)
strlength = Len(URL)
filename=Right(URL,strlength-StartPos)
If Right(DestFolder, 1) <> "\" Then DestFolder = DestFolder & "\" End If
@ -214,13 +231,13 @@ Sub Slow_Wget(URL, DestFolder)
Wscript.echo("Downloading: " & URL)
xml.Open "GET", URL, False
xml.Send
const ForReading = 1 , ForWriting = 2 , ForAppending = 8
Set MyFile = fso.OpenTextFile(DestFolder & filename ,ForWriting, True)
For i = 1 to lenb(xml.responseBody)
MyFile.write Chr(Ascb(midb(xml.responseBody,i,1)))
Next
MyFile.Close()
const ForReading = 1 , ForWriting = 2 , ForAppending = 8
Set MyFile = fso.OpenTextFile(DestFolder & filename ,ForWriting, True)
For i = 1 to lenb(xml.responseBody)
MyFile.write Chr(Ascb(midb(xml.responseBody,i,1)))
Next
MyFile.Close()
End Sub
@ -232,36 +249,36 @@ End Function
Function FindVersionStringInConfigure(strConfigFile, strVersionString)
Set objRegEx = CreateObject("VBScript.RegExp")
objRegEx.Pattern = "[^#]AC_SUBST\(" & strVersionString & ".*\[([^\[]*)\]"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strConfigFile, 1)
strSearchString = objFile.ReadAll
objFile.Close
Set objRegEx = CreateObject("VBScript.RegExp")
objRegEx.Pattern = "[^#]AC_SUBST\(" & strVersionString & ".*\[([^\[]*)\]"
Set colMatches = objRegEx.Execute(strSearchString)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(strConfigFile, 1)
strSearchString = objFile.ReadAll
objFile.Close
strResult = ""
If colMatches.Count > 0 Then
For Each strMatch in colMatches
strResult = objRegEx.Replace(strMatch.Value, "$1")
Next
End If
Set colMatches = objRegEx.Execute(strSearchString)
strResult = ""
If colMatches.Count > 0 Then
For Each strMatch in colMatches
strResult = objRegEx.Replace(strMatch.Value, "$1")
Next
End If
FindVersionStringInConfigure = strResult
End Function
Sub FindReplaceInFile(FileName, sFind, sReplace)
Const OpenAsASCII = 0 ' Opens the file as ASCII (TristateFalse)
Const OpenAsUnicode = -1 ' Opens the file as Unicode (TristateTrue)
Const OpenAsDefault = -2 ' Opens the file using the system default
Const OverwriteIfExist = -1
Const FailIfNotExist = 0
Const ForReading = 1
Const OpenAsASCII = 0 ' Opens the file as ASCII (TristateFalse)
Const OpenAsUnicode = -1 ' Opens the file as Unicode (TristateTrue)
Const OpenAsDefault = -2 ' Opens the file using the system default
Const OverwriteIfExist = -1
Const FailIfNotExist = 0
Const ForReading = 1
Set fOrgFile = FSO.OpenTextFile(FileName, ForReading, FailIfNotExist, OpenAsASCII)
sText = fOrgFile.ReadAll
fOrgFile.Close
@ -272,33 +289,32 @@ Sub FindReplaceInFile(FileName, sFind, sReplace)
End Sub
Function ExecAndGetResult(tmpFolder, VersionDir, execStr)
Set MyFile = FSO.CreateTextFile(tmpFolder & "tmpExec.Bat", True)
MyFile.WriteLine("@" & "cd " & quote & VersionDir & quote)
MyFile.WriteLine("@" & execStr)
MyFile.Close
Set oExec = WshShell.Exec("cmd /C " & quote & tmpFolder & "tmpExec.Bat" & quote)
ExecAndGetResult = Trim(OExec.StdOut.ReadLine())
Do
Loop While Not OExec.StdOut.atEndOfStream
FSO.DeleteFile(tmpFolder & "tmpExec.Bat")
End Function
Function ExecAndGetExitCode(tmpFolder, VersionDir, execStr)
Set MyFile = FSO.CreateTextFile(tmpFolder & "tmpExec.Bat", True)
MyFile.WriteLine("@" & "cd " & quote & VersionDir & quote)
MyFile.WriteLine("@" & execStr)
MyFile.WriteLine("@exit %ERRORLEVEL%")
MyFile.Close
ExecAndGetExitCode = WshShell.Run("cmd /C " & quote & tmpFolder & "tmpExec.Bat" & quote, 0, True)
FSO.DeleteFile(tmpFolder & "tmpExec.Bat")
End Function
@ -313,28 +329,28 @@ End Function
Function GetTimeUTC()
iOffset = WshShell.RegRead("HKLM\System\CurrentControlSet\Control\TimeZoneInformation\ActiveTimeBias")
If IsNumeric(iOffset) Then
GetTimeUTC = DateAdd("n", iOffset, Now())
Else
GetTimeUTC = Now()
End If
iOffset = WshShell.RegRead("HKLM\System\CurrentControlSet\Control\TimeZoneInformation\ActiveTimeBias")
If IsNumeric(iOffset) Then
GetTimeUTC = DateAdd("n", iOffset, Now())
Else
GetTimeUTC = Now()
End If
End Function
Sub CreateVersion(tmpFolder, VersionDir, includebase, includedest)
Dim oExec
strVerMajor = FindVersionStringInConfigure(VersionDir & "configure.in", "SWITCH_VERSION_MAJOR")
strVerMinor = FindVersionStringInConfigure(VersionDir & "configure.in", "SWITCH_VERSION_MINOR")
strVerMicro = FindVersionStringInConfigure(VersionDir & "configure.in", "SWITCH_VERSION_MICRO")
strVerRev = FindVersionStringInConfigure(VersionDir & "configure.in", "SWITCH_VERSION_REVISION")
strVerHuman = FindVersionStringInConfigure(VersionDir & "configure.in", "SWITCH_VERSION_REVISION_HUMAN")
'Set version to the one reported by configure.in
If strVerRev <> "" Then
VERSION = strVerRev
VERSION = strVerRev
End If
Dim sLastFile
@ -385,12 +401,12 @@ Sub CreateVersion(tmpFolder, VersionDir, includebase, includedest)
End If
sLastFile.Close
End If
If VERSION & " " & strVerHuman <> sLastVersion Then
Set MyFile = fso.CreateTextFile(tmpFolder & "lastversion", True)
MyFile.WriteLine(VERSION & " " & strVerHuman)
MyFile.Close
FSO.CopyFile includebase, includedest, true
FindReplaceInFile includedest, "@SWITCH_VERSION_REVISION@", VERSION
FindReplaceInFile includedest, "@SWITCH_VERSION_MAJOR@", strVerMajor
@ -398,5 +414,5 @@ Sub CreateVersion(tmpFolder, VersionDir, includebase, includedest)
FindReplaceInFile includedest, "@SWITCH_VERSION_MICRO@", strVerMicro
FindReplaceInFile includedest, "@SWITCH_VERSION_REVISION_HUMAN@", strVerHuman
End If
End Sub

View File

@ -6740,6 +6740,8 @@ void sofia_handle_sip_i_refer(nua_t *nua, sofia_profile_t *profile, nua_handle_t
switch_core_event_hook_add_state_change(a_session, xfer_hanguphook);
switch_channel_set_variable(a_channel, "att_xfer_kill_uuid", switch_core_session_get_uuid(b_session));
switch_channel_set_variable(a_channel, "att_xfer_destination_number", prof->destination_number);
switch_channel_set_variable(a_channel, "att_xfer_callee_id_name", prof->callee_id_name);
switch_channel_set_variable(a_channel, "att_xfer_callee_id_number", prof->callee_id_number);
if (profile->media_options & MEDIA_OPT_BYPASS_AFTER_ATT_XFER) {
switch_channel_set_flag(a_channel, CF_BYPASS_MEDIA_AFTER_BRIDGE);

View File

@ -3251,14 +3251,13 @@ void switch_core_sqldb_stop(void)
switch_event_unbind_callback(core_event_handler);
switch_core_sqldb_stop_thread();
if (sql_manager.db_thread && sql_manager.db_thread_running) {
sql_manager.db_thread_running = -1;
switch_thread_join(&st, sql_manager.db_thread);
}
switch_core_sqldb_stop_thread();
switch_cache_db_flush_handles();
sql_close(0);
}

View File

@ -0,0 +1,98 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Platform specific variables -->
<?if $(var.Platform) = x64 ?>
<?define Win64 = "yes" ?>
<?define ProductName = "FreeSWITCH (64 bit)" ?>
<?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?>
<?else ?>
<?define Win64 = "no" ?>
<?define ProductName = "FreeSWITCH" ?>
<?define PlatformProgramFilesFolder = "ProgramFilesFolder" ?>
<?endif ?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="b004a325-1272-47e5-a415-a74e9fc99865" Name="$(var.ProductName)" Language="1033" Version="1.0.0.0" Manufacturer="FreeSWITCH" UpgradeCode="3af7020b-1348-45e8-a0cf-80909d4eb421">
<Package InstallerVersion="405" Compressed="yes" />
<Media Id="1" Cabinet="media1.cab" EmbedCab="yes" />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="$(var.PlatformProgramFilesFolder)">
<Directory Id="INSTALLLOCATION" Name="FreeSWITCH">
<Directory Id="MODLOCATION" Name="mod">
</Directory>
<Directory Id="CONFLOCATION" Name="conf">
</Directory>
<Directory Id="SOUNDLOCATION" Name="sounds">
</Directory>
<!-- TODO: Remove the comments around this Component element and the ComponentRef below in order to add resources to this installer. -->
<!-- <Component Id="ProductComponent" Guid="6f1498a7-d029-430b-b9d9-fe12e17bdbab"> -->
<!-- TODO: Insert files, registry keys, and other resources here. -->
<!-- </Component> -->
<?if $(var.Platform) != x64 ?>
<Merge Id="CrtFiles_x86"
SourceFile="$(env.CommonProgramFiles)\Merge Modules\Microsoft_VC110_CRT_x86.msm"
DiskId="1"
Language="1033"/>
<?endif ?>
<?if $(var.Platform) = x64 ?>
<Merge Id="CrtFiles_x64"
SourceFile="$(env.CommonProgramFiles)\Merge Modules\Microsoft_VC110_CRT_x64.msm"
DiskId="1"
Language="1033"/>
<?endif ?>
</Directory>
</Directory>
<Directory Id="ProgramMenuFolder">
<Directory Id="ApplicationProgramsFolder" Name="FreeSWITCH"/>
</Directory>
</Directory>
<DirectoryRef Id="ApplicationProgramsFolder">
<Component Id="ApplicationShortcut" Guid="B554D1D1-C8C6-4d46-A3E7-4BA836EF929B">
<Shortcut Id="ApplicationStartMenuShortcut"
Name="FreeSWITCH"
Description="FreeSWITCH Telephony SoftSwitch"
Target="[INSTALLLOCATION]FreeSwitchConsole.exe"
WorkingDirectory="INSTALLLOCATION"/>
<RemoveFolder Id="ApplicationProgramsFolder" On="uninstall"/>
<RegistryValue Root="HKCU" Key="Software\FreeSWITCH\FreeSWITCH" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
</Component>
<Component Id="FSCliShortcut" Guid="D209546C-C728-4d8f-BDB2-29AED8824282">
<Shortcut Id="FSCliStartMenuShortcut"
Name="FS_Cli"
Description="FreeSWITCH Command Line Interface"
Target="[INSTALLLOCATION]fs_cli.exe"
WorkingDirectory="INSTALLLOCATION"/>
<RegistryValue Root="HKCU" Key="Software\FreeSWITCH\FS_CLI" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
</Component>
</DirectoryRef>
<Feature Id="ProductFeature" Title="FreeSWITCH Core" Level="1">
<!-- TODO: Remove the comments around this ComponentRef element and the Component above in order to add resources to this installer. -->
<!-- <ComponentRef Id="ProductComponent" /> -->
<!-- The following Ref pulls in FreeSWITCHconsole.wxs items -->
<ComponentRef Id="cmpBEF12B96A80D45AC32F3B692E94A57C9"/>
<!-- Note: The following ComponentGroupRef is required to pull in generated authoring from project references. -->
<ComponentGroupRef Id="FreeSWITCHBaseFiles" />
<?if $(var.Platform) != x64 ?>
<MergeRef Id="CrtFiles_x86"/>
<?endif ?>
<?if $(var.Platform) = x64 ?>
<MergeRef Id="CrtFiles_x64"/>
<?endif ?>
</Feature>
<Feature Id="ProductFeatureFreeSWITCH" Title="FreeSWITCH" Level="1">
<ComponentRef Id="ApplicationShortcut" />
</Feature>
<Feature Id="ProductFeatureFSCli" Title="FreeSWITCH Command Line Interface" Level="1">
<ComponentRef Id="FSCliShortcut" />
</Feature>
<Feature Id="ProductFeatureConf" Title="FreeSWITCH Configuration Sample" Level="1">
<ComponentGroupRef Id="FreeSWITCHConfFiles" />
</Feature>
<Feature Id="ProductFeatureSounds" Title="FreeSWITCH Sounds 8Khz" Level="1">
<ComponentGroupRef Id="FreeSWITCHSoundFiles8" />
</Feature>
<UIRef Id="WixUI_Mondo" />
</Product>
</Wix>

View File

@ -0,0 +1,76 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProductVersion>3.5</ProductVersion>
<ProjectGuid>{47213370-b933-487d-9f45-bca26d7e2b6f}</ProjectGuid>
<SchemaVersion>2.0</SchemaVersion>
<OutputName>FreeSWITCH</OutputName>
<OutputType>Package</OutputType>
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<OutputPath>bin\x86\Debug\</OutputPath>
<IntermediateOutputPath>obj\X86\$(Configuration)\</IntermediateOutputPath>
<DefineConstants>Debug;FreeSWITCHConfFilesDir=$(ProjectDir)..\..\conf\vanilla;FreeSWITCHSoundFilesDir=$(ProjectDir)..\..\Win32\debug\sounds;FreeSWITCHBaseDir=$(SolutionDir)$(Platform)\$(Configuration);</DefineConstants>
<WixVariables>
</WixVariables>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<OutputPath>bin\x86\release\</OutputPath>
<IntermediateOutputPath>obj\X86\$(Configuration)\</IntermediateOutputPath>
<DefineConstants>Debug;FreeSWITCHConfFilesDir=$(ProjectDir)..\..\conf\vanilla;FreeSWITCHSoundFilesDir=$(ProjectDir)..\..\Win32\release\sounds;FreeSWITCHBaseDir=$(SolutionDir)$(Platform)\$(Configuration);</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
<OutputPath>bin\x64\Debug\</OutputPath>
<IntermediateOutputPath>obj\X64\$(Configuration)\</IntermediateOutputPath>
<DefineConstants>Debug;FreeSWITCHConfFilesDir=$(ProjectDir)..\..\conf\vanilla;FreeSWITCHSoundFilesDir=$(ProjectDir)..\..\x64\debug\sounds;FreeSWITCHBaseDir=$(SolutionDir)$(Platform)\$(Configuration);</DefineConstants>
<WixVariables>
</WixVariables>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
<OutputPath>bin\x64\Release\</OutputPath>
<IntermediateOutputPath>obj\X64\$(Configuration)\</IntermediateOutputPath>
<DefineConstants>Debug;FreeSWITCHConfFilesDir=$(ProjectDir)..\..\conf\vanilla;FreeSWITCHSoundFilesDir=$(ProjectDir)..\..\x64\release\sounds;FreeSWITCHBaseDir=$(SolutionDir)$(Platform)\$(Configuration);</DefineConstants>
</PropertyGroup>
<ItemGroup>
<Compile Include="Fragments\FreeSWITCHConfFiles.wxs" />
<Compile Include="Fragments\FreeSWITCHSoundFiles8.wxs" />
<Compile Include="Fragments\FreeSWITCHBaseFiles.wxs" />
<Compile Include="FreeSWITCHConsole.wxs" />
<Compile Include="Product.2012.wxs" />
</ItemGroup>
<ItemGroup>
<WixExtension Include="WixUIExtension">
<HintPath>$(WixExtDir)\WixUIExtension.dll</HintPath>
<Name>WixUIExtension</Name>
</WixExtension>
</ItemGroup>
<ItemGroup>
<Folder Include="Fragments" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Console\FreeSwitchConsole.2012.vcxproj">
<Name>FreeSwitchConsole</Name>
<Project>{1af3a893-f7be-43dd-b697-8ab2397c0d67}</Project>
<Private>True</Private>
<DoNotHarvest>True</DoNotHarvest>
<RefProjectOutputGroups>Binaries;Content;Satellites</RefProjectOutputGroups>
<RefTargetDir>INSTALLFOLDER</RefTargetDir>
</ProjectReference>
</ItemGroup>
<Import Project="$(WixTargetsPath)" />
<PropertyGroup>
<PreBuildEvent>"$(WixToolPath)\heat.exe" dir "$(ProjectDir)..\..\conf\vanilla" -cg FreeSWITCHConfFiles -gg -scom -sreg -sfrag -srd -dr CONFLOCATION -var var.FreeSWITCHConfFilesDir -out "$(ProjectDir)Fragments\FreeSWITCHConfFiles.wxs"
"$(WixToolPath)\heat.exe" dir "$(SolutionDir)$(Platform)\$(Configuration)\sounds" -cg FreeSWITCHSoundFiles8 -gg -scom -sreg -sfrag -srd -dr SOUNDLOCATION -var var.FreeSWITCHSoundFilesDir -out "$(ProjectDir)Fragments\FreeSWITCHSoundFiles8.wxs"
"$(WixToolPath)\heat.exe" dir "$(SolutionDir)$(Platform)\$(Configuration)" -t $(ProjectDir)filter.xslt -cg FreeSWITCHBaseFiles -gg -scom -sreg -sfrag -srd -dr INSTALLLOCATION -var var.FreeSWITCHBaseDir -out "$(ProjectDir)Fragments\FreeSWITCHBaseFiles.wxs"</PreBuildEvent>
</PropertyGroup>
<!--
To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Wix.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

35
w32/Setup/filter.xslt Normal file
View File

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:wix="http://schemas.microsoft.com/wix/2006/wi">
<!-- <xsl:key name="unusedcomponent-search" match="wix:Component[not (contains(wix:File/@Source, '.dll')) or contains(wix:File/@Source, 'mod')]" use="@Id"/> -->
<xsl:key name="unusedcomponent-search" match="wix:Component[not (contains(wix:File/@Source, '.dll'))]" use="@Id"/>
<!-- strip all extraneous whitespace -->
<xsl:strip-space elements="*"/>
<!-- Copy all attributes and elements to the output. -->
<xsl:template match="@*|*">
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:apply-templates select="*" />
</xsl:copy>
</xsl:template>
<!-- Exclude all File elements that are not a .dll file -->
<xsl:template match="wix:Component[not(contains(wix:File/@Source,
'.dll'))]" />
<!-- Exclude Directory elements -->
<!--<xsl:template match="wix:Directory[not(contains(*/@Source, '.pdb'))]"/>-->
<xsl:template match="wix:Directory[@Name='conf']"/>
<xsl:template match="wix:Directory[@Name='sounds']"/>
<xsl:template match="wix:Directory[@Name='grammar']"/>
<!-- Remove ComponentRefs. -->
<xsl:template match="wix:ComponentRef[key('unusedcomponent-search', @Id)]"/>
</xsl:stylesheet>