Tìm hiểu hệ thống VoIP trên Asterisk
Mục lục
CHƯƠNG I: GIỚI THIỆU VỀ MẠNG VOIP...........................................................................3
1.1
Giới thiệu về VoIP.......................................................................................................4
1.2
Ưu điểm của VoIP........................................................................................................5
1.3
Nhược điểm của VoIP..................................................................................................6
1.4
Các chuẩn thoại dùng trong VoIP................................................................................7
1.5
Các tổ chức phát triển VoIP.........................................................................................7
CHƯƠNG II: TỔNG QUAN VỀ GIAO THỨC SIP.................................................................8
2.1
Tổng quan về giao thức khởi tạo phiên SIP................................................................8
2.2
Cấu trúc của SIP..........................................................................................................9
2.2.1
Các thành phần của SIP........................................................................................9
2.2.1.1 Địa chỉ của SIP...............................................................................................10
2.2.1.2 Định vị server SIP..........................................................................................10
2.2.1.3 Định vị người dùng.........................................................................................11
2.2.1.4 Thay đổi một phiên đang tồn tại.....................................................................11
2.2.1.5 Các bản tin của SIP.........................................................................................11
2.2.1.6 Tiêu đề bản tin................................................................................................11
2.2.1.7 Bản tin yêu cầu...............................................................................................13
2.2.1.8 Bản tin đáp ứng...............................................................................................14
2.2.1.9 Thiết lập và hủy cuộc gọi SIP.........................................................................16
2.2.1.10
Liên vận giữa SIP và SS7...........................................................................19
a.
Thiết lập cuộc gọi cơ bản giữa SIP và PSTN.....................................................19
b.
Định hướng cuộc gọi SIP...................................................................................20
2.2.1.11
Tính năng của SIP.......................................................................................22
CHƯƠNG III: GIỚI THIỆU BA PHẦN MỀM ỨNG DỤNG VOIP......................................23
3.1
Asterisk......................................................................................................................23
3.1.1
Giới thiệu về phần mềm Asterisk.......................................................................23
3.1.2
Tính năng và lợi ích của Asterisk.......................................................................23
3.2
OpenSIP.....................................................................................................................24
3.2.1
Khái niệm OpenSIPS.........................................................................................24
3.2.2
Tính năng và lợi ích của OpenSIPS...................................................................24
Nhóm 1-Đ07VTA1
Page 1
Tìm hiểu hệ thống VoIP trên Asterisk
3.2.3
3.3
Kết luận..............................................................................................................26
Kamailio....................................................................................................................26
CHƯƠNG IV: TRIỂN KHAI HỆ THỐNG ASTERISK..........................................................27
4.1
Giới thiệu chung........................................................................................................27
4.2
Kết nối phần cứng......................................................................................................27
4.3
Cài đặt phần mềm......................................................................................................28
4.4
Thực hiện cuộc gọi VoIP, bắt và phân tích gói..........................................................31
4.4.1
Khởi tạo phiên....................................................................................................31
4.4.2
Quá trình đàm thoại............................................................................................32
4.4.3
Kết thúc phiên:...................................................................................................35
CHƯƠNG V: KẾT LUẬN.......................................................................................................36
Hạn chế và hướng phát triển của đề tài....................................................................................36
-
Hạn chế của đề tài..............................................................................................36
-
Hướng phát triển của đề tài................................................................................36
DANH MỤC HÌNH VẼ VÀ BẢNG BI
Hình 2-1: Vị trí của SIP trong mô hình OSI...............................................................................8
Hình 2-2: Các thành phần của SIP.............................................................................................9
Hình 2-3: Hoạt động Proxy Server...........................................................................................16
Hình 2-4: Hoạt động của Redirect Server................................................................................17
Hình 2-5: Thiết lập và hủy cuộc gọi SIP..................................................................................18
Hình 2-6: Thiết lập cuộc gọi cơ bản giữa SIP và PSTN...........................................................19
Hình 2-7: Định hướng cuộc gọi SIP.........................................................................................20
Hình 2-8: OpenSIPS trong VoIP..............................................................................................24
Hình 4-1: Các thiết bị trong hệ thống Asterisk........................................................................27
Hình 4-2: Giao diện hệ điều hành............................................................................................28
Hình 4-3: Giao diện của freepbx..............................................................................................29
Hình 4-4: Giao diện của phần mềm X Lite..............................................................................30
Hình 4-5: Cấu trúc khung của gói tin RTP...............................................................................32
Hình 4-6: Gói tin thứ 49...........................................................................................................33
Y
Bảng 2-1: Các tiêu đề bản tin...................................................................................................12
Bảng 2-2: Giải thích một số tiêu đề chính của SIP..................................................................13
Bảng 2-3: Các bản tin yêu cầu của SIP....................................................................................14
Bảng 2-4: Các loại bản tin đáp ứng của SIP.............................................................................14
Bảng 2-5: Một số mã trạng thái được định nghĩa trong SIP.....................................................16
Nhóm 1-Đ07VTA1
Page 2
Tìm hiểu hệ thống VoIP trên Asterisk
Lới mở đầu
Trong những năm gần đây, chúng ta đã nghe nói nhiều về VoIP như là một công nghệ
mang tính cách mạng trong việc truyền tín hiệu thoại qua môi trường Internet. Cùng
với sự bùng nổ Internet, VoIP cũng đã có những bước phát triển dài, ngày càng hoàn
thiện về công nghệ, chất lượng ổn định, tích hợp được truyền thông đa phương tiện và
rất cạnh tranh về giá cước. Nhiều hệ thống VoIP đã ra đời và được triển khai rộng
khắp. Vì vậy việc nghiên cứu và nắm bắt các công nghệ về VoIP đang rất được quan
tâm. Trong quá trình tìm hiểu về VoIP, nhóm 1-Đ07VTA1 đã quyết định chọn đề tài
“Tìm hiểu hệ thống VoIP trên Asterisk”, nội dung được trình bày trong 5 chương:
Chương I: Tìm hiểu khái quát về công nghệ truyền thoại trên nền internet (VoIP). Qua
đó chúng ta có thể tổng quát hình dung về VoIP là gì, cách thức họat động của nó ra
sao và ưu nhược điểm của công nghệ này.
Chương II: Tìm hiểu một trong những giao thức báo hiệu quan trọng trong VoIP là
giao thức báo hiệu SIP. Đây là một trong những giao thức của VoIP được sử dụng rộng
rãi và SIP cũng chính là giao thức báo hiệu sử dụng trong chương trình ứng dụng
Asterisk được trình bày ở các chương tiếp theo.
Chương III: Đề xuất 3 giải pháp VoIP, so sánh các giải pháp và quyết định giải pháp
triển khai ở chương IV
Chương IV : Triển khai VoIP trên hệ thống Asterisk, các bước thiết lập phần cứng, cài
đặt phần mềm, thực hiện cuộc gọi, bắt và phân tích các gói tin.
Chương V: Kết luận, hạn chế, hướng phát triển của đề tài.
Trong quá trình làm đề tại, dù đã cố gắng song do kiến thức hạn chế nên không thể
tránh khỏi những thiếu sót. Chúng em rất mong nhận được sự góp ý, hướng dẫn giúp
đỡ của Thầy Cô, bạn bè.
Chúng em xin chân thành cảm ơn
Tp. Hồ Chí Minh, tháng 6 năm 2011
Nhóm thực hiện
Nhóm 1 –Đ07VTA1
Nhóm 1-Đ07VTA1
Page 3
Tìm hiểu hệ thống VoIP trên Asterisk
CHƯƠNG I: GIỚI THIỆU VỀ MẠNG VOIP
Internet Voice, được biết như thoại qua giao thức (Voice Over IP), là một công nghệ
cho phép tạo cuộc gọi dùng kết nối băng thông rộng thay vì dùng đường dây điện
thoại tương tự (analog). Nhiều dịch vụ dùng Voice over IP có thể chỉ cho phép bạn gọi
người khác dùng cùng loại dịch vụ, tuy nhiên cũng có những dịch vụ cho phép gọi
dùng số điện thoại như số nội bộ, đường dài, di động, quốc tế. Những dịch vụ chỉ làm
việc qua máy tính, hay loại điện thoại qua IP (IP phone) đặc biệt. Vài dịch vụ cho
phép dùng điện thoại truyền thống qua một bộ điều hợp (adaptor)
1.1 Giới thiệu về VoIP
1.1.1 VoIP là gì
Voice over Internet Protocol (VoIP) là một công nghệ cho phép truyền thoại sử
dụng giao thức mạng IP, trên cơ sở hạ tầng sẵn có của mạng Internet. VoIP là một
trong những công nghệ viễn thông đang được quan tâm nhất hiện nay không chỉ đối
với nhà khai thác, các nhà sản xuất mà còn cả với người sử dụng dịch vụ.
VoIP cho phép thực hiện cuộc gọi dùng máy tính qua mạng dữ liệu như Internet.
VoIP chuyển đổi tín hiệu thoại từ điện thoại tương tự analog vào tín hiệu số (digital)
trước khi truyền qua Internet, sau đó chuyển đổi ngược lại ở đầu nhận. Khi tạo một
cuộc gọi VoIP dùng điện thoại với một bộ điều hợp, ta sẽ nghe âm mời gọi, quay số
sau tiến trình này. VoIP cũng cho phép tạo một cuộc gọi trực tiếp từ máy tính dùng
loại điện thoại tương ứng hay dùng microphone.
VoIP cho phép tạo cuộc gọi đường dài qua mạng dữ liệu IP có sẵn thay vì phải
được truyền qua mạng PSTN (Public Switched Telephone Network). Ngày nay nhiều
công ty đã thực hiện giải pháp VoIP của họ để giảm chi phí cho những cuộc gọi đường
dài giữa nhiều chi nhánh xa nhau.
Trước đây, khi dựa vào giao tiếp thoại trên mạng PSTN. Trong suốt cuộc gọi
giữa hai địa điểm, đường kết nối được dành riêng cho bên thực hiện cuộc gọi. Không
có thông tin khác có thể truyền qua đường truyền này, cho dù vẫn còn thừa lượng
băng thông sẵn dùng. Sau đó với sự xuất hiện của mạng giao tiếp dữ liệu, nhiều công
ty đã đầu tư cho mạng giao tiếp dữ liệu để chia sẽ thông tin với nhau, trong khi đó
thoại và fax vẫn tiếp tục sử dụng mạng PSTN.
Nhưng ngày nay điều này không còn là vấn đề nữa, với sự phát triển nhanh
chóng và sử dụng rộng rãi của IP, chúng ta đã tiến rất xa trong khả năng giảm chi phí
trong việc hỗ trợ truyền thoại và dữ liệu. Giải pháp tích hợp thoại vào mạng dữ liệu,
và cùng hoạt động bên cạnh hệ thống PBX hiện tại hay những thiết bị điện thoại khác,
để đơn giản cho việc mở rộng khả năng thoại cho những vị trí ở xa. Lưu lượng thoại
thực chất sẽ được mang tự do (free) bên trên mạng dữ liệu thông qua cơ sở hạ tầng và
thiết bị phần cứng có sẵn
Mặc dù những khái niệm về VoIP là đơn giản, nhưng để thực hiên và ứng dụng
VoIP là phức tạp. Để gởi voice, thông tin phải được tách biệt thành những gói (packet)
Nhóm 1-Đ07VTA1
Page 4
Tìm hiểu hệ thống VoIP trên Asterisk
giống như dữ liệu. Gói là những phần thông tin được chia nhỏ để dễ dàng cho việc gởi
gói, cũng có thể dùng kĩ thuật nén gói để tiết kiệm băng thông, thông qua những tiến
trình codec (compressor/de-compressor).
Có rất nhiều loại giao thức dùng thực hiện dịch vụ VoIP, những giao thức báo
hiệu VoIP phổ biến SIP và H323. Cả SIP và H323 đều cho phép người dùng thực hiện
cùng công việc: thiết lập giao tiếp cho những ứng dụng đa phương tiện (multimedia)
như audio, video, những giao tiếp dữ liệu khác. Nhưng H323 chủ yếu được thiết kế
cho những dịch vụ đa phương tiện, trong khi SIP thì phù hợp cho những dịch vụ VoIP.
RTP (Real-time Transport Protocol) định nghĩa định dạng chuẩn của gói tin cho
việc phân phối audio và video qua Internet.
1.1.2 Phương thức hoạt động
Khi nói vào ống nghe hay microphone, giọng nói sẽ tạo ra tín hiệu điện từ, đó là
những tín hiệu analog. Tín hiệu analog được chuyển sang tín hiệu số dùng thuật toán
đặc biệt để chuyển đổi. Những thiết bị khác nhau có cách chuyển đổi khác nhau như
VoIP phone hay softphone, nếu dùng điện thoại analog thông thường thì cần một
Telephony Adapter (TA). Sau đó giọng nói được số hóa sẽ được đóng vào gói tin và
gởi trên mạng IP.
Trong suốt tiến trình một giao thức như SIP hay H323 sẽ được dùng để điểu
khiển (control) cuộc gọi như là thiết lập, quay số, ngắt kết nối… và RTP thì được dùng
cho tính năng đảm bảo độ tin cậy và duy trì chất lượng dịch vụ trong quá trình truyền.
1.2 Ưu điểm của VoIP
1.2.1 Đa dạng tính năng – Hiệu quả kinh tế cao
Tất cả tính năng, ứng dụng thông tin liên lạc mới hiện đã có mặt trên thế giới
viễn thông hội tụ đều hỗ trợ nền tảng mạng IP. Tất cả tính năng này có sẵn mà không
đòi hỏi thêm bất kỳ chi phí đầu tư nào bởi vì chúng hoạt động trên nền tảng mạng IP
và được "vận chuyển" trên mạng máy tính y như các ứng dụng máy tính thông
thường.
1.2.2 Tiết kiệm chi phí đầu tư VoIP
Hệ thống IP Telephony và VoIP để hỗ trợ tốt hơn cho công việc kinh doanh. Nếu
doanh nghiệp đã trang bị thiết bị kỹ thuật số (như tổng đài PBX), thì có thể tiết kiệm
được đáng kể chi phí đầu tư bằng cách tái sử dụng hầu hết các thiết bị này với hệ
thống VoIP mới.
1.2.3 Dễ bảo trì
Việc cài đặt và quản lý hệ thống IP Telephony và VoIP trở nên dễ dàng hơn. Với
hệ thống IP Telephony thì mạng VoIP sẽ tự động tự điều chỉnh để tương thích với vị trí
mới của người dùng. Nhà quản lý hệ thống có thể từ bất kỳ máy tính nối mạng nào
tiến hành kiểm tra, thiết lập mục đích sử dụng, tài khoản và nhiều dữ liệu khác cho
người dùng. Với hệ thống viễn thông nền IP, công việc quản lý và bảo trì mạng điện
thoại trở nên kinh tế và hiệu quả hơn.
1.2.4
Linh hoạt và cơ động
Nhóm 1-Đ07VTA1
Page 5
Tìm hiểu hệ thống VoIP trên Asterisk
IP Softphone là giải pháp phần mềm gọi điện thoại Internet dành cho các máy
tính sử dụng hệ điều hành Windows. Phần mềm này cho phép người dùng dễ dàng
truy xuất đến các dịch vụ viễn thông thời gian thực và những tính năng cải tiến khác
với cách thức sử dụng thật đơn giản: chỉ cần nhấn chuột để quay số cuộc gọi. Trong
một mạng viễn thông nền IP, nhân viên có thể tự do đi lại bất kỳ đâu trong văn phòng
công ty, nối máy tính xách tay vào mạng, bắt đầu làm việc và nhận/thực hiện các cuộc
gọi.
1.2.5 Nhiều tính năng hấp dẫn
VoIP với những ưu điểm như giảm chi phí liên lạc,khả năng tích hợp dễ dàng các
hệ thống dữ liệu, thoại và video, cơ sở dữ liệu có khả năng kiểm soát tập trung, tính
năng thoại di động cải tiến giúp tiết kiệm thời gian và chi phí...Với giao thức SIP
(Session Initiation Protocol) cho phép nhiều ứng dụng, thiết bị phần cứng mới dễ dàng
triển khai giải pháp VoIP trên mạng LAN, WAN hoặc Internet. Hầu hết các modem và
router ADSL hiện nay đều hỗ trợ VoIP và giao thức SIP, các doanh nghiệp vừa và nhỏ
có thể nhanh chóng triển khai mô hình điện thoại Internet thông qua đường truyền
internet với các dịch vụ VoIP miễn phí như ifone, IPTel, DrayTel, MediaRing...
1.2.6 Khả năng quản lý toàn diện
Bạn có khả năng kiểm soát chi tiết đến từng bit dữ liệu đang được lưu chuyển
trên mạng IP Telephony (LAN) hay mạng VoIP (WAN). Trong các mạng mạng viễn
thông nền IP, chất lượng thoại có thể đạt đến 99,99%. Nghĩa là trong môi trường mạng
hội tụ nền IP, khả năng phát hiện sớm các triệu chứng và thay đổi những cài đặt trước
khi có bất kỳ trục trặc nào xảy ra đã được cải tiến đáng kể.
1.2.7 Công tác thời gian thực
Người dùng có thể bổ sung giải pháp điện thoại kèm hình ảnh Video Telephony
Solution bằng các phần mềm ứng dụng video trên nền IP, qua đó cho phép một máy
tính để bàn hay máy tính xách tay giả lập một chiếc điện thoại IP trong văn phòng.
Chất lượng hình ảnh và âm thanh khi sử dụng trên mạng nội bộ thường tốt hơn khi sử
dụng qua kết nối Internet do hiếm khi gặp phải tình trạng trễ tiếng hay khựng hình.
1.2.8 Sử dụng băng thông hợp lý
Lưu lượng truyền dữ liệu máy tính (không phải là dữ liệu thoại) trên hệ thống
mạng điện thoại thường chỉ chiếm khoảng 30% băng thông của toàn hệ thống. Ưu
điểm của VoIP là dữ liệu được đóng lại thành gói và các gói dữ liệu này được truyền
thông qua kết nối T-1 trên một phần nhỏ băng thông của kênh DSO.
1.2.9 Giảm chi phí điện thoại đường dài
Với một hệ thống VoIP hoàn chỉnh, doanh nghiệp thậm chí còn có thể triển khai
giải pháp chuyển tiếp cuộc gọi thông minh, cho phép "hạn chế" các cuộc gọi đường
dài trực tiếp từ một khu vực (tỉnh, thành phố hay quốc gia) sang một khu vực khác (cả
2 khu vực này phải có văn phòng của doanh nghiệp này) bằng cách chuyển dữ liệu
thoại thông qua mạng VoIP nội bộ rồi sau đó chuyển tiếp sang hệ thống PSTN.
1.3 Nhược điểm của VoIP
Nhóm 1-Đ07VTA1
Page 6
Tìm hiểu hệ thống VoIP trên Asterisk
Chất lượng dịch vụ: do các mạng truyền số liệu vốn dĩ không được thiết kế để
truyền thoại thời gian thực cho nên việc trễ truyền hay việc mất mát các gói tin hoàn
toàn có thể xảy ra và sẽ gây ra chất lượng dịch vụ thấp.
Bảo mật: do mạng Internet là một mạng hỗn hợp và rộng khắp bao gồm rất
nhiều máy tính cùng sử dụng cho nên việc bảo mật các thông tin cá nhân là rất khó.
1.4 Các chuẩn thoại dùng trong VoIP
Các chuẩn thoại dùng trong VoIP: SIP, H323, IAX2, MGCP...
Chuẩn SIP (Session Initiation Protocol ): chuẩn của IETF, thông dụng nhất hiện
nay vì ít tốn thiết bị phần cứng và có thể mở rộng hệ thống dễ dàng. Đây là giao thức
chi tiết xác định những chỉ thị và những đáp ứng, để thiết lập hay kết thúc cuộc gọi.
SIP cũng mô tả chi tiết về các tính năng như bảo mật (sercurity), sự ủy nhiệm (proxy),
vận chuyển (transport). SIP định nghĩa ra cơ chế báo hiệu cuộc gọi end-to end giữa
các thiết bị. SIP là giao thức text-base có nhiều tính năng tương tự HTTP, như là cùng
mô hình yêu cầu (request) và đáp ứng (response).
Chuẩn H323: Đây là giao thức chuẩn của ITU. Giao thức này ban đầu được phát
triển cho hệ thống đa phương tiện(multimedia) phương tiện trong môi trường không
hướng kết nối (connectionless), như LAN. H323 là chuẩn định nghĩa tất cả tiến trình
liên quan đến vấn đề đồng bộ cho thoại, video, và truyền dữ liệu. H323 định nghĩa tín
hiệu cuộc gọi end-to-end.
Chuẩn MGCP (Media Gateway Control Protocol - Giao thức điều khiển cổng
truyền thông) nó là một giao thức trong VoIP được đưa ra theo đề xuất của Cisco và
Telcordia để định nghĩa sự liên lạc giữa những phần điều khiển cuộc gọi Media
Gateway. MGCP là giao thức điều khiển, cho phép trung tâm điều khiển theo dõi
những sự kiện trong cuộc gọi IP và những Gateway và chỉ đạo chúng để gửi thông tin
tới những địa chỉ cụ thể.
1.5 Các tổ chức phát triển VoIP
Nhà cung cấp dịch vụ VoIP lớn : Skype, Yahoo, Google….
Các thiết bị phần cứng VoIP :
- Tổng đài IP, VoIP Gateway : Cisco, Avaya, Alcatel, Nortel, Digium..
- Card giao tiếp PCI : Digium, Openvox, Sangoma…
- Điện thoại IP : Alcatel, Nortel, Welltech…
Các phần mềm ứng dụng tổng đài VoIP PBX : CCM của Cisco, Asterisk trên
Linux, Avaya...
Trên hệ điều hành WINDOWS: chủ yếu sử dụng giao thức SIP, phần mềm này có thể
dễ dàng cài đặt và sử dụng. Tuy nhiên phải mua License tùy theo cấu hình doanh
nghiệp cần ứng dụng.
- 3CX : của hãng 3CX www.3cx.com
- Brekeke : của hãng phần mềm BREKEKE www.brekeke.com
- Axon : của hãng NCH www.nch.com.au/pbx
Trên hệ điều hành LINUX:
Nhóm 1-Đ07VTA1
Page 7
Tìm hiểu hệ thống VoIP trên Asterisk
- CCM ( Cisco Call Manager ) : chạy trên hệ hành Linux, có bản miễn phí cho
người dùng. Tuy nhiên, bản miễn phí còn nhiều tính năng chưa Update, muốn sử dụng
các tính năng Update thì phải mua thêm License.
- Asterisk : chạy trên hệ điều hành LiNux, hoàn toàn miễn phí cho người dùng.
Phần này sẽ được trình bày rõ hơn ở phần sau.
Nhóm 1-Đ07VTA1
Page 8
Tìm hiểu hệ thống VoIP trên Asterisk
CHƯƠNG II: TỔNG QUAN VỀ GIAO THỨC SIP
2.1 Tổng quan về giao thức khởi tạo phiên SIP
SIP (Session Initiation Protocol) là giao thức điều khiển báo hiệu thuộc lớp ứng
dụng trong mô hình OSI (hình II.1), được phát triển như là một chuuẩn mở RFC 2543
của IEFT. Khác với H.323, nó dựa trên nguồn gốc Web (HTTP) và có thiết kế kiểu
module, đơn giản và dễ dàng mở rộng với các ứng dụng thoại SIP. SIP là một giao
thức báo hiệu để thiết lập, duy trì và kết thúc các phiên đa phương tiện như : thoại IP,
hội nghị và các ứng dụng tương tự khác liên quan đến việc truyền thông tin đa phương
tiện.
SIP sử dụng các bản tin mời (INVITE) để thiết lập các phiên và để mang các
thông tin mô tả phiên truyền dẫn. SIP hỗ trợ các phiên đơn bá (unicast) và quảng bá
(multicast) tương ứng các cuộc gọi điểm tới điểm và cuộc gọi đa điểm. Có thể sử dụng
năm chức năng của SIP để thiết lập và kết thúc truyền dẫn là : định vị thuê bao, khả
năng thuê bao, độ sẵn sàng của thuê bao, thiết lập cuộc gọi và xử lý cuộc gọi.
SIP được sử dụng kết hợp với các chuẩn giao thức IETF khác như là SAP, SDP
và MGCP (MEGACO) để cung cấp một lĩnh vực rộng hơn cho các dịch vụ VoIP. Cấu
trúc của SIP tương tự với cấu trúc của HTTP (giao thức client-server). Nó bao gồm
các yêu cầu được gởi đến từ người sử dụng SIP client đến SIP server. Server xử lý các
yêu cầu và đáp ứng đến client. Một thông điệp yêu cầu, cùng với các thông điệp đáp
ứng tạo nên sự thực thi SIP.
Hình 2-1: Vị trí của SIP trong mô hình OSI.
Nói chung, SIP hỗ trợ các hoạt động chính sau:
- Định vị trí của người dùng.
- Định media cho phiên làm việc.
- Định sự sẵn sàng của người dùng để tham gia vào một phiên làm việc.
Nhóm 1-Đ07VTA1
Page 9
Tìm hiểu hệ thống VoIP trên Asterisk
- Thiết lập cuộc gọi, chuyển cuộc gọi và kết thúc.
- SIP là một giao thức theo thiết kế mở do đó nó có thể được mở rộng để phát
triển thêm các chức năng mới. Sự linh hoạt của các bản tin SIP cũng cho phép đáp ứng
các dịch vụ thoại tiên tiến bao gồm cả các dịch vụ di động.
2.2 Cấu trúc của SIP
2.2.1 Các thành phần của SIP
Hình 2-2: Các thành phần của SIP
Hệ thống SIP gồm 5 thành phần chính :
- User Agent (UA) : đóng vai trò của thiết bị đầu cuối trong báo hiệu SIP , có thể
là một máy điện thoại SIP, có thể là máy tính chạy phần mềm đầu cuối SIP...UA bao
gồm hai loại User Agent Client (UAC) và User Agent Server (UAS). UAC khởi tạo
cuộc gọi và UAS trả lời cuộc gọi. Điều này cho phép thực hiện cuộc gọi ngang hàng
thông qua mô hình client-server.
- Máy chủ ủy quyền (Proxy server) : là một chương trình trung gian, hoạt động
như là một server và một client cho mục đích tạo các yêu cầu thay mặt cho các client
khác. Các yêu cầu được phục vụ bên trong hoặc truyền chúng đến các server khác.
Một proxy có thể dịch và nếu cần thiết có thể tạo lại các bản tin yêu cầu SIP trước khi
chuyển chúng đến server khác hoặc một UA. Trong trường hợp này trường Via trong
bản tin đáp ứng, yêu cầu chỉ ra các proxy trung gian tham gia vào tiến trình xử lý yêu
cầu .
- Máy chủ định vị (Location Server) : là phần mềm định vị thuê bao, cung cấp
thông tin về những vị trí có thể của thuê bao bị gọi cho các phần mềm máy chủ ủy
quyền và máy chủ chuyển đổi địa chỉ.
Nhóm 1-Đ07VTA1
Page 10
Tìm hiểu hệ thống VoIP trên Asterisk
- Máy chủ chuyển đổi địa chỉ (Redirect Server) : là phần mềm nhận yêu cầu
SIP và chuyển đổi địa chỉ SIP sang một số địa chỉ khác và gửi lại cho đầu cuối. Không
giống như máy chủ ủy quyền, máy chủ chuyển đổi địa chỉ không bao giờ hoạt động
như một đầu cuối, tức là không gửi đi bất cứ yêu cầu nào. Máy chủ chuyển đổi địa chỉ
cũng không nhận hoặc huỷ cuộc gọi.
- Máy chủ đăng ký (Register Server) : là phần mềm nhận các yêu cầu đăng ký.
Trong nhiều trường hợp máy chủ đăng ký đảm nhiệm luôn một số chức năng an ninh
như xác nhận người sử dụng. Thông thường máy chủ đăng ký được cài đặt cùng với
máy chủ ủy quyền và máy chủ hay địa chỉ hoặc cung cấp dịch vụ định vị thuê bao.
Mỗi lần đầu cuối được bật lên (ví dụ máy điện thoại hoặc phần mềm SIP) thì đầu cuối
lại đăng ký với máy chủ. Nếu đầu cuối cần thông báo cho máy chủ về địa điểm của
mình thì bản tin REGISTER cũng được gửi đi. Nói chung các đầu cuối đều thực hiện
việc đăng ký lại một cách định kỳ.
2.2.2 Hoạt động của các bản tin SIP
SIP là một giao thức dựa trên ký tự văn bản với cú pháp bản in và các trường
mào đầu đồng nhất với giao thức truyền siêu văn bản HTTP (Hypper Text Transfer
Protocol). Các bản tin của SIP truyền trên cùng một kết nối TCP hoặc bó dữ liệu UDP.
2.2.1.1 Địa chỉ của SIP
Địa chỉ của SIP còn được gọi là bộ định vị tài nguyên chung URL (Universal
Resource Locator), tồn tại dưới dạng user@host. Phần user trong phần địa chỉ có thể
là tên người sự dụng hoặc số điện thoại. Phần host có thể là tên miền hoặc địa chỉ
mạng.
Ví dụ địa chỉ SIP :
SIP:
[email protected]
SIP:
[email protected]
2.2.1.2 Định vị server SIP
Khi client muốn gửi một yêu cầu, client gửi yêu cầu đó đến một proxy server SIP
đã được cấu hình hoặc gửi đến địa chỉ IP và số cổng tương ứng với URL SIP. Gửi yêu
cầu trực tiếp đến proxy server thì dễ dàng nếu ứng dụng cuối đã biết proxy server. Gửi
yêu cầu theo cách thứ hai thì phức tạp hơn. Client phải cố gắng tiếp xúc với server ở
số cổng được liệt kê trong bộ định vị tài nguyên đồng nhất URL SIP. Nếu số hiệu cổng
không có trong URL SIP thì client sử dụng số cổng 5060. Nếu URL SIP chỉ định một
giao thức (UDP hoặc TCP) thì client tiếp xúc với server sử dụng giao thức đó. Nếu
không có giao thức nào được chỉ định hoặc nếu client không hỗ trợ UDP nhưng có hỗ
trợ TCP thì nó cố gắng dùng TCP. Client cố gắng tìm một hoặc nhiều địa chỉ server
SIP bằng cách truy vấn DNS (Domain Name System).
Tiến trình như sau:
Nhóm 1-Đ07VTA1
Page 11
Tìm hiểu hệ thống VoIP trên Asterisk
- Nếu phần host của URL SIP là địa chỉ IP, client tiếp xúc với server ở địa chỉ
cho trước. Ngược lại nó xử lý bước kế tiếp.
- Client truy vấn server DNS cho địa chỉ phần host của URL SIP. Nếu server
DNS không trả về địa chỉ của URL SIP, client sẽ ngưng vì nó không thể định vị được
server.
2.2.1.3 Định vị người dùng
Người bị gọi có thể di chuyển giữa nhiều hệ thống đầu cuối theo thời gian.
Các vị trí này có thể đăng kí động với server SIP. Một server vị trí có thể trả về
nhiều vị trí bởi vì người dùng đăng nhập ở nhiều trạm một cách đồng thời hoặc server
vị trí có thông tin không chính xác. Server SIP kết hợp các kết quả để cung cấp một
danh sách các vị trí hoặc không có vị trí nào.
Hoạt động nhận danh sách các vị trí thay đổi tùy thuộc vào SIP server. Một
Redirect server trả về một danh sách hoàn chỉnh các vị trí và cho phép các client định
vị người dùng chính xác. Một Proxy server cũng cố gắng định địa chỉ cho đến khi
cuộc gọi thành công hoặc người bị gọi từ chối cuộc gọi.
2.2.1.4 Thay đổi một phiên đang tồn tại
Điều này được thưc hiện bằng cách phát lại bản tin INVITE, sử dụng cùng CallID nhưng nội dung mới hoặc các trường tiêu đề mang thông tin mới. Chẳng hạn, hai
đối tác đang trò chuyện và muốn thêm và một người thứ ba. Một trong hai mời người
thứ ba với địa chỉ multicast mới và đồng thời gửi bản tin INVITE đến đối tác thứ hai
với sự mô tả phiên mulicast mới, ngoại trừ số nhận dạng cũ.
2.2.1.5 Các bản tin của SIP
Có hai loại bản tin SIP:
- Bản tin yêu cầu được khởi tạo từ client.
- Bản tin đáp ứng được trả lại từ server.
Mỗi bản tin chứa một tiêu đề mô tả chi tiết về sự truyền thông.
SIP có thể sử dụng UDP. Khi được gửi trên UDP hoặc TCP, nhiều giao dịch SIP
có thể được mang trên một kết nối TCP đơn lẻ hoặc gói dữ liệu UDP. Gói dữ liệu UDP
(bao gồm tất cả các tiêu đề) thì không vượt quá đơn vị truyền dẫn lớn nhất MTU
(Maximum Transmission Unit) nếu MTU được định nghĩa, hoặc không quá 1500 byte
nếu MTU không được định nghĩa.
Một bản tin SIP cơ bản bao gồm: dòng bắt đầu (start-line), một hoặc nhiều
trường tiêu đề, một dòng trống (CRLF) dùng để kết thúc các trường tiêu đề và một nội
dung bản tin tùy chọn.
Bản tin chung =
Nhóm 1-Đ07VTA1
Dòng bắt đầu
Tiêu đề bản tin
CRLF
[ nội dung bản tin]
Page 12
Tìm hiểu hệ thống VoIP trên Asterisk
2.2.1.6 Tiêu đề bản tin
Tiêu đề bản tin dùng để chỉ ra người gọi, người bị gọi, đường định tuyến và loại
bản tin của cuộc gọi. Có 4 nhóm tiêu đề bản tin như sau:
- Tiêu đề chung: áp dụng cho các yêu cầu và các đáp ứng.
- Tiêu đề thực thể: định nghĩa thông tin về loại bản tin và chiều dài.
- Tiêu đề yêu cầu: cho phép client thêm vào các thông tin yêu cầu.
- Tiêu đề đáp ứng: cho phép server thêm vào các thông tin đáp ứng.
Tiêu đề chung
Accept
Accept-Encoding
AcceptLanguage
Call-ID
Contact
CSeq
Date
Encryption
Expires
From
Record-Route
Timestamp
To
Via
Tiêu đề thực thể
ContentEncoding
Content-Length
Tiêu đề yêu cầu
Authorization
Tiêu đề đáp ứng
Allow
Contact
Content-Type
Hide
ProxyAuthenticate
Retry-After
Max-Forwards
Organization
Priority
ProxyAuthorization
Proxy-Require
Route
Require
Response-Key
Subject
User-Agent
Server
Unsupported
Warning
www-Authenticate
Bảng 2-1: Các tiêu đề bản tin.
Giải thích một số tiêu đề chính của SIP:
Tiêu đề
Call-ID
Cseq
To
From
Nhóm 1-Đ07VTA1
Giải thích
So khớp các yêu cầu với các đáp ứng tương ứng, nhận dạng duy
nhất lời mời hoặc sự đăng kí của client.
Trong một cuộc gọi, Cseq tăng lên khi một yêu cầu mới được gửi đi và bắt
đầu ở một giá trị ngẫu nhiên. Tuy nhiên, đối với yêu cầu ACK và Cancel
thì Cseq không tăng.
Có mặt trong tất cả các yêu cầu và đáp ứng để chỉ ra nơi nhận yêu cầu.
Có mặt trong tất cả yêu cầu và đáp ứng chứa tên và địa chỉ của
nơi khởi tạo yêu cầu.
Page 13
Tìm hiểu hệ thống VoIP trên Asterisk
Via
Encryption
Content-Length
Content-type
Expires
Accept
Subject
Ghi lại đường đi của yêu cầu để cho phép các server SIP trung
gian chuyển các câu trả lời trở lại cùng đường đi.
Chỉ định nội dung và một số tiêu đề bản tin đã được mã hóa như
thế nào.
Chỉ ra kích thước của nội dung bản tin (tính bằng octet).
Chỉ ra loại media của nội dung bản tin (văn bản/html,).
Nhận dạng ngày và thời gian khi bản tin hết hạn .
Chỉ ra loại media nào được chấp nhận trong bản tin đáp ứng.
Cho thông tin về bản chất của cuộc gọi.
Bảng 2-2: Giải thích một số tiêu đề chính của SIP
2.2.1.7 Bản tin yêu cầu
Các yêu cầu cũng có thể được xem như các phương pháp cho phép User Agent
và server mạng định vị, mời và quản lý các cuộc gọi. Bản tin yêu cầu SIP có dạng sau:
Yêu cầu
=
Dòng yêu cầu (Request-line)
Tiêu đề chung/tiêu đề yêu cầu/tiêu đề thực thể.
CRLF
[Nội dung bản tin]
Dòng yêu cầu bắt đầu với mã phương pháp, bộ nhận dạng tài nguyên đồng nhất
yêu cầu, phiên bản giao thức SIP và kết thúc với CRLF. Các thành phần được phân
cách bởi kí tự SP.
Dòng yêu cầu = Method SP Request-URI SP SIP-Version CRLF.
Có 6 loại bản tin yêu cầu SIP: INVITE, ACK, OPTIONS, BYE, CANCEL và
REGISTER.
Bản tin
Ý nghĩa
INVITE
Khởi tạo một phiên
ACK
Khẳng định rằng client đã nhận được bản tin đáp ứng cho bản tin
INVITE
BYE
Yêu cầu kết thúc phiên
CANCEL
Huỷ yêu cầu đang nằm trong hàng đợi
REGISTE
R
Đầu cuối SIP đăng ký với registrar server
OPTIONS
Sử dụng để xác định năng lực của server
INFO
Sử dụng để tải các thông tin
Bảng 2-3: Các bản tin yêu cầu của SIP
2.2.1.8 Bản tin đáp ứng
Nhóm 1-Đ07VTA1
Page 14
Tìm hiểu hệ thống VoIP trên Asterisk
Các bản tin đáp ứng có dạng như sau:
Đáp ứng
=
Dòng trạng thái
Tiêu đề chung/tiêu đề đáp ứng/tiêu đề
CRLF
[nội dung bản tin]
Dòng trạng thái = SIP-version SP Status-Code SP Reason-Phrase CRLF
Mã trạng thái có 3 chữ số chỉ ra kết quả của việc đáp ứng yêu cầu. Lý do
(Reason-Phrase) là sự mô tả ngắn gọn về mã trạng thái.
Chữ số đầu tiên của mã trạng thái định nghĩa lớp đáp ứng. SIP phiên bản 2.0 định
nghĩa 6 giá trị cho lớp đáp ứng :
Bản
tin
Ý nghĩa
1xx
Các bản tin chung
2xx
Thành công
3xx
Chuyển địa chỉ
4xx
Yêu cầu không được đáp ứng
Một số mã trạng thái được định nghĩa trong SIP
được trình bày trong bảng sau:
5xx
Sự cố của server
Lớp
ứng mạng Mã trạng thái
Giải thích
6xx
Sựđáp
cố toàn
Thông tin
100
Đang cố gắng
180
Rung chuông
181
Bảng 2-4: Các loại bản tin đáp ứng của SIP.Cuộc gọi được chuyển
182
Được xếp hàng đợi
Thành công
200
OK
Đổi hướng
300
Nhiều chọn lựa
301
Được di chuyển thường xuyên
302
Được di chuyển tạm thời
380
Dịch vụ thay đổi
Lỗi client
400
Yêu cầu lỗi
401
Không nhận thực được
402
Yêu cầu trả tiền (payment required)
403
Cấm
404
Không tìm thấy
405
Bản tin không cho phép
406
Không chấp nhận
407
Yêu cầu nhận thực proxy
408
Yêu cầu timeout
409
Xung đột
410
Tiếp tục (gone)
411
Yêu cầu chiều dài
413
Thực thể yêu cầu quá lớn
414
URL yêu cầu quá lớn
415
Không hỗ trợ loại media
420
Mở rộng sai
480
Không sẵn có
481
Cuộc gọi hoặc sự trao đổi
Nhóm 1-Đ07VTA1
Page 15
Tìm hiểu hệ thống VoIP trên Asterisk
Lỗi server
Lỗi toàn cầu
482
483
484
485
486
500
501
502
503
504
505
600
603
604
606
Vòng lặp được phát hiện
Quá nhiều hop
Địa chỉ không hoàn thành
Mơ hồ
Đang bận
Lỗi server bên trong
Không thực thi
Gateway lỗi
Dịch vụ không có sẵn
Gateway timeout
Phiên bản SIP không hỗ trợ
Bận ở mọi nơi
Từ chối
Không tồn tại ở mọi nơi
Không chấp nhận
Bảng 2-5: Một số mã trạng thái được định nghĩa trong SIP.
2.2.1.9 Thiết lập và hủy cuộc gọi SIP
Trước tiên ta tìm hiểu hoạt động của máy chủ ủy quyền và máy chủ chuyển đổi :
a. Hoạt động của máy chủ ủy quyền (Proxy Server)
Hình 2-2: Hoạt động Proxy Server
Client SIP
[email protected] gửi bản tin INVITE cho
[email protected] để mời
tham gia cuộc gọi.
Các bước như sau:
Nhóm 1-Đ07VTA1
Page 16
Tìm hiểu hệ thống VoIP trên Asterisk
- Bước1:
[email protected]ửi bản tin INVITE cho userB ở miền hotmail.com
bản tin này đến proxy server SIP của miền hotmail.com (bản tin INVITE có thể đi từ
Proxy server SIP của miền yahoo.com và được Proxy này chuyển đến Proxy server
của miền hotmail.com).
- Bước 2: Proxy server của miền hotmail.com sẽ tham khảo server định vị
(Location server) để quyết định vị trí hiện tại của UserB.
- Bước 3: Server định vị trả lại vị trí hiện tại của UserB (giả sử là
[email protected]).
- Bước 4: Proxy server gửi bản tin INVITE tới
[email protected]. Proxyserver
thêm địa chỉ của nó trong một trường của bản tin INVITE.
- Bước 5: UAS của UserB đáp ứng cho server Proxy với bản tin 200 OK.
- Bước 6: Proxy server gửi đáp ứng 200 OK trở về
[email protected].
- Bước 7:
[email protected] gửi bản tin ACK cho UserB thông qua proxy
server.
- Bước 8: Proxy server chuyển bản tin ACK cho
[email protected].
- Bước 9: Sau khi cả hai bên đồng ý tham dự cuộc gọi, một kênh RTP/RTCP
được mở giữa hai điểm cuối để truyền tín hiệu thoại.
- Bước 10: Sau khi quá trình truyền dẫn hoàn tất, phiên làm việc bị xóa bằng
cách sử dụng bản tin BYE và ACK giữa hai điểm cuối.
b. Hoạt động của máy chủ chuyển đổi địa chỉ (Redirect Server):
Hình 2-3: Hoạt động của Redirect Server.
Các bước như sau:
- Bước 1: Redirect server nhâ nâ được yêu cầu INVITE từ người gọi (Yêu cầu này
có thể đi từ một proxy server khác).
- Bước 2: Redirect server truy vấn server định vị địa chỉ của B.
Nhóm 1-Đ07VTA1
Page 17
Tìm hiểu hệ thống VoIP trên Asterisk
- Bước 3: Server định vị trả lại địa chỉ của B cho Redirect server.
- Bước 4: Redirect server trả lại địa chỉ của B đến người gọi A. Nó không phát
yêu cầu INVITE như proxy server.
- Bước 5: User Agent bên A gửi lại bản tin ACK đến Redirect server để xác nhận
sự trao đổi thành công.
- Bước 6: Người gọi A gửi yêu cầu INVITE trực tiếp đến địa chỉ được trả lại bởi
Redirect server (đến B). Người bị gọi B đáp ứng với chỉ thị thành công (200 OK), và
người gọi đáp trả bản tin ACK xác nhận, cuộc gọi được thiết lập.Ngoài ra SIP còn có
các mô hình hoạt động liên mạng với SS7 (đến PSTN) hoặc là liên mạng với chồng
giao thức H.323.
Tổng quát lại trong mạng SIP quá trình thiết lập và hủy một phiên kết nối:
Hình 2-4: Thiết lập và hủy cuộc gọi SIP.
-
Bước 1: Đăng ký, khởi tạo và định vị đầu cuối.
Bước 2: Xác định phương tiện của cuộc gọi, tức là mô tả phiên mà đầu cuối
được mời tham gia.
Bước 3: Xác định mong muốn của đầu cuối bị gọi, trả lời hay không. Phía bị
gọi phải gửi bản tin xác nhận chấp thuận cuộc gọi hay từ chối.
Bước 4: Thiết lập cuộc gọi.
Bước 5: Thay đổi hay điều khiển cuộc gọi (ví dụ như chuyển cuộc gọi).
Bước 6: Hủy cuộc gọi.
Nhóm 1-Đ07VTA1
Page 18
Tìm hiểu hệ thống VoIP trên Asterisk
2.2.1.10 Liên vận giữa SIP và SS7
a. Thiết lập cuộc gọi cơ bản giữa SIP và PSTN
Hình 2-5: Thiết lập cuộc gọi cơ bản giữa SIP và PSTN.
- Bước 1: Khi người dùng SIP muốn bắt đầu một phiên hội thoại với người dùng
PSTN, SIP sẽ phát bản tin yêu cầu INVITE. Bản tin này tương tự như bản tin SETUP
ISDN. Gateway bắt đầu xử lý các tài nguyên dành riêng cho cuộc gọi. Các tài nguyên
này bao gồm cổng RTP/UDP bên phía IP và các khe E1/T1 bên phía PSTN.
- Bước 2: Bản tin INVITE được xác nhận bởi Gateway với bản tin SIP chứa mã
trạng thái 100. Bản tin này cũng đã xác nhận là Gateway đã đồng ý điều khiển cuộc
gọi.
- Bước 3: Bản tin INVITE được ánh xạ thành bản tin IAM ISUP và được gửi đến
PSTN. Và kết nối audio được thực hiện.
- Bước 4: PSTN đáp ứng với bản tin ACM ISUP để thông báo rằng bản tin IAM
đã được nhận thành công.
- Bước 5: Bản tin ACM chứa một trường được gọi là mã trạng thái người bị gọi
và được ánh xạ đến đáp ứng SIP tạm thời. Đáp ứng tạm thời là 180 cho thuê bao rỗi
và 183 cho không chỉ định. Đáp ứng tạm thời này được Gateway gửi đến SIP. Và
Gateway thực hiện kết nối audio.
- Bước 6: Xác nhận đáp ứng tạm thời ACK (PRACK, Provisional Response
ACK) được gửi trả lại Gateway từ SIP.
- Bước 7: Mã 200 được gửi trả lại SIP. Đây là một ACK.
- Bước 8: Bản tin xửlý cuộc gọi (CPM, Call Proceeding Message) được gửi trở
về từ PSTN với các mã chỉ ra trạng thái của cuộc gọi.
Nhóm 1-Đ07VTA1
Page 19
Tìm hiểu hệ thống VoIP trên Asterisk
- Bước 9: Thông tin trong bản tin CPM được đặt trong thân của đáp ứng SIP 18x
và được Gateway gửi đến SIP. Mã sự kiện ISUP được ánh xạ thành mã trạng thái SIP
như sau:
-
Mã sư kiện ISUP
Mã trạng thái SIP
1: thông báo
2: tiến hành
3: thông tin inband
4: chuyển cuộc gọi, đường dây bận
5: chuyển cuộc gọi, không trả lời
6: chuyển cuộc gọi, vô điều kiện
180: rung chuông
183: tiến hành cuộc gọi
183: tiến hành cuộc gọi
181: cuộc gọi đang được chuyển
181: cuộc gọi đang được chuyển
181: cuộc gọi đang được chuyển
Bước 10 và 11: đáp ứng tạm thời được trả về và được xác nhận.
Bước 12: người bị gọi trả lời cuộc gọi, PSTN gửi đến Gateway bản tin ANM.
Gateway thực hiện kết nối audio hai chiều.
Bước 13 và 14: cuộc gọi hoàn thành bên phía IP của kết nối.
b. Định hướng cuộc gọi SIP
Hình 2-6: Định hướng cuộc gọi SIP.
- Bước 1: Cuộc gọi được khởi đầu từ mạng PSTN, bản tin IAM được gửi đến
Gateway. Gateway thực hiện kết nối audio đến PSTN.
- Bước 2: Dựa vào thông tin mà nó nhận đươc trong bước 1, Gateway gửi bản tin
INVITE đến SIP 1.
- Bước 3: SIP 1 trả lại bản tin 3xx thông báo rằng người bị gọi ở một vị trí khác.
Thông tin này được mã hóa trong trường Contact của bản tin SIP.
Nhóm 1-Đ07VTA1
Page 20