Asterisk媒体处理分析

Asterisk媒体处理分析
Asterisk媒体处理分析

Asterisk媒体处理分析

1 媒体转换过程

以下讲媒体转换有两种方式除外:

?g729;

?一端是g711a,另一端是g711u时

Asterisk媒体处理过程与业务无关,是一个统一的过程,处理对象有RTP和File,不管外界RTP或File输入格式如何,进入Asterisk后默认转换为signed linear格式,从Asterisk 输出(发送或写文件)时再从slinear格式转换为外界RTP或File格式(细节参见RTP Translate):

1. RTP to RTP(正常通话流程)

2. RTP to File(录音流程)

3. File to RTP(放音流程)

4. File to File(文件格式转换流程)

复杂业务的媒体处理可以分解为以上四个方向处理流程,复杂业务可能包含其中几种流程,每个业务的媒体处理可以用下图表示:

1设置channel媒体转换路径

(如g723=>gsm)

2 源媒体转换为slinear格式

(如g723=>slinear)

4 Slinear转换为目的格式

(如slinear=>gsm)

3 媒体处理(如混音)

5 发送/写文件

1. 设置转换路径,即设置源媒体格式与目的媒体格式;

2. 把输入媒体格式进行转换为slinear,如果输入媒体为slinear可省略本步骤;

3. 媒体处理,如混音等,一般可以省略;

4. 把slinear格式媒体转换为目的媒体格式,如果目的媒体格式为slinear可省略本步骤;

5. 把转换后的媒体打包发送或写到本地文件。

1.1 RTP to RTP

RTP to RTP适用于正常通话流程。

Channel收到RTP包时经过分析可以得到媒体格式,每个channel保存读和写的媒体格式信息,读RTP时使用步骤1和2,发送RTP时使用步骤4和5,channel的结构参见媒体转换相关结构,channel里保存媒体转换信息结构ast_trans_pvt和文件流描述结构

ast_filestream(见文件流)。

下图为一个正常通话的编码转换过程,通话一端适用ilbc gsm编码:

从上图看出,通话两端的语音编码进入asterisk后都转换为asterisk内部编码slinear后,发送时再被转换为目的语音编码。

下图说明一端使用g711a,另一端使用g711u时不需要转换为asterisk内部编码slinear,而是alaw和ulaw两种编码直接进行转换:

1.2 RTP to File

RTP to File适用录音流程,包含步骤1、2、4、5。例:g729.cap语音还原为gsm格式文件过程:

File to RTP适用于放音流程,与RTP to File流程一样也包含步骤1、2、4、5。

1.4 File to File

File to File适用于文件格式转换,与RTP to File/File to RTP一样也包含步骤1、2、4、5。

具体实例可参见附录。

1.5 混合流程

混合流程用到以上四个流程中的某几个复杂的业务有可能是混合流程,如Voicemail包含File to RTP和RTP to File流程,具体参见voicemail函数调用过程。

2 RTP处理

2.1 RTP init

在创建sip_channel时,rtp fd同时被创建并加进channel的fds,通过poll进行监控。sip_new -> tmp->fds[0] = ast_rtp_fd(i->rtp);

2.2 RTP Read

Poll监控到rtp fd有读事件时进行read;

ast_rtp_read中进行RTP解包;

读RTP过程中会调用ast_translate函数进行媒体转换,一般转换为slinear格式。

具体函数调用过程如下:

wait_for_answer -> ast_waitfor_n(watchers, pos, to); -> ast_waitfor_nandfds ->

poll -> f = ast_read(winner) -> struct ast_frame *ast_read(struct ast_channel *chan) -> static struct ast_frame *__ast_read(struct ast_channel *chan, int dropaudio) ->

f = chan->tech->read(chan)

即static struct ast_frame *sip_read(struct ast_channel*ast) / ast_translate ->

static struct ast_frame*sip_rtp_read(struct ast_channel *ast, struct sip_pvt *p, int *faxdetect) -> ast_set_read_format/ast_set_write_format/f =ast_rtp_read(p->rtp) RTP解包-> recvfrom

发送RTP时会调用ast_translate函数进行媒体转换,从slinear格式转换为目的媒体格式,ast_rtp_raw_write函数中对RTP进行组包。

具体函数调用流程如下:

wait_for_answer -> f = ast_read(winner) ->

int ast_write(struct ast_channel *chan, struct ast_frame *fr) ->

ast_set_write_format/ast_translate/res = chan->tech->write(chan, f) 即static int

sip_write(struct ast_channel *ast, struct ast_frame *frame) ->

int ast_rtp_write(struct ast_rtp *rtp, struct ast_frame *_f) ->

ast_rtp_raw_write(rtp, f, codec) RTP-> sendto

2.4 RTP translate

2.4.1 媒体转换相关结构

ast_channel结构中writetrans和readtrans指向ast_trans_pvt结构,writetrans和readtrans 通过ast_translator_build_path创建;

ast_translator 结构中保存媒体转换源编码格式(srcfmt),目的编码格式(dstfmt),转换回调(framein frameout):

以g729编码为例初时化ast_translator结构:

2.4.2 媒体转换流程

2.4.2.1 注册编码

把某种编码ast_translator注册到tr_matrix全局变量:

ast_register_translator(t) (如res = ast_register_translator(&g729tolin)) ->

int __ast_register_translator(struct ast_translator *t, struct ast_module *module)

-> static void rebuild_matrix(int samples)

2.4.2.2 设置编码转换路径

static struct ast_frame *sip_rtp_read(struct ast_channel *ast, struct sip_pvt *p, int *faxdetect) -> int ast_set_read_format(struct ast_channel *chan, int fmt) / int ast_set_write_format(struct ast_channel *chan, int fmt) ->

static int set_format(struct ast_channel *chan, int fmt, int *rawformat, int *format,struct ast_trans_pvt **trans, const int direction) ->

struct ast_trans_pvt *ast_translator_build_path(int dest, int source)

调用ast_translator_build_path函数,在全局变量tr_matrix中查找对应的ast_translator 创建ast_trans_pvt并返回:

2.4.2.3 编码转换

调用ast_translate函数实现编码转换:

3 T38

Asterisk支持pass-through方式T38传真,asterisk不发起reinvite,只是代理T38。

