SIP:如何知道,通知是针对哪一项?
假设有以下对话框:SIP:如何知道,通知是针对哪一项?,sip,notify,refer,Sip,Notify,Refer,假设有以下对话框: Agent A Agent B | | | F1 REFER | |----------------------->| | F2 202 Accepted | |<-----------------------| | F3 NOTIFY | |<--------------------
Agent A Agent B
| |
| F1 REFER |
|----------------------->|
| F2 202 Accepted |
|<-----------------------|
| F3 NOTIFY |
|<-----------------------|
| F4 200 OK |
|----------------------->|
| |
| |
| |------->
| | (whatever)
| |<------
| |
| F5 NOTIFY |
|<-----------------------|
| F6 200 OK |
|----------------------->|
| |
| |
| |
| F7 REFER |
|----------------------->|
| F8 202 Accepted |
|<-----------------------|
| F9 NOTIFY |
|<-----------------------|
| F10 200 OK |
|----------------------->|
| |------->
| | (something different)
| |<------
| |
| F11 NOTIFY |
|<-----------------------|
| F12 200 OK |
|----------------------->|
| |
| |
代理A代理B
| |
|F1参考|
|----------------------->|
|F2202已接受|
|
||(随便什么)
| ||
|F8 202接受|
|
||(有些不同)
||来自同一RFC:
2.4.6对话框中的多个引用请求
引用创建共享对话框的隐式订阅
REFER请求中的标识符。如果发布了多个参考文件
在同一对话框中(第二次尝试转移对
例如),对话框标识符没有提供足够的信息
将结果NOTIFY与适当的REFER关联
因此,对于第二个和后续的REFER请求,UA以一种方式接收
给定对话框,它必须在事件头中包含id参数[2]
包含序列号的每个通知的字段(来自
引用此通知的CSeq标头字段值)关联
具有此id参数可以包含在第一个通知中
在给定对话框中引用UA接收。已发送订阅以刷新
或终止此订阅必须包含此id参数
NOTIFY sip:192.168.1.39:5062;transport=udp SIP/2.0
Via: SIP/2.0/UDP 192.168.1.249;rport=5060;branch=z9hG4bKyZ09F8gtB6rtQ;received=192.168.1.249
Max-Forwards: 70
From: "Extension 1200" <sip:1200@192.168.1.249>;tag=7ytSSBvaBeN5H
To: <sip:1201@192.168.1.39:5062>;tag=25b9a9ba-f249-4e21-a25a-c2ed578c5101
Call-ID: f94d6be3-edfc-122f-ebb0-000c29da7e39
CSeq: 25832274 NOTIFY
Contact: <sip:mod_sofia@192.168.1.249:5060>
User-Agent: FreeSWITCH-mod_sofia/1.0.head-git-5e4a514 2012-03-10 22-56-29 -0500
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,MESSAGE,UPDATE,INFO,REGISTER,REFER,NOTIFY,PUBLISH,SUBSCRIBE
Supported: timer,precondition,path,replaces
Event: refer;id=1
Allow-Events: talk,hold,presence,dialog,line-seize,call-info,sla,include-session-description,presence.winfo,message-summary,refer
Subscription-State: terminated;reason=noresource
Content-Type: message/sipfrag;version=2.0
Content-Length: 16
SIP/2.0 200 OK