使用python发送sip协议的OPTIONS

这篇具有很好参考价值的文章主要介绍了使用python发送sip协议的OPTIONS。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

环境:Windows10_x64 
Python版本 :3.9.2
 
sip协议提供了OPTIONS请求方法可用于探测对端状态,今天记录下Windows10环境下使用python3.9简单实现sip协议的options功能(udp承载)的过程,并提供示例代码及相关资源下载,可从如下渠道获取:
关注微信公众号(聊聊博文,文末可扫码)后回复 20230624 获取。 

一、背景描述

sip协议提供了OPTIONS请求方法,可实现如下功能:
1)查询对端能力;
2)检测对端状态(类似ping的功能);
3)NAT会话保活;
4)探测网元数量;
其中,检测对端状态用的比较多,主要用于探测对端服务是否正常。
sip OPTIONS的定义及描述,可参考rfc 3261:
https://www.rfc-editor.org/rfc/rfc3261.html

使用python发送sip协议的OPTIONS

二、运行效果

这里演示下使用python发送sip协议的OPTIONS的运行效果,使用FreeSWITCH对接,分为正常探测和异常处理。

1、正常探测 

可以在控制台开启sip日志来观察:
sofia global siptrace on

使用python发送sip协议的OPTIONS

2、异常情况

在控制台关闭freeswitch后,查看脚本运行状态,脚本使用了异常处理,可以处理timeout异常。

使用python发送sip协议的OPTIONS

运行效果演示视频获取途径:
关注微信公众号(聊聊博文,文末可扫码)后回复 2023062401 获取。 

三、具体实现

这里列举下关键点,并提供示例代码。

1、python实现的关键点

1)协议模板
根据rfc定义的OPTIONS格式,生成python中使用的消息模板:
OPTIONS sip:{dstSipHost}:{dstSipPort} SIP/2.0
Via: SIP/2.0/UDP {srcSipHost}:{srcSipPort};rport;branch={branchId}
Max-Forwards: 70
From: <sip:{srcSipHost}>;tag={tagId}
To: <sip:{dstSipHost}>
Call-ID: {callId}
CSeq: {cseqNum} OPTIONS
User-Agent: myChecker
Content-Length: 0
2)sequence号
需要注意返回消息的CSeq值是否和发送的一致。
3)探测周期
太快和太慢都不好,具体数值根据应用的实际情况调整。
4)socket需要设置超时
可通过 settimeout 函数进行设置,具体参考python的socket文档。

2、示例代码

使用python发送sip协议的OPTIONS

完整示例代码获取途径:

关注微信公众号(聊聊博文,文末可扫码)后回复 20230624 获取。 

四、资源下载

 本文涉及源码和文件,可以从如下途径获取:
关注微信公众号(聊聊博文,文末可扫码)后回复 20230624 获取。 

使用python发送sip协议的OPTIONS文章来源地址https://www.toymoban.com/news/detail-498163.html

到了这里,关于使用python发送sip协议的OPTIONS的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • GB28181协议--SIP协议介绍

      SIP(Session Initiation Protocol,会话初始协议)是一个用于建立、更改和终止多媒体会话的应用层控制协议,其中的会话可以是IP电话、多媒体会话或多媒体会议(GB28181安防使用的是SIP协议)。SIP是IETF多媒体数据和控制体系结构的核心协议。其主要目的是为了解决IP网中的信

    2023年04月23日
    浏览(43)
  • SIP 协议的主要流程

    目录 目录 SIP 协议的呼叫模型图 基本呼叫建立流程 基本呼叫拆除流程 经过代理的呼叫建立流程 经过代理的呼叫拆除流程 SIP 协议在软交换 SoftX3000(华为推出的一个支持sip协议的交换机设备) 流程图 sip注册过程: 注销sip过程 使用soft3000的呼叫过程 SIP 协议的呼叫模型图  MG

    2024年02月15日
    浏览(40)
  • SIP协议及其简单介绍

    SIP(Session Initiation Protocol,会话初始化协议)是一个应用层协议,用于在互联网上创建、修改和终止多媒体会话。SIP是一个客户端/服务器协议,允许在不同终端设备之间建立实时通信,包括语音、视频、消息等。SIP也可以用于呼叫控制和呼叫管理。 SIP协议的流程如下: SIP客

    2024年02月11日
    浏览(35)
  • python request大批量发送请求调用接口时,报错:[WinError 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。

    接到一个项目需求,其中需要调用到供应商的Http  API,因为有大量的测试资源,所以代码中会循环调用API。 然而在测试代码执行过程中,过程中偶尔报错:  此时看到报错,怀疑是可能是同时并发的问题, 但实际上并未对该接口进行限制,所以应该不是这个的问题, 进一

    2023年04月10日
    浏览(70)
  • windows10中安装和使用ROS2+python

    ROS称为机器人操作系统,是开发智能机器人的极具生产力的工具,主要用于仿真验证、代码部署。ROS已经从ROS1发展到ROS2,而ROS2才真正实现了分布式通信。如果现在开始学的话,建议最好直接上手ROS2。ROS2支持多开发语言,当然了,在算法开发语言中,Python绝对是一个最佳的

    2024年02月10日
    浏览(40)
  • 001.Python3.10+Pycharm2022.2环境搭建、pip使用

    直接百度搜索“ Python官网下载 ”,进入Python官网: 直接在Python官网里面指定的地方点击下载: 等待下载完成,然后双击运行: 接下来,一系列的安装过程: 等待安装完成: 打开cmd,输入 python ,出现下面这样,就表示Python解释器安装成功了; 直接百度搜索“Pycharm官网下

    2024年02月10日
    浏览(59)
  • Anaconda创建与使用Python版本虚拟环境(windows)

    我司工作软件scons和python2.7版本匹配,脚本开发环境是python3较合适。由于两个环境不兼容,刚开始我装2个环境切换,后使用Anaconda的虚拟环境。 一、简述:Anaconda基于conda包+环境管理器+开源库,便捷获取并管理库,特点:开源免费、安装简单、高性能使用python。 conda:核心功

    2024年02月10日
    浏览(56)
  • 使用SMTP协议发送邮件

    剧情介绍 今天心血来潮,学了一下Python3,里面有个章节是发送邮件,用示例里面的代码,运行后报错,然后记录一下问题是如何解决的,大家可以看一下,可以有效避坑。 SMTP简介 SMTP是一种提供可靠且有效的电子邮件传输的协议。SMTP是建立在FTP文件传输服务上的一种邮件服

    2024年02月05日
    浏览(66)
  • Windows10+OpenCL环境配置

    一.查看自己电脑的显卡配置支不支持OpenCL 方法1:我的电脑用的是intel的显卡,具体查看方式:桌面右键 → 英特尔显卡设置 → 选项与支持打开英特尔® 显卡控制中心。如果找不到,尝试方法2 方法 2:Windows 开始菜单 在 Windows 开始菜单中 键入 英特尔显卡。找到 英特尔® 显卡

    2024年02月13日
    浏览(34)
  • Windows10环境下安装FSCAN

    今天想在windows环境下安装FSCAN扫描器,但是出现了很多问题,花费了很多时间,今天,我把我的安装疑惑和解决过程总结以下,希望能帮助到一样迷茫的小伙伴。 首先,因为fscan是用go语言编译的。所以电脑需要go语言环境,所以,第一步是给电脑安装一个go语言环境 首先,在

    2024年01月17日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包