T38 reinvite经过asterisk时SDP协商的纠错方式,频率等信息可能被修改,T38包经过asterisk 时UDPTLPacket被解析,具体T30内容不会被修改。

4 附录

4.1 文件流API

4.1.1 文件流操作函数

●struct ast_filestream *ast_readfile(const char *filename, const char *type, const char

*comment, int flags, int check, mode_t mode)

打开一个可读文件流,类似以只读方式fopen。

●struct ast_filestream *ast_writefile(const char *filename, const char *type, const char

*comment, int flags, int check, mode_t mode)

打开一个可写文件流,类似以写方式fopen。

●struct ast_frame *ast_readframe(struct ast_filestream *s)

读取文件流数据,类似fread。

●int ast_writestream(struct ast_filestream *fs, struct ast_frame *f)

往文件流中写数据,类似fwrite ast_translate进行转换。

●int ast_closestream(struct ast_filestream *f)

关闭文件流,类似fclose。

4.1.2 文件流操作步骤

1. 打开可读文件流(ast_readfile)或打开可写文件流(ast_writefile)

2. 读文件(ast_readframe)或写文件(ast_writestream)

3. 关闭文件流(ast_closestream)

4.1.3 文件流操作实例

见res_convert.c 把某种格式的文件转换成另外一种格式文件保存:

static int cli_audio_convert(int fd, int argc, char *argv[])

{

int ret = RESULT_FAILURE;

struct ast_filestream *fs_in = NULL, *fs_out = NULL;

struct ast_frame *f;

struct timeval start;

int cost;

char *file_in = NULL, *file_out = NULL;

char *name_in, *ext_in, *name_out, *ext_out;

/* ugly, can be removed when CLI entries have ast_module pointers */

ast_module_ref(ast_module_info->self);

if (argc != 4 || ast_strlen_zero(argv[2]) || ast_strlen_zero(argv[3])) {

ret = RESULT_SHOWUSAGE;

goto fail_out;

}

file_in = ast_strdupa(argv[2]);

file_out = ast_strdupa(argv[3]);

if (split_ext(file_in, &name_in, &ext_in)) {

ast_cli(fd, "'%s' is an invalid filename!\n", argv[2]);

goto fail_out;

}

//ext_in为输入文件格式

if (!(fs_in = ast_readfile(name_in, ext_in, NULL, O_RDONLY, 0, 0))) {

ast_cli(fd, "Unable to open input file: %s\n", argv[2]);

goto fail_out;

} if (split_ext(file_out, &name_out, &ext_out)) {

ast_cli(fd, "'%s' is an invalid filename!\n", argv[3]);

goto fail_out;

}

//ext_out为输出文件格式

if (!(fs_out = ast_writefile(name_out, ext_out, NULL, O_CREAT|O_TRUNC|O_WRONLY, 0, 0644))) {

ast_cli(fd, "Unable to open output file: %s\n", argv[3]);

goto fail_out;

}

start = ast_tvnow();

while ((f = ast_readframe(fs_in))) { //从源文件读取frame

if (ast_writestream(fs_out, f)) {//向目的文件写frame

如果读和写的格式不一

致会调用ast_translate进行转换。

ast_cli(fd, "Failed to convert %s.%s to %s.%s!\n", name_in, ext_in,

name_out, ext_out);

goto fail_out;

}

}

cost = ast_tvdiff_ms(ast_tvnow(), start);

ast_cli(fd, "Converted %s.%s to %s.%s in %dms\n", name_in, ext_in, name_out,

ext_out, cost);

ret = RESULT_SUCCESS;

fail_out:

if (fs_out) {

ast_closestream(fs_out);

if (ret != RESULT_SUCCESS)

ast_filedelete(name_out, ext_out);

}

if (fs_in)

ast_closestream(fs_in);

ast_module_unref(ast_module_info->self); return ret;

}

如把goodbye.gsm转换成goodbye.wav:

可以看到生成了一个

goodbye.wav文件:

4.2 RTP相关

4.2.1 RTP与frame关系

Frame包括信令和媒体。

4.2.2 Frame结构

ast_frame structure

Frame Types in Asterisk

4.2.3 RTP结构

RTP packet

ast_rtp

ast_rtp Struct

4.3 Voicemail函数调用过程

4.3.1 语音接收

ast_read被调用过程:

ast_play_and_wait / ast_stream_and_wait -> ast_waitstream ->

waitstream_core ->

ast_read

4.3.2 语音发送

ast_write被调用过程:

ast_streamfile->

ast_playstream->

ast_readaudio_callback ->

ast_write

4.3.3 文件流读写

play_record_review / ast_play_and_prepend-> ast_play_and_record_full ->

__ast_play_and_record ->

ast_readframe / ast_writestream

在华硕RT-N11+上玩转OpenWRT+Asterisk

在华硕RT-N11+上玩转OpenWRT+Asterisk 华硕RT-N11+是一款高性能的300M 802.11n无线路由器,内置Ralink RT3052F 384M 主频的CPU,32M SDRAM,4M FLASH,高主频的CPU为希望开发具有定制功能应用的爱好者提供了很好的平台,下面介绍如何将OpenWRT和Asterisk移植到此路由上作为一个小型的SIP Server。 图表 1 被肢解的ASUS RT‐N11+ 图表 2 ASUS RT‐N11+ CPU特写

4M 的flash实在不给力,更换为8M 的 Spansion flash 型号S25GL064N,这样基本可以满足asterisk的运行。 一、编译openwrt,编译环境为fedora13。 1.svn checkout svn://https://www.360docs.net/doc/6711909676.html,/openwrt/trunk 2.cd trunk 3../scripts/feeds update -a 4../scripts/feeds install -a 5.make menuconfig 选中Target System->Ralink RT288x/RT305x 选中Subtarget-> RT305x based boards

选中Network->Telephony->asterisk18 LuCI->Servcer Interfaces->luci-sgi-uhttpd

