call需要多大带宽 video_LTE杂谈之IMS voice 和video call流程

pan >SIP Message Logged Bytes = 1951

Message ID = IMS_SIP_INVITE

Response Code = INFORMAL_RESPONSE (0)

CM Call ID = 2

SIP Call ID =

842064754_2354444888@2409:8804:8000:186e:9fb:f711:a6d6:ead

会话标识,整个流程不变

Sip Message = INVITE

tel:10086;phone-context=ims.mnc000.mcc460.3gppnetwork.org

SIP/2.0

f: ;tag=842064762 主叫

t: 被叫

CSeq: 842064754 INVITE

i:

842064754_2354444888@2409:8804:8000:186e:9fb:f711:a6d6:ead

v: SIP/2.0/TCP

[2409:8804:8000:186e:9fb:f711:a6d6:ead]:8901;branch=z9hG4bK3616006300

Max-Forwards: 70

m:

;+g.3gpp.icsi-ref='urn:urn-7:3gpp-service.ims.icsi.mmtel';video;+g.3gpp.mid-call;+g.3gpp.srvcc-alerting支持srvcc振铃

Route: 对请求消息进行路由转发,其实就是PCSCF的地址

P-Access-Network-Info: 3GPP-E-UTRAN-TDD;

utran-cell-id-3gpp=4600018BE192D322 网络的类型和小区ID

Security-Verify:

ipsec-3gpp;alg=hmac-md5-96;prot=esp;mod=trans;ealg=null;spi-c=3150465912;spi-s=3930932050;port-c=9950;port-s=9900

Proxy-Require: sec-agree

Require: sec-agree

P-Preferred-Identity: 用户标识

Allow:

INVITE,ACK,CANCEL,BYE,UPDATE,PRACK,MESSAGE,REFER,NOTIFY,INFO,OPTIONS

支持的sip消息类型

c: application/sdp

Accept: application/sdp,application/3gpp-ims+xml

P-Preferred-Service:

urn:urn-7:3gpp-service.ims.icsi.mmtel

a:

*;+g.3gpp.icsi-ref='urn:urn-7:3gpp-service.ims.icsi.mmtel'

k: 100rel,replaces,precondition,histinfo

P-Early-Media: supported

l: 633

v=0

o=- 1001 1000 IN IP6

2409:8804:8000:186e:9fb:f711:a6d6:ead

s=QC VOIP

c=IN IP6 2409:8804:8000:186e:9fb:f711:a6d6:ead

b=AS:49

b=RS:600

b=RR:2000

t=0 0

m=audio 50010 RTP/AVP 99 97 105 96 audio端口50010

b=AS:49

b=RS:600

b=RR:2000

a=rtpmap:99 AMR-WB/16000/1

蓝色部分是audio的codec相关参数

a=fmtp:99

mode-change-capability=2;max-red=0

a=rtpmap:97

AMR/8000/1

a=fmtp:97

mode-change-capability=2;max-red=0

a=rtpmap:105

telephone-event/16000

a=fmtp:105 0-15

a=rtpmap:96

telephone-event/8000

a=fmtp:96 0-15

a=curr:qos local none

a=curr:qos remote none

a=des:qos mandatory local sendrecv

a=des:qos optional remote sendrecv

a=sendrecv (如果这里为send only,表明只发送不接收对方语音数据。进行呼叫保持的时候,会设置成send

only)

a=maxptime:240

a=ptime:20

2, 网络会下发一个100 trying一旦网络将invite

message转发给MT后。MT端会收到paging,然后会发起RACH进入rrc连接态。

2016 May 18 09:18:52.900 [56] 0x156E IMS SIP Message --

IMS_SIP_INVITE/TRYING

Version = 1

Direction = NETWORK_TO_UE

SDP Presence = 0

SIP Call ID Length = 59

SIP Message Length = 368

SIP Message Logged Bytes = 369

Message ID = IMS_SIP_INVITE

