Asterisk 入门教程

Asterisk 入门教程
Asterisk 入门教程

Asterisk 入门教程

subscriber:加入某个group,从而遵从某一个call restricion

subscriber group:可以使用1种call restriction。

call restriction:将numbering plan中各项取出,各自组成成不同的呼叫限制方案numbering plan:通用,是一个整体的计划,里面包括长途,本地,等各种形式的方案

-------------------------------------------------------------

以上,用于拨入号码的预处理,实际上是一种过滤,下面才是真正的呼叫处理。

--------------------------------------------------------------

route:一种策略,根据号码匹配的模式,选择走哪个trunk。

trunk:实际上做通一个链路,供route选择。

analog的,一个POTS就是一条analog trunk

analog的数量由设备定,

ip trunk没有限制数量,并且一个ip trunk连到对方IPPBX后,对方的subscriber 数量是不确定的,由那个IP PBX决定。

Asterisk,开始吧

--------------------------------------------------------------

什么是asterisk?开源电话平台

Asterisk 通过了电话的开源平台。基本上就是一个软件的PBX。

最初是Digium 公司的Mark Spencer 编写的,这个公司就是他创立的,专门生产并销售Asterisk使用的硬件。Asterisk 简直就是一场电话的革命。

为什么使用Asterisk?

现在电信行业的混乱,因为各种专利技术应用在各种层次的网络上,导致很大的混乱。Asterisk 就是答案——给电信行业普遍的混乱环境带来秩序的革命。

专利技术有什么错?

没错,如果专利技术独立工作的话。就像你有剃须刀和剃须膏没错一样!但是让各种技术互相操作,专利技术就会除了要价过高、客户不满,以及缓慢的开发速度等问题之外的刻板和局限。

我们要Asterisk做什么?

根据情况而定。在一个小实验室,一个pc(x86),500MHz 的奔三,合适的内存,合适的电源,还有Linux (其他os也可以支持)。此外还有Digium 板卡插在系统中,以便连接本地PSTN。

Asterisk支持什么技术?

与V oIP, PSTN, ISDN, AIX, SIP有关的任何东西。

比较好的Asterisk参考书?

