RECORDING MY FANTASY

Monday, October 31, 2005

深入浅出Visual C++动态链接库(Dll)编程

深入浅出Visual C++动态链接库(Dll)编程

介绍动态链接库如何使用的,应该值得一看。

NewsForge | Finding voice codecs for free software

NewsForge | Finding voice codecs for free software
In a recent article about VoIP softphones, I touched on the problem of proprietary, patent-encumbered codecs. To recap, the point was that a triumph of open protocols, like Session Initiation Protocol (SIP) and Inter-Asterisk EXchange (IAX), is hollow if the marketplace standardizes on closed, proprietary codecs for delivering the voice data itself. But how do you find the good free codecs? Here are some options.

If softphone vendors adopt only proprietary codecs, Linux distributors and software vendors will be forced to either pay royalties and license fees to the patent owners, or remove support for the popular standards, leaving their users in a VoIP ghetto -- much like the situation today with many distros and MP3.

But not-for-profit software projects would suffer, too, by being forced to choose between poor interoperability and running through a legal minefield. And that is assuming that the specifications were open enough to permit coding a compliant library; many commercial codecs are completely off-limits to unpaying eyes.

Clearly, an ounce of prevention is worth a pound of cure here. Most softphones can support multiple codecs. The trick is making sure free ones are promoted and adopted as widely as possible. Even closed source applications can and should support free codecs. It's good business sense -- particularly the can't-get-cheaper-than-free licensing.

If you are not sure which voice codecs are free and which are not, you are not alone. Clear information on the legal status of many codecs is hard to come by, and what is available is scattered in a hundred different places. Here's a rundown of what's out there.

Free as they get

First off are the codecs that I would call completely free: free of patents, free of all licensing restrictions, and free of royalties.

Speex is a voice-specific compression format developed by Xiph.org and released under a BSD-style license. It works at 8, 16, and 32kHz sample rates over a dozen bitrates ranging from 2.2Kbps to 44.2Kbps. Speex is an official part of the GNU Project, and the copyright to the code belongs to Xiph.org -- a 501(c)3 non-profit organization established to protect open multimedia standards and software.

Sun Microsystems released implementations of several codecs into the public domain, including G.711, one of the older ITU-approved standards, a low-delay, high-quality format at 8kHz, 64Kbps.

Sun also released a suite of Adaptive Differential Pulse Code Modulation (ADPCM) codecs into the public domain. They correspond to the International Telecommunication Union (ITU) G.721, G.723, G.726, and G.727 standards and function at 16, 24, 32, and 40Kbps.

Mostly free

A second group comprises codecs that are usable in free software projects, but with some form of restriction.

Jack Jansen released his own, faster ADPCM implementation built on an algorithm referred to alternately as Intel/DVI or IMA ADPCM. The algorithm initially debuted in an Intel hardware device, but was later adopted as a standard by the now-defunct Interactive Multimedia Association. The accompanying license requires a copyright notice but is otherwise free of restrictions. Jansen's implementation of ADPCM is available for download as a zip file.

Similarly, a Linear Predictive Coding (LPC) codec named OpenLPC requires a copyright notice for redistribution, although the company cited in the notice (Future Dynamics) appears to be out of business.

The US Department of Defense drafted two voice-compression proposals: a 2.4Kbps derivative of LPC called LPC-10, and a 4.8Kbps hybrid called Code-Excited Linear Prediction (CELP). They are officially known as Federal Standard 1015 and Federal Standard 1016, respectively, and are available from Tony Robinson's comp.speech archive.

The US government holds the copyright on this code, but has indicated in the past that it may remove it. Also, certain countries under sanction or embargo may be barred from obtaining the source. On the other hand, none of the technology is patented, so independently developed implementations are free of these legal concerns.

Ramalho G.711 Lossless (RGL) is a G.711 implementation offered by Vovida.org under the Vovida Software License (VSL). The VSL is an open source license, approved by the Open Source Initiative (OSI), but it does require a copyright notice. Vovida.org is a unit of Cisco Systems.

Barely free

Next are codecs which are patented, or otherwise closed, but are free to use under certain conditions.

GlobalIPSound offers its Internet Low Bitrate Codec (iLBC) codec free of charge. This is good, because many programs use it, but the license terms allow GIPS to change its mind at any time, so watch out.

VoiceAge of Montreal offers object code for three of its codecs free for non-commercial usage. They are (cynically, if you ask me) named Open G.729A, Open AMR, and Open AMR-WB. To use them you must accept the restrictions in the license agreement, so read very carefully; frankly, there is not much that you are allowed to do.

Maybe free

Finally, some codecs are available under confusing or disputed license arrangements. I include these in case you wish to research them further. In the meantime, use them at your own risk.

The Low-Delay Code Excitation Linear Prediction (LD-CELP) codec, also known as G.728, is a good example. It is an enhancement of the CELP codec and released publicly, but with no license attached. At least two versions of the code are floating around, one attributed to Alex Zatsmann of Analog Devices and one to Michael Concannon. Some sources cite Analogical Systems as the owner.

GSM6.10 is the audio codec used by GSM mobile phone networks. A well-maintained free implementation of this codec is available, but there are disputed patent claims by Philips Electronics.

Be aware of the potential consequences when using any codec with unclear licensing terms.

Final word