Response Code = TRYING (100)

CM Call ID = 2

SIP Call ID =

842064754_2354444888@2409:8804:8000:186e:9fb:f711:a6d6:ead

Sip Message = SIP/2.0 100 Trying

Via: SIP/2.0/TCP

[2409:8804:8000:186E:09FB:F711:A6D6:0EAD]:8901;branch=z9hG4bK3616006300

Call-ID:

842064754_2354444888@2409:8804:8000:186e:9fb:f711:a6d6:ead

From: ;tag=842064762

To:

CSeq: 842064754 INVITE

Content-Length: 0

3, MT 发送183 Session progress表明MT的audio

codec选择以及QOS状况。(MO提供了codec方案在invite message里)

2016 May 18 09:18:53.519 [62] 0x156E IMS SIP Message --

IMS_SIP_INVITE/SESSION_PROGRESS

Version = 1

Direction = NETWORK_TO_UE

SDP Presence = 1

SIP Call ID Length = 59

SIP Message Length = 1401

SIP Message Logged Bytes = 1402

Message ID = IMS_SIP_INVITE

Response Code = SESSION_PROGRESS (183)

CM Call ID = 2

SIP Call ID =

842064754_2354444888@2409:8804:8000:186e:9fb:f711:a6d6:ead

Sip Message = SIP/2.0 183 Session Progress

Via: SIP/2.0/TCP

[2409:8804:8000:186E:09FB:F711:A6D6:0EAD]:8901;branch=z9hG4bK3616006300

Call-ID:

842064754_2354444888@2409:8804:8000:186e:9fb:f711:a6d6:ead

From: ;tag=842064762

To: ;tag=82z7c882

CSeq: 842064754 INVITE

Allow:

INVITE,ACK,OPTIONS,BYE,CANCEL,INFO,PRACK,NOTIFY,MESSAGE,REFER,UPDATE

Contact:

Require: 100rel,precondition

RSeq: 1

P-Early-Media: gated

P-Access-Network-Info:

3GPP-E-UTRAN;utran-cell-id-3gpp=4600018BE192D322;sbc-domain=sbc01.021.sh.chinamobile.com;ue-ip=[2409:8804:8000:186E:9FB:F711:A6D6:EAD]这里由于是10086,所以IP地址设置成了MO端的。实际上如果拨打普通电话,这里的ip地址是MT端的IP地址;ue-port=8001;network-provided

Feature-Caps:

*;+g.3gpp.srvcc;+g.3gpp.mid-call;+g.3gpp.srvcc-alerting

Content-Length: 473

Content-Type: application/sdp

v=0

o=- 2221542 2221542 IN IP6

2409:8014:8201:0010:0000:0000:0000:0011

s=SBC call

c=IN IP6 2409:8014:8201:0010:0000:0000:0000:0011 MT端PCSCF的地址

t=0 0

m=audio 19564 RTP/AVP 97 96 MT的audio端口

a=curr:qos local sendrecv MT的QOS已经满足

a=curr:qos remote none

a=des:qos optional local sendrecv

a=des:qos mandatory remote sendrecv

a=conf:qos remote sendrecv

a=rtpmap:97

AMR/8000

a=fmtp:97

mode-change-period=2;mode-change-capability=1;max-red=0

a=ptime:20

a=rtpmap:96

telephone-event/8000

a=fmtp:96 0-15

4,MO端发送PRACK表明收到MT的183消息。

2016 May 18 09:18:53.554 [D7] 0x156E IMS SIP Message --

IMS_SIP_PRACK/INFORMAL_RESPONSE

Version = 1

Direction = UE_TO_NETWORK

SDP Presence = 0

SIP Call ID Length = 59

SIP Message Length = 740

SIP Message Logged Bytes = 741

Message ID = IMS_SIP_PRACK

Response Code = INFORMAL_RESPONSE (0)

CM Call ID = 2

