吴伟贤のBlog

Feed Rss

asterisk dialplan 简单外呼例子

05.21.2013, asterisk dialplan 简单外呼例子已关闭评论, asterisk, by .

[incoming]
exten=>123,1,Answer() //接通
exten=>123,2,Read(beijiao,enter-ext-of-person,15,,,30) //输入被叫号码,最长15个数字,30秒后超时
exten=>123,3,Dial(SIP/${beijiao},30) //呼叫SIP网关
exten=>123,4,Playback(vm-nobodyavail) //提示输入无效的数字
exten=>123,5,Goto(123,1) //返回开始
exten=>123,104,Playback(tt-allbusy)//被叫忙提示
exten=>123,105,Goto(123,1)//返回开始
exten=>i,1,Playback(pbx-invalid)//输入错误号码提示
exten=>i,2,Wait(2)//等待2秒
exten=>i,3,Goto(123,1) //返回开始
exten=>t,1,Playback(vm-goodbye)//超时退出提示
exten=>t,2,Wait(1)
exten=>t,3,Handup() //挂机

asterisk read

05.21.2013, asterisk read已关闭评论, asterisk, by .

Asterisk 1.4及以上:
Read(variable[,filename][,maxdigits][,option][,attempts][,timeout])
        读取用户输入的一个以 #-结尾的数字字符串到指定的变量。 

  • variable: variable是存储用户按键的地方.
  • filename: 读取按键之前要播放的文件.
  • maxdigits: 接收按键的最大个数. 当收到maxdigits个按键后就停止读取按键 (不需要用户按键 ‘#’ ). 默认是 0 – 无限制 – 等待用户按 ‘#’ 键. 任何低于0的值表示0,最大值是255.
  • option:  ‘skip’表示如果线路没摘机就立即返回, ‘noanswer’ 表示线路没起来也读按键。
  • attempts: 如果大于1, 在没有用户按键的情况下会多次重复执行。
  • timeout: 超时时长(秒). 如果大于 0, 这个值就会覆盖默认的超时时长.

Read 在失败或报错的时候会断开。

Windows 2003两种自动登录的方法

05.20.2013, Windows 2003两种自动登录的方法已关闭评论, windows, by .

如何快速的进入Windows 2003操作系统呢?在本文中我们将介绍两种快速登陆Windows 2003操作系统的方法:
  一种方法比较简单,您只需单击“开始|运行”,并在输入框中键入“control userpasswords2”,这样就可以在“用户账户”管理窗口中清除“要使用本机,用户必须输入密码”复选项的选中状态,然后按下键盘的“Ctrl+Shift+A”,将会得到一个“自动登录”的设置对话框,您可以按自己的需要设置系统在电脑启动时自动登录使用的用户账户和密码。
  另一种方法比较复杂,但可以帮助您完全掌握Windows 2003自动登录的设置方法。
  首先单击“开始|运行”,在输入框中键入“regedit”打开注册表编辑器,然后在注册表编辑器左方控制台中依次单击展开“HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/Current Version/Winlogon”,再选择“编辑|添加|字符串值”,在数值名称中键入“AutoAdminLogon”,然后在窗口中的空白位置上点一下,再双击刚新建的字符串“AutoAdminLogon”,在弹出的“编辑字符串”对话框中输入“1”设置系统允许自动登录。再重复以上的操作,创建一个名为“DefaultUserName”的字符串值,编辑字符串为您准备用于自动登录的账户名称。
  再新创建一个名为“Defaultpassword”的字符串值,并编辑字符串为您准备用于自动登录的用户账户密码,编辑完并检查无误后,关闭注册表编辑器并重新启动电脑即可自动登录。注意,如果已有“DefaultUserName”,可以不必重新创建,直接更改原有字符串值。如果您的系统工作在局域网环境下,并且在登录到系统上时需要登录域服务器,那么您还需要再添加一个“DefaultDomainName”并编辑字符串为您登录的域名称。

access清空表数据,重置标识列0

05.18.2013, access清空表数据,重置标识列0已关闭评论, windows, by .

access 不支持 truncate table test

使用如下解决,两句

delete * from test

ALTER TABLE test ALTER COLUMN ID COUNTER (1,1)

alter table 表名 alter COLUMN 字段名 counter(1,1)
这句就是在清空表后,重建标识列,这里的参数1,1表示从1开始,每次加1

freeswitch 对接移动IMS

05.17.2013, freeswitch 对接移动IMS已关闭评论, freeswitch, by .

freeswitch 对接移动IMS来自群freeswitch-cn

QQ图片20130517102745

 

 

以下来自 http://www.8000hz.com/archives/freeswitch-ims-chinamobile.html

 

Freeswitch上配置SIP gateway

<include>
<gateway name="ims1">
            <param name="realm" value="ims.yn.chinamobile.com"/>
            <param name="username" value="+86xxxxxxxxxx@ims.yn.chinamobile.com"/>
            <param name="from-user" value="+86xxxxxxxxxx"/>
            <param name="from-domain" value="ims.yn.chinamobile.com"/>
            <param name="password" value="XXXXXX"/>
            <param name="register" value="true"/>
            <param name="outbound-proxy" value="XXX.XXX.XXX.XXX"/>
            <param name="register-proxy" value="XXX.XXX.XXX.XXX"/>
            <param name="expire-seconds" value="300"/>
</gateway>
</include>

示例为云南移动IMS

 

问题1: 没有彩铃
解答:在sip profile 中开启

<param name="enable-100rel" value="true"/>

问题2:无法二次拨号,DTMF不能用。
解答:拨号方案中添加

<action application="export" data="nolocal:execute_on_answer=start_dtmf"/>

INNO SETUP 5.5.3版本中文语言包

05.17.2013, INNO SETUP 5.5.3版本中文语言包已关闭评论, windows, by .

网上找的5.5.0的。加了几个。
保存为Chinese.isl 放在Languages里

; *** Inno Setup version 5.5.0+ Chinese messages ***
;
; To download user-contributed translations of this file, go to:
; http://www.jrsoftware.org/is3rdparty.php
;
; Note: When translating this text, do not add periods (.) to the end of
; messages that didn't have them already, because on those messages Inno
; Setup adds the periods automatically (appending a period would result in
; two periods being displayed).

[LangOptions]
; The following three entries are very important. Be sure to read and
; understand the ‘[LangOptions] section’ topic in the help file.
LanguageName=Chinese
LanguageID=$0409
LanguageCodePage=0
; If the language you are translating to requires special font faces or
; sizes, uncomment any of the following entries and change them accordingly.
;DialogFontName=
;DialogFontSize=8
;WelcomeFontName=Verdana
;WelcomeFontSize=12
;TitleFontName=Arial
;TitleFontSize=29
;CopyrightFontName=Arial
;CopyrightFontSize=8

[Messages]

; *** Application titles
SetupAppTitle=安装
SetupWindowTitle=安装 – %1
UninstallAppTitle=卸载
UninstallAppFullTitle=%1 卸载

; *** Misc. common
InformationTitle=安装信息
ConfirmTitle=提示
ErrorTitle=错误

; *** SetupLdr messages
SetupLdrStartupMessage=现在将安装 %1。是否继续?
LdrCannotCreateTemp=不能创建临时文件。安装中止!
LdrCannotExecTemp=不能在临时目录中解压文件,安装过程中止!

; *** Startup error messages
LastErrorMessage=%1.%n%n 错误 %2: %3
SetupFileMissing=在安装目录中找不到文件 %1 。请更正该问题或者获得一个新的文件。
SetupFileCorrupt=安装文件被占用。请获得一个新的安装文件。
SetupFileCorruptOrWrongVer=安装文件被占用, 或者安装文件的版本不对。请更正该问题或者获得一个新文件。
NotOnThisPlatform=该程序不能在 %1 下运行。
OnlyOnThisPlatform=该程序必须在 %1 下运行。
OnlyOnTheseArchitectures=该程序只能在以下WINDOWS版本下运行:%n%n%1
MissingWOW64APIs=该版本需要64位的安装程序。要更正该问题,请安装 Service Pack %1。
WinVersionTooLowError=该软件需要 %1 版本号 %2 或者更高。
WinVersionTooHighError=该软件不能在 %1 版本号 %2 或者更高版本中安装。
AdminPrivilegesRequired=您在安装该程序时必须是管理员权限。
PowerUserPrivilegesRequired=您在安装程序是必须是管理员权限或者高权限用户权限。
SetupAppRunningError=安装程序检测到 %1 正在运行。%n%n请关闭它的所有实例。然后单击“确认”继续安装,或者单击“取消”退出。UninstallAppRunningError=卸载程序检测到 %1 正在运行。%n%n请关闭它的所有实例。然后单击“确认”继续安装,或者单击“取消”退出。
UninstallAppRunningError=Uninstall has detected that %1 is currently running.%n%nPlease close all instances of it now, then click OK to continue, or Cancel to exit.
InvalidParameter=命令行中包含无效的参数:%n%n%1
SetupAlreadyRunning=安装程序已经运行.
WindowsVersionNotSupported=该程序不支持当前的Windows版本.
WindowsServicePackRequired=该程序要求 %1 Service Pack %2 或者更高版本.

; *** Misc. errors
ErrorCreatingDir=安装程序不能创建目录 “%1″
ErrorTooManyFilesInDir=不能在目录”%1” 下创建文件。因为该目录下有太多的文件了。

; *** Setup common messages
ExitSetupTitle=退出安装
ExitSetupMessage=安装还未完成。如果现在退出,程序将结束安装。%n%n您可以在下次继续安装。%n%n退出安装?
AboutSetupMenuItem=关于安装程序[&A]…
AboutSetupTitle=关于安装程序
AboutSetupMessage=%1 版本 %2%n%3%n%n%1 主页:%n%4
AboutSetupNote=
TranslatorNote=

; *** Buttons
ButtonBack=< 上一步[&B] ButtonNext=下一步[&N] >
ButtonInstall=安装[&I]
ButtonOK=确认
ButtonCancel=取消
ButtonYes=市[&Y]
ButtonYesToAll=全部确认[&A]
ButtonNo=否[&N]
ButtonNoToAll=全部否认[&o]
ButtonFinish=完成[&F]
ButtonBrowse=浏览[&B]…
ButtonWizardBrowse=浏览[&r]…
ButtonNewFolder=新建文件夹[&M]

; *** “Select Language” dialog messages
SelectLanguageTitle=选择安装语言种类
SelectLanguageLabel=选择该语言作为安装语言:

; *** Common wizard text
ClickNext=单击“下一步”继续,或者单击“取消”退出本安装程序。
BeveledLabel=
BrowseDialogTitle=浏览文件夹
BrowseDialogLabel=在下面的列表中选择一个目录, 然后单击“确认”继续。
NewFolderName=新文件夹

; *** “Welcome” wizard page
WelcomeLabel1=欢迎进入 [name] 安装向导
WelcomeLabel2=将在您的电脑上安装 [name/ver] 。%n%n建议在继续安装之前先退出其它运行的程序。

; *** “Password” wizard page
WizardPassword=密码
PasswordLabel1=本安装程序受密码保护。
PasswordLabel3=请输入密码,密码区分大小写。然后单击“下一步”继续。
PasswordEditLabel=密码[&P]:
IncorrectPassword=输入的密码不正确,请重新输入。

; *** “License Agreement” wizard page
WizardLicense=用户许可协议
LicenseLabel=请在继续之前仔细阅读用户许可协议。
LicenseLabel3=请仔细阅读下面的用户许可协议。在继续安装之前,您必须接受该协议。
LicenseAccepted=我接受协议[&a]。
LicenseNotAccepted=我不接受协议[&d]

; *** “Information” wizard pages
WizardInfoBefore=提示
InfoBeforeLabel=在继续安装之前请仔细阅读以下重要的信息。
InfoBeforeClickLabel=当您准备好继续安装时,单击“继续”。
WizardInfoAfter=信息
InfoAfterLabel=在继续安装之前请仔细阅读以下重要的信息。
InfoAfterClickLabel=当您准备好继续安装时,单击“继续”。

; *** “User Information” wizard page
WizardUserInfo=用户信息
UserInfoDesc=请输入您的信息。
UserInfoName=用户名[&U]:
UserInfoOrg=组织[&O]:
UserInfoSerial=序列号[&S]:
UserInfoNameRequired=您必须输入一个名称。

; *** “Select Destination Location” wizard page
WizardSelectDir=选择目标位置
SelectDirDesc=您将把[name]安装在哪里?
SelectDirLabel3=安装程序将把[name]安装在下面的文件夹中。
SelectDirBrowseLabel=继续安装, 请单击“下一步”。如果需要选择其它目录,请单击“浏览”。
DiskSpaceMBLabel=为了安装本软件,至少需要 [mb] MB 的空闲磁盘空间。
InvalidPath=您比如输入一个含盘符的路径名称。比如:%n%nC:\APP%n%n 或者一个网络路径,例如:%n%n\\server\share
InvalidDrive=您选择的磁盘或者网络路径不存在或者不能访问。请重新选择其它的磁盘或者网络路径。
DiskSpaceWarningTitle=磁盘空间不足。
DiskSpaceWarning=安装程序至少需要 %1 KB 空闲磁盘空间来安装本软件。但是选择的磁盘上只有 %2 KB 空间可用。%n%n 您确认继续?
DirNameTooLong=该文件夹的名称太长。
InvalidDirName=该文件夹的名字太长。
BadDirName32=文件夹名称中不能包括以下的任何字符:%n%n%1
DirExistsTitle=文件夹已经存在
DirExists=文件夹:%n%n%1%n%n已经存在。您想继续安装?
DirDoesntExistTitle=文件夹不存在
DirDoesntExist=文件夹:%n%n%1%n%n不存在。您想创建该文件夹?
CannotInstallToNetworkDrive=程序不能被安装到网络磁盘上.
CannotInstallToUNCPath=程序不能被安装到一个 UNC 路径上.

; *** “Select Components” wizard page
WizardSelectComponents=选择组件
SelectComponentsDesc=哪些组件需要安装?
SelectComponentsLabel2=选择您想要安装的组件; 去掉您不想安装的组件。当您准备好后,请单击“下一步” 。
FullInstallation=完全安装
; if possible don’t translate ‘Compact’ as ‘Minimal’ (I mean ‘Minimal’ in your language)
CompactInstallation=精简安装
CustomInstallation=自定义安装
NoUninstallWarningTitle=组件存在
NoUninstallWarning=安装程序检测到以下组件已经被安装到您的电脑中:%n%n%1%n%n不选择它们将不在您的电脑中安装。%n%n您想这样继续吗?
ComponentSize1=%1 KB
ComponentSize2=%1 MB
ComponentsDiskSpaceMBLabel=当前选择项至少需要 [mb] MB 的空闲磁盘空间才能安装。

; *** “Select Additional Tasks” wizard page
WizardSelectTasks=选择附加任务
SelectTasksDesc=您想选择哪个附加任务?
SelectTasksLabel2=选择在安装[name]时执行的附加任务后单击“下一步”。

; *** “Select Start Menu Folder” wizard page
WizardSelectProgramGroup=选择开始菜单文件夹
SelectStartMenuFolderDesc=您想在哪里放置软件的快捷方式?
SelectStartMenuFolderLabel3=安装程序将在下面的文件夹中创建软件的快捷方式。
SelectStartMenuFolderBrowseLabel=继续安装,请单击“下一步”。如果您想选择其它文件夹,单击“浏览”。
MustEnterGroupName=您必须输入一个文件夹名称。
GroupNameTooLong=文件夹名称或者路径名称太长。
InvalidGroupName=文件夹名称非法。
BadGroupName=文件夹名字中不能包含下面的字符:%n%n%1
NoProgramGroupCheck2=不创建开始菜单中的文件夹[&D]

; *** “Ready to Install” wizard page
WizardReady=准备开始安装
ReadyLabel1=安装程序开始在您的电脑中安装[name].
ReadyLabel2a=单击“安装”开始安装本软件,或者单击“上一步”修改安装设置。
ReadyLabel2b=单击“安装”开始安装本软件。
ReadyMemoUserInfo=用户信息:
ReadyMemoDir=安装目标位置:
ReadyMemoType=安装种类:
ReadyMemoComponents=选中的组件:
ReadyMemoGroup=开始菜单文件夹:
ReadyMemoTasks=附加任务:

; *** “Preparing to Install” wizard page
WizardPreparing=准备安装
PreparingDesc=安装程序准备在您的电脑中安装[name]。
PreviousInstallNotCompleted=安装/卸载一个以前的程序没有完成。您需要重新启动您的电脑来完成安装工作。%n%n当重新启动您的电脑后,请运行安装程序来完成安装[name]。
CannotContinue=安装程序不能继续执行。请单击“取消”退出。
;ApplicationsFound=The following applications are using files that need to be updated by Setup. It is recommended that you allow Setup to automatically close these applications.
ApplicationsFound=需要被安装程序更新的文件正被以下应用程序使用。建议由安装程序自动结束这些应用程序。
;ApplicationsFound2=The following applications are using files that need to be updated by Setup. It is recommended that you allow Setup to automatically close these applications. After the installation has completed, Setup will attempt to restart the applications.
ApplicationsFound2=需要被安装程序安装的文件正在被以下应用程序使用。建议由安装程序自动结束这些应用程序。当安装完成后,将会尝试重启这些应用程序。
CloseApplications=&Automatically close the applications
DontCloseApplications=&Do not close the applications
ErrorCloseApplications=Setup was unable to automatically close all applications. It is recommended that you close all applications using files that need to be updated by Setup before continuing.

; *** “Installing” wizard page
WizardInstalling=安装中
InstallingLabel=安装程序正在安装[name],请等待。

; *** “Setup Completed” wizard page
FinishedHeadingLabel=[name]安装完成
FinishedLabelNoIcons=安装程序已经在您的电脑中安装了[name]。
FinishedLabel=安装程序已经成功在您的电脑上安装了[name]。如果需要执行,请单击本软件图标。
ClickFinish=单击“完成”退出本安装程序.
FinishedRestartLabel=为了完成[name]的安装, 安装程序必须重新启动您的电脑。您想现在就重新启动吗?
FinishedRestartMessage=为了完成[name]的安装, 安装程序必须重新启动您的电脑。%n%您想现在就重新启动吗?
ShowReadmeCheck=是的,我想查看 README 文件
YesRadio=是的,我想重新启动计算机[&Y]
NoRadio=不,我将稍后重新启动计算机[&N]
; used for example as ‘Run MyProg.exe’
RunEntryExec=运行 %1
; used for example as ‘View Readme.txt’
RunEntryShellExec=查看 %1

; *** “Setup Needs the Next Disk” stuff
ChangeDiskTitle=安装程序需要下一个安装盘
SelectDiskLabel2=请插入安装盘 %1 并且单击“确认”。%n%n如果该盘不是下面显示的盘,请输入正确的路径或者单击“浏览”。
PathLabel=目录[&P]:
FileNotInDir2=在 “%2” 中没有发现文件。请插入正确的磁盘或者选择其它的文件夹。
SelectDirectoryLabel=请输入下一个磁盘中的正确位置。

; *** Installation phase messages
SetupAborted=安装没有完成。%n%n请修复错误并重新安装。
EntryAbortRetryIgnore=单击“重试”重新尝试,单击“忽略”将继续安装,或者单击“取消”退出安装。

; *** Installation status messages
StatusCreateDirs=创建目录中…
StatusExtractFiles=解压文件中…
StatusCreateIcons=创建快捷方式中…
StatusCreateIniEntries=创建INI单元中…
StatusCreateRegistryEntries=创建注册表内容中…
StatusRegisterFiles=注册文件中…
StatusSavingUninstall=保存卸载信息中…
StatusRunProgram=正在完成安装…
StatusRollback=恢复原来修改的内容中…
StatusClosingApplications=正在关闭应用程序…
StatusRestartingApplications=正在重启应用程序…

; *** Misc. errors
ErrorInternal2=内部错误: %1
ErrorFunctionFailedNoCode=%1 失败
ErrorFunctionFailed=%1 失败; 代码 %2
ErrorFunctionFailedWithMessage=%1 错误; 代码 %2.%n%3
ErrorExecutingProgram=不能执行文件:%n%1

; *** Registry errors
ErrorRegOpenKey=在打开注册表键时发生错误:%n%1\%2
ErrorRegCreateKey=在创建注册表键时发生错误:%n%1\%2
ErrorRegWriteKey=在些注册表键时发生错误:%n%1\%2

; *** INI errors
ErrorIniEntry=在创建INI文件时发生错误 “%1”.

; *** File copying errors
FileAbortRetryIgnore=单击“重试”再试一次,单击“忽略”忽略该文件,或者单击“取消”退出安装程序。
FileAbortRetryIgnore2=单击“重试”再试一次,单击“忽略”忽略该文件继续安装,或者单击“取消”退出安装程序。
SourceIsCorrupted=源文件被使用
SourceDoesntExist=源文件 “%1” 不存在
ExistingFileReadOnly=该已经存在的文件是只读属性。%n%n单击“重试”删除只读属性并重新尝试,单击“忽略”忽略该文件,或者单击“取消”退出安装程序。
ErrorReadingExistingDest=当试图读取一个已经存在的文件时发生了错误:
FileExists=该文件已经存在。%n%n您想覆盖它吗?
ExistingFileNewer=已经存在的文件比安装程序试图安装的文件要新。建议您保留该文件。%n%n您想保留已经存在的文件吗?
ErrorChangingAttr=当试图改变一个存在的文件的属性时发生了错误:
ErrorCreatingTemp=当试图在目标目录中创建一个文件时发生了错误:
ErrorReadingSource=当试图读取一个文件时发生了错误:
ErrorCopying=当试图复制一个文件时发生了错误:
ErrorReplacingExistingFile=当试图覆盖已经存在的文件时发生错误:
ErrorRestartReplace=重新启动置换失败:
ErrorRenamingTemp=当在目标目录中重命名文件时发生错误:
ErrorRegisterServer=不能注册 DLL/OCX: %1
ErrorRegSvr32Failed=RegSvr32 执行失败, 错误码: %1
ErrorRegisterTypeLib=不能注册以下类型库: %1

; *** Post-installation errors
ErrorOpeningReadme=当打开 README 文件时发生错误。
ErrorRestartingComputer=安装程序不能重新启动电脑。请手动启动。

; *** Uninstaller messages
UninstallNotFound=文件 “%1” 不存在。不能卸载。
UninstallOpenError=文件 “%1” 不能打开。不能卸载。
UninstallUnsupportedVer=卸载记录文件 “%1″ 不是基于本安装程序的版本。不能完成软件的删除工作。
UninstallUnknownEntry=一个未知的实体 (%1) 存在于卸载记录文件中。
ConfirmUninstall=您确定完全删除 %1 和相关组件吗?
UninstallOnlyOnWin64=该安装程序只能在64位的Windows上执行卸载工作。
OnlyAdminCanUninstall=该安装程序只能在您具有管理员权限时才能执行卸载工作。
UninstallStatusLabel= %1 正在被删除,请稍等。
UninstalledAll=%1 被成功地从您的电脑中删除。
UninstalledMost=%1 删除完成。%n%n有某些组件无法被删除。您可能需要手动删除它们。
UninstalledAndNeedsRestart=为了完成 %1 的删除工作, 您必须重新启动电脑。%n%n您想现在就重新启动吗?
UninstallDataCorrupted=文件”%1” 被占用。不能完成删除工作。

; *** Uninstallation phase messages
ConfirmDeleteSharedFileTitle=删除共享程序文件?
ConfirmDeleteSharedFile2=系统指出以下的共享程序文件将不再被使用。您是否想删除这些共享文件?%n%n如果这些文件删除后,其他程序仍然要使用它,可能其它程序的功能将受影响。如果您不能肯定,请选择“否”。让这些文件保留在系统中不会对系统造成损害。
SharedFileNameLabel=文件名:
SharedFileLocationLabel=位置:
WizardUninstalling=卸载
StatusUninstalling=卸载 %1 中…

; *** Shutdown block reasons
ShutdownBlockReasonInstallingApp=安装 %1.
ShutdownBlockReasonUninstallingApp=卸载 %1.

; The custom messages below aren’t used by Setup itself, but if you make
; use of them in your scripts, you’ll want to translate them.

[CustomMessages]

NameAndVersion=%1 版本 %2
AdditionalIcons=附加图标:
CreateDesktopIcon=创建桌面图标[&d]
CreateQuickLaunchIcon=创建快速启动图标[&Q]
ProgramOnTheWeb=%1 on the Web
UninstallProgram=卸载 %1
LaunchProgram=执行 %1
AssocFileExtension=用文件扩展名 %2 匹配[&A] %1?
AssocingFileExtension=正在用文件扩展名 %2 匹配[&A] %1 中…
AutoStartProgramGroupDescription=Startup:
AutoStartProgram=Automatically start %1
AddonHostProgramNotFound=%1 could not be located in the folder you selected.%n%nDo you want to continue anyway?

36选7 总8位数 求和后 取得和的集合

05.11.2013, 36选7 总8位数 求和后 取得和的集合已关闭评论, C++, by .

C++忘得差不多,刚好一朋友需要这个小东西网上找了下简单方法,小修改了下.用win32控制台实现


// 36选7 总8位数 求和后 取得和的集合
//

#include "stdafx.h"
#include
#include
using namespace std;
const int m = 36;//数字间隔如1-15
const int n = 8; //几个数相加
bool print(int, int, int *, int *,int);
ofstream FileOpen;
struct { int no1;int no2;int no3;int no4;int no5;int no6;int no7;int no8;}date;

int main(int argc, char* argv[])
{
cout<<"请输入8个数字,\n每个数字后按回车,\n计算结果保存在目录'abc.txt':\n\n";
cout<<"第1位:"; cin>>date.no1;
cout<<"第2位:"; cin>>date.no2;
cout<<"第3位:"; cin>>date.no3;
cout<<"第4位:"; cin>>date.no4;
cout<<"第5位:"; cin>>date.no5;
cout<<"第6位:"; cin>>date.no6;
cout<<"第7位:"; cin>>date.no7;
cout<<"第8位:"; cin>>date.no8;
cout<<"生成中,请稍候!\n不要手动关闭窗口,系统会自动关闭窗口\n";
int total = date.no1+date.no2+date.no3+date.no4+date.no5+date.no6+date.no7+date.no8;
//cout<<total;
//*
FileOpen.open("abc.txt");
int *s = new int[m];
for(int i = 0; i < m; i++)
s[i] = i + 1; //初始化1-15
int *rhs = new int[n];
for(int j = 0; j < n; j++)
rhs[j] = s[j]; //提取前5个元素
FileOpen << "您输入的数" << "\n--------------------------------------------\n";
FileOpen << date.no1 << "\t" << date.no2 << "\t" << date.no3 << "\t" << date.no4 << "\t" << date.no5 << "\t" << date.no6 << "\t" << date.no7 << "\t" << date.no8 << "\n\n";
FileOpen << "生成的结果,包含输入的数" << "\n--------------------------------------------";
FileOpen << endl;
while(print(m, n, rhs, s,total));
delete rhs, s;
FileOpen.close();
cout<<"\n生成成功.请查看目录下的'abc.txt'\n";
//*/
return 0;
}
bool print(int m, int n, int *rhs, int *res, int total_sum)
{
int flag = 0;
int sum = 0;
for(int i = 0; i < n; i++)
sum += rhs[i]; //计算前5项和是否为42
if(sum == total_sum)
{
///////////////输出/////////////////
for(int i = 0; i < n; i++)
FileOpen << rhs[i] << '\t';
FileOpen << endl;
}
for(int k = 0; k < n; k++)
if(rhs[k] == res[m - (n - k)])
///////////////////////////////////
//当有第K位元素到他理论上最后的位置
//如:1234,提取3个元素排列,元素2的理论最大位置在初始3的位置
//////////////////////////////////
{
flag = k;
if(k == 0) //如果是最高位,表明所有组合遍历完毕,推出主函数的循环
return 0;
else
for(int y1 = 0; y1 < m; y1++) //否则将理论上第K位向后移一位,后面N-K位同理后移
if(res[y1] == rhs[k - 1])
{
rhs[k - 1] = res[y1 + 1];
break;
}
break;
}
if(flag)
{
int y2;
for(y2 = 0; y2 < m; y2++)
if(res[y2] == rhs[flag - 1])
break;
for(int l = y2 + 1; flag < n; l++, flag++)
rhs[flag] = res[l];
flag = 0;
}
else //没有到理论上的最高位则只需要将最后一个元素移位
{
for(int p = 0; p < m; p++) if(res[p] == rhs[n - 1]) { rhs[n - 1] = res[p + 1]; break; } } return 1; } /* 输入值,判断输入值是否正确 no 输入值 m 判断范围 now_n 第几位 */ bool input_is_enable(int no,int m,int now_n) { if(no>0 && no<=m){
return 1;
}
else{
cout<<"第"<<now_n<<"位不在1-"<<m<<"内,请重新输入";
return 0;
}
}

国际电话区号列表

04.16.2013, 国际电话区号列表已关闭评论, voip, by .

所有的区号都是根据国际电信联盟(ITU)的E.123和E.164标准所分配的。

http://www.itu.int/

 

国际电话请在这边下载

www.itu.int/itu-t/bulletin/annex.html或者

http://www.itu.int/en/publications/ITU-T/Pages/publications.aspx?parent=T-SP&view=T-SP1

查找 List of ITU-T Recommendation E.164 assigned country codes

最新一份为01/11/2011

 

可以点这里下载

List of ITU-T Recommendation E.164 assigned country codes as of 1 Nov 2011 国际电信联盟E.164列表

http://www.itu.int/dms_pub/itu-t/opb/sp/T-SP-E.164D-11-2011-PDF-E.pdf

 

国际区号

区域0 — 保留
区域1 — 北美洲
区域2 — 非洲
区域3 — 欧洲
区域4 — 欧洲
区域5 — 墨西哥及中南美洲
区域6 — 东南亚及大洋洲
区域7 – 俄罗斯及附近地区 (前苏联)
区域8 — 东亚及特殊服务
区域9 – 西亚及南亚、中东

 

可以参考

http://zh.wikipedia.org/wiki/%E5%9B%BD%E9%99%85%E7%94%B5%E8%AF%9D%E5%8C%BA%E5%8F%B7%E5%88%97%E8%A1%A8

基于光盘/ISO的本地yum服务器搭建

04.13.2013, 基于光盘/ISO的本地yum服务器搭建已关闭评论, linux, by .

基于光盘/ISO的本地yum服务器搭建

一、YUM服务端

1.创建一个存放放RPM所有安装包的目录 ,位置自定义,有兴趣的同学可以放在/home下

mkdir -p /opt/yum

2.获取RedHat的ISO镜像文件,并挂载

mkdir -p /mnt/cdrom
mount -t iso9660 /dev/cdrom /mnt/cdrom

如果没有光盘,也可以用ISO镜像文件,直接挂载ISO文件,假设ISO放在home下

mount -t iso9660 -o loop /home/rhel-server-6.0-x86_64-dvd.iso /mnt/cdrom

3.获取RPM包源,将ISO中的Server目录复制到本机需要安装YUM仓库的目录下:例如/opt/yum

cp -r /mnt/cdrom/Server   /opt/yum

4.进入你自己创建的YUM仓库,并安装createrepo工具

cd /opt/yum/Server
ls | grep create
rpm -ivh createrepo-0.4.11-3.el5.noarch.rpm

5.重建仓库信息配置文件(/opt/yum目录下)

createrepo  /opt/yum

二,YUM客户端

1.基于之前已经建立的YUM仓库,这里配置YUM客户端

cd /etc/yum.repos.d
mkdir backup
mv *.repo backup
//备份原有配置

2.然后在/etc/yum.repos.d下创建yum.repo文件,并输入如下配置信息:

[Server]
name=Server
baseurl=file:///opt/yum/Server
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-RedHat-release

3.测试YUM仓库配置是否成功

yum clear all
yum list

Linux流量监控工具 – iftop用法

04.11.2013, Linux流量监控工具 – iftop用法已关闭评论, linux, by .

在类Unix系统中可以使用top查看系统资源、进程、内存占用等信息。查看网络状态可以使用netstat、nmap等工具。若要查看实时的网络流量,监控TCP/IP连接等,则可以使用iftop。

一、iftop是什么?

iftop是类似于top的实时流量监控工具。

官方网站:http://www.ex-parrot.com/~pdw/iftop/

二、iftop有什么用?

iftop可以用来监控网卡的实时流量(可以指定网段)、反向解析IP、显示端口信息等,详细的将会在后面的使用参数中说明。

三、安装iftop

安装方法1、编译安装

如果采用编译安装可以到iftop官网下载最新的源码包。

安装前需要已经安装好基本的编译所需的环境,比如make、gcc、autoconf等。安装iftop还需要安装libpcap和libcurses。

CentOS上安装所需依赖包:

yum install flex byacc  libpcap ncurses ncurses-devel

Debian上安装所需依赖包:

apt-get install flex byacc  libpcap0.8 libncurses5

下载iftop

wget http://www.ex-parrot.com/pdw/iftop/download/iftop-0.17.tar.gz

tar zxvf iftop-0.17.tar.gz

cd iftop-0.17

./configure

make && make install

安装方法2:(懒人办法,最简单)

直接省略上面的步骤

CentOS系统运行:yum install iftop

Debian系统 运行:apt-get install iftop

四、运行iftop

直接运行: iftop

如果不行做下软链接,指定到搜索路径中

ln -sf /usr/local/iftop/sbin/iftop /usr/local/bin/

效果如下图:

五、相关参数及说明

1、iftop界面相关说明

界面上面显示的是类似刻度尺的刻度范围,为显示流量图形的长条作标尺用的。

中间的<= =>这两个左右箭头,表示的是流量的方向。

TX:发送流量
RX:接收流量
TOTAL:总流量
Cumm:运行iftop到目前时间的总流量
peak:流量峰值
rates:分别表示过去 2s 10s 40s 的平均流量

2、iftop相关参数
常用的参数

-i设定监测的网卡,如:# iftop -i eth1

-B 以bytes为单位显示流量(默认是bits),如:# iftop -B

-n使host信息默认直接都显示IP,如:# iftop -n

-N使端口信息默认直接都显示端口号,如: # iftop -N

-F显示特定网段的进出流量,如# iftop -F 10.10.1.0/24或# iftop -F 10.10.1.0/255.255.255.0

-h(display this message),帮助,显示参数信息

-p使用这个参数后,中间的列表显示的本地主机信息,出现了本机以外的IP信息;

-b使流量图形条默认就显示;

-f这个暂时还不太会用,过滤计算包用的;

-P使host信息及端口信息默认就都显示;

-m设置界面最上边的刻度的最大值,刻度分五个大段显示,例:# iftop -m 100M

进入iftop画面后的一些操作命令(注意大小写)

按h切换是否显示帮助;

按n切换显示本机的IP或主机名;

按s切换是否显示本机的host信息;

按d切换是否显示远端目标主机的host信息;

按t切换显示格式为2行/1行/只显示发送流量/只显示接收流量;

按N切换显示端口号或端口服务名称;

按S切换是否显示本机的端口信息;

按D切换是否显示远端目标主机的端口信息;

按p切换是否显示端口信息;

按P切换暂停/继续显示;

按b切换是否显示平均流量图形条;

按B切换计算2秒或10秒或40秒内的平均流量;

按T切换是否显示每个连接的总流量;

按l打开屏幕过滤功能,输入要过滤的字符,比如ip,按回车后,屏幕就只显示这个IP相关的流量信息;

按L切换显示画面上边的刻度;刻度不同,流量图形条会有变化;

按j或按k可以向上或向下滚动屏幕显示的连接记录;

按1或2或3可以根据右侧显示的三列流量数据进行排序;

按<根据左边的本机名或IP排序;

按>根据远端目标主机的主机名或IP排序;

按o切换是否固定只显示当前的连接;

按f可以编辑过滤代码,这是翻译过来的说法,我还没用过这个!

按!可以使用shell命令,这个没用过!没搞明白啥命令在这好用呢!

按q退出监控。

六、常见问题

1、make: yacc: Command not found
make: *** [grammar.c] Error 127

解决方法:apt-get install byacc   /   yum install byacc

2、configure: error: Curses! Foiled again!
(Can’t find a curses library supporting mvchgat.)
Consider installing ncurses.

解决方法:apt-get install libncurses5-dev  /    yum  install ncurses-devel