【GBT28181开发:SIP协议实践】之设备目录查询-程序员宅基地

技术标签: 网络  

下面学习的是设备目录查询的流程,和设备信息的流程差不多,主要是描述的协议字段不同,模拟SPVMN系统向源设备查询其设备目录,记录下交互的消息,详细研究了下:

转载请注明出处:http://blog.csdn.net/longlong530

 

一.环境搭建:

环境准备:http://blog.csdn.net/longlong530/article/details/9176989

UAC(模拟IPC):

IP:192.168.10.177(同事人不在~,直接用自己的机子模拟了下)

Port:5061

 

UAS(模拟SIP服务器):

 

IP:192.168.10.177

Port:5060

 

SPVMN操作过程:
1.先选择调测设备类型
3.点击设备目录查询,会在左边的文本框中显示xml。
4.点击发送消息,右边对话框即可显示消息交互的过程。
5. 弹出目录信息查询结果:
 
二.业务时序图:
 

 
三.消息详解:
 
第一步,UAS-->UAC
设备目录查询命令同样是采用Message消息
Content-type头域为Application/MANSCDP+xml,设备目录查询命令采用MANSCDP协议格式,具体参见GBT28181国标。
请求命令包含命令类型(CmdType)、命令序列号(SN)、设备编码(DeviceID)
[plain]  view plain copy print ?
 
  1. MESSAGE sip:34020000001320000001@3402000000 SIP/2.0  
  2. Call-ID: [email protected]  
  3. CSeq: 1 MESSAGE  
  4. From: <sip:34020000002000000001@3402000000>;tag=08052615_53173353_7e47bbc7-c29c-4299-803b-71f7367975bb  
  5. To: <sip:34020000001320000001@3402000000>  
  6. Max-Forwards: 70  
  7. Content-Type: Application/MANSCDP+xml  
  8. Route: <sip:[email protected]:5061;line=5c2d93a668f3d3b;lr>  
  9. Via: SIP/2.0/UDP 192.168.10.177:5060;branch=z9hG4bK7e47bbc7-c29c-4299-803b-71f7367975bb_53173353_9686809251402  
  10. Content-Length: 125  
  11.   
  12. <?xml version="1.0"?>  
  13. <Query>  
  14. <CmdType>Catalog</CmdType>  
  15. <SN>248</SN>  
  16. <DeviceID>34020000001320000001</DeviceID>  
  17. </Query>  

第二步,UAC-->UAS
UAC收到请求后,立马返回200 0K响应
[plain]  view plain copy print ?
 
  1. SIP/2.0 200 OK  
  2. Via: SIP/2.0/UDP 192.168.10.177:5060;branch=z9hG4bK7e47bbc7-c29c-4299-803b-71f7367975bb_53173353_9686809251402  
  3. From: <sip:34020000002000000001@3402000000>;tag=08052615_53173353_7e47bbc7-c29c-4299-803b-71f7367975bb  
  4. To: <sip:34020000001320000001@3402000000>;tag=883575767  
  5. Call-ID: [email protected]  
  6. CSeq: 1 MESSAGE  
  7. User-Agent: eXosip/3.6.0  
  8. Content-Length: 0  

第三步,UAC-->UAS
源设备响应服务器的设备信息查询请求,同样采用MANSCDP协议,返回目录相关信息
 
[plain]  view plain copy print ?
 
  1. MESSAGE sip:[email protected] SIP/2.0  
  2. Via: SIP/2.0/UDP 192.168.10.177:5061;rport=5061;branch=z9hG4bK3917727870;received=192.168.10.177  
  3. From: <sip:192.168.10.177:5060>;tag=2228745831  
  4. To: <sip:[email protected]>  
  5. Call-ID: 3993662053  
  6. CSeq: 20 MESSAGE  
  7. Content-Type: Application/MANSCDP+xml  
  8. Max-Forwards: 70  
  9. User-Agent: eXosip/3.6.0  
  10. Content-Length: 877  
  11.   
  12. <?xml version="1.0"?>  
  13. <Response>  
  14. <CmdType>Catalog</CmdType>  
  15. <SN>248</SN>  
  16. <DeviceID>34020000001320000001</DeviceID>  
  17. <SumNum>1</SumNum>  
  18. <DeviceList Num="1">  
  19. <Item>  
  20. <DeviceID>34020000001320000001</DeviceID>  
  21. <Name>IPC</Name>  
  22. <Manufacturer>ChaoYuan</Manufacturer>  
  23. <Model>TEST001</Model>  
  24. <Owner>Owner1</Owner>  
  25. <CivilCode>CivilCode1</CivilCode>  
  26. <Block>Block1</Block>  
  27. <Address>Address1</Address>  
  28. <Parental>0</Parental>  
  29. <ParentID>34020000001320000001</ParentID>  
  30. <SafetyWay>0</SafetyWay>  
  31. <RegisterWay>1</RegisterWay>  
  32. <CertNum>CertNum1</CertNum>  
  33. <Certifiable>0</Certifiable>  
  34. <ErrCode>400</ErrCode>  
  35. <EndTime>2099-12-31T23:59:59</EndTime>  
  36. <Secrecy>0</Secrecy>  
  37. <IPAddress>192.168.10.117</IPAddress>  
  38. <Port>6000</Port>  
  39. <Password>Password1</Password>  
  40. <Status>OK</Status>  
  41. <Longitude>171.3</Longitude>  
  42. <Latitude>34.2</Latitude>  
  43. </Item>  
  44. </DeviceList>  
  45. </Response>  

