吴伟贤のBlog

Feed Rss

centos pppoe adsl拨号设置

04.10.2013, centos pppoe adsl拨号设置已关闭评论, linux, by .

拨打需要进行PPPOE拨打.需要安装这个功能

1: yum install rp-pppoe 出现很多提示,停住时输入y,继续,    安装完成

2:拨打上网设置

  黄色为需要用键盘输入的.   

输入密码时不会显示.请直接输入即可

  12344(04-09-18-07-43)

22222(04-09-18-07-43)

 

3:启动ADSL

  333(04-09-18-07-43)

4:查看当前IP ,确认是否已拨号成功

输入curl http://iframe.ip138.com/ic.asp

 

其他命令

启动连接  /sbin/ifup ppp0
停止连接 /sbin/ifdown ppp0
查看状态 /sbin/adsl-status
配置文件位置 /etc/sysconfig/network-scripts/ifcfg-ppp0

密码存放
Adjusting /etc/ppp/chap-secrets and /etc/ppp/pap-secrets
  (But first backing it up to /etc/ppp/chap-secrets.bak)
  (But first backing it up to /etc/ppp/pap-secrets.bak)

linux查询自己的外网ip地址

04.09.2013, linux查询自己的外网ip地址已关闭评论, linux, by .
1:
curl http://iframe.ip138.com/ic.asp
 
2:
tracepath 8.8.8.8 

第一个不是私有ip地址就是你外网的ip地址了

Asterisk目录

04.09.2013, Asterisk目录已关闭评论, asterisk, by .

Asterisk的文件组织结构适应了Linux的传统方式,被分为以下几个目录:

1. /etc/asterisk:该目录包含了所有Asterisk的配置文件;

2. /usr/sbin:该目录包含了Asterisk的可执行文件和脚步文件,包括asterisk、astman、astgenkey和safe_asterisk;

3. /usr/lib/asterisk:包含与Asterisk特定架构有关的二进制对象(Contains binary objects related to Asterisk which are architecture specific.)

4. /usr/lib/asterisk/modules:包含了运行时用于加载应用程序、管道驱动、编解码器、文件格式驱动等的模块;

5. /usr/include/asterisk:包含了用于建立asterisk应用程序、管道驱动和其它加载模块所需的头文件;

6. /var/lib/asterisk:包含了Asterisk正常运行所用的变量数据;

7. /var/lib/asterisk/agi-bin:在拨号方案中被AGI应用程序使用的AGI脚本位置;

8. /var/lib/asterisk/astdb:Asterisk数据库,与Windows注册表类似。该文件从不直接使用,但可以使用数据库函数集,通过Asterisk命令行来查看和修改它的内容;

9. /var/lib/asterisk/images:拨号方案和应用程序中所使用的图片的存储区域;

10. /var/lib/asterisk/keys:用于Asterisk RSA身份认证的公钥和私钥的存储区域;

11. /var/lib/asterisk/mohmp3:通话保持期间MP3音乐的存储区域,包含了你所希望的用于通话保持期间的所有MP3音乐。注意:该音乐必须配置在/etc/asterisk/musiconhold.conf文件中;

12. /var/lib/asterisk/sounds:用于Asterisk应用程序的语音文件、提示音等的存储区域。一些提示音被组织为/var/lib/asterisk/sounds目录的子目录;

13. /var/run:Asterisk存储运行时管道和PID文件的标准目录;

14. /var/run/asterisk.pid:包含了运行Asterisk的进程标示符(PID);

15. /var/run/asterisk.ctl:一个命名的管道,Asterisk用它来执行远程运行模式;

16. /var/spool/asterisk:运行时假脱机文件,像语音信箱、呼出电话等;

17. /var/spool/asterisk/outgoing:由Asterisk监测呼出电话。在该目录下一个文件被创建时,Asterisk将转换该文件并试图向外呼出电话,如果电话被接听则接入到PBX;

18. /var/spool/asterisk/qcall:用于现在已经被弃用的qcall应用程序,建议不要使用;

19. /var/spool/asterisk/vm:语音信箱、公告和档案夹的存储。

转:公用 Stun 服务器列表

02.18.2013, 转:公用 Stun 服务器列表已关闭评论, voip, by .

