李思銳 voip_taiwan@yahoo.com.tw VoIP系統與SIP協定 李思銳 voip_taiwan@yahoo.com.tw.

Slides:



Advertisements
Similar presentations
南投縣教育網路專案 建置說明 2016/7/11 D-Link Taiwan 台中技術支援課 工程師 林俊佑 #23 Version 1.03.
Advertisements

校園資訊安全與防火牆架設 嘉義市育人國小 黃士騰.
动态网站开发 【HTTP与网络基础】 李博杰
Rfc3315 Dynamic Host Configuration Protocol for IPv6 (DHCPv6) 組員: 蔡承翰 A 陳鈺璋 A 翁菘㠙 A 指導老師 吳俊興.
高雄縣網路電話建置經驗與規畫考量 溫桂誠 May 12,2009.
實驗 9: 無線安全網路之建設.
中国科学技术大学 肖 明 军 《网络信息安全》 中国科学技术大学 肖 明 军
校園網路電話專案 基隆市建置說明 D-Link Taiwan DTSS 謝元博 #8667
基隆市校園寬頻有線及無線網路環境 (NGN) 語音交換伺服器暨週邊設備建置簡報 瑪凱電信 VoIP 事業部 經理 何茂誠
UBLink集團 裕笠科技股份有限公司 遠豐科技股份有限公司 鉅創科技股份有限公司
VOIP應用 與進度推廣 臺東大學電算中心 洪守成.
校園網路管理實電務 電子計算機中心 謝進利.
Netman Linux 的防火牆設計與應用 Netman
Subversion (SVN) Presented by 李明璋 R /2/21
宽带路由器配置与应用.
网络地址转换(NAT) 及其实现.
SIP 体系架构.
医学仪器中的嵌入式系统设计  T06.WinCE 网络与通信
Linux.
NAT-PT (Network Address Translation-Protocol Translation)
传输层是整个协议层次的核心,其任务是在源机器和目标机器之间提供可靠的、性价比合理的数据传输功能,并与当前所使用的物理网络完全独立
李思銳 VoIP系統與SIP協定 李思銳
利用 ISA Server 2004 建置應用層防護機制
第7讲 多媒体网络 本讲概述: 本讲目标: 多媒体的网络应用 了解多媒体网络的应用要求 存储式音频/视频流 交互式的实时应用
第二章 跨交换机的VLAN通讯 Version 1.0.
網路安全技術期末報告 Proxy Server
SIP 封包擷取實驗.
TCP協定 (傳輸層).
AA SIP协议原理 2.0 此为固网课程专用的封面页。.
Linux 圖形操作介面 GUI -- X-window 與 Webmin
2018/11/22 SIP to Freshman.
P2P通信之 ——UDP穿越NAT方案的讨论
大连理工大学网络中心 冯刚 基于IPv6的SIP移动性研究 大连理工大学网络中心 冯刚 CERNET 2005 DaLian.
SIP消息之 逐项讲解.
SIP协议 翁彦
MOSA 4600 全分散架構下 之 IP-PBX.
視訊會議系統簡易使用手冊 (HDX系列).
VoIP integrate compuse PSTN-PBX with SIP/ENUM/IVR
實驗 一 : RTP 實驗目的 實作部分 了解如何利用RTP在網路上傳送語音封包 加深對RTP、RTCP封包的基本格式的認識
第 2 章 TCP / IP 簡介.
Stress Test Tool for SIP
SIP之 穿越NAT.
Windows 2003 server 進階介紹 麋鹿.
TCP/IP介紹 講師:陳育良 2018/12/28.
江西财经大学信息管理学院 《组网技术》课程组
第5單元 實習1 ilon10 setup.
校園網路電話專案 建置說明 2019/1/2 D-Link Taiwan Version 1.03.
作業二 : SIP User Mobility 實驗目的 實作部分
3G核心網路期末報告 Mobile IPv6 for Linux實作
NetCom 4600 全分散架構下 之 IP-PBX.
第二章 防火墙基础技术.
SIP协议 Sip协议基本介绍 ..
SIP与H.323互通的研究 研究生选题报告 Research on Interworking between SIP and H.323
Westmont College 网络互连 Part 4 (传输协议, UDP and TCP, 协议端口)
Web Server 王宏瑾.
Firewall-pfsense Mars Su
臺東縣網路電話建置說明 縣網中心 2013.
實驗目的: 明瞭DHCP運作原理 建置DHCP伺服器
NAT技术讲座 主讲:周旭 大唐电信科技股份有限公司光通信分公司 数据通信部.
Speaker : Chang Kai-Jia Date : 2010/04/26
講員:游文志 排程系統教育訓練 後台管理系統 講員:游文志
TYPE B 3504A設定 使用瀏覽器連線到閘道器的ip 例如:
TYPE A 3702A設定 使用瀏覽器連線到閘道器的ip 例如:
如何連上工作站 WorkStations: 1. Solaris 2. Linux Use X-Win32 (for Solaris)
指導老師:吳介騫 教授 開發團隊:凃皓竣、王淳右、江雅媛 國立高雄第一科技大學電腦與通訊工程系 2015/12/11
DNS CACHE POISONING A 曾子桐 指導教授: 梁明章.
指導教授 :逄愛君 資訊三 B 莊惟舜 資訊三 B 張憶婷 資訊三 B 徐嘉偉
網際網路原理 網際網路源起與發展歷史 1968 ARPANET 1973 TCP/IP協定 1976 乙太網路,促成LAN的發展 … DNS
Homework 3.
單 位 :國立暨南國際大學 南投區域網路中心 主講人:陳家祿先生
Presentation transcript:

李思銳 voip_taiwan@yahoo.com.tw VoIP系統與SIP協定 李思銳 voip_taiwan@yahoo.com.tw

大綱 穿越 NAT 編譯Open Source的STUN Server and Client Outbound Proxy

NAT 通常使用192.168.xxx.xxx, 172.16.xxx.xxx ~ 172.29.xxx.xxx, 10.xxx.xxx.xxx; 但是沒有強制規定一定要以上的IP range NAT可分為四類: Full Cone Restricted Port Restricted Symmetric

Full Cone NAT 來自同一internal ip:port的所有要求都將mapping到相同的external ip:port internal可以透過internal ip:port  external ip:port, 往external傳輸的網路封包 external可以透過external ip:port  internal ip:port , 往internal傳輸的網路封包

Restricted NAT 來自同一internal ip:port的所有要求都將mapping到相同的external ip:port external”只能”循原路往internal傳輸網路封包, 也就是, internal曾將某一網路封包傳送到external時, external”才能”把網路封包傳送到internal

Port Restricted NAT 與Restricted Cone NAT一樣, 但是限制範圍包括port

Symmetric NAT 來自同一內部ip:port的所有要求, 在傳送到某一特定目標ip:port時, 都將mapping到相同的外部ip:port, 如果同一目標傳送的網路封包具有相同的來源ip:port, 但目的地不同, 則使用不同的mapping port 只有收到資料封包的external可以向internal回送UDP封包

關於穿越NAT 如果由client來做, 通常是去問外部的server(如STUN server), 目前NAT IP位址為何, 以及偵測NAT的type 如果是server來做, 最有效的做法就是outbound proxy, 這樣的做法就如同H.323裡的proxy mode. 但是, 由於所有的封包都經過outbound server, 網路流量是必需考量的重點

編譯與執行STUN Server # tar xvfz stund_0.96_Aug13.tgz # make # ifconfig eth0:0 linux_host_ip_2 # ./server -v # ./client -v linux_host_ip

設定SJPhone – 使用我們的STUN server

設定SJPhone – 使用預設的STUN server

利用STUN穿越NAT的作法 在REGISTER和INVITE時, 注意Contact這個SIP header欄位的變化 在INVITE時, 注意o, c和m這幾個SDP欄位的變化

REGISTER封包 U 192.168.11.175:5060 -> 192.168.11.200:5060 REGISTER sip:192.168.11.200 SIP/2.0. Via: SIP/2.0/UDP 192.168.11.175;rport;branch=z9hG4bKc0a80baf0000000b451e2ebc000040ba00000009. Content-Length: 0. Contact: <sip:1000@公網ip:公網port>. Call-ID: A3D4497E-E6C9-42FC-B00D-E0F3D6B3550D@192.168.11.175. CSeq: 5 REGISTER. From: <sip:1000@192.168.11.200>;tag=2792242113900. Max-Forwards: 70. To: <sip:1000@192.168.11.200>. User-Agent: SJphone/1.60.289a (SJ Labs).

INVITE封包 U 192.168.11.175:5060 -> 192.168.11.200:5060 INVITE sip:1002@192.168.11.200 SIP/2.0. Via: SIP/2.0/UDP 192.168.11.175;rport;branch=z9hG4bKc0a80baf00000021451e2f73000067fa00000013. Content-Length: 223. Contact: <sip:1000@公網ip:公網port>. Call-ID: 62228ED9-F77A-41EE-B2EC-D090C987280C@192.168.11.175. Content-Type: application/sdp. CSeq: 1 INVITE. From: "unknown"<sip:1000@192.168.11.200>;tag=2810534316052. Max-Forwards: 70. To: <sip:1002@192.168.11.200>. User-Agent: SJphone/1.60.289a (SJ Labs).

v=0. o=- 3368594931 3368594931 IN IP4 公網ip. s=SJphone. c=IN IP4公網ip. t=0 0. a=direction:active. m=audio公網port RTP/AVP 0 101. a=rtpmap:0 PCMU/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-11,16.

Quiz If two Uac behind the same NAT, and they enable STUN. What problem will happen?

大綱 H.323介紹 Open Source的H.323 terminal 在Linux平台的Gatekeeper 封包擷取與觀察

