Chinaunix首页 | 论坛 | 博客
  • 博客访问: 160349
  • 博文数量: 20
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 221
  • 用 户 组: 普通用户
  • 注册时间: 2015-01-14 18:03
个人简介

做好自己份内事

文章分类

全部博文(20)

文章存档

2019年(1)

2018年(2)

2017年(3)

2016年(3)

2015年(11)

我的朋友

分类: 其他UNIX

2015-12-02 15:03:00


作者:赵晓筱

日期:2015-11-25

联系邮箱:

本文基于前一篇文章openwrt集成asterisk基础上集成asterisk-gui。如果openwrt都没有集成asterisk,集成asterisk-gui也毫无意义。

openwrt历程中是有支持asterisk-gui的。不知道为什么后期这部分被删除了,具体原因尚且不是很清楚。在现在的openwrtluci选择节点下有luci-app-asteriskluci-app-pbx。不过这两个界面支持个人不知道如何使用,asterisk-gui是大多数人比较熟悉的配置界面。不过既然选择集成asterisk-gui,所以本文只介绍如何集成asterisk-gui

要想集成asterisk-gui,首先得熟悉openwrtpackage的概念。openwrt支持那么多集成模块,而且源码也不是很多,完全依靠这个神秘的package。大家可以看下官网介绍如何创造一个自己的package。地址:http://wiki.openwrt.org/doc/devel/packages#dokuwiki__top

要想集成asterisk-gui就得写一个通用的package。在这里我分享一下我个人写的package,可能不是很好,但是经过测试使用是可以用的。

首先在openwrt源码中package目录下新建文件夹asterisk-gui,进入文件夹新建Makefile文件,文件内容如下:


点击(此处)折叠或打开

  1. #
  2. # Copyright (C) 2015 OpenWrt.org
  3. # Copyright (C) 2015 Cesnet, z.s.p.o.
  4. #
  5. # This is free software, licensed under the GNU General Public License v2.
  6. # See /LICENSE for more information.
  7. #
  8. include $(TOPDIR)/rules.mk
  9. PKG_NAME:=asterisk-gui
  10. PKG_VERSION:=2.0
  11. PKG_RELEASE:=1
  12. PKG_REV:=5220
  13. PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_REV).tar.gz
  14. PKG_BUILD_DIR:=$(BUILD_DIR)/asterisk-gui-$(PKG_VERSION)
  15. PKG_SOURCE_URL:=
  16. PKG_SOURCE_PROTO:=svn
  17. PKG_SOURCE_VERSION:=$(PKG_REV)
  18. PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
  19. PKG_LICENSE:=GPL-2.0
  20. PKG_LICENSE_FILES:=COPYING LICENSE
  21. include $(INCLUDE_DIR)/package.mk
  22. define Package/asterisk-gui
  23. SUBMENU:=Telephony
  24. CATEGORY:=Network
  25. TITLE:=Asterisk GUI for Asterisk x.x
  26. VERSION:=$(PKG_VERSION)
  27. endef
  28. define Package/asterisk-gui/description
  29. Asterisk13 GUI is a framework for the creation of graphical interfaces
  30. for configuring Asterisk-x.x package.
  31. endef
  32. EXTRA_CFLAGS:=$(TARGET_CPPFLAGS)
  33. EXTRA_LDFLAGS:=$(TARGET_LDFLAGS)
  34. define Build/Prepare
  35. rm -rf $(PKG_BUILD_DIR)/
  36. mkdir -p $(PKG_BUILD_DIR)/
  37. $(TAR) -xzf $(DL_DIR)/$(PKG_SOURCE) -C $(PKG_BUILD_DIR) --strip 1
  38. $(Build/Patch)
  39. endef
  40. define Build/Configure
  41. ( cd $(PKG_BUILD_DIR); ./bootstrap.sh )
  42. $(call Build/Configure/Default, \
  43. --build=$(GNU_HOST_NAME) \
  44. --host=$(GNU_TARGET_NAME) \
  45. --target=$(GNU_TARGET_NAME) \
  46. --prefix=/usr \
  47. --disable-nls \
  48. --disable-static \
  49. --localstatedir="/usr" \
  50. --sysconfdir="/etc" \
  51. )
  52. endef
  53. define Build/Compile
  54. $(MAKE) -C $(PKG_BUILD_DIR) DESTDIR="$(PKG_INSTALL_DIR)"
  55. $(MAKE) -C $(PKG_BUILD_DIR) DESTDIR="$(PKG_INSTALL_DIR)" install
  56. endef
  57. define Package/asterisk-gui/install
  58. $(INSTALL_DIR) $(1)/etc/asterisk/
  59. #$(CP) ./files/gui_* $(1)/etc/asterisk/
  60. $(INSTALL_DIR) $(1)/usr/lib/asterisk/static-http
  61. $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/static-http/* $(1)/usr/lib/asterisk/static-http
  62. $(INSTALL_DIR) $(1)/usr/lib/asterisk/scripts
  63. $(CP) $(PKG_INSTALL_DIR)/usr/lib/asterisk/scripts/* $(1)/usr/lib/asterisk/scripts
  64. $(INSTALL_DIR) $(1)/usr/lib/asterisk/gui_backups
  65. endef
  66. $(eval $(call BuildPackage,asterisk-gui))


然后在裁剪内核的配置界面中选择:

Network  --->

   Telephony  --->

       < > asterisk-gui............................... Asterisk GUI for Asterisk x.x

主意哦,这个选项是增加了Makefile才会有的哦,默认是没有的哦,选择之后编译成功之后,uboot烧录之后。

ssh进入openwrt系统中修改配置文件,asterisk配置文件在/etc/asterisk/目录下;

修改配置文件http.conf:(没有此配置文件,确定asterisk已经正确安装时就增加此文件)

[general]

enabled=yes

enablestatic=yes

bindaddr=0.0.0.0 # allow GUI to be accessible from all IP addresses.

#bindaddr=127.0.0.1 # require access from the machine Asterisk is running on

bindport=8088

修改配置文件manager.conf:

[general]

enabled = yes

webenabled = yes

文件结尾增加:

[admin]

secret = admin

read = system,call,log,verbose,command,agent,config,read,write,originate

write = system,call,log,verbose,command,agent,config,read,write,originate

执行命令:

chmod 644 /etc/asterisk/*

rm -rf /usr/share/asterisk/static-http

ln -s /var/lib/asterisk/static-http /usr/share/asterisk/static-http

重新启动asterisk,在asterisk后台分别执行命令:

http show status

manager show settings

输出结果应该类似如下:

如果有错误则检查。

如果正常,则在浏览器中输入:

及可以打开熟悉asterisk-gui配置界面了。

登录名,密码都为admin
       

第一次登陆会出现一些错误,最常见的是.. /dahdi/system.conf文件缺失,这个手动创建/etcdahdi目录,再创建一个system.conf文件。主要是看有错误就解决对应的错误,在编译配置的时候需要配置

Utilities  --->

   Telephony  --->

       <*> dahdi-cfg..... DAHDI tools dahdi_cfg, dahdi_scan and fxotun

       <*> dahdi-monitor.. DAHDI tools dahdi_monitor, dahdi_speed and dahdi_test

Kernel modules  --->

   Voice over IP  --->

       -*- kmod-dahdi............ DAHDI basic infrastructure

          kmod-dahdi-dummy....... dummy DAHDI driver

          kmod-dahdi-echocan-oslec..... DAHDI OSLEC echo canceller support

          kmod-dahdi-hfcs......... DAHDI driver for HFC-S PCI

如果后期asterisk-gui启动有错误,就将packages/telephony下对应的kmod-dahdi_**.ipk安装到openwrt中。这样就能解决问题了。

Good luck!!

阅读(7020) | 评论(1) | 转发(0) |
0

上一篇:Openwrt集成asterisk

下一篇:Openwrt编译过程

给主人留下些什么吧!~~

rice_big2016-04-08 17:31:49

這太牛了,作者在電郵中細心回覆和解答我的問題,非常感激