Public STUN servers

  • provserver.televolution.net
  • sip1.lakedestiny.cordiaip.com
  • stun1.voiceeclipse.net
  • stun01.sipphone.com
  • stun.callwithus.com
  • stun.counterpath.net
  • stun.ekiga.net (alias for stun01.sipphone.com)
  • stun.ideasip.com (no XOR_MAPPED_ADDRESS support)
  • stun.internetcalls.com
  • stun.ipns.com
  • stun.noc.ams-ix.net
  • stun.phonepower.com
  • stun.phoneserve.com
  • stun.rnktel.com
  • stun.softjoys.com (no DNS SRV record) (no XOR_MAPPED_ADDRESS support)
  • stunserver.org see their usage policy
  • stun.sipgate.net
  • stun.sipgate.net:10000
  • stun.voip.aebc.com
  • stun.voipbuster.com (no DNS SRV record) (no XOR_MAPPED_ADDRESS support)
  • stun.voxalot.com
  • stun.voxgratia.org (no DNS SRV record) (no XOR_MAPPED_ADDRESS support)
  • stun.xten.com
  • numb.viagenie.ca (http://numb.viagenie.ca) (XOR_MAPPED_ADDRESS only with rfc3489bis magic number in transaction ID)
  • stun.ipshka.com inside UA-IX zone russsian explanation at http://www.ipshka.com/main/help/hlp_stun.php

freeswitch external 5080安全

01.24.2013, freeswitch external 5080安全已关闭评论, freeswitch, by .

freeswitch-cn群内整理

 

freeswitch默认 external 5080安全

1:限制IP ACL内设置

2:不用external,或者是修改5080端口

3:限制拨号用户号码

4:限制来话IP

5:限制呼叫间隔

php执行服务端命令的4种方法

01.24.2013, php执行服务端命令的4种方法已关闭评论, php, by .

1:  exec($code,$result)
2:  passthru($code)
3:  system($code)
4:  直接`$code` 执行操作符一对反向单引号

 

区别 :
system() 输出并返回最后一行shell结果。
exec() 不输出结果,返回最后一行shell结果,所有结果可以保存到一个返回的数组里面。
passthru() 只调用命令,把命令的运行结果原样地直接输出到标准输出设备上。
相同点:都可以获得命令执行的状态码

 

system()
原型:string system (string command [, int return_var])
system()函数很其它语言中的差不多,它执行给定的命令,输出和返回结果。第二个参数是可选的,用来得到命令执行后的状态码。

    返回结果

        成功返回0,  
        失败(命令不存在等原因)   返回   非0值
例子:
system(“/usr/local/bin/webalizer/webalizer”);

exec()
原型:string exec (string command [, string array [, int return_var]])
exec ()函数与system()类似,也执行给定的命令,但不输出结果,而是返回结果的最后一行。虽然它只返回命令结果的最后一行,但用第二个参数array 可以得到完整的结果,方法是把结果逐行追加到array的结尾处。所以如果array不是空的,在调用之前最好用unset()最它清掉。只有指定了第二 个参数时,才可以用第三个参数,用来取得命令执行的状态码。
例子:
exec(“/bin/ls -l”);
exec(“/bin/ls -l”, $res);
exec(“/bin/ls -l”, $res, $rc);

passthru()
原型:void passthru (string command [, int return_var])
passthru ()只调用命令,不返回任何结果,但把命令的运行结果原样地直接输出到标准输出设备上。所以passthru()函数经常用来调用象pbmplus (Unix下的一个处理图片的工具,输出二进制的原始图片的流)这样的程序。同样它也可以得到命令执行的状态码。
例子:
header(“Content-type: image/gif”);
passthru(“./ppmtogif hunte.ppm”);

 

示例

<?
chdir(‘../’);

exec(‘tree’,$result);
foreach($result as $line)
  echo $line;

passthru(‘tree’);

$result=system(‘tree’);

$result=`tree`;
echo $result;
?>

php 服务端执行ping 函数 测试平均速度

01.24.2013, php 服务端执行ping 函数 测试平均速度已关闭评论, php, by .

//php在服务端执行ping命令

//取得ping的平均速度 xms

function GetPing($ip=NULL) {
if(empty($ip)) {$ip = $_SERVER[‘REMOTE_ADDR’];}
if(getenv(“OS”)==”Windows_NT”) {
  $exec = exec(“ping -n 3 -l 64 “.$ip);
  return end(explode(” “, $exec ));
}
else {
  $exec = exec(“ping -c 3 -s 64 -t 64 “.$ip);
  $array = explode(“/”, end(explode(“=”, $exec )) );
  return ceil($array[1]) . ‘ms’;
}
}

echo GetPing(‘www.baidu.com’);

 

windows下要给php读cmd.exe的权限

转译稿:UserAgent的历史变迁

01.18.2013, 转译稿:UserAgent的历史变迁已关闭评论, 杂七杂八, by .

 

Google推出的Chrome让大家热议纷纷,只有专业用户才会注意到用Chrome访问网页时发出的“Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13”UserAgent字符串,貌似天书,它到底是怎么回事儿代表什么呢?我们来看看吧.

 

最早的时候有一个浏览器叫NCSA Mosaic,把自己标称为NCSA_Mosaic/2.0 (Windows 3.1),它支持文字显示的同时还支持图片,于是Web开始好玩起来。
然后出现了一个新的网页浏览器,“Mozilla”,其实就是“Mosaic终结者”的意思,这搞的Mosaic很不爽,(毕竟Mosaic出道早,江湖老),新浏览器最后正式公布的名称是Netscape,它把自己标称为Mozilla/1.0 (Win3.1),更好玩了。Netscape支持框架显示,后来框架在大家中间流行起来了,但Mosaic不支持框架啊,于是伟大的“用户代理人探测”技术出现了,如果是“Mozilla”,那就发给支持框架的页面,至于其他的浏览器,则发给不含框架的页面。

Netscape想逗Microsoft玩儿,把Windows叫做“几乎不曾做过调试的设备驱动器”,后者很恼火。Microsoft于是推出了自己的 网页浏览器,叫做Internet Explorer,希望它能成为“Netscape终结者”。Internet Explorer也支持框架,但它不是Mozilla啊,所以没人给它发送带有框架的页面。Microsoft慢慢烦躁起来,不再寄希望于网站管理员逐渐 认识IE并给它发框架,而是宣称自己是“兼容Mozilla”的,开始模仿Netscape,把自己标称为Mozilla/1.22 (compatible; MSIE 2.0; Windows 95),这样Internet Explorer也能收到框架了,整个Microsoft狂喜,但网站管理员开始有点被搞糊涂了。

Microsoft把IE和Windows一起卖,并且把产品也弄得比Netscape更好了,拉开了第一场浏览器之战。结果和大家知道的一样,Netscape被干掉了,Microsoft大胜、大喜。但是后来Netscape以Mozilla的新名称重生了,构造了Gecko,标称其为Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.1)

 

