Chinaunix首页 | 论坛 | 博客
  • 博客访问: 250302
  • 博文数量: 94
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 80
  • 用 户 组: 普通用户
  • 注册时间: 2014-10-16 09:08
文章分类

全部博文(94)

文章存档

2016年(3)

2015年(86)

2014年(5)

分类: Delphi

2015-05-11 17:58:11

在使用dahdi通道呼出的时候,可以在Dial中对呼出所使用的通道进行指定选择。以下面的例子来说明:

场景说明:数字板卡单E1,使用pri信令,1-31通道分配的group1,拨号规划使用前缀9呼出。

配置文件:

chan_dahdi.conf

点击(此处)折叠或打开

  1. context=from-insides
  2. group=1
  3. channel=>1-15,17-31

extensions.conf中:

点击(此处)折叠或打开

  1. [from-insides]
  2. exten => _9.,1,Dial(Dahdi/g1/${EXTEN:1},40)
  3. exten => _9.,2,Hangup

 

  1. 关于Dial应用的介绍:

    asteriskDial应用是最基本也是较为核心的一个应用。主要是为一个通道发起呼叫,并建立呼叫的

 

  2. Dial应用的参数:

    Dial(Technology/resource[&Tech2/resource2...][|timeout][|options][|URL])

    第一个参数:呼叫目标的信息,信息包括通道类型(例如SIPDahdiss7iax等)和对应的资源(一般是号码,也可以是通道号)。从上面的参数举例中可以看出,该参数可以是用&连接起来的多个目标,该功能可以实现同振(同时向多个目标发起呼叫,目标中的任意一个接听后,即与发起者建立通话,其他目标的呼叫会被取消)。

    第二个参数:建立呼叫的最大时限,一般意义上理解是被叫振铃的最长时间,单位是秒。

    第三个参数,是N多选项的组合,这里介绍几个常用的选项,详细信息可以阅读asterisk的文档,或者代码。

  3. Dial应用中的选项解释

    A(x) - 向被叫播放提示音,x是提示音文件的名字,包括路径.

    g    - 如果被叫挂机后,该选项允许主叫对应的通道继续执行拨号规划中下面的extension.

    L(x[:y][:z]) - 限制本次通话的时间为x毫秒. 在还剩余y毫秒的时候播放警告信息,每间隔z毫秒的时候重复该警告信息.这个选项比较有用,可以用来实现限制通话时长。

    m([class]) - 在主叫等待被叫接通的时候,听到的不是回铃音,而是这里指明的等待音乐,class就是等待音乐的类型。

    t    - 允许被叫方可以按预定义的转移键将主叫转移(盲转)到对应的拨号规划上

    T    - 允许主叫方可以按预定义的转移键将被叫转移(盲转)到对应的拨号规划上

    w    - 允许被叫方可以按预定义的自动录音键对通话进行录音

    W    - 允许被叫方可以按预定义的自动录音键对通话进行录音

    上面四个所说的预定义都是在features.conf中的featuremap部分。

  4. 使用dahdi通道呼出

   通道的选择

   1).使用组进行呼出

   如果在chan_dahdi.conf中对dahdi指定了分组,可以使用组的方式进行呼出。如上面的例子中,使用组1 30个通道进行呼出。那么在使用这个组内的通道进行呼出的时候,是如何选择的?

   对于组内的空闲通道可以有很多个,asterisk要按照一定的原则从中选择一个进行呼出。选择的方式有4种:

   g:组内通道的分配按照前向搜索的方式,即顺序的查找,每次都是从第一个开始查找,直至最后一个。

   G:组内通道的分配按照后向搜索的方式,即倒序的查找,每次都是从最后一个查找,直至第一个。

   r:与g一样也是采用前向搜索,不过采用的是轮转,查找的开始不是第一个,而是从上一个。

   R:与G一样也是采用后向搜索,不过采用的是轮转,查找的开始不是最后一个,而是上一个。

   上面的例子中使用的是Dial(Dahdi/g1/${EXTEN:1},40)

   这里每次外呼的时候,使用的是组内顺序查找的方式。

   2).使用通道进行呼出

   例如,对于fxs的呼出即可采用这样的方式。

   chan_dahdi.conf中,定义了两个fxs口如下:


点击(此处)折叠或打开

  1. context=fxstest
  2. signalling=fxo_ks
  3. channel=1-2

extensions.conf中,


点击(此处)折叠或打开

  1. [frominside]
  2. exten => 2001,1,Dial(Dahdi/1,40)
  3. exten => 2001,2,Hangup
  4. exten => 2002,1,Dial(Dahdi/2,40)
  5. exten => 2002,2,Hangup

这里2001,对应的是通道1,2002对应的是通道2.

 

阅读(1438) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~