说起Asterisk,那玩意儿真不是啥神秘高科技,就是个开源的电话交换机软件。我最早接触它,纯属偶然。那时候公司搞了个小型呼叫中心,想着不能买太贵的商业PBX设备,就有人提议试试这玩意儿。我接手这活儿的时候,手里头的资料少得可怜,感觉像是在摸黑走路。
刚开始摸索,我就是从最基础的安装入手。这东西跑在Linux上是最舒服的,我选了个干净的Ubuntu系统,先把编译环境搭起来。什么gcc、make、各种开发库,一个一个装。然后,从官网上把最新稳定版的源码包拖下来,解压,进到目录里。对着网上的几个简陋教程,我照着敲命令。
第一步肯定得是./configure,检查依赖,看看缺啥少跑完发现跳出不少警告,但大多数都能忽略,关键是要能顺利进行下一步。接着就是make menuselect,这个命令行界面下的菜单选配工具是重点,我得告诉它我将来想用什么模块,比如最基础的SIP协议支持,别的一开始都没敢瞎勾选,怕搞复杂了。
选好之后,敲make && make install。编译过程挺慢的,我就泡了杯茶,回来一看,基本上就装完了。安装完之后,配置文件在那儿放着,主要就在/etc/asterisk目录下。新手入门最头疼的就是这些配置文件。

初步配置,让它能响起来
我啃的是和。这玩意儿是定义分机和中继的,我琢磨着先搭两个虚拟分机玩玩。我建了两个用户,比如[1001]和[1002],设置了密码(secret),别的一概没动。这就像是给两台电话机贴了标签。
然后是,这是Asterisk的心脏,控制呼叫路由。我得定义一个上下文(context),比如[default]。里头写了两个简单的拨号规则:
- 匹配拨打
1001的,就用Dial(SIP/1001)让它响。 - 匹配拨打
1002的,一样,Dial(SIP/1002)。
配置完这些,我启动了Asterisk的服务,用asterisk -rvvv进到命令行界面,然后敲sip reload刷新配置。
找个客户端注册进去
光有交换机不行,得有客户端连进来。我找了个手机上的SIP客户端软件,把分机号1001、密码、服务器IP填进去,注册。成功了!客户端状态显示“Registered”。在Asterisk的命令行里敲sip show peers,果然看到了1001的状态是OK。

赶紧拿起另一个装了1002的软电话,拨打1001。奇迹发生了,电话响了!接起来,两边就能互相听见对方的声音了。这感觉真踏实,跑通了最基本的内部分机对讲。
挂个外线跑通拨号
下一步就是接入真实电话线,也就是接PSTN网关。我家这个配置是接了个小型的SIP Trunk服务商,它也提供了一个SIP账号给我。我得在里定义一个Peer,把服务商给的账号信息填进去,定义叫什么context。
然后在里加规则,让外面打进来的能转到我定义的内部分机,比如外线打进来一个总机号码,我让它响1001和1002。我写了个出局规则,如果我拨打9+号码,就通过刚才定义的Trunk出去。我试着拨了个手机号,嘟——,响了!能打出去。
整个过程下来,就是不断地试错、修改配置文件、reload,再试。Asterisk的强大就在于它的模块化和灵活的拨号方案,一旦摸清了配置文件的套路,后续增加IVR流程或者录音文件,也就顺理成章了。









