在树莓派ubuntu系统下搭建SIP服务器

avatar
作者
筋斗云
阅读量:3

接着上篇文章:

1.如图1所示,将电脑连上135-2.4G名称的wifi,将树莓派的网线连接上电脑,使用ssh打开ubuntu界面;

图1


2.如图2所示,sudo apt-get update更新软件源;

图2


3.如图3所示,sudo apt install asterisk下载asterisk;

图3


4.修改配置文件

配置用户信息

配置用户信息sip.conf文件(添加SIP账号),用来给客户端添加账号使用。如要添加1001、1002、1003三个号码,如图4所示,sudo vi /etc/asterisk/sip.conf进入sip.conf文件下,在原来的配置文件后面加入如下的用户信息,如图5,图6,图7所示。

图4

文件尾部加入:

[1001]

videosupport=always

type = friend

username=1001

secret = 1001

host = dynamic

canreinvite = no

dtmfmode = rfc2833

mailbox = mailbox

transport = udp

nat=yes

videosupport=always

maxcallbitrate=384

canreinvite=no

disallow=all

allow = ulaw

allow=alaw

allow=h263

allow=h264

context=default

[1002]

videosupport=always

type = friend

username=1002

secret = 1002

host = dynamic

canreinvite = no

dtmfmode = rfc2833

mailbox = mailbox

transport = udp

nat=yes

videosupport=always

maxcallbitrate=384

canreinvite=no

disallow=all

allow = ulaw

allow=alaw

allow=h263

allow=h264

context=default

[1003]

videosupport=always

type = friend

username=1003

secret = 1003

host = dynamic

canreinvite = no

dtmfmode = rfc2833

mailbox = mailbox

transport = udp

nat=yes

videosupport=always

maxcallbitrate=384

canreinvite=no

disallow=all

allow = ulaw

allow=alaw

allow=h263

allow=h264

context=default


图6


图7


上面的配置文件内容主要是配置了三个用户:1001,1002,1003。具体每个字段的含义参考下面的翻译:

type:sip的类型。格式:type =user|peer|friend 。

peer用于认证呼出呼叫,如果想要一个用户(extension)中有多个电话,定义可以呼叫两个SIP peer 的extension。user用于认证呼入呼叫,用户通过上下文鉴定到达服务器。friend用于认证呼入呼出,相当于(peer+user)。

username :格式:username =<username[@realm]>。如果Asterisk接受来自远程SIP的SIP INVITE请求的客户端,这字段指定验证的用户名。

secret:用于认证的密码。如果Asterisk是作为一个SIP代理服务器,那么这个SIP客户端必须使用此密码登录(一个共享密码)。如果Asterisk是一个SIP客户端作为一个远程SIP的SIP INVITE的服务器要求身份验证,那么这个字段是用来验证该Asterisk的SIP协议提请发送到远程SIP服务器。

配置打电话策略

电话策略主要是配置一些被呼振铃时间等,我们需要修改/etc/asterisk/extensions.conf文件,如图8所示,在图8的位置加入我们的电话策略。

使用sudo vi /etc/asterisk/extensions.conf命令进入extensions.conf文件

exten => 1001,1,Dial(SIP/1001)

exten => 1002,1,Dial(SIP/1002)

exten => 1003,1,Dial(SIP/1003)

图8


图9


如图9所示,上面的策略[general]中static=yes,writeprotect=no主要是可以通过CLI命令来保存拨号方案

[default] 说明:

开头部分“exten =>”表示,也可以用“exten =”表示。并且在一个小节内可以定义多条exten语句。

之后的1001表示匹配上1001的拨号

然后的“1”表示优先级,“1”表示第一步执行的意思,如果后续还需要执行其他动作的话,可以继续写多条exten语句,并且用递增执行次序依次设计下去。

接着的“Dail()”表示“执行动作”,这里是表示拨号的执行动作。更规范的说,这个是APP应用程序。

括号当中又分成2个部分。第一个SIP表示拨号动作中拨向的通道是SIP协议的通道。1001就是用户实际拨打的号码。

重启测试

修改完上面的两个配置文件完,就可以重启asterisk重新生效。如图10所示,通过命令 sudo /etc/init.d/asterisk restart重启,也可以手动杀死服务再重新运行。

图10


重启完成后就可以在我们的终端设备中中配置我们刚才添加的三个用户,分别配置两台终端设备的账号为1002和1003,然后查看注册和拨号情况。

以MicroSIP为例

安装MicroSIP软件

注意:电脑wifi要连接135-2.4G。

安装MicroSIP软件后,在桌面点击MicroSIP图标,添加账号;

(1)安装MicroSIP软件;

(2)如图1所示安装MicroSIP软件后,在桌面点击MicroSIP图标,添加账号;

图1


(3)如图2所示,填写账号信息后,账号、密码按照sip.conf里的配置填写,然后保存。

图2


(4)在主界面的左下角中,看到“在线”说明账号注册成功,此分机可以正常使用了!

                                              图3


以Linphone为例

(1)安装Linphone软件;

(2)如图1,图2,图3,图4,图5所示,点击助手,使用一个SIP账户,选择我明白,填好前面配好的相应账户信息,点击使用,点击左上角头像,将在线状态改成有空,即可使用!

注意:电脑wifi要连接135-2.4G。

图1


图2


图3


图4


图5


手机端的Linphone和电脑端使用一样,就不详细描述了,参照电脑端即可。

以上电脑端Linphone功能还有一点缺陷:

目前遇到的问题是电脑端Linphone打电话语音没有声音,视频不能打开,手机端互打视频和电话都是没有问题的,后来我百度查到原因是H264无法安装,如果有知道的朋友,还麻烦私信指点哈,一起学习,一起进步!

后续想办法在OpenWrt上实现这个功能,因为目前还在摸索中,没找到方案,这块和Ubuntu的配置的确不一样,敬请期待!

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!