VoIP có thể sử dụng phần cứng hỗ trợ để thực hiện các cuộc gọi như số nội bộ, đường dài, di động hay quốc tế và có thể được sử dụng trong một môi trường PC hay loại điện thoại qua IP đặc
Trang 1dịch vụ voip trên hệ thống asterisk
Đây là phiên bản tài liệu đơn giản
Xem phiên bản đầy đủ của tài liệu dịch vụ voip trên hệ thống asterisk
HỌC VIỆN CÔNG NGHỆ VIỄN THÔNG CƠ SỞ
TẠI THÀNH PHỐ HỒ CHÍ MINH
KHOA VIỄN THÔNG II
BÁO CÁO CHUYÊN ĐỀ CHUYỂN MẠCH
Trang 3phải kể đến 3 hệ thống nổi bật là Asterisk, OpenSIP, FreeSwitch
Trong đó Asterisk không chỉ mang đến một tổng đài PBX (Private Branch Exchange) nhỏ
gọn, mà là một phần mềm mang tính cách mạng, tin cậy, mã nguồn mở và miễn phí Asterisk
biến một PC rẻ tiền thông thường chạy Linux thành một hệ thống điện thoại doanh nghiệp
mạnh mẽ Asterisk là một bộ công cụ mã nguồn mở cho các ứng dụng thoại
hiểu về VoIP trên hệ thống Asterisk Bố cục gồm 5 chương:
Chương 1: Giới thiệu về VoIP: Khái quát về công nghệ Voice over IP
(VoIP), để chúng ta
có thể hình dung một cách tổng quát về VoIP: VoIP là gì? Cách thức hoạt động ra sao? Ưu
nhược điểm của công nghệ này
Chương 2: Tìm hiểu về giao thức SIP: Giới thiệu một cách tổng quát về một
Trang 4VoIP Cách thức bắt và phân trích gói tin bằng phần mềm Wireshark
Chương 5: Tổng kết: Nhận xét về hệ thống Asterisk và những thành quả mà
Trang 5những sai sót Chúng em rất mong nhận được sự góp ý, hướng dẫn giúp đỡ của thầy và các
bạn Chúng em xin chân thành cảm ơn!
Chương 1: GIỚI THIỆU VỀ VOICE OVER IP
1.1 Giới thiệu về VoIP
VoIP là từ viết tắt của Voice over Internet Protocol Đây là một thuật ngữ dùng để chỉ
cách thức âm thanh được truyền đi như các gói tin IP thông qua internet VoIP có thể sử dụng
phần cứng hỗ trợ để thực hiện các cuộc gọi như số nội bộ, đường dài, di động hay quốc tế và
có thể được sử dụng trong một môi trường PC hay loại điện thoại qua IP đặc biệt(IP phone)
VoIP cho phép thực hiện cuộc gọi dùng máy tính qua mạng dữ liệu internet VoIP chuyển đổi tín hiệu thoại từ điện thoại tương tự (analog) thành tín hiệu
số (digital)
trước khi truyền, sau đó chuyển đổi ngược lại ở đầu nhận Khi tạo một cuộc
Trang 6thoại tương ứng hoặc dùng microphone
VoIP cho phép tạo cuộc gọi đường dài qua mạng 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 khác
nhau
1.2 Nguyên tắc hoạt động của VoIP
Cách đây nhiều năm chúng ta đã khám phá ra cách gửi tín hiệu đến một máy đích ở xa
bằng tín hiệu số bằng cách: trước khi gửi,chúng ta sẽ số hóa tín hiệu bằng ADC (Analog to
Digital Converter-Thiết bị chuyển đổi tín hiệu tương tự sang tín hiệu số), sau
đó truyền đi và
tại đầu nhận sẽ chuyển đổi ngược lại với DAC (Digital to Analog Converter - Thiết bị chuyển
Trang 7đổi tín hiệu số sang tín hiệu tương tự) để sử dụng
VoIP cũng làm việc giống như vậy, số hóa âm thanh thành các gói dữ
liệu,gửi dữ liệu đi
và chuyển đổi chúng lại thành dạng âm thanh tại đầu nhận 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à tín hiệu tương tự Tín hiệu tương tự sẽ
được chuyển đổi sang tín hiệu số nhờ vào một số thuật toán đặc biệt để
số hóa sẽ được đóng thành gói tin và được gửi qua mạng IP
Định dạng số có thể được điều khiển tốt hơn:chúng ta có thể nén, định tuyến, chuyển đổi
nó sang định dạng mới và hơn nữa tín hiệu số thì ít nhiễu hơn tín hiệu analog Mặc dù 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 Để
Trang 8gửi voice,thông tin phải được tách biệt thành những gói(packet)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 như 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/DECompressor)
1.3 Lợi ích của VoIP
Công nghệ VoIP đem lại những lợi ích chủ yếu sau:
• Giảm chi phí: Một giá cước chung sẽ được thực hiện với mạng internet và
do đó tiết
kiệm đáng kể các dịch vụ thoại và fax Sự chia sẽ chi phí thiết bị,kỹ năng của những người sử
dụng và dữ liệu làm tăng cường hiệu quả sử dụng mạng
• Đơn giản hóa: Một cơ sở hạ tầng tích hợp hỗ trợ tất cả các hình thức thông tin cho
phép chuẩn hóa tốt hơn và giảm thiểu các thiết bị,có thể hỗ trợ tối ưu hóa băng tầng động
• Tính thống nhất: Việc sử dụng thống nhất giao thức IP cho tất cả các ứng dụng hứa
hẹn giảm bớt tính phức tạp và tăng cường tính mềm dẻo Các ứng dụng liên quan có thể được
chia sẻ dễ dàng hơn(như dịch vụ danh bạ, an ninh mạng…)
Trang 9• Nâng cao ứng dụng: Thoại và fax là các lợi ích ban đầu của VoIP, các lợi ích được
mong đợi đó là các ứng dụng đa phương tiện và đa dịch vụ
1.4 Lợi ích của VoIP so với PSTN
Khi bạn dùng đường truyền PSTN, bạn phải trả phí thời gian sử dụng cho nhà cung cấp
dịch vụ PSTN: sử dụng càng nhiều bạn phải trả càng nhiều Thêm vào đó bạn không thể nói
với nhiều người khác nhau tại cùng thời điểm
Với kỹ thuật VoIP, bạn có thể nói chuyện toàn thời gian với người mà bạn muốn (điều cần
thiết là những người khác cũng phải kết nối internet tại cùng thời điểm), cho đến khi nào bạn
tại cùng một thời điểm
Trước đây khi dựa vào giao tiếp thoại trên PSTN, trong suốt kết nối giữa hai điểm, đường
kết nối chỉ dành riêng cho bên thực hiện cuộc gọi, không có thông tin khác có
Trang 10thể truyền qua
đường truyền này mặc dù vẫn thừa lượng băng thông sẵn dùng
Nhưng ngày nay, điều đó đã không còn là vấn đề nữa, với sự phát triển nhanh chóng và
được 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 với 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ẽ dược mang tự do
(free) bên trên cơ sở hạ tầng và thiết bị phần cứng có sẵn
1.5 Nhược điểm của VoIP
Nhược điểm thứ nhất chính là chất lượng của dịch vụ Khi truyền thoại qua mạng số liệu
thì có thể cho chất lượng thấp và không thể xác định trước được.Khả năng mất thông tin trên
mạng là hoàn toàn có thể xảy ra.Và vì trước khi truyền gói tin bị nén lại để tiết kiệm đường
truyền cũng làm cho chất lượng không cao,và thời gian xử lý lâu dài, gây trễ Một nhược điểm nữa đó là tiếng vọng Vì thời gian xử lý lâu nên tiếng vọng
Trang 12đồ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
là chuẩn của IETF
- 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
Trang 13thế nữa Asterisk ra đời vào năm 1999 bởi một chàng trai sinh năm 1977 tên
OpenSIPS đƣợc phát triển lên từ OpenSER
- FreeSwitch là phần mềm có thể tạo một softswitch hỗ trợ trên 200 cuộc gọi đồng thời
- Ngoài ra còn có Kamailio (phát triển từ OpenSER)…
Trang 14trong mô hình
OSI, được thiết kế một cách đơn giản kiểu module, rất dễ dàng mở rộng thiết lập cũng như
duy trì với các ứng dụng thoại, truyền thông đa phương tiện
SIP sử dụng các bản tin gọi là INVITE để thiết lập các phiên mang thông tin
thức IETF khác như là SAP, SDP và MGCP (MEGACO)
Cấu trúc của SIP tương tự với cấu trúc của HTTP (giao thức client-server): yêu cầu được
gởi đến từ người sử dụng SIP từ client đến SIP server Server xử lý các yêu cầu và đáp ứng
trở lại client, tạo nên sự thực thi SIP 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
Trang 15- Thiết lập cuộc gọi, chuyển cuộc gọi và kết thúc
Hình 1: Vị trí của SIP trong mô hình OSI
Nhƣ vậy SIP là một giao thức theo thiết kế mở vì vậy nó có thể đƣợc mở rộng phát triển
thêm các chức năng mới về sau này Nhờ sự linh hoạt này SIP cho phép đáp ứng các dịch vụ
thoại tiên tiến hiện nay bao gồm cả các dịch vụ di động và quan trong hơn là dịch vụ VoIP
Trang 16từ phía client 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 bằng cách chỉ ra các yêu cầu đến các
server trung gian tham gia vào tiến trình xử lí
Location Server: nhiệm vụ đị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 proxy server và redirect Server
Redirect Server: nhiệm vụ 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 như proxy server, redirect server không gửi ra bất cứ
1 yêu cầu nào, hay cũng không nhận hoặc huỷ cuộc gọi
Register Server: nhiệm vụ nhận các yêu cầu đăng ký đảm nhận chức năng an ninh trong
1 số trường hợp như xác nhận người sử dụng 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 server này 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ỳ
Trang 17Page 10
Báo cáo chuyên đề Dịch vụ VoIP trên hệ thống
Asterisk
Cách thức hoạt động của các văn bản 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 (Hyper 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.2 Cách thức định vị server SIP và user:
Định vị server: Khi client muốn gửi một yêu cầu, có hai cách:
- Client gửi yêu cầu trực tiếp đó đến một proxy server SIP đã được cấu hình:
dễ dàng
vì ứng dụng đầu cuối đã biết proxy server
Trang 18- Client gửi đến địa chỉ IP và số cổngtương ứng với URL SIP: phức tạp
vấn DNS (Domain Name System) Tiến trình như sau:
• Nếu phần host của URL SIP là địa chỉ IP, client tiếp xúc với server ở địa chỉ cho
Trang 19bị gọi từ chối cuộc gọi
2.2.3 Thay đổi một phiên đang tồn tại
Trang 20Ví dụ: Hai đối tác đang trò chuyện và muốn thêm vào một người thứ ba 1 bản tin invite
mới sẽ được phát sử dụng cùng Call-ID nhưng nội dung và các tiêu đề mang thông tin mới
Nghĩa là gửi đến 1 phiên multicast hoàn tàon mới, chỉ giữ lại số nhận dạng
cũ
2.2.4 Bản tin trong SIP
Có hai loại bản tin SIP:
- Bản tin yêu cầu từ client (hướng lên)
- Bản tin đáp ứng từ server (hướng xuố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 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
Trang 21củ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
Page 12
Báo cáo chuyên đề Dịch vụ VoIP trên hệ thống
Asterisk
• 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 Tiêu đề thực thể Tiêu đề yêu cầu Tiêu đề đáp ứng
Accept Content-Encoding Authorization Allow
Accept-Encoding Content-Length Contact Proxy-Authenticate
Accept-Language Content-Type Hide Retry-After
Call-ID Max-Forwards Server
Contact Organization Unsupported
Trang 22CSeq Priority Warning
Date Proxy-Authorization www-Authenticate
mời hoặc sự đăng kí của client
Cseq 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
To 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 From 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
Via Ghi lại đường đi của yêu cầu để cho phép các server SIP trung
Trang 23gian chuyển các câu trả lời trở lại cùng đường đi
Encryption Chỉ định nội dung và một số tiêu đề bản tin đã được mã hóa như thế nào
Content-Length Chỉ ra kích thước của nội dung bản tin (tính bằng octet) Content-type
Chỉ ra loại media của nội dung bản tin (văn bản/html,…)
Expires Nhận dạng ngày và thời gian khi bản tin hết hạn
Accept Chỉ ra loại media nào được chấp nhận trong bản tin đáp ứng
Subject Cho thông tin về bản chất của cuộc gọi
Page 13
Báo cáo chuyên đề Dịch vụ VoIP trên hệ thống
Asterisk
2.2.6 Bản tin yêu cầu:
Các yêu cầu cũng có thể xem như là các phương pháp để User và server định
vị, mời và
quản lí cuộc gọi
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,
Trang 24phiê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
REGISTER Đầ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
2.2.7 Bản tin đáp ứng:
Đá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 Page 14
Báo cáo chuyên đề Dịch vụ VoIP trên hệ thống
Trang 26403 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
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
Trang 27420 Mở rộng sai
480 Không sẵn có
481 Cuộc gọi hoặc sự trao đổi
482 Vòng lặp đƣợc phát hiện
483 Quá nhiều hop
484 Địa chỉ không hoàn thành
505 Phiên bản SIP không hỗ trợ
Lỗi toàn cầu 600 Bận ở mọi nơi
603 Từ chối
604 Không tồn tại ở mọi nơi
606 Không chấp nhận
2.2.8 Thiết lập và hủy cuộc gọi SIP
Hoạt động của Proxy Server:
Page 16
Báo cáo chuyên đề Dịch vụ VoIP trên hệ thống
Trang 28Asterisk
Hình 3: Mô tả hoạt động của Proxy Server
Client SIP userA@yahoo.com gửi bản tin INVITE cho userB@hotmail.com
để mời tham
gia cuộc gọi
Các bước như sau:
Bước1: UserA@yahoo.comgửi bản tin INVITE cho userB ở miền
hotmail.combản tin này
đến proxy server SIP của miền hotmail.com (bản tin INVITE này cũng có thể
tại hiện tại của UserB
Bước 3: Location server sẽ trả lại vị trí hiện tại của UserB (giả sử là
userB@hotmail.com)
Bước 4:Sau khi xác định vị trí, proxy server gửi bản tin INVITE tới
userB@hotmail.com
Proxyserver thêm địa chỉ của nó trong một trường của bản tin INVITE
Bước 5:UAS(1 dạng hệ thống đầu cuối sử dụng bản tin SIP) của UserB đáp
Trang 29ứng cho proxy
server với bản tin 200OK
Bước 6: Proxy server cảu bên B Hotmail.com gửi đáp ứng 200OK(báo hiệu cho phép kết
nối, kết ni61 thành công) trở về userA@yahoo.com
Bước 7: UserA@yahoo.com gửi bản tin ACK (khẳng định bên phía A đã nhận được hồi
đáp từ bên B) cho UserB thông qua proxy server.(mũi tên trong hình sai???) Bước 8: Proxy server chuyển bản tin ACK cho userB@hostmail.com
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
Hoạt động của Redirect server: