MTA_PacketCable1.5

Introduction

• MTA是Media Terminal Adapter的缩写,它可以将VoIP网络协议和普通的模拟电话信号进行转换,普通模拟电话可通过MTA和接在远端MTA或PSTN的电话通话。
• MTA可以单独存在,称为Standalone MTA。但一般会CableModem结合在一个Device内,结合了CM和MTA的设备称为Embedded-MTA,简称eMTA。
• 从信号转换方面来讲,eMTA中的CM负责将RF信号和VoIP进行转换。
• 对于eMTA,CM和MTA有各自的MAC/IP interface,可由不同的供应商提供服务。CM由Data Access Provider提供服务,而MTA则由Telephony Service Provider提供服务。
• MTA遵循PacketCable规范集(相关规范:PacketCable Spec)。PacketCable有1.0,1.5,Multimedia和2.0 4个发布版本。
1.0规范了使用eMTA进行电话通信的基本应用,1.5在1.0基础上增加了SIP应用,而Multimedia独立于1.0和1.5版本,其提供了‘a service agnostic QoS and accounting framework’. 
Packet2.0独立于以上版本,其包含了1.5版本和Multimedia的功能组件,并增加了SIP-based endpoints和SIP-based service platform.

• 本文仅基于PacketCable 1.5介绍

Related Abbreviations

ANS: Announcement Server. A logical entity composed of an ANC and an ANP.
ANC: Announcement Controller
ANP: Announcement Player
CA: Call Agent.It is a part of the CMS that maintains call state, and controls the line side of calls.
CMS: Call Management Server
CMSS: Call Management Server Signaling
HFC: Hybrid Fiber/Coaxial cable
ISTP: Internet Signaling Transport Protocol
KDC: Key Distribution Center, a Kerberos security server
MG: Media Gateway.It provides the bearer circuit interfaces to the PSTN and transcodes the media stream.
MGC:Media Gateway Controller. It is the overall controller function of the PSTN gateway. It receives
   controls and mediates call signaling information between the PacketCable and PSTN.
NCS: Network-based Call Signaling
PSTN: Public Switched Telephone Network.
RTP: Real-time Transport Protocol, a protocol defined in IETF RFC 1889 for transporting real-time
   streams such as voice and video.
SG: Signaling Gateway. A SG is a signaling agent that receives/sends SCN native signaling at the
  edge of the IP network.
SS7: Signaling System Number 7. SS7 is an architecture and set of protocols for performing out-of-band
   call signaling with a telephone network.

PacketCable 1.5 Architecture

Architecture Framwork

• 下图为PacketCable1.5定义的架构框架,包含了完整的成员 
 

• PacketCable 1.5包含了3个网络:Docsis HFC access network, Managed IP network, PSTN.
• 上图中所示组件,MTA,CM,CMTS属于HFC network功能组件,其他组件都属于Managed IP network.
• 其中,CMTS,SG,MG属于边界组件,CMTS连接HFC和IP network,SG和MG连接IP network和PSTN
• 其中,MTA,CMTS,CMS,SG,MGC,MG,Provisioning Server为必要组件

Functional Components

• 下图为按功能逻辑划分的组件,暂仅介绍与MTA直接关联的组件

• CMS包含CA,GC,ANC.其中CA支持NCS,是直接与MTA交互的部分,为MTA提供信号服务,指导MTA进行电话行为控制,与MG或远端MTA建立连接等
• MG提供了PSTN和IP network之间的信号转化,在MGC的指导下与MTA建立媒体连接传送语音
• OSS包含的是MTA进行Provisioning时需要的服务器(DHCP server/SNMP/TFTP or HTTP/KDC if secure mode)和通信时需要的DNS

Initialization/Calling Flow

• 下图所示为各组件间交互所使用的协议


• Provisioning

• Device provision,包括获取IP,获取配置数据(1)
• Endpoint provision,在CMS注册,获取服务(2)

• 从Phone A拨号给Phone C的处理流程大致为:

• MTA探测到A提起话筒并完成拨号,通过NCS通知CMS这个事件(2)
• CMS通过NCS指导MTA准备一个连接和QoS所需资源,并给phone A发等待接通的铃声信号
• CMS通知MGC建立通话通道(3)
• MGC通知SG给Phone C响铃信号(4),并通知MG准备连接(6)
• CMS接到SG和MG的响应,探知Phone C接通后,通知MTA给phone A发停止等待接通的铃声的信号,并激活和MG的连接
• MTA和MG利用RTP传送media stream(8)

