自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 Asterisk XML解析接口说明

<br />XML解析库实现的初始化,是使用接口的前置工作。<br />int ast_xml_init(void);<br />清理为实现库分配的全局数据<br />int ast_xml_finish(void);<br /> 打开一个XML文档<br />struct ast_xml_doc *ast_xml_open(char *filename);<br /> 关闭一个已经打开的XML文档,释放其分配的内存<br />void ast_xml_close(struct ast_xml_doc *d

2010-08-05 12:05:00 731

转载 C语言中容易导致指针和内存泄露的几种出错

<br /><br />1. 使用未初始化内存<br />   char *p = malloc(10);<br />   //未初始化之前10个字节可能包含垃圾数据,若被访问可能获得垃圾值,导致程序的不可预测的行为。<br />   良好的实践是通过memset与malloc结合,如下:<br />   char *p = malloc(10);<br />   memset(p,'/0',10);<br />2. 内存覆盖<br />   对于1中的p分配了10个字节,如果某个代码片段尝试向p写入一个1

2010-08-03 18:37:00 1122

转载 多方通话拨号方案设计参考

<br />[confserv]<br />exten => _XXXX,1,Set(DYNAMIC_FEATURES=nway-start) <br />exten => _XXXX,n,Dial(SIP/${EXTEN}) <br />[dynamic-nway] <br />exten => _1199,1,noop(dynamic-nway) <br />exten => _1199,n,Answer() <br />exten => _1199,n,Set(MEETME_EXIT_CONTEXT=

2010-07-29 19:01:00 1306

原创 Asterisk Originate 内部执行流程

<br />1. originate的执行<br />向客户端发起呼叫,将客户端引入到Dialplan中,并从exten的首项开始执行,进行一系列操作。虽然客户端是被动接受,但此过程相当于主动拨入的过程。Originate call可用于任何UI对某个客户端发起呼叫,也可以邀请他人加入某个会话当中。下面以AMI方式发起Originate call.<br /><br />1) 在AMI上发起Originate呼叫命令,Channel、Context、Exten、Priority是必须设定项。<br />2)

2010-07-29 18:52:00 4929

原创 Asterisk安装指南

 1 Asterisk及相关软件安装1.1 下载Asterisk及相关软件可从Asterisk官方网站http://www.asterisk.org/downloads下载;也可以从http://downloads.asterisk.org/pub/telephony/网站找到你想要的Asterisk版本以及相关的依赖软件。服务器上使用的Asterisk及相关软件版本如下:软件说明版本源代码路径libpriAsterisk支持库1.4.10.2http://downloads.asterisk.org/pu

2010-07-29 18:44:00 12649

原创 Asterisk通道简介(部分翻译)

<br /> Asterisk如何定义通道:<br /> 通过Asterisk接通的电话包含一个呼入连接和呼出连接,每个通道都是来自于通过某种类型的通道驱动生成,而该通道的类型在技术上<br /> 可以支持SIP,DAHDI,IAX等。每种技术上支持的通道驱动都有一个专有通道,并且拥有私有的数据存储结构,技术上独立的,不同类型的<br /> 通道驱动之间不存在相互依赖的关系,按照Asterisk通道编写接口标准,你可以自己编写某种类型的通道,例如GSM通道。在Asterisk中,所有<br /> 的专用通道

2010-07-29 09:15:00 2431

原创 AsteriskNow

AsteriskNow简介AsteriskNow是以最快捷的方式建立基于Asterisk的电话系统解决方案。AsteriskNow是一个完整的Linux发布版本,其中集成了Asterisk服务器、DAHDI驱动框架、管理GUI、Mysql数据库、Apache服务器以及包括了多种开发工具与组件。下图是AsteriskNow前端截取界面:AsteriskNow系统架构AsteriskNow的架构是基于LMAP(Linux-Apache-MySQL-PHP),LAMP框架是当前软件开发的一种重要模式。LAMP中的

2010-07-28 18:04:00 4221

原创 简单思考如何编写描述一个模块

