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利用ElementTree实现快速解析XML文件

《Python利用ElementTree实现快速解析XML文件》ElementTree是Python标准库的一部分,而且是Python标准库中用于解析和操作XML数据的模块,下面小编就来和大家详细讲讲... 目录一、XML文件解析到底有多重要二、ElementTree快速入门1. 加载XML的两种方式2.

Spring 基于XML配置 bean管理 Bean-IOC的方法

《Spring基于XML配置bean管理Bean-IOC的方法》:本文主要介绍Spring基于XML配置bean管理Bean-IOC的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一... 目录一. spring学习的核心内容二. 基于 XML 配置 bean1. 通过类型来获取 bean2. 通过

Python中使用正则表达式精准匹配IP地址的案例

《Python中使用正则表达式精准匹配IP地址的案例》Python的正则表达式(re模块)是完成这个任务的利器,但你知道怎么写才能准确匹配各种合法的IP地址吗,今天我们就来详细探讨这个问题,感兴趣的朋... 目录为什么需要IP正则表达式?IP地址的基本结构基础正则表达式写法精确匹配0-255的数字验证IP地

使用Python将JSON,XML和YAML数据写入Excel文件

《使用Python将JSON,XML和YAML数据写入Excel文件》JSON、XML和YAML作为主流结构化数据格式,因其层次化表达能力和跨平台兼容性,已成为系统间数据交换的通用载体,本文将介绍如何... 目录如何使用python写入数据到Excel工作表用Python导入jsON数据到Excel工作表用

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