Tải bản đầy đủ (.docx) (44 trang)

dịch vụ voip trên hệ thống asterisk

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.15 MB, 44 trang )

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
Đề tài:
DỊCH VỤ VOIP TRÊN HỆ THỐNG
ASTERISK
Báo cáo chuyên đề Dịch vụ VoIP trên hệ thống
Asterisk
Page 2
Báo cáo chuyên đề Dịch vụ VoIP trên hệ thống
Asterisk
• Lời mở đầu
Dựa vào tốc độ phát triển nhanh chóng của Internet trong những năm qua cho thấy
Internet gần như là cổng kết nối truyền thông chủ yếu trên toàn Thế Giới. Điển hình sau 15
năm Việt Nam kết nối với mạng Internet toàn cầu đã có hơn 27 triệu người sử dụng Internet.
Với sự đa dạng về dịch vụ cũng như người dùng, các nhà cung cấp đã nghĩ ngay đến dịch vụ
truyền thoại bằng thủ tục IP qua môi trường Internet. Đó chính là dịch vụ Voice over IP
(VoIP).
VoIP được xem 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, với 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à cạnh tranh về giá cước.
Việc đảm bảo chất lượng của dịch vụ không còn là mối lo ngại của nhiều người khi các nhà
khai thác mạng muốn tận dụng lượng khách hàng khổng lồ bằng việc thực hiện những giải
pháp mới có tính đột phá về công nghệ cũng như tài chính. Những phần ứng dụng phục vụ
cho việc triển khai VoIP đã ra đời, đáp ứng điều kiện về kinh tế trong triển khai VoIP, ở đây
phả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 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úc 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. Vì vậy trong báo cáo này nhóm em chọn tìm
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 trong những
giao thức báo hiệu quan trọng trong VoIP: SIP. Đây là một trong những giao thức được sử
dụng rộng rãi và đặc biệt SIP 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.
Page 3
Báo cáo chuyên đề Dịch vụ VoIP trên hệ thống
Asterisk
Chương 3: Phần mềm ứng dụng: Đề xuất 3 giải pháp VoIP, mục đích so sánh các giải
pháp nhằm giải thích cho quyết định chọn triển khai giải pháp Asterisk.
Chương 4: Triển khai hệ thống Asterisk: Trình bày các bước thiết lập, triển khai dịch vụ
VoIP. 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à nó mang lại
trong truyền thông ngày nay, qua đó cũng nêu những hạn chế còn tồn tại và hướng phát triển
của đề tài
Với kiến thức còn hạn chế nên trong lúc hoàn thành bài báo cáo không thể tránh khỏi
nhữ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!
Thành phố Hồ Chí Minh, Tháng 5, 2012
Nhóm thực hiện
Page 4
Báo cáo chuyên đề Dịch vụ VoIP trên hệ thống
Asterisk

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 gọi VoIP dùng
điện thoại với một bộ điều hợp, chúng ta sẽ nghe âm thanh mời gọi, quay số sẽ diễn ra 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 một loại điện
thoạ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
đổ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 để chuyển đổi. Những tín
hiệu khác nhau sẽ có cách chuyển đổi khác nhau như VoIP phone hay softphone, nếu dùng
Page 5
Báo cáo chuyên đề Dịch vụ VoIP trên hệ thống
Asterisk

điện thoại analog thông thường thì cần một TA (Telephone Adapter), sau đó giọng nói được
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. Để
gử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…).
• 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
Page 6
Báo cáo chuyên đề Dịch vụ VoIP trên hệ thống
Asterisk

muốn (không phụ thuộc vào chi phí) và thêm vào đó, bạn có thể nói chuyện với nhiều người
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ó thể 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 ảnh hưởng
lớn đến chất lượng cuộc gọi. Vì vậy tiếng vọng là một vấn đề cần giải quyết.
1.6 Một số chuẩn thoại dùng trong VoIP
- 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 mà 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-
based mà 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.

Page 7
Báo cáo chuyên đề Dịch vụ VoIP trên hệ thống
Asterisk
- Chuẩn IAX2 (Inter-Asterisk eXchange) là chuẩn riêng của Asterisk, IAX2 bây giờ cũng
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 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.7 Các phần mềm ứng dụng VoIP
- Asterisk là hệ thống chuyển mạch mềm, là phần mềm nguồn mở được viết bằng ngôn
ngữ C chạy trên hệ điều hành linux thực hiện tất cả các tính năng của tổng đài PBX và hơn
thế nữa. Asterisk ra đời vào năm 1999 bởi một chàng trai sinh năm 1977 tên là Mark Spencer.
- OpenSIPS (Open SIP Server) là một hệ thống mã nguồn mở của một SIP server, 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.
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)…
1.8 Các nhà cung cấp dịch vụ VoIP
Dịch vụ gọi thoại bằng máy tính thông qua: Skype, Yahoo, Google, MSN… Các dịch vụ
sử dụng phương thức VoIP tại Việt Nam 171 (VNPT), 177 (SPT), 178 (Viettel), 175
(VISHIPEL)…
Page 8
Báo cáo chuyên đề Dịch vụ VoIP trên hệ thống
Asterisk
Chương 2: TÌM HIỂU VỀ GIAO THỨC SIP
2.1 Giao thức SIP là gì?
SIP (session initiation protocol) là giao thức điều khiển thuộc lớp ứng dụng trong 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 mô tả phiên
truyền dẫn. 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.
Để cung cấp được nhiều dịch vụ hơn cho VoIP, 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).
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.
- 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.
Page 9
Báo cáo chuyên đề Dịch vụ VoIP trên hệ thống
Asterisk
2.2 Mô hình các thành phần và các thức hoạt động của bản tin SIP
 Mô hình và các thành phần:
Hình 2: Mô hình cấu trúc
User agent: có thể xem là thiết bị đầu cuối trong SIP. Nó thể thể là máy điện thoại hay
máy tính sử dụng giao thức SIP. Thiết bị đầu cuối ở phía người sử dụng có thể khởi tạo cuộc
gọi, cho phép thực hiện cuộc gọi ngang hàng thông qua mô hình client-server.
Proxy server : đóng vai trò như 1 server để yêu cầu những server thấp hơn những yêu cầu
từ 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ỳ.
Page 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.1 Định dạng địa chỉ
Địa chỉ của SIP còn được gọi là bộ định vị nguồn đa năng 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ụ : SIP:
, SIP:
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.
- Client gửi đến địa chỉ IP và số cổngtương ứng với URL SIP: phức tạp hơnbởi vì
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:
• 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.

 Định vị người dùng
Vị trí người gọi có thể thay đổi giữa nhiều hệ thống đầu cuối trong những khoảng thời
gian khác nhau. Các vị trí này có thể đăng kí động với server SIP.Nếu người dùng đăng nhập
ở nhiều trạm khác nhau, thì server có thể trả về nhiều vị trí. Server SIP tổng hợp số liệu đó,
sau đó cung cấp 1 danh sách những vị trí mà người dùng đã đăng kí, hoặc không có vị trí nào.
Page 11
Báo cáo chuyên đề Dịch vụ VoIP trên hệ thống
Asterisk
Hoạt động nhận danh sách các vị trí thay đổi tùy thuộc vào SIP server. Redirect server sẽ
trả về một danh sách hoàn chỉnh các vị trí và cho phép các client địnhvịngười dung
chínhxác.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.3 Thay đổi một phiên đang tồn tại
Ví 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
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 = Dòng bắt đầu
Tiêu đề bản tin
CRLF
[ nội dung bản tin]
2.2.5 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.
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
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
 Giải thích 1 số tiêu đề SIP:
Tiêu đề Giải thích
Call-ID 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.
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
gian 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,
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
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
Asterisk
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 :
 Một số mã trạng thái được định nghĩa trong SIP được trình bày trong bảng sau:
Lớp đáp ứng Mã trạng thái Giải thích
Thông tin 100 Đang cố gắng
180 Rung chuông
181 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
Page 15
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
5xx Sự cố của server

6xx Sự cố toàn mạng
Báo cáo chuyên đề Dịch vụ VoIP trên hệ thống
Asterisk
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
482 Vòng lặp được phát hiện
483 Quá nhiều hop
484 Địa chỉ không hoàn thành
485 Mơ hồ
486 Đang bận
Lỗi server 500 Lỗi server bên trong
501 Không thực thi
502 Gateway lỗi
503 Dịch vụ không có sẵn
504 Gateway timeout
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

Asterisk
Hình 3: Mô tả hoạt động của Proxy Server
Client SIP gửi bản tin INVITE cho để mời tham
gia cuộc gọi.
Các bước như sau:
Bước1: ử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ể đi từ 1
proxy server của miền yahoo.com và được proxy này chuyển đến proxy sever của
miền Hotmail.com)
Bước 2: Proxy server của miền hotmail.com sẽ tham khảolocation server để định vị vị trí hiện
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à ).
Bước 4:Sau khi xác định vị trí, proxy server gửi bản tin INVITE tới
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 ứ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ề
Bước 7: 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
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:
Page 17
Báo cáo chuyên đề Dịch vụ VoIP trên hệ thống
Asterisk
Hình 4: Mô tả 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, cũng như proxy server
(Yêu cầu này có thể đi từ một proxy server khác).
Bước 2: Redirect server định vị vị trí của bên B ở location server.
Bước 3: Location server 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 (200OK), 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 (đếnPSTN) hoặc là liên
mạng với chồng giao thức H.323.
 Tổng quát quá trình SIP thiết lập và hủy 1 phiên kết nối:
Page 18
Báo cáo chuyên đề Dịch vụ VoIP trên hệ thống
Asterisk
Hình 5: Mô tả quá trình SIP thiết lập và hủy 1 phiên kết nối
Bước 1: Khởi tạo, mời, định vị thiết bị đầu cuối trong hệ thống mình quản lí.
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.
2.2.9 SIP và SS7
 Thiết lập cuộc gọi cơ bản giữa SIP và PSTN
Page 19

Báo cáo chuyên đề Dịch vụ VoIP trên hệ thống
Asterisk
Hình 6: 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.
Page 20
Báo cáo chuyên đề Dịch vụ VoIP trên hệ thống
Asterisk
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:
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.
Mã sự kiện ISUP Mã trạng thái SIP
1: thông báo 180: rung chuông
2: tiến hành 183: tiến hành cuộc gọi
3: thông tin inband 183: tiến hành cuộc gọi
4: chuyển cuộc gọi, đường dây bận 181: cuộc gọi đang được chuyển
5: chuyển cuộc gọi, không trả lời 181: cuộc gọi đang được chuyển
6: chuyển cuộc gọi, vô điều kiện 181: cuộc gọi đang được chuyển
 Định hướng cuộc gọi SIP:
Hình 7: Định hướng cuộc gọi SIP
Page 21
Báo cáo chuyên đề Dịch vụ VoIP trên hệ thống
Asterisk
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.10 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.
Page 22
Báo cáo chuyên đề Dịch vụ VoIP trên hệ thống
Asterisk
- 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 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, gọn nhẹ và có khả năng mở rộngSIP 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ị, 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 những server của SIP như là (proxy server, redirect server…)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 máy proxy server, register server và redirect
server luôn nắm được địa điểm chính xác của thuê bao. Ví dụ thuê bao với địa chỉ
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… 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. SIP cũng 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…
Page 23
Báo cáo chuyên đề Dịch vụ VoIP trên hệ thống
Asterisk
Chương 3: PHẦN MỀM ỨNG DỤNG
3.1 Asterisk
3.1.1 Giới thiệu về Asterisk
Asterisk là phần mềm mã nguồn mở miễn phí về thoại qua VoIP, được viết bằng ngôn ngữ
C bởi Mark Spencer và ra đời vào năm 1999, Asterisk đầu tiên được thiết kế và triển khai
trên GNU/Linux nền x86 (của Intel), nhưng hiện nay Asterisk có thể chạy trên các hệ điều
hành khác như: Mac OS X, FreeBSD, Solaris, Linux, OpenBSD và Microsoft Windows.
Asterisk độc đáo ở chỗ nó cho phép các doanh nghiệp thiết lập một hệ thống tổng đài nội
bộ PBX (Private Branch eXchange) 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, được thêm nhiều tính năng mới nhờ tích hợp cả
chuyển mạch TDM và chuyển mạch VoIP, có khả năng mở rộng đáp ứng nhu cầu cho từng
ứng dung như mở rộng giao tiếp với mạng PSTN (Public Switched Telephone Network). 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 Ứng dụng và tính năng cơ bản của Asterisk
3.1.2.1 Voicemail (hộp thư thoại)
Tính năng cho phép hệ thống nhận các thông điệp tin nhắn thoại, mỗi máy điện thoại được
khai báo trong hệ thống Asterisk cho phép khai báo thêm chức năng hộp thư thoại. Khi số

