- 解决opensips启动时出现PID file /var/run/opensips.pid does not exist 的错误
Mindfulness code
视频云opensips
启动opensips时报下列错误[root@OpenSIPSopensips]#opensipsctlstartINFO:StartingOpenSIPS:ERROR:PIDfile/var/run/opensips.piddoesnotexist--OpenSIPSstartfailed查看日志文件[root@OpenSIPSopensips]#tail-f/var/log/messagesMa
- 关于OpenSIPS3.4的tls_mgm配置
无名387
OpenSIPSOpenSIPStls
建议配置好tabletls_mgm,而不是把证书写到模块参数里面,好处是证书更新之后运行mitls_reload即可下面是一个插表的例子:INSERTINTOtls_mgm(id,DOMAIN,match_ip_address,match_sip_domain,TYPE,METHOD,verify_cert,require_cert,certificate,private_key,crl_chec
- 比较Kamailio和OpenSIPS的重写contact函数
无名387
OpenSIPSKamailioNAT
Kamailio:调用set_contact_alias()之后,在原有的contact的后面增加参数,具体地说,就是网络地址,网络端口和transport,好处是收到后续请求之时可以恢复原有contact的内容(当然也有坏处,就是增加参数之后导致包大,可能超过MTU)OpenSIPS:调用fix_nated_contact()之后,用网络地址和网络端口直接覆盖了在原有的contact,那么当收到
- 测试OpenSIPS3.4.3的lua模块
无名387
OpenSIPSOpenSIPSlua
这几天测试OpenSIPS3.4.3的lua模块,记录如下:有bug,但能用但现实世界就是这样,总是不完美的,发现之后马上提了issue下面这段代码运行报错:functionfunc1(msg)xlog("ERR","Hello,OpenSIPS\n")--把ERR改成EEE就没问题endsipstate.c的127行明显有问题(读者自己去查阅源码,这里不贴了)功能比Kamailio的KEMI少,
- opensips federation-cachedb-cluster(联合位置集群数据)
Kamilio_OPS
mongodb数据库nosql
opensipsFederatedUserLocationCluster(联合位置集群)实现目标:用户随机注册到不同opensips实例上,并且usrloc数据是共享的,lookup("location","g")可被全局查询到,lookup("location")可查询到本地opensips实例的注册数据环境:两个opensips实例(版本:3.2.3)一个MySQL实例一个mongodb实例(
- OpenSIPS3.4组合topology_hiding模块和mid_registrar模块的路由脚本
无名387
OpenSIPSOpenSIPS拓扑隐藏
OpenSIPS3.4.3启用topology_hiding模块的主要考虑是,某些sip协议栈对record-route支持的不好启用mid_registrar模块,向FreeSWITCH注册,修改contact为OpenSIPS的地址,但不修改过期时间。不用path模块的主要考虑是,某些sipserver对path支持的不好测试环境:OpenSIPSip地址:172.20.10.6FreeSWI
- OpenSIPS的db_cachedb模块
无名387
OpenSIPSOpenSIPS
查了下模块资料,要先安装mongodb,但本人不熟悉mongodb,于是暂时不测试db_cachedb模块google查了下,找到了2个链接:https://users.opensips.narkive.com/UQYIQ8Zq/opensips-connecting-to-mongodb-replica-set-from-opensipshttps://github.com/OpenSIPS/o
- OpenSIPS3.2保存和恢复sdp
无名387
OpenSIPSOpenSIPS修复sdp
UACOpenSIPSUAS--->invitewithsdp-->--->invitewithsdp<---183withsdp<---183withsdp<---200withoutsdp<---200withoutsdp这是最近碰到的一个case,需要在路由里面做如下处理:收到183reply的时候保存sdp收到200reply的时候恢复sdp主要的路由代码如下:loadmodule"sip
- OpenSIPS3.4 cachedb_sql模块测试
无名387
OpenSIPSOpenSIPScache
先上路由脚本:#debug_mode=yeslog_level=3xlog_level=3stderror_enabled=nosyslog_enabled=yessyslog_facility=LOG_LOCAL0udp_workers=4socket=udp:127.0.0.1:5060#CUSTOMIZEMEsocket=tcp:127.0.0.1:5060#CUSTOMIZEME#setm
- opensip常用命令备忘
Westring
查看用户信息可以在mysql中,opensipdatabase的subscriber表。opensip配置文件所在目录:/usr/local/etc/opensips/opensips.cfg(注意必须用管理员权限查看)opensip的ip端口设置,对于外网租用的服务器注意要填写示例列表中的内网ip,5060。另外要在出入规则中把udp和5060端口设置好。opensip添加删除账户:opensi
- 比较Kamailio和OpenSIPS的dispatcher模块
无名387
KamailioOpenSIPSdispatcher
Kamailio的dispatcher模块我用的很多,很熟OpenSIPS有同名模块二者基本功能相同但真使起来,差别还是挺大的#OpenSIPSevent_route[E_DISPATCHER_STATUS]{#logeachtimeadispatcherdestination#changesitsstatusxlog("Dispatcherdestinationhasnewstatus");}O
- centos或ubuntu部署OpenSips
Blueeyedboy521
音视频C组件库centosubuntulinux
目录参考关于via和Record-Route的理论关于rport机制概述安装依赖centosubuntu下载选择安装模块(db_mysql)数据库版本5.7配置安装目录保存配置项安装配置日志配置数据库配置文件opensips.cfg生成特定配置文件备份旧文件,修改新文件修改数据库配置创建用户启动查询在线用户负载均衡常见错误ERROR:databaseenginenotspecified,pleas
- 快速安装方式安装开源OpenSIPS和CP控制界面
lonnng2004
opensipsmysqlopensipsCP
OpenSIPS是目前世界上主流的两个SIP软交换引擎(其中另外一个是kamailio)或者SIP信令服务器(个人认为是比较正确的称谓)。关于Opensips的基础和一些参数配置和安装方式笔者在很久以前的历史文档中有非常多的介绍。最近,很多用户使用OpenSIPS软交换平台做freeSBC或者其他的功能业务的实现,这些客户遇到很多的疑问和安装中也遇到很多问题,所以,为了让客户能够快速安装opens
- OpenSIPS3.2.15 userblacklist模块测试
无名387
OpenSIPS模块测试
loadmodule"userblacklist.so"modparam("userblacklist","use_domain",0)#不比较域名modparam("userblacklist","db_url","mysql://opensips:opensipsrw@localhost/opensips")route[check_user_black]{if(is_method("INVIT
- OpenSIPS自定义统计项目
无名387
OpenSIPSOPS自定义统计项目
有朋友问,怎么统计ops每日的呼叫量这就是需要自定义统计项目我第一感觉是dialog模块后来又查了下资料,statistics模块更合适,Kamailio也有同名模块
- 测试OpenSIPS3.2的uac_registrant模块
无名387
OpenSIPSOpenSIPSuac_registrant
试了试OpenSIPS3.2的uac_registrant模块,目标就是opensips向Kamailio注册,记录如下:kamailioip:192.168.31.63opensipsip:192.168.31.171向kamailiosubscriber表插入数据,username='1001',password='1234',启动kamailio向opensipsregistrant表插入数
- Kamailio uac_replace和uac_restore
无名387
Kamailiouac_replaceuac_restore
uac模块包含的内容很多,本文仅讨论uac_replace和uac_restore先比较二段路由代码:#路由1$fU="alice";$tU="bob";$du=...;t_relay();exit;#OpenSIPS3.2似乎不允许这样修改主被叫,不清楚是出于什么样的考虑#路由2uac_replace_from('"alice"',"sip:"+"alice"+"@"+$fd);uac_repl
- Freeswitch 高级主题之用kamailio负载均衡
voipmaker
KamailioFreeSwitch
kamailio的前身叫openser,和opensips是兄弟,作为出色的sipproxy,在大并发量使用时经常用于负载均衡媒体服务器Asterisk、Freeswitch等实现集群。1.安装kamailio参考上一篇文章安装:Centos6.4上源码安装kamailio4.12.配置kamailio下面为配置好的主配置文件,dispacher模块有一些参数需要注意,默认下一跳地址的配置支持数据
- kamailio dispatch负载均衡
flora_yao_bj
sipsip
kamailio的前身叫openser,和opensips是兄弟,作为出色的sipproxy,在大并发量使用时经常用于负载均衡媒体服务器Asterisk、Freeswitch等实现集群。1.安装kamailio参考上一篇文章安装:http://www.aiuxian.com/article/p-1454911.html2.配置kamailio下面为配置好的主配置文件,dispacher模块有一些参
- Opensips安装配置(以下操作均已centOS 6.3系统为准)
holybomb
centoslinux运维
1.安装依赖软件:a)Yumupdate//更新系统到最新b)安装以下所需依赖软件gccbisonflexmakeopenssllibmysqlclient-devmysql-serverc)安装radiusclient:1.wgethttp://pkgs.repoforge.org/radiusclient-ng/radiusclient-ng-0.5.6-5.el6.rf.x86_64.rpm
- opensips 安装 参考视频步骤如下
王高强_强哥
1、apt-getupdateapt-getinstallgitapt-getinstallvimapt-getinstallflexbisonlibncurses5-devapt-getinstalllibncurses-devapt-getinstalllibncurses5-devapt-getinstallbisonapt-getinstallyaccapt-getinstallm42、c
- 【opensips】ERROR:core:fm_malloc: not enough free shm memory
安安爸Chris
问题现象opensips出现启动异常:启动异常截图ERROR:core:fm_malloc:notenoughfreeshmmemory(560bytesleft,need720),pleaseincreasethe"-m"commandlineparameter!opensips的内存还有8G,为什么会报这种异常呢?原因分析opensips是一个多进程应用,它自身fork了很多进程出来。所以在内
- opensips-cli安装
sip代理
背景opensips版本在3.x的文章一方面比较少,另一方面相关的介绍部分过时。最近在研究opensips,所以一并把相关的文章详细列出来,敬请期待,linux版本是centos7.91.opensips-cli安装准备1.1python3.9.18安装opensips-cli源码安装地址:https://github.com/OpenSIPS/opensips-cli/blob/master/d
- kamailio 做sip代理服务应用
sip代理
背景最近在研究sip代理服务,国内大部分推荐使用opensips,第一时间安装opensips来学习,实际在使用中发现opensips3.x的坑很多,很多功能在2.x版本上有,但是在3.x上还未实现。光是sip做代理服务转发请求到freeswitch上,3.x版本配置上就没有一个能成功使用的示例,配置都是2.x的,很多参数还不适配。整了2天都没搞明白,果断弃坑,选用kamailio,此时才发现ka
- opensips-cli安装
sip代理
背景opensips版本在3.x的文章一方面比较少,另一方面相关的介绍部分过时。最近在研究opensips,所以一并把相关的文章详细列出来,敬请期待,linux版本是centos7.91.opensips-cli安装准备1.1python3.9.18安装opensips-cli源码安装地址:https://github.com/OpenSIPS/opensips-cli/blob/master/d
- OpenSIPS配置脚本结构-》opensips.cfg
举世无双勇
opensips
OpenSIPs的配置文件一般命名为opensips.cfg,它是一个自定义的类C风格的脚本。逻辑上,一般把脚本划分为三个部分:全局变量模块描述路由逻辑下面是一个简单的实例:#######GlobalParameters#########debug=3log_stderror=nofork=yeschildren=4listen=udp:127.0.0.1:5060#######ModulesSe
- 【opensips】使用tls加密后的sip流如何通过wireshark查看?
安安爸Chris
使用tls加密sip后,所有的sip都是密文,所以即使抓包,也无法查看到sip信令流。实际上如果有tls服务器端certificate的privatekey的话,是可以把tls的sip流解密的。前提条件在opensips上针对tls端口抓的pcap包这个包必须包含tls握手的全过程,从ClientHello/ServerHello开始获取到certificate的privatekey文件加密的tl
- OpenSIPS 通话中 UPDATE 请求导致没有声音问题
谈谈1974
随笔工具配置OpenSIPS服务器SIP
文章目录1.问题现象2.抓包排查3.问题分析及解决方案1.问题现象在SIP应用的开发中,通话一端听不到声音是比较常见的问题。一般来说,没有声音意味着RTP传输存在障碍,追根究底就是网络不通或者端口未开放等原因。但在实践中,真正造成RTP传输故障的原因各式各样,以下是笔者遇到的一个案例:坐席使用软电话注册到OpenSIPS,常驻拉起后拨打外部用户,媒体流传输正常坐席使用硬话机注册到OpenSIPS,
- ubuntu 安装opensips osip exosip
somgl
其他siposipexosip
1、安装包准备osip:http://ftp.gnu.org/gnu/osip/exosip:http://download.savannah.nongnu.org/releases/exosip/需要的软件apt-getinstallmakegccg++2、下载安装包wgethttp://ftp.gnu.org/gnu/osip/libosip2-3.6.0.tar.gzwgethttp://d
- opensips 环境搭建及验证功能
济夏
环境说明1.系统为centos2.安装的opensips版本为opensips-2.2.2安装mysqlwgethttp://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpmrpm-ivhmysql-community-release-el7-5.noarch.rpmyuminstallmysql-community-server
- LeetCode[位运算] - #137 Single Number II
Cwind
javaAlgorithmLeetCode题解位运算
原题链接:#137 Single Number II
要求:
给定一个整型数组,其中除了一个元素之外,每个元素都出现三次。找出这个元素
注意:算法的时间复杂度应为O(n),最好不使用额外的内存空间
难度:中等
分析:
与#136类似,都是考察位运算。不过出现两次的可以使用异或运算的特性 n XOR n = 0, n XOR 0 = n,即某一
- 《JavaScript语言精粹》笔记
aijuans
JavaScript
0、JavaScript的简单数据类型包括数字、字符创、布尔值(true/false)、null和undefined值,其它值都是对象。
1、JavaScript只有一个数字类型,它在内部被表示为64位的浮点数。没有分离出整数,所以1和1.0的值相同。
2、NaN是一个数值,表示一个不能产生正常结果的运算结果。NaN不等于任何值,包括它本身。可以用函数isNaN(number)检测NaN,但是
- 你应该更新的Java知识之常用程序库
Kai_Ge
java
在很多人眼中,Java 已经是一门垂垂老矣的语言,但并不妨碍 Java 世界依然在前进。如果你曾离开 Java,云游于其它世界,或是每日只在遗留代码中挣扎,或许是时候抬起头,看看老 Java 中的新东西。
Guava
Guava[gwɑ:və],一句话,只要你做Java项目,就应该用Guava(Github)。
guava 是 Google 出品的一套 Java 核心库,在我看来,它甚至应该
- HttpClient
120153216
httpclient
/**
* 可以传对象的请求转发,对象已流形式放入HTTP中
*/
public static Object doPost(Map<String,Object> parmMap,String url)
{
Object object = null;
HttpClient hc = new HttpClient();
String fullURL
- Django model字段类型清单
2002wmj
django
Django 通过 models 实现数据库的创建、修改、删除等操作,本文为模型中一般常用的类型的清单,便于查询和使用: AutoField:一个自动递增的整型字段,添加记录时它会自动增长。你通常不需要直接使用这个字段;如果你不指定主键的话,系统会自动添加一个主键字段到你的model。(参阅自动主键字段) BooleanField:布尔字段,管理工具里会自动将其描述为checkbox。 Cha
- 在SQLSERVER中查找消耗CPU最多的SQL
357029540
SQL Server
返回消耗CPU数目最多的10条语句
SELECT TOP 10
total_worker_time/execution_count AS avg_cpu_cost, plan_handle,
execution_count,
(SELECT SUBSTRING(text, statement_start_of
- Myeclipse项目无法部署,Undefined exploded archive location
7454103
eclipseMyEclipse
做个备忘!
错误信息为:
Undefined exploded archive location
原因:
在工程转移过程中,导致工程的配置文件出错;
解决方法:
 
- GMT时间格式转换
adminjun
GMT时间转换
普通的时间转换问题我这里就不再罗嗦了,我想大家应该都会那种低级的转换问题吧,现在我向大家总结一下如何转换GMT时间格式,这种格式的转换方法网上还不是很多,所以有必要总结一下,也算给有需要的朋友一个小小的帮助啦。
1、可以使用
SimpleDateFormat SimpleDateFormat
EEE-三位星期
d-天
MMM-月
yyyy-四位年
- Oracle数据库新装连接串问题
aijuans
oracle数据库
割接新装了数据库,客户端登陆无问题,apache/cgi-bin程序有问题,sqlnet.log日志如下:
Fatal NI connect error 12170.
VERSION INFORMATION: TNS for Linux: Version 10.2.0.4.0 - Product
- 回顾java数组复制
ayaoxinchao
java数组
在写这篇文章之前,也看了一些别人写的,基本上都是大同小异。文章是对java数组复制基础知识的回顾,算是作为学习笔记,供以后自己翻阅。首先,简单想一下这个问题:为什么要复制数组?我的个人理解:在我们在利用一个数组时,在每一次使用,我们都希望它的值是初始值。这时我们就要对数组进行复制,以达到原始数组值的安全性。java数组复制大致分为3种方式:①for循环方式 ②clone方式 ③arrayCopy方
- java web会话监听并使用spring注入
bewithme
Java Web
在java web应用中,当你想在建立会话或移除会话时,让系统做某些事情,比如说,统计在线用户,每当有用户登录时,或退出时,那么可以用下面这个监听器来监听。
import java.util.ArrayList;
import java.ut
- NoSQL数据库之Redis数据库管理(Redis的常用命令及高级应用)
bijian1013
redis数据库NoSQL
一 .Redis常用命令
Redis提供了丰富的命令对数据库和各种数据库类型进行操作,这些命令可以在Linux终端使用。
a.键值相关命令
b.服务器相关命令
1.键值相关命令
&
- java枚举序列化问题
bingyingao
java枚举序列化
对象在网络中传输离不开序列化和反序列化。而如果序列化的对象中有枚举值就要特别注意一些发布兼容问题:
1.加一个枚举值
新机器代码读分布式缓存中老对象,没有问题,不会抛异常。
老机器代码读分布式缓存中新对像,反序列化会中断,所以在所有机器发布完成之前要避免出现新对象,或者提前让老机器拥有新增枚举的jar。
2.删一个枚举值
新机器代码读分布式缓存中老对象,反序列
- 【Spark七十八】Spark Kyro序列化
bit1129
spark
当使用SparkContext的saveAsObjectFile方法将对象序列化到文件,以及通过objectFile方法将对象从文件反序列出来的时候,Spark默认使用Java的序列化以及反序列化机制,通常情况下,这种序列化机制是很低效的,Spark支持使用Kyro作为对象的序列化和反序列化机制,序列化的速度比java更快,但是使用Kyro时要注意,Kyro目前还是有些bug。
Spark
- Hybridizing OO and Functional Design
bookjovi
erlanghaskell
推荐博文:
Tell Above, and Ask Below - Hybridizing OO and Functional Design
文章中把OO和FP讲的深入透彻,里面把smalltalk和haskell作为典型的两种编程范式代表语言,此点本人极为同意,smalltalk可以说是最能体现OO设计的面向对象语言,smalltalk的作者Alan kay也是OO的最早先驱,
- Java-Collections Framework学习与总结-HashMap
BrokenDreams
Collections
开发中常常会用到这样一种数据结构,根据一个关键字,找到所需的信息。这个过程有点像查字典,拿到一个key,去字典表中查找对应的value。Java1.0版本提供了这样的类java.util.Dictionary(抽象类),基本上支持字典表的操作。后来引入了Map接口,更好的描述的这种数据结构。
&nb
- 读《研磨设计模式》-代码笔记-职责链模式-Chain Of Responsibility
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
/**
* 业务逻辑:项目经理只能处理500以下的费用申请,部门经理是1000,总经理不设限。简单起见,只同意“Tom”的申请
* bylijinnan
*/
abstract class Handler {
/*
- Android中启动外部程序
cherishLC
android
1、启动外部程序
引用自:
http://blog.csdn.net/linxcool/article/details/7692374
//方法一
Intent intent=new Intent();
//包名 包名+类名(全路径)
intent.setClassName("com.linxcool", "com.linxcool.PlaneActi
- summary_keep_rate
coollyj
SUM
BEGIN
/*DECLARE minDate varchar(20) ;
DECLARE maxDate varchar(20) ;*/
DECLARE stkDate varchar(20) ;
DECLARE done int default -1;
/* 游标中 注册服务器地址 */
DE
- hadoop hdfs 添加数据目录出错
daizj
hadoophdfs扩容
由于原来配置的hadoop data目录快要用满了,故准备修改配置文件增加数据目录,以便扩容,但由于疏忽,把core-site.xml, hdfs-site.xml配置文件dfs.datanode.data.dir 配置项增加了配置目录,但未创建实际目录,重启datanode服务时,报如下错误:
2014-11-18 08:51:39,128 WARN org.apache.hadoop.h
- grep 目录级联查找
dongwei_6688
grep
在Mac或者Linux下使用grep进行文件内容查找时,如果给定的目标搜索路径是当前目录,那么它默认只搜索当前目录下的文件,而不会搜索其下面子目录中的文件内容,如果想级联搜索下级目录,需要使用一个“-r”参数:
grep -n -r "GET" .
上面的命令将会找出当前目录“.”及当前目录中所有下级目录
- yii 修改模块使用的布局文件
dcj3sjt126com
yiilayouts
方法一:yii模块默认使用系统当前的主题布局文件,如果在主配置文件中配置了主题比如: 'theme'=>'mythm', 那么yii的模块就使用 protected/themes/mythm/views/layouts 下的布局文件; 如果未配置主题,那么 yii的模块就使用 protected/views/layouts 下的布局文件, 总之默认不是使用自身目录 pr
- 设计模式之单例模式
come_for_dream
设计模式单例模式懒汉式饿汉式双重检验锁失败无序写入
今天该来的面试还没来,这个店估计不会来电话了,安静下来写写博客也不错,没事翻了翻小易哥的博客甚至与大牛们之间的差距,基础知识不扎实建起来的楼再高也只能是危楼罢了,陈下心回归基础把以前学过的东西总结一下。
*********************************
- 8、数组
豆豆咖啡
二维数组数组一维数组
一、概念
数组是同一种类型数据的集合。其实数组就是一个容器。
二、好处
可以自动给数组中的元素从0开始编号,方便操作这些元素
三、格式
//一维数组
1,元素类型[] 变量名 = new 元素类型[元素的个数]
int[] arr =
- Decode Ways
hcx2013
decode
A message containing letters from A-Z is being encoded to numbers using the following mapping:
'A' -> 1
'B' -> 2
...
'Z' -> 26
Given an encoded message containing digits, det
- Spring4.1新特性——异步调度和事件机制的异常处理
jinnianshilongnian
spring 4.1
目录
Spring4.1新特性——综述
Spring4.1新特性——Spring核心部分及其他
Spring4.1新特性——Spring缓存框架增强
Spring4.1新特性——异步调用和事件机制的异常处理
Spring4.1新特性——数据库集成测试脚本初始化
Spring4.1新特性——Spring MVC增强
Spring4.1新特性——页面自动化测试框架Spring MVC T
- squid3(高命中率)缓存服务器配置
liyonghui160com
系统:centos 5.x
需要的软件:squid-3.0.STABLE25.tar.gz
1.下载squid
wget http://www.squid-cache.org/Versions/v3/3.0/squid-3.0.STABLE25.tar.gz
tar zxf squid-3.0.STABLE25.tar.gz &&
- 避免Java应用中NullPointerException的技巧和最佳实践
pda158
java
1) 从已知的String对象中调用equals()和equalsIgnoreCase()方法,而非未知对象。 总是从已知的非空String对象中调用equals()方法。因为equals()方法是对称的,调用a.equals(b)和调用b.equals(a)是完全相同的,这也是为什么程序员对于对象a和b这么不上心。如果调用者是空指针,这种调用可能导致一个空指针异常
Object unk
- 如何在Swift语言中创建http请求
shoothao
httpswift
概述:本文通过实例从同步和异步两种方式上回答了”如何在Swift语言中创建http请求“的问题。
如果你对Objective-C比较了解的话,对于如何创建http请求你一定驾轻就熟了,而新语言Swift与其相比只有语法上的区别。但是,对才接触到这个崭新平台的初学者来说,他们仍然想知道“如何在Swift语言中创建http请求?”。
在这里,我将作出一些建议来回答上述问题。常见的
- Spring事务的传播方式
uule
spring事务
传播方式:
新建事务
required
required_new - 挂起当前
非事务方式运行
supports
&nbs