第四步,UAS-->UAC
服务器收到响应后,立马返回200 OK响应,整个查询业务结束。
[plain]  view plain copy print ?
 
  1. SIP/2.0 200 OK  
  2. To: <sip:[email protected]>;tag=26545395_53173353_019caa42-43f0-4b6c-a07f-a9c2bfa80f34  
  3. Via: SIP/2.0/UDP 192.168.10.177:5061;rport=5061;branch=z9hG4bK3917727870;received=192.168.10.177  
  4. CSeq: 20 MESSAGE  
  5. Call-ID: 3993662053  
  6. From: <sip:192.168.10.177:5060>;tag=2228745831  
  7. Content-Length: 0  

转自:http://blog.csdn.net/longlong530/article/details/9186539

转载于:https://www.cnblogs.com/wilderhorse/p/3317646.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30808575/article/details/96307019

智能推荐

(转载)java synchronized详解-程序员宅基地

文章浏览阅读422次。java synchronized详解记下来,很重要。Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块..._java make synchronized invalid

Android 多种投屏神器(Vysor,Total Control,scrcpy )-程序员宅基地

文章浏览阅读1.9w次,点赞6次,收藏32次。一,Vysor1,Vysor特点及优点特点或者说优点:极强的跨平台性能,Mac、Windows、Linux系统上都可以用;免费;无需Android系统Root 即可玩转电脑控制Android 设备;2,官网https://www.vysor.io/3,使用3.1,Win客户端(建议使用)直接下载windows客户端安装,运行就可以使用,使用也很简单,可以通过局域网和数据线连接Android设备,然后实现投屏;3.2,Chrome浏览器3.2.1,从官网Download进入_total control

Java反射机制_object o3 = m; object o4 = n; system.out.println(o-程序员宅基地

文章浏览阅读144次。概念:在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为 Java 语言的反射机制。简单来说,反射机制指的是程序在运行时能够获取自身的信息。在 Java 中,只要给定类的名字,就可以通过反射机制来获得类的所有信息。类的加载机制:new 对象()1.JVM加载对象.class文件1.1JVM在硬盘找对象.class文件并读取到内存中1.2JVM自动创建..._object o3 = m; object o4 = n; system.out.println(o3 == o4)

NDK各个版本,待后续更新_android-ndk-r10e和ndk 29差别-程序员宅基地

文章浏览阅读414次。ndk_r15c (July 2017)Windows 32-bit :https://dl.google.com/android/repository/android-ndk-r15c-windows-x86.zipWindows 64-bit :https://dl.google.com/android/repository/android-ndk-r15c-windows-x86_64.zipMac OS X :https://dl.google.com/android/repositor_android-ndk-r10e和ndk 29差别

Linux常用命令—grep_linux命令+grep-程序员宅基地

文章浏览阅读4.1k次,点赞3次,收藏16次。简介grep命令(Global Regular Expression Print)是 Linux系统中一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来 。grep 是linux中最为常用的三大文本(awk,sed,grep)处理工具之一,所以有必要掌握其用法。grep家族总共有三个成员构成:grep、egrep、fgrep。使用格式grep [选项] ..._linux命令+grep

关于the selection cannot be run on any server错误的问题,如何快速的解决。-程序员宅基地

文章浏览阅读3.9w次,点赞29次,收藏121次。最近在导入外来项目时,遇到了一个难题,就是出现了图中的错误。the selection cannot be run on any server(无法在任何服务器上运行所选内容)这个错误的原因在于Dynamic Web Module 的版本与server不匹配。Dynamic Web Module的版本可以通过右键项目名-&gt;properties-&gt;Project Facets可以..._the selection cannot be run on any server

随便推点

Cookie,会话,令牌-程序员宅基地

文章浏览阅读804次。会话cookieAre you new to web-development, feeling confused with different Web Storage elements? 您是Web开发的新手,对不同的Web存储元素感到困惑吗? If yes, then you are at the right place This article will give you a brief e..._会话和令牌

Linux查找文本中指定字符的小技巧_linux查找指定字符后的数据-程序员宅基地

文章浏览阅读3.6k次。在Linux的vi编辑器中,如果要查看指定文件中的某项内容,由于内容过于庞大,可以打开vi编辑器后再打一个【/】,括号中间的字符,然后输入你要查找的字符这样就可以找到你需要的字符了,方便我们查看大容量的日志文件。_linux查找指定字符后的数据

编译chromium 总结_<includepath>$(includepath);$(dxsdk_dir)include</i-程序员宅基地

文章浏览阅读2.5k次。编译chromium 总结http://www.chromium.org/developers/how-tos/build-instructions-windows这是官网的详细地址,但我只用他的说明还不够 可以参考这篇文章http://blog.sina.com.cn/s/blog_41608ead0101578b.htmlwin7+vs2010+vs2010SP1+DIR_$(includepath);$(dxsdk_dir)include

Struts-笔记-2-程序员宅基地

文章浏览阅读61次。2 .搭建Struts开发环境 2.1 搭建环境l 导入jar 包。 Add Library 导入jar包 l 建立一个配置文件:struts-config.xml &lt...

【杭电oj】1872 - 稳定排序(结构体排序)_wygoj-程序员宅基地

文章浏览阅读695次。稳定排序Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4632 Accepted Submission(s): 1802Problem Description大家都知道,快速排序是不稳定的排序方法。_wygoj

Java中 GC是什么_gc钱包是干嘛的?-程序员宅基地

文章浏览阅读2.3w次,点赞9次,收藏17次。Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,在使用JAVA的时候,一般不需要专门编写内存回收和垃圾清理代 码。这是因为在Java虚拟机中,存在自动内存管理和垃圾清扫机制。电脑的内存大小的不变的,当我们使用对象的时候,如使用New关键字的时候,就会在内存中生产一个对象,但是我们在使用JAVA开发的时候,当一个对象使用完_gc钱包是干嘛的?

推荐文章

热门文章

相关标签