SIP Call ID =

842064754_2354444888@2409:8804:8000:186e:9fb:f711:a6d6:ead

Sip Message = PRACK

sip:[2409:8014:8201:0010:0000:0000:0000:0009]:9900;Hpt=8e82_16;CxtId=3;TRC=ffffffff-ffffffff

SIP/2.0

i:

842064754_2354444888@2409:8804:8000:186e:9fb:f711:a6d6:ead

f: ;tag=842064762

t: ;tag=82z7c882

CSeq: 842064755 PRACK

P-Access-Network-Info: 3GPP-E-UTRAN-TDD;

utran-cell-id-3gpp=4600018BE192D322

l: 0

v: SIP/2.0/UDP

[2409:8804:8000:186e:9fb:f711:a6d6:ead]:8901;branch=z9hG4bK651607450

Max-Forwards: 70

Security-Verify:

ipsec-3gpp;alg=hmac-md5-96;prot=esp;mod=trans;ealg=null;spi-c=3150465912;spi-s=3930932050;port-c=9950;port-s=9900

RAck: 1 842064754 INVITE

Proxy-Require: sec-agree

Require: sec-agree

5, MT端发送 200 ok消息,表明183请求已经处理成功。

2016 May 18 09:18:53.726 [83] 0x156E IMS SIP Message --

IMS_SIP_PRACK/OK

Version = 1

Direction = NETWORK_TO_UE

SDP Presence = 0

SIP Call ID Length = 59

SIP Message Length = 565

SIP Message Logged Bytes = 566

Message ID = IMS_SIP_PRACK

Response Code = OK (200)

CM Call ID = 2

SIP Call ID =

842064754_2354444888@2409:8804:8000:186e:9fb:f711:a6d6:ead

Sip Message = SIP/2.0 200 OK

Via: SIP/2.0/UDP

[2409:8804:8000:186E:09FB:F711:A6D6:0EAD]:8901;branch=z9hG4bK651607450

Call-ID:

842064754_2354444888@2409:8804:8000:186e:9fb:f711:a6d6:ead

From: ;tag=842064762

To: ;tag=82z7c882

CSeq: 842064755 PRACK

P-Access-Network-Info:

3GPP-E-UTRAN;utran-cell-id-3gpp=4600018BE192D322;sbc-domain=sbc01.021.sh.chinamobile.com;ue-ip=[2409:8804:8000:186E:9FB:F711:A6D6:EAD];ue-port=8001;network-provided

Content-Length: 0

6, MO发送update消息包含MO的Qos状况和codec状况。

2016 May 18 09:18:53.753 [9F] 0x156E IMS SIP Message --

IMS_SIP_UPDATE/INFORMAL_RESPONSE

Version = 1

Direction = UE_TO_NETWORK

SDP Presence = 1

SIP Call ID Length = 59

SIP Message Length = 1514

SIP Message Logged Bytes = 1515

Message ID = IMS_SIP_UPDATE

Response Code = INFORMAL_RESPONSE (0)

CM Call ID = 2

SIP Call ID =

842064754_2354444888@2409:8804:8000:186e:9fb:f711:a6d6:ead

Sip Message = UPDATE

sip:[2409:8014:8201:0010:0000:0000:0000:0009]:9900;Hpt=8e82_16;CxtId=3;TRC=ffffffff-ffffffff

SIP/2.0

i:

842064754_2354444888@2409:8804:8000:186e:9fb:f711:a6d6:ead

f: ;tag=842064762

t: ;tag=82z7c882

CSeq: 842064756 UPDATE

P-Access-Network-Info: 3GPP-E-UTRAN-TDD;

utran-cell-id-3gpp=4600018BE192D322

l: 507

v: SIP/2.0/TCP

[2409:8804:8000:186e:9fb:f711:a6d6:ead]:8901;branch=z9hG4bK1726520376

Max-Forwards: 70

Security-Verify:

ipsec-3gpp;alg=hmac-md5-96;prot=esp;mod=trans;ealg=null;spi-c=3150465912;spi-s=3930932050;port-c=9950;port-s=9900

Allow:

INVITE,ACK,CANCEL,BYE,UPDATE,PRACK,MESSAGE,REFER,NOTIFY,INFO,OPTIONS

c: application/sdp

Require: sec-agree,precondition

Proxy-Require: sec-agree

m:

;+g.3gpp.icsi-ref='urn:urn-7:3gpp-service.ims.icsi.mmtel';video;+g.3gpp.mid-call;+g.3gpp.srvcc-alerting

v=0

o=- 1001 1001 IN IP6

2409:8804:8000:186e:9fb:f711:a6d6:ead

s=QC VOIP

c=IN IP6 2409:8804:8000:186e:9fb:f711:a6d6:ead

b=AS:37

b=RS:600

b=RR:2000

t=0 0

m=audio 50010 RTP/AVP 97 96

b=AS:37

b=RS:600

b=RR:2000

a=rtpmap:97 AMR/8000/1

a=fmtp:97 mode-change-capability=2;max-red=0

a=rtpmap:96 telephone-event/8000

a=fmtp:96 0-15

a=curr:qos local sendrecv QOS本地已经满足

a=curr:qos remote sendrecv QOS对端也已经满足

a=des:qos mandatory local sendrecv

a=des:qos optional remote sendrecv

a=sendrecv

a=maxptime:240

a=ptime:20

7, MT发送200 OK表明update请求已经处理成功。

2016 May 18 09:18:53.974 [D7] 0x156E IMS SIP Message --

IMS_SIP_UPDATE/OK

Version = 1

Direction = NETWORK_TO_UE

SDP Presence = 1

SIP Call ID Length = 59

SIP Message Length = 1146

SIP Message Logged Bytes = 1147

Message ID = IMS_SIP_UPDATE

Response Code = OK (200)

CM Call ID = 2

SIP Call ID =

842064754_2354444888@2409:8804:8000:186e:9fb:f711:a6d6:ead

Sip Message = SIP/2.0 200 OK

Via: SIP/2.0/TCP

[2409:8804:8000:186E:09FB:F711:A6D6:0EAD]:8901;branch=z9hG4bK1726520376

Call-ID:

842064754_2354444888@2409:8804:8000:186e:9fb:f711:a6d6:ead

From: ;tag=842064762

To: ;tag=82z7c882

CSeq: 842064756 UPDATE

Contact:

P-Early-Media: gated

P-Access-Network-Info:

3GPP-E-UTRAN;utran-cell-id-3gpp=4600018BE192D322;sbc-domain=sbc01.021.sh.chinamobile.com;ue-ip=[2409:8804:8000:186E:9FB:F711:A6D6:EAD];ue-port=8001;network-provided

Content-Length: 419

Content-Type: application/sdp

v=0

o=- 2221542 2221543 IN IP6

2409:8014:8201:0010:0000:0000:0000:0011

s=SBC call

c=IN IP6 2409:8014:8201:0010:0000:0000:0000:0011

t=0 0

m=audio 19564 RTP/AVP 97 96

a=rtpmap:97 AMR/8000

a=fmtp:97 mode-set=7

a=ptime:20

a=maxptime:20

a=curr:qos local sendrecv

a=curr:qos remote sendrecv

a=des:qos optional local sendrecv

a=des:qos mandatory remote sendrecv

a=rtpmap:96 telephone-event/8000

a=fmtp:96 0-15

8, MT端振铃后,网络向MO段发送180 ringing消息。

2016 May 18 09:18:55.030 [43] 0x156E IMS SIP Message --

IMS_SIP_INVITE/RINGING

Version = 1

Direction = NETWORK_TO_UE

SDP Presence = 0

SIP Call ID Length = 59

SIP Message Length = 889

