Professional Documents
Culture Documents
Tigravem Hi7875u h7879 th7889ng Voip Trecircn Asterisk
Tigravem Hi7875u h7879 th7889ng Voip Trecircn Asterisk
Mục lục
CHƢƠNG I: GIỚI THIỆU VỀ MẠNG VOIP .......................................................................... 4
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 ................................................................................................. 7
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 ................................................................ 9
2.1 Tổng quan về giao thức khởi tạo phiên SIP ................................................................ 9
2.2 Cấu trúc của SIP ........................................................................................................ 10
2.2.1 Các thành phần của SIP ..................................................................................... 10
2.2.1.1 Địa chỉ của SIP ............................................................................................... 11
2.2.1.2 Định vị server SIP .......................................................................................... 11
2.2.1.3 Định vị ngƣời dùng ........................................................................................ 12
2.2.1.4 Thay đổi một phiên đang tồn tại..................................................................... 12
2.2.1.5 Các bản tin của SIP ........................................................................................ 12
2.2.1.6 Tiêu đề bản tin ................................................................................................ 13
2.2.1.7 Bản tin yêu cầu ............................................................................................... 14
2.2.1.8 Bản tin đáp ứng .............................................................................................. 15
2.2.1.9 Thiết lập và hủy cuộc gọi SIP ........................................................................ 17
2.2.1.10 Liên vận giữa SIP và SS7 ........................................................................... 20
a. Thiết lập cuộc gọi cơ bản giữa SIP và PSTN .................................................... 20
b. Định hƣớng cuộc gọi SIP ................................................................................... 21
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 ...................................... 24
3.1 Asterisk...................................................................................................................... 24
3.1.1 Giới thiệu về phần mềm Asterisk ...................................................................... 24
3.1.2 Tính năng và lợi ích của Asterisk ...................................................................... 24
3.2 OpenSIP .................................................................................................................... 25
3.2.1 Khái niệm OpenSIPS ......................................................................................... 25
3.2.2 Tính năng và lợi ích của OpenSIPS ................................................................... 25
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
Nhóm 1 –Đ07VTA1
(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 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
- 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.
SIP Components
PSTN
- 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ỉ.
- 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ỳ.
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:
- 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 Call-
ID 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.
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
CSeq Priority Warning
Date Proxy-Authorization www-Authenticate
Encryption Proxy-Require
Expires Route
From Require
Record-Route Response-Key
Timestamp Subject
To User-Agent
Via
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.
ACK Khẳng định rằng client đã nhận đƣợc bản tin đáp ứng cho bản tin INVITE
Bảng 0-4: Các loại bản tin đáp ứng của SIP.
Một số mã trạng thái đƣợc định nghĩa trong SIP đƣợc trình bày trong bảng sau:
Bảng 0-5: Một số mã trạng thái đƣợc định nghĩa trong SIP
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.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à
UserB@hotmail.com).
- Bƣớc 4: 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 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ề userA@yahoo.com.
- Bƣớc 7: userA@yahoo.com 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 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.
b. Hoạt động của máy chủ chuyển đổi địa chỉ (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 0-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.
- 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
- 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ƣớ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.
- Bƣớc 4: Gateway gửi lại PSTN bản tin xử lý cuộc gọi CPG thông báo rằng
cuộc gọi đã đƣợc chuyển.
- Bƣớc 5: Gateway công nhận bản tin 3xx.
- Bƣớc 6: Dựa vào thông tin nhận đƣợc trong bƣớc 3, Gateway gửi bản tin
INVITE đến SIP 2.
- Bƣớc 7: Khi SIP 2 nhận đƣợc thông tin địa chỉ đầy đủ, nó trả lại đáp ứng tạm
thời là 18x. Gateway thực hiện kết nối audio đến SIP.
- Bƣớc 8: Dựa vào mã trạng thái 18x, Gateway gửi bản tin ACM đến PSTN.
- Bƣớc 9: Bản tin PRACK đƣợc gửi từ Gateway để xác nhận việc nhận đáp ứng
tạm thời.
- Bƣớc 10: SIP 2 đáp trả bản tin thành công với mã trạng thái 200.
- Bƣớc 11: SIP 2 trả lời cuộc gọi.
- Bƣớc 12:SIP 2 gửi bản tin 200 đến Gateway để thông báo rằng cuộc gọi đã
đƣợc trảlời và audio hai chiều đƣợc vƣợt ngƣỡng (cut through) bởi Gateway.
- Bƣớc 13: Gateway gửi bản tin ANM đến PSTN và tạo kết nối audio hai chiều.
- Bƣớc 14: Gateway xác nhận bản tin đã đƣơc SIP 2 gửi đi trong bƣớc 12
2.2.1.11 Tính năng của SIP
Giao thức SIP đƣợc thiết kế với những chỉ tiêu sau:
- Tích hợp với các giao thức đã có của IETF: Các giao thức khác của IETF có
thể xây dựng để xây dựng những ứng dụng SIP. SIP có thể hoạt động cùng với nhiều
giao thức nhƣ :
RSVP (Resource Reservation Protocol) : Giao thức giành trƣớc tài nguyên
mạng.
RTP (Real-time transport Protocol) : Giao thức truyền tải thời gian thực.
RTSP (Real Time Streaming Protocol) : Giao thức tạo luồng thời gian thực.
SAP (Session Advertisement Protocol) : Giao thức thông báo trong phiên
kết nối.
SDP (Session Description Protocol) : Giao thức mô tả phiên kết nối đa
phƣơng tiện.
MIME (Multipurpose Internet Mail Extension - Mở rộng thƣ tín Internet đa
mục đích) : Giao thức thƣ điện tử.
HTTP (Hypertext Transfer Protocol) : Giao thức truyền siêu văn bản.
COPS (Common Open Policy Service) : Dịch vụ chính sách mở chung.
OSP (Open Settlement Protocol) : Giao thức thỏa thuận mở.
- Đơn giản và có khả năng mở rộng SIP, không có các chức năng thừa nhƣng
SIP có thể sử dụng để thiết lập những phiên kết nối phức tạp nhƣ hội nghị Đơn giản,
gọn nhẹ, dựa trên khuôn dạng văn bản, và SIP đã khắc phục đƣợc điểm yếu của nhiều
giao thức trƣớc đây Các phần mềm của máy chủ ủy quyền, máy chủ đăng kí, máy chủ
chuyển đổi địa chỉ, máy chủ định vị… có thể chạy trên các máy chủ khác nhau và việc
cài đặt thêm máy chủ hoàn toàn không ảnh hƣởng đến các máy chủ đã có Chính vì
thế hệ thống chuyển mạch SIP có thể dễ dàng nâng cấp.
- Hỗ trợ tối đa sự di động của đầu cuối. Do có máy chủ ủy quyền, máy chủ đăng
ký và máy chủ chuyển đổi địa chỉ hệ thống luôn nắm đƣợc địa điểm chính xác của
thuê bao. Ví dụ thuê bao với địa chỉ ptit@vnpt.com.vn có thể nhận đƣợc cuộc gọi
thoại hay thông điệp ở bất cứ địa điểm nào qua bất cứ đầu cuối nào nhƣ máy tính để
bàn, máy xách tay, điện thoại SIP… Với SIP rất nhiều dịch vụ di động mới đƣợc hỗ
trợ.
- Dễ dàng tạo tính năng mới cho dịch vụ và dịch vụ mới. Là giao thức khởi tạo
phiên trong mạng chuyển mạch gói, SIP cho phép tạo ra những tính năng mới hay
dịch vụ mới một cách nhanh chóng. Ngôn ngữ xử lý cuộc gọi (Call Processing
Language) và Giao diện cổng kết nối chung (Common Gateway Interface) là một số
công cụ để thực hiện điều này. SIP hỗ trợ các dịch vụ thoại nhƣ chờ cuộc gọi, chuyển
tiếp cuộc gọi, khóa cuộc gọi… (call waiting, call forwarding, call blocking…), hỗ trợ
thông điệp thống nhất…
3.1 Asterisk
3.1.1 Giới thiệu về phần mềm Asterisk
Asterisk là phần mềm mã nguồn mở miễn phí về thoại qua VoIP, cho phép các
doanh nghiệp có thể lắp đặt hệ thống tổng đài PBX mà không cần phải mua một hệ
thống tổng đài ảo hay phần mềm sở hữu độc quyền cho một hệ thống tổng đài nội bộ.
Asterisk là công cụ phần mềm mở cho thoại phổ biến nhất trên thế giới. Nó cho phép
các máy tính của một tổ chức có thể liên lạc thông tin bằng thoại với nhau thông qua
giao thức VoIP, tích hợp chuyển mạch TDM, và nó đáp ứng đƣợc nhu cầu giao tiếp
với mạng điện thoại chuyển mạch công cộng (PTSNs).
Asterisk hoạt động trên nhiều hệ điều hành bao gồm FreeBSD, Linux, OS X,
Windows, và Solaris. Asterisk độc đáo ở chỗ nó cho phép các doanh nghiệp thiết
lậpmột hệ thống tổng đài nội bộ PBX chuyên nghiệp với đầy đủ các tính năng cần
thiết, truy nhập sử dụng dịch vụ thoại không tính cƣớc, và nó còn cung cấp một mức
độ lớn các tuỳ biến và tính linh hoạt cho các nhu cầu sử dụng cụ thể của từng đối
tƣợng. Đối với các cá nhân, tổ chức biết cách sử dụng Asterisk thì sẽ có nhiều lợi ích
và tính năng mà nó có thể cung cấp.
Một số nhà cung cấp mã nguồn mở PBX đã sử dụng Asterisk nhƣ một kĩ thuật
nền tảng cho các giải pháp về tổng đài riêng PBX hoặc phần mềm VoIP của họ Các
nhà cung cấp, chẳng hạn nhƣ Free PBX, Elastix, Trixbox và Call Weaver, tất cả đều
sử dụng Asterisk nhƣ là kĩ thuật lõi cho các giải pháp phần mềm của họ
3.1.2 Tính năng và lợi ích của Asterisk
Asterisk có một số lợi ích và một số nhƣợc điểm. Những lợi ích của việc sử dụng
Asterisk đã làm cho nó trở thành một giải pháp ngày càng phổ biến cho nhiều tổ
chức. Một số lợi ích của việc sử dụng Asterisk :
- Các cá nhân và công ty có thể chỉnh sửa phần mềm cho phù hợp với nhu cầu cụ
thể của họ.
- Ƣu điểm chính chính là tiết kiệm chi phí lắp đặt cũng nhƣ chi phí cho thoại.
- Asterisk linh hoạt và có khả năng chỉnh sửa để làm việc với một loạt các thiết
bị phần cứng.
- Truy cập vào hàng ngàn hƣớng dẫn trên internet để tạo các giải pháp PBX khác
nhau.
- Hỗ trợ kỹ thuật và truy cập vào các diễn đàn với chi phí hỗ trợ kỹ thuật hàng
tháng thấp.
- Các chức năng cho một giải pháp tổng đài PBX chuyên nghiệp thƣờng đƣợc
cập nhật.
- Asterisk có các GUI và giao diện ngƣời dùng cho phép truy cập trực quan và dễ
quản lý.
Một số nhƣợc điểm mà các giải pháp phần mềm mã nguồn mở PBX còn là :
- Hỗ trợ là một chi phí thêm trong hầu hết các giải pháp
- Khó khăn trong việc triển khai thực hiện hoặc hiểu rõ làm thế nào để sử dụng
phần mềm.
- Đối với doanh nghiệp: cần có thời gian và nguồn lực cần thiết để chi trả cho
việc đào tạo nhân viên biết cách cài đặt, cấu hình, và sử dụng phần mềm.
3.2 OpenSIP
3.2.1 Khái niệm OpenSIPS
OpenSIPS (Open SIP Server) là một hệ thống mã nguồn mở của một SIP server
Nó không chỉ là một SIP proxy/router vì OpenSIPS bao gồm những chức năng ở cấp
độ ứng dụng, OpenSIPS nhƣ là một máy chủ SIP, là thành phần cốt lõi của bất kỳ giải
pháp VoIP trên SIP server đa chức năng, đa mục đích: router, switch, application-
server, redirect-server, gateway, load-balancer.. Với một cơ cấu định tuyến linh hoạt
và tùy biến OpenSIPS hợp nhất tiếng nói, video, IM(Instant Message) và các dịch
vụ Presence một cách có hiệu quả cao nhờ thiết kế dạng Module có thể mở rộng Vì
vậy, OpenSIPS có hiệu quả cao, đáng tin cậy OpenSIPS là một trong những máy
chủ SIP nhanh nhất, với một thông lƣợng đƣợc xác định nó nhƣ là một giải pháp tối
ƣu cho doanh nghiệp, các ngành công nghiệp
3.2.2 Tính năng và lợi ích của OpenSIPS
3.2.2.1 OpenSIPS trong VoIP
tạo nên một hệ thống VoIP kiểu nhƣ PBX mà Asterisk vẫn làm, phải có thêm hàng
loạt các thiết bị liên quan đến medianữa mới gần đủ chức năng nhƣ Asterisk:
Media gateway (ví dụ FXO gate kết nối đi PSTN, cái này Asterisk có thể tự làm
hoặc là sử dụng ngoài)
- MCU (conference server)
- IVR gateway
- ACD Gateway
- Recording Server
- Voice Mail server
Trong khi các chức năng này Asterisk có sẵn. Nhìn chung, Kamailio là một sản
phẩm của hƣớng phát triển VoIP, đó là chia nhỏ và chuyên biệt hóa các thành phần
của hệ thống.
Với việc bƣớc đầu làm quen với VoIP, kiến thức còn hạn chế nhiều mặt, nên
trong chuyên đề này chúng em sẽ tìm hiểu về Asterisk, do hiện nay Asterisk khá phổ
biên và đƣợc sử dụng nhiều, các tài liệu hỗ trợ tìm hiểu cũng đa dạng. Việc xây dựng
mô hình mạng cũng tƣơng đối đơn giản, nằm trong khả năng của nhóm.
Asterisk 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í mà 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 và là một server xử lý cuộc gọi đầy đủ chức năng Asterisk là một nền tảng tích
hợp điện thoại vi tính hoá kiến trúcb mở. Nhiều hệ thống Asterisk đã đƣợc cài đặt
thành công trên khắp thế giới. Công nghệ Asterisk đang phục vụ cho nhiều doanh
nghiệp Asterisk đem đến cho ngƣời sử dụng tất cả các tính năng và ứng dụng của hệ
thống tổng đài PBX và cung cấp nhiều tính năng mà tổng đài PBX thông thƣờng
không có đƣợc.
4.1 Giới thiệu chung
- Mục đích:
Thực hiện thử nghiệm các hình thức truyền thoại qua môi trƣờng IP
Nghiên cứu các tính năng tối ƣu mà hệ thống Asterisk đem lại.
- Quy mô hệ thống:
Do hạn chế về cơ sở hạ tầng, thiết bị nên thí nghiệm ở đây đƣợc xây dựng với
quy mô nhỏ, chủ yếu nhằm mục đích nghiên cứu các tính năng một hệ thống VoIP.
4.2 Kết nối phần cứng
Các thiết bị dùng cho triển khai hệ thống Asterisk đƣợc kết nối theo mô hình sau:
PBX là một máy chủ sử dụng OS là linux (ubuntu), cài đặt Asterisk 1.6. Cấu
hình máy chủ:
- RAM: 512MB
- CPU: 2GHz
- HDD: 10GB
4.4 Thực hiện cuộc gọi VoIP, bắt và phân tích gói
Ta tiến hành khai báo 2 thuê bao 101 và 103 tại tổng đài rồi nhập user name,
password vào giao diện X Lite, chọn domain là IP của tổng đài PBX 10.10.10.10, khai
báo các thông số thuê bao. Kịch bản cuộc gọi: sau khi khai báo thuê bao xong ở cả hai
softphone, softphone 1(IP:10.10.10.5) thực hiện cuộc gọi tới soft phone 2
(IP:10.10.10.14). Softphone 2 nhấc máy, đàm thoại, softphone 1 gác máy kết thúc
cuộc gọi Sau đây là quá trình phân tích các gói tin bắt đƣợc trên wireshark, lƣu ý
rằng, máy chủ PBX thực chất là 1 máy ảo cài trong laptop 1, sử dụng chung card
mạng LAN nhƣng khác địa chỉ IP, vì vậy wireshark bắt đƣợc các bản tin đến và đi
trên cả laptop 1 và máy chủ PBX.
Tiếp theo 103 chấp nhận cuộc gọi nên nó gửi một đáp ứng OK với mã là 200 cho
PBX (gói 34), PBX xác nhận lại bằng bản tin Ack (gói 35) Sau đó, PBX gửi đáp ứng
OK vẫn với mã là 200 về cho 101 để thông báo cho 101 biết đƣợc là 103 đã chấp nhận
cuộc gọi của 101(gói 36), 101 xác nhận đã nhận đƣợc bản tin OK bằng bản tin Ack
đến PBX.
Sau khi Ack đã đƣợc gửi và nhận thì hai user của cuộc gọi có thể bắt đầu đàm
thoại với nhau.
RTP
packet
- Header RTP gồm các thông tin cần thiết cho ứng dụng đích cấu trúc lại mẫu
tiếng nói đã đƣợc chia nhỏ để truyền trên đƣờng truyền.
V (Version): Chỉ ra version của RTP – 2bit
P (Padding) : Cho biết có các byte đệm ở cuối vùng payload hay không ( Do
chiều dài vùng payload của gói RTP phải là bội số của 32) – 1 bit
X (Extension) : Cho biết header RTP có phần header extension hay không –
1bit
CSRC count: Cho biết số nhận diện nguồn phát trong vùng CSRC – 4bit
M (Marker): Đánh dấu khi bắt đầu truyền dữ liệu thoại. Hỗ trợ tính năng loại
bỏ khoảng lặng – 1bit
PT (Payload Type): Chỉ ra loại chuẩn mã hóa đƣợc dùng để mã hóa dữ liệu
thoại trong vùng payload – 7bit
Sequence number: Số thứ tự của các gói RTP đƣợc gửi đi Giúp đầu thu xác
định đƣợc sự mất gói và thứ tự gói. Giá trị ban đầu đƣợc thiết lập ngẫu nhiên
– 16bit
Timestamp: Chỉ ra thời điểm mà mẫu đầu tiên trong payload đƣợc tạo ra
(Thời điểm lấy mẫu đƣợc tham chiếu tới đồng hồ xung clock). Giá trị ban đầu
của timestamp là một giá trị ngẫu nhiên – 32bit
Synchonization Source Identifier (SSRC): Giúp đầu thu nhận dạng đồng bộ
phía đầu phát – 32bit
Contributing source (CSRC): Chứa một giá trị SSCR cho một thành phần
tham gia vào phiên giao dịch Vùng này đƣợc sử dụng khi dòng RTP xuất
phát từ một bộ trộn – 32bit
- Header Extension: Sử dụng cho các dạng tin yêu cầu thêm thông tin đặc biệt
nào đó – 32bit
- Payload: Dữ liệu cần truyền trong một gói RTP, trong trƣờng hợp VoIP dữ liệu
này là tín hiệu thoại đã đƣợc mã hóa – bội số của 32bit
Sau đây chúng ta sẽ bắt một gói tin RTP trong quá trình thực hiện đàm thoại để
phân tích:
Gói tin đƣợc bắt là gói tin thứ 49 trong số các gói tin giao tiếp giữa hai máy trong
quá trình thiết lập cuộc gọi: Máy nguồn PBX có địa chỉ IP: 10.10.10.10 gọi tới máy
đích có địa chỉ IP: 10.10.10.5
Giao thức RTP nằm bên trên giao thức UDP trong cấu trúc của một khung
Ethernet mà chúng ta bắt đƣợc Dƣới đây là phần gói tin RTP dƣới dạng các ký tự hệ
hexa:
So sánh với cấu trúc khung đƣợc đƣa ra ở trên, gói tin bắt đƣợc có:
Các bản tin RTP nhƣ vậy đƣợc trao đổi qua lại cho đến khi kết thúc phiên đàm
thoại.
[2] Henry Sinnreich, Alan B Johnston, “Delivering VoIP and Multimedia Services
with Session Initiation Protocol”, Second Edition, Wiley Publishing_Inc, 2006