Most of the sites referenced above contain more information about voice compression in general, including where to find updated implementations. Many of the free codecs date back to the early or mid-'90s, but don't be fooled into thinking that makes them out-of-date.

Phil Frisbie has put a lot of work into his HawkVoice library -- a LGPLed collection of 15 or so of these free voice codecs, rewritten to use a uniform interface. He told me:

When GSM was created a workstation could not encode and decode a single voice stream in real-time, but now your PDA can encode and decode a dozen GSM streams at once! Open source developers should not worry that the latest IP-laden codecs are denied to them. There is STILL much life in already available open source codecs to provide any application with good speech compression.
Lucky for us the VoIP marketplace is nascent enough that no dominant codecs have emerged in competing systems. There is still time for free and open codecs to make a play for the current generation of softphones. As Richard Stallman said, "The practice of using the non-free codecs is one of the major obstacles that free software faces, and the only way to surmount it is for people to start pushing back."





Related Links
· Intel
· Linux
· Speex
· BSD-style license
· GNU Project
· Xiph.org
· G.711
· Adaptive Differential Pulse Code Modulation
· Jack Jansen
· adopted
· Interactive Multimedia Association
· zip file
· two voice-compression proposals
· comp.speech archive
· offered
· Vovida Software License
· Open Source Initiative
· Vovida.org
· unit of Cisco Systems
· GlobalIPSound
· free of charge
· license agreement
· released publicly
· Some sources
· free implementation
· HawkVoice
· said
· a recent article
· Best deals: Free Software
· More Free Software stories
· Best deals: Internet
· More Internet stories


Sunday, October 30, 2005

Damien Sandras >> Weblog

Damien Sandras � Weblog
gnomemeeting's blog.
gnomemeeting支持sip协议下的视频、音频传输。

Saturday, October 29, 2005

IETF主席网络大会上高度评价VOIP

IETF主席网络大会上高度评价VOIP
10月28日,网络世界大会2005暨第四届以太网世界大会(www.networkworld2005.com.cn)在京举行。首次来华的国际互联网工程任务组(The Internet Engineering Task Force,简称 IETF)主席Brian E. Carpenter出席会议并高度评价了VOIP在下一代互联网发展中的重要性。

  IETF是一个公开性质的大型民间国际团体,致力于互联网相关技术标准的研发和制定将近20年,汇集了与互联网架构和互联网顺利运作相关的网络设计者、运营者、投资人和研究人员。

  Brian曾经是IBM公司内一位专注互联网标准和技术的资深工程师,在今年3月举行的第62次IETF大会上他接任IETF主席一职,此前他曾任互联网架构委员会( Internet Architecture Board)主席以及互联网工程指导委员会(Internet Engineering Steering Group)主席。

  在今天主题为“IETF-Internet标准的发展趋势”的演讲中,Brian表示,无论传统的电信运营商是否喜欢,未来,VOIP都将会产生巨大影响,“这是不可逆转的”。而鉴于互联网总是在不断发展和进步, VOIP之后,还会有更多新的东西被年青的人们发明出来。

  此外,由于许多人已经感受到了IPV4在地址上的局限性,Brian相信,未来人民对IPV6的需求将会巨大。

  而对于目前炒的火热的NGN(下一代网络),Brian显得有些不以为然,他说自己并不认为NGN能代表未来网络, “它仅仅是未来网络中一个比较重要的组成部分。”

  Brian强调,在互联网未来的发展中,下一个标准是什么其实并不重要,重要的是不断完善和发展互联网基本结构,不断提升网络接入能力。

Friday, October 28, 2005

据说比尔-盖茨在中国哭了一通

据说比尔-盖茨在中国哭了一通

作者:为你飘零

有人消息说比尔 盖茨在中国哭了.为什么哭了,说法不一.

有人说,他是看到中国的一则报道后哭的.这则报道说,2003年"非典"期间,中华慈善总会总共才收到了770万元捐款,其中只有一个富人以个人名义捐了200万元人民币.一个13亿人口的泱泱大国,百万美元以上的富人超过了23万名,在亚洲仅次于日本.当国家面临那么严峻的灾难时,收到的捐款只不过700多万元人民币,而且23万多名百万美元以上的富翁中仅有一人捐了款,只有23万份之一.难怪比尔 盖茨要哭.不仅仅是他要哭,凡是一个有责任感的中国人都会敢感到悲哀,都会感到心痛.不是早有经济学家说"富人有功"吗,为什么到该立功的时候,把头缩进了乌龟壳里去了呢?

也有人说,他不是为这事哭的.他是为了有人批评美国钢铁大亨卡耐基说的一句话而哭的.卡耐基说的这句话是"富人在道义上有义务把他们的一部分财产分给穷人".据说有位中国富人却说"自己创造的财富是自己的,没有义务送还社会".比尔 盖茨是卡耐基这句话的忠诚实践者,他在4年里给慈善事业的捐赠达235亿美元,相当于他现有净资产的60%.他怎么也想不通啊,竟然有人也敢说"没有义务把它返还社会".在美国也经常有人批评比尔 盖茨,说他捐款1亿美元给印度人做抗爱滋病研究,是为了获得免税权;他给学校捐献电脑和电话,说他是做广告,反正他自己也觉得是不该赚这么多钱了.