6.make V=99 编译完成可以在trunk看到以下文件 bin/ramips/openwrt-ramips-rt305x-fonera20n-squashfs-sysupgrade.bin 偷个懒借用了fonera20n的映像,程序可以跑,LEDD和按键未验证,有兴趣可以参考target/linux/ramips/files/arch/mips/ralink/rt305x/mach-fonera20n.c建立针对RT-N11+的映像。 二、烧录程序 1. 用编程器烧录bootloader“uboot_SDK_nor_sdr32M32bit_v3508_20110919.bin” 2. 连接串口,pin1-pin4依次为VCC,GND,CPU_TX,CPU_RX,波特率57600 3. 烧录openwrt映像 1)在PC机上搭建tftp服务器推荐用Tftpd32.exe, 2)将文件“openwrt-ramips-rt305x-fonera20n-squashfs-sysupgrade.bin”放到 tftp工具的目录下, 3)启动设备在boot menu中选择2按提示输入IP地址和映像名称,升级。

Asterisk安装指南

Asterisk安装指南 2010-03-20 10:49 1、选择操作系统 据说Asterisk对大多Linux支持的都比较好,内核版本2.6.9-55.EL安装起来很顺利,2.4的麻烦一些。注意安装系统的时候选择上开发环境的包。2、在/usr/src目录中下载Asterisk相关安装包并解压 #cd /usr/src https://www.360docs.net/doc/6711909676.html,/pub/libpri/releases/libpri-1.4.10.tar.gz https://www.360docs.net/doc/6711909676.html,/pub/zaptel/releases/zaptel-1.4.12.1.tar.gz(dahdi asterisk1.6以后就不用这个,用https://www.360docs.net/doc/6711909676.html,/pub/telephony/dahdi-linux-complete/releases/dahdi-linux-complete-2.6.1+2.6.1.tar.gz) https://www.360docs.net/doc/6711909676.html,/pub/asterisk/releases/asterisk-1.6.2.tar.gz https://www.360docs.net/doc/6711909676.html,/pub/asterisk/releases/asterisk-addons-1.6.2.0.tar.gz https://www.360docs.net/doc/6711909676.html,/pub/asterisk/releases/asterisk-sounds-1.2.1.tar.gz # tar -xvzf *.tar.gz 3.安装libpri # cd libpri-1.4.9 # make # make install 4.安装zaptel # cd .. # cd zaptel-1.4.12.1 # make # make install # make config 5.安装asterisk # cd .. # cd asterisk-1.4.24.1 # ./configure # make # make install

Asterisk配置文件列表以及常用指令

配置文件说明列表:

常规指令 Authenticate:鉴别用户 VMAuthenticate:根据“voicem ail.conf”鉴别用户 Curl:接受外接URLs的修复。支持POSTing DUNDiLookup:用DUNDi查寻号码 SendDTMF:发送独裁的DTMF数据 SendImage:发送图像档案 SendText:发送给客户正文消息 SendURL:发送给客户USL以显示 System:执行系统命令 Transfer:将访客转移到另一个扩展名 TrySystem:0回复执行系统命令 Wait:稍等 WaitExten稍等: WaitForRing:等待呼叫申请 WaitMusicOnHold:等待,在线音乐 Billing ForkCDR:将CDR分成两个独立的实体 NoCDR:确保 asterisk没有把CRD保存为特定的呼叫 ResetCDR:重新安装CDR数据 SetAccount:设置帐簿号码 SetAMAflags:开通AMA标志开户的渠道 SetCDRUserField:建立CDR用户领域 AppendCDRUserField:给CDR用户附加数据 Call m anagement (hangup, answer, dial, etc) Answer:如果呼叫回复一个信道 Busy:显示忙的情形等待挂断 ChanIsAvail:如果信道可以利用即核查 Congestion:显示拥塞等待挂断 Dial:设置一个指令连接当前的信道 DISA:直接访问内在系统 Hangup: 无条件挂断 Ringing显示呼叫 Caller presentation (ID, Name etc) CallingPres:更改呼叫者的身份介绍 LookupBlacklist: 从黑名单数据库上查询访客的身份姓名和号码LookupCIDName: 从当地的数据库查询访客的身份和姓名PrivacyManager:如果没有CallerID过来,要求输入电话号码SetCallerID: 建立CallerID,发生矛盾服从CallerID SetCallerPres:建立访客资料的独立信道 SetCIDNam e:建立呼叫者身份姓名,发生矛盾服从CallerID SetCIDNum: 只建立访客的身份号码(没有姓名),发生矛盾服从CallerID SoftHangup: 请求挂断转到另一个信道

侵权责任法案例分析

侵权责任法案例分析 案情:2005年7月21日8时04分,被告谢晋金驾驶闽F08772号中型货车超速行驶至山长线20KM+500M处,遇相对方向由被告简国兴驾驶的闽EY6222号中型客车行驶时未靠右侧行驶,致两车于路右偏左发生碰刮,造成两车受损,乘客即原告邱雪美受伤住院治疗。该事故经警察部门责任认定:被告谢晋金、简国兴分别应负本次事故的主、次要责任,乘客即原告邱雪美免负本次事故的责任。另查明,被告谢晋金受雇于被告庄文成,被告简国兴受雇于被告肖清焕。原告邱雪美要求四被告连带赔偿医药费、护理费、误工补贴、伙食补助费、交通费、营养费共计12300.2元。 本案在审理过程中经福建省南靖县法院主持调解,双方当事人自愿达成协议:一、原告邱雪美同意被告谢晋金、庄文成于2006年4月8日前赔偿医药费、护理费、误工补贴等6438.6元;二、原告邱雪美同意被告简国兴、肖清焕于2006年2月8日前赔偿医药费、护理费、误工补贴、伙食补助费、交通费等2759.4元; 三、被告谢晋金、庄文成与被告简国兴、肖清焕互负连带赔偿责任。四、原告放弃其余诉讼请求。法院对上述协议进行审查,认为不违反法律规定,给予以确认。 评析:本案案情并不复杂,却涉及旅客运输合同、雇佣、无共同故意的侵权等诸多的法律关系。要正确处理本案,就要准确理解与把握原告基于旅客运输合同违约之诉与侵权之诉的选择、两个雇主与其雇员对外的连带责任、无意思联络的共同侵权人承担连带赔偿责任、连带责任人内部份额与外部责任的关系等法律知识,但首当其冲要了解本案原告的诉讼请求是何种之诉。 本案是以旅客运输合同为基础法律关系,产生的一般侵权责任与违约责任两种民事责任的竞合。所谓旅客运输合同,是指承运人与旅客签订的,承运人将旅客及其行李包裹按约定的时间运送到目的地,旅客支付票款的协议。依我国《合同法》第二百九十三条规定,身为乘客向承运人购买车票,并当即乘坐承运人的客车,自此旅客运输合同成立并生效。承运人的主要义务是将旅客按车票约定的时间、路程、方式将旅客安全地运达约定的目的地,即应保证旅客在旅行途中的人身安全。根据《合同法》第三百零二条规定,可知承运人对旅客的伤亡承担责任是无过错责任原则的,如果承运人无法举证证明伤亡是由于旅客自身健康或故意、重大过失造成的,承运人应当运输过程中旅客的伤亡承担损害赔偿责任。本案中,原告邱雪美是乘客,被告肖清焕是承运人,被告简国兴是肖清焕雇请的司机,是执行职务行为而已,故原告邱雪美与被告肖清焕之间构成旅客运输合同关系。但承运人雇请的司机被告简国兴在运输过程中由于未注意来车,与相对方向的被告谢晋金驾驶的车避车不当,致乘客受伤。承运人已违反旅客运输合同约定的应安全送达这一义务,已构成违约,乘客可以依法提起违约责任之诉,追诉承运人的违约责任。 基于直接违反了合同法规定的违约原因,也违反了侵权行为法的规定,侵害了他人的法定民事权益,构成了侵权行为,也应承担侵权责任。由于同一行为,产生了既违反合同法的有关规定,符合了违约责任的构成要件,又违反了侵权行为法的有关规定,符合侵权责任的构成要件,产生了违约的民事责任与侵权民事责任的竞合。依《合同法》第一百二十二条规定,受损害方可依《合同法》请求违法