<br />1)产生该模块的缘由?<br />2)该模块完成什么样的功能?<br />3)该模块完成需求的功能所需要的前提条件是什么,即该模块依赖的前置工作什么?<br />4)大体描述该模块通过怎么样才能完成需求中的功能?<br />5)该模块完成需求中的功能,需要的执行步骤有那些,这些执行步骤是否可以划分为单独的小模块,这些小模块的耦合度如何,实现功能的架构如何?<br />6)该模块的输出是什么,或者给下一个模块编写提供功能接口?<br />7)该模块是否提供了安全控制机制,设计的是时候是否考虑了这方

2010-07-28 17:54:00 1053

翻译 Asterisk AGI脚本

   AGI脚本用于开发复杂的IVR应用。AGI脚本与Asterisk之间通过两个标准的数据流交互,一是STDIN(标准输入),二是STDOUT(标准输出)。从AGI脚本角度看,任何来自Asterisk的数据可以称之为STDIN,任何向Asterisk的输出可称之为STDOUT。也可以认为是通过读命令从Asterisk读取数据,通过写命令向Asterisk写入数据。AGI脚本可以支持多种语言来编写,例如通过Bash、Perl、PHP等脚本语言,也可以通过C/C++语言来编写。    Asterisk 拨号方

2010-07-25 14:24:00 3438

转载 "Tormenta" Switching and Conferencing Architecture

<br />The "Tx" and "Rx" are referring to the actual streams going out to, and in from the channel on the T1. <br />The "Tx Buffer" and "Rx Buffer" are referring to the I/O buffers for the associated channel (that would be accessed via system read and write

2010-07-22 13:55:00 466

翻译 Asterisk Callgroups and Pickupgroups-10

<br />    Call and pickup group 允许他人应答呼叫<br />    可在mgcp,SIP,IAX,Skinny,DAHDI通道对应的话机中定义Call group 和 pickup group。Call and pickup group组功能只能在同一中类型的通道对应的话机中进行,<br />    例如多个SIP话机,但是IAX话机与SIP话机之间则不能执行该功能。基本的功能执行如下:<br />    1)位于某个Call group中的话机有来电呼叫<br />   

2010-07-16 10:19:00 677

原创 SIP 成员参加会议过程-8

SIP 成员参加会议过程

2010-07-15 15:32:00 729

原创 Fastagi使用-6

<br />Asterisk支持多种语言实现AGI脚本,因此运行AGI脚本需要服务器支持脚本语言环境,例如某个AGI脚本是通过JAVA语言编写,那么服务器需要运行整个JAVA虚拟机环境。这给对于多个AGI脚本并发执行给服务器带来的负担是不可忽略的。那么是否可以提供一种机制,使得执行AGI脚本与运行Asterisk的服务器从物理上独立开来,即AGI脚本<br />在其他机器上执行,执行的结果送到Asterisk服务器,由AGI服务器与Asterisk服务器交互来完成命令的发起与执行动作。<br />Fasta

2010-07-14 17:52:00 2195

转载 IAX versus SIP

IAX versus SIP<br />Date: Mon, 5 Jul 2004 18:59:52 -0500 (CDT) <br />From: Mark Spencer <markster@digium.com> <br /><br />Let me summarize some differences between SIP and IAX, and it might help you make a decision about what is best for you. <br /><br />1

2010-07-13 15:59:00 644

原创 IPPBX功能之DID

<br />当IPPBX外线有呼入时,IPPBX将根据呼入的目标号码将其路由到指定的分机,也可以将一系列目标号码路由到指定的分机,这样不必经过中间过程。

2010-07-13 15:55:00 933

原创 Switchvox的group pickup功能

<br />号码可以分很多组,组的分配是任意的,可以是按部门或按研发部等。每个组可以设置一个组应答分机,通过组应答分机可以接起该组内其他分机的呼叫来电。例如,假定组应答分机为100,授权可接该组内的分机为111,该可能是秘书电话分机。组内号码有112,113。<br />加入112有来电,那么在分机111上拨打100可以接起112的来电。若112,113同时响铃,那么112将被优先接起来,这根据112,113在分机列表中的顺序,前者将被先应答。

2010-07-12 11:42:00 622

原创 Astersisk如何执行Parking a call功能-7