Gecko/20020826,Gecko属于渲染引擎,表现优异。Mozilla开发了Firefox,标称为Mozilla/5.0 (Windows; U; Windows NT 5.1; sv-SE; rv:1.7.5) Gecko/20041108 Firefox/1.0,并且Firefox表现也非常优秀。Gecko扩张迅速,一些浏览器使用了它的代码并标称为Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.2) Gecko/20040825 Camino/0.8.1 ,这是一个,还有Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.8) Gecko/20071008 SeaMonkey/1.0,另一个,它们都伪装成Mozilla,同时也都是基于Gecko支持的。

Gecko表现优秀,IE则很差劲,于是身份甄别再次发生,输送给Gecko的是设计良好的网页代码,其他浏览器就没有这个待遇了。Linux的跟随者很伤心,因为他们创建了基于KHTML引擎支持的Konqueror,但却不会被输送好代码,虽然他们自己认为KHTML和Gecko一样优秀,于是Konquerer开始伪装自己“像Gecko”那样以得到好的网页,并标称自己为Mozilla/5.0 (compatible; Konqueror/3.2; FreeBSD) (KHTML, like Gecko),这个世界更让人困惑了.

 

后来出现了Opera这样的主儿,宣称“允许用户自己决定让浏览器装成谁”,它的菜单中提供了Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.51Mozilla/5.0 (Windows NT 6.0; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.51Opera/9.51 (Windows NT 5.1; U; en) 供大家来选择,选谁是谁。

Apple开发了Safari,使用了KHTML,同时也增加了很多新特性,后来干脆一锅煮,另起炉灶叫了WebKit,但是它有希望能够得到那些为KHTML编写的网页,于是Safari标称自己为Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-de) AppleWebKit/85.7 (KHTML, like Gecko) Safari/85.5,这个世界更混乱了。
Microsoft越来越担心Firefox的发展,重新启动了Internet Explorer的开发,标称自己为Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0) ,可以很好的渲染代码,但那要看网站管理员是否指示它这么做。

Google也开发了自己的浏览器Chrome, 使用了Webkit,有点像Safari,希望能得到为Safari编写的网页,于是决定装成Safari。这样啊,Chrome使用了WebKit渲染 引擎,想装成Safari,而WebKit呢又伪装自己是KHTML,KHTML呢又是伪装成Gecko的,同时所有的浏览器又都宣称自己是 Mozilla,于是,Chrome宣称自己是Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13,,UserAgent字符串彻底混乱了,也几乎不再发挥任何作用,每个人都宣称自己是别人,混乱充斥人间啊。