SIP Message Logged Bytes = 890

Message ID = IMS_SIP_INVITE

Response Code = RINGING (180)

CM Call ID = 2

SIP Call ID =

842064754_2354444888@2409:8804:8000:186e:9fb:f711:a6d6:ead

Sip Message = SIP/2.0 180 Ringing

Via: SIP/2.0/TCP

[2409:8804:8000:186E:09FB:F711:A6D6:0EAD]:8901;branch=z9hG4bK3616006300

Call-ID:

842064754_2354444888@2409:8804:8000:186e:9fb:f711:a6d6:ead

From: ;tag=842064762

To: ;tag=82z7c882

CSeq: 842064754 INVITE

Allow:

INVITE,ACK,OPTIONS,BYE,CANCEL,INFO,PRACK,NOTIFY,MESSAGE,REFER,UPDATE

Contact:

Require: 100rel,precondition

RSeq: 2

P-Early-Media: sendrecv

P-Access-Network-Info:

3GPP-E-UTRAN;utran-cell-id-3gpp=4600018BE192D322;sbc-domain=sbc01.021.sh.chinamobile.com;ue-ip=[2409:8804:8000:186E:9FB:F711:A6D6:EAD];ue-port=8001;network-provided

Feature-Caps:

*;+g.3gpp.srvcc;+g.3gpp.mid-call;+g.3gpp.srvcc-alerting

Content-Length: 0

9,MT发送200 OK表明invite消息已经处理成功。

2016 May 18 09:18:55.215 [47] 0x156E IMS SIP Message --

IMS_SIP_INVITE/OK

Version = 1

Direction = NETWORK_TO_UE

SDP Presence = 0

SIP Call ID Length = 59

SIP Message Length = 923

SIP Message Logged Bytes = 924

Message ID = IMS_SIP_INVITE

Response Code = OK (200)

CM Call ID = 2

SIP Call ID =

842064754_2354444888@2409:8804:8000:186e:9fb:f711:a6d6:ead

Sip Message = SIP/2.0 200 OK

Via: SIP/2.0/TCP

[2409:8804:8000:186E:09FB:F711:A6D6:0EAD]:8901;branch=z9hG4bK3616006300

Call-ID:

842064754_2354444888@2409:8804:8000:186e:9fb:f711:a6d6:ead

From: ;tag=842064762

To: ;tag=82z7c882

CSeq: 842064754 INVITE

Allow:

INVITE,ACK,OPTIONS,BYE,CANCEL,INFO,PRACK,NOTIFY,MESSAGE,REFER,UPDATE

Contact: ;+g.3gpp.mid-call

Supported: tdialog,100rel,histinfo,precondition

Session-Expires: 1800;refresher=uas

P-Access-Network-Info:

3GPP-E-UTRAN;utran-cell-id-3gpp=4600018BE192D322;sbc-domain=sbc01.021.sh.chinamobile.com;ue-ip=[2409:8804:8000:186E:9FB:F711:A6D6:EAD];ue-port=8001;network-provided

Feature-Caps:

*;+g.3gpp.srvcc;+g.3gpp.mid-call;+g.3gpp.srvcc-alerting

Content-Length: 0

10,MO发送ACK表明自己已经知道MT端invite请求处理成功。发完后,通话已经建立。相应的audio

RTP包开始收发。

2016 May 18 09:18:55.228 [E1] 0x156E IMS SIP Message --

IMS_SIP_ACK/INFORMAL_RESPONSE

Version = 1

Direction = UE_TO_NETWORK

SDP Presence = 0

SIP Call ID Length = 59

SIP Message Length = 501

SIP Message Logged Bytes = 502

Message ID = IMS_SIP_ACK

Response Code = INFORMAL_RESPONSE (0)

CM Call ID = 2

SIP Call ID =

842064754_2354444888@2409:8804:8000:186e:9fb:f711:a6d6:ead

Sip Message = ACK