不管比尔 盖茨是为什么而哭的,我还是觉得他哭的有些道理.有那么些人总说国人有"仇富心理",我不知道这"仇富心理"具体指的是什么.按道理说,大家都喜欢富裕,不然为什么一提实现全面小康社会,有那么多人拥护.看来"仇富心理"不是指这个富,"为富有仁"是大家欢迎的,自然不会对"为富有仁"者产生仇恨心理.那是指什么呢?


不知道你看了这件事后有何感想,长沙街头明星们烤一个肉串,有人花一万元抢着买;50克不起眼的茶叶有人花2万元买下.然而那些躺在医院里无钱治病的老人,那些无钱上学的准大学生,他们也许只要几千元就足够挽回一条生命,或者能够凑足上大学的费用,可是又有谁来"买"他们的帐.相比之下,富人们的"斗富"比起他们的"怜贫"要重要得多了.


钱是富人们自己的,他们想怎么花有怎么花,谁也不会去干涉他们的.他们愿意给谁就给谁,谁也不会强迫他们.但想想今天,800多万一辆的宾利豪华轿车在中国市面上竟然供不应求,这就有些令人怀疑了.比起那些发达国家要穷的多的中国,竟然成了豪华轿车最大的销售市场,连美国'日本人都觉得自愧不如.人们不得不产生疑问,中国的富豪是否富得太容易? 太快了?


富人们的钱是怎么赚来的,这是人家的商业秘密,我们无须去打听.但马克思说的剩余价值是劳动创造的,资本是只能转移价值而不能创造价值的,不知道老祖宗的这些话现在还管用么?没有大多数人的辛勤劳动,少数人是富不起来的.多数人也希望少数人富裕起来能够带动更多的人富裕.中国不是富起来的人多了,而是太少了.但是富起来的人就该纵欲?就该挥霍?就该置国人利益于不顾?

比尔 盖茨哭了---次事是否属实,我看也没有必要去考证了.中国人的事,外国人是不会着急的.对于富人的奢侈的议论,似乎也因为人微言轻而不足道.但我们这个社会还是应该有一个尺度.墨子曰:"富贵者奢侈,孤寡者冻馁,虽欲无乱,不可得也".但愿这种担心是多余的.

PDFlib - 用于制作pdf的库,

浅谈PDFlib中文输出
这篇文章是用来介绍怎么利用里面的中文字体的,因为作为国内用户是非常关心这个的,呵呵。

里面给出了例子,显示了怎么调用里面的字体,以及怎么用pdflib的库来编写程序。

---------
自己也可以做一个pdf的编写阅读的程序啊!!--YY

VoIP: Why Skype is no different

VoIP: Why Skype is no different

IPR--write a patent proposal with pdf format, deadline: nov 20

1. Indicate whether the idea is yours or not
2. An abstract
3. A description with:
a) Proorart
b) background
c) problem targeted
d) waringings if any
4. claims. i.e. what are new for waht you are doing.

Wednesday, October 26, 2005

在 Borland C++BuilderX for Windows 中进行 GTK+ 编程

By Xinzhen (LoneStar) xinzhen@auvtech.com

http://auvtech.com/~xinzhen/bcbxgtk/index.htm
BCBX
在经历了一系列失败的“跨平台”努力后,独立工具软件商 Borland 的最后希望寄托在了 C++BuilderX,这个工业级的重型 C++ 开发环境上。C++BuilderX 与先前的 BC 或 BCB 有着显著的不同。不仅仅在于其使用 Java 写的 IDE,更本质的特征在于其旗舰级的定位,使它终于获得了人们期待已久的、与“C++”这个词相称的特征:高度标准相容的语法,开放,兼容,独立于平台。





GTK+
GTK+ 是一个用于构建用户界面的跨平台工具箱。与其说是用户界面,更精确的描述应是一个“框架”,集成了开发一个图形界面程序所需的所有底层架构,如信号传递机制,异步 I/O,字符集与编码处理等。目前的稳定版是 2.2.4。随着功能不断提升,它的应用也日趋广泛。相对于别的商业级应用程序框架,这个库使用了极其宽松且对商业友好的 LGPL 许可证,使它获得了越来越多的重视。

GTK+ for Windows
然而,虽然 GTK 架构中有一层又一层的封装层,来最大限度地实现平台无关性,但其来自于 Unix 世界的本质使得其要运行于 Windows,仍然需要用户搭建复杂的环境来编译和设定。幸好,半“官方”的 Windows 移植发布版已经出现,位于 http://www.dropline.net/gtk/index.php。从这个网站上可以下载到编译好了的 GTK+ for Windows Runtime Environment 与 Development Environment(对应于 Linux 上 gtk2 及 gtk2-devel 包),以及如何在 VC 中使用此库的简单介绍,甚至还有如何制作安装程序的简介。

从此站上下载到的发行版内置了一个主题引擎 Wimp。当这个主题引擎运行于 Windows XP 时,会调用 Native 的 XP 主题 API,获取如颜色方案、字体和贴图等信息,从而获得一个与 XP 完全一致的 Look and feel。当然,如果不是 XP,就只能用模仿的方式绘制控件,但至少颜色还是一致的。

BCBX with GTK+
当 BCBX 1.0于去年底发布时,一来由于时间仓促,二来作为工业级产品,“图形界面”所占比重较小,总之其中并未携带任何用于协助图形用户界面 (GUI) 开发的元素。