<电话未来之路>(http://www.asterisk-docs.o...

找到,编译,安装,在第3,4章中,包含了到哪里去找那些文件之类的信息。还有编译时的需要注意的选项,需要配置的模块,和在运行时载入的模块。

相关:

gcc, glibc-kernheaders, cpp, binutils, glibc-headers, glibc-devel

此外, 安装bison 和open ssl

大多数标准的distro都自带

推荐distro:基于RedHat和RH的distro (版本没指定)

组件:

Asterisk

Zaptel

libpri

Asterisk:Asterisk 程序文件,还有配置,监控的工具

Zaptel: Zapata 项目中硬件的核心模块和驱动,如果要与PSTN或者其他网络接口,需要它。

libpri: 与Primary Rate Interface ISDN的接口库。

还有,如果基准时间参考,需要安装ztdummy 模块(第3章中解释)

有用的网页:

PSTN: https://www.360docs.net/doc/ce1796925.html,/wi...

G.729: https://www.360docs.net/doc/ce1796925.html,/wi...

G.711: https://www.360docs.net/doc/ce1796925.html,/CI...

Digium: https://www.360docs.net/doc/ce1796925.html,/wi...

Asterisk: https://www.360docs.net/doc/ce1796925.html,/wi...

Free World Dial-up: https://www.360docs.net/doc/ce1796925.html,/wi...

Asterisk Architecture: http://www.asteriskdocs.or...

重要链接:

Putty:

http://www.chiark.greenend...

Asterisk 通道:

https://www.360docs.net/doc/ce1796925.html,/w...

重要信息:

Asterisk machine on the LAN: 90.0.0.3

Asterisk的目录结构:(更确切的说,是Asterisk使用的目录)

/etc

包含了zaptel.conf文件(只有一个)

/usr/lib/asterisk/modules

所有的asterisk可载入的模块都在这里,一般来说,所以的模块都是启动的时候载入的

注意:要更改启动时载入的模块,或者是模块载入的方式,你可以修改/etc/asterisk/modules.conf文件

/etc/asterisk

包含了所有的asterisk配置文件

/var/lib/asterisk

agi-bin: agi 脚本

固件:兼容设备固件

映像:在这个目录下寻找映像(如果通道支持)

关键字:这个文件中有基于RSA一类的认证关键字

mohmp3:当配置了持有音乐的时候,这个目录是放置mp3的(注意,mp3应该使用恒比特率编码,并且没有id标签。)

sounds:所有的语音提示

/var/spool/asterisk

qcall:撤销了——包含了特殊呼叫方法的呼叫信息文件——不是打电话的好方法,因为这种方式太硬性了——不再使用。使用outgoing替代。

Outgoing:现在打电话的法国闹事——呼叫信息目录普遍使用。

Tmp:中间/临时数据

V oicemail:语音和问候语。通过修改/etc/asterisk/voicemail.conf文件可以修改。

/var/run

处理系统中运行进程的id(包括asterisk)

/var/log/asterisk

Asterisk在这里生产日志,通过/etc/asterisk/logger.conf来配置。

/var/log/asterisk/cdr-csv

用来存储呼叫详细记录,逗号分割,例如csv(地址簿格式)

重要:很多时间会使用cdr,ast附件包的代码可以在mysql数据库中存储cdr,用于记录呼叫详细记录

外部交换借口/通道接口

FXO :Digium Dev-Lite kit上的红口:Foriegn eXchange Office:这个通道(接口)的动作角色是fxo,利用fxs协议——就是说这个模块需要插入到pstn。

FXS(Digium卡的绿口):Foriegn eXchange Station,它表现得像fxs,读的是fxo协议——所以要插入终端设备——注意,这里插pstn,会烧坏!

配置Foriegn eXchange Station文件:

让你对常见的通道接口进行管理/comm 通道硬件,决定如何在连接的设备之间进行握手。

注意:使用zapata.conf文件完成非常重要的通道配置——激活或者失效类似回形针、回声处理之类的功能。详细程度到pstn添加到那个端口,信令控制等——如果这里配置不正确,甭指望系统能工作正常。

拨号计划:

在extensions.conf中指定。

Dialplan:

拨号计划:在/etc/asterisk 文件中

拨号计划语法由以下组成部分:

上下文(context) :

写在[]里面, 定义上下文来创建独立的空间

注意:最重要的一个上下文的应用就是提供安全性:要获得更多信息,看安装文件中SECURITY文件。

例如:

[incoming]

statement 1---

statement 2---

[next-context]

注意:当下一个定义的上下文开始的时候,现在这个上下文就结束了。

分机:非常简单。与普通的PBX一样。分机号的意思是你在连接到系统之后拨打的号码以获得某个终端/服务-不仅是asterisk

分机以如下格式定义:

exten =>

分机的组成部分:exten => name, priority, application()

例如exten => 123, 1, Answer() 的意思是当另一端拨打123,调用asterisk/apps /Answer(),优先级别为1。优先级别通常从1开始。数字越小,级别越高。例如,级别1就比级别2要高。(现在,有一些称为非数字化的级别——非常好,继续读!)一个很好的例子:

exten => 123, 1, Answer()

exten => 123, 2, Hangup()

会发生什么情况,无论什么人拨打123,系统都会首先执行answer(),然后当answer结束的时候,过渡到hungup()。你看,都是执行的顺序和优先级。

还有一些特殊的分机,例如s,比如我们前面的例子中123的位置,后面再解释

记住:

所有的优先级别都是从1开始,其他的必须遵循这个顺序。Ast不会处理其他的,会认为是出错。

分机可是任何,不仅是数字,例如名字。

优先级:我想在前面讨论分机的时候已经讨论了优先级别。

非数字的优先级:

我们会在Answer() ... Hangup() 后使用n来代替实际的优先级别数字。

exten => 123, 1, Answer()

exten => 123, n, Hangup()

Asterisk会自动给优先级别+1, 所以你就不用每次记着并输入这个数字了

Also, in Asterisk v2, we've got a way to put labels tp priorities:

exten => 123, 1, Answer()

exten => 123, n(Hangup), Hangup()

Applications:

应用程序:

应用程序是真正执行你的拨号计划的程序。拨号计划定义了顺序——应用程序就按照它去做。工作内容可以是任何东西,从播放声音到接受当前通道上的按键输入。(https://www.360docs.net/doc/ce1796925.html,/w...了解asterisk通道,虽然听起来很好笑,但是我是对通道很迷惑)

简而言之,应用程序是真正干活的,当有人拨打123的时候,参考以上示例。

我们可以通过友好的邻居应用程序传递参数,把它们放在逗号或者竖线分割的列表中。

例如:

exten => 123, 1, DoSomething(Arg_1,Arg_2,Arg_3,..,Arg_n)

或者exten => 123, 1, DoSomething(Arg_1|Arg_2|Arg_3|..|Arg_n)

开源中,你随意!

特别分机:

‘s’是个特别的分机——它处理环境中任何的输入,没有特定目标。S意味着开始。

例如

[incoming]

exten => s,1,application( )

exten => s,2,application( )

exten => s,3,application( )

现在,只要呼叫进入,就带有最高级别,进入s。当我们补充了应用程序之后,我们就是创建了自己的拨号计划

填入应用程序名(分配正确的优先级别)

exten => s,1,Answer( )

exten => s,2,Playback(hello-world)

exten => s,3,Hangup( )

这就是asg拨号计划了

这个拨号计划会:

1. 接电话(接听已经建立了通道的呼叫,这个呼叫就是从这个通道来的,在进行任何处理之前,先把电话接听.没有参数传递。

2. 播放语音,给出了语音文件的路径,通常在/var/lib/asterisk/sounds/, gsm 格式,后缀名为.gsm。如果有多个文件都符合这个文件名,ast就播放那个cpu负载(翻译成本)最小的,翻译成本与不同的文件格式有关。在cli下面输入show translation可以看到,参数,语音文件名,还有路径,如果这个文件没有在标准路径下。

3. 挂掉活动通道,主叫方就是从这个通道进行呼叫的,很必要,确保主叫没有继续拨号计划。没有参数

为拨号计划添加逻辑:

Background() 应用程序: 它与playback() 非常像, 只是在播放语音的时候,如果用户拨打号码,语音中断,然后呼叫那个分机。例如,主叫拨打分机x,会以第一优先级转到分机x上面去。

语法:

Background(sound_file)

例子:

extend => s,n,Background(sound_filename)

回拨语音文件,直到用户输入分机号,——在创建语音菜单的时候有用。

但是playback()不会接受输入,会一直拨,直到语音文件结束。

Goto() 应用: 如其名,主叫跳到某个context / extension / priority上去.

语法:

Goto(context, extension, priority)

例子:

exten => 1,n,Goto(incoming,s,1)

把控制权交给下一个上下文,分机s, 优先级别1 –预先订制拨号计划跳转的流程,

链接:

Xlite sip电话- 免费的: https://www.360docs.net/doc/ce1796925.html,/index....

载入Ubuntu:

Ubuntu, 是一个比较新的桌面友好的distro ,放在Asterisk专用的机器上.

重要内容:

Ubuntu 很好–对桌面来说

我们必须装很多内容才能在ast服务器上用.

所以一般来说: 不要使用桌面disrto ,如果你计划在上面跑服务器的话- Fedora 是更好的选择.

但是也没有坏处- 有耐心,万事可达.

载入Ubuntu的基本原因就是为了图形化工具Firefox和Acrobat。只是费很多CPU和内存,x历史遗留问题。

所以我们继续的是一台新机器,从新开始运行ast

下面开始真正体验ast系统。经过良好调整的Ubuntu可以阅读PDF文档。

带有safe_asterisk 脚本的ast二进制文件在/usr/sbin中,昨天咱们编译过了如果ast异常,safe_asterisk脚本会引起ast的core dump,默认情况下是在第9终端开启ast。

开始ast我们使用safe_asterisk脚本,或者运行ast二进制文件来手工启动ast。在运行safe_asterisk脚本的时候,在9终端上载入ast的CLI(终端号可以配置),执行ast二进制文件载入ast,作为后台程序

我们还可以用初始化脚本来启动或者关闭ast。

见书71页

求助:

asterisk -h

其它命令行参数:

-c 显示Asterisk CLI (或控制面板)

-v 设置CLI 的详细程度- 例如v (verbose), vv (very verbose), vvv (very very verbose)

-g 告诉asterisk 创建core dump,一会用gdb调试

-r 远程-连接到一个已经运行的Asterisk进程上(与网络远程连接没有关系)

-rx远程执行–执行引号内的命令( "restart now") 不需要真的启动CLI

还有好多命令

Beginning an affair with Asterisk - Day 6

asterisk-dev 准备好-

asterisk-dev的配置:

Distro: Ubuntu 5.10 (Breezy Badger)

Asterisk version: 1.2.1

运行配置: 图形下完全多用户模式(运行级别5)

asterisk-dev 机器上还装载了很多其他内容.

本章的任务:

1. Linux下Xlite客户端的配置,以便与asterisk-dev上我们的测试Asterisk 服务器共同工作. 链接:

Xten 网站: https://www.360docs.net/doc/ce1796925.html,/

Xlite 下载页面e: https://www.360docs.net/doc/ce1796925.html,/index....

2. 录些gsm 音频格式的音频文件:

welcome messege

timeout messege

我们使用免费的基于Windows的软件(aghhh..) 来进行录制,格式转换和音频标准化. 它工作非常好,并且最重要符合我们的要求- 快速录制,不需要撞墙很长时间。

链接: 录制/ 转换/ 处理软件-

录制: Recordpad Trial V ersion - https://www.360docs.net/doc/ce1796925.html,.au/reco...

音频转换(WA V to GSM): Switch Freeware V ersion - https://www.360docs.net/doc/ce1796925.html,.au/swit...

音频编辑和处理: Wavepad Trial V ersion - https://www.360docs.net/doc/ce1796925.html,.au/wave...

轻松快速创建音频文件,转换格式,并且标准化到正常的语音级别,让声音没有分叉。可惜不是开源并且在Linux下... .

注意:以上软件只是生成测试录音,为学习而已。Enterux Solutions (或者客户端, Enterux) 许可证要求不需用于任何商业目的。

这个开源的zgsmplay 可用来测试我们的新gsm音频文件,在Linux上

链接: https://www.360docs.net/doc/ce1796925.html,/relea...

3. 写第一个拨号方案:

我们的分机配置文件extensions.conf如下:

[incoming]

欢迎界面,

exten => s,1,Background(enterux/welcome)

exten => i,1,Playback(enterux/invalid-extension)

exten => i,n,Goto(incoming,s,1)

exten => t,1,Playback(enterux/call-will-be-disconnected)

exten => t,n,Hangup()

; 呼叫方可以拨打的用户分机

exten => 0,1,Dial(SIP/0) ; Operator

exten => 1,1,Dial(SIP/1) ; Sales staff –使用&连接多个接收者,例如SIP/staff_1&Sip/staff_2 –最先接起来的电话就被连接。

exten => 2,1,Dial(SIP/2) ; Support staff -使用&连接多个接收者,例如SIP/staff_1&Sip/staff_2 –最先接起来的电话就被连接。

exten => 202,1,Goto(incoming,s,1)

exten => 201,1,Goto(incoming,s,1)

要使上面的拨号计划起作用,sip.conf 需要如下设置:

[201]

user=201

type=friend

secret=1234

host=dynamic

context=incoming

[202]

user=202

type=friend

secret=1234

host=dynamic

context=incoming

[1234]

user=1234

type=friend

secret=1234

host=dynamic

context=incoming

;用户添加0-operator, 1-sales ,2-support

[0]

user=0

type=friend

secret=1234

host=dynamic

context=incoming

[1]

user=1

type=friend

secret=1234

host=dynamic

context=incoming

[2]

user=2

type=friend

secret=1234

host=dynamic

context=incoming

配置Xlite,完成拨号计划。

参考103页(拨号计划基本章节)

4.观察结果:

如果一个登录到ast服务器上的一个软电话拨打201/202,预记录就会播放欢迎语音。"Welcome to Enterux Solutions. Press 0 for an operator, 1 for sales and 2 for Support. Thank you." 拨打0,1 ,2之后,通过Dial() 应用程序拨打合适的用户

如果分机号码不对,就播放语音

"Y ou have dialled an invalid extension. Please try again.".

软件电话Xlite 没有声音了,出错说找不到声音驱动

分别试验了Kiax ,Linphone. Twinkle

Twinkle好用了. (仍然出错"无法读.DCOPserver_asterisk-dev_0; Please check that the dcopserver program is running" 在启动栏–这样就好了).继续,测试拨号计划

链接:

Twinkle SoftPhone: http://www.twinklephone.co...

装好Twinkle (and a little prayer) 我们修改#1号拨号计划:

extensions.conf 文件:

[incoming]

; 欢迎

exten => s,1,Background(enterux/welcome)

exten => i,1,Playback(enterux/invalid-extension)

exten => i,n,Goto(incoming,s,1)

exten => t,1,Playback(enterux/call-timeout)

exten => t,n,Playback(enterux/thankyou)

exten => t,n,Hangup()

exten => 0,1,Playback(enterux/connecting-to-operator)

exten => 0,n,Dial(SIP/0,10,r) ; Operator

exten => 0,n,Playback(enterux/line-not-answering) exten => 0,n,Hangup()

exten => 0,102,Playback(enterux/line-busy)

exten => 0,103,Hangup()

exten => 1,1,Playback(enterux/connecting-to-sales) exten => 1,n,Dial(SIP/1,10,r) ; &连接多个分机号码exten => 1,n,Playback(enterux/line-not-answering) exten => 1,n,Hangup()

exten => 1,102,Playback(enterux,line-busy)

exten => 1,103,Hangup()

exten => 2,1,Playback(enterux/connecting-to-support) exten => 2,n,Dial(SIP/2,10,r) ; &连接多个分机号码exten => 2,n,Playback(enterux/line-not-answering) exten => 2,n,Hangup()

exten => 2,102,Playback(enterux/line-busy)

exten => 2,103,Hangup()

exten => 202,1,Goto(incoming,s,1)

exten => 201,1,Goto(incoming,s,1)

(参考107页)

sip.conf如下:

[201]

user=201

type=friend

secret=1234

host=dynamic

context=incoming

[202]

user=202

type=friend

secret=1234

host=dynamic

context=incoming

[1234]

user=1234

type=friend

secret=1234

host=dynamic

context=incoming

;用户添加operator, sales and support

[0]

user=0

type=friend

secret=1234

host=dynamic

context=incoming

[1]

user=1

type=friend

secret=1234

host=dynamic

context=incoming

[2]

user=2

type=friend

secret=1234

host=dynamic

context=incoming

以下是拨号计划的内容:

系统可接收0,1,2,201,202.

现在,我们的接线总机连到了201和202上面——就是说,欢迎信息只在拨打201和202分机时播放。

我们添加了超时、忙碌和没有应答的功能。阅读106页代码。

Ast的设置是,当没有人接听电话的时候,被叫分机就响2声,然后回拨错误消息。如果被叫的分机应答了,ast就接通,两个人可以占用一个全双工通道。

这是个非常简单的配置,只有最基本的应答函数,最基本的呼叫处理和连接两个用户的能力,用Dial()这个应用程序。我们实际测试过,虽然有实质的延迟,2-4秒,就好像是一个人在讲话,另一个人在重复。这确实存在。有能力的话就写几行代码让两个语音通道互连(相似类型或者不同类型)。

现在我们只试验"incoming" 这一条,还添加了另外的"internal" 并对这个文件extensions.conf 进行了验证:

[incoming]

; Extensions for welcoming caller

exten => s,1,Background(enterux/welcome)

exten => i,1,Playback(enterux/invalid-extension)

exten => i,n,Goto(incoming,s,1)

exten => t,1,Playback(enterux/call-timeout)

exten => t,n,Playback(enterux/thankyou)

exten => t,n,Hangup()

exten => 202,1,Goto(incoming,s,1)

exten => 201,1,Goto(incoming,s,1)

; 呼叫正确的分机

exten => 0,1,Playback(enterux/connecting-to-operator)

exten => 0,n,Dial(SIP/0,10,r) ; Operator

exten => 0,n,Playback(enterux/line-not-answering)

exten => 0,n,Hangup()

exten => 0,102,Playback(enterux/line-busy)

exten => 0,103,Hangup()

exten => 1,1,Playback(enterux/connecting-to-sales)

exten => 1,n,Dial(SIP/1,10,r) ;

exten => 1,n,Playback(enterux/line-not-answering)

exten => 1,n,Hangup()

exten => 1,102,Playback(enterux,line-busy)

exten => 1,103,Hangup()

exten => 2,1,Playback(enterux/connecting-to-support)

exten => 2,n,Dial(SIP/2,10,r) ; & 连接SIP/staff_1&Sip/staff_2 exten => 2,n,Playback(enterux/line-not-answering)

exten => 2,n,Hangup()

exten => 2,102,Playback(enterux/line-busy)

exten => 2,103,Hangup()

[internal]

exten => 0,1,Goto(Internal,0,1)

exten => 1,1,Goto(Internal,1,1)

exten => 2,1,Goto(Internal,2,1)

sip.conf 文件如下所示:

[201]

user=201

type=friend

secret=1234

host=dynamic

context=incoming

[202]

user=202

type=friend

secret=1234

host=dynamic

context=incoming

[1234]

user=1234

type=friend

secret=1234

host=dynamic

context=incoming

; 0:operator, 1:sales and 2:support

[0]

user=0

type=friend

secret=1234

host=dynamic

context=internal

[1]

user=1

type=friend

secret=1234

host=dynamic

context=internal

[2]

user=2

type=friend

secret=1234

host=dynamic

context=internal

0,1 ,2的条款发生了变化从[incoming] 到[internal] 与以前类似,只是现在要使用的是不同的contexts。

---------------------------------------------------

在Asterisk 拨号计划中使用变量

在拨号计划中使用变量

在asterisk中设置变量:

JOHN=SIP/1

引用变量Asterisk:

exten => 123,1,Dial(${JOHN})

很简单.

注意:不需要大写变量名–这里是为了清晰

变量的类型:

全局变量:

所有的context都可以访问的变量。

全局变量在拨号计划的最前面[globals] context中声明.

还可以在拨号计划中声明全局变量:

[global]

JOHN=SIP/1

或者

[some context]

exten => 123,1,SetGlobalV ar(JOHN=SIP/1)

全局变量的生命周期是到ast关闭为止。

渠道变量:

渠道变量与特定呼叫或者呼叫通道有关。

渠道变量的生命周期限制在呼叫的范围内.

有许多预定义的渠道变量- 见README.variables 文件doc/ subdirectory.

设置渠道变量:

exten => 123,1,Set(MAGICNUMBER=42)

环境变量:

提供了通过dialplans访问Unix环境变量的方法.

参考环境变量:

UNIXPA TH=${ENV(PA TH)}

Asterisk中的模式匹配:

Asterisk 会尝试匹配任何以下划线开头的符号

你可以在模式匹配中使用如下的符号:

X 表示0 到9

Z 表示 1 到9

N 表示2 到9

[] 表示范围(例如,[15-7] 匹配1,5,6 or 7)

. 通配符

举例:

_9. 会匹配所有以9开头的数字,例如92, 932344,99999,91,等.

_XXX 匹配3个数字的串,每个数字的范围是0到9,例如321, 999,123, 等.

使用匹配模式,:通常手工添加每个可能的分机是非常枯燥乏味的。模式匹配简单多了。

出线中继(Outbound trunk):要让用户可以通过ast网络拨打外面的电话号码,我们可以启用出线中继。

比较好的方案如下:

-> 使用变量名来引用中继名。这可以让我们即时修改中继,不会引起错误

-> 使用编写正确的context来合理划分拨号计划. 这可以保证系统免受意外,或者恶意的未经授权的使用。

下面看一些函数和条件分支,看看extensions.conf

[incoming]

; s 和t分机

exten => s,1,Background(enterux/welcome)

exten => t,1,Hangup()

; 接受对201的呼叫

exten => 201,1,Goto(s,1)

; GotoIf() 函数

exten => 345,1,Set(TEST=greet)

exten => 345,n,GotoIf([{TEST}=greet]?10:20)

; Asterisk 给GotoIf传递一串参数

exten => 345,10,Playback(weasels-eaten-phonesys)

exten => 345,20,Playback(office-iguanas)

; 倒数,使用GotoIf() 和命名的优先级

exten => 346,1,Set(COUNT=10)

exten => 346,n(say),SayNumber(${COUNT})

exten => 346,n,Set(COUNT=[{COUNT}-1])

exten => 346,n,GotoIf([{COUNT}>0]?say:thank)

exten => 346,n(thank),Playback(auth-thankyou)

exten => 346,n,Hangup()

; 基于Caller Id 识别的呼叫拒绝

exten => 347,1,Set(REJECT_NUM=201) ; The number to be rejected (can also be done without a variable)

exten => 347,n,Set(CALLER=${CALLERIDNUM})

exten => 347,n,GotoIf([{CALLER}=${REJECT_NUM}]?reject-messege:welcome)

exten => 347,n(reject-messege),Playback(abandon-all-hope)

exten => 347,n,Hangup()

exten => 347,n(welcome),Playback(welcome)

exten => 347,n,Hangup()

; 不同的呼叫拒绝示例347

exten => 348,1,GotoIf([{CALLERIDNUM}=201]?30:20)

exten => 348,20,Goto(201,1)

exten => 348,30,Playback(abandon-all-hope)

exten => 348,n,Hangup()

; 按时间播放语音,利用GotoIfTime()函数

exten => 349,1,Playback(good)

exten => 349,n,GotoIfTime(04:00-11:59,*,*,*?good-morn)

exten => 349,n,GotoIfTime(12:00-16:59,*,*,*?good-aft)

exten => 349,n,GotoIfTime(17:00-03:59,*,*,*?good-eve)

exten => 349,n(good-morn),Playback(morning)

exten => 349,n(good-aft),Playback(afternoon)

exten => 349,n(good-eve),Playback(evening)

exten => 349,n,Hangup()

; Planning on holiday

exten => 350,1,GotoIfTime(*,*,26,jan?closed,s,1)

; 以上的意思是说,如果是1月26,按照以下的优先级别 1 of s 的close context分机优先级别,否则是open context的 1 of s extension

; 如下所示

exten => 350,n,Goto(open,s,1)

exten => 350,n,Hangup()

[open]

exten => s,1,Playback(welcome)

exten => s,n,Hangup()

[closed]

exten => s,1,Playback(sorry2)

exten => s,n,Hangup()

你可以拨打相应的分机

B2BUA的hardphone call flow

2006-10-2511:37:03

大中小

基本流程很正常,已经很熟悉

说其中的细节:

B2BUA的方式,就是两个UA背靠背,分别接通两边的会话,做个中间人。5088@141 ------------> PBX 12 --------------> 5010@131

---------------------->

INVITE 5010@12

TO:5010@12

FROM:5010@12

VIA:141

CONTACT:5088@141

<----------------------

100

TO:5010@12

FROM:5010@12

VIA:141

CONTACT:5010@12

------------------->

INVITE 5010@131

TO:5010@131

FROM:5088@12

VIA:12

CONTACT:5088@12

<-------------------

180

TO:5010@131 FROM:5088@12

VIA:12

<--------------------- 180

TO:5010@12 FROM:5088@12

VIA:141

CONTACT:5010@12

<--------------------- 200

TO:5010@131 FROM:5088@12

VIA:12

CONTACT:5010@131

----------------------> ACK 5010@131

TO:5010@131 FROM:5088@12

VIA:12

<--------------------- 200

TO:5010@12 FROM:5088@12

VIA:141

CONTACT:5010@12

拨号方案(Dialplan)入门笔记

拨号方案(Dialplan)入门笔记 刚学习这玩意,很详细的说明,就不写了,慢慢的去研究吧,不明白的可以去看下“电话未来之路”(我看了N次,才大概弄明白点意思),所以,也算是吧自己的理解写到上面吧。作为笔记。。 ............................................................................................................ .................................................................................... 一:拨号方案的语法 1:拨号方案的文件在extensions.conf 中定义,一般都存在于目录/etc/asterisk 下面。 2:拨号方案由4部分组成:contexts、extensions、priorities、applications. Context : 个人理解就是对拨号进行分组,方便调用,就想面向对象里的类一样,划分为一个类一个类,由[] 括起来 例:[text] ....... 这就是一个contexts Priority: Extension 执行的步骤,都以1 开始,看下面的Extension 说明就明白了,所以先说 Priorty Extension :Asterisk重要执行的指令,就是对电话执行那些处理,或理解为一个电话操作的流程。 语法:exten => 完整的extension 由三部分组成: 例:exten => name,priority,application() .........application 表示应用里面的动作。先这么理解吧 就像这样:[text] exten => 8002,1,Answer() exten => 8002,2,Hangup() ;......这个例子意思是当拨打分机8002 的时候先执行接听,随即是挂断电话,当然要先在sip.conf 下的分机8002 参数设置context=text Application: 意思是电话流程中的应用或动作,就像上面例子中的 "Answer()和Hangup()",

在华硕RT-N11+上玩转OpenWRT+Asterisk

在华硕RT-N11+上玩转OpenWRT+Asterisk 华硕RT-N11+是一款高性能的300M 802.11n无线路由器,内置Ralink RT3052F 384M 主频的CPU,32M SDRAM,4M FLASH,高主频的CPU为希望开发具有定制功能应用的爱好者提供了很好的平台,下面介绍如何将OpenWRT和Asterisk移植到此路由上作为一个小型的SIP Server。 图表 1 被肢解的ASUS RT‐N11+ 图表 2 ASUS RT‐N11+ CPU特写

4M 的flash实在不给力,更换为8M 的 Spansion flash 型号S25GL064N,这样基本可以满足asterisk的运行。 一、编译openwrt,编译环境为fedora13。 1.svn checkout svn://https://www.360docs.net/doc/ce1796925.html,/openwrt/trunk 2.cd trunk 3../scripts/feeds update -a 4../scripts/feeds install -a 5.make menuconfig 选中Target System->Ralink RT288x/RT305x 选中Subtarget-> RT305x based boards

选中Network->Telephony->asterisk18 LuCI->Servcer Interfaces->luci-sgi-uhttpd

6.make V=99 编译完成可以在trunk看到以下文件 bin/ramips/openwrt-ramips-rt305x-fonera20n-squashfs-sysupgrade.bin 偷个懒借用了fonera20n的映像,程序可以跑,LEDD和按键未验证,有兴趣可以参考target/linux/ramips/files/arch/mips/ralink/rt305x/mach-fonera20n.c建立针对RT-N11+的映像。 二、烧录程序 1. 用编程器烧录bootloader“uboot_SDK_nor_sdr32M32bit_v3508_20110919.bin” 2. 连接串口,pin1-pin4依次为VCC,GND,CPU_TX,CPU_RX,波特率57600 3. 烧录openwrt映像 1)在PC机上搭建tftp服务器推荐用Tftpd32.exe, 2)将文件“openwrt-ramips-rt305x-fonera20n-squashfs-sysupgrade.bin”放到 tftp工具的目录下, 3)启动设备在boot menu中选择2按提示输入IP地址和映像名称,升级。