Asterisk常用调试命令

Asterisk基本配置 Asterisk译为星号(*)在很多应用中被用做通配符,Astrisk做为PBX系统的完美名称,原因之一是Asterisk可以连接数目庞大的接口类型,包括: 1模拟接接口,如你的电话线或模拟电话. 2数字线路,如T-1和E-1线路 3Voip协议,如SIP和IAX 目前正式版本是IAX2,但是IAX1的所有格式都已经停掉.所以当说到IAX都是特拽IAX2 使用接口配置文件 1.Zaptel.conf:硬件接口基层配置,我们将建立一个FX0和一个FXS通道. 2.zapata.conf:硬件配置Asterisk的接口. 3.extension.conf:拨号方案文件. 4.sip.conf:配置SIP协议的文件 5.iax.conf:配置呼入和呼出IAX通道的文件 ******编辑完zaptel.conf文件,需要使用/sbin/ztcfg -vv装载配置到硬件(不须要详细输出可以省略-vv);修改信令方法需要重启.在编辑sip.conf和iax.conf文档后,分别需要装载chan_iax2.so和 chan_sip.so Asterisk译为星号(*)在很多应用中被用做通配符,Astrisk做为PBX系统的完美名称,原因之一是Asterisk可以连接数目庞大的接口类型,包括: 1模拟接接口,如你的电话线或模拟电话. 2数字线路,如T-1和E-1线路 3Voip协议,如SIP和IAX 目前正式版本是IAX2,但是IAX1的所有格式都已经停掉.所以当说到IAX都是特拽IAX2 使用接口配置文件 1.Zaptel.conf:硬件接口基层配置,我们将建立一个FX0和一个FXS通道. 2.zapata.conf:硬件配置Asterisk的接口. 3.extension.conf:拨号方案文件. 4.sip.conf:配置SIP协议的文件 5.iax.conf:配置呼入和呼出IAX通道的文件 ******编辑完zaptel.conf文件,需要使用/sbin/ztcfg -vv装载配置到硬件(不须要详细输出可以省略-vv);修改信令方法需要重启.在编辑sip.conf和iax.conf文档后,分别需要装载chan_iax2.so和 chan_sip.so******

asterCRM安装配置手册

asterCC安装配置手册 一.安装环境 1.安装程序:astercc-0.14-beta-rc1.zip 2.操作系统:CentOS Linux or Redhat Linux with mysql 3.硬件要求:X86 CPU 1GHz 1GB RAM 20GB HardDisk Ethernet Adaptor 二.安流流程 1.安装CentOS Linux or Redhat Linux 2.下载安装程序: https://www.360docs.net/doc/6711909676.html,/news/astercc-and-astercc-box-released-014-beta-rc1 3.ssh登录后台,解压程序包 [root@sc38 ~]# unzip astercc-0.14-beta-rc1.zip 4.进入astercc-0.14-beta-rc1,更改可执行权限并执行install.sh脚本,根据提示进行安装 [root@sc38 astercc-0.14-beta-rc1]# chmod 755 install.sh [root@sc38 astercc-0.14-beta-rc1]# ./install.sh Please enter database information database host(default localhost): 设置数据库地址,默认为localhost database port(default 3306): 设置数据库连接端口,默认为:3306 database name(default astercc): 设置数据库名,默认为astercc database user name(default root): 设置数据库连接用户,默认为root database user password(default null):eLaStIx.2oo7 设置数据库连接密码,如果本机已安装Elastix,则密码为eLaStIx.2oo7 database bin path(default /usr/bin): 设置mysql的程序路径,默认指定/usr/bin Please enter the Asterisk infomation:

侵权责任法案例