BCBX 的开放性体现在,支持 3 个平台,5种不同编译器。Intel 及 Microsoft 的编译器都列为支持。最让人意外的是,GNU 的 GCC 也在列表中,并且将随安装程序一并自动装入你的系统,无需任何额外的下载、安装步骤,即可使用:


其版本显示为“GNU C++ version 3.2 (mingw special 20020817-1) (mingw32)”

这一特征不禁让我们产生联翩浮想。这意味着无数的,GNU 或 非 GNU的,open 的 sources 将有简单的方法可以在 Windows 上使用了。GTK+ 当然就是其中之一。

配置 GTK+ for Windows 环境
我们现在就安装上述的 GTK+ Windows 发行版。这个发行版有着漂亮的安装程序,从哪方面看都是标准的 Windows 应用程序。真正的“跨平台”,就要做到融入所在的平台中去,与其他应用有相同的外观和行为特征,成为 Native 的应用。那种自成一体,与环境格格不入的程序,不能叫跨平台,而是自己就是平台,且只能运行于自己的平台上而已。

首先从这里下载 Runtime Environment。目前版本 2.2.4.1。



装上后,*.DLL 形式的动态库装入了 C:\Program Files\Common Files\GTK\2.0\lib中。为了让系统能找到它,我们需要为它设定 $PATH 环境变量。在 Windows 2000 上的设定方法是这样的。按组合键 Win+Pause,如果你没有 104 键 Windows 键盘(稀有动物)就只好在“我的电脑”(其实是你的,不是我的)上点右键,选属性。选 Advance 标签,点击 Environment Variables... 按钮。在对话框中寻找 Path 变量,没有的话新建一个。编辑其内容加入上述路径。



好,现在我们下载并安装 Development Environment。本例中我将它装到了 D:\GTK2DEV,后面的设定将以此为准。你可以自行酌情更改。






装好后,测试一下是否正常。去到目录 D:\GTK2Dev\share\gtk-2.0\demo 中,运行 gtk-demo.exe。如果看见界面,那么安装成功。

配置 BCBX 环境
GTK+ for Windows 站点上有很详细的如何在 Windows 上编译和运行的指令。但他们太复杂了,我通过在 BCBX 中新建一个项目,来 step by step 地简要描述一下。

STEP1:
我们在 BCBX 中新建一个项目,类型选择 New Console。



别急,我没搞错。尽管我们要开发的东西确实是 GUI的,我们选的也不是 New GUI Application,否则你就要为找不到 argc 和 argv 烦恼了。我将项目命名为 gtkhello。

STEP2:
现在,为了能编译这个项目,首先,我们教编译器去哪寻找 GTK+ 的头文件。在左上角项目名上点右键,选择“Build Options Explorer...”。在出现的对话框上部选择“MinGW GNU C++ Compiler”,在下部 Paths and Defines 标签中,include path 框里添加如下字符串:

d:\GTK2DEV\INCLUDE\GTK-2.0; d:\GTK2DEV\LIB\GTK-2.0\INCLUDE; D:\GTK2Dev\include\glib-2.0;
d:\GTK2DEV\LIB\GLIB-2.0\INCLUDE; D:\GTK2Dev\include\pango-1.0; d:\GTK2DEV\INCLUDE\ATK-1.0;
d:\gtk2dev\include









STEP3:
教我们的链接器如何链接对 GTK+ 程序的调用。在同一个对话框中,上部选择“GNU C++ Linker”,底下标签页中就会出现 library search path 框。在其中输入

D:\GTK2Dev\lib
在这个目录中存放着与每个 DLL 对应的 LIB 静态接口库。然后,我们转入 Options 页,在 Linker Options->Search for library LIBNAME 后面,输入如下字符串:

glib-2.0;gtk-win32-2.0;gdk-win32-2.0;gobject-2.0;gdk_pixbuf-2.0;gthread-2.0;gmodule-2.0;pango-1.0
这些就是所有接口库的名字。至此,所有设定完成。我们打开 2 年前登在 IBM developerWorks 网站上的 《GNOMEnclature: 为 GNOME 2 作好准备,第 1 部分 》一文,将“清单2”程序贴进我们刚刚生成的 untitled.cpp 中,从工具栏上点击 Make。编译过程应该很快就完成了。

STOP! Bitfields 与 对齐 align
CPU访问内存时,总是以其整数字长为单位读写。比如 x86 CPU 总是从4字节的整数倍数地址上,读取4字节数据,它不能随心所欲地从任何位置开始读取任意长度数据。为了效率考虑,默认情况下编译器总是让整数存放于其长度的整数倍数地址上。在一个结构中,为了做到这一点,有时不得不浪费几个字节。

举个例子,我们定义一个结构:

struct { char c; int i;};
从字面上看,这个结构的长度是5个字节,但默认情况下编译器总是分配8个字节,是为了让 i 出现在偏移量 4 地址上。

位域 bitfields 是 C 语言结构中的一个成员,可以指定该成员所占内存的位数 bit。然而,在位域的对齐方式上,GCC和MSVC这2个编译器产生了巨大的分歧。现在,我们将上面这个结构改成下面这样子:

struct { char c;
int b: 1; int i;};
我们在 c 和 i 中插入了一个只占 1 位内存的整数。在 GCC 中,我们测试该结构的长度,发现仍然是 8 个字节,就是说 b 利用了 c 和 i 间的空隙,而没有多占空间。然而在 VC 中我们会发现,结构长达 12 字节。也就是说 b 像其他所有整数一样,在4倍数地址上对齐了。

