`
sun4love
  • 浏览: 233652 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

asterisk 集群配置的完全解决方案

    博客分类:
  • VOIP
阅读更多

IAX 设置详细
两台Asterisk服务器设置步骤如下:
* 设置iax.conf文件,一台设置成为peer模式另外一台设置成为user模式
* 设置user的extensions.conf让他的用户可以从user发送呼叫peer上
* 任意的, 在user上注册peer(当peer是动态IP地址的时候)
* 相反设置以上的步骤, 如果你想实现相互呼叫

===========================================
声明IAX2 user(在peer中)
如果想一个peer能收到呼叫. 必须在peer机器上设置iax.conf识别呼叫来自user.
[username]
type=user
auth=md5
secret=secretword
context=iax2users

context非常重要,他用来设置user新来的呼叫路由如何处理.
这个步骤将允许远程的user设备注册到peer上.如果你想限制请在peer的iax.conf里增加限制和许可的设置.
=================================
声明IAX2 peer(在user中)
从一个user产生呼叫的时候必须在user的iax.conf里设置到peer的验证.

[peername]
type=peer
host=hostname.domain.tld (如果用”dynamic”就要先进行一下register到peer)
auth=md5
secret=secretword ; 如果拨号的时候填写这里就不需要再填写
username=username-at-the-peer ; 如果拨号的时候填写这里就不需要再填写

请注意:

* type=user 表示你将通过这个号码将验证一个进来的呼叫
* type=peer 表示你将通过这个号码发送呼叫给某人
* type=friend 表示两个功能都有
Using type=friend makes life easier, but treat it as a shortcut. If you add both type=friend and host=hostname, domain.ext you limit the hosts your peer can place calls from, which may not be what you want.

现在完成第一步和第二步之后我们只需要考虑设置拨号方案了.读下面的例子看看怎么做吧.

================================
连接到拨号方案

示例1
extensions.conf:
exten => _7XXX,1,Dial(IAX2/myserver:passwordA@IAXserverA/${EXTEN:1},30,r)
exten => _7XXX,2,Dial(SIP/myserver:passwordA@SIPserverA/${EXTEN:1},30,r)
exten => _7XXX,3,Congestion

exten => _8XXX,1,Dial(IAX2/myserver:passwordB@IAXserverB/${EXTEN:1},30,r)
exten => _8XXX,2,Dial(SIP/myserver:passwordB@SIPserverB/${EXTEN:1},30,r)
exten => _8XXX,3,Congestion

记得要在iax.conf和sip.conf设置[IAXserverA]的这些定义.这个示例当出现问题后使用SIP做逃逸系统.注意你的用户名和密码可能会被CDR记录下来(你需要使用第二个示例的方法来实现隐藏).
示例2
这个示例将不会把用户名同密码显示在CDR当中

注意:在1.0.9版这个方法仍然不是Asterisk标准分支,所以仍然需要用户名和密码在dial字符串中
exten => _7XXX,1,Dial(IAX2/username:pass@serverB/${EXTEN:1},30,r)

(serverA)
iax.conf
[general]
register => :

@[serverB]
type=friend
user=
secret=

host=extensions.conf
exten => _7XXX,1,Dial(IAX2/serverB/${EXTEN:1},30,r)
exten => _7XXX,2,Congestion

(serverB)
iax.conf
[serverA]
type=friend
user=
secret=

host= |extensions.conf
exten => _8XXX,1,Dial(IAX2/serverA/${EXTEN:1},30,r)
exten => _8XXX,2,Congestion

在一些时候serverA和serverB就是在对方服务器上的用户
示例3
在extensions.conf使用switch对象你可以连接两台服务器或是其他服务器的连接方案。在这个方案中我们自己的serverC将连接ServerA或serverB:

[default]
exten => _801XXX,1,Goto,srvA|${EXTEN}|1
exten => _802XXX,1,Goto,srvB|${EXTEN}|1

[srvA]
exten => _801XXX,1,StripMSD,3
exten => _XXX,2,Goto,1
switch => IAX/serverA

[srvB]
exten => _802XXX,1,StripMSD,3
exten => _XXX,2,Goto,1
switch => IAX/serverB

注意:你要注意不能建立死循环serverA到serverB并且serverB又到serverA!同样考虑使用iax.conf中设置autokill来杀掉被悬起长时间进程(当远程服务器无法连接)

示例4
extensions.conf: (主服务器)

[outbound]
switch => IAX2/master:secret@iax-gw1.company.net/outbound
iax.conf (主服务器):
[slave]
type=user
auth=plaintext
context=outbound
secret=secret
host=dynamic
callerid=”slave”
trunk=yes
notransfer=yes

[slave]
type=peer
auth=plaintext
context=outbound-nuphone
secret=secret
host=dynamic
trunk=yes
notransfer=yes

extensions.conf (从服务器):

[assigned-dids]
; uncomment a dial mechanism, first one goes to specific extension
; other one goes to dial parameter s.

;exten => 7046446999,1,Dial,IAX2/master@slave/${EXTEN}
;exten => 7046446999,1,Dial,IAX2/master@slave

iax.conf (从服务器):

register => slave:secret@iax-gw1.company.net

[master]
type=peer
host=iax-gw1.company.net
secret=secret
context=outbound
trunk=yes
canreinvite=no

[master]
type=user
secret=secret
context=acontext
trunk=yes
canreinvite=no
===========================
关于register命令
当peer的ip并不明确,用户将不知道如何发送呼叫信息(当一个办公室用户呼叫 在家里工作的peer,因为在家里工作的peer只有一个动态IP或他是在NAT设置) 这个时候peer要注册到user及时的把自己的IP告诉user:

在peer的iax.conf的[general]上怎么写:

register => user:password@hostname.domain.ext

因为不断更新所以user总是知道peer的ip是否改变了.

register命令仅仅被用在动态IP地址的情况下,如果两台服务器都是静态IP地址你不需要做任何设置

分享到:
评论

相关推荐

    Asterisk 之数据库配置方案 asterisk数据库

    Asterisk 之数据库配置方案 Asterisk 是一个开源的 PBX(Private Branch Exchange)系统,可以实现电话交换和语音网关的功能。在传统的 Asterisk 配置中,配置文件都是存储在文件系统中的,但是随着系统的复杂度和...

    asterisk 集群

    随着企业对通信系统稳定性和服务质量要求的不断提高,Asterisk集群方案逐渐成为一种重要的技术手段。通过构建Asterisk集群,不仅可以提高系统的可用性,还能实现负载均衡,确保在主服务器出现故障时能够快速切换到...

    asterisk拨号方案的配置

    asterisk拨号方案的配置 Asterisk拨号方案的配置是Voice over Internet Protocol(VoIP)技术中的一个关键组件,它控制着呼入和呼出电话的处理和路由。配置文件“extensions.conf”是Asterisk拨号方案的核心,它...

    Asterisk 1.4 配置手册

    - **大型企业解决方案**:满足数千名员工的需求,通常会涉及更复杂的功能和冗余设计。 - **呼叫中心部署**:包括自动排队、技能路由等功能,优化客户服务体验。 #### 六、学习资源 对于希望深入了解 Asterisk 的...

    基于Asterisk的VOip解决方案

    ### 基于Asterisk的VOIP解决方案 #### 概述 随着互联网技术的不断发展,企业对于高效、低成本的通信需求日益增长。基于网络的语音技术(Voice over IP,简称VoIP)作为一种能够整合数据与语音系统的解决方案,受到...

    asterisk info 录音实现方案

    Asterisk录音方案通常要借助于其配置文件,例如features.conf,来实现对DTMF信号的响应。 描述中说明了方案涉及到的关键信息,包括主叫(caller)和被叫(callee)信息的传输。在Asterisk系统中,可以通过DTMF信号...

    Asterisk系统的安装与配置

    Asterisk系统的安装与配置 Asterisk是开源的通讯服务器软件,提供了丰富的通讯功能,包括语音、视频、即时消息等。下面是Asterisk系统的安装与配置指南。 一、安装DAHDI DAHDI是Asterisk管理硬件的插件(中间件)...

    Centos5.8安装asterisk并配置mysql用户表

    "Centos5.8安装asterisk并配置mysql用户表" Asterisk是一种流行的开源IP PBX系统,它提供了强大的语音通信功能和灵活的配置能力。本篇文章将指导您在Centos5.8系统上安装Asterisk,并配置Mysql用户表以实现动态...

    Asterisk基本配置PPT

    ### Asterisk基本配置详解 #### Asterisk概览与特点 Asterisk作为一款开源的电话交换平台,在全球范围内被广泛...无论是基础的电话系统还是复杂的呼叫中心解决方案,Asterisk都能够提供一套完整且高效的技术方案。

    Asterisk 简介 Asterisk 架构 Asterisk程序框图

    Asterisk由Digium公司开发,最初由Mark Spencer在1999年创建,旨在为Linux操作系统提供一种低成本的PBX(Private Branch Exchange)解决方案。随着时间的发展,Asterisk已经成为全球最受欢迎的开源通信平台之一。它...

    Asterisk服务器的搭建与配置.docx

    Asterisk服务器的搭建与配置 Asterisk服务器是一种开源的基于voip的通信服务器软件,可以实现语音通话、视频会议、短信服务等功能。下面是Asterisk服务器的搭建与配置过程。 一、安装Asterisk服务器 首先,需要在...

    asterisk服务器配置文件.rar

    在本文中,我们将深入探讨如何使用Asterisk服务器配置文件来实现FGcom语音对讲功能。 首先,Asterisk的配置文件通常位于/etc/asterisk目录下,包含了一系列的ini格式文件,如extensions.conf、manager.conf、sip....

    asterisk分机配置

    ### Asterisk分机配置详解 #### 一、Asterisk简介 Asterisk是一款非常强大的开源电话系统,它能够处理语音、视频等多种通信方式,并且支持多种协议如SIP、IAX2等。通过Asterisk,用户可以构建功能丰富的呼叫中心、...

    Asterisk服务器搭建和配置文档.docx

    Asterisk是一款开源的PBX(Private Branch Exchange,专用分组交换机)解决方案,能够帮助企业和组织构建自己的语音通信系统。本文档旨在详细介绍如何在Ubuntu操作系统上搭建和配置Asterisk服务器,包括安装Asterisk...

    asterisk AGI应用说明

    ### Asterisk AGI应用详解 #### 一、概述 Asterisk是世界上最流行的开源PBX系统之一,它支持多种通信协议并提供了...掌握了AGI的基础知识和应用技巧后,开发人员可以轻松地根据实际需求定制个性化的通信解决方案。

    Asterisk.NET 1.6.3 控制Asterisk

    Asterisk.NET 1.6.3 是一个专门为.NET开发者设计的开源库,它提供了对Asterisk PBX系统的编程接口,使得用户可以方便地在C#、...开发者可以利用这个库轻松地构建自己的VoIP解决方案,提高电话系统的可定制性和灵活性。

    Asterisk 中文语音包

    Asterisk是一款开源的IP电话系统,它允许用户创建自己的通信平台,支持VoIP(Voice over IP)服务,包括电话...了解如何正确安装和配置语音包是提升Asterisk服务质量的关键,特别是对于面向中文用户的通信解决方案。

    asterisk-java-1.0.0-m2-sources.zip_asterisk

    总的来说,Asterisk-Java提供了一个强大的工具,使得Java开发者能够轻松地与Asterisk PBX系统进行集成,开发出各种创新的通信解决方案。通过深入研究其源码和理解AGI的工作机制,开发者可以定制化电话系统的功能,以...

    Asterisk AMI 接口代码

    Asterisk AMI(Asterisk Manager Interface)接口是Asterisk PBX...总之,Asterisk AMI接口提供了丰富的功能,结合Java库`asterisk-java`,开发者可以构建出强大的电话系统解决方案,实现自动化和定制化的业务需求。

Global site tag (gtag.js) - Google Analytics