本文主要是介绍Sip协议(三)- 通话接听流程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Sip协议(三)- 通话接听流程
本文主要记录下sip通信下接听的流程.
一: 接听流程
- agent接听电话
- 远端在未接听情况下主动挂断电话.
接听流程涉及到的请求有: INVITE,CANCEL,ACK,BYE
具体的过程如下:
二: sip过程
-
agent收到INVITE
INVITE sip:1000@10.0.0.1:10000;transport=tcp SIP/2.0 Via: SIP/2.0/TCP 10.0.0.1:5060;branch=z9hG4bKxxxx;rport=5060 Route: <sip:1000@124.64.0.1:10988>;transport=tcp Max-Forwards: 70 From: "Extension 1001" <sip:1001@172.17.0.1>;tag=Q79QQcg41UBpe To: <sip:1000@10.0.0.1:10000;transport=tcp> Call-ID: e040d830-a8aa-123d-0a8e-11111111111b CSeq: 84836083 INVITE Contact: <sip:mod_sofia@10.0.0.1:5060;transport=tcp> User-Agent: FreeSWITCH-mod_sofia/1.10.10-release~64bit Allow: INVITE, ACK, BYE, CANCEL, OPTIONS, MESSAGE, INFO, UPDATE, REGISTER, REFER, NOTIFY, PUBLISH, SUBSCRIBE Supported: path, replaces Allow-Events: talk, hold, conference, presence, as-feature-event, dialog, line-seize, call-info, sla, include-session-description, presence.winfo, message-summary, refer Content-Type: application/sdp Content-Disposition: session Content-Length: 426 X-voice_call_number: 18300000000 X-empolyee_id: 1001 X-FS-Support: update_display,send_info Remote-Party-ID: "Extension 1001" <sip:1001@172.17.0.1>;party=calling;screen=yes;privacy=offv=0 o=FreeSWITCH 1718762975 1718762976 IN IP4 10.0.0.1 s=FreeSWITCH c=IN IP4 10.0.0.1 t=0 0 m=audio 16776 RTP/AVP 9 0 8 101 a=rtpmap:9 G722/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 a=ptime:20 m=video 16862 RTP/AVP 102 b=AS:3072 a=rtpmap:102 VP8/90000 a=rtcp-fb:102 ccm fir a=rtcp-fb:102 ccm tmmbr a=rtcp-fb:102 nack a=rtcp-fb:102 nack pli
-
agent发起 Trying 100
SIP/2.0 100 Trying Via: SIP/2.0/TCP 10.0.0.1:5060;branch=z9hG4bK1111;rport=5060 To: <sip:1000@10.0.0.1:10000;transport=tcp> From: "Extension 1001" <sip:1001@172.17.0.1>;tag=027KZHpcBFDXH Call-ID: 42ed1f48-a8ac-123d-0a8e-11111111111a CSeq: 84836381 INVITE Server: AgentTest/1.0.0/V2318A Content-Length: 0
-
agent发起请求 Ringing 180
180: 振铃中.
SIP/2.0 180 RingingVia: SIP/2.0/TCP 10.0.0.1:5060;branch=z9hG4bKgvtvc29HgQZ5e;rport=5060To: <sip:1000@10.0.0.1:10000;transport=tcp>;tag=ec6c9cb5b93df28eFrom: "Extension 1001" <sip:1001@172.17.0.1>;tag=027KZHpcBFDXHCall-ID: 42ed1f48-a8ac-123d-0a8e-11111111111aCSeq: 84836381 INVITEServer: AgentTest/1.0.0/V2318AContent-Length: 204Content-Type: application/sdpv=0o=1000@10.0.0.1 0 0 IN IP4 10.239.19.29s=Session SIP/SDPc=IN IP4 10.239.19.29t=0 0m=audio 21000 RTP/AVP 8 101a=rtpmap:8 PCMA/8000a=rtpmap:101 telephone-event/8000a=fmtp:101 0-15
-
agent接收到CANCEL请求
CANCEL sip:1000@10.0.0.1:10000;transport=tcp SIP/2.0 Via: SIP/2.0/TCP 10.0.0.1:5060;branch=z9hG4bKgvtvc29HgQZ5e;rport=5060 Route: <sip:1000@124.64.22.13:10988>;transport=tcp Max-Forwards: 70 From: "Extension 1001" <sip:1001@172.17.0.1>;tag=027KZHpcBFDXH To: <sip:1000@10.0.0.1:10000;transport=tcp> Call-ID: 42ed1f48-a8ac-123d-0a8e-11111111111a CSeq: 84836381 CANCEL Reason: SIP;cause=487;text="ORIGINATOR_CANCEL" Content-Length: 0
-
agent回执 200
SIP/2.0 200 OK Via: SIP/2.0/TCP 10.0.0.1:5060;branch=z9hG4bKgvtvc29HgQZ5e;rport=5060 To: <sip:1000@10.0.0.1:10000;transport=tcp> From: "Extension 1001" <sip:1001@172.17.0.1>;tag=027KZHpcBFDXH Call-ID: 42ed1f48-a8ac-123d-0a8e-11111111111a CSeq: 84836381 CANCEL Server: AgentTest/1.0.0/V2318A Content-Length: 0
-
agent回执487
487: Request Terminated 请求被BYE或者CANCEL所终止.
SIP/2.0 487 Request TerminatedVia: SIP/2.0/TCP 10.0.0.1:5060;branch=z9hG4bKgvtvc29HgQZ5e;rport=5060To: <sip:1000@10.0.0.1:10000;transport=tcp>From: "Extension 1001" <sip:1001@172.17.0.1>;tag=027KZHpcBFDXHCall-ID: 42ed1f48-a8ac-123d-0a8e-11111111111aCSeq: 84836381 INVITEServer: AgentTest/1.0.0/V2318AContent-Length: 0
这篇关于Sip协议(三)- 通话接听流程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!