freeswitch esl c开发常用命令

01.18.2013, freeswitch esl c开发常用命令已关闭评论, freeswitch, by .

freeswitch-cn群内收集的。版权归原作者所有

esl开发,C

厦门-余洪涌(109559405)  11:08:13
我开发使用到的一些命令:
呼叫:
esl_send_recv(&ghandle, “api create_uuid\n\n”);
if(strlen(called)>4)
sprintf(cmd_tmp,”bgapi originate {origination_uuid=%s,originate_timeout=60}sofia/gateway/gw1/%s %s\n\n”,uuid,called,system_caller);
else
sprintf(cmd_tmp,”bgapi originate {origination_uuid=%s,originate_timeout=30}sofia/internal/%s%c%s %s\n\n”,uuid,called,’%’,fsserverip,system_caller);
res=esl_send_recv(&handle,cmd_tmp);// “bgapi originate {originate_timeout=30}sofia/internal/1005%192.168.1.102 &park()\n\n”);
播音:
sprintf(cmd_tmp,”1 1 1 10 a %s”,filename);
esl_execute(handle, “play_and_get_digits”,cmd_tmp, NULL);
录音:
sprintf(cmd_tmp,”api uuid_record %s start %s %d”,uuid,tfile,MaxTimer);
esl_send_recv_timed(handle, cmd_tmp,1000);
会议:
sprintf(cmd_tmp,”%d@default”,meetno);
disp_msg(“conference %s”,cmd_tmp);
esl_execute(handle, “conference”,cmd_tmp , NULL);
会议设置:
if(userevent.say==0)
sprintf(cmd_tmp,”%d mute %d”,meetno,member_id);
else
sprintf(cmd_tmp,”%d unmute %d”,meetno,member_id);
sprintf(tmp,”api conference %s\nconsole_execute: true\n\n”, cmd_tmp);
disp_msg(tmp);
esl_send_recv(handle, tmp);
会议录音:
if(strlen(userevent.filename)>0)
{
sprintf(cmd_tmp,”%d record start %s”,meetno,userevent.filename);
recordmeet=1;
}
else
{
sprintf(cmd_tmp,”%d stop all”,userevent.data);
recordmeet=0;
}
sprintf(tmp,”api conference %s\nconsole_execute: true\n\n”, cmd_tmp);
esl 的c 的开发供大家参考。

停止媒体:
sprintf(cmd_tmp,”api uuid_break %s all”,uuid);//
esl_send_recv_timed(handle, cmd_tmp,1000);

关联呼叫:
sprintf(cmd_tmp,”api uuid_bridge %s %s”,uuid,uuid_to);
esl_send_recv_timed(handle, cmd_tmp,1000);
断开关联:
esl_execute(handle, “park”,”” , NULL);
通过callback 一个呼叫一个线程

FreeSWITCH: VoIP实战 目录链接

01.17.2013, FreeSWITCH: VoIP实战 目录链接已关闭评论, freeswitch, by .

原网站链接失效.为方便自己平时使用,整理了一下重新做了下链接,版权归原作者所有

 

《FreeSWITCH: VoIP实战》

英文书名:FreeSWITCH in Action

关键词:FreeSWITCH 电子书,FreeSWITCH 中文书,VoIP

— The First FreeSWITCH Book

作者: 杜金房 (Seven Du

版权声明:本书版权归作者杜金房所有,以 CC-BY-NC-ND 协议发布,。

转载提示:

  • 本书在本站是可以免费看的。在 CC-BY-NC-ND 协议约束下可以转载。但如果你不知道该协议是怎么回事,请不要转载。

  • 不准转载到百度文库、豆丁、新浪爱问!它们的许可协议与本协议是不兼容的!

特别提示

部分热心网友总是问我该书是否还会继续写。答案是肯定的,实际是作者已经更新了很多内容并新写了一新章节,只是,由于网上盗转严重,作者决定保留部分内容。也就是说,线上的内容虽然还会更新,便不一定及时。需要更多内容的朋友请发邮件至 book@freeswitch.org.cn 咨询。

目录

第一部分 VoIP 基础知识

第二部分 FreeSWITCH 架构

第三部分 FreeSWITCH 实战

第四部分 FreeSWITCH 开发指南

  • 源代码阅读

  • 开发指南

第四部分 附录

Mod_command参考

Mod_dptools参考

后记