如果仅仅这样还好办,不幸的是,如果你在b后面再插入一个位域 b2,长度还是12。而如果插入一个 short 型的位域,长度将变成16!

其原因在于 VC 使用了一种古怪的对齐方式,且没有完整的文档描述。基本上,VC 将结构中相邻的相同数据结构位域组成位域组,然后每个位域组都默认要求按其数据类型对齐。另外还有许多不同的例外情况。这样的情况与任何一个普通 GCC 支持的 对齐模式都不同。对齐方式不同意味着什么呢?考虑一下,Windows 是用 VC 编译的,也就是说所有 Windows API 都使用 VC 对齐方式。而如果你用 MinGW GCC编译 Windows 程序,你对所有使用了位域的 Windows API 的调用都将出错!而我们的 GTK+ for Windows 显然也是使用了这种对齐方式。

万幸的是,Windows 版 GCC 在编译时补上了一个新的命令行开关,-mms-bitfields,使其使用 VC 兼容的对齐方式。 Borland 所携带的这个 MinGW GCC也有。而这个开关别的平台上的 gcc 则都没有。加上这个编译开关后生成的代码将与 VC 的代码有相同的行为特征。只是 Borland 自己好像还没有意识到包里的 gcc 有着这么重要的一个开关,我找遍 Build Options Explorer 也没有找到有这个选项的勾可打。好在此时 BCBX 的开放性再次救了我们和它自己一命。在 Options 标签页的最下面,有一个 Other options and parameters 选项。填在里面的参数将被原封不动地拷贝到命令行上。所以我们在里面写上:

-mms-bitfields
OK,现在,激动人心的时刻就要到来了。按下 Run 按钮,我们的第一个 GTK 程序将运行了:


这是 Pango 标记的效果,与原文中的图比较一下。


这是 GTK 多页记事簿

至此,我们的 GTK+ for Windows 开发环境已经搭建成功了,剩下的就只需创意加上努力地 coding 了。

UTF-8, 到处都是 UTF-8
在结束本文前,我们最后看一个例子。《GTK+2.0编程范例》(清华大学出版社出版)一书的作者,宋国伟先生在应用GTK+编程一文中的一个 Helloworld 程序。在这个程序中,有这样一句语句:

g_signal_connect(G_OBJECT(button),"clicked",
G_CALLBACK(on_button_clicked),(gpointer)"你好!\n自由的世界。");
程序本身并没有错,然而,在通常情况下,编译运行以后,并不能看见这句话,相反倒是在控制台上看见如

** (gtkhello.exe:1236): WARNING **: Invalid UTF8 string passed to pango_layout_set_text()
这样的字样。GTK 是一个国际化的工具箱,其内部所有地方都以 Unicode 存储字符串,亦可同屏显示任何语言。它要求所有输入的字符串都为 UTF-8 编码。然而“通常情况下”,我们编辑的中文文件都将以一个 locale encoding,比如 GB2312 编码,来保存。所以只要源文件能保存为 UTF-8,就解决了。BCBX 有这个能力。在cbx项目文件上点右键,选择属性。切换到 General 标签,将 Encoding 设为 UTF8。只有再新建的所有文件都将使用这里选中的编码来保存。


我们新建一个.c文件将内容复制过去。注意文件下方有 UTF8 字样。

然后再编译运行。






Happy Hacking!
文章就写到这里。本文是用 StarOffice 6 写的。说实话,非常的不好用。我常常被迫停下来与其搏斗,摆平后才能继续。最后创建的 html 质量很差,还有问题,得手工修改。

祝大家新年快乐

2004-1-4 4:14 AM

--------------
贴不上图,要看图的话就到他的原来的页面上去看吧

神六航天员所听歌曲名单被披露

http://www.sina.com.cn 2005年10月17日00:19 华夏时报
 “五星红旗迎风飘扬……”16日,记者从远在新疆的喀什测控站得知,神舟六号飞船13日上午11时进入喀什测控弧段后,地面上的测控人员清晰地听见,飞船里响起了《歌唱祖国》的歌声。

  航天员系统负责人吴川生告诉记者,费俊龙和聂海胜两名航天员,这次每人携带了一个精巧的“电子手册”。这个电子手册中,有很多脍炙人口的名曲。电子手册只有两张扑克牌大小,灰黑色,可以用一支专用的小笔点击触摸屏,航天员不仅可以用它查阅飞行程序,还能记录“太空日记”、录制“太空留言”、播放MTV、MP3和小电影,甚至能玩电子游戏。

  都有哪些歌?吴川生如数家珍:“《乌苏里船歌》、《赛马》、《茉莉花》、《吐鲁番的葡萄熟了》、《青藏高原》和《情深意长》、《八月桂花遍地开》、《彩云追月》、《我爱五指山,我爱万泉河》……我们还特意选入了4首反映全国人民心声的歌曲《东方红》、《太阳最红毛主席最亲》、《春天的故事》、《走进新时代》和《又见西柏坡》,还有港澳台同胞喜爱的《我的中国心》、《七子之歌》和《阿里山的姑娘》。”

  除了歌曲,电子手册上还录入了配乐古诗词朗诵,还精选了一些相声和小品。(新浪)

Tuesday, October 25, 2005

