2012年6月8日
摘要: 最近在看Asterisk的源代码,收获不小,决定记录下来学习Asterisk过程中的点滴,分享给大家,也方便我以后查阅……今天让我感到意外的是Asterisk中对结构体初始化(或者说成是赋值)的使用。比如定义结构体如下:typedef struct ST { int a; int b; pFun fun;}ST;一般的初始化是这样的:ST t2; t2.a=4; t2.b=5; t2.fun=test2;而我在源码中看到的是这样的:ST t1 = {.a=1,.b=2,.fun=test1};感觉好强大。。。。。。这里是我仿照着写的完整代码: 1 #include <stdio.h> 阅读全文
posted @ 2012-06-08 00:22 Mike_Zhang 阅读(651) 评论(2) 推荐(0) 编辑
  2012年6月7日
摘要: 1、添加addons_test目录编写文件app_testApp.c和 app_testApp.exports,这里我只叙述大概过程,具体参考我的博文(http://www.cnblogs.com/MikeZhang/archive/2012/06/05/asterisk187CLIAddOns.html )2、编写addons_test目录里面的Makefile文件内容如下:-include$(ASTTOPDIR)/menuselect.makeopts $(ASTTOPDIR)/menuselect.makedepsMENUSELECT_CATEGORY=ADDONS_TESTMENUSE 阅读全文
posted @ 2012-06-07 23:34 Mike_Zhang 阅读(684) 评论(0) 推荐(0) 编辑
摘要: 我前面有一篇文章介绍了怎么扩展Asterisk 1.8.7的CLI接口(http://www.cnblogs.com/MikeZhang/archive/2012/06/05/asterisk187CLIAddOns.html ),这里说说添加Dialplan Applications的方法。具体如下:一、准备工作1、进入之前建立的addons_test目录,建立app_testApp20120607.c和app_testApp20120607.exports文件;2、仿照app_testApp.c文件进行app_testApp20120607.c的编码,仿照app_testApp2.expo 阅读全文
posted @ 2012-06-07 20:28 Mike_Zhang 阅读(1405) 评论(0) 推荐(1) 编辑
  2012年6月5日
摘要: 我之前有一篇文章(http://www.cnblogs.com/MikeZhang/archive/2012/04/14/asteriskCLIAppTest20120414.html)介绍过如何扩展asterisk的cli接口,本篇是它的继续,总结下,也方便我以后查阅。 大部分情况下,配置asterisk的拨号方案,用CLI、AMI之类的就可以满足我们的需求。可有些情况下涉及到业务的东东,需要数据库的参与(比如用sqlserve存储asterisk的录音记录等等),拨号方案那种静态的做法完全不用考虑,而原始的CLI、AMI已经不能满足需求。这时就需要考虑从源码入手,扩展asterisk... 阅读全文
posted @ 2012-06-05 23:56 Mike_Zhang 阅读(2568) 评论(0) 推荐(2) 编辑
  2012年6月4日
摘要: 安装git Linux下安装 CentOS为例: Windwos下安装 下载地址: https://git-scm.com/downloads 配置git 这里以配置全局为例: 配置user信息 配置http代理 取消配置命令: 使用git 初始化 添加本地所有文件 递交 查看日志 检验仓库 例如: 阅读全文
posted @ 2012-06-04 17:48 Mike_Zhang 阅读(2183) 评论(0) 推荐(0) 编辑
  2012年5月31日
摘要: 这段时间用到了linux下的ftp,上网搜搜问题解决了。可网上资料有点乱,决定把自己的配置过程记录下来,也方便我以后查看。一、安装并测试可用性1、安装命令yum install vsftpd2、配置防火墙3、配置服务配置开机启动启动服务:/etc/init.d/vsftpd start4、访问测试添加文件并测试:路径: /var/ftp/echo "Just a test" > /var/ftp/test.txt二、配置本地用户访问,并赋予写权限1、配置vsftpd.conf文件vi vsftpd.conf禁止匿名用户访问:anonymous_enable=NO 允许 阅读全文
posted @ 2012-05-31 15:51 Mike_Zhang 阅读(4475) 评论(3) 推荐(0) 编辑
  2012年4月25日
摘要: Windows下,以".py"为扩展名的Python程序可以双击运行,用起来很爽,现在玩go语言,我也想这么玩……这里说说我的玩法。示例代码(test.go):package mainimport ( "fmt" "time")func main() { fmt.Println("Test") time.Sleep(time.Duration(6) * time.Second)}Windows7 下,修改注册表:路径:HKEY_CLASSES_ROOT\go_auto_file\shell\open\command 阅读全文
posted @ 2012-04-25 14:04 Mike_Zhang 阅读(2128) 评论(1) 推荐(0) 编辑
  2012年4月17日
摘要: 经常用Python写demo来验证方案的可行性,最近遇到了Python访问SqlServer的问题,这里总结下。一、Windows下配置Python访问Sqlserver环境:Windows 7 + Sqlserver 20081、下载并安装pyodbc下载地址:http://code.google.com/p/pyodbc/downloads/list 2、访问SqlServer>>> import pyodbc>>>cnxn = pyodbc.connect('DRIVER={SQL Server};SERVER=192.168.1.100\\s 阅读全文
posted @ 2012-04-17 16:13 Mike_Zhang 阅读(14307) 评论(5) 推荐(0) 编辑
  2012年4月14日
摘要: 环境:CentOS6.2 + Asterisk 1.8.7.1一、添加源文件复制app_verbose.c为app_testApp.c复制app_verbose.exports为app_testApp.exports主要是修改一些标识,编译不会出错就行,这里列出我进行的主要修改。1、添加头文件#include "asterisk/cli.h"2、修改变量static char *app_testApp = "testApp";static char *app_testApplog = "testAppLog";3、在load_modu 阅读全文
posted @ 2012-04-14 17:05 Mike_Zhang 阅读(1727) 评论(2) 推荐(0) 编辑
  2012年4月13日
摘要: 将asterisk的呼叫记录存入mysql很简单,其实存入SqlServer也同样容易。首先声明下环境:CentOS6.2 + Asterisk 1.8.7.1 + Freetds 0.91 + SqlServer 20081、安装rpmforge源和epel源2、安装freetds:yum install freetds*3、配置并测试freetdsvi /etc/freetds.conf示例如下:ip:port模式:[SQL2008]host = 172.16.16.100port = 1433tds version = 8.0测试如下:tsql -S SQL2008 -U sa -P p 阅读全文
posted @ 2012-04-13 23:38 Mike_Zhang 阅读(1698) 评论(0) 推荐(0) 编辑
  2012年3月31日
摘要: 用惯了Python,现在写C++的代码感觉有点不太顺畅。这不,今天就和这小小的raw_input较上劲了……用过Python的朋友知道,Python中有个raw_input,可以如下使用:printraw_input("Inputa number : ")一个函数内既有输入提示,又有返回值,用起来着实方便。可现在的问题是在C++中,我也想这么干,怎么办?其实,写一个函数也可以轻松实现的,比如:int raw_input(const char* tips){ cout<<tips; int a; cin>>a; return a;}这个是实... 阅读全文
posted @ 2012-03-31 22:17 Mike_Zhang 阅读(2961) 评论(0) 推荐(2) 编辑
  2012年3月30日
摘要: Windows下访问Sqlserver很方便,特别是用ADO,即便是用C++写代码,也没怎么感觉麻烦,如果是用C#的话,写起来估计更是飞一般的感觉,可现在我要处理的问题是在Linux下访问SqlServer,执行sql语句和存储过程…… 好,不废话了,下面开工。一、包含头文件#include<sybfront.h>//freetds#include<sybdb.h>//freetds二、执行sql语句或存储过程1、查询类1.1 核心代码:bool queryCmd(DBPROCESS *dbprocess,const char* strSql){ dbcmd(dbpro 阅读全文
posted @ 2012-03-30 18:03 Mike_Zhang 阅读(3679) 评论(0) 推荐(0) 编辑
  2012年3月29日
摘要: 刚刚发布go 1 ,迫不及待的进行更新,可问题出来了:1、8g的命令不能用了我的平台是windows,用notepad++配置了开发环境(http://www.cnblogs.com/MikeZhang/archive/2012/02/10/nppRunGo.html)设置“8g -o test1.8 test1.go & 8l -o test1.exe test1.8 & test1.exe”的快捷键为Ctrl+F6但当执行时候,提示如下:‘8g.exe' 不是内部或外部命令,也不是可运行的程序或批处理文件。查了查资料,应该这样做:go run file.go或者go 阅读全文
posted @ 2012-03-29 23:37 Mike_Zhang 阅读(3128) 评论(9) 推荐(2) 编辑
  2012年3月24日
摘要: 经常碰到字符串分割的问题,这里总结下,也方便我以后使用。 一、用strtok函数进行字符串分割 原型: char *strtok(char *str, const char *delim); 功能:分解字符串为一组字符串。 参数说明:str为要分解的字符串,delim为分隔符字符串。 返回值:从st 阅读全文
posted @ 2012-03-24 15:25 Mike_Zhang 阅读(134644) 评论(3) 推荐(17) 编辑
  2012年3月20日
摘要: 今天有个网友问我组合数生成算法的问题,这个写的早,只给他回复了原理。刚好这段时间玩“15选5”,知道那个是随机的,概率问题(中就是中了,没中就是没中),没啥好分析的,可还是忍不住想计算下…… 好,不废话了,下面开工。一、原理借助二进制计数的机制来进行,比如字符串“123”中选出两个字符,如下计... 阅读全文
posted @ 2012-03-20 17:25 Mike_Zhang 阅读(6686) 评论(0) 推荐(0) 编辑