侵权责任法案例 1、2010年8月1日,张三将自己所有的拼装小车转让给李四,2010年8月10日,王五向李四租车使用。王五和朋友A、B三人开车出去一起喝酒,此三人彼此都知道大家均无小车驾驶证。到了回家的时候,王五和朋友B均已喝醉。回家的路上,小车由无驾驶证的A驾驶。途中,小车与一辆大货车相撞,造成B重伤,大货车司机C因避让不当翻车死亡。B的各种损失为30万人民币,C死亡的各种损失为50万人民币。经交警认定,小车驾驶员A负事故的主要责任,大货车司机C负事故的次要责任。 (1)B自己是否要承担一部分损失,为什么? 是 按道路交通安全法规定,任何人不得纵容驾驶人违反道路交通安全法律、法规和机动车安全驾驶要求驾驶机动车。而B明知A无小车驾驶证,却纵容A驾驶。 (2)王五是否有责任?为什么? 是 王五明知A无小车驾驶证,却纵容A驾驶。 (3)A是否要承担责任?为什么? A应当承担赔偿责任。 发生交通事故后属于该机动车一方责任的,由保险公司在机动车强制保险责任限额范围内予以赔偿。不足部分,由机动车使用人承担赔偿责任. 2、2010年3月9日,某小学的小学生小杰和小涛在发生打斗,在场老师陈某未予制止。小杰踢中小涛腹部,致其脾脏破裂。小涛的父母对小杰的父母、学校提起诉讼,要求其承担医疗费用3万元。 (1)小杰的行为是否构成侵权?请以侵权责任的构成要件加以分析。 是 违法行为:小杰和小涛在发生打斗,并踢中小涛腹部,致其脾脏破裂。 损害事实:小涛脾脏破裂 因果关系:小杰和小涛在发生打斗导致了小涛脾脏破裂 主观过错:主观上故意踢小涛腹部,对他人造成人身伤害 (2)对小涛的人身损害,学校是否应当承担责任,承担什么样的责任,为什么? 学校存在过错, 应承担与其过错相应的补充赔偿责任 原因: 按侵权责任法规定,限制民事行为能力人小涛在学校学习、生活期间受到人身损害,学校未尽到教育、管理职责的,应当承担责任。

产品质量法中的产品责任案例分析

产品质量法中的产品责任案例分析论文摘要:产品责任又称产品侵权损害赔偿责任,是指因产品有缺陷造成他人财产、人身损害,产品制造者、销售者所应承担的民事责任。产品责任问题是产品质量法的核心问题之一,本文通过对一则案例的分析,对产品责任问题加以分析,以期对此有更为深入的认识。 论文关键词:产品责任,侵权,缺陷产品,归责 案情简介: 2010年5月,某物流公司从上海某公司购买了一套升降机,并在该公司办公楼内进行了安装使用。2011年12月,张某作为某劳务派遣公司的派遣工到该物流公司工作。2012年3月7日9时许,当张某在该物流公司办公楼三楼刚进入升降机,尚未触动升降机内的任何按键,升降机却突然发生故障,猛烈坠落到一楼地面。张某当即被送往医院住院治疗,被诊断为:左腿踝关节粉碎性骨折,右脚足弓断裂。共计住院35天,花去了医疗费72694.70元。出院后,张某又在门诊治疗中花去医疗费18674.20元。同年7月13日,张某被鉴定为七级伤残。后张某要求上海某公司赔偿,被该公司拒绝,理由是升降机出现事故是质量问题还是操作不当造成已无法认定,无证据证明系升降机质量问题;且该公司仅仅是升降机的销售者,张某应当追究的是升降机生产厂家的责任。张某索赔无果后,遂起诉至法院。 一、产品责任中的“产品缺陷” 所谓“产品缺陷”,《中华人民共和国产品质量法》第46条规定:“本法所称缺陷是指产品存在危及人身、他人财产安全的不合理的危险;产品有保障人体健康和人身、财产安全的国家标准、行业标准的,是指不符合该标准。”由此可见,在两种情形下可以认为产品存在缺陷:第一种情形是指产品存在“不合理的危险”。一般而言,造成“不合理的危险”的原因主要有以下几种:(1)产品本身存在设计缺陷,即由于产品在设计上就存在问题,导致产品即使是在正常使用中也存在危及人身、其它财产安全的不合理的危险。例如,家庭中日常使用的液化气灶,因其储存钢罐的结构或安全系数在设计上存在不合理的问题,有可能导致在正常使用中爆炸的,则该产品即存在设计缺陷。(2)产品制造缺陷,是指产品虽然在设计上并不存在问题,但是在加工、制作、装配等制造过程中未按照相关要求进行,从而导致产品存在危及人身、财产安全的不合理危险。例如,玩具厂家生产的儿童玩具,应当避免使用能够伤害到儿童的原材料,而应当采用安全的软性材料,但是在制造过程中未按照设计要求使用了金属材料并带有锐角,使得儿童在使用此玩具的

Asterisk的SIP type和身份认证

Asterisk的SIP type和身份认证 在Asterisk中对某个peer的类型分为3种:peer, user和friend 看看voip-info对这三种类型的解释 ?peer: A SIP entity to which Asterisk sends calls (a SIP provider for example). If you want a user (extension) to have multiple phones, define an extension that calls two SIP peers. The peer authenticates at registration. ?user: A SIP entity which places calls through Asterisk (A phone which can place calls only). Users authenticate to reach services with their context. ?friend: An entity which is both a user and a peer. This make sense for most desk handsets and other devices. Asterisk will create two objects, one peer and one user, with the same name. where it can be found (IP address/host name) and that it is reachable from now on. 简单的说,在这篇文档里, type=peer定义对方是一个服务提供者, 它允许你的Asterisk通过这里定义的服务商打电话; 而user则定义对方是你的一个客户端, 允许对方通过你的Asterisk打电话. friend就是两者兼有. 但是实际情况是什么? 试试这样的定义: [1001] username=1001 secret=xxxxx host=dynamic port=5060 type=peer context=from-extensions 然后用一个SIP客户端来尝试注册到你的Asterisk上, what happened? 你会发现客户端也能注册上! 其实type的真正意义在于Asterisk怎么去处理发往外部和来自外部的请求. type=peer 如果type是peer,有两层含义. 1. 可以将对方作为一个SIP Service Provider, 允许你的Asterisk通过对方进行呼出. 2. 如果对方在逻辑上是一个客户端, asterisk将根据传入的Invite请求来对对方进行身份验证, 但需要注意的是这里的验证不是通过username和secret, 而是通过对方的address和port. 这里分两种情况: * 对方的address和port没有匹配到你在sip.conf中对任何一个peer的设置, 如果你的Asterisk 允许匿名呼入(allowguest=yes), 那么, 该呼入将被传到在sip.conf的general配置中的context 上. 如果不允许匿名呼入, 直接拒绝该呼入. * 对方的address和port匹配到了任何一个sip.conf种的peer设置, 那么改呼入将被传到该peer 指定的context上.

一般侵权责任构成要件之案例分析