• 从Phone C拨号给Phone A的处理流程大致为:

• SG将phone B的通话请求转给MGC
• MGC通知CMS,CMS指导MTA准备连接和给phone A发响铃信号
• MGC通知MG准备连接
• MTA探测phone A接听电话,通知CMS,CMS通知MGC
• CMS指导MTA激活和MG的连接
• MTA和MG利用RTP传送media stream

• 从Phone A拨号给Phone B的处理流程大致为:

• MTA探测到A提起话筒并完成拨号,通过NCS通知CMS这个事件(2)
• CMS通过NCS指导MTA准备一个连接和QoS所需资源,并MTA给phone A发等待接通的铃声信号
• CMS通知Romote CMS通话请求(9)
• Romote CMS通知Romote MTA准备连接和QoS所需资源,并让Romote MTA给phone B发响铃信号
• Romote MTA探测到phone B接听响应,通知Romote CMS,Romote CMS通知CMS
• CMS通知MTA给phone A发停止等待接通的铃声的信号,并激活和Romote MTA的连接
• MTA和Romote MTA利用RTP传送media stream(10)

• MTA还可以通过RTP从ANP获得announcement(内容不祥,TODO:)
• 对于MTA来说,需关注Provisioning过程涉及的协议(DHCP,IPSec,TFTP,SNMP)及NCS和RTP的实现

MTA Functional Requirements

Overview

• NCS call signal with CMS
• Qos signaling with CMTS
• Authentication,confidentiality and integrity of some messages between the MTA and other PacketCable network elements
• Mapping media streams to the MAC services of the DOCSIS access network
• Encoding/decoding of media streams

以上仅对Software来说,模拟信号的转化和电话行为的控制(拨号,电话铃响,忙音等待等)由硬体芯片(SLIC?)来达成.

Provisioning

• Refer PKT-TR-ARCH1.5.pdf 
• 初始化的过程是与OSS组件的交互,如下图:

 

• Provisioning Flows

• 上线流程与DHCP Option122密切相关,详细内容参考RFC3495 
• MTA provision有三种流程,分为Secuce,Hybrid和Basic 
• 采用哪种流程由DHCP Option122(RFC3495)的subopt-6的值决定 

 Subopt-6    Provisioning Flow
 "BASIC.1"   Basic flow without the provisioning complete SNMP INFORM.
 "BASIC.2"   Basic flow with the provisioning complete SNMP INFORM.
 "HYBRID.1"  Hybrid flow without the provisioning complete SNMP INFORM.
 "HYBRID.2"  Hybrid flow with the provisioning complete SNMP INFORM.
 Other FQDN  Sercure flow


• Secure Flow(Figure 4)

• CM-1~CM-10为CM上线过程,细节略。如要启用MTA,CM-1(DHCP Discover)必须包含option122的请求,CM-2(Offer)和CM-4(ACK)中必须包含可用的option122内容(包含合法的subopt-1或subopt-2)
• MTA-1开始MTA的初始化过程,这一步必须在CM4之后。 Discover中必须包含option60(且其内容必须以pktc1.5:xxxx格式),option43,option55必须请求1,3,6,7,12,122 options
• MTA-2仅接受来自CM-2中option122 subopt-1/2指定的DHCP server的可用Offer。此Offer中必须包含option 1,3,6,7,12,15,122(包含subopt-3/6),否则停止下一步动作。在这一步中,会优先尝试选择Secure模式,具体做法为,尝试3次MTA-1和MTA-2,如option122 subopt6只是这是sercure流程,则以sercure流程进行一下初始化,否则选择Hybrid或Basic流程
• MTA-4 DHCP ACK中必须包含MTA-2 Offer中所有的option,否则初始化失败。如ACK和Offer中包含的option内容不用,以ACK中的为准
• MTA-5~MTA-8,向DNS获取KDC Ip
• MTA-9~MTA-12,communication between MTA and KDC for security.TODO:
• MTA-13/14,MTA-15,send SNMPv3 enrollment inform that commtains PktcMtaDevProvisioningEnrollment object as defined in PKT-SP-MIB-MTA1.5.pdf to Provisioning server
• MTA-16/17,可选步骤.Provisioning server通过SNMPv3获取MTA的能力信息
• MTA-18,Provision server根据已知的MTA信息(在MTA15/17获取),决定给发送给MTA的配置文件内容
• MTA-19,通过SNMPv3告知MTA配置文件所在地址和名称(MtaDevProvConfigFile)和用于解析配置文件的MtaDevProvConfigHash/MtaDevProvConfigKey
• MTA-20/21,向DNS获取TFTP/HTTP server ip
• MTA-22/23,下载配置文件
• MTA-24,可选步骤.如果MTA成功解析configfile,MTA向LogSever(defined with option7 in dhcp offer)发送‘provisioning complete’syslog event
• MTA-25,与MTA-24作用类似。通过SNMP告知provisioning server MTA的上线状态(complete/failreson/...)