編譯的順序 因為library相依性的問題, 請照下面順序編譯: pwlib openh323 gnugk

編譯pwlib # tar xvfz pwlib_1_5_3.tgz # cd pwlib # ./configure # make opt # make install # cd ..

編譯openh323 # tar xvfz openh323_1_12_3.tgz # cd openh323 # ./configure # make opt # make install # cd ..

編譯gnugk # tar xvfz gnugk-2.0.8.tgz # cd openh323gk 編輯Makefile, disable ACCT, RADIUS, MYSQL, PGSQL, WAITARQ # make opt # make install # cd ..

啟動gnugk # cp -a /usr/local/lib/libp* /usr/lib/. # cp -a /usr/local/lib/libh* /usr/lib/. # gnugk -c ./openh323gk/etc/gnugk.ini

設定SJPhone 新增一個Profile 使用Call through H.323 Gatekeeper 輸入正確的Gatekeeper Address

設定OpenPhone 設定Username和Aliases 更改Local interfaces

輸入正確的Gatekeeper Address 關掉OpenPhone後, 再啟動一次

擷取封包

大綱 SIP IP-PBX: Asterisk Asterisk的編譯與SIP service的啟動 Asterisk的設計概念 TransCoding的問題研究

Asterisk的編譯 # tar xvfz asterisk-1.0.11.tar.gz # cd asterisk-1.0.11 # make # make install # make samples

Asterisk預設的安裝路徑 執行檔: /usr/sbin/asterisk Modules: /usr/lib/asterisk/modules Config: /etc/asterisk

sip.conf 請見/etc/asterisk/sip.conf, 或是光碟片裡copy出來的default sip config of asterisk 請注意以下一些設定, 我們通常/也許可能會去更改: context=default port=5060 bindaddr=0.0.0.0

增加SIP client帳號 [1000] type=friend secret=1000 host=dynamic [1001]

Problem 註冊OK 1000< -- >1001對打不對勁 增加底下兩項到sip.conf的1000和1001帳號裡 nat=yes context=internal

增加internal context到extensions 增加internal context到extensions.conf [internal] exten => 100,1,Dial(SIP/1000) exten => 200,1,Dial(SIP/1001) X-Lite(1001)呼叫SJPhone(1000): call 100 SJPhone(1000)呼叫X-Lite(1001): call 200

Asterisk的設計概念 Asterisk is so-called IP-PBX 他主要是針對他們的類比或數位的板卡所設計的程式 基本上, 可以將Asterisk視作是一個加強型的Trunk Gateway

TransCoding的問題研究 基於上述原因, 預設所有RTP封包都會經過Asterisk 另外Asterisk為解決某些device沒有提供的codec, 他將進到自己本身的封包作codec的轉換 Asterisk的核心codec為PCM16和GSM

大綱 SIP互通性研究 研究X-Lite的各種設定 各種Open Source SIP Protocol Stack之比較與探討 SIP RFC 2543和RFC 3261比較與問題 SIP與H.323比較與差異 SIP優缺點與未來之挑戰

The setting with X-Lite Auto Detect IP Listen on IP Listen SIP Port Listen RTP Port NAT Firewall IP Out Bound SIP Proxy Stun Server DNS Server

Display Name Username Authorization User Password Domain/Realm SIP Proxy Outbound Proxy Send Internal IP Forward SIP URL Dial Prefix

Reregister Proxy Send Compact SIP Messages Send Basic SDP Messages Use SIP rport Timeout

SIP rport allows a client to request that the server send the response back to the source IP address and port from which the request originated

Open source SIP stack VOCAL: vovida, huge and full functions, support RFC2543 but RFC3261 unknown OPAL: openh323, support H.323 and SIP miniSIP: support TLS oSIP: GNU, very small, C language

Hold in RFC2543 RFC3261 hold: a=sendonly, a=recvonly, a=sendrecv RFC2543 hold: c=0.0.0.0 Quiz: Is the address “0.0.0.0” a legal internet address?

RFC3261 vs. RFC2543 Please refer chapter 28 of RFC3261 Refer the book “Understanding the Session Initiation Protocol” (second edition), searching the keyword “RFC 2543” Installing the vocal server and client and then testing with your program or device

SIP vs. H.323 IETF vs. ITU-T(CCITT) Text vs. ASN.1 SIP URL vs. E164ID/H323ID NAT friendly Gateway mode and prefix number Trunk gateway and connecting to telecommunication SIP servers vs. H.323 gatekeeper

The problem with SIP SIP 3261和2543不相容 由於是Text編碼傳輸, 無法保證call setup time 沒有gateway prefix觀念, 需自行實作, 也因此造成某些程度的不相容 在RFC規範裡, MUST字眼很少出現, 各廠商的產品相容性需驗證 SIP某些功能仍然是draft, 也就是還沒定稿 SIP的規範散見各RFC或draft