侵害名誉权的损害事实如何认定? 2001年3月20日,被告作家所属的《作家文摘》刊登了文章《音乐家X炽与李容功38年婚外婚内情》。原告即文中所涉及的著名音乐家X炽的前妻柳春认为,该文对原告与X炽的婚姻与感情生活加以歪曲和捏造,文中有大量对原告及其家庭进行侮辱和诽谤的文字,诸如原告对X炽“以刀相向”、“X炽被刺”、“浪迹天涯”,等等。该文严重损害了原告及其家人的名誉。原告认为被告作为大众媒体,对其刊登的文章不经核实、任意编发,严重侵犯原告的名誉权,故请求法院判令被告承担侵权责任,在全国报刊上向原告公开赔礼道歉、全面消除影响,并给付精神损害赔偿金10元。 而被告辩称,《作家文摘》刊发的文章,并未构成对原告名誉权的侵害。《作家文摘》是由国家新闻出版署批准并由中国作家协会主管的文艺类报纸,可以摘发境内任何一家经合法登记注册的期刊、杂志、报纸上的有关文艺类文章而不需要向被摘发的刊物、杂志、报纸核实,遵循的原则就是文责自负。《作家文摘》摘发的文章没有贬损X炽及原告柳春名誉权的主观故意。且文章的内容都是被采访者李容功的叙述,并有X炽生前的信件为证,均属事实。

法院经审理认为:本案原告所列举文章中的内容,是该文章作者根据被访者李容功的叙述书写,庭审中被采访者李容功的证言表明上述内容除个别时间有误外,其它均属实。文章中虽使用了一些形象化的言辞,有些言辞的使用也不够恰当,但这些言辞对一般公众都不会形成含有横暴无理色彩的认识。 法院还认为,被告作为传媒性单位,尽管其“摘发境内任何一家经合法登记注册的期刊、杂志、报纸上的文艺类文章无需核实”的辩解有悖于法,但传媒性单位构成名誉侵权的前提是其疏于审查,未尽到审慎注意之义务,致使具有侵犯他人名誉权内容的文章得以刊登。 法院在判决中指出,名誉与名誉感是不同的,名誉是公众对公民或法人的综合社会评价。名誉感是主体自我的主观感受。原告关于《音乐家X炽与李容功38年婚外婚内情》文章中相关内容把其丑化成伤残丈夫的恶人,用删节号让读者任意想象;对非法同居予以宣扬,是对其的侮辱;诽谤其不讲卫生,暗示其对X炽生活照顾不周等指诉,都是其个人的主观感受,是属于名誉感的X畴。名誉感并不属于名誉权的保护之列。 东城法院一审宣判驳回原告的诉讼请求。

asterisk+freepbx+astercrm的安装----lamp rpm安装

Linux下安装呼叫中心服务器(ASTERISK+FreePBX) 一、环境要求: 操作系统:centos 5.0以上(以最小化形式安装) Linux内核版本:2.6.22 Asterisk版本:asterisk V.1.6.2.18 FreePBX版本:FreePBX:2.9.0 以rpm方式安装好的LAMP环境 以root身份登录 二、所需软件包 https://www.360docs.net/doc/6711909676.html,/pub/telephony/asterisk/asterisk-1.6.2.1 8.tar.gz https://www.360docs.net/doc/6711909676.html,/freepbx-2.9.0.tar.gz 三、安装步骤 1、Lamp的安装 下载所有软件包到/usr/local/src路径 配置yum源,安装相关软件 yum –y update yum install –y httpd http-devel mysql mysql-devel mysql-server php php-devel php-mysql yum install php5 php5-cli php5-mysql php-pear libapache2-mod-php5 php5-curl php5-gd php-db yum install php php-mysql php-common php-gd php-mbstring php-mcrypt php-devel php-xml

yum install e2fsprogs-devel keyutils-libs-devel krb5-devel libogg libselinux-devel libsepol-devel libxml2-devel libtiff-devel gmp php-pear php-pear-DB php-gd php-mysql php-pdo kernel-devel ncurses-devel audiofile-devel libogg-devel openssl-devel mysql-devel zlib-devel perl-DateManip sendmail-cf sox yum install gcc gcc-c++ wget bison mysql-devel mysql-server php php-mysql php-pear php-pear-DB php-mbstring nano tftp-server httpd make ncurses-devel libtermcap-devel sendmail sendmail-cf caching-nameserver sox newt-devel libxml2-devel libtiff-devel php-gd audiofile-devel gtk2-devel subversion kernel-devel yum install festival festival-dev yum install ncurses-base ncurses-bin ncurses-term libncurses5 libncursesw5 libncurses5-dev libncursesw5-dev yum install zlib1g zlib1g-dev yum install bison bison-doc yum install install libxml2 libxml2-dev yum install libtiff4 libtiff4-dev yum install libasound2 libgsm1 libltdl3 libpq4 libspeex1 libsqlite0 libtonezone1 libaudiofile0 libaudiofile-dev yum install libnet-telnet-perl mime-construct libipc-signal-perl libmime-types-perl libproc-waitstat-perl mkdir /var/lib/mysql chown –R mysql:mysql /var/lib/mysql /etc/init.d/httpd start chkconfig –level 35 httpd on mysql_install_db chown –R mysql.mysql /var/lib/mysql

Asterisk安装和测试

Asterisk安装 (红色字体部分为需要键入或修改的部分)

下载准备 系统环境:Linux CentOS 5.0,安装开发工具以及开发库。 Asterisk 源代码包asterisk-1.6.1.20.tar.gz,版本:1.6.1.20。 SIP软电话使用eyebeam 版本:1.5.8。 1.切换用户(需要输入管理员密码),执行 su root 2.进入源码包存放文件夹 [root@asterisk-test1 ~]#cd /usr/local/src 3.下载 [root@asterisk-test1 ~]#wget https://www.360docs.net/doc/6711909676.html,/pub/telephony/asterisk/releases/asterisk1.6.1.20. tar.gz 编译安装Asterisk 1.解压源代码包 [root@asterisk-test1 ~]# tar -zxvf asterisk-1.6.1.20.tar.gz 2.进入包目录 [root@asterisk-test1 ~]# cd asterisk-1.6.1.20 3.环境检测和预配置 [root@asterisk-test1 asterisk-1.4.5]# ./configure(其实这样直接进行configure并非十分规范。应当先使用“./configure –help”命令来 查看一些可用的选项和参数,然后根据实际情况才进行定制操作。)当环境预检测和预配置工作 做完时,最后会显示以上反馈信息。并且建立好Makefile。 注意:系统如果缺少安装必须的包,此步骤可能会出现configure: error错误,解决方案见后文可能遇到的问题 configure: creating ./config.status config.status: creating build_tools/menuselect-deps config.status: creating makeopts config.status: creating channels/h323/Makefile config.status: creating include/asterisk/autoconfig.h .$$$$$$$$$$$$$$$=..