了解 SIP-当今最热门的通信协议已经发展成熟- fanqiang.com

www.sipcenter.com (2005-05-09 10:57:17)
介绍

新一代的服务

历史回顾

SIP 的优点:类似 Web 的可扩展开放通信

SIP 会话构成

介绍

通信提供商及其合作伙伴和用户越来越渴求新一代基于 IP 的服务。现在有了 SIP(会话启动协议),一解燃眉之急。SIP 是不到十年前在计算机科学实验室诞生的一个想法。它是第一个适合各种媒体内容而实现多用户会话的协议,现在已成了 Internet 工程任务组 (IETF) 的规范。

今天,越来越多的运营商、CLEC(竞争本地运营商)和 ITSP(IP 电话服务商)都在提供基于 SIP 的服务,如市话和长途电话技术、在线信息和即时消息、IP Centrex/Hosted PBX、语音短信、push-to-talk(按键通话)、多媒体会议等等。独立软件供应商 (ISV) 正在开发新的开发工具,用来为运营商网络构建基于 SIP 的应用程序以及 SIP 软件。网络设备供应商 (NEV) 正在开发支持 SIP 信令和服务的硬件。现在,有众多 IP 电话、用户代理、网络代理服务器、VOIP 网关、媒体服务器和应用服务器都在使用 SIP。

SIP 从类似的权威协议--如 Web 超文本传输协议 (HTTP) 格式化协议以及简单邮件传输协议 (SMTP) 电子邮件协议--演变而来并且发展成为一个功能强大的新标准。但是,尽管 SIP 使用自己独特的用户代理和服务器,它并非自成一体地封闭工作。SIP 支持提供融合的多媒体服务,与众多负责身份验证、位置信息、语音质量等的现有协议协同工作。

本白皮书对 SIP 及其作用进行了概括性的介绍。它还介绍了 SIP 从实验室开发到面向市场的过程。本白皮书说明 SIP 提供哪些服务以及正在实施哪些促进发展的方案。它还详细介绍了 SIP 与各种协议不同的重要特点并说明如何建立 SIP 会话。

新一代的服务

SIP 较为灵活,可扩展,而且是开放的。它激发了 Internet 以及固定和移动 IP 网络推出新一代服务的威力。SIP 能够在多台 PC 和电话上完成网络消息,模拟 Internet 建立会话。

与存在已久的国际电信联盟 (ITU) SS7 标准(用于呼叫建立)和 ITU H.323 视频协议组合标准不同,SIP 独立工作于底层网络传输协议和媒体。它规定一个或多个参与方的终端设备如何能够建立、修改和中断连接,而不论是语音、视频、数据或基于 Web 的内容。

SIP 大大优于现有的一些协议,如将 PSTN 音频信号转换为 IP 数据包的媒体网关控制协议 (MGCP)。因为 MGCP 是封闭的纯语音标准,所以通过信令功能对其进行增强比较复杂,有时会导致消息被破坏或丢弃,从而妨碍提供商增加新的服务。而使用 SIP,编程人员可以在不影响连接的情况下在消息中增加少量新信息。

例如,SIP 服务提供商可以建立包含语音、视频和聊天内容的全新媒体。如果使用 MGCP、H.323 或 SS7 标准,则提供商必须等待可以支持这种新媒体的协议新版本。而如果使用 SIP,尽管网关和设备可能无法识别该媒体,但在两个大陆上设有分支机构的公司可以实现媒体传输。

而且,因为 SIP 的消息构建方式类似于 HTTP,开发人员能够更加方便便捷地使用通用的编程语言(如 Java)来创建应用程序。对于等待了数年希望使用 SS7 和高级智能网络 (AIN) 部署呼叫等待、主叫号码识别以及其他服务的运营商,现在如果使用 SIP,只需数月时间即可实现高级通信服务的部署。

这种可扩展性已经在越来越多基于 SIP 的服务中取得重大成功。Vonage 是针对用户和小企业用户的服务提供商。它使用 SIP 向用户提供 20,000 多条数字市话、长话及语音邮件线路。Deltathree 为服务提供商提供 Internet 电话技术产品、服务和基础设施。它提供了基于 SIP 的 PC 至电话解决方案,使 PC 用户能够呼叫全球任何一部电话。Denwa Communications 在全球范围内批发语音服务。它使用 SIP 提供 PC 至 PC 及电话至 PC 的主叫号码识别、语音邮件,以及电话会议、统一通信、客户管理、自配置和基于 Web 的个性化服务。

某些权威人士预计,SIP 与 IP 的关系将发展成为类似 SMTP 和 HTTP 与 Internet 的关系,但也有人说它可能标志着 AIN 的终结。迄今为止,3G 界已经选择 SIP 作为下一代移动网络的会话控制机制。Microsoft 已经选择 SIP 作为其实时通信策略并在 Microsoft XP、Pocket PC 和 MSN Messenger 中进行了部署。Microsoft 同时宣布 CE.net 的下一个版本将使用基于 SIP 的 VoIP 应用接口层,并承诺向用户 PC 提供基于 SIP 的语音和视频呼叫。

另外,MCI 正在使用 SIP 向 IP 通信用户部署高级电话技术服务。用户将能够通知主叫方自己是否有空以及首选的通信方式,如电子邮件、电话或即时消息。利用在线信息,用户还能够即时建立聊天会话和召开音频会议。使用 SIP 将不断地实现各种功能。