điện thoại bị gọi bận hay ngoài vùng phủ sóng thì hệ thống asterisk định hướng trực tiếp cuộc
gọi đến hộp thư thoại tương ứng đã khai báo trước.
Voicemail cung cấp cho người sử dụng nhiều tính năng như: xác nhận password khi truy
cập vào hộp thư thoại, gửi mail báo khi có thông điệp mới.
Page 24
Báo cáo chuyên đề Dịch vụ VoIP trên hệ thống
Asterisk
3.1.2.2 Call Forwarding (Chuyển hướng cuộc gọi)
Ðây là tính năng thường được sử dụng trong hệ thống Asterisk. Chức năng cho phép
chuyển cuộc gọi đến một hay nhiều số máy điện thoại được định trước.
Một số trường hợp cần chuyển cuộc gọi như : Chuyển cuộc gọi khi bận, chuyển
cuộc gọi khi không trả lời, chuyển cuộc gọi tức thời, chuyển cuộc gọi với thời gian định
trước.
3.1.2.3 Caller ID (cuộc gọi có hiển thị số).
Với chức năng này thì số điện thoại của người gọi đến máy điện thoại của bạn sẽ được hiển
thị, nhằm giúp bạn có thể biết được ai đang gọi tới.
Ngoài ra Caller ID cũng cho phép chúng ta xác nhận số thuê bao gọi đến, nghĩa là dựa
vào caller ID chúng ta có tiếp nhận hay không tiếp nhận cuộc gọi từ phía hệ thống Asterisk
và ngăn một số cuộc gọi ngoài ý muốn.
3.1.2.4 Interactive Voice Response (IVR)
Interactive Voice Response (IVR) hay Automated Attendant (AA): đều được dùng để chỉ
chức năng tương tác thoại (tổng đài trả lời tự động).
Chức năng tương tác thoại có rất nhiều ứng dụng trong thực tế, khi gọi điện thoại đến
một cơ quan hay xí nghiệp thuê bao thường được nghe thông điệp như:“Xin chào mừng
bạn đã gọi đến công ty chúng XXX hãy nhấn phím 1 để gặp phòng kinh doanh, phím 2 gặp
phòng kỹ thuật, phím 3 gặp phòng hỗ trợ khách hàng…” sau đó tuỳ vào sự tương tác của thuê
bao gọi đến, hệ thống Asteisk sẽ định hướng cuộc gọi theo mong muốn.
Dịch vụ xem điểm thi, tiền cước điện thoại của thuê bao, tỉ giá tiền tệ hiện nay như
thế nào, hay kết quả sổ số, bản tin dự báo thời tiết… tất các những mong muốn trên đều có
thể thực hiện qua chức năng tương tác thoại.

3.1.2.5 Time and Date
Nhằm chỉ định các khoảng thời gian cụ thể cuộc gọi sẽ định hướng đến một số điện
thoại hay một chức nãng cụ thể khác, ví dụ trong công ty giám đốc muốn chỉ cho phép nhân
viên sử dụng máy điện thoại trong giờ hành chánh còn ngoài giờ thì sẽ hạn chế hay không
cho phép gọi ra bên ngoài.
3.1.2.6 Call Parking
Chức nãng Call Parking cũng thực hiện việc chuyển cuộc gọi nhưng có quản lý. Có một số
điện thoại trung gian và hai thuê bao có thể gặp nhau khi thuê bao được gọi nhấn vào số
điện thoại mà thuê bao chủ gọi đang chờ và từ đây có thể gặp nhau và đàm thoại.
Page 25

×