Lync 的呼叫轉移

Lync裏面的一個很是重要的功能就是呼叫轉移了,具體的設置方法就是以下。用戶設置一個號碼,而後其它人呼叫該用戶的Lync號碼的時候,不管該用戶的Lync是在線仍是離線,呼叫永遠都是轉移到用戶設置在這裏的號碼。即使Lync客戶端離線了,呼叫也能夠轉移出去,這樣就一個呼叫都不會漏了。服務器

p_w_picpath

 

到這裏以爲都沒有問題,結果在測試的時候,你會發現這樣的轉移是不成功的。爲何?咱們首先來看看呼叫的流程網絡

 

p_w_picpath

 

手機用戶呼叫021-88881002,通過網關轉變成爲標準的E.164格式進入Lync,而後Lync用戶設置了把呼叫轉移到本身的手機18687654321,咱們先看看網關上收到的數據包。session

 

INVITE sip:18687654321@192.168.1.198;user=phone SIP/2.0
FROM: <sip:18912345678;phone-context=enterprise@lync2010.ucdemo.net;user=phone>;epid=6F3B6CC71C;tag=4d1a2de
TO: <sip:18687654321@192.168.1.198;user=phone>
CSEQ: 4 INVITE
CALL-ID: 348720d8-329b-45fb-a91c-605866583850
MAX-FORWARDS: 70
VIA: SIP/2.0/TCP 192.168.1.62:50044;branch=z9hG4bKeffed08c
CONTACT: <sip:Lync2010.ucdemo.net:5068;transport=Tcp;maddr=192.168.1.62;ms-opaque=55308d269ad5bea4>
CONTENT-LENGTH: 338
SUPPORTED: 100rel
USER-AGENT: RTCC/4.0.0.0 MediationServer
CONTENT-TYPE: application/sdp
ALLOW: ACK
Allow: CANCEL,BYE,INVITE,PRACK,UPDATE
 
v=0
o=- 5 1 IN IP4 192.168.1.62
s=session
c=IN IP4 192.168.1.62
b=CT:1000
t=0 0
m=audio 49226 RTP/AVP 97 101 13 0 8
c=IN IP4 192.168.1.62
a=rtcp:49227
a=label:Audio
a=sendrecv
a=rtpmap:97 RED/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=rtpmap:13 CN/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=ptime:20
 app

 

發現一個問題沒有?裏面沒有任何的關於021-88881002的信息,咱們能夠這麼理解,呼叫達到了Lync以後,Lync從新發起了一路對18687654321的呼叫,而呼叫的主叫則不是Lync用戶,而是本來呼入的手機號碼18912345678。這樣的邏輯倒是也對,由於18687654321上面應該顯示出主叫是18912345678。可是很遺憾的是,咱們國內不少地方的E1線路有一個很是嚴格的規定,要經過這條E1中繼線路發出呼叫,主叫方的號碼必須是你所擁有的DID號碼段內的號碼。因此這樣的呼叫是沒法經過E1呼出去的。tcp

 

解決問題的思路就是,針對Lync發起的這路呼叫,咱們須要把主叫號碼修改成Lync用戶的號碼,這樣的呼叫才能順利地進入運營商的網絡。而在這樣的狀況下,18687654321上面顯示的主叫號碼則是本身的座機號碼,有點怪,是否是?不過習慣就好。ide

 

要解決這個問題須要網關和Lync雙方共同完成。測試

第一步:首先須要Lync送出來的SIP invite帶着原始的Lync用戶信息,spa

第二步:網關根據這個信息進行相關信息的修改,而後再進行落地。.net

 

第一步的作法:xml

在中介服務器上修改:\Program Files\Microsoft Lync Server 2010\Mediation Server\MediationServerSvc.exe.config文件,填入以下的內容,其中192.168.1.198是網關的IP地址。

 

<?xml version=」1.0″ encoding=」utf-8″?>
<configuration>
<appSettings>
<add key=」192.168.1.198.ReferredBySupported」 value=」true」/>
</appSettings>
<runtime>
<generatePublisherEvidence enabled=」false」/>
</runtime>
</configuration>

 

p_w_picpath

 

而後從新啓動中介服務。

 

咱們在抓一個包看看,

INVITE sip:18687654321@192.168.1.198;user=phone SIP/2.0
FROM: <sip:18912345678;phone-context=enterprise@lync2010.ucdemo.net;user=phone>;epid=9B06D4BE71;tag=6f47a78d83
TO: <sip:18687654321@192.168.1.198;user=phone>
CSEQ: 7 INVITE
CALL-ID: ec6fb552-1a09-436c-8141-451b1e52dc5a
MAX-FORWARDS: 70
VIA: SIP/2.0/TCP 192.168.1.62:50603;branch=z9hG4bKb8a9fab
CONTACT: <sip:Lync2010.ucdemo.net:5068;transport=Tcp;maddr=192.168.1.62;ms-opaque=6d5c4f1bb489ae4e>
CONTENT-LENGTH: 338
REFERRED-BY: <tel:+862188881002>
SUPPORTED: 100rel
USER-AGENT: RTCC/4.0.0.0 MediationServer
CONTENT-TYPE: application/sdp
ALLOW: ACK
Allow: CANCEL,BYE,INVITE,PRACK,UPDATE
 
v=0
o=- 4 1 IN IP4 192.168.1.62
s=session
c=IN IP4 192.168.1.62
b=CT:1000
t=0 0
m=audio 53782 RTP/AVP 97 101 13 0 8
c=IN IP4 192.168.1.62
a=rtcp:53783
a=label:Audio
a=sendrecv
a=rtpmap:97 RED/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=rtpmap:13 CN/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=ptime:20
 
 

咱們會看到,前面的主叫和被叫都沒有什麼變化,可是裏面卻多了一行,REFERRED-BY: <tel:+862188881002> ,那接下來的工做就簡單不少了,讓網關完成這個轉換過程就能夠順利的把呼叫送出去了。在網關上要完成這個動做比較簡單,基本的思路就是取出REFERRED-BY而後替換Calling Number。

相關文章
相關標籤/搜索