历史回顾

SIP 出现于二十世纪九十年代中期,源于哥伦比亚大学计算机系副教授 Henning Schulzrinne 及其研究小组的研究。Schulzrinne 教授除与人共同提出通过 Internet 传输实时数据的实时传输协议 (RTP) 外,还与人合作编写了实时流传输协议 (RTSP) 标准提案,用于控制音频视频内容在 Web 上的流传输。

Schulzrinne 本来打算编写多方多媒体会话控制 (MMUSIC) 标准。1996 年,他向 IETF 提交了一个草案,其中包含了 SIP 的重要内容。1999 年,Shulzrinne 在提交的新标准中删除了有关媒体内容方面的无关内容。随后,IETF 发布了第一个 SIP 规范,即 RFC 2543。虽然一些供应商表示了担忧,认为 H.323 和 MGCP 协议可能会大大危及他们在 SIP 服务方面的投资,IETF 继续进行这项工作,于 2001 年发布了 SIP 规范 RFC 3261。

RFC 3261 的发布标志着 SIP 的基础已经确立。从那时起,已发布了几个 RFC 增补版本,充实了安全性和身份验证等领域的内容。例如,RFC 3262 对临时响应的可靠性作了规定。RFC 3263 确立了 SIP 代理服务器的定位规则。RFC 3264 提供了提议/应答模型,RFC 3265 确定了具体的事件通知。

早在 2001 年,供应商就已开始推出基于 SIP 的服务。今天,人们对该协议的热情不断高涨。Sun Microsystems 的 Java Community Process 等组织正在使用通用的 Java 编程语言定义应用编程接口 (API),以便开发商能够为服务提供商和企业构建 SIP 组件和应用程序。最重要的是,越来越多的竞争者正在借助前途光明的新服务进入 SIP 市场。SIP 正在成为自 HTTP 和 SMTP 以来最为重要的协议之一。

SIP 的优点:类似 Web 的可扩展开放通信

使用 SIP,服务提供商可以随意选择标准组件,快速驾驭新技术。不论媒体内容和参与方数量,用户都可以查找和联系对方。SIP 对会话进行协商,以便所有参与方都能够就会话功能达成一致以及进行修改。它甚至可以添加、删除或转移用户。

不过,SIP
不是万能的。它既不是会话描述协议,也不提供会议控制功能。为了描述消息内容的负载情况和特点,SIP 使用 Internet 的会话描述协议 (SDP) 来描述终端设备的特点。SIP 自身也不提供服务质量 (QoS),它与负责语音质量的资源保留设置协议 (RSVP) 互操作。它还与若干个其他协议进行协作,包括负责定位的轻型目录访问协议 (LDAP)、负责身份验证的远程身份验证拨入用户服务 (RADIUS) 以及负责实时传输的 RTP 等多个协议。

SIP 规定了以下基本的通信要求:

1. 用户定位服务
2. 会话建立
3. 会话参与方管理
4. 特点的有限确定


SIP 的一个重要特点是它不定义要建立的会话的类型,而只定义应该如何管理会话。有了这种灵活性,也就意味着 SIP 可以用于众多应用和服务中,包括交互式游戏、音乐和视频点播以及语音、视频和 Web 会议。

下面是 SIP 在新的信令协议中出类拔萃的一些其他特点

SIP 消息是基于文本的,因而易于读取和调试。新服务的编程更加简单,对于设计人员而言更加直观。

SIP 如同电子邮件客户机一样重用 MIME 类型描述,因此与会话相关的应用程序可以自动启动。

SIP 重用几个现有的比较成熟的 Internet 服务和协议,如 DNS、RTP、RSVP 等。不必再引入新服务对 SIP 基础设施提供支持,因为该基础设施很多部分已经到位或现成可用。

对 SIP 的扩充易于定义,可由服务提供商在新的应用中添加,不会损坏网络。网络中基于 SIP 的旧设备不会妨碍基于 SIP 的新服务。例如,如果旧 SIP 实施不支持新的 SIP 应用所用的方法/标头,则会将其忽略。

SIP 独立于传输层。因此,底层传输可以是采用 ATM 的 IP。SIP 使用用户数据报协议 (UDP) 以及传输控制协议 (TCP),将独立于底层基础设施的用户灵活地连接起来。

SIP 支持多设备功能调整和协商。如果服务或会话启动了视频和语音,则仍然可以将语音传输到不支持视频的设备,也可以使用其他设备功能,如单向视频流传输功能。

SIP 会话构成

SIP 会话使用多达四个主要组件:SIP 用户代理、SIP 注册服务器、SIP 代理服务器和 SIP 重定向服务器。这些系统通过传输包括了 SDP 协议(用于定义消息的内容和特点)的消息来完成 SIP 会话。下面概括性地介绍各个 SIP 组件及其在此过程中的作用。

SIP 用户代理 (UA) 是终端用户设备,如用于创建和管理 SIP 会话的移动电话、多媒体手持设备、PC、PDA 等。用户代理客户机发出消息。用户代理服务器对消息进行响应。

SIP 注册服务器是包含域中所有用户代理的位置的数据库。在 SIP 通信中,这些服务器会检索参与方的 IP 地址和其他相关信息,并将其发送到 SIP 代理服务器。