• Hybrid Flow(Figure 5)

• 大部分步骤与Secure flow相同:CM-1~CM-10,MTA-1~MTA-4
• 不需要MTA-5~MTA-12
• MTA-15~MTA-19,MTA-25与Secure flow作用相同,只是使用SNMPv2c替代SNMPv3
• 因配置文件没有加密,MTA-19不需要设置MtaDevProvConfigKey
• MTA-20~MTA-24与Secure flow相同

• Basic Flow(Figure 6)

• 在Hybrid flow基础上又减少了MTA-15~MTA-19的步骤
• 配置文件的地址和名称必须在MTA-4的DHCP ACK中包含(‘siaddr’和'file'栏)
• 因无MTA-19,配置文件中必须包含MtaDevProvConfigHash以校验文件有效性

• 三种不同初始化流程的主要差异

• Secure flow最复杂,需要的组件最多。它比另外2个流程要多实现Kerberos和SNMPv3
• Hybrid flow在Secure基础上减少了Kerberos和SNMPv3,但必须支持SNMPv2c
• Basic flow是MTA必须实现的,也需支持SNMPv2c

Calling Flow

• MTA to remote MTA 
• MTA to PSTN 

MTA Implementation in BCM

MainCode Path

• REV/cablex/src/mta/ MTA基本功能的实现,如provisioning,RTP,NCS(MGCP)等
• REV/voice_res_gw/ voice residential gateway,主要为Endpoint的实现 TOBeConfirm: 
• REV/rbb_cm_src/Mta/ MTA上层配置,Firewall等功能实现

MTA Initialization(Provisioning)

CallControl

RTP

Test Environment

MTA Config File

• Config file组成

• refer to PKT-TR-ARCH1.5.pdf 9.1 and PKT-SP-MIB-MTA1.5.pdf 
• configfile中包含"Device Level Configuration Data","Device Level Service Data","Per-Endpoint Configuration Data","Per-Realm Configuration Data","Per-CMS Configuration Data"几部分。每个部分又有多个参数,这些参数多数与Mib关联。

• Config file中必须内容(此处以对应Euro-PacketCable1.5的Mib为例) 

• MTA Admin State(in DeviceLevel),对应Mib pktcMtaDevEnabled,对应OID .1.3.6.1.4.1.7432.1.1.1.6.0
• Realm Org Name(in DeviceLevel and Per-Realm),对应pktcMtaDevRealmOrgName,对应OID .1.3.6.1.4.1.7432.1.1.3.6.1.5.1.0
• CMS Name(in Per-Endpoint),对应pktcNcsEndPntConfigCallAgentID,对应OID .1.3.6.1.4.1.7432.1.1.3.8.1.2.1.0
• Kerberos Realm Name(in Per-CMS),对应pktcMtaDevCmsKerbRealmName,对应OID .1.3.6.1.4.1.7432.1.1.3.8.1.2.1.0 
• 如果为Basic流程,还必须包含pktcMtaDevConfigHash,对应OID .1.3.6.1.4.1.7432.1.1.2.9.0

• 配置工具TlvFileBldr.exe(由Broadcom提供)

Basic

• 所需组件/工具

