Cisco IP Phone XML Service 開發手記

2023-10-11 09:48

本文主要是介绍Cisco IP Phone XML Service 開發手記,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

開篇,忍不住親切地問候一下錢伯斯他大爺!

 

Tip:這篇日誌沒有連續性,都是隨筆,不存在任何的上下文關聯。

 

Cisco在IP Phone對XML Service的支持上明顯有某種目的,SCCP固件的電話對XML支持的是最好的,完全符合SDK 4.1的標準。

而手工刷成SIP固件的電話,就要看電話機的型號了。新型的可能支持的還好些,舊型號就很糟糕了。應該是還停留在SDK 3的時代。

 

我手裡有兩台CP7960,只不過一台刷了SIP,另一台是SCCP,二者固件版本均為最新。

在開發程序的時候,還要不斷地協調這兩台電話的瀏覽器對於xml兼容的問題,真是要害死人了呢!

關於SDK的差異,顯而易見,比如缺少對SoftKey的支持,這個太鬧心了。不過可以使用MenuItem來替代一下,也算是一個不是辦法的辦法。

 

其他的,說一些隱性的問題。在做MenuItem的時候,URL帶參數。在SIP話機上,這個參數千萬不要是“id”。我懷疑這是一個保留字?總之帶了這個參數的URL,肯定會被在那個?之前被截斷,參數根本別想發到服務器。不過,在SCCP話機上卻完全沒有這個問題。

 

再有就是MenuItem不支持回車符號啦之類的,反正Cisco很明顯就是在限制SIP話機的功能,逼著大家都去爽CUCM!

 

再一點,就是沒有CUCM的情況下,不容易判斷話機的身份。其實這個也不是太困難,話機在訪問XML Service首頁的時候,會把自己的序列號SEPXXXXXXXXXXXX(X是MAC地址),以頁面參數的形式發送給服務器。服務器在處理頁面的時候留意一下這個querystring,就可以知道是哪台話機在請求服務了。

不過請求XML Service首頁之外的其他頁面就不會有這個參數了。參數傳遞沒必要非得用cookies,直接用querystring傳參。

 

============================================

 

上面说了,Cisco IP话机访问XML Service的首页时,会把自己的串号以name这个querystring提交上去,但是如果从XML Service中的其他页面,通过某些元素(MenuItem或者Softkey)回到XML Service的首页,则不会带有name这个querystring,因此如果需要传递参数,需要手工添加。

 

============================================

 

另外,SCCP的话机对于长字串的支持显然是没有SIP的好,不知这又是为何??

比如,在MenuItem中,尽管SIP的话机不支持换行符,但是可以显示很多的内容(我尚未严格测试,不过显示三行是可行的);而SCCP话机如果显示超出两行,就会报XML错误。

再者就是输入文字的时候,SCCP话机仅能输入32个字(比老式的手机短讯还少耶),而SIP话机能输入更多的字符(未经严格测试,不过50个字符还是没问题的)。

针对这些差异,今天不得不又把程序调整了一下,以针对不同话机提供更合适的服务。

这篇关于Cisco IP Phone XML Service 開發手記的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/187183

相关文章

python删除xml中的w:ascii属性的步骤

《python删除xml中的w:ascii属性的步骤》使用xml.etree.ElementTree删除WordXML中w:ascii属性,需注册命名空间并定位rFonts元素,通过del操作删除属... 可以使用python的XML.etree.ElementTree模块通过以下步骤删除XML中的w:as

XML重复查询一条Sql语句的解决方法

《XML重复查询一条Sql语句的解决方法》文章分析了XML重复查询与日志失效问题,指出因DTO缺少@Data注解导致日志无法格式化、空指针风险及参数穿透,进而引发性能灾难,解决方案为在Controll... 目录一、核心问题:从SQL重复执行到日志失效二、根因剖析:DTO断裂引发的级联故障三、解决方案:修复

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志

《SpringBoot项目配置logback-spring.xml屏蔽特定路径的日志》在SpringBoot项目中,使用logback-spring.xml配置屏蔽特定路径的日志有两种常用方式,文中的... 目录方案一:基础配置(直接关闭目标路径日志)方案二:结合 Spring Profile 按环境屏蔽关

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP

mybatis的mapper对应的xml写法及配置详解

《mybatis的mapper对应的xml写法及配置详解》这篇文章给大家介绍mybatis的mapper对应的xml写法及配置详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录前置mapper 对应 XML 基础配置mapper 对应 xml 复杂配置Mapper 中的相

java中XML的使用全过程

《java中XML的使用全过程》:本文主要介绍java中XML的使用全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录什么是XML特点XML作用XML的编写语法基本语法特殊字符编写约束XML的书写格式DTD文档schema文档解析XML的方法​​DOM解析XM

Java根据IP地址实现归属地获取

《Java根据IP地址实现归属地获取》Ip2region是一个离线IP地址定位库和IP定位数据管理框架,这篇文章主要为大家详细介绍了Java如何使用Ip2region实现根据IP地址获取归属地,感兴趣... 目录一、使用Ip2region离线获取1、Ip2region简介2、导包3、下编程载xdb文件4、J

浅析如何使用xstream实现javaBean与xml互转

《浅析如何使用xstream实现javaBean与xml互转》XStream是一个用于将Java对象与XML之间进行转换的库,它非常简单易用,下面将详细介绍如何使用XStream实现JavaBean与... 目录1. 引入依赖2. 定义 JavaBean3. JavaBean 转 XML4. XML 转 J