一种智能卡大容量电话本来电显示方法

文档序号:7656180阅读:97来源:国知局

专利名称::一种智能卡大容量电话本来电显示方法
技术领域
:本发明涉及移动终端与智能卡应用,具体涉及一种智能卡大容量电话本来电显示方法。
背景技术
:随着智能卡技术的发展,智能卡的容量已经有了大幅度提高,可以达到M级,甚至G级。这样,在智能卡中存储的电话条目也就随之相应增加。传统的,当发生电话呼入时,移动通信终端可以从智能卡6F3A文件所对应的254条电话记录中读出与此电话号码对应的信息(如姓名)并显示出来。但是受ISO/IEC7816-4和GSM11.11协议的限制,当来电号码超出此254条数据空间时,移动通信终端则无法使用传统的APDU命令访问到大容量电话本中的其余电话条目,也因此无法完成姓名等信息的查询和显示。当前,大部分移动通信终端在开机上电时,可以将智能卡中的电话本数据导入到移动通信终端中,这样,在移动通信终端上对智能卡电话本记录的操作时,实际上都是在移动通信终端上完成的。但是,当智能卡电话本条目较大时,其占用的容量也比较大,比如5000条电话本记录,可以多达5M字节。这样一来,对于移动通信终端来讲,要一次性地将多达几M字节的电话本数据导入到内存中,这对其有限的内存资源消耗将显著提高;其次,所需的时间也会非常长,甚至长达几十分钟之久;更重要的是移动通信终端在电话本导入后,需对其进行排序、建立索引等工作,当电话本容量或电话条目比较多时,会导致其处理时间过长、功耗过大。由此可见,按照目前的方法是无法有效解决智能卡大容量电话本的访问问题的。此外,随着智能卡容量的增加,在智能卡电话本里存储的内容也不再仅限于电话号码和个人姓名等内容,名片式的电话本开始引到智能卡中。这样,每条电话条目的内容可以包括姓名、移动手机号码、办公电话号码、家庭电话号码等众多信息。采用传统的APDU电话本访问方式一次只能获取一个电话号码-姓名对,无法满足多种个人信息的个性化显示。因此,有必要改进智能卡电话本的访问方法,以支持其大容量电话本的个性化来电显示。同时,在本发明申请人在先申请"一种移动终端与智能卡之间的大容量数据交换方法"中,发明人描述了采用APDU命令传递数据的方法可以作为解决本发明申请问题的基础。
发明内容本发明需要解决的技术问题是提供一种智能卡大容量电话本来电显示方法,实现大容量电话本号码簿记录实时査询和来电显示。本发明的上述技术问题这样解决,提供一种智能卡大容量电话本来电显示方法,包括1.1)电话呼入时,移动终端获取主叫号码并将其和査询指令传递给智能卡;1.2)智能卡识别并根据所述主叫号码和査询指令查询其大容量电话本并返回正确执行或错误执行结果;1.3)移动终端根据所述错误执行结果直接显示主叫号码,或者根据所述正确执行结果获取査询结果并显示所述査询结果。按照本发明提供的显示方法,所述査询指令是APDU命令,所述步骤l.l)中传递通过所述APDU命令携带自定义结构的数据来实现。按照本发明提供的显示方法,所述数据包括所述主叫号码以及与所述査询指令对应的操作码和操作类型。按照本发明提供的显示方法,所述主叫号码的数据格式可以是长度-号码格式,包括ASCII编码的电话号码长度和ASCII编码的电话号码。按照本发明提供的显示方法,所述步骤l.l)中进一步通过数据交换文件来实现,所述数据还包括专用协议令牌或者重定义的所述APDU命令中的参数。按照本发明提供的显示方法,所述APDU命令可以是更新二进制UPDATEBINARYAPDU命令。按照本发明提供的显示方法,所述步骤1.2)中识别包括通过作为所述数据交换文件名的标准文件名与所述协议令牌或者所述重定义的APDU命令中的参数配合以识别标准APDU命令或专用APDU命令,以及进一步通过所述自定义结构的数据识别是来电显示查询操作;所述步骤1.2)中返回错误执行结果是返回错误执行所述APDU命令的响应;所述步骤1.2)中返回正确执行结果包括将查询结果写入所述数据交换文件并返回正确执行所述APDU命令的响应;所述查询结果包括査询获得的与所述主叫号码匹配的信息或者没有查询到与所述主叫号码匹配的信息。按照本发明提供的显示方法,所述步骤1.3)中获取查询结果包括移动终端(1)根据接收的所述正确执行结果发送读取指令,智能卡(2)接收并识别所述读取指令,将査询结果返回给移动终端;所述步骤1.3)中移动终端显示所述查询结果包括移动终端显示所述主叫号码和与所述主叫号码匹配的信息或者只显示所述主叫号码。按照本发明提供的显示方法,所述读取指令是读二进制READBINARYAPDU命令;所述读取指令的识别包括通过作为所述数据交换文件名的标准文件名与操作参数配合以识别是读取所述数据交换文件的读取指令。按照本发明提供的显示方法,所述操作参数包括重定义的所述读二进制READBINARYAPDU命令中的参数或者所述査询指令设置的参数。按照本发明提供的显示方法,所述大容量电话本的记录大于254条。本发明提供的一种智能卡大容量电话本来电显示方法,与现有技术相比有以下明显的效果1)移动通信终端无需进行硬件改动就可以访问智能卡内的大容量电话本;2)移动通信终端可以实时查询、显示智能卡内大容量电话簿中超过254条记录的记录信息,提高其可用性。下面结合附图和具体实施例进一步对本发明进行详细说明。图1为本发明工作原理图2本发明的详细工作流程图3为本发明的智能卡内部执行来电查询的流程图;图4为本发明的智能卡将査询结果返回终端的流程图。具体实施例方式首先,说明本发明工作原理,如图1所示,具体包括101)移动终端1获取主叫号码并利用APDU命令传递该主叫号码和对应查询指令;102)智能卡2获取该主叫号码和对应査询指令査询大容量电话本相关数据;103)智能卡2返回相关数据;104)移动终端1显示相关数据。第二步,简要说明本发明基础(数据传输的基本原理)移动通信终端与智能卡之间采用ISO/IEC7816-4和/或GSM11.11协议进行通信,其中GSM11.11协议是ISO/IEC7816协议在GSM系统的具体应用。ISO/IEC7816-4是主从结构、命令响应式的协议。APDU分为命令APDU和响应APDU两类。由主机端向智能卡发出命令APDU;智能卡接受命令APDU后,执行命令并返回响应APDU。命令APDU包括一个必备的4字节的命令头(CLA、INS、Pl、P2)和一个可选的可变长度的数据体(Lc、Data、Le),如下所示<table>tableseeoriginaldocumentpage7</column></row><table>命令头为命令的编码。其中,Lc为体内数据(Data)的长度;Data为发送的数据;Le是期望中应答APDU数据字段的最大字节数。当Le=0时,表示请求送回最大应答数据字节数,如Le为1字节长度,则最大数据字节数为256。命令APDU命令头中的各字节的含义为CLA:指令类别,GSM11.11规定,OxAO用于GSM应用;INS:指令代码;Pl、P2:指令的参数,Pl、P2的含义和具体指令相关。在GSM应用中,对ISO/IEC7816-4的命令APDU格式进行了精简,其命令APDU的格式如下<table>tableseeoriginaldocumentpage8</column></row><table>其中,P3表示指令中送给SIM卡的数据长度,或是表示等待从卡响应的数据最大长度。响应APDU由可变长度的数据体(可选的)和2字节尾部(必备的)组成,如下所示<table>tableseeoriginaldocumentpage8</column></row><table>其中,数据体的字节数由命令APDU的Le指出。Data是接收设备(如智能卡)接收命令APDU并进行处理后送回发送设备(如接口设备)的数据。尾部SW1和SW2为状态代码,各一个字节,指示命令执行的结果正确与否。从上面的分析可以看出,无论是命令APDU,还是响应APDU,其数据体(Data)都可以用于传输数据。第三步,说明本发明实现的主要关键点(-)根据GSM11.11规定,标准的APDU命令具有特定的含义,因此,本发明所设计应用的命令和数据传输必须以不影响标准定义的正常功能为前提。目前,在本发明申请人在先申请"一种移动终端与智能卡之间的大容量数据交换方法"中一种采用APDU协议封装来进行数据传输的新方法已经被提出。在这种方法中智能卡可以根据特定的协议令牌判断是进行APDU命令本身含义所表明的操作,还是依照APDU命令中封装的专用命令来进行操作或响应。本发明申请人的另一在先申请"移动应用与智能卡之间的专用数据通道建立方法"中提出了对APDU指令中的参数进行重新定义从而建立数据传输通道,利用该数据通道,智能卡可以对封装的APDU命令按照专用命令进行处理。利用这些方法,发送端(既可以是移动通信终端,也可以是智能卡)先对所要操作的数据(如电话号码、姓名等)及其操作类型(如査询操作)进行协议封装,然后利用标准的APDU命令,采用读写文件的方式传输封装后的数据包,接收端收到数据包后,对其拆包、解析并执行相应操作。(二)大容量电话本的内容/条目可以采用多种数据结构表示,如二进制文件、记录文件等,其具体的实现方法不在本
发明内容之列,此处不予说明。无论其采用何种实现方式和存储格式,在传输过程中均可以将电话条目视作通用数据,然后再在移动通信终端上使用约定的数据结构对其进行解析。曰考虑到不同的移动通信终端所采用和支持的SIM卡文件类型可能不一样,因此,这种采用APDU协议封装进行数据传输的新方法利用GSM标准、强制性的文件作为数据交换文件,以保证所有的移动通信终端都能兼容。同时,为了避免与协议规定的文件及其操作方式发生冲突,不影响标准文件本身的功能,同时采用虚拟映射的方式,即利用标准文件的文件名作为识别标识,实际的读写操作则在智能卡内部文件上进行处理,不对真实的标准文件进行操作。最后,结合本发明优化实施例(以大容量SIM卡和采用WindowsMobile操作系统的智能移动通信终端为例)进一步详细说明本发明-(-)WindowsMobile操作系统其提供了SIMManagerAPI来实现终端与SIM卡的数据交互。在simmgr.h头文件中定义了部分函数,用于从SIM卡获取信息,这些函数按功能进行分类,主要包括安全、电话簿、短信、文件等几大类。其中,与SIM卡进行数据交换的函数主要有电话簿、短信、记录/文件三类。电话本、短信两类函数主要是针对特定的数据结构(电话簿、短信)提供出来的,采用标准的APDU命令来实现,无法访问超过254条记录之外的大容量电话本,也不适合传输自定义的数据结构。如需传输自定义结构的数据,采用记录/文件类操作函数比较合适。WindowsMobile系统支持ISO/IEC7816-4和GSM11.11规定的多种基本文件结构,包括透明文件从接口看到的文件是一个数据单元序列;线性定长记录文件具有固定长度记录的线性文件;线性不定长记录文件具有可变长度记录的线性文件;具有固定长度记录的循环文件;除了透明文件外,其它几类文件的数据结构均具有特定的含义,不便于传输自定义结构的数据。因此,本发明采用读/写/更新透明文件的方式(READBINARY和UPDATEBINARY命令)来实现数据交换。如果传输的数据量超过一次APDU命令可传送的最大数据量限制时,则通过连续多次的操作来实现大容量数据的交换。该APDU命令的具体格式如下<table>tableseeoriginaldocumentpage10</column></row><table>在WindowsMobile系统中,上述APDU命令被封装成SimReadRecord和SimWriteRecord两个函数,为简明起见,下面仍以GSM协议中的APDU命令为例进行说明。(二)如前所述,本发明所指的来电显示是指当有电话呼叫时,将该号码有关的信息,例如姓名、来电类型等,显示在移动通信终端用户显示界面上。由于标准的ISO/IEC7816接口速度比较慢,不可能一次性地将大容量电话本导入到移动通信终端中,因此,本发明采用从智能卡大容量电话本中实时查询该号码相关信息的方法,工作原理如图1所示,详细工作流程如图2所示。当有电话呼叫(呼入/呼出)时,移动通信终端1获取呼叫号码数据,并通过查询指令将其发送给智能卡2。査询指令是一条APDU指令,它是通过对UPDATEBINARY指令的数据体进行扩充来实现号码数据的传输和查询,其格式如下<table>tableseeoriginaldocumentpage10</column></row><table><table>tableseeoriginaldocumentpage11</column></row><table>其中Zl、Z2为专用协议令牌。"XX"占1个字节,表示操作码;"YY"占1个字节,表示操作类型,二者合起来就定义了具体的命令操作。如对电话本进行査询操作,XX=OxAA,YY=0x01。LV即长度-号码格式,L代表电话号码(ASCII码)的长度,V为电话号码的ACSII码。这里采用ASCII码和LV格式作为电话号码的数据格式是为了方便智能卡内部处理,也可以根据需要,采用其它数据格式。在另一个实施例中,査询指令是一条APDU指令,它是通过对UPDATEBINARYAPDU命令中的参数重定义以及对数据体进行扩充来实现号码数据的传输和査询,其格式如下<table>tableseeoriginaldocumentpage11</column></row><table>其中Zl、Z2和Z3是对APDU命令参数重定义的约定数值,从而区分经过封装的专用APDU和标准的APDU命令。"XX"占1个字节,表示操作码;"YY"占1个字节,表示操作类型,二者合起来就定义了具体的命令操作。如对电话本进行査询操作,XX=0xAA,YY=0x01。LV即长度-号码格式,L代表电话号码(ASCII码)的长度,V为电话号码的ACSII码。这里采用ASCII码和LV格式作为电话号码的数据格式是为了方便智能卡内部处理,也可以根据需要,采用其它数据格式。考虑到由于不同移动通信终端所支持的SIM卡文件结构不同可能带来的不兼容,本发明借用标准文件名作为数据交换文件名,如GSM11.11协议中的0x6F39。为了避免与协议规定的文件及其操作方式发生冲突,在APDU命令的数据体中定义了专用协议令牌或者通过对APDU命令中的参数重新定义,配合文件名一起作为操作识别标识。一方面便于智能卡内部应用对其不同的功能和操作进行重定义和解释;另一方面也减少了与标准apdu命令操作的冲突。同时在智能卡内采用标准文将名作为数据交换文件名,用于存储真实数据的文件与标准文件名进行映射,避免了对标准文件的任意操作和改写。智能卡2接收到査询命令后,根据作为数据交换文件名的标准文件名和专用协议令牌或命令中的参数是约定的数值识别此命令是针对数据交换文件的特定操作,进一步通过APDU命令中自定义的操作码和操作类型识别是来电显示査询操作,因此,不采用标准APDU命令处理流程,而是转为由本发明的号码查询软件来处理。其流程如图3所示。号码查询软件从APDU命令数据体中获取电话号码后,在大容量电话本中査询,如果查询到与主叫号码匹配的信息(包括姓名、来电类型等),就将查询结果写入数据交换文件中,如果没有査询到与主叫号码匹配的信息,就将约定的数值,例如FF,写入数据交换文件,然后智能卡向终端返回正确执行本次操作的响应,例如响应的状态字SW1SW2是9000,等待移动通信终端再次发送APDU指令来读取査询结果。数据的查询可以采用链表査询、对分査询等成熟的方法。如果智能卡执行査询指令出错,也就是APDU命令处理非正常结束,智能卡向终端返回错误执行本次操作的响应,例如响应的状态字SW1SW2不是9000。移动终端1获得正确执行的响应命令后,发送读取文件的APDU命令,从智能卡中获得相关数据。如果所要读取的数据超过一条APDU可传送的最大数据量限制时,可以采用多次连续读取的方式来实现。在一种实施方式中,读取文件的APDU命令可采用标准的READBINARYAPDU命令,格式如下所示。<table>tableseeoriginaldocumentpage12</column></row><table>其中Zl、Z2和Z3是APDU命令参数重定义的约定数值,例如FF,FF和FF,从而区分读取数据交换文件的专用APDU和标准的APDU命令。智能卡将查询结果返回终端的流程如图4所示,智能卡接收READBINARYAPDU命令,通过作为数据交换文件名的标准文件名和操作参数配合识别读取数据交换文件的操作,即判断数据交换文件名是否是约定的标准文件名,以及操作参数是否是约定的数值,然后通过READBINARYAPDU命令响应将来电显示的查询结果传送到终端。其中,操作参数包括上述查询指令操作时设置的参数或者是重定义的READBINARYAPDU命令的参数。最后,终端使用约定的数据结构对査询结果进行解析、显示,从而实现来电显示的目的,终端根据读取的数据交换文件的数据显示与主叫号码匹配的姓名等信息,或者如果智能卡没有査询到与主叫号码匹配的信息,则终端根据数据交换文件中的数据,例如约定数值FF,只显示所述主叫号码。权利要求1、一种智能卡大容量电话本来电显示方法,其特征在于,包括步骤1.1)电话呼入时,移动终端(1)获取主叫号码并将其和查询指令传递给智能卡(2);1.2)智能卡识别并(2)根据所述主叫号码和查询指令查询其大容量电话本并返回正确执行或错误执行结果;1.3)移动终端(1)根据所述错误执行结果直接显示主叫号码,或者根据所述正确执行结果获取查询结果并显示所述查询结果。2、根据权利要求1所述显示方法,其特征在于,所述査询指令是APDU命令,所述步骤l.l)中的传递是通过所述APDU命令携带自定义结构的数据来实现。3、根据权利要求2所述显示方法,其特征在于,所述数据包括所述主叫号码以及与所述查询指令对应的操作码和操作类型。4、根据权利要求3所述显示方法,其特征在于,所述主叫号码的数据格式可以是长度-号码格式,包括ASCII编码的电话号码长度和ASCII编码的电话号码。5、根据权利要求2或3所述显示方法,其特征在于,所述步骤1.1)中进一步通过数据交换文件来实现,所述数据还包括专用协议令牌或者重定义的所述APDU命令中的参数。6、根据权利要求2所述显示方法,其特征在于,所述APDU命令可以是更新二进制UPDATEBINARYAPDU命令。7、根据权利要求5所述显示方法,其特征在于,所述步骤L2)中识别包括通过作为所述数据交换文件名的标准文件名与所述协议令牌或者所述重定义的APDU命令中的参数配合以识别标准APDU命令或专用APDU命令,以及进一步通过所述自定义结构的数据识别是来电显示査询操作;所述步骤1.2)中返回错误执行结果是返回错误执行所述APDU命令的响应;所述步骤1.2)中返回正确执行结果包括将査询结果写入数据交换文件并返回正确执行所述APDU命令的响应,所述査询结果包括查询获得的与所述主叫号码匹配的信息或者没有査询到与所述主叫号码匹配的信息。8、根据权利要求7所述显示方法,其特征在于,所述步骤1.3)中获取査询结果包括移动终端(l)根据接收的所述正确执行结果发送读取指令,智能卡(2)接收并识别所述读取指令,返回对应命令响应,将査询结果返回给移动终端;所述步骤1.3)中移动终端显示所述查询结果包括移动终端显示所述主叫号码和与所述主叫号码匹配的信息或者只显示所述主叫号码。9、根据权利要求8所述显示方法,其特征在于,所述读取指令是读二进制READBINARYAPDU命令;所述读取指令的识别包括通过作为所述数据交换文件名的标准文件名与操作参数配合以识别是读取所述数据交换文件的读取指令。10、根据权利要求9所述显示方法,其特征在于,所述操作参数包括重定义的所述读二进制READBINARYAPDU命令中的参数或者所述査询指令设置的参数。全文摘要本发明涉及一种智能卡大容量电话本来电显示方法,包括电话呼入时,移动终端(1)获取主叫号码并将其和查询指令传递给智能卡(2);智能卡识别并根据所述主叫号码和查询指令查询其大容量电话本并返回正确执行或错误执行结果;移动终端根据所述错误执行结果直接显示主叫号码,或者根据所述正确执行结果获取查询结果并显示所述查询结果,显示所述查询结果包括移动终端显示所述主叫号码和与所述主叫号码匹配的信息或者只显示所述主叫号码。这种方法可以实时查询、显示智能卡内大容量电话簿中超过254条记录的记录信息,提高其可用性并无须修改终端硬件。文档编号H04M1/02GK101394616SQ200710121850公开日2009年3月25日申请日期2007年9月17日优先权日2007年9月17日发明者溯张,曹维国,杨延辉,潘志勇,黄正全申请人:凤凰微电子(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1