• MTA/CMTS/Telephone/PC Server
• 主要软件工具:DHCP server/DNS server/Tftp server/CallAgent.exe(CMS,由Broadcom提供)/ProvServer.exe(SNMP Entry,由Broadcom提供)
• MTA配置文件

• 拓扑 
 
• 各组件/工具具体配置

• 假设条件:

• MTA-1 CM Interface mac:00-10-18-de-ad-01,MTA interface mac:00-10-18-de-ad-06 
• MTA-1 CM Interface mac:00-10-18-de-ad-11,MTA interface mac:00-10-18-de-ad-16 

• PC server with Windows2003,domain:pclab.com,pc name:server2003.pclab.com 
• CMTS IP:10.2.76.105 
• PC network interface: ip:10.2.76.6,netmask:255.255.0.0,gw:10.2.76.105,dns:10.2.76.6 
• eMTA关闭IPSec,通过CLI:CM/NonVol/EMTA ConfigVoice NonVol> ipsecDisabled 1 
• Tftp Server

放置MTA配置文件MtaConfig.bin 
Reference: 

ConfigFile:cameo_pclab_basic_eu.bin
ConfigFile Editer:TLVBuilderV4

• DHCP Server

• 设定2个pool,Pool-1 10.10.0.xx给CM,Pool-2 10.11.100.xx给MTA
• 在Pool-1的DHCP选项中添加option122,其中subopt-1(DHCP server for MTA)内容为:10.2.76.6
• 为了便于CallAgent配置,建议在Pool-2中添加"Reserve IP"规则,为不同的MTA指定固定IP。这里为MTA-1指定分配10.11.100.1,MTA-2分配10.11.100.2
• 给Pool-2的每个保留地址添加以下设定:

Bootfile MtaConfig.bin 
opt-3(Router) 10.10.0.1(需与CMTS的配置对应,the secondary ip on IP-bundle interface) 
opt-6(DNS) 10.2.76.6 
opt-7(LogServer) 10.2.76.6 
opt-12(HostName) MTA_1(给不同的MTA非配不同的名称,比如MTA-1为“MTA_1”,MTA-2为“MTA_2”) 
opt-15(DomainName) pclab.com 
opt-122 subopt-1:10.2.76.6, subopt-3:server2003.pclab.com, subopt-6:BASIC.1 

• DNS Server

在DNS中添加以下记录:

server2003.pclab.com 10.2.76.6
ca.pclab.com 10.2.76.6
MTA_1.pclab.com 10.11.100.1
MTA_2.pclab.com 10.11.100.2

• CallAgent

• App CallAgent 
• 根据以上配置,MTA-1将分配到10.11.100.1,名称为“MTA_1”,MTA-2将分配到10.11.100.2,名称为“MTA_2”.以此为依据修改hhca.cfg,要修改部分有相应注释
Note:因目前没有已知可用的MG,所以hhca.cfg中添加2个不同的MTA作为gw 
• 将hhca.cfg与CallAgent.exe放置在同一路径下

• 测试流程

由以上配置,MTA-1 Rj11-1口分配的号码为1001,2口为2001;MTA-2 Rj11-1口分配到的号码为1002,2口为2002 
Rj11口分别介入普通电话机,可实现拨号/响铃/等待/通话/挂断操作 

Secure


PacketCable 2.0