sip:[2409:8014:8201:0010:0000:0000:0000:0009]:9900;Hpt=8e82_16;CxtId=3;TRC=ffffffff-ffffffff

SIP/2.0

v: SIP/2.0/UDP

[2409:8804:8000:186e:9fb:f711:a6d6:ead]:8901;branch=z9hG4bK4025382533

i:

842064754_2354444888@2409:8804:8000:186e:9fb:f711:a6d6:ead

f: ;tag=842064762

t: ;tag=82z7c882

CSeq: 842064754 ACK

l: 0

Max-Forwards: 70

Require: sec-agree

Proxy-Require: sec-agree

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/350089.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

取消堆集以提高延迟并减少AWS账单

大多数性能问题可以通过几种不同的方式解决。 多数人都容易理解和应用许多适用的解决方案。 一些解决方案,例如从JVM管理的堆中删除某些数据结构,则更为复杂。 因此,如果您不熟悉此概念,我建议您继续学习我们最近如何减少应用程序…

python 环境常用指令(updating...)

# 配置pip 源 mkdir -p ~/.pip && cat >> pip.conf <<EOF [global] timeout 60 index-url https://pypi.doubanio.com/simple EOF # pyenv 安装 所需依赖&#xff1a; yum install gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel…

shell 删除了hdfs 文件,在HDFS上删除超过10天的文件

Is there a way to delete files older than 10 days on HDFS?In Linux I would use:find /path/to/directory/ -type f -mtime 10 -name *.txt -execdir rm -- {} \;Is there a way to do this on HDFS? (Deletion to be done based on file creation date)解决方案Solution…

mysql使用方法_Mysql的常用用法

一、mysql中limit的用法详解[数据分页常用]在我们使用查询语句的时候&#xff0c;经常要返回前几条或者中间某几行数据&#xff0c;这个时候怎么办呢&#xff1f;不用担心&#xff0c;mysql已经为我们提供了这样一个功能。SELECT * FROM table LIMIT [offset,] rows | rows OF…

MTK 移植泰文输入法

1.移植zi输入法 1.1 在文件..\make\XXX_GPRS.mak中 讲输入方式改为MMI_ZI XXX_LANGUAGE EN_SM_THAI INPUT_METHOD MMI_XI 1.2在MMI_feature.h 打开相应的ZI语言输入法的宏开关&#xff0c; #if defined(CFG_MMI_LANG_THAI) && ((CFG_MMI_LANG_THAI __ON__)||(CFG_MM…

java中无法推断类型参数_Java中的推断异常

java中无法推断类型参数借用和窃取其他语言的概念和想法总是很高兴的。 Scala的Option是我真正喜欢的一个主意&#xff0c;因此我用Java编写了一个实现。 它包装了一个可能为null或不为null的对象&#xff0c;并提供了一些可用于某种分类功能的方法。 例如&#xff0c;isDefine…

H3C 三种生成树协议特性的比较

转载于:https://www.cnblogs.com/fanweisheng/p/11153361.html

使用HazelCast进行休眠缓存:基本配置

以前&#xff0c;我们对JPA缓存&#xff0c;机制以及hibernate提供的内容进行了介绍 。 接下来是一个使用Hazelcast作为二级缓存的休眠项目。 为此&#xff0c;我们将在JPA中使用一个基本的spring boot项目。 Spring Boot使用休眠作为默认的JPA提供程序。 我们的设置将非常接…

mysql事务实战_mysql事务隔离级别详解和实战

A事务做了操作 没有提交 对B事务来说 就等于没做 获取的都是之前的数据但是 在A事务中查询的话 查到的都是操作之后的数据没有提交的数据只有自己看得到&#xff0c;并没有update到数据库。查看InnoDB存储引擎 系统级的隔离级别 和 会话级的隔离级别&#xff1a;mysql> sele…

微云 linux_编年史与微云

