《Asterisk 使用资料》..

  • 格式:doc
  • 大小:156.00 KB
  • 文档页数:33

Asterisk目录及配置文件

/etc/asterisk/ Asterisk主目录,包含其它关于Asterisk的配置文件; *zaptel.conf这个配置文件放在/etc,因为其它软件也可以使用Zaptel这个硬件及其驱动,所以不是放在/etc/asterisk里.

/usr/lib/asterisk/modules/ 这个目录包含所有可以加载Asterisk模块(应用程序\编辑器\格式和有用通道),在Asterisk启运时会加载这些模块(可以编辑modules.conf).

/var/lib/asterisk/ 比较重要的是astdb文件与agi-bin目录; astdb包含Asterisk当地数据库信息.

sounds/ 所有声音提示的文件在里面,包括Asterisk原代码中的sounds.txt文件

mohmp3/ 如果配置了音乐保持,应用程序会在这个目录下查找mp3(用CBR从文件中去除身份标签).

keys/ 使用公钥和私钥系统认证与一个由RSA数字签名形成的一对等连接.公钥和私钥的扩展名分别为.pub和.key

firmware/ 这个目录含了很多Asterisk相兼容的设备固件,它只有iax/这个子目录,其中有Digium的IAXy的二进制固件镜像.

images/ 只有在较多的支持并且利用图解式的图像设备被发布,这个目录将会与相应的目录有更大的关联.

/var/lib/asterisk/agi-bin agi-bin包含所有脚本,可以通过许多已经建立的AGI应用程序与Asterisk连接.

/var/spool/asterisk

outgoing/

gcall/

tmp/

voicemail/

================配置文件================

/etc/asterisk/asterisk.conf 主要配置文件,

/etc/zaptel.conf 硬件接口的基本层.修改这个配置文件要用modprobe装载Linux

Kernel使用模块.

/etc/asterisk/zapata.conf 为硬件配置Asterisk的接口.

/etc/asterisk/extensions.conf 拨号方案.

/etc/asterisk/sip.conf SIP协议配置文件

/etc/asterisk/iax.conf 呼入和呼出IAX通道

/etc/asterisk/extensions.conf 拨号方案配置文件 /etc/asterisk/moduprobe.conf 加载模块配置文件

Asterisk developer\'s documentation 翻译计划

by serva

今天,Asterisk已经成为一个VOIP业界使用最广泛的一个集成电信级别PBX的工具,IPPBX如今已经成为VOIP商家争夺的一块重要市场,在我们越来越熟悉使用Asterisk的同时,我们希望能够越来越深入的了解asterisk,特别是对于开发人员,如果有自己特定的需求,在复杂的asterisk文件夹和asterisk的源代码文件中迷失了方向,不知所措。

在使用asterisk后,我们知道, Asterisk就是一台企业级的电话交换机,它功能的特点有:语音邮件,电话会议,呼叫路由,呼叫列队,呼叫转移,音乐保持等。然后这些功能是如何实现的,SIP和H323之间是如何进行通话的?甚至,我们也许也要问更基础一点的问题,SIP和SIP之间是如何进行通话?信令是如何控制,通话流程是怎么样?包括语音是如何进行交换传输的?这些都是我们开发人员希望了解,或者说对asterisk有不同需求的人,需要了解的。但是对于那么复杂的asterisk的代码,我们如何下手?飞云提出了对/doxygen/进行中文的翻译,这样可以使得有需要的人,能够初步的了解Asterisk的文件结构和文件的大概功能,可以使得更多的人参与到我们的队伍中来,一起完成对asterisk所有源码的注释。

在/doxygen/中,我们可以看到modules这个选项,在1.4版本中,出现了Main文件夹,将之间版本的直接放在asterisk的根目录下的一些文件,转移到Main文件夹中,其中Main文件夹中很多文件就是对应的Main_options module。AMI functions 主要对应的源码放在manager.c文件中。此外,还有CLI_functions,CDR,Asterisk Channel

Drivers,Dial plan applications等。