Asterisk安装指南

Asterisk安装指南 2010-03-20 10:49 1、选择操作系统 据说Asterisk对大多Linux支持的都比较好,内核版本2.6.9-55.EL安装起来很顺利,2.4的麻烦一些。注意安装系统的时候选择上开发环境的包。2、在/usr/src目录中下载Asterisk相关安装包并解压 #cd /usr/src https://www.360docs.net/doc/ce1796925.html,/pub/libpri/releases/libpri-1.4.10.tar.gz https://www.360docs.net/doc/ce1796925.html,/pub/zaptel/releases/zaptel-1.4.12.1.tar.gz(dahdi asterisk1.6以后就不用这个,用https://www.360docs.net/doc/ce1796925.html,/pub/telephony/dahdi-linux-complete/releases/dahdi-linux-complete-2.6.1+2.6.1.tar.gz) https://www.360docs.net/doc/ce1796925.html,/pub/asterisk/releases/asterisk-1.6.2.tar.gz https://www.360docs.net/doc/ce1796925.html,/pub/asterisk/releases/asterisk-addons-1.6.2.0.tar.gz https://www.360docs.net/doc/ce1796925.html,/pub/asterisk/releases/asterisk-sounds-1.2.1.tar.gz # tar -xvzf *.tar.gz 3.安装libpri # cd libpri-1.4.9 # make # make install 4.安装zaptel # cd .. # cd zaptel-1.4.12.1 # make # make install # make config 5.安装asterisk # cd .. # cd asterisk-1.4.24.1 # ./configure # make # make install

