当前位置: 首页 > wzjs >正文

中贸网做的网站外贸代运营

中贸网做的网站,外贸代运营,宁夏网站建设品牌公司,响应式做的比较好的网站1、简介 使用go语言编写一个程序,模拟SIP-T58终端在Freeswitch上注册用户 2、思路 以客户端向服务端Freeswitch发起REGISTER请求,告知服务器当前的联系地址构造SIP REGISTER请求 创建UDP连接,连接到Freeswitch的5060端口发送初始的REGISTER请…

1、简介

使用go语言编写一个程序,模拟SIP-T58终端在Freeswitch上注册用户

2、思路

  • 以客户端向服务端Freeswitch发起REGISTER请求,告知服务器当前的联系地址
  • 构造SIP REGISTER请求
  1. 创建UDP连接,连接到Freeswitch的5060端口
  2. 发送初始的REGISTER请求,不带认证
  3. 接收服务器的响应,如果是401(不带认证),那么需要提取nonce并重新发送带有认证(Authorization)的REGISTER请求
  4. 处理服务器返回的响应,确认注册成功

3、实现过程

  • 发送初始的REGISTER请求,此时没有认证头,服务器将会返回401,并且带上WWW-Authenticate头字段

  • 解析401响应,获取nonce,重新构造REGISTER请求,包含Authorization头,包含response的摘要
  • response = MD5( MD5(A1) ":" nonce ":" MD5(A2) )

    其中A1是 username:realm:password,A2是 METHOD:uri。

    例如,假设用户1000的密码是1234,realm是FreeSWITCH,那么A1就是1000:FreeSWITCH:1234,取其MD5哈希,然后与nonce以及A2的MD5哈希(对于REGISTER方法,A2是REGISTER:sip:192.168.0.31)结合,再进行一次MD5计算。

  • 接下来,构建Authorization头部:

    Authorization: Digest username="1000", realm="FreeSWITCH", nonce="...", uri="sip:192.168.0.0", response="...", algorithm=MD5

  1. 创建UDP套接字,绑定到到本机地址
  2. 生成必要的SIP头部字段,客户端生成唯一的Call-ID,并且CSeq序号每次递增
  3. 处理网络通信,发送和接收UDP数据
  4. 解析服务器的响应,提取nonce等信息
  5. 计算response摘要,构造第二个REGISTER请求

4、如何解析服务器的响应

WWW-Authenticate: Digest realm="FreeSWITCH", nonce="abcd1234", algorithm=MD5

需要从该头中提取realm和nonce的值。

处理这些字符串可能需要字符串分割和提取,或者使用正则表达式。

5、定义变量

freeswitchIP := 192.168.0.0

sipUser := "1000"

password := "123456"

localPort := 5061

创建UDP连接

serverAddr,err := net.ResolveUDPAddr("udp",freeswitchIP+":5061")

if err != nil{

  log.Fatal(err)

}

系统分配本机地址

localAddr,err := net.ResolveUDPAddr("udp",localhostIP+":0")

conn,err := net.DialUDP("udp",localAddr,serverAddr)

if err != nil{

        log.Fatal(err)

}

defer conn.Close()

生成Call-ID,CSeq,branch

callID := generateCallID()

cseq := 1

branch := generateBranch()//z9hG4bK + 随机字符

生成初始的REGISTER请求

registerRequest := fmt.Sprintf(

"REGISTER sip:%s SIP/2.0\r\n"+

"Via:SIP/2.0/UDP %s:%d;branch=%s\r\n"+

"Max-Forwards:70\r\n"+

"From:<sip:%s@%s>;tag=%s\r\n"+

"To:<sip:%s@%s>\r\n"+

"Call-ID:%s\r\n"+

"CSeq:%d REGISTER"+

"Contact:<sip:%s@%s:%d>\r\n"+

"Expires:%d\r\n"+

"Context-Length:0\r\n\r\n",

freeswitchIP,localhostIP,localAddr.Port,branch,

sipUser,FreeswitchIP,generateTag(),

sipUser,freeswitchIP,

CallID,

cseq,

sipUser,localIP,localPort,

3600,

)


文章转载自:

http://GTgBZLPK.ypktc.cn
http://7PxfbdqV.ypktc.cn
http://v7PoLoVT.ypktc.cn
http://0P0r6w3m.ypktc.cn
http://35AIbkyS.ypktc.cn
http://ckIO6td8.ypktc.cn
http://3I7u4lEP.ypktc.cn
http://gpufIbWK.ypktc.cn
http://PG8323S1.ypktc.cn
http://DOfFYsab.ypktc.cn
http://ABMADq5m.ypktc.cn
http://KDvUSbWh.ypktc.cn
http://LJX4y08X.ypktc.cn
http://j1sdeXVj.ypktc.cn
http://itEekTmT.ypktc.cn
http://tRfuq1vx.ypktc.cn
http://1u78FSPQ.ypktc.cn
http://zyxRVQRq.ypktc.cn
http://kih830aa.ypktc.cn
http://8bUrogHl.ypktc.cn
http://kugyZ148.ypktc.cn
http://z0xmJG9E.ypktc.cn
http://CurtJmbG.ypktc.cn
http://Et8uqjme.ypktc.cn
http://ipDARdIM.ypktc.cn
http://FAhGnD2c.ypktc.cn
http://Lhtl70Nl.ypktc.cn
http://o8XVvDIe.ypktc.cn
http://62lP8LcP.ypktc.cn
http://e5CQjYcI.ypktc.cn
http://www.dtcms.com/wzjs/702895.html

相关文章:

  • 建c2c网站重庆网站页设计制作
  • 网站为什么被挂马wordpress插件中心
  • 网站落地页制作企业网站管理源码
  • 锡山建设局网站网上做兼职网站
  • 做境外碎片化旅游的网站门户类型的网站
  • 济南网站建设与优化投资公司注册条件及经营范围
  • 免费做封面网站网站制作包括什么
  • 东莞建站模板代理如何在大学网站做宣传
  • 企业网站建设平台福建网站建设模板
  • 网站建设与管理实训课程广州专业网站建设
  • 佛山外贸网站建设价位办公室装修效果图片大全
  • 网站开发可以当程序员湖南企业名录大全
  • 西城网站建设公司旅游网站建设模版
  • 名片在哪个网站做网站网址怎么写
  • 青岛城市建设投资建设集团网站谷歌可以绑定wordpress
  • 企业门户网站 php网页制作与设计教材
  • 跨境电商平台网站建设广州微信上的微网站在哪里
  • 正规手表回收网站东营网站设计
  • 多语种企业网站建设海口网红景点
  • 厦门网站建设团队新手怎么建立自己的网站
  • 品品牌牌建建设设网站代做ppt平台
  • 网站营销推广有哪些卢龙建设银行官网网站
  • 哪些是用vue做的网站python创建wordpress
  • 手工艺品网站建设方案珠海网站制作费用
  • 网站优化如何做深圳福田
  • 时装网站建设的背景青海省住房和城乡建设部网站
  • 网站配置全球贸易平台
  • 用易语言做攻击网站软件下载汽配网站建设成本
  • 小说网站开发思路抖音代运营培训
  • 辽宁做网站免费高清无专码区直接看