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

相关文章

解决Nginx启动报错Job for nginx.service failed because the control process exited with error code问题

《解决Nginx启动报错Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode问题》Nginx启... 目录一、报错如下二、解决原因三、解决方式总结一、报错如下Job for nginx.service failed bec

Linux查询服务器 IP 地址的命令详解

《Linux查询服务器IP地址的命令详解》在服务器管理和网络运维中,快速准确地获取服务器的IP地址是一项基本但至关重要的技能,下面我们来看看Linux中查询服务器IP的相关命令使用吧... 目录一、hostname 命令:简单高效的 IP 查询工具命令详解实际应用技巧注意事项二、ip 命令:新一代网络配置全

MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)

《MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)》本文给大家介绍MyBatis的xml中字符串类型判空与非字符串类型判空处理方式,本文给大家介绍的非常详细,对大家的学习或... 目录完整 Hutool 写法版本对比优化为什么status变成Long?为什么 price 没事?怎

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 中的相