SIPgo:一个基于GO语言开发的SIP协议支持库,提供更快的SIP服务能力

目前,市场上关于开源的SIP项目很多,绝大部分使用的是C语言开发,但是C语言在互联网应用部署方面有不少局限性。最近几年,Go语言比较火,在互联网部署开发方面突飞猛进,基于Go语言的很多应用也应运而生。

SIPgo:一个基于GO语言开发的SIP协议支持库,提供更快的SIP服务能力

sipgo是一个基于GO语言开发的SIP协议支持库,为SIP服务提供更快速的SIP服务。它附带了经过优化,用于快速解析的SIP协议栈(RFC 3261|RFC3581)。

基于sipgo开发的新业务库,包括:

diago:

github.com/emiago/diago: 完整的VOIP库/框架,带有媒体协议栈

sipgox 

github.com/emiago/sipgox: 用于快速构建SIP电话或SIP助手(建议切换到Diago),支持命令行执行注册,Invite等命令。

使用方式,通过Go直接获取:

go get github.com/emiago/sipgo

支持的协议包括目前主流的:

  • UDP
  • TCP
  • TLS
  • WS
  • WSS

SIP应用示例包括:

  • Stateful proxy 
  • Register with authentication 
  • RTP echo with sipgox 

基于SIPgo开发的GOPHONE, 软电话,通过命令呼叫:

gophone dial -media=audio sip:alice@sip.dev.server:5060

此软电话还支持windows环境,用户直接下载安装,linux版本参考安装命令。更多使用命令:

$>gophone -hUsage of gophone command:
Commands:  dial          Dial destination.  answer        Answer call  register      Send register request only without answer.
  -t string      Transport udp|tcp|tls|ws|wss (default "udp")
Enviroment variables:  LOG_LEVEL=debug|info|error            Log level for output. Default=info  LOG_FORMAT=json|console               Log format for output. Default=console  LOG_NOCOLOR                           Disable color  SIP_DEBUG                             LOG SIP traffic. Used with LOG_LEVEL=debug  RTP_DEBUG                             LOG RTP traffic. Used with LOG_LEVEL=debug  RTCP_DEBUG                            LOG RTCP traffic. Used with LOG_LEVEL=debug  GOPHONE_MEDIA=<same as -media>        Sets default media in case of calls

gophone is CLI SIP softphone powered by sipgo library.To find more information about tool and licences visithttps://github.com/emiago/gophone
Answer:gophone answer -l 127.0.0.200:5060 gophone answer -l 127.0.0.200:5060 -code 486 -reason Busy
Answer with register:gophone  answer -ua alice -username alice1234 -password 1234 -register "127.0.0.1:5060"
Dial:gophone dial sip:1234@127.0.0.200:5060gophone dial -sipheader="X-AccountId:test123" sip:1234@server:5060
Register:gophone register -username=sipgo -password=1234 127.0.0.1:5060 
With digest authentication:gophone dial -ua alice -username=alice1234 -password=1234 "sip:echo@server:5060"
With media:gophone dial -media=audio sip:1234@localhost:5060gophone dial -media=mic sip:1234@localhost:5060gophone answer -media=speaker
With transcribe:gophone dial -media=log -transcribe sip:1234@localhost:5060
With DTMF:gophone dial -dtmf=79 -dtmf_delay=8s -dtmf_digit_delay=1s -media=speaker sip:1234@localhost:5060
With INTERACTIVE mode:echo "wait=3s; dtmf=123; hangup;" | gophone dial -i -media=speaker sip:demo@127.0.0.1:5060

SIPGo以及基于此项目开发的支持库链接:

https://emiago.github.io/diago/

https://github.com/emiago/sipgo

版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。

(0)

相关推荐

发表回复

登录后才能评论