UICC-ETSI TS 102 223规范应用详解(CAT&主动式命令)

写在前面

写本文章的目的是自己在初学UICC相关规范时,发现网上相关资料甚少,且很多只是对规范的翻译,对于初学者来说不易于理解。所以在自己学习完毕并进行了一定的运用之后,就想写这么一篇文章,本文章旨在介绍102223规范在Smart Cards中的实际的应用,可以说是作者的学习总结,有讲的不对,不全面的地方,或者有疑问的同学欢迎一起讨论学习!(有需要标准规范的同学也可以私信我)

 一、CAT概述

1.1 背景

终端和SIM卡的通信遵循102221规范中的T=0协议(可以看我之前的文章)在该协议中,命令都是由终端发给SIM卡的,没有SIM卡发起与终端通信的机制。可以说这种情况下SIM卡永远是被动的,SIM卡需要主动请求终端的支持是不可能的。那么有没有一种方法可以让SIM卡作为主动的一方,去让终端完成某些功能呢?答案当然是肯定的---利用CAT机制。

无CAT机制的交互:

终端与SIM卡之间的交互,总是终端主动给SIM卡发出命令, 这意味着SIM卡是无法主动向终端发出命令。

1.2 CAT介绍

1.2.1 CAT概念

(Card Application Toolkit) 卡应用工具包, 提供了允许 UICC 中存在的应用程序与任何支持应用程序所需的特定机制的终端交互和操作的机制,使用户拥有个人化的附加业务(运营商提供的增值业务)。比如开机时的运营商欢迎标语,进入手机SIM业务中的菜单显示等功能。

CAT在不同时期也有很多叫法:

STK(SIM Application Toolkit),中文名为SIM卡应用工具包。

USAT:(USIM Application Toolkit ),3G SIM卡的STK功能。

对于现在来说基本上都是指向一个意思。

1.2.2 CAT实现机制

CAT初始化过程:支持 CAT 的终端应发送TERMINAL PROFILE C-APDU。支持 CAT 的 UICC 应返回响应状态字(SW1 SW2)‘90 00’或‘91 XX’(值“XX”表示响应数据的长度,终端应使用 FETCH 命令获取该数据)。如果返回任何其他值,认为终端不支持 CAT。

CAT允许UICC上的应用在卡会话(card session:用APDU连接卡与外部世界,从 ATR 开始,以随后的卡重置或停用结束)期间向终端发送命令,并接收响应。

proactive UICC session:相关 CAT 命令和响应的序列,以状态响应“91XX”(主动命令待定)开始,以终端响应后的状态响应“90 00”(命令正常结束)结束。

简单来说:

初始化后,当终端给SIM卡发送普通命令(如Status等)的时候,SIM卡的返回值可以是:我有一条主动式命令要发出(值为91XX)。当终端收到这个返回值时候,就立即发送Fetch命令给SIM卡,从而在SIM卡的返回值中获取到这条主动式命令。在终端执行完命令之后,需发送返回值给SIM卡。

1.3主要功能介绍

1.3.1 Profile download(配置文件下载)

配置文件下载(Profile download)为终端提供了一种机制,告诉UICC(SIM卡)终端自己支持的功能或者说自己拥有的能力。

1.3.2 Proactive UICC(主动式UICC命令)

主动式UICC命令(Proactive UICC)也就是我们本篇文章的重中之重,为UICC提供了一种机制,可以要求或指示终端执行一系列行为,包括但不限于:

displaying text from the UICC to the terminal;
让终端展示UICC想要展示的文本信息
sending a short message;
发送短信
setting up a voice call to a number held by the UICC;
为UICC电话号码(存在SIM卡中的)设置一个语音呼叫;
initiating a dialogue with the user;
启动与用户的对话;
requesting the terminal to launch the browser corresponding to a URL
请求终端启动与URL对应的浏览器
allowing the terminal to negotiate a poll interval
允许终端协商一个轮询间隔
还有很多功能在这里就不一一赘述了感兴趣的同学可以去看TS 102 223规范,文章在后面会详细讲解分析几个重要功能。

1.3.3 Data download to UICC(下载数据到UICC)

下载到UICC的数据可以使用专用命令(D1数据短信)或承载独立协议(BIP协议)。通过UICC终端接口的信息传输使用信封命令(ENVELOPE command)。

1.3.4 Menu selection(选择菜单)

UICC通过主动式命令(setup Menu)提供了一组可能的菜单条目。菜单选择机制用于将用户选择的UICC应用程序菜单项转移到UICC,也可用于请求关于UICC应用程序菜单的项的帮助信息。

通俗来说,Menu selection(菜单选择)一般和setup Menu(建立菜单)。UICC 使用setup Menu主动式命令来让终端展示一组菜单(比如sim快捷业务),而Menu selection就是用户选择了菜单的某个子项后再传递给UICC,UICC会根据选择的情况去再次要求终端的下一步动作。(是继续展示还是其他)

1.3.5 Call control by network access application(通过NAA的呼叫控制)

当此服务被NAA激活时(网络访问应用程序即Network Access Application的缩写),当USIM 卡激活这个业务后,所有拨出的数字串、补充业务控制字符串和USSD 字符串在终端建立呼叫、补充业务操作或USSD 操作前先传递给 USIM 卡。终端也应同时向USIM卡传递其当前服务区信息。
USIM 卡具有允许、禁止和修改呼叫、补充业务操作或 USSD 操作的能力。USIM 卡还具有用一个呼叫请求、补充业务操作或USSD 操作替换另一个呼叫请求补充业务操作或USSD 操作的能力。例如,一个呼叫请求可以被一个补充业务操作或USSD 操作替换,反之亦然。。

即当UICC和终端支持此项服务时,当终端收到一个呼叫请求时会发送给UICC处理,UICC根据其应用功能来决定是否允许这个呼叫请求或者做一定的修改。

1.3.6 Event download(事件下载)

UICC通过主动式命令提供了一组要监视的事件。事件下载机制用于在事件发生时将事件的详细信息传输到UICC。终端可以向UICC报告的事件包括传入呼叫、位置状态、访问技术、已更改的显示参数以及应用程序屏幕的可用性。

1.3.7 Timer expiration(计时器到期)

UICC能够通过一个主动的命令来管理在终端中实际运行的定时器。计时器过期机制用于在计时器过期时通知UICC。

1.3.8 Bearer Independent Protocol(BIP协议)

通过一组主动式命令(OPEN CHANNELCLOSE CHANNELSEND DATARECEIVEDATA 和GET CHANNEL STATUS)和事件(数据可用,信道状态),UICC 可以和终端建立一个数据通道,并通过 终端与网络中的一个远端服务器进行通信。终端根据 UICC 提供的信息在通道建立之时选择一个可用的承载。此后,终端允许UICC与其服务器在此通道上进行数据交换。
USIM卡通过向终端提供服务数据单元的方式,使用终端底层服务发送数据。默认底层是已选承载的高层。

简单来说,SIM卡引入了全新的BIP(Bearer Independent Pro

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王桶桶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值