Asterisk常用调试命令

Asterisk基本配置 Asterisk译为星号(*)在很多应用中被用做通配符,Astrisk做为PBX系统的完美名称,原因之一是Asterisk可以连接数目庞大的接口类型,包括: 1模拟接接口,如你的电话线或模拟电话. 2数字线路,如T-1和E-1线路 3Voip协议,如SIP和IAX 目前正式版本是IAX2,但是IAX1的所有格式都已经停掉.所以当说到IAX都是特拽IAX2 使用接口配置文件 1.Zaptel.conf:硬件接口基层配置,我们将建立一个FX0和一个FXS通道. 2.zapata.conf:硬件配置Asterisk的接口. 3.extension.conf:拨号方案文件. 4.sip.conf:配置SIP协议的文件 5.iax.conf:配置呼入和呼出IAX通道的文件 ******编辑完zaptel.conf文件,需要使用/sbin/ztcfg -vv装载配置到硬件(不须要详细输出可以省略-vv);修改信令方法需要重启.在编辑sip.conf和iax.conf文档后,分别需要装载chan_iax2.so和 chan_sip.so Asterisk译为星号(*)在很多应用中被用做通配符,Astrisk做为PBX系统的完美名称,原因之一是Asterisk可以连接数目庞大的接口类型,包括: 1模拟接接口,如你的电话线或模拟电话. 2数字线路,如T-1和E-1线路 3Voip协议,如SIP和IAX 目前正式版本是IAX2,但是IAX1的所有格式都已经停掉.所以当说到IAX都是特拽IAX2 使用接口配置文件 1.Zaptel.conf:硬件接口基层配置,我们将建立一个FX0和一个FXS通道. 2.zapata.conf:硬件配置Asterisk的接口. 3.extension.conf:拨号方案文件. 4.sip.conf:配置SIP协议的文件 5.iax.conf:配置呼入和呼出IAX通道的文件 ******编辑完zaptel.conf文件,需要使用/sbin/ztcfg -vv装载配置到硬件(不须要详细输出可以省略-vv);修改信令方法需要重启.在编辑sip.conf和iax.conf文档后,分别需要装载chan_iax2.so和 chan_sip.so******

