• asterisk中使用dahdi通道呼出的注意事项


    asterisk中使用dahdi通道呼出的注意事项 

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

    场景说明:数字板卡单E1,使用pri信令,1-31通道分配的group为1,拨号规划使用前缀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应用的介绍:

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

     

      2. Dial应用的参数:

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

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

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

        第三个参数,是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.

  • 相关阅读:
    设计模式:迭代器模式
    设计模式:观察者模式
    设计模式:解释器模式
    设计模式:策略模式
    设计模式:状态模式
    设计模式:代理模式
    strtok函数
    人们眼中的程序员
    如何用C语言获取文件的大小
    C++著名库的比较和学习经验
  • 原文地址:https://www.cnblogs.com/voiphudong/p/3968848.html
Copyright © 2020-2023  润新知