SIP 代理服务器接受 SIP UA 的会话请求并查询 SIP 注册服务器,获取收件方 UA 的地址信息。然后,它将会话邀请信息直接转发给收件方 UA(如果它位于同一域中)或代理服务器(如果 UA 位于另一域中)。

SIP 重定向服务器允许 SIP 代理服务器将 SIP 会话邀请信息定向到外部域。SIP 重定向服务器可以与 SIP 注册服务器和 SIP 代理服务器同在一个硬件上。

以下几个情景说明 SIP 组件之间如何进行协调以在同一域和不同域中的 UA 之间建立 SIP 会话:

在同一域中建立 SIP 会话

下图说明了在预订同一个 ISP 从而使用同一域的两个用户之间建立 SIP 会话的过程。用户 A 使用 SIP 电话。用户 B 有一台 PC,运行支持语音和视频的软客户程序。加电后,两个用户都在 ISP 网络中的 SIP 代理服务器上注册了他们的空闲情况和 IP 地址。用户 A 发起此呼叫,告诉 SIP 代理服务器要联系用户 B。然后,SIP 代理服务器向 SIP 注册服务器发出请求,要求提供用户 B 的 IP 地址,并收到用户 B 的 IP 地址。SIP 代理服务器转发用户 A 与用户 B 进行通信的邀请信息(使用 SDP),包括用户 A 要使用的媒体。用户 B 通知 SIP 代理服务器可以接受用户 A 的邀请,且已做好接收消息的准备。SIP 代理服务器将此消息传达给用户 A,从而建立 SIP 会话。然后,用户创建一个点到点 RTP 连接,实现用户间的交互通信。





在不同的域中建立 SIP 会话

本情景与第一种情景的不同之处如下。用户 A 邀请正在使用多媒体手持设备的用户 B 进行 SIP 会话时,域 A 中的 SIP 代理服务器辨别出用户 B 不在同一域中。然后,SIP 代理服务器在 SIP 重定向服务器上查询用户 B 的 IP 地址。SIP 重定向服务器既可在域 A 中,也可在域 B 中,也可既在域 A 中又在域 B 中。SIP 重定向服务器将用户 B 的联系信息反馈给 SIP 代理服务器,该服务器再将 SIP 会话邀请信息转发给域 B 中的 SIP 代理服务器。域 B 中的 SIP 代理服务器将用户 A 的邀请信息发送给用户 B。用户 B 再沿邀请信息经由的同一路径转发接受邀请的信息。





无缝、灵活、可扩展:展望 SIP 未来

SIP 能够连接使用任何 IP 网络(有线 LAN 和 WAN、公共 Internet 骨干网、移动 2.5G、3G 和 Wi-Fi)和任何 IP 设备(电话、PC、PDA、移动手持设备)的用户,从而出现了众多利润丰厚的新商机,改进了企业和用户的通信方式。基于 SIP 的应用(如 VOIP、多媒体会议、push-to-talk(按键通话)、定位服务、在线信息和 IM)即使单独使用,也会为服务提供商、ISV、网络设备供应商和开发商提供许多新的商机。不过,SIP 的根本价值在于它能够将这些功能组合起来,形成各种更大规模的无缝通信服务。

使用 SIP,服务提供商及其合作伙伴可以定制和提供基于 SIP 的组合服务,使用户可以在单个通信会话中使用会议、Web 控制、在线信息、IM 等服务。实际上,服务提供商可以创建一个满足多个最终用户需求的灵活应用程序组合,而不是安装和支持依赖于终端设备有限特定功能或类型的单一分散的应用程序。

通过在单一、开放的标准 SIP 应用架构下合并基于 IP 的通信服务,服务提供商可以大大降低为用户设计和部署基于 IP 的新的创新性托管服务的成本。它是 SIP 可扩展性促进本行业和市场发展的强大动力,是我们所有人的希望所在。
原文链接:http://www.sipcenter.com/sip.nsf/html/Chinese+SIP+Overview

第一次小组开会!

自己没准备什么东西,就把自己看的一些VoIP的东西简单的讲了一下,上周太忙了,这周加油了!!!

Sunday, October 23, 2005

自然哲学课老师的话....

"以前牛顿的《自然哲学的数学原理》在解放前有中译本,但是大家的评论都不好,后来在80年代初,当时就有人提议想找一些物理学家重新翻译此书,因为这本书太经典了,没有人敢翻(翻的不好大家都会鄙视你的)。"

然后老师说了一句话:“要是放在现在,什么书不敢出,一个老师找几个研究生,2/3个月就能出一本书!!!!!”

汗。。。。。。
现在的学术气氛啊。现在中国的教育啊

Thursday, October 06, 2005

实用!破解XP最新验证程序三种方案

http://publish.it168.com/2005/0801/20050801049101.shtml
第一种方法:通过IE7 (beta) 跳过验证法

1、下载 XP版IE7 并解压缩至任何文件夹。

2、用十六进制编辑器,比如UltraEdit32 ,打开update\iecustom.dll。

3、搜索16位文本至0x1034h行(也就是十进制的4148),修改该行的0F 95成为 0F 94。

4、保存文件。使用IE7 (beta)去验证页面。

原文地址:http://www.extended64.com/blogs/rafael/archive/2005/07/28/1051.aspx

qq的天气情况是什么玩意啊, 一点都不准!!!

现在北京正阴天,下着小雨呢!!!!
可我的qq上竟然还是大太阳!!!!!!