《Asterisk 使用资料》

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拨号方案配置文件

asterCRM安装配置手册

asterCC安装配置手册 一.安装环境 1.安装程序:astercc-0.14-beta-rc1.zip 2.操作系统:CentOS Linux or Redhat Linux with mysql 3.硬件要求:X86 CPU 1GHz 1GB RAM 20GB HardDisk Ethernet Adaptor 二.安流流程 1.安装CentOS Linux or Redhat Linux 2.下载安装程序: https://www.360docs.net/doc/ce1796925.html,/news/astercc-and-astercc-box-released-014-beta-rc1 3.ssh登录后台,解压程序包 [root@sc38 ~]# unzip astercc-0.14-beta-rc1.zip 4.进入astercc-0.14-beta-rc1,更改可执行权限并执行install.sh脚本,根据提示进行安装 [root@sc38 astercc-0.14-beta-rc1]# chmod 755 install.sh [root@sc38 astercc-0.14-beta-rc1]# ./install.sh Please enter database information database host(default localhost): 设置数据库地址,默认为localhost database port(default 3306): 设置数据库连接端口,默认为:3306 database name(default astercc): 设置数据库名,默认为astercc database user name(default root): 设置数据库连接用户,默认为root database user password(default null):eLaStIx.2oo7 设置数据库连接密码,如果本机已安装Elastix,则密码为eLaStIx.2oo7 database bin path(default /usr/bin): 设置mysql的程序路径,默认指定/usr/bin Please enter the Asterisk infomation:

Object-C 经典入门教程

Object-C 入门教程 分类:Sip&asterisk2009-05-04 16:34 16409人阅读评论(2) 收藏举报大纲 o开始吧下载这篇教学 o设定环境 o前言 o编译 hello world o创建 Classes@interface o@implementation o把它们凑在一起 o详细说明...多重参数 o建构子(Constructors) o访问权限 o Class level access o异常情况(Exceptions)处理 o继承、多型(Inheritance, Polymorphism)以及其他面向对象功 能id 型别 o继承(Inheritance) o动态识别(Dynamic types) o Categories o Posing o Protocols o内存管理Retain and Release(保留与释放) o Dealloc o Autorelease Pool o Foundation Framework ClassesNSArray o NSDictionary ?优点与缺点 ?更多信息 开始吧 下载这篇教学 ?所有这篇初学者指南的原始码都可以由objc.tar.gz下 载。这篇教学中的许多范例都是由 Steve Kochan 在 Programming in Objective-C. 一书中撰写。如果你想得到更 多详细信息及范例,请直接参考该书。这个网站上登载的所有 范例皆经过他的允许,所以请勿复制转载。 设定环境 ?Linux/FreeBSD: 安装GNUStep为了编译 GNUstep

应用程序,必须先执行位于 /usr/GNUstep/System/Makefiles/GNUstep.sh 的 GNUstep.sh 这个档案。这个路径取决于你的系统环境, 有些是在 /usr, some /usr/lib,有些是/usr/local。 如果你的 shell 是以 csh/tcsh 为基础的 shell,则应 该改用 GNUStep.csh。建议把这个指令放在 .bashrc 或 .cshrc 中。 ?Mac OS X: 安装XCode ?Windows NT 5.X: 安装cygwin或mingw,然后安装 GNUStep 前言 ?这篇教学假设你已经有一些基本的 C 语言知识,包括 C 数 据型别、什么是函式、什么是回传值、关于指针的知识以及基 本的 C 语言内存管理。如果您没有这些背景知识,我非常建议 你读一读 K&R 的书:The C Programming Language(译注:台 湾出版书名为 C 程序语言第二版)这是 C 语言的设计者所写 的书。 ?Objective-C,是 C 的衍生语言,继承了所有 C 语言的特 性。是有一些例外,但是它们不是继承于 C 的语言特性本身。 ?nil:在 C/C++ 你或许曾使用过 NULL,而在 Objective-C 中则是 nil。不同之处是你可以传递讯息给 nil(例如 [nil message];),这是完全合法的,然而你却不能对 NULL 如法炮 制。 ?BOOL:C 没有正式的布尔型别,而在 Objective-C 中也不 是「真的」有。它是包含在 Foundation classes(基本类别库) 中(即 import NSObject.h;nil 也是包括在这个头文件内)。 BOOL 在 Objective-C 中有两种型态:YES 或 NO,而不是 TRUE 或 FALSE。 ?#import vs #include:就如同你在 hello world 范例中看 到的,我们使用了#import。#import 由 gcc 编译程序支援。 我并不建议使用 #include,#import基本上跟 .h 档头尾的 #ifndef #define #endif 相同。许多程序员们都同意,使用这 些东西这是十分愚蠢的。无论如何,使用 #import 就对了。这 样不但可以避免麻烦,而且万一有一天 gcc 把它拿掉了,将会 有足够的 Objective-C 程序员可以坚持保留它或是将它放回 来。偷偷告诉你,Apple 在它们官方的程序代码中也使用了 #import。所以万一有一天这种事真的发生,不难预料 Apple 将 会提供一个支持 #import 的 gcc 分支版本。 ?在 Objective-C 中, method 及 message 这两个字是可以 互换的。不过messages 拥有特别的特性,一个 message 可以 动态的转送给另一个对象。在Objective-C 中,呼叫对象上的 一个讯息并不一定表示对象真的会实作这个讯息,而是对象知 道如何以某种方式去实作它,或是转送给知道如何实作的对象。

Elastix安装配置手册

Elastix安装配置手册 一.安装环境 1.安装光盘:elastix-1.6-cn.iso 2.操作系统:Linux CentOS 3.硬件要求:X86 CPU 1GHz 1GB RAM 20GB HardDisk Ethernet Adaptor 二.安流流程 首先将Elastix 光盘插入到您的电脑光驱中,开启电脑(您可能需要通过BIOS设置使电脑通过CD启动),安装程序将自动分区和格式化你的硬盘和安装所有的需要的安装包,安装过程非常简单,在典型的机器上大概花费时间不会超过20分钟。 1.下载ISO映象文件: https://www.360docs.net/doc/ce1796925.html,/index.php/en/menudownloads.html 2.安装时,显示屏幕上会出现如下提示画面; 3.按回车后,如下图所示,此处是选择键盘类型,这里选择”us”;

4.anaconda安装将开始安装(如果您电脑无足够内存,安装程序将在text 模式下安装); 5.接下来会出现如下提示,此处是用来选择时区,中国国内选择Asia/Shanghai(亚洲/上海);

6.接着出现下图,此处是设定root的密码(注意:两次输入需要一致),安装完登录时需要此密码; 7.接下来的过程一直到安装完成都是自动的,不需要输入任何信息,以下是安装过程; a.检索安装信息;

b.检查附属包; c.从安装光盘复制文件到硬盘;

d.开始安装包进程; e.正在安装包;

f.当所有的需求包都自动安装完毕,光驱将自动打开,将出现如下屏幕 g.把CD从光驱取出,关闭光驱,系统自动重启;

Asterisk的SIP type和身份认证

Asterisk的SIP type和身份认证 在Asterisk中对某个peer的类型分为3种:peer, user和friend 看看voip-info对这三种类型的解释 ?peer: A SIP entity to which Asterisk sends calls (a SIP provider for example). If you want a user (extension) to have multiple phones, define an extension that calls two SIP peers. The peer authenticates at registration. ?user: A SIP entity which places calls through Asterisk (A phone which can place calls only). Users authenticate to reach services with their context. ?friend: An entity which is both a user and a peer. This make sense for most desk handsets and other devices. Asterisk will create two objects, one peer and one user, with the same name. where it can be found (IP address/host name) and that it is reachable from now on. 简单的说,在这篇文档里, type=peer定义对方是一个服务提供者, 它允许你的Asterisk通过这里定义的服务商打电话; 而user则定义对方是你的一个客户端, 允许对方通过你的Asterisk打电话. friend就是两者兼有. 但是实际情况是什么? 试试这样的定义: [1001] username=1001 secret=xxxxx host=dynamic port=5060 type=peer context=from-extensions 然后用一个SIP客户端来尝试注册到你的Asterisk上, what happened? 你会发现客户端也能注册上! 其实type的真正意义在于Asterisk怎么去处理发往外部和来自外部的请求. type=peer 如果type是peer,有两层含义. 1. 可以将对方作为一个SIP Service Provider, 允许你的Asterisk通过对方进行呼出. 2. 如果对方在逻辑上是一个客户端, asterisk将根据传入的Invite请求来对对方进行身份验证, 但需要注意的是这里的验证不是通过username和secret, 而是通过对方的address和port. 这里分两种情况: * 对方的address和port没有匹配到你在sip.conf中对任何一个peer的设置, 如果你的Asterisk 允许匿名呼入(allowguest=yes), 那么, 该呼入将被传到在sip.conf的general配置中的context 上. 如果不允许匿名呼入, 直接拒绝该呼入. * 对方的address和port匹配到了任何一个sip.conf种的peer设置, 那么改呼入将被传到该peer 指定的context上.