对asterisk源码的重要性和规整,如下表,按照modules来放置。 Format和codec的部分,由于需要的知识比较广,也比较专业,偏向于编码方面,而对于asterisk本身而言,在意的不是format或者codec本身,而是他们提供出来的接口,使得asterisk在媒体数据交换的时候,可以查到对应的编码,或者可以调用对应的压缩算法而已。所以我建议,只需要翻译有代表的几个。上面的列表中,列出来的只是.c的文件,我们翻译的时候,会对应到很多相应的.h文件,其中很多.h文件包含了大量的数据结构的定义,是对于理解asterisk非常有帮助的。

在/doxygen/中,file list中对应的文件,都会有Data Structures,而每个文件的Data Structures里面包含的结构,都可以Data Structures总的列表中找到Struct Reference,所以,我们在翻译的时候,以.c文件为主要翻译的对象,其中有函数的说明,程序中代码段的注释,还有其他的一些文字性的说明,然后.c文件对应的Data Structures

需要翻译到总的列表中的Struct Reference、也是归于.c文件翻译的范围之内。

此外,在/doxygen/中,还有Modules,Directories和Related Pages目录,Modules,Directories目录需要翻译当前页连接文件的内容。这个对于代码是相关联的。而Related Pages目录的东西,属于周围相关文档,可以参照翻译的人数来决定。

翻译只是我们熟悉的第一步,其实/doxygen/中,做的代码注释和介绍,是比较有限的,很多方面都没有补齐,我们的最终的目的是注释并掌握整个asterisk的源代码,便于我们自己利用。我们需要通过上面的翻译完成之后,按照翻译整理出一个asterisk的框架结构,包括,核心,扩展,以及应用等。这样可以使得,在代码注释有更多的人,真正能够入手到代码注释,这样可以保证代码注释的质量。

模块 文件 功能 重要性 分工

Main_options

asterisk.c ASTERISK的核心执行程序, 执行着PBX的核心程序和CLI的接口程序 * 飞云

pbx.c PBX的核心程序 * 大头,篇幅较大,后期还要增加人手 channel.c channel驱动的管理和功能接口 * voipmaker&steven(原来是serva,篇幅较大,后期还要增加人手)

rtp.c rtp和rtcp协议的实现,NAT的RTP穿越的实现,转换成asterisk特有的frame形式的实现 * amy

config.c 配置文件的读取和解析,转换成对应的数据结构

file.c 通用文件读写接口,包括日志,音频文件等。

frame.c asterisk的特有的音频形式的处理

io.c I/O管理,对所有的asterisk的channel,或者是rtp做统一的管理

loader.c asteriskl的模块启动程序

app.c extension功能的调度和通用功能的接口 * meng9999

say.c asterisk报声音等的接口

sched.c asterisk的任务调度管理函数(有定时器的功能)

dsp.c 软件方式实现dsp的功能

db.c asterisk的数据库管理接口

translate.c 语音或者视频数据的codec转换程序

astmm.c asterisk内存管理程序

Dial plan

applications app_exec.c 所有的app总的执行调度程序 * liumin

app_dial.c dial函数和retrydial 函数对应的实现 * wky,篇幅较大,后期还要增加人手

app_macro.c macro函数执行和实现

app_echo.c echo 函数实现

app_meetme.c meetme会议的实现,提供函数接口给extension调用

app_mixmonitor.c MixMonitor函数,录音包括混音的功能

app_queue.c 队列的实现

app_read.c Read函数的实现,可以用来读取变量的值

app_voicemail.c 语音信箱,包括录制语音,读取语音,发送语音邮件等功能

app_stack.c Stack 应用,Gosub, Return等函数的实现

app_dictate.c Dictate函数实现,模拟指示的生成和发送

app_chanspy.c 监听所有channel语音信息的实现

app_mp3.c mp3文件播放函数的实现

app_playback.c 可以播放任何的asterisk支持的声音文件格式 * (前面有两个空格的)QQ糖

app_softhangup.c 挂机extension函数的实现

app_transfer.c extension函数,转移一路通话

Asterisk Channel

Drivers chan_sip.c SIP协议实现 * 大唐盛世,篇幅较大,后期还要增加人手

chan_h323.c H323协议的实现 * 肉夹馍

chan_local.c local的实现,asterisk在extension中独有的channel驱动程序 * kices

chan_agent.c * leeb

chan_zap.c zaptel的应用层驱动,为zaptel的硬件调用和控制提供接口