BREW SDK 九大功能之电信服务

版权声明:本文为半吊子子全栈工匠(wireless_com,同公众号)原创文章,未经允许不得转载。 https://blog.csdn.net/wireless_com/article/details/6507737

能够直接提供电信服务是BREW技术的一大特色。BREW中支持的电信服务主要是指语音业务,以及附加业务短消息功能,蓝牙通信功能,小区多播通信功能等等。在BREW3.X之前,语音和短信功能都可以通过ITAPI接口来提供,在BREW 3.X及以上版本,这一方法同样有限。

ITAPI 是一个简单的设备通话层接口。 它可提供以下服务: 获取通话状态,安排语音呼叫,从 SMS 消息中提取 SMS 文本 ,获取进入或正在呼叫的主叫号码 ,注册 SMS 消息,发送 SMS 消息等功能。ITAPI 允许应用程序注册以下通知: NMASK_TAPI_STATUS,NMASK_TAPI_SMS_TEXT和NMASK_TAPI_SMS_TS。

应用程序通过ITAPI接口可以接收 SMS 消息:

1. 目标为 BREW 应用的定向 SMS 消息,发送形式为 //BREW:<ClassID>:<消息> 。在指定目标应用的ClassID 时,ITAPI_SendSMS() 将消息内部进行格式化操作

2. 所有文本消息

3. 所有特定电信业务 ID 的消息

4. 所有具有特定前缀的文本消息

其中,接收指向应用程序的SMS不需要注册,作为 EVT_APP_MESSAGE 事件接收,dwParam 包含指向短信有效负载的指针,该有效负载可作为 char * pszMsgTxt = (char *)dwParam。

对于访问接收任意文本消息,应用程序必须使用 NMASK_TAPI_SMS_TEXT 掩码注册 TAPI 类,作为 EVT_NOTIFY 事件接收,其中 dwParam 包含指向 AEENotify 的指针。消息可作为 AEENotify * pNotify = (AEENotify*)dwParam; AEESMSTextMsg * pTextMsg = (AEESMSTextMsg*)pNotify->pData; 

如果接收特定电信业务消息,应用程序必须使用以下掩码 uint32 mask = (NMASK_TAPI_SMS_TS |(SMS_TELESERVICE_ID << 16)) 进行注册,作为 EVT_NOTIFY 事件接收,其中 dwParam 包含指向 AEENotify 的指针 消息可作为 AEENotify * pNotify = (AEENotify*)dwParam; AEESMSMsg *pMsg = (AEESMSMsg *)pNotify->pData;

如果访问接收具有特定前缀的文本消息: 消息格式为 //<SMS_Prefix>:<Message_Text> 应用程序必须注册为 <SMS_Prefix> 的处理程序 ,作为 EVT_APP_BROWSE_URL 接收。dwParam 包含指向 //<SMS_Prefix>:<Message_Text> 的指针。

通过BREW中的ITAPI可以获知设备状态的更改,通过NMASK_TAPI_STATUS掩码, 只要设备的通话状态发生变化,应用程序都可以使用 TAPI 类获得通知。只要状态发生变化,应用程序就会收到 EVT_NOTIFY 事件。 此事件的 dwParam 为 AEENotify 类型。 此 AEENotify 结构内的 pData 成员属于 TAPIStatus 类型,并包含设备当前通话状态的详细信息。

            BREW 3.x专门为短信提供了新的接口ISMSMsg,ISMS,ISMSNotifier,和ISMSStorage  新接口完整实现了短信协议TIA-EIA-637-A,而旧接口仅部分实现此协议。就短信发送而言,新接口主要支持下面三种编码格式:

l  ASCII     - 单位:字节,   最大长度:160

l  UNCODE - 单位:双字节,最大长度:70

l  BINARY   - 单位:字节,   最大长度:140

原有接口仅支持一种编码格式,由AEE_DEVICEITEM_TAPI_SMS_ENCODING指定。就短信接收而言,新接口可以得到更多信息:短信内容/编码格式,发送方号码,短信中心接收到短信的时刻等,而旧接口仅能得到短信内容。ISMSStorage  & ISMSStorage2用来存储,读取,删除和更新短信。存储的类型包括RUIM卡和手机自身。

BREW 3.X及以上版本还提供了对一般语音付、蓝牙和WIFI的完整支持,使应用可以获得更广泛的通信能力。

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wireless_com/archive/2010/04/07/5456725.aspx

上一篇:阿里云Kubernetes平台构建和管理实践(下)


下一篇:迁移 HazelCast 到 Redis