最新服务器基础知识(初学者必看)

服务器基础知识【初学者必看】 1. 什么是服务器 就像他的名字一样,服务器在网络上为不同用户提供不同内容的信息、资料和文件。可以说服务器就是Internet网络上的资源仓库,正是因为有着种类繁多数量庞大内容丰富的服务器的存在,才使得Internet如此的绚丽多彩。 2. 服务器的种类和功能 (1) WWW服务器(WWW Server) WWW服务器也称为Web服务器(Web Server)或HTTP服务器(HTTP Server),它是Internet上最常见也是使用最频繁的服务器之一,WWW服务器能够为用户提供网页浏览、论坛访问等等服务。比如:我们在使用浏览器访问https://www.360docs.net/doc/ce1796925.html,的时候,实际上就是在访问Discuz!的WWW服务器,从该WWW服务器获取需要的论坛资料和网页。 (2) FTP服务器(FTP Server) FTP服务器是专门为用户提供各种文件(File)的服务器,FTP服务器上往往存储大量的文件,例如:软件、MP3、电影、程序等等。用户只要使用FTP客户端软件登录到FTP服务器上就可以从FTP服务器下载所需文件和资源到自己的电脑上,同时,

你也可以把自己电话上的文件上传到FTP上供其他用户下载,以实现文件资源的共享。 (3) 邮件服务器(Mail Server) e-mail是Internet上应用最频繁的服务之一,而Internet上每天数亿百亿计的电子邮件的收发都是通过邮件服务器实现的。邮件服务器就像邮局一样,可以为用户提供电子邮件的接收存储和发送服务。 除了以上介绍的3种主要服务器之外,还有很多其他类型的网络服务器,例如:数据库服务器(DatabaseServer)、代理服务器(Proxy Server)、域名服务器(Domain Name Server)等等…… 3. 服务器的操作系统 目前服务器中使用的操作系统主要有两类:Windows和Unix。 (1) Windows Windows是美国微软公司(Microsoft)开发的操作系统,在服务器领域,主要有Windows2000Server/Advanced Server/Data Center与Windows2003 Standard Edition/EnterpriseEdition操作系统,Windows的优点是操作简 单,由于Windows使用图形界面进行操作,因而对各种服务器软件功能配置简

asterisk+freepbx+astercrm的安装----lamp rpm安装

Linux下安装呼叫中心服务器(ASTERISK+FreePBX) 一、环境要求: 操作系统:centos 5.0以上(以最小化形式安装) Linux内核版本:2.6.22 Asterisk版本:asterisk V.1.6.2.18 FreePBX版本:FreePBX:2.9.0 以rpm方式安装好的LAMP环境 以root身份登录 二、所需软件包 https://www.360docs.net/doc/ce1796925.html,/pub/telephony/asterisk/asterisk-1.6.2.1 8.tar.gz https://www.360docs.net/doc/ce1796925.html,/freepbx-2.9.0.tar.gz 三、安装步骤 1、Lamp的安装 下载所有软件包到/usr/local/src路径 配置yum源,安装相关软件 yum –y update yum install –y httpd http-devel mysql mysql-devel mysql-server php php-devel php-mysql yum install php5 php5-cli php5-mysql php-pear libapache2-mod-php5 php5-curl php5-gd php-db yum install php php-mysql php-common php-gd php-mbstring php-mcrypt php-devel php-xml

yum install e2fsprogs-devel keyutils-libs-devel krb5-devel libogg libselinux-devel libsepol-devel libxml2-devel libtiff-devel gmp php-pear php-pear-DB php-gd php-mysql php-pdo kernel-devel ncurses-devel audiofile-devel libogg-devel openssl-devel mysql-devel zlib-devel perl-DateManip sendmail-cf sox yum install gcc gcc-c++ wget bison mysql-devel mysql-server php php-mysql php-pear php-pear-DB php-mbstring nano tftp-server httpd make ncurses-devel libtermcap-devel sendmail sendmail-cf caching-nameserver sox newt-devel libxml2-devel libtiff-devel php-gd audiofile-devel gtk2-devel subversion kernel-devel yum install festival festival-dev yum install ncurses-base ncurses-bin ncurses-term libncurses5 libncursesw5 libncurses5-dev libncursesw5-dev yum install zlib1g zlib1g-dev yum install bison bison-doc yum install install libxml2 libxml2-dev yum install libtiff4 libtiff4-dev yum install libasound2 libgsm1 libltdl3 libpq4 libspeex1 libsqlite0 libtonezone1 libaudiofile0 libaudiofile-dev yum install libnet-telnet-perl mime-construct libipc-signal-perl libmime-types-perl libproc-waitstat-perl mkdir /var/lib/mysql chown –R mysql:mysql /var/lib/mysql /etc/init.d/httpd start chkconfig –level 35 httpd on mysql_install_db chown –R mysql.mysql /var/lib/mysql

Asterisk安装和测试

Asterisk安装 (红色字体部分为需要键入或修改的部分)

下载准备 系统环境:Linux CentOS 5.0,安装开发工具以及开发库。 Asterisk 源代码包asterisk-1.6.1.20.tar.gz,版本:1.6.1.20。 SIP软电话使用eyebeam 版本:1.5.8。 1.切换用户(需要输入管理员密码),执行 su root 2.进入源码包存放文件夹 [root@asterisk-test1 ~]#cd /usr/local/src 3.下载 [root@asterisk-test1 ~]#wget https://www.360docs.net/doc/ce1796925.html,/pub/telephony/asterisk/releases/asterisk1.6.1.20. tar.gz 编译安装Asterisk 1.解压源代码包 [root@asterisk-test1 ~]# tar -zxvf asterisk-1.6.1.20.tar.gz 2.进入包目录 [root@asterisk-test1 ~]# cd asterisk-1.6.1.20 3.环境检测和预配置 [root@asterisk-test1 asterisk-1.4.5]# ./configure(其实这样直接进行configure并非十分规范。应当先使用“./configure –help”命令来 查看一些可用的选项和参数,然后根据实际情况才进行定制操作。)当环境预检测和预配置工作 做完时,最后会显示以上反馈信息。并且建立好Makefile。 注意:系统如果缺少安装必须的包,此步骤可能会出现configure: error错误,解决方案见后文可能遇到的问题 configure: creating ./config.status config.status: creating build_tools/menuselect-deps config.status: creating makeopts config.status: creating channels/h323/Makefile config.status: creating include/asterisk/autoconfig.h .$$$$$$$$$$$$$$$=..

asterisk配置小结