微云 linux总览 我面临的一个常见问题是&#xff1a; 如果是单个作者&#xff0c;多个读者&#xff0c;如何缩放基于Chronicle的系统。 尽管有解决此问题的方法&#xff0c;但很有可能根本不会有问题。 微云 这是我用来描述单个线程来完成当前由多个服务器完成的工作的术语。 …

H3C 计算子网内可用主机地址数

转载于:https://www.cnblogs.com/fanweisheng/p/11153665.html

mysql中两次排序_MySQL中的两种排序方式: index和filesort

index &#xff1a;通过有序索引顺序扫描直接返回有序数据&#xff0c;不需要额外的排序&#xff0c;操作效率较高。filesort&#xff1a;通过对返回数据进行排序&#xff0c;filesort 并不代表通过磁盘文件排序&#xff0c;而是说明进行了一个排序操作&#xff0c;至于排序操作…

Java命令行界面(第2部分):args4j

在上一篇文章中 &#xff0c;我研究了如何使用Apache Commons CLI在Java应用程序中解析命令行参数。 在本文中&#xff0c;我将使用另一个库args4j进行相同的操作。 args4j采用了一种不同于Commons CLI的方式来指定Java应用程序应期望的命令行参数。 尽管Commons CLI期望代表选…

mysql my.cnf在哪里_my.cnf配置文件在哪

my.cnf配置文件在linux上是位于路径“/etc/my.cnf”下&#xff0c;在window上则位于安装目录的根目录下&#xff1b;可以使用命令“mysql --help”查看关于MYSQL对应配置文件“my.cnf”搜索顺序。一般linux上都放在 /etc/my.cnf ,window 上安装都是默认可能按照上面的路径还是没…

深入学习Mybatis框架(二)- 进阶

1.动态SQL 1.1 什么是动态SQL&#xff1f; 动态SQL就是通过传入的参数不一样,可以组成不同结构的SQL语句。 这种可以根据参数的条件而改变SQL结构的SQL语句,我们称为动态SQL语句。使用动态SQL可以提高代码重用性。 1.2 XML方式的实现 1.2.1 需要使用到的标签 <if> 用于判…

近似线性依靠matlab_不要仅仅依靠单元测试

近似线性依靠matlab当您构建一个复杂的系统时&#xff0c;仅仅测试组件是不够的。 这很关键&#xff0c;但还不够。 想象一下一家汽车厂生产和进口最高质量的零件&#xff0c;但组装好汽车后再也没有启动发动机。 如果您的测试用例套件几乎不包含单元测试&#xff0c;那么您将永…

戏说 .NET GDI+系列学习教程(三、Graphics类的方法的总结)

转载于:https://www.cnblogs.com/WarBlog/p/11157395.html

从关系数据库到Elasticsearch的索引数据– 1

Elasticsearch提供强大的搜索功能&#xff0c;并支持数据的分片和复制。 因此&#xff0c;我们希望将数据库中可用的数据索引到Elasticsearch中。 有多种方法可以将数据索引到Elasticsearch中&#xff1a; 使用Logstash将源设置为DB&#xff0c;将接收器设置为Elasticsearch&…

mysql 求bit 某位为1_mysql按位的索引判断值是否为1

DELIMITER $$DROP FUNCTION IF EXISTS value_of_bit_index_is_true$$/*计算某个数字的某些索引的位的值是否都为1&#xff0c;索引类似1,2,3,4*/CREATE FUNCTION value_of_bit_index_is_true(number INT, idxies VARCHAR(50)) RETURNS INT(11)BEGIN/*将1,2,3,4,5,6这样的字符串…

python math.asin

import mathmath.asin(x) x : -1 到 1 之间的数值。如果 x 是大于 1&#xff0c;会产生一个错误。 #!/usr/bin/pythonimport math print "asin(0.64) : ", math.asin(0.64)print "asin(0) : ", math.asin(0)print "asin(-1) : ", math.asin(-1)p…