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

相关文章

SpringBoot中配置文件pom.xml的使用详解

《SpringBoot中配置文件pom.xml的使用详解》SpringBoot的pom.xml文件是Maven项目的核心配置文件,用于定义项目的依赖、插件、构建配置等信息,下面小编就来和大家详细介绍一... 目录1. 基本结构2. 关键部分详解2.1 <modelVersion>2.2 项目坐标2.3 <p

Linux系统中配置静态IP地址的详细步骤

《Linux系统中配置静态IP地址的详细步骤》本文详细介绍了在Linux系统中配置静态IP地址的五个步骤,包括打开终端、编辑网络配置文件、配置IP地址、保存并重启网络服务,这对于系统管理员和新手都极具... 目录步骤一:打开终端步骤二:编辑网络配置文件步骤三:配置静态IP地址步骤四:保存并关闭文件步骤五:重

Java实现XML与JSON的互相转换详解

《Java实现XML与JSON的互相转换详解》这篇文章主要为大家详细介绍了如何使用Java实现XML与JSON的互相转换,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. XML转jsON1.1 代码目的1.2 代码实现2. JSON转XML3. JSON转XML并输出成指定的

Linux配置IP地址的三种实现方式

《Linux配置IP地址的三种实现方式》:本文主要介绍Linux配置IP地址的三种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录环境RedHat9第一种安装 直接配置网卡文件第二种方式 nmcli(Networkmanager command-line

MyBatis-Plus中Service接口的lambdaUpdate用法及实例分析

《MyBatis-Plus中Service接口的lambdaUpdate用法及实例分析》本文将详细讲解MyBatis-Plus中的lambdaUpdate用法,并提供丰富的案例来帮助读者更好地理解和应... 目录深入探索MyBATis-Plus中Service接口的lambdaUpdate用法及示例案例背景

Linux虚拟机不显示IP地址的解决方法(亲测有效)

《Linux虚拟机不显示IP地址的解决方法(亲测有效)》本文主要介绍了通过VMware新装的Linux系统没有IP地址的解决方法,主要步骤包括:关闭虚拟机、打开VM虚拟网络编辑器、还原VMnet8或修... 目录前言步骤0.问题情况1.关闭虚拟机2.China编程打开VM虚拟网络编辑器3.1 方法一:点击还原VM

Maven pom.xml文件中build,plugin标签的使用小结

《Mavenpom.xml文件中build,plugin标签的使用小结》本文主要介绍了Mavenpom.xml文件中build,plugin标签的使用小结,文中通过示例代码介绍的非常详细,对大家的学... 目录<build> 标签Plugins插件<build> 标签<build> 标签是 pom.XML

Nginx实现动态封禁IP的步骤指南

《Nginx实现动态封禁IP的步骤指南》在日常的生产环境中,网站可能会遭遇恶意请求、DDoS攻击或其他有害的访问行为,为了应对这些情况,动态封禁IP是一项十分重要的安全策略,本篇博客将介绍如何通过NG... 目录1、简述2、实现方式3、使用 fail2ban 动态封禁3.1 安装 fail2ban3.2 配

C#中读取XML文件的四种常用方法

《C#中读取XML文件的四种常用方法》Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具,下面我们就来看看C#中读取XML文件的方法都有哪些吧... 目录XML简介格式C#读取XML文件方法使用XmlDocument使用XmlTextReader/XmlTextWr

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安