侵权责任法》相关案例分析

《侵权责任法》相关案例分析【例1】甲、乙夫妇因8岁的儿子严重残疾,生活完全不能自理而非常痛苦。一天,甲往儿子要喝的牛奶里放入“毒鼠强”时被乙看到,乙说:“这是毒药吧,你给他喝呀?”见甲不说话,乙叹了一口气后就走开了。毒死儿子后,甲、乙二人一起掩埋尸体并对外人说儿子因病而死(2008年司法考试试卷二第7题)。①甲、乙以默示的方式达成杀人的共同故意。②甲以作为方式,乙以不作为方式(母亲对儿子具有救助的义务),基于共同故意实施了杀人,在刑法上构成共同杀人罪,在民法上构成共同故意侵权。 【例2】甲、乙共谋伤害丙,丙中一刀,不知甲或乙所为。①丙只须证明甲、乙共谋伤害自己,自己挨的那一刀究竟是甲还是乙造成的,则无举证责任。②不仅如此,甲即便证明此刀伤是乙造成的,也不能免除自己的连带责任。③共同故意使加害人的行为结合为一个整体,各加害人均应就“可能的因果关系”承担责任,受害人免予承担证明每个加害人的行为与损害均具有因果关系,某一加害人不得通过证明自己的行为与损害无事实上的因果关系而免责。 【例3】甲、乙、丙共谋报复丁,甲将丁打伤,乙放火将丁的房屋烧毁,丙到学校将丁的儿子打成重伤。①甲、乙、丙须对丁的人身伤害、丁的房屋损害、丁之子的人身伤害承担连带责任。②共同故意侵权不要求数人造成“同一损害”,只要求损害具有“统一性”,统一于共同故意既可。 【例4】甲、乙、丙共谋抢劫丁银楼,甲虽未到现场,或者甲对乙、丙表示退出,若其先前的共谋对乙、丙的抢劫行为仍具作用,则甲的作用与教唆、帮助具有同等价值,仍应对乙、丙的抢劫行为负连带责任。①共谋后,仅仅未实施分配给自己的任务,

仍为共同侵权人。②甲事前的共谋对丁的损害仍具“心理上的因果关系”(近期刑法学上的概念)。 【例5】(共抬重物登高案)个体户甲、乙共抬重物登高,预见重物有坠落伤人之虞,但彼此询明,均有不至坠落之自信。结果继续抬行不久,重物坠落伤及随后的游人丙。①甲、乙对丙的伤害具有共同过失,构成共同侵权。②须注意:若甲、乙是同一公司的员工,则加害人就只有一个人(公司),就不是共同侵权了。 【例6】(相约飚车案)甲、乙相约于某日凌晨二时在北京二环路进行飚车比赛,试看谁能打破“二环十三郎”的纪录。甲、乙在比赛时你追我赶,争先恐后,汽车风驰电掣,时速高达每小时300公里。前方出现一出租车时,甲驾车成功闪避,乙因措施不力驾车撞上出租车,导致出租车车毁人伤。①甲、乙对损害有共同过失,构成共同侵权。②甲的行为与损害间虽无物理上的因果关系,但有法律上的因果关系。 【例7】(会诊案)患者甲在乙医院住院治疗,乙医院邀请丙医院的专家丁与本院的专家戊一同对甲会诊。专家丁因疏忽大意,误诊为甲的右肾坏死,专家戊也因疏忽大意没有发现诊断错误,二人决定对甲实施手术,切除甲的右肾。手术后发现甲的右肾没有病变。“甲医院”和“乙医院”有共同过失,构成共同侵权。 【例8】甲(20岁)对乙(12岁)说:“你用石头砸丙养的狗,看它有何反应!”乙见自己的父亲闻言未置可否,就捡起石头砸狗,狗挣脱铁链将丁咬伤,花去医药费3万元。对此,下列表述正确的有哪些? A. 丁有权请求甲赔偿3万元 B. 丁有权请求乙的监护人赔偿3万元

asterisk配置小结

asterisk配置简单解说 软件版本 asterisk 1.2.7.1 gix101e sip 130 中文 一:通话设置部分 1:软件安装 debian系统下面可以使用如下命令安装,如果是其他发行版可以自己编译安装或者使用相应的包安装。 vax:/home/ailantian# apt-get install asterisk 2:帐户设置 sip的帐户设置 vax:/home/ailantian# cd /etc/asterisk/ vax:/etc/asterisk# ls adsi.conf codecs.conf logger.conf res_odbc.conf adtranvofr.conf dnsmgr.conf manager.conf rpt.conf agents.conf dundi.conf meetme.conf rtp.conf alarmreceiver.conf enum.conf mgcp.conf sip.conf alsa.conf extconfig.conf misdn.conf sip_notify.conf asterisk.adsi extensions.ael modem.conf skinny.conf asterisk.conf extensions.conf modules.conf telcordia-1.adsi cdr.conf features.conf musiconhold.conf voicemail.conf cdr_custom.conf festival.conf osp.conf vpb.conf cdr_manager.conf h323.conf oss.conf zapata.conf cdr_odbc.conf iax.conf phone.conf cdr_pgsql.conf iaxprov.conf privacy.conf cdr_tds.conf indications.conf queues.conf 这个目录下面的sip.conf bindaddr=192.168.100.144;这个填自己的ip地址。 allow=all;允许所有的解码类型。 添加下面的字段。下面的是帐户信息。 [777] type=friend username=777 secret=777 host=dynamic ; This device registers with us [888] type=friend username=888 secret= host=dynamic ; This device registers with us [333] type=friend username=333 secret= host=dynamic 然后还需要修改的文件是extensions.conf 然后才能够互通,否则可能会收到404,或者407错误。