首先需要在配置文件中设置驻留转接号码和驻留分机号,驻留转接号码类似于呼叫转移时转接的分机号,但执行结果却与呼叫转移不同。驻留分机号一般为一系列分机号码串,例如701-710。Asterisk默认的驻留转接分机号码为700,该驻留转接分机号可在配置文件中设置。当您接听电话时,环境比较嘈杂,您想换个地方接听,而呼叫转接不能给您足够的时间过去接听,这时您可以使用呼叫驻留功能,驻留功能设置了最大的驻留时间。按#号进行转移,然后拨700后Asterisk将提示分配该呼叫驻留的分机号码,假如701。然后被叫者挂机。被叫

2010-07-12 10:37:00 640

转载 一篇比较好的破解LINUX密码方法

<br />1) Reboot the machine and hit any key when you see Grub kicking in. This will be after the BIOS checks but before any services start up.<br />2) You will now see a list of various kernels you can boot into, the first one in the list will probably be

2010-07-09 09:16:00 562

转载 Asterisk postgresql voicemail

<br />GETTING ODBC STORAGE WITH POSTGRESQL WORKING WITH VOICEMAIL<br /> <br />1) Install PostgreSQL, PostgreSQL-devel, unixODBC, and unixODBC-devel, and PostgreSQL-ODBC.  Make sure PostgreSQL is running and listening on a TCP socket.<br /> <br />2) Log int

2010-07-02 11:17:00 1272

原创 Asterisk电子传真-5

<br /><br />    Asterisk自带传真功能,但需要第三方的软件支持。Asterisk是通过接在服务器上的语音卡发送或接受外部的传真信号。<br />    发传真<br />    Asterisk内部注册命令通过语音卡向对方传真机发起外呼,当对方传真机送回应答信号,电子文档将通过语音卡发到对方的传真机,被打印出来。<br />    收传真<br />    当语音卡收到外部呼入信号时对其解析如果是T38协议,则认为是传真信号,Asterisk传真通道对传真信号进行解析,调用语音卡回复<

2010-07-02 11:05:00 1592

原创 typeid-4

<br />typeid用户检查表达式的类型。<br /> typeid (expression) <br />typeid返回定义在标准头文件中常对象类型的引用,且返回值是可通过==和!=比较的.获得的对象可通过name()成员获取以空格结尾的数据类型或类名字符串。<br />#include <iostream><br />#include <typeinfo><br />using namespace std;<br />int main () {<br />  int * a,b;<br />  a

2010-07-01 20:17:00 610

原创 全局变量,局部变量,静态变量-3

1.全局变量在函数体外定义,程序的所有部分可以使用,不受作用越影响,用exten来声明另外文件中存折的全局变量,有编译器告知声明的变量在那个文件里面定义。 2.在作用域内生效,局限与函数内部,由离开作用域而消失。 3.局部变量的值在整个程序生命周期存在,定义函数的局部变量为static。而且static变量在函数的范围外是不可访用的。

2010-06-28 20:09:00 370

原创 传递指针和传递引用的区别-2

<br />  1)通过引用可以传递参数的地址<br />  2)带引用的函数调用比带指针的函数调用在语法构成上更清晰。<br />  3)引用和指针一样都是传递参数地址,而不是参数值的拷贝<br />  4)引用和指针一样都允许函数去改变外部对象。

2010-06-26 17:43:00 348

转载 [转]异常控制try,catch的用法

<br />1、基础介绍<br />try<br />{<br />//程序中抛出异常<br />throw value;<br />}<br />catch(valuetype v)<br />{<br />//例外处理程序段<br />}<br />语法小结:throw抛出值,catch接受,当然,throw必须在“try语句块”中才有效。<br /><br />2、深入throw:<br />(i)、程序接受到throw语句后就会自动调用析构器,把该域(

2010-06-25 17:50:00 414

原创 技术问题自问自答3000题

<br />自问自答主要是对工作学习过程中碰到的问题的解析,解答内容可能参照某篇课本或网上某个指引。也可能是读书过程中为了增强记忆,将<br />    内容以问答的形式写在帖子上。目的是帮助自己学习,不断成长。现阶段目标是3000题。

2010-06-25 17:48:00 467

原创 开通CSDN空间了

<br />   庆祝开通CSDN空间!

2010-06-25 09:19:00 361

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除