PacketCable 2.0的学习内容,请移步至MTA_PacketCable2.0

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
优化sql:SELECT we.organization_id ,we.wip_entity_id ,case when wl.line_id is null then we.wip_entity_name else '' end wip_entity_name ,we.primary_item_id ,mtt.transaction_type_name ,mmt.transaction_date ,bd.department_code ,mmt.inventory_item_id ,mmt.subinventory_code ,mta.reference_account ,br.resource_code ,lu2.meaning as line_type_name ,mta.base_transaction_value ,mta.cost_element_id ,flv.meaning as cost_element ,wdj.class_code job_type_code ,ml.meaning job_type_name FROM (select * from gerp.mtl_material_transactions where substr(transaction_date,1,7) >= '2023-06' and transaction_source_type_id = 5) mmt inner join gerp.wip_entities we on mmt.organization_id = we.organization_id inner join gerp.mtl_transaction_accounts mta on mta.transaction_source_id = we.wip_entity_id and mta.transaction_id = mmt.transaction_id and mta.transaction_source_type_id = 5 inner join gerp.mtl_transaction_types mtt on mtt.transaction_type_id = mmt.transaction_type_id inner join mfg_lookups lu2 on lu2.lookup_code = mta.accounting_line_type and lu2.lookup_type = 'CST_ACCOUNTING_LINE_TYPE' inner join gerp.mtl_system_items_b msi on msi.inventory_item_id = mmt.inventory_item_id and msi.organization_id = mta.organization_id left join gerp.bom_departments bd on bd.department_id = mmt.department_id left join gerp.bom_resources br on br.resource_id = mta.resource_id left join gerp.wip_lines wl on wl.line_id = mmt.repetitive_line_id left join gerp.wip_discrete_jobs wdj on wdj.wip_entity_id = mta.transaction_source_id left join gerp.fnd_lookup_values_vl flv on cast(mta.cost_element_id as string) = flv.lookup_code and flv.lookup_type = 'CST_COST_CODE_TYPE' left join mfg_lookups ml on ml.lookup_code = wdj.job_type and ml.lookup_type = 'WIP_DISCRETE_JOB' 。其中mmt,we,mta,msi,wdj数据量很大
最新发布
06-10
针对这个SQL语句,可以优化的地方有: 1. 使用JOIN语句时,可以根据数据量大小,将数据量大的表放在后面,这样可以避免在连接时出现性能问题。 2. 使用子查询时,可以在子查询中添加条件筛选,减少返回的数据量。 3. 可以对查询中的日期条件进行优化,例如使用日期范围查询时,可以使用BETWEEN关键字代替大于等于和小于等于的运算符。 4. 可以对大表进行分区或分片,以加快查询速度。 5. 可以对JOIN语句中的字段添加索引,以提高查询效率。 下面是对原SQL语句的优化: ``` SELECT we.organization_id, we.wip_entity_id, CASE WHEN wl.line_id is null THEN we.wip_entity_name ELSE '' END wip_entity_name, we.primary_item_id, mtt.transaction_type_name, mmt.transaction_date, bd.department_code, mmt.inventory_item_id, mmt.subinventory_code, mta.reference_account, br.resource_code, lu2.meaning as line_type_name, mta.base_transaction_value, mta.cost_element_id, flv.meaning as cost_element, wdj.class_code job_type_code, ml.meaning job_type_name FROM gerp.wip_entities we INNER JOIN ( SELECT * FROM gerp.mtl_material_transactions WHERE transaction_date BETWEEN '2023-06-01' AND '2023-06-30' AND transaction_source_type_id = 5 ) mmt ON mmt.organization_id = we.organization_id INNER JOIN gerp.mtl_transaction_accounts mta ON mta.transaction_source_id = we.wip_entity_id AND mta.transaction_id = mmt.transaction_id AND mta.transaction_source_type_id = 5 INNER JOIN gerp.mtl_transaction_types mtt ON mtt.transaction_type_id = mmt.transaction_type_id INNER JOIN mfg_lookups lu2 ON lu2.lookup_code = mta.accounting_line_type AND lu2.lookup_type = 'CST_ACCOUNTING_LINE_TYPE' INNER JOIN gerp.mtl_system_items_b msi ON msi.inventory_item_id = mmt.inventory_item_id AND msi.organization_id = mta.organization_id LEFT JOIN gerp.bom_departments bd ON bd.department_id = mmt.department_id LEFT JOIN gerp.bom_resources br ON br.resource_id = mta.resource_id LEFT JOIN gerp.wip_lines wl ON wl.line_id = mmt.repetitive_line_id LEFT JOIN gerp.wip_discrete_jobs wdj ON wdj.wip_entity_id = mta.transaction_source_id LEFT JOIN gerp.fnd_lookup_values_vl flv ON cast(mta.cost_element_id as string) = flv.lookup_code AND flv.lookup_type = 'CST_COST_CODE_TYPE' LEFT JOIN mfg_lookups ml ON ml.lookup_code = wdj.job_type AND ml.lookup_type = 'WIP_DISCRETE_JOB'; ``` 在优化后的SQL语句中,将子查询中的日期范围查询放在了WHERE语句中,将数据量较大的表放在了后面,左连接的表也放在了后面。同时,可以根据具体情况对需要添加索引的字段进行索引优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值