首页 > 新闻 > 专家观点 >

Elastix 配置及技术解答:通向外部世界的中继

2013-03-21 14:12:22   作者:星昊通   来源:CTI论坛   评论:0  点击:


  8 通向外部世界的中继(TRUNKS TO THE OUTSIDE WORLD)

  在内部分机之间呼叫和接收电话是一回事,但如果你的不能接收和呼叫外部世界的话,就不是一个真正的电话系统。

  为了达到通联外部,你至少需要一个通向外部世界的中继。

  本指南仅是给初学Elastix用户理解中继(Trunks) 设置的简单指导。

  Points to keep in min(请牢记此点)

  小心!!!如果你使用ATA,请你准备你的规则和模式时ATA可以传送给asterisk。如果你想asterisk对应到所有规则,最好确保你的ATA正确传送你呼叫的给Asterisk——从你的ATA删除你的呼叫规则并用(**︱*x.︱xx.)代替。网关呼出和呼入路由配置控制了呼叫通话的方向,所以请预先检查网关或者ATA的呼叫路由。

  8.1 呼叫模式是什么?

  呼叫模式是外呼(Outbound Routing)的部分,他们作用就象过滤器一样,用中继匹配(match)被呼叫的号码。
你能输入各种模式,类似与他们中的Asterisk的定义:
  • X-指任何在0和9之间的数字
  • N-指任何在2和9之间的数字
  • Z-任何非零的数字(如1至9)
  • [Various]-仅匹配一个字符,该字符能匹配在中括号里的任何一个字符(如,[02-68*#]将匹配0,包括任何在2和6之间的数字,8,*和#。或者,以另外一种方式说,这将“匹配*或者#,或不是1、7或9的一个数字”)-避免在你的Trunk Dial Rule中使用这种符合,因为它似乎不能工作,仅在你的Outing Route Dial Patern中使用这个。
  • 通配符(wildcard),匹配任何事的任何数字,必须匹配*something*
  • 这是让你使用“0向外拨”(或者9,在美国),通过在前面的线路匹配任何东西,但不传送给中继。
  当我们开始基本的呼出测试时,尽量使用通配符来进行匹配。这样,我们的设置相对简单一些。

  8.2 什么是中继

  中继是电话服务线路,是电话呼出的通道。如,在你家有的Telstra(澳洲电信)电话线路是一个中继(它能被用作中继,如果不是你希望需要的)。一个VOIP service provider(VSP,VOIP服务提供者)就是你已经使用的,也是一个中继。在中国地区,你可以购买虚拟运营的SIP 中继服务,来呼出。当然有很多是运营商的灰色地带,服务质量不一定得到很好的保证。

  为了达到外呼PSTN或者VOIP电话,你必须至少有一条中继。

  为什么asterisk的用户有几条中继的原因解释如下:
  • 中继(a)为本地通话提供最优的费率,与昂贵的手机相比,并且对国际呼叫不是那么贵。
  • 中继(b)对国际呼叫有更好的费率优势
  • 中继(c)有好的手机费率,并在其它两个不能工作时将允许1300数字
  一个比较好的中继设计可以帮助公司节省大量的电话费用,并且可以做failover的备用。当然VOIP线路的语音质量是一个难题,需要客户自己做一个选择。目前市场上已经有skype 中继,或者SIP中继服务,价格差别很大,语音质量也有很多差别。这里我们不做讨论。

  比如,当你给一个手机打电话,asterisk将引导着你经中继(c),当你呼叫一个本地电话它又引导着到中(a)。类似地,当你进行国际呼叫时,asterisk将引导你经由中继(b)向外呼。

  8.3 中继和呼出路由

  对缺乏经验的人,Outbound Route Dial Patterns和Trunk Outgoing Dial Rules是两个困惑的区域,我将试图以最简单的词汇解释这点。

  这两个中的每一个都以彼此相关联工作——当一个外呼电话时,他们彼此关联。

  8.3.1 Outgoing Route Dial Pattern(呼出路由呼叫模式)

  当你想要打一个电话时,这种模式是你正常采用的呼叫方式。

  例如,如果你住在Brisbane,而你想打电话给一个在Sydney的朋友,你通常的拨的号码是02 91234567,然而如果你那个朋友在Victoria,你将需要拨03 91234567。

  因为你的VOIP提供者并不辨别你在哪里打电话或者你要打到哪里去,它需要一个通用型的号码去呼叫,因此,你的呼叫能直接指向正确的接收者。

  在许多情形下,VOIP提供者需要拨通用的e164格式,如,6129123456是Sydney,或61391234567是Melbourne的。(61是Australia的代码,2或3是Sydney或Melbourne各自的代码,后面再跟上你朋友的电话号码91234567)。

  因为你拨的号码03 91234567,asterisk仅需要传送391234567(不需要前面的0)。因此,在你的Outgoing Route Dial Pattern(外呼路径呼叫模式)(让我们称这种模式为Outgoing Route Domestic国内外呼模式)中,你需要按照下面的方式:

  0︱Nxxxxxxxx

  这个模式告诉Asterisk仅需传送10个数字中的9z位数,不传送前面的0. 如果你拨的是0291234567,将被传送的数字是291234567. 系统将自动去掉 前缀0.

  但是怎样被转换为61291234567的呢?这就需要看Trunk Outgoing Dial Rule。

  8.3.2 Trunk Outgoing Dial Rules 中继外拨规则

  这就是中继是怎么被要求传送给VSP而成功的呼叫你拨的号码。

  用上面的例子来说,假定VOIP服务提供者需要完整的e164格式,Asterisk将需要添加忽略的Australian的代码61.
在你的Trunk Outgoing Dial Rule,你将需要按照下面的模式:

  61+NXXXXXXXX

  这个规则告诉Asterisk如果通过此中继路由呼出前,在291234567前面添加61.需更多模式,请参见What is a Dial Pattern在前面的章节里。

  ......

  详见:
分享到: 收藏

专题