asterisk配置简单解说 软件版本 asterisk 1.2.7.1 gix101e sip 130 中文 一:通话设置部分 1:软件安装 debian系统下面可以使用如下命令安装,如果是其他发行版可以自己编译安装或者使用相应的包安装。 vax:/home/ailantian# apt-get install asterisk 2:帐户设置 sip的帐户设置 vax:/home/ailantian# cd /etc/asterisk/ vax:/etc/asterisk# ls adsi.conf codecs.conf logger.conf res_odbc.conf adtranvofr.conf dnsmgr.conf manager.conf rpt.conf agents.conf dundi.conf meetme.conf rtp.conf alarmreceiver.conf enum.conf mgcp.conf sip.conf alsa.conf extconfig.conf misdn.conf sip_notify.conf asterisk.adsi extensions.ael modem.conf skinny.conf asterisk.conf extensions.conf modules.conf telcordia-1.adsi cdr.conf features.conf musiconhold.conf voicemail.conf cdr_custom.conf festival.conf osp.conf vpb.conf cdr_manager.conf h323.conf oss.conf zapata.conf cdr_odbc.conf iax.conf phone.conf cdr_pgsql.conf iaxprov.conf privacy.conf cdr_tds.conf indications.conf queues.conf 这个目录下面的sip.conf bindaddr=192.168.100.144;这个填自己的ip地址。 allow=all;允许所有的解码类型。 添加下面的字段。下面的是帐户信息。 [777] type=friend username=777 secret=777 host=dynamic ; This device registers with us [888] type=friend username=888 secret= host=dynamic ; This device registers with us [333] type=friend username=333 secret= host=dynamic 然后还需要修改的文件是extensions.conf 然后才能够互通,否则可能会收到404,或者407错误。

Tekla常用设置(简)解读

1、当一张Xsteel的图纸转化为CAD的图纸时,被文字或尺寸标注遮挡处的线条时常会断开,问:怎样才能让两条线不断开? 要在绘制图纸中或转化到DXF / DWG 中显示连续线(例如穿过文本或图 纸标记画直线),可将以下变量设置为off: ? XS_USE_LINECLIP_IN_EXPORT (对于DXF / DWG 输出)。 ? XS_USE_LINECLIP (对于绘制的图纸)。 2.修改多边形形状时,系统默认的多边形的第一条边是无法调整的;要通过增加顶点移动来调整多边形的形状。 3、不要使用剪切来减短部件。由于在导出信息到 NC 文件时剪切并不总能影响部件长度,这会导致工厂错误。采用移动部件控柄或使用细部 > 接合来代替。 不要使用接合来延长部件。这会导致与连接和细部相关的错误。采用移动部件控柄来代替。 4、如何在报表中将连续的文字独立的列: A、在报表中的文本域中添加文本<,>; B、同时在输出文件时将报表的名称的后缀改为<*.csv>格式. C、打开时采用EXCEL打开即可. 5、定义轴线标签边框 要定义轴线标签边框大小,请使用工具>高级选项>图纸属性中的XS_DRAWING_GRID_LABEL_FRAME_FIXED_WIDTH变量。默认值为零,表明轴线标签边框的宽基于轴线标签的宽。要增加或减少边框的宽,请以毫米为单位输入需要的值。 XS_DRAWING_GRID_LABEL_FRAME_FIXED_WIDTH 6、滚轮鼠标 要设置滚动(不按住)滚轮时的缩放比例,使用变量 XS_ZOOM_STEP_RATIO_IN_MOUSEWHEEL_MODE。 要设置滚动并按住滚轮时的缩放比例,使用变量 XS_ZOOM_STEP_RATION_IN_SCROLL_MODE。 7、如何修改13.0系统默认的字体样式和标注样式 xs13.0的字体样式系统默认是Comic Sans MS 标注样式是Bookman Old Style 我太喜欢这些字体,我想把他们全部修改为宋体,虽然出图后也可以把他们修改为自己想要的那种字体,但感觉不是很方便,请问可以在系统下修改吗?我想一出图不经修改就可以是我想要的那种字体: 1.在这里也可以改,后面的为输出CAD转换的字体,*1.0的为修改字宽. // Examples: (remove the comment marks // to make the lines effective) // Arial Narrow = ARIALN.TTF * 1.0 // ISOCPEUR = ISOCP.SHX * 1.0 // ISOCTEUR = ISOCT.SHX * 1.0 2.在BAT文件中可以修改模型轴线的字体 rem *** Fonts --------------------------------------------------- set XS_DEFAULT_FONT=Arial Black set XS_DEFAULT_FONT_SIZE=10 set XS_TEXT_FONT=Arial Narrow rem set XS_VIEW_TITLE_FONT=Arial Narrow 8、将图形文件从XSTEEL转到CAD中的时候,图面上的字体有的时候会有位

asterisk常用命令

asterisk常用命令 Asterisk基本配置 Asterisk译为星号(*)在很多应用中被用做通配符,Astrisk做为PBX系统的完美名称,原因之一是Asterisk可以连接数目庞大的接口类型,包括: 1模拟接接口,如你的电话线或模拟电话. 2数字线路,如T-1和E-1线路 3V oip协议,如SIP和IAX 目前正式版本是IAX2,但是IAX1的所有格式都已经停掉.所以当说到IAX都是特拽IAX2 使用接口配置文件 1.Zaptel.conf:硬件接口基层配置,我们将建立一个FX0和一个FXS通道. 2.zapata.conf:硬件配置Asterisk的接口. 3.extension.conf:拨号方案文件. 4.sip.conf:配置SIP协议的文件 5.iax.conf:配置呼入和呼出IAX通道的文件 ******编辑完zaptel.conf文件,需要使用/sbin/ztcfg -vv装载配置到硬件(不须要详细输出可以省略-vv);修改信令方法需要重启.在编辑sip.conf和iax.conf文档后,分别需要装载chan_iax2.so和chan_sip.so Asterisk译为星号(*)在很多应用中被用做通配符,Astrisk做为PBX系统的完美名称,原因之一是Asterisk可以连接数目庞大的接口类型,包括: 1模拟接接口,如你的电话线或模拟电话. 2数字线路,如T-1和E-1线路 3V oip协议,如SIP和IAX 目前正式版本是IAX2,但是IAX1的所有格式都已经停掉.所以当说到IAX都是特拽IAX2 使用接口配置文件 1.Zaptel.conf:硬件接口基层配置,我们将建立一个FX0和一个FXS通道. 2.zapata.conf:硬件配置Asterisk的接口. 3.extension.conf:拨号方案文件. 4.sip.conf:配置SIP协议的文件 5.iax.conf:配置呼入和呼出IAX通道的文件 ******编辑完zaptel.conf文件,需要使用/sbin/ztcfg -vv装载配置到硬件(不须要详细输出可以省略-vv);修改信令方法需要重启.在编辑sip.conf和iax.conf文档后,分别需要装载chan_iax2.so和chan_sip.so******

asterisk目录及配置说明

asterisk 目录及配置说明 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的lAXy的二进制固件镜像. images/ 只有在较多的支持并且利用图解式的图像设备被发布,这个目录将会与相应的目录有更大的关联. /var/lib/asterisk/agi-bin agi-bin 包含所有脚本,可以通过许多已经建立的Asterisk 连接.系统的接口,在这里可以写自己的脚本来控制拨打流程。 ================配置文件================ /etc/asterisk/asterisk.conf 主要配置文件, 修改这个配置文件要用modprobe 装载Linux AGl 应用程序与 /etc/zaptel.conf 硬件接口的基本层

相关文档
最新文档