侵权责任法案例分析

侵权责任法案例分析 【原告陈述】 原告诉称,A在被告B、C、D合伙组建的建筑施工队中劳动,为被告E修建个体泡沫碱厂厂房。B、C、D答应给A的日工资为30元。E作为建设工程的发包人,没有建设手续、对工程没有进行科学的设计,在技术上和管理上存在不当。B、C、D作为建设工程的承包人和雇主,在不具备资质及施工技术条件下盲目承包工程,在施工过程中没有做好安全防范措施,导致发生建筑工程事故,致受害人受伤。在送往东营市河口区中医院救治过程中,作为医疗机构的被告,在治疗过程中对受害人的救治严重不负责任,治疗措施不力,贻误了诊断和治疗时机,导致受害人不幸死亡。作为受害人的直系亲属,请求被告E、B、C、D以及东营市河口区中医院赔偿在救治、丧葬受害人过程中产生的一切费用及亲属日后的生活费,合计人民币264170.03元。 【被告陈述】 被告E辩称,其与受害人A之间既不存在合同关系,也不构成侵权责任。且其在签订建筑工程承包合同时,曾与承包人B口头约定,施工过程中的任何伤亡事故由施工方自负,所以其不应承担责任,请求法院判处承包人B、C、D 及东营市河口区中医院承担全部责任。 被告B、C、D辩称,工程实行的是包工不包料,在施工中发包人E不仅是建设方,也是整个工程建设的直接领导者。施工中没有周密的计划,有很大的随意性,这与墙体的不牢固有很大关系,所以发包人E也要承担相应的责任。A受伤后,东营市河口区中医院的治疗严重不负责任,应当属于一级医疗事故,其对受害人的死亡应承担主要责任。 【法院调查】 一审法院查明:2000年2月底,被告B、C、D合伙组建了一支建筑施工队,

并承包了被告E的个体泡沫碱厂厂房修建工程。双方口头约定建筑所用一切材料由E供应,施工队负责包清工。三合伙人雇佣了A等十一位泥瓦工进行施工。3月5日上午9时30分左右,正在砌高的墙体突然向北侧倒塌,导致A头部伤势较重,被送往东营市河口区中医院抢救。下午5时10分左右因出现垂危状态,遂送往胜利石油管理局河口医院继续抢救。3月10日23时,A死亡。其间,受害人家属申请了医疗事故鉴定。2001年7月4日,东营市河口区医疗事故技术鉴定委员会作出东河医鉴定(2001)第6号鉴定书,认定为“二级乙等技术事故”。东营市河口区中医院不服申请重新鉴定。东营市医疗事故技术鉴定委员会于2001年8月29日作出东医鉴定(2001)第013号鉴定书,结论为“二级乙等责任事故”。 【法院认定】 一审法院认定:B、C、D自行组建工程队伍,在不具备资质及施工技术条件下盲目承包工程,施工过程中安全防范措施不当,造成人员伤亡,应负有一定的责任;受害人A身为技工,在已预见到有墙体倾斜倒塌危险时未尽充分注意义务,避险不及以致受伤,本身亦负有一定责任;E作为建设方,没有建设手续、没有进行科学的设计,在技术上和管理上的不当也是引发安全事故的原因。经过两级医疗事故鉴定,均认定东营市河口区中医院在对A诊疗过程中,治疗措施不力,对A的死亡负有主要责任。最终,法院作出一审判决,按照责任从大到小判定东营市河口区中医院,B、C、D,E及受害人分别承担相应的责任。二审法院认定:赞同一审法院对于事故责任的认定及对损害赔偿数额的分配。对于上诉人提出的上述理由,二审法院认为,上诉人E与施工方关于责任的约定,不能妨碍受害人基于过错提出的侵权赔偿主张。最终二审法院判决:驳回上诉,维持原判。 二 【请求权基础】 根据法院的上述认定,以及法院援引的《中华人民共和国民法通则》第一百

asterisk常用命令

asterisk常用命令 Asterisk基本配置 Asterisk译为星号(*)在很多应用中被用做通配符,Astrisk做为PBX系统的完美名称,原因之一是Asterisk可以连接数目庞大的接口类型,包括: 1模拟接接口,如你的电话线或模拟电话. 2数字线路,如T-1和E-1线路 3V oip协议,如SIP和IAX 目前正式版本是IAX2,但是IAX1的所有格式都已经停掉.所以当说到IAX都是特拽IAX2 使用接口配置文件 1.Zaptel.conf:硬件接口基层配置,我们将建立一个FX0和一个FXS通道. 2.zapata.conf:硬件配置Asterisk的接口. 3.extension.conf:拨号方案文件. 4.sip.conf:配置SIP协议的文件 5.iax.conf:配置呼入和呼出IAX通道的文件 ******编辑完zaptel.conf文件,需要使用/sbin/ztcfg -vv装载配置到硬件(不须要详细输出可以省略-vv);修改信令方法需要重启.在编辑sip.conf和iax.conf文档后,分别需要装载chan_iax2.so和chan_sip.so Asterisk译为星号(*)在很多应用中被用做通配符,Astrisk做为PBX系统的完美名称,原因之一是Asterisk可以连接数目庞大的接口类型,包括: 1模拟接接口,如你的电话线或模拟电话. 2数字线路,如T-1和E-1线路 3V oip协议,如SIP和IAX 目前正式版本是IAX2,但是IAX1的所有格式都已经停掉.所以当说到IAX都是特拽IAX2 使用接口配置文件 1.Zaptel.conf:硬件接口基层配置,我们将建立一个FX0和一个FXS通道. 2.zapata.conf:硬件配置Asterisk的接口. 3.extension.conf:拨号方案文件. 4.sip.conf:配置SIP协议的文件 5.iax.conf:配置呼入和呼出IAX通道的文件 ******编辑完zaptel.conf文件,需要使用/sbin/ztcfg -vv装载配置到硬件(不须要详细输出可以省略-vv);修改信令方法需要重启.在编辑sip.conf和iax.conf文档后,分别需要装载chan_iax2.so和chan_sip.so******

相关文档
最新文档