add a simple sip client

SVN-Revision: 30519
owl
John Crispin 2012-02-14 15:05:52 +00:00
parent 976d3eb854
commit d82c9a1b15
4 changed files with 209 additions and 0 deletions

72
package/owsip/Makefile Normal file
View File

@ -0,0 +1,72 @@
#
# Copyright (C) 2012 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
OWSIP_VERSION=2012-02-14
OWSIP_RELEASE=1
PKG_NAME:=owsip
PKG_VERSION:=$(OWSIP_VERSION)$(if $(OWSIP_RELEASE),.$(OWSIP_RELEASE))
PKG_RELEASE:=1
PKG_REV:=da53a53db28b47ca1714ffba72d0df5bea357706
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=git://nbd.name/owsip.git
PKG_SOURCE_SUBDIR:=owsip-$(PKG_VERSION)
PKG_SOURCE_VERSION:=$(PKG_REV)
PKG_SOURCE_PROTO:=git
PKG_MIRROR_MD5SUM:=74b0ab930321c4f85f220ff3852e210a
include $(INCLUDE_DIR)/package.mk
define Package/owsip-template
SUBMENU:=Telephony
SECTION:=net
CATEGORY:=Network
TITLE:=owsip using $(2)
VARIANT:=$(1)
DEPENDS:=+librt +libuci +libubox +pjsip-$(1) $(3)
endef
Package/owsip-oss=$(call Package/owsip-template,oss,OSS,BROKEN)
Package/owsip-ltq-tapi=$(call Package/owsip-template,ltq-tapi,Lantiq VMMC,@TARGET_lantiq +kmod-ltq-kpi2udp)
define Package/owsip-$(BUILD_VARIANT)/description
OpenWrt sip daemon - $(BUILD_VARIANT)
endef
USE_LOCAL=$(shell ls ./src/ 2>/dev/null >/dev/null && echo 1)
ifneq ($(USE_LOCAL),)
define Build/Prepare
$(CP) ./src/* $(PKG_BUILD_DIR)/
endef
endif
EXTRA_CFLAGS=-I$(STAGING_DIR)/usr/include -I$(STAGING_DIR)/include \
-I$(STAGING_DIR)/usr/pjsip-$(BUILD_VARIANT)/include
EXTRA_LDFLAGS=-L$(STAGING_DIR)/usr/lib -L$(STAGING_DIR)/usr/pjsip-$(BUILD_VARIANT)/lib
define Build/Compile
PKG_CONFIG_PATH=$(STAGING_DIR)/usr/pjsip-$(BUILD_VARIANT)/lib/pkgconfig \
BACKEND=$(BUILD_VARIANT) CFLAGS="$(EXTRA_CFLAGS)" LDFLAGS="$(EXTRA_LDFLAGS)" $(MAKE) -C $(PKG_BUILD_DIR) $(TARGET_CONFIGURE_OPTS)
endef
define Package/owsip-$(BUILD_VARIANT)/conffiles
/etc/config/telephony.conf
endef
define Package/owsip-$(BUILD_VARIANT)/install
$(INSTALL_DIR) $(1)/usr/bin $(1)/etc/init.d $(1)/etc/config $(1)/etc/uci-defaults
$(INSTALL_BIN) $(PKG_BUILD_DIR)/owsip_ua $(1)/usr/bin
$(INSTALL_BIN) ./files/telephony.init $(1)/etc/init.d/telephony
$(INSTALL_DATA) ./files/telephony.conf $(1)/etc/config/telephony
$(INSTALL_DATA) ./files/telephony.defaults $(1)/etc/uci-defaults/telephony
endef
$(eval $(call BuildPackage,owsip-oss))
$(eval $(call BuildPackage,owsip-ltq-tapi))

View File

@ -0,0 +1,32 @@
config general general
option name owsip
option backend ltq_tapi
option ossdev 0
option log_level 3
option interface nas0
option local_port 5060
option rtp_port 4000
option locale germany
config stun stun
option host stun.myrealm.com
option port 3478
config account example1
option realm myrealm1.com
option username myuser1
option password mypass1
option disabled 1
config account example2
option realm myrealm2.com
option username myuser2
option password mypass2
option disabled 1
config contact
option desc "example contact description"
option code "example"
option dial "0123456789"
option type realm

View File

@ -0,0 +1,55 @@
#!/bin/sh
#
# Copyright (C) 2011 OpenWrt.org
# based on ar71xx
#
COMMIT_TELEPHONY=0
set_relay() {
local cfg="relay_$1"
local gpio=$1
local val=$2
uci -q get telephony.$cfg && return 0
uci batch <<EOF
set telephony.$cfg='relay'
set telephony.$cfg.gpio='$gpio'
set telephony.$cfg.value='$val'
EOF
COMMIT_TELEPHONY=1
}
set_port() {
local cfg="port$1"
local id=$1
local led=$2
uci -q get telephony.$cfg && return 0
uci batch <<EOF
set telephony.$cfg='port'
set telephony.$cfg.id='$id'
set telephony.$cfg.led='$led'
set telephony.$cfg.noring='0'
set telephony.$cfg.nodial='0'
EOF
COMMIT_TELEPHONY=1
}
. /lib/lantiq.sh
board=$(lantiq_board_name)
case "$board" in
ARV7525PW)
set_relay 31 1
set_port 0 "soc:green:fxs1"
#set_port 1 "soc:green:fxs2"
;;
esac
[ "$COMMIT_TELEPHONY" == "1" ] && uci commit telephony
exit 0

View File

@ -0,0 +1,50 @@
#!/bin/sh /etc/rc.common
START=80
SERVICE_WRITE_PID=1
SERVICE_DAEMONIZE=1
SERVICE_PID_FILE=/var/run/owsip.pid
. /lib/functions.sh
load_module() {
MODULE=`lsmod | grep vmmc`
[ ! -z "$MODULE" ] || ( insmod vmmc ; sleep 3 )
[ ! -c /dev/vmmc10 ] && {
mknod /dev/vmmc10 c 122 10
mknod /dev/vmmc11 c 122 11
mknod /dev/vmmc12 c 122 12
mknod /dev/vmmc13 c 122 13
mknod /dev/vmmc14 c 122 14
mknod /dev/vmmc15 c 122 15
mknod /dev/vmmc16 c 122 16
mknod /dev/vmmc17 c 122 17
mknod /dev/vmmc18 c 122 18
}
}
relay_set () {
local cfg="$1"
local gpio value
config_get gpio "$cfg" gpio
config_get value "$cfg" value
[ -n "gpio" ] || return 0
[ ! -f "/sys/class/gpio/gpio$gpio/direction" ] &&
echo "$gpio" > /sys/class/gpio/export
[ -f "/sys/class/gpio/gpio$gpio/direction" ] && {
echo "out" > /sys/class/gpio/gpio$gpio/direction
echo "$value" > /sys/class/gpio/gpio$gpio/value
}
}
start() {
config_load telephony
config_foreach relay_set relay
load_module
service_start /usr/bin/owsip_ua
}
stop() {
service_stop /usr/bin/owsip_ua
}