Xây dựng hệ thống PBX asterisk và giải pháp tính cước a2billing
Trang 1MỤC LỤC
Trang
Trang bìa lót
Nhiệm vụ đồ án tốt nghiệp
Lịch trình thực hiện đồ án tốt nghiệp
Lời cảm ơn i
Mục lục ii
Liệt kê bảng vii
Liệt kê hình viii
Liệt kê từ viết tắt xii
Tóm tắt xiv
Abstract xv
Trang 2LIỆT KÊ BẢNG
Trang
Trang 3LIỆT KÊ TỪ VIẾT TẮT
AAA Authentication – Authorization - Accounting
ACD Automatic Call Distribution
ADSL Asymmetric Digital Subcriber Line
AGI Asterisk Gateway Interface
API Application Program Interface
ATA Analog Telephone Adapter
B2BUA Back to Back User Agent
BRI Basic Rate Interface
CDR Call Detail Record
CGI Common Gateway Interface
CLASS Custom Local Area Signaling Service
CLI Command Line Interface
CODEC Compression/Decompression Algorithm
CRM Customer Relationship Management
DAHDI Digium Asterisk Hardware Device Interface
DHCP Dynamic Host Configuration Protocol
DID Direct Inward Dialing
DISA Direct Inward System Access
DNID Dial Number Identifier
DSL Digital Subcriber Line
DUC Dynamic Update Client
DTMF Dual Tone Multi-Frequency
FXO Foreign Exchange Office
FXS Foreign Exchange Station
GPL General Public License
GSM Global System For Mobile Communications
GUI Graphical User Interface
HTTP Hyper Text Transport Protocol
IAX Inter Asterisk Exchange
ISDN Integrated Services Digital Network
ISP Internet Service Provider
IVR Interactive Voice Response
LCD Least Cost Dialing
LCR Least Cost Routing
NAT Network Address Translation
Trang 4NGN Next Generation Networks
OSS Operations Support System
PBX Private Branch Exchange
PCM Pulse Code Modulation
PIN Personal Identification Number
PRI Primary Rate Interface
PSTN Public Switch Telephone Network
RCTP RTP Control Protocol
RPM Red Hat Package Manager
RTP Real Time Protocol
SDP Session Description Protocol
SER SIP Express Router
SIP Session Initial Protocol
SS7 Signaling System 7
TCP Transmission Control Protocol
UAC User Agent Client
UAS User Agent Server
UDP User Datagram Protocol
URI Universal Resource Identifier
URL Universal Resource Location
URL Uniform Resource Locator
VoIP Voice Over Internet Protocol
VSP VoIP Service Provider
WAV Waveform audio format
Trang 5Chương 1 TỔNG QUAN VỀ VOIP
1.1 Mạng điện thoại chuyển mạch công cộng
Mạng điện thoại chuyển mạch công cộng, hay còn gọi là PSTN (Public Switch Telephone Network), là mô hình mạng điện thoại truyền thống được sử dụng rộng rãi hiện nay Trong phần này, chúng ta sẽ tìm hiểu một cách sơ lược về những vấn đề cơ bản của PSTN
Ban đầu, việc truyền giọng nói được thực hiện bằng một mạch gọi là down, trong đó không sử dụng các số điện thoại để gọi như bây giờ mà dùng dây nối
ring-trực tiếp giữa hai thiết bị Thiết kế đơn giản này dần dần được cải tiến, từ việc chỉ
có một người nói phát triển thành hệ thống cho phép hai người cùng trao đổi trực tiếp với nhau Việc truyền tín hiệu thoại trên các cặp dây đồng đòi hỏi phải có các thành phần kèm theo khác như micro bằng cacbon, pin, nam châm điện và màng rung Ngoài ra phải có dây nối trực tiếp các thiết bị của người nói và người nghe với nhau Những yêu cầu như vậy làm cho hệ thống điện thoại không hiệu quả, chi phí cao và không linh hoạt
Điều này cũng dễ hiểu, ví dụ chúng ta có 4 máy điện thoại cần liên lạc với nhau, các máy đó phải nối trực tiếp với nhau như hình 2.1 Khi số lượng máy càng nhiều thì sơ đồ kết nối càng chằn chịt Nếu muốn kết nối một hệ thống có 8 máy thì
số lượng cặp dây đồng là 28 như hình 2.2
Trang 6Hình 1.1.1.1.1.1 Sơ đồ kết nối 8 máy
Một cách tổng quát, khi có N máy trong hệ thống thì phải có N(N-1)/2 cặp dây nối Rõ ràng, với cách thức cấu hình và hoạt động như trên, hệ thống không những đòi hỏi một một chi phí quá cao, mà cách thức tổ chức quản lý cũng rất khó khăn Chẳng hạn, khi cần thêm một máy vào một hệ thống đang có sẵn N máy thì phải nối thêm vào N cặp dây mới Để khắc phục những khuyết điểm của hệ thống trên, một cơ chế mới ra đời cho phép kết nối các cuộc gọi một cách dễ dàng và thuận lợi hơn nhiều Cơ chế này sử dụng một thiết bị chuyển mạch (switch), nó giúp cho người sử dụng có thể thực hiện cuộc gọi với máy điện thoại khác thông qua trung tâm chuyển mạch Mỗi máy chỉ cần kết nối với trung tâm chuyển mạch mà không cần phải nối trực tiếp với các máy khác
Ban đầu khi mới phát triển, bộ phận chuyển mạch do con người trực tiếp đảm nhận Hình 2.3 mô tả một sơ đồ cơ bản của hệ thống chuyển mạch lúc mới hình thành
Trải qua hơn 100 năm phát triển, các hệ thống chuyển mạch điện thoại ngày nay đã được thay thế bằng những hệ thống chuyển mạch tự động, sử dụng các công nghệ điện tử mới PSTN là mạng điện thoại sử dụng hệ thống chuyển mạch tự động đang được dùng một cách rộng rãi hiện nay
Trang 71.1.2 Những kiến thức cơ bản về PSTN
Các tín hiệu trong tự nhiên vốn là các tín hiệu tương tự Tín hiệu tương tự được thể hiện bằng các đại lượng vật lý biến thiên liên tục theo thời gian, ví dụ như biên độ dòng điện, sóng âm,… Tuy nhiên, trong thực tế, khi sử dụng tín hiệu tương
tự để truyền tin tức đi xa thường gây ra nhiều tổn thất về năng lượng, nhất là độ tin cậy của tín hiệu do quá trình thâm nhập của các nhiễu và mất mát trên đường truyền Do đó người ta thường chuyển các tín hiệu tương tự thành tín hiệu số trong các hệ thống viễn thông Tín hiệu số về cơ bản đó là một chuỗi các ký hiệu rời rạc được chọn từ một tập hữu hạn các ký hiệu rời rạc, ví dụ như các chuỗi các ký tự chữ hay số
Hệ thống thông tin số đã chứng tỏ được những ưu thế của mình so với hệ thống tương tự Chính vì vậy, trong hệ thống điện thoại người ta đã sử dụng các phương pháp điều chế số để chuyển đổi giữa tương tự và số Phương pháp điều chế xung mã PCM (Pulse Code Modulation) là một ví dụ được sử dụng rộng rãi
PCM là phương pháp mã hóa phổ biến được sử dụng trong các hệ thống điện thoại truyền thống Nó cho phép chuyển đổi các tín hiệu tương tự thành các chuỗi các bit 0 và 1 Quá trình này phải tuân theo định luật Nyquist, tức là một tín hiệu liên tục theo thời gian có thể được phục hồi chính xác nếu như băng thông của
nó là hữu hạn và tần số lấy mẫu lớn hơn hoặc bằng hai lần băng thông tín hiệu
Trong các hệ thống mã hóa thoại, quá trình của PCM như sau:
• Tín hiệu thoại là tín hiệu tương tự được cho qua bộ lọc thông thấp để loại
bỏ các thành phần có tần số cao hơn 4000 Hz
• Tín hiệu sau đó được lấy mẫu ở tần số 8000 Hz
• Sau khi được lấy mẫu, tín hiệu sẽ được chuyển thành dạng rời rạc qua quá trình lượng tử hóa Thông thường trong hệ thống thoại người ta sử dụng 8 bit để lượng tử và dùng giải thuật nén để có thể gán nhiều bit hơn cho các tín hiệu có biên độ nhỏ
Từ cách thức hoạt động như trên, có thể thấy được tốc độ của hệ thống thoại phổ biến là 64 kbps Có hai loại PCM 64 kbps được dùng nhiều là µ-law ở các nước Bắc Mỹ và a-law ở các nước Châu Âu Cả hai dạng này đều khá giống nhau, thay
vì phải dùng đến 12 hay 13 bit như trong PCM tuyến tính thì chúng chỉ dùng 8 bit cho từ mã Tuy nhiên µ-law tỏ ra hiệu quả hơn so với a-law trong những trường hợp tỷ số tín hiệu trên nhiễu thấp
Local loop dùng để chỉ vòng lặp trong đôi dây nối từ trung tâm chuyển mạch
đến máy điện thoại của khách hàng Quá trình giao tiếp giữa các thuê bao với trung
tâm được thực hiện trong vòng lặp này Trunk là đường giao tiếp giữa các trung tâm
chuyển mạch với nhau
Trang 8Hình 1.1.2.3.1.1 Mô hình mạng điện thoại dạng cây
Các thuê bao không nối trực tiếp với nhau mà kết nối với một trung tâm chuyển mạch Các trung tâm này lại kết nối với nhau và kết nối với trung tâm chuyển mạch cấp cao hơn Cứ như thế tạo ra một mô hình mạng điện thoại dạng hình cây như hình vẽ 2.4
Với việc kết nối như vậy, khi có quá nhiều cuộc gọi xảy ra cùng một lúc thì các trung tâm có thể điều khiển các cuộc gọi đi theo các hướng phù hợp để tránh gây ra nghẽn mạng
PSTN có hai dạng truyền tín hiệu (signaling), đó là user – network signaling
và network – network signaling.
Trong kiểu thứ nhất, user – network signaling, thiết bị đầu cuối người sử dụng
liên lạc với mạng điện thoại thông qua cặp dây xoắn Signaling phổ biến trong trường hợp này là DTMF (Dual Tone Multi-Frequency) Hình vẽ 2.5 dưới dây mô
tả cấu trúc của một bàn phím DTMF
Trang 9Bàn phím DTMF cấu thành từ một ma trận 4x4, mỗi hàng tương ứng với một tần số thấp và mỗi cột tương ứng với một tần số cao Mỗi phím bấm tương ứng với một tín hiệu sin có hai xung ở các vị trí thấp và cao tương ứng Ví dụ, khi phím 9 được bấm thì một tín hiệu sin có hai xung ở các tần số 852 Hz và 1477 Hz được gửi
đi Tín hiệu này được bộ phận chuyển mạch tiếp nhận, giải mã và xác định phím
nào đã được bấm DTMF là phương pháp in-band signaling.
Trong ISDN (Intergrated Services Digital Network), phương pháp truyền tín
hiệu là out-of-band signaling Với phương pháp này, tín hiệu được truyền trong
những kênh khác nhau Kênh truyền các tín hiệu voice, data, fax gọi là kênh bearer hay còn gọi là kênh B với tốc độ 64 kbps Kênh truyền các tín hiệu mang gọi là kênh điều khiển hay là kênh D
Đối với các văn phòng nhỏ thì chỉ cần dùng BRI (Basic Rate Interface) với 2 kênh B 64 kbps và một kênh D 16 kpbs Tuy nhiên với các công ty lớn hơn, lượng thông tin cần truyền nhiều hơn thì phải dùng PRI (Primary Rate Interface) với 23 kênh B 64 kbps và 1 kênh D 64 kpbs
Việc sử dụng out-of-band signaling có những ưu điểm như dùng được một
cách phức hợp trong các kênh thông thường, giảm nhiễu, hạn chế trễ tín hiệu,…
Kiểu thứ hai là giao tiếp network – network signaling, thường dùng các
phương tiện truyền dẫn như:
• T1/E1 với các cặp dây xoắn đôi: T1 là đường truyền có tốc độ 1.554 Mbps thường dùng ở Bắc Mỹ và Nhật E1 cũng là đường truyền số nhưng tốc độ cao hơn 2.048 Mbps dùng ở Châu Âu
• T3/E3, T4 với cáp xoắn đồng trục: T3 chứa 28 kênh T1, E3 chứa 16 kênh E1 và T4 chứa 168 kênh T1
• T3 và T4 dùng sóng vi ba
• SONET (Synchronous Optical Network) truyền qua cáp quang tốc độ lên đến vài Gbps
Network – network signaling sử dụng phương pháp in-band signaling như MF
(Multi-Frequency) hay RBS (Robbed Bit Signaling) MF khá giống với DTMF nhưng khác ở chỗ nó dùng tập các giá trị tần số khác và thay vì trao đổi giữa người dùng với nhau như DTMF thì MF lại trao đổi giữa các bộ phận chuyển mạch với nhau
Ngoài ra network – network signaling còn sử dụng các out-of-band signaling như SS7 (Signaling System 7) SS7 là phương thức trao đổi thông tin
giữa các bộ phận chuyển mạch với nhau nhằm điều khiển các cuộc gọi và dịch vụ CLASS (Custom Local Area Signaling Services)
PSTN cung cấp nhiều dịch vụ cho người sử dụng, ngoài những chức năng nghe nói thông thường, có thể kể ra một vài ứng dụng của PSTN như: cuộc gọi chờ, chuyển hướng cuộc gọi, conference, hiển thị số người gọi, tự động gọi lại,…
Trang 101.1.3 Những hạn chế của PSTN
Mạng điện thoại PSTN đã đáp ứng được khá tốt nhu cầu trao đổi thông tin thông qua âm thoại Tuy nhiên, ngày nay với sự phát triển của hệ thống mạng IP các doanh nghiệp luôn muốn tích hợp cả dữ liệu và tiếng nói lên một hạ tầng chung Các mạng này sẽ đáp ứng được những yêu cầu mới, dịch vụ mới với giá thành thấp
và chất lượng chấp nhận được
Qua một thời gian hình thành và phát triển của PSTN, người ta thấy rằng nó
có một số nhược điểm nổi bậc như:
• PSTN không thể tạo ra và triển khai các ứng dụng một cách nhanh chóng Khi sự cạnh tranh ngày càng cao trong thị trường, biện pháp hữu hiệu nhất
để tạo nên ưu thế cho mình chính là tạo ra các dịch vụ mới nhất và nhanh nhất PSTN là hệ thống mạng dựa trên một hạ tầng khép kín, nghĩa là chỉ có nhà cung cấp dịch vụ có quyền phát triển các ứng dụng trên dịch vụ đó Điều này gây khó khăn cho các công ty khi muốn đáp ứng đầy đủ nhu cầu của khách hàng Do đó người ta hướng đến một giải pháp mở cho phép nhiều nhà khai thác phát triển một cách sáng tạo và hiệu quả các ứng dụng
• Không thể truyền đồng thời data, voice và video trên hạ tầng mạng PSTN truyền thống với các dây điện thoại analog như hiện nay Cần phải sử dụng
hệ thống truyền dẫn băng rộng tốc độ cao như DSL, cáp, hay wireless để có thể tích hợp đồng thời voice, data và video
• Hạ tầng mạng xây dựng cho voice không thích hợp cho truyền dẫn data
• Sử dụng băng thông không hiệu quả PSTN dùng kiểu chuyển mạch circuit switching đòi hỏi 64-kpbs cho một cuộc thoại trên đôi dây.Nghĩa là khi có
người đang thực hiện một cuộc gọi trên đôi dây nào đó thì 64-kpbs sẽ được
sử dụng cho suốt cả quá trình thoại mà không có thành phần thứ ba nào có thể chen vào sử dụng nó
• Giá thành cho xây dựng và chi phí phải trả cho các nhà cung cấp dịch vụ cao
Xu thế tích hợp voice và data trên một mạng chung là nhu cầu tất yếu trong thời đại hiện nay khi mà Internet đã trở nên phổ biến rộng rãi VoIP được xem như
là một bước tiến mới giúp cải thiện đáng kể những nhược điểm của PSTN và phát triển được nhiều ứng dụng mới
1.2 Voice over Internet Protocol (VoIP)
VoIP là công nghệ truyền tín hiệu thoại trên đường truyền mạng nền tảng
IP Công nghệ này sử dụng những kỹ thuật riêng để mã hóa tín hiệu voice thành các gói tin có thể truyền tải qua mạng IP như LAN hay Internet VoIP không chỉ giải quyết được vấn đề nội bộ mà còn có thể kết nối với PSTN thông qua các Gateway VoIP làm được những gì mà PSTN có thể làm được với chi phí thấp hơn nhiều
Chuyển mạch gói
Trang 11Trong PSTN người ta sử dụng phương thức truyền bằng circuit switching Điều này có nghĩa là khi ai đó đang thực hiện cuộc gọi thì circuit switching tạo ra
một liên kết đòi hỏi các tài nguyên như đường dây, các switch, các kết nối phải được
sử dụng liên tục cho cuộc gọi này và một người khác không thể sử dụng các tài nguyên đó Sử dụng phương pháp này cho phép thu được chất lượng khá tốt nhưng làm hao phí tài nguyên
VoIP sử dụng packet switching để truyền tín hiệu thoại Phương thức hoạt động của packet switching khác với phương thức hoạt động của circuit switching Thay vì phải tạo ra một kết nối liên tục như là circuit switching, packet switching
chia tín hiệu cần truyền ra làm các phần nhỏ, các phần này sẽ được đóng gói thành
các packet để truyền đi và sẽ được tái hợp lại thành tín hiệu ban đầu ở nơi nhận
Cách làm này cho phép tận dụng tài nguyên một cách hiệu quả
Tín hiệu dải băng nằm giữa 0.3 và 3.4 KHz được xem như là tín hiệu voice Thông thường tín hiệu voice được lấy mẫu ở tần số 8 KHz Các mẫu này được lượng tử hóa đều hay không đều sử dụng một mức lượng tử cho trước Ví dụ khi dùng 8 bit lượng tử, tức là có 256 mức lượng tử, thì tốc độ tín hiệu là 64 Kbps Cơ chế này được gọi là mã hóa PCM và được dùng rộng rãi trong hệ thống PSTN hiện nay với các luật A và µ
VoIP đòi hỏi tốc độ bit thấp hơn so với PSTN nên không dùng phương pháp
mã hóa và giải mã của PSTN Cùng với sự phát triển của các công nghệ vi xử lý, tín hiệu và bộ nhớ, nhiều kỹ thuật mã hóa và giải mã ra đời để phục vụ cho các ứng dụng với tốc độ bit thấp như VoIP, trong đó được sử dụng rộng rãi nhất là các chuẩn G.723.1 và G.729A
G.723.1 có tốc độ từ 5.3 đến 6.1 Kbps với 30-ms frame và G.729A có tốc độ bit là 8 Kbps với 10-ms frame Frame ở đầu ra của G.723.1 có 159 bit khi hoạt động
Trang 12ở tốc độ 5.3 Kbps và có 192 bit khi hoạt động ở 6.4 Kbps Trong khi đó với G.729A thì độ dài frame đầu ra chỉ có 80.
G.729A được lắp đặt đơn giản hơn và sử dụng hiệu quả hơn G.723.1 nên được
sử dụng rộng rãi hơn Cả hai thiết kế này đều sử dụng cùng một lượng bộ nhớ là 10K ROM và 2K RAM, nhưng G.723.1 cần đến 16 MIP (Message Tranfer Parts) của dung lượng xử lý trong khi G.729.A chỉ cần dùng 10 MIPS
Ngoài ra còn có một số chuẩn CODEC khác Bảng 2.1 mô tả so sánh các chuẩn CODEC khác nhau
Nền tảng của công nghệ VoIP là hai giao thức cơ bản H323 và SIP (Session Initiation Protocol) Để truyền tín hiệu voice cả hai đều dùng chung một chuẩn RTP/UDP/IP
Chuẩn H.323 là chuẩn được phát triển đầu tiên bởi ITU (International Telecommunications Union), được sử dụng khá lâu và được tích hợp dễ dàng vào các
hệ thống tổng đài nội bộ PBX (Private Branch eXchange) để thực hiện các cuộc gọi qua VoIP thông qua các kênh truyền như ISDN Hiện nay các thiết bị VoIP
Trang 13các kỹ thuật bảo mật khá tốt Để thiết lập hệ thống VoIP dựa trên nền H.323 cần có một số thiết bị như điện thoại (Terminal), MCU (MultiPoint Control Unit), Gateway, GateKeeper Hình 2.8 mô tả các thành phần cơ bản của H.323.
Chuẩn SIP được phát triển bởi IETF (Internet Engineering Task Force) như một giao thức peer-to-peer gọn nhẹ và hiệu quả trên đường truyền mạng internet hay LAN Dựa trên nền tảng HTTP (Hyper Text Transfer Protocol) và MIME (Multi purpose Internet Mail Extensions), SIP hiệu quả hơn trong việc tích hợp voice và data theo thời gian thực và chiếm ít băng thông trên đường truyền SIP hỗ trợ đặt tên các account thông qua DNS (Domain Name System) hay URL (Uniform
Resource Locator) và ứng dụng PC-based phone do đó linh hoạt hơn khi thiết kế
mạng
Trang 14Hình 1.2.3.1.1.2 Các thành phần cơ bản của SIPCác vấn đề về SIP sẽ được đề cập kỹ hơn trong chương sau.
Ngoài H.323 và SIP ra, khi nói đến VoIP cần phải quan tâm đến một số protocol khác như MGCP (Media Gateway Control Protocol), H.248/MEGACO, RTP, RCTP
MGCP là sự kết hợp giữa giao thức đơn giản để điều khiển gateway SGCP (Simple Gateway Control Protocol) phát triển bởi Cisco và Telcordia với giao thức Internet để điều khiển các thiết bị IPDC (Internet Protocol Device Control) MGCP điều khiển và quản lý cuộc gọi thông qua các media gateway Nhiệm vụ của các media gateway là tạo nên sự chuyển đổi tương thích giữa các tin tức được dùng trong PSTN và trong mạng IP bằng cách chuyển các dạng mã hóa và giải mã từ G.711 trong PSTN sang G.723 hay G.729 trong VoIP Bên cạnh đó, media gateway cũng hỗ trợ loại trừ tiếng vọng thông qua phần cứng
RTP (Real-time Transport Protocol) và RCTP (RTP Control Protocol) là những giao thức điều khiển vận chuyển tín hiệu thời gian thực Các giao thức này rất quan trọng để đảm bảo real-time cho cuộc gọi
Một cuộc gọi thông thường chia làm nhiều phiên khác nhau bao gồm báo hiệu cuộc gọi, điều khiển cuộc gọi, thỏa thuận các phương thức truyền thông và phiên hội thoại Vị trí của RTP chính là ở phiên hội thoại
Qua việc thỏa thuận phương thức truyền thông, các bên tham gia hội thoại sẽ tiến hành mở hai cổng UDP kề nhau, cổng chẵn dùng để truyền tiếng nói (RTP) và cổng lẻ dùng để truyền thông tin trạng thái giám sát (RCTP) Thông thường hai cổng mặc định được chọn là 5004 và 5005
Trang 15địa chỉ
nguồn, địa chỉ đích, cổng tương ứng, header RTP và một số thông tin có liên quan khác
Header RTP cho biết các thông tin quan trọng về gói như phương pháp mã hóa, chỉ mục gói, nhãn thời gian,…Các thông tin này cho phép xác định sự ràng buộc giữa gói tin với thời gian Nhờ đó, các gói tin được sắp xếp theo đúng thứ tự thời gian thực trước khi được giải mã và phát lại
RCTP có nhiệm vụ giám sát đánh giá quá trình truyền tin dựa trên việc truyền một cách định kỳ các gói tin điều khiển tới các thành viên tham gia hội thoại cùng với cơ chế truyền dữ liệu Có thể kể ra bốn chức năng chính của RCTP như sau:
• Cung cấp cơ chế phản hồi chất lượng truyền dữ liệu Bên gửi thống kê quá trình gửi qua các bản tin người gửi cho các thành viên Bên nhận cũng làm nhiệm vụ thống kê các tin nhận qua bản tin người nhận Từ việc giám sát các thông tin từ bên gửi và bên nhận có thể điều khiển lại các thông số cần thiết để tăng chất lượng cuộc gọi Đây là chức năng quan trong nhất của RCTP
• Mỗi nguồn cung cấp gói tin RTP được định dạng bởi một tên CNAME RCTP
sẽ cho các thành viên biết tên này
• Quan sát số thành viên tham gia hội thoại bằng việc thống kê các bản tin
• Mang các thông tin thiết lập cuộc gọi, các thông tin về người dùng Đây là chức năng tùy chọn Nó đặc biệt hữu hiệu khi điều khiển các phiên lỏng, cho phép thêm bớt thành viên một cách dễ dàng mà không có ràng buộc nào
Thực ra để hệ thống VoIP hoạt đông hiệu quả nhất còn phải sử dụng nhiều giao thức khác Có thể tham khảo các chuẩn mà ITU hay EITF đưa ra để biết rõ hơn về các giao thức này
VoIP ra đời khai thác được một cách hiệu quả những tính năng của mạng truyền số liệu, khai thác tính linh hoạt trong việc phát triển các ứng dụng mới của mạng IP Những ưu điểm nổi bật của VoIP có thể kể ra dưới đây:
• Giảm đáng kể chi phí cuộc gọi: đây là ưu điểm rất lớn của VoIP so với dịch vụ điện thoại truyền thống VoIP có khả năng cung cấp những cuộc điện thoại đường dài với chi phí thấp và chất lượng dịch vụ chấp nhận
Trang 16tương đương với chi phí sử dụng internet Nguyên nhân là các tín hiệu voice
đã được mã hoá và truyền trong mạng IP nên khả năng sử dụng kênh đạt hiệu quả cao hơn Bên cạnh đó, tín hiệu thoại bây giờ đã được nén từ 64 Kbps trước đây xuống còn 8 Kbps, kết hợp với tốc độ xử lý nhanh hiện nay đảm bảo cho VoIP có thể đáp ứng đòi hỏi thời gian thực trong điều kiện băng thông hạn chế Khi thực hiện cuộc gọi trong mạng PSTN, chi phí bỏ
ra là để duy trì một kênh truyền 64 Kbps xuyên suốt từ máy này đến máy kia thông qua các tổng đài Với các cuộc gọi đường dài thì chí phí này rõ ràng là rất lớn Trong khi đó, khi gọi từ mạng PSTN dùng VoIP thì chi phí phải bỏ ra chỉ là để duy trì một kênh 64 Kbps từ máy gọi đến gateway Do
đó hiệu quả kinh tế cao hơn nhiều
• Tích hợp mạng thoại, mạng số liệu và mạng báo hiệu: trong VoIP, tất cả các tín hiệu voice, data hay các báo hiệu đều có thể đi chung trong mạng
IP Điều này cho phép tiết kiệm được một chi phí đáng kể khi đầu tư xây dựng cơ sở hạ tầng
• Khả năng mở rộng: các hệ thống tổng đài cũ thường là hệ thống kín nên rất khó thêm vào những tính năng mới Trong khi đó khi dùng VoIP với các
mã nguồn mở cho phép tự do thêm vào các tính năng mới, đồng thời hệ thống sẽ linh hoạt hơn và dễ dàng mở rộng hơn
• Không cần thông tin điều khiển để thiết lập kênh truyền vật lý: các gói thông tin trong mạng IP được truyền đến đích mà không cần phải thiết lập nên một kênh truyền riêng nào
• Quản lý băng thông hiệu quả: như đã nói ở trên, VoIP đã nén tín hiệu xuống còn 8 Kbps nên tiết kiệm được băng thông đáng kể Ngoài ra việc quản lý băng thông cũng linh hoạt hơn do khả năng điều tiết băng thông phù hợp
• Dịch vụ đa dạng: VoIP cho phép tạo ra nhiều tính năng dịch vụ mới như thông tin người gọi tới, nhiều số cho một thiết bị đầu cuối, truyền file, chia
sẻ dữ liệu, xem hình ảnh người gọi,…
• Kỹ thuật phức tạp: Đảm bảo thời gian thực trong truyền tín hiệu bằng các gói là rất khó do tình trạng mất gói và độ trễ không cố định
• Vấn đề bảo mật: VoIP sử dụng mạng Internet làm cơ sở hạ tầng nên vấn
đề bảo mật cần phải được đề cao vì Internet là môi trường phổ biến toàn cầu
và rất phức tạp đồng thời nó cũng là hạ tầng chung cho rất nhiều các ứng dụng khác
Với VoIP, người sử dụng có thể thực hiện các cuộc gọi không chỉ giữa các
Trang 171.2.6.2 Thoại thông minh
Sự kết hợp giữa Internet và mạng PSTN cho phép tạo ra những dịch vụ điện thoại thông minh Internet cho phép giám sát và điều khiển cuộc gọi hiệu quả hơn
Thoại qua Internet cho phép nhà cung cấp những dịch vụ tính cước cuộc gọi cho các khách hàng trong và ngoài nước Chỉ cần có PC kết nối Internet và phần mềm chuyển đổi như Quicknet’s Technologies Internet PhoneJACK là có thể thực hiện được điều này
“World Wide Web” đã làm một cuộc cách mang trong cách giao dịch với khách hàng của các doanh nghiệp Với tất cả các tiềm năng của web, điện thoại vẫn là phương tiện kinh doanh không thể thiếu “Điện thoại web” cho phép đưa các phím bấm lên trên web để kết nối các cuộc gọi
Khi sử dụng fax qua IP sẽ tiết kiệm được chi phí và kênh thoại Lúc này fax được truyền trực tiếp qua Internet chứ không dùng line điện thoại như thông thường
Gateway Call Center với công nghệ thoại qua Internet cho phép nhà kiểm duyệt trang web với các PC trang bị multimedia kết nối được với bộ phân phối các cuộc gọi tự động Một ưu điểm của thoại Ip là khả năng kết hợp thoại và dữ liệu trên cùng một kênh
Trang 18Chương 2 GIAO THỨC KHỞI TẠO PHIÊN SIP
2.1 Giới thiệu giao thức SIP
Giao thức khởi tạo phiên (Session Initiation Protocol - SIP) là giao thức thuộc lớp ứng dụng dùng để khởi tạo, hiệu chỉnh và kết thúc cuộc gọi
Các chức năng cơ bản của SIP bao gồm:
• Định vị người sử dụng: xác định hệ thống đầu cuối mà người dùng sử dụng cho truyền thông
• Tính sẵn có của người sử dụng: xem người sử dụng có sẵn sàng để giao tiếp không
• Khả năng người sử dụng: xác định các phương tiện truyền thông và các tham số cho các phương tiện sử dụng
• Khởi tạo phiên: báo chuông, thiết lập các thông số phiên
• Quản lý phiên: bao gồm việc chuyển đổi và kết thúc một phiên, thay đổi các thông số phiên và yêu cầu các dịch vụ
SIP là một thành phần được sử dụng chung với các giao thức khác để tạo thành
hệ thống đa phương tiện hoàn chỉnh Hai giao thức thường được sử dụng chung với SIP là giao thức vận chuyển thời gian thực RTP (Real-time Transport Protocol) và giao thức đặc tả phiên SDP (Session Description Protocol) RTP là giao thức cho phép vận chuyển các tín hiệu (gồm cả audio, video và text) đáp ứng theo thời gian thực Các tín hiệu này được mã hoá và chia thành các gói để truyền qua Internet SDP dùng để đặc tả các thông số của phiên
Một mạng SIP bao gồm nhiều thành phần, các thành phần đó có thể tương tác với nhau để thực hiện một phiên nào đó, đồng thời có thể tương tác với các thành phần của một mạng SIP khác một khi user có nhu cầu thực hiện kết nối tới một user khác không cùng mạng với nó
Trang 192.2 Các thành phần của SIP
User Agent bao gồm hai loại: User Agent Client và User Agent Server Để dễ hiểu, ta có thể định nghĩa User Agent (UA) là một ứng dụng mà có thể khởi tạo (thiết lập), chấp nhận và kết thúc một cuộc gọi trong một phiên kết nối Khi UA khởi tạo cuộc gọi bằng việc gửi bản tin yêu cầu INVITE thì UA sẽ đóng vai trò là một client Ngược lại UA nhận bản tin yêu cầu thì nó lại có vai trò là một server
Trong một phiên kết nối của SIP, UA thường tồn tại trên các máy user dưới dạng các ứng dụng như PC cài softphone nhưng nó cũng có thể là phần cứng được
“nhúng” sẵn phần mềm hỗ trợ giao thức SIP như IP phone…hoặc là cell phone, các cổng PSTN, thiết bị hỗ trợ cá nhân PDA…
User Agent Client (UAC) có nhiệm vụ gửi bản tin yêu cầu để khởi tạo phiên kết nối Chức năng này chỉ tồn tại trong quá trình gửi bản tin yêu cầu ( tạm gọi là quá trình giao dịch) Vì sau khi gửi xong bản tin, nó lại có thể nhận một yêu cầu từ một UA khác Vào lúc này, nó không còn là UAC nữa mà lại là UAS (User Agent Server)
Một UAC có thể gửi các bản tin yêu cầu như INVITE, ACK, OPTIONS, BYE, CANCEL và REGISTER
User Agent Server (UAS) có nhiệm vụ nhận bản tin yêu cầu, sau đó xử lý bản tin yêu cầu này và cuối cùng là gửi bản tin phản hồi về nơi đã phát bản tin yêu cầu đến cho nó Cũng như UAC, UAS chỉ có vai trò trong thời gian nhận bản tin yêu cầu và gửi lại bản tin phản hồi, khi quá trình này kết thúc thì nó lại có thể là một UAC nếu nó gửi yêu cầu cho một Client hoặc một Server khác
Như vậy, một thiết bị đầu cuối trong mạng SIP vừa có thể là UAC và vừa có thể
là UAS Tuy nhiên nó chỉ có thể đảm nhiệm một chức năng duy nhất trong một quá trình giao dịch Tùy thuộc vào việc nhận hay là gửi bản tin yêu cầu mà nó có thể là UAC hoặc UAS
Proxy Server là một thực thể trung gian có nhiệm vụ nhận các bản tin yêu cầu SIP, gửi lại bản tin đáp ứng về nơi đã gửi bản tin yêu cầu và cuối cùng là forward bản tin yêu cầu này đến UAS hoặc một Server khác Như vậy, Proxy Server vừa là một UAC vừa là một UAS Khi nó nhận bản tin yêu cầu từ một UAC thì nó đóng vai trò như một UAS Ngược lại, khi nó forward bản tin yêu cầu mà nó nhận được thì nó lại là một UAC
Tuy nhiên, Proxy Server không trực tiếp tạo ra bản tin yêu cầu như một UAC
mà tiếp nhận bản tin yêu cầu rồi chỉnh sửa bản tin này cho phù hợp rồi forward chúng
đi mà thôi Hơn nữa, Proxy Server chỉ có thể nhận và forward các bản tin báo hiệu SIP chứ không nhận hoặc forward bản tin thoại
Proxy Server được chia làm hai loại: Stateless Proxy và Statefull Proxy
Trang 20Stateless Proxy chỉ đơn giản là forward bản tin đi Khi nhận một bản tin yêu cầu, Stateless Proxy sẽ xử lý yêu cầu này sau đó nó forward bản tin yêu cầu đã được
xử lý mà không có lưu lại bất kì trạng thái nào của quá trình giao dịch Điều này có nghĩa là Stateless Proxy sẽ không nhớ là nó đã từng nhận và xử lý bản tin yêu cầu này Đây cũng chính là nhược điểm của Stateless Proxy Vì Stateless Proxy hoàn toàn không biết được quá trình giao dịch có thành công hay không và nó cũng không thể truyền lại các bản tin yêu cầu hay bản tin phản hồi đã gửi trước đó trong trường hợp bản tin bị mất hay thất lạc
Statefull Proxy phức tạp hơn Stateless Proxy Trong lúc nhận bản tin yêu cầu, Stateful Proxy sẽ tạo ra một trạng thái và giữ nó cho đến khi sự giao dịch kết thúc Vì thế nó có thể truyền lại các bản tin mà nó đã gửi trước đó
Ví dụ như khi một bản tin Request được forward đi thì đồng thời bộ định thời được bật lên, nếu như trong khoảng thời gian nào đó mà không nhận được bản tin Response thì Proxy Server sẽ tiến hành gửi lại bản tin Request đó Statefull còn có ưu điểm là có khả năng “fork” (rẻ nhánh) Có nghĩa là trong khi nhận một bản tin yêu cầu,
nó cũng có thể gửi đi một hay nhiều bản tin khác
Hầu hết các Proxy Server ngày nay đều là Statefull Proxy vì chúng đòi hỏi cấu hình phức tạp, các chức năng giám sát, rẻ nhánh, tính toán…và các chức năng thiết yếu của một Statefull Proxy
Thông thường với các hệ thống nhỏ, Registrar server được cài đặt cùng với Proxy Server/ Redirect Server Tuy nhiên với các hệ thống lớn, nếu tích hợp Registrar Server cùng với Proxy hoặc Redirect thì sẽ gây ra hiện tượng quá tải (over load), và một khi có lỗi xãy ra sẽ ảnh hưởng đến toàn bộ hệ thống Do đó, trong trường hợp đòi hỏi phải lưu trữ nhiều cơ sở dữ liệu thì Registrar được cài đặt trên một máy tính ở xa Khi đó, các Proxy Server/ Redirect Server muốn truy xuất để lấy database thì lại phải
sử dụng một giao thức khác (không phải giao thức SIP) – giao thức LDAP
Trang 212.2.3 Back to Back User Agent (B2BUA)
\
B2BUA là một thực thể logic của mạng SIP Nó tương tự như một Proxy Server: vừa là một UAC vừa là một UAS trong việc nhận và forward bản tin yêu cầu cũng như gửi lại bản tin phản hồi
Tuy nhiên, B2BUA khác với Proxy Server ở chỗ nó tham gia vào suốt quá trình hội thoại giữa hai đầu cuối Bản tin báo hiệu và bản tin thoại đều phải thông qua B2BUA B2BUA có khả năng ngắt kết nối trong khi Proxy Server thì không thể
Điều đặc biệt ở chỗ là B2BUA sẽ “ẩn” danh tính (địa chỉ IP hoặc SIP URIs) của bên đã gửi bản tin đến nó, thậm chí cho phép sửa đổi các thông tin trong bản tin như port, codecs, địa chỉ IP
Tuy nhiên, một số trường hợp vẫn có thể cấu hình B2BUA sao cho nó hoạt động như một Proxy Tức là bản tin báo hiệu vẫn thông qua B2BUA còn bản tin thoại thì lúc này sẽ trực tiếp gửi qua lại giữa các đầu cuối mà không thông qua B2BUA Asterisk Server hoạt động như một B2BUA, ta có thể cấu hình trong file sip.conf với thông số canreinvite=yes/no để gói tin thoại có thể hoặc không thể qua Asterisk Server
Trang 22Hình 2.2.3.1.1.2 Cấu hình Asterisk với canreinvite
Trong mô hình này, cả Tesla và Marconi đều đã biết địa chỉ của nhau
Đầu tiên, Tesla muốn thiết lập cuộc gọi với Marconi nên gửi bản tin yêu cầu INVITE đến Marconi Giả sử Marconi không sẳn sàng thiết lập phiên kết nối thì sau một khoảng thời gian khi Marconi không gửi lại bản tin đáp ứng nào chứng tỏ mình có khả năng thực hiện cuộc gọi thì một bản tin Request Timeout được gửi từ Marconi đến Tesla
Nếu Marconi đang rảnh, một tín hiệu chuông sẽ được gửi từ Marconi về cho Tesla, lúc này Tesla hiểu rằng Marconi đã nhận được bản tin INVITE Khi Marconi nhấc máy, một bản tin 200 OK từ Marconi gửi về Tesla báo cho Tesla biết rằng Marconi chấp nhận yêu cầu thiết lập phiên kết nối với Tesla Khi đó, Tesla sẽ gửi lại một bản tin ACK để Marconi biết rằng Tesla đã nhận được bản tin 200 OK Phiên kết
Trang 23Trong quá trình đàm thoại, cả hai bên Tesla và Marconi đều có quyền yêu cầu chấm dứt phiên kết nối bằng cách gửi một bản tin yêu cầu BYE Khi đó bên còn lại sẽ xác nhận việc nhận bản tin BYE bằng bản tin 200 OK để kết thúc phiên kết nối.
Mô hình Peer to Peer là mô hình không thông dụng bởi vì đòi hỏi các SIP phones phải lưu trữ lại tên và địa chỉ của các SIP Phones khác Vậy với một số lượng lớn các SIP phones thì sao? Lúc này cuộc gọi sẽ thực hiện qua một cơ chế khác đó là thông qua Proxy Server hoặc Redirect Server
Đầu tiên, user1 sẽ gửi bản tin INVITE để yêu cầu được thiết lập phiên kết nối với user2 Tuy nhiên user1 không biết chính xác địa chỉ của user1 trong mạng IP nên
nó gửi INVITE này đến cho Proxy Server - quản lý miền của user1
Trang 24Proxy Server lúc này sẽ gửi một đáp ứng 100 TRYING về cho user1 để thông báo cho user1 rằng proxy đang thay mặt user1 forward bản tin này đến cho user2.
Proxy Server sẽ truy xuất lên vùng dữ liệu của nó để tìm kiếm địa chỉ hiện tại của user2
Nếu user2 đã đăng kí với Registrar Server thì các thông tin như username, password của nó sẽ được lưu trữ trong vùng dữ liệu database để Proxy/Redirect có thể truy xuất bất cứ lúc nào
Location Service sẽ gửi trả lại cho proxy địa chỉ hiện tại của user2
Proxy Server sẽ gửi một bản tin INVITE mới dựa trên bản tin INVITE mà nó
đã nhận được từ user1 để gửi đến user2 Nhưng lúc này, Request URI trong dòng Start Line đã được đổi thành user2@alp.sev.com (địa chỉ hiện tại của User2)
User2 đáp ứng lại bản tin INVITE từ Server bằng bản tin 100 TRYING
SIP phone của User2 xuất hiện tín hiệu chuông để cảnh báo với user2 rằng có một cuộc gọi đang đến Đồng thời, một bản tin 180 RINGING từ SIP phone của user2 gửi về cho user1 thông qua Proxy để thông báo với user1 rằng user2 đã nhận được bản tin INVITE của user1
Khi user2 nhấc máy, một bản tin 200 OK được gửi từ sip phone của user2 đến user1 để thông báo với user1 rằng user2 đã nhận cuộc gọi
Khi user1 nhận được bản tin 200 OK, user1 hiểu rằng user2 đã nhấc máy và chấp nhận kết nối vói user1 Lúc này user1 sẽ gửi một xác nhận ACK về cho user2 để thông báo với user2 rằng nó đã nhận được đáp ứng 200 OK và lúc này cuộc gọi chính thức được thiết lập
Đầu tiên user1 gửi một bản tin INVITE đến Redirect Server là host1@seq.com
để yêu cầu được thiết lập cuộc gọi với user2
Redirect Server lúc này sẽ tìm kiếm trong cơ sở dữ liệu của nó (location
Trang 25Sau khi nhận được đáp ứng 302 từ phía redirect server, user1 sẽ xác nhận việc
đã nhận được bản tin này bằng bản tin ACK
Dựa vào địa chỉ của user2 trong bản tin đáp ứng 302 từ Redirect Server, user1
sẽ trực tiếp gửi bản tin INVITE đến cho user2 ở địa chỉ sev.alp.com
User2 nhấc máy để chấp nhận cuộc gọi, đồng thời một bản tin 200 OK được gửi
Hầu hết các cuộc gọi SIP thường có sự tham gia của Server Vì vậy Server có vai trò quan trọng trong việc tìm kiếm vị trí của user bị gọi
Mỗi user phải được đăng kí với Registrar Server về vị trí hiện tại của user đó bằng cách gửi một bản tin REGISTER Bản tin này sẽ chứa các thông tin về user như username và password, địa chỉ IP…Registrar Server sẽ lưu các thông tin này vào vùng
cơ sở dữ liệu của nó Proxy và Redirect có thể truy xuất lên cơ sở dữ liệu này để định
vị được user bị gọi
Trang 26Đầu tiên userB sẽ gửi một bản tin REGISTER đến Registrar Server để đăng kí.Registrar Server sẽ gửi một bản tin phản hồi 401 Unauthenticate về cho userB, thông báo với userB rằng Registrar server chưa nhận dạng được userB.
Sau đó user B sẽ gửi lại bảng tin REGISTER tới Registrar Server kèm theo các thông tin về chứng thực trong trường Authentication như Username, password đã được
mã hóa MD5, địa chỉ SIP URI…
Registrar Server sẽ gửi lại cho userB bảng tin 200 OK thông báo cho user B rằng việc đăng kí đã thành công
Cuộc gọi SIP thông qua mô hình B2BUA:
Về cơ bản, B2BUA hoạt động giống như một Proxy Server ở chức năng báo hiệu Tuy nhiên, B2BUA khác ở một Proxy ở chỗ là bản tin thoại cũng phải thông qua B2BUA chứ không trực tiếp truyền giữa hai user
Đầu tiên, UserA muốn thiết lập cuộc gọi với userB nhưng lại không biết chính xác vị trí của UserB nên userA gửi bản tin INVITE đến B2BUA
B2BUA tìm kiếm vị trí của userB trong cơ sở dữ liệu của nó rồi forward bản tin INVITE mới đến userB Bản tin INVITE này đã được B2BUA thay đổi trường Via với địa chỉ của chính nó
Khi userB nhận được bản tin INVITE từ B2BUA, một tín hiệu chuông 180 RINGING sẽ được gửi từ userB đến B2BUA báo với B2BUA rằng userB đã nhận được bản tin yêu cầu INVITE và đang rung chuông để cảnh báo bên bị gọi là có cuộc gọi đang đến
B2BUA gửi bản tin 180 RINGING về cho userA
Khi userB nhấc máy, một bản tin 200 OK sẽ được gửi đến B2BUA để thông
Trang 27UserA xác nhận bằng bản tin ACK gửi đến B2BUA, B2BUA lại forward bản tin này đến userB.
Phiên cuộc gọi được thiết lập
Lưu ý: Đến đây userA muốn gửi tín hiệu thoại đến userB thì trước tiến nó phải gửi bản tin thoại đến B2BUA, B2BUA mới chuyển bản tin thoại đến userB và ngược lại B2BUA hoàn toàn giấu danh tính của hai bên cho dù cuộc gọi đã được thiết lập Vì thế hai bên tham gia cuộc gọi không hề biết thông tin về nhau
H.323 dùng dạng trình diễn nhị phân cho các bản tin dựa trên ASN.1 và PER (Packet Encoding Rules) SIP thì sử dụng một dạng trình diễn khác, đó là dạng text, khá giống với HTTP và RTSP (Real Time Streaming Protocol), làm cho cú pháp cũng như là quá trình xử lý đơn giản hơn Bên cạnh đó, với dạng text, SIP còn tận dụng được sức mạnh của các ngôn ngữ xử lý như Perl
Sự phức tạp của H.323 còn thể hiện ở chỗ nó dùng nhiều protocol khác như H.450, H.225.0 và H.245 Việc sử dụng như vậy làm nẩy sinh nhiều vấn đề liên quan đến firewall Ngược lại, SIP sử dụng protocol đơn giản hơn, và chỉ yêu cầu những thông tin cần thiết mà thôi
Khả năng mở rộng là một thước đo rất quan trọng để đánh giá một protocol SIP dựa trên nền tảng của HTTP và SMTP (Simple Mail Tranfer Protocol), những protocol đã và đang được sử dụng rộng rãi, và được thiết kế với những tính năng cho phép mở rộng về sau Theo mặc định, những header không rõ ràng sẽ bị loại
bỏ Các clients sử dụng header Require để yêu cầu các tính năng nào đó từ server Chú ý rằng các tính năng này phải được server lưu trữ và nhận biết Khi nhận được yêu cầu, server sẽ kiểm tra xem thử những tính năng này có tồn tại hay không và cho câu trả lời tương ứng Các tính năng mới có thể được đăng ký với server, điều này có nghĩa là người sử dụng có thể viết ra những tính năng mới và đăng ký với server để sử dụng
Để tăng cường khả năng mở rộng, các lỗi trong SIP được chia làm 6 lớp, mỗi lớp tương ứng với một dạng lỗi SIP giống như HTTP nên cơ chế mở rộng của nó cũng giống với HTTP PEP (Protcol Extension Protocol) là một cách được sử dụng phổ biến
Trang 28H.323 cũng cung cấp cơ chế mở rộng khá tốt Tuy nhiên vẫn có một số giới hạn Thứ nhất, việc mở rộng chỉ cho phép với những nơi có các tham số non-standard Khách hàng không thể thêm giá trị mới vào cho tham số sẵn có Thứ hai, H.323 không cung cấp cơ chế để các thiết bị đầu cuối trao đổi thông tin với các mở rộng mà nó hỗ trợ Những giá trị tham số này không tự nói lên ý nghĩa của nó Đó là những giá trị của riêng các nhà sản xuất.
Chỉ sử dụng duy nhất một đường để truyền media và báo hiệu nên IAX cho phép nó được định hướng NAT trong suốt và chỉ sử dụng một port duy nhất nên dễ dàng trong việc quản lý Vì vậy không bao giờ có tình huống cuộc gọi đã được thiết lập mà không thể chuyển tín hiệu âm thanh (ngoại trừ vấn đề không đủ băng thông)
SIP tuân theo chuẩn IETF, trong khi đó IAX chỉ mới có một vài tài liệu mới xuất bản nên tiêu chuẩn của nó vẫn chưa được công nhận
IAX cho phép một đầu cuối kiểm tra tính hợp lý của số điện thoại quay để biết việc quay số đã hoàn tất chưa hay vẫn còn dang dở Điều này không được hỗ trợ trong giao thức SIP
Các bản tin trong IAX được gọi là các frame và được chia làm 3 loại chính là full, mini và meta frame Để xác định bản tin thuộc loại nào thì dựa vào bit F trong bản tin, nếu F=1thì bản tin thuộc loại full frame, còn F=0 thì có thể là mini hay meta frame
Loại
Mini Không yêu cầu bản tin
ACK từ IAX bên kia 4 bytes Vận chuyển dữ liệu thoại
Full Yêu cầu sự xác nhận từ bên kia 12 bytes Vận chuyển dữ liệu đòi hỏi độ tin cậy như bản tin báo hiệu
Meta Không yêu cầu bản tin
ACK từ IAX bên kia
Video frame:6 bytesTrunk frame:8 bytes
Vận chuyển video hay nhiều miniframe chỉ với một header
Trang 29Tóm lại là IAX là giao thức dành cho VoIP mới nhất cho đến thời điểm này với nhiều ưu điểm hấp dẫn như:
• Tối thiểu sử dụng băng thông
• Trong suốt với NAT
• Hiệu quả với cơ chế trung kế
2.5 Kết luận
SIP ngày càng trở nên phổ biến và đã trở thành một giao thức báo hiệu chính của VoIP Vì vậy việc tiêu chuẩn hóa giao thức báo hiệu SIP là cần thiết Giao thức SIP cho phép thực hiện truyền thông liên doanh nghiệp đa phương tiện và cung cấp một cấp độ phát minh và lợi thế cạnh tranh mới
Giao thức này sẽ được sử dụng để hội tụ rất nhiều ứng dụng, thiết bị và cách thức truyền thông để tạo ra những tính năng và khả năng mới.Các lợi ích của SIP sẽ trở thành một bộ phận không tách rời của hệ thống truyền thông và mạng thông minh
Trang 30Chương 3 GIỚI THIỆU VÀ CÀI ĐẶT ASTERISK
3.1 Tổng đài IP PBX
Ứng dụng phổ biến nhất và sớm nhất của VoIP, nền tảng để tạo ra IP-PBX,
là việc thiết lập gateway VoIP bên phía trung kế của PBX Gateway này đóng gói luồng thoại và định tuyến nó qua mạng VoIP Giải pháp này tận dụng các đặc tính hiện
có của tổng đài PBX như thoại hội nghị, chuyển tiếp cuộc gọi, …
Cuối cùng, các nhà phát triển phần mềm đã phát triển lên PBX “mềm”, hay PBX IP- PBX cung cấp khả năng chuyển mạch, thực hiện các dịch vụ gia tăng qua mạng dữ liệu Các cuộc gọi trong một tổng đài và các cuộc gọi giữa các tổng đài được định tuyến qua mạng IP, đi vòng qua toàn bộ mạng PSTN IP-PBX có thể giao tiếp với mạng PSTN thông qua Gateway
Các ưu điểm của IP-PBX xuất phát từ những ưu điểm của mạng chuyển mạch gói IP so với mạng chuyển mạch kênh, như:
• Quản lý và bảo dưỡng dễ dàng hơn
• Khả năng kết nối từ xa, khả năng di động
• Kết hợp thoại/dữ liệu tạo ra ứng dụng mới
• Dễ dàng phát triển các dịch vụ mới do cấu trúc mở và các giao diện chuẩn
• Dễ sử dụng do được hỗ trợ nhiều bởi phần mềm và giao diện đồ họa GUI
• Thông tin hợp nhất
PBX không thực hiện được một chức
năng của IP-PBX: Web, Instant message,
E-mail…
IP-PBX có đầy đủ các chức năng của một PBX truyền thống (CTI, VoiceMail, ACA
và kết nối ISDN ra PSTN)
PBX đòi hỏi phải có một hệ thống mạng
điện thoại nội bộ
Cho phép thực hiện liên lạc nội bộ qua mạng LAN ngay cả khi chưa có hệ thống PBX
PBX truyền tín hiệu thoại trên hệ thống
đường điện thoại nội bộ Nếu muốn
truyền dữ liệu, bắt buộc phải có thêm hệ
IP-PBX truyền dữ liệu và thoại trên cùng một đường dây
Trang 31thoại tương tự thoại khác nhau: điện thoại tương tự, điện thoại IP, máy tính cá nhân
Khả năng phát triển các loại hình dịch vụ
giá trị gia tăng kém
Có thêm nhiều dịch vụ giá trị gia tăng khác: telephone, e-mail, fax, web call back, web chat, instant messaging,
Mỗi đường dây thoại chỉ có thể thực hiện
được một cuộc gọi tại một thời điểm, do
đó không tiết kiệm băng thông
Tín hiệu trước khi chuyển đến đường truyền đã được thông qua các bộ nén và giải nén, băng thông cho mỗi cuộc gọi có thể được nén xuống còn 5,3 Kbits/s (chuẩn nén thoại G.723.1), thay vì 64 Kbits/s của thoại thường Do tính chất tiết kiệm băng thông như vậy nên với một đường dây thoại (CO line) có thể thực hiện được nhiều cuộc gọi hơn
Khó mở rộng, nâng cấp và bảo dưỡng Dễ dàng mở rộng, nâng cấp và bảo
dưỡng
Có thể đơn giản hoá quá trình triển khai tổng đài IP-PBX cho một doanh nghiệp như sau:
• Xây dựng mạng LAN
• Thiết lập hệ thống máy chủ và cài đặt phần mềm điều khiển IP-PBX
• Thiết lập các Gateway ra mạng PSTN hoặc Internet
• Thiết lập các đầu cuối VoIP
Bước thứ nhất là phức tạp nhất và đòi hỏi đầu tư lớn nhất nhưng thực ra lại đơn giản nhất vì đa số các doanh nghiệp đã có sẵn mạng LAN Bước thứ 2 quan trọng nhất, nhưng thực ra cũng chỉ đơn giản là cài đặt phần mềm lên một máy chủ Máy chủ này có thể là dành riêng cho IP-PBX hoặc cũng có thể được chia sẻ với các ứng dụng khác của doanh nghiệp Bước thứ 3 đòi hỏi phải mua thiết bị chuyên dụng để kết nối với mạng PSTN Gateway kết nối IP/PSTN thường là card PCI cắm trong máy chủ cộng với phần mềm điều khiển chuyên dụng
Các đầu cuối VoIP trong bước 4 có thể là phần mềm chạy ngay trên máy PC (là các Softfone như X-lite) hay là một thiết bị chạy độc lập (như IP Phone của Cisco)
và cũng có thể là các Mobile Fone hỗ trợ SIP
3.2 Tìm hiểu về Asterisk
Asterisk là hệ thống chuyển mạch mềm, là phần mề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
Trang 32tổ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 Anh ta viết phần mềm này ban đầu không ngoài mục đích hỗ trợ cho công ty của mình trong việc liên lạc đàm thoại hỗ trợ cộng đồng người sử dụng và phát triển Linux 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, đó là sự kết hợp giữa chuyển mạch VoIP và chuyển mạch TDM, đó là khả năng mở rộng đáp ứng nhu cầu cho từng ứng dụng…
Asterisk là một phần mềm thực hiện chức năng tổng đài điện thoại PBX mang tính cách mạng, tin cậy, mã nguồn mở và miễn phí, biến 1 PC thông thường chạy hệ điều hành Linux thành 1 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à 1 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 hóa 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
Và hiện nay Asterisk vẫn tiếp tục được cộng đồng những người dùng trên thế giới phát triển mạnh mẽ
Asterisk có thể được sử dụng cho nhiều thứ và có các đặc trưng bao gồm:
• Private Branch Exchange (PBX)
• Voicemail Services with Directory
• Conferencing Server
• Packet Voice Server
• Encryption of Telephone hoặc Fax Calls
• Heterogeneous Voice over IP gateway (H.323, SIP, MGCP, IAX)
• Custom Interactive Voice Response (IVR) system
• Soft switch
• Number Translation
• Calling Card Server
• Predictive Dialer
• Call Queueing với Remote Agents
• Gateway và Aggregation cho các hệ thống PBX
• Remote Office hay User Telephone Services
• PBX long distance Gateway
• Telemarketing Block
• Standalone Voicemail System
Hiện nay Asterisk đang trên đà phát triển nhanh được rất nhiều doanh nghiệp
Trang 33thực hiện các cuộc gọi nội bộ của công ty Không gói gọn thông tin liên lạc trong công
ty mà các ứng dụng giao tiếp với mạng PSTN hoặc mạng VoIP (như voice777) cho phép gọi ra bất cứ số điện thoại nào có trên mạng PSTN Ngoài ra việc tích hợp vào các ứng dụng như CRM và hệ thống Outlook làm cho khả năng ứng dụng của Asterisk linh hoạt hơn đáp ứng nhu cầu cần thiết cho người sử dụng điện thoại
Asterisk thoạt đầu được phát triển trên GNU/Linux nền x86 (Intel), nhưng giờ đây nó cũng có thể biên dịch và chạy trên OpenBSD, FreeBSD và Mac OS X và Microsoft Windows
Asterisk là hệ thống chuyển mạch tích hợp vừa là công nghệ truyền thống TDM vừa là chuyển mạch VoIP Hình trên cũng cho thấy khả năng giao tiếp của hệ thống Giao tiếp với điện thoại analog thông thường, giao tiếp với thiết bị điện thoại VoIP, ngoài ra còn có thể giao tiếp với mạng PSTN và các nhà cung cấp VoIP khác
Trang 343.2.2 Kiến trúc cơ bản của Asterisk
Về cơ bản kiến trúc của Asterisk là sự kết hợp giữa nền tảng công nghệ điện thoại và ứng dụng điện thoại, công nghệ điện thoại cho VOIP như SIP, H323, IAX, MGCP các công nghệ điện thoại cho hệ thống chuyển mạch mạch TDM như T1, E1, ISDN và các giao tiếp đường truyền thoại Analog Các ứng dụng thoại như chuyển mạch cuộc gọi, tương tác thoại, caller ID, voicemail, chuyển cuộc gọi…
Asterisk có một số chức năng chính đóng vai trò quan trọng trong hệ thống chuyển mạch cuộc gọi Khi khởi động hệ thống Asterisk thì chức năng Dynamic Module Loader thực hiện nạp driver của thiết bị, nạp các kênh giao tiếp, các format, codec và các ứng dụng liên quan, đồng thời các hàm API cũng được liên kết nạp vào
hệ thống Sau đó hệ thống PBX Switching Core của Asterisk chuyển sang trạng thái sẵn sàng hoạt động chuyển mạch cuộc gọi, các cuộc gọi được chuyển mạch tuỳ vào kế hoạch quay số (Dialplan) được thực hiện cấu hình trong file extension.conf
• Chức năng Application Launchar để rung chuông thuê bao, quay số, định hướng cuộc gọi, kết nối với hộp thư thoại…
• Scheduler and I/O Manager đảm nhiệm các ứng dụng nâng cao, các chức năng được phát triển bởi cộng đồng phát triển asterisk
• Codec Translator xác nhận các kênh nén dữ liệu ứng với các chuẩn khác
Trang 35• Tất cả các cuộc gọi định hướng qua hệ thống Asterisk đều thông qua các giao tiếp như SIP, Zaptel, IAX Nên hệ thống Asterisk phải đảm trách nhiệm
vụ liên kết các giao tiếp khác nhau đó để xử lý cuộc gọi
• Codec translator API: các hàm đảm nhiệm thực thi và giải nén các chuẩn
khác nhau như G711, GMS, G729…
• Asterisk Channel API: Giao tiếp với các kênh liên lạc khác nhau, đây là
đầu mối cho việc kết nối các cuộc gọi tương thích với nhiều chuẩn khác nhau như SIP, IAX, H323, Zaptel…
• Asterisk file format API: Asterisk tương thích với việc xử lý các loại file có
định dạng khác nhau như mp3, wav, gsm…
• Asterisk Aplication API: Bao gồm tất cả các ứng dụng được thực thi trong
hệ thống Asterisk như Voicemail, CallerID…
Ngoài ra, Asterisk còn có thư viện Asterisk Gateway Interface (AGI, tương tự như CGI) - cơ chế kích hoạt ứng dụng bên ngoài, cho phép viết kịch bản phức tạp với một số ngôn ngữ như PHP hay Perl Nói chung, khả năng viết các ứng dụng tùy biến rất lớn
Trang 36Đây là hệ thống chuyển mạch VoIP được xây dựng phục vụ các công ty có nhu cầu thực hiện trên nền tảng mạng nội bộ đã triển khai Thay vì lắp đặt một hệ thống PBX cho nhu cầu liên lạc nội bộ thì nên lắp đặt hệ thống VoIP điều này sẽ làm giảm chi phí đáng kể Hệ thống có thể liên lạc với mạng PSTN qua card giao tiếp TDM hoặc các gateway.
Một ngữ cảnh đặt ra ở đây là hiện tại công ty đã trang bị hệ thống PBX bây giờ cần trang bị thêm để đáp ứng nhu cầu liên lạc trong công ty sao cho với chi phí thấp nhất, giải pháp để thực hiện đó là trang bị hệ thống Asterisk và kết nối với hệ thống PBX đang tồn tại qua luồng E1 Ngoài ra để tăng khả năng liên lạc với mạng PSTN và VoIP khác, công ty có thể thực hiện kết nối với nhà cung cấp dịch vụ VoIP
Trang 373.2.4.2 Kết nối giữa các server Asterisk
Phương pháp trên ứng dụng rất hiệu quả cho các công ty nằm rãi rác ở các vị trị địa lý khác nhau nhằm giảm chi phí đường dài Ví dụ công ty mẹ có trụ sở đặt tại nước
Mỹ và các chi nhánh đặt tại Việt Nam với các địa điểm thành phố Hồ Chí Minh và Hà Nội Thông qua mạng WAN của công ty các cuộc gọi nội bộ giữa các vị trí khác nhau
sẽ làm giảm chi phí đáng kể
Trang 383.2.4.3 Các ứng dụng IVR, VoiceMail, Điện Thoại Hội Nghị
Ứng dụng thực hiện các server kết nối với hệ thống PSTN hay tổng đài PBX để triển khai các ứng dụng như tương tác thoại IVR Một ví dụ cho ứng dụng tương tác thoại đó là cho biết kết quả sổ số hay kiểm tra cước cuộc gọi giống dịch vụ 19001260 vậy Ứng dụng VoiceMail thu nhận những tin nhắn thoại từ phía thuê bao giống như chức năng hộp thư thoại của bưu điện thành phố Còn chức năng điện thoại hội nghị thiết lập cho nhiều máy điện thoại cùng nói chuyện với nhau
Trang 393.2.4.4 Chức năng phân phối cuộc gọi tự động ACD
ACD (Automatic Call Distribution): Phân phối cuộc gọi tự động Đây là chức năng ứng dụng cho nhu cầu chăm sóc khách hàng hay nhận phản hồi từ phía khách hàng Giả sử công ty có khả năng tiếp nhận cùng một lúc 10 cuộc gọi Như thế cuộc gọi thứ 11 gọi đến thì hệ thống giải quyết như thế nào? Bình thường thì sẽ nghe tín hiệu bận nhưng với chức năng phân phối cuộc gọi sẽ đưa thuê bao đó vào hàng đợi để chờ trả lời, trong khi chờ trả lời cuộc gọi thuê bao có thể nghe những bài hát hay do Asterisk cung cấp, trong lúc này nếu 1 trong 10 số điện thoại trở về trạng thái rỗi thì cuộc gọi đang chờ sẽ được trả lời Giống như chức năng của dịch vụ 1080 hay 116 của bưu điện thành phố vậy
IAX là giao thức báo hiệu VoIP được phát triển bởi tác giả của phần mềm Asterisk để khắc phục những hạn chế trong giao thức SIP Không giống như giao thức SIP chuyển tải thoại và báo hiệu trên hai kênh khác nhau (out of band), IAX chuyển tải thoại và báo hiệu trên cùng một kênh (in band) IAX giải quyết được vấn đề NAT đề cập trên phần giao thức SIP Mặc khác IAX là giao thức tối ưu trong việc sử dụng băng thông, cho phép nhiều gói dữ liệu thoại trên cùng một IP header, cơ chế chuyển tải nhiều cuộc gọi trên cùng một gói IP được gọi là trung kế (Trunk)
Có thể giải thích thêm cơ chế trung kế như sau: giả sử Tôi cần gửi 5 bức thư tới người bạn của Tôi, Tôi sẽ có hai hình thức để thực hiện, thứ nhất là mỗi bức thư Tôi
bỏ vào một phong bì vậy tổng cộng tôi phải sử dụng 5 phong bì để gửi đi 5 bức thư,
Trang 40cách thứ hai là Tôi bỏ 5 bức thư vào 1 phong bì và gửi đi vậy tổng cộng Tôi chỉ tốn 1 phong bì Qua phân tích trên, rõ ràng việc đưa 5 bức thư vào một phong bì gửi đi sẽ tiết kiệm hơn so với việc gửi 5 bức thư với 5 phong bì Cơ chế trên cũng giống như nhiều cuộc gọi được đóng thành gói và chuyển đi trên đường trung kế.
3.3 Cài đặt và cấu hình Asterisk
Tùy theo mục đích sử dụng và số lượng các user trong hệ thống mà thiết bị phần cứng được trang bị theo mức độ khác nhau Dưới đây là một số khuyến nghị theo cộng đồng Asterisk về cấu hình phần cứng cho Asterisk Server:
Mục đích Số lượng các kênh Cấu hình tối thiểu
vừa và lớn >15 Dual CPUs hoặc triển khai trên nhiều server
Có thể cài đặt Asterisk không cần kết nối mạng nếu có sẵn các gói phụ kiện, tuy nhiên do cần phải cập nhật hệ điều hành trước khi cài Asterisk nên tốt nhất là kết nối với đường truyền Internet Việc cài đặt nhanh hay chậm điều phụ thuộc vào tốc độ mạng Internet và cấu hình máy tính
Để cài đặt Asterisk, trước tiên chúng ta cần phải cài đặt hệ điều hành Linux trên máy tính của mình Có thể cài hệ điều hành Linux Fedora, CentOS, Redhat, hoặc Debian
Trong đồ án tốt nghiệp này, nhóm thực hiện đề tài sử dụng hệ điều hành Ubuntu Server 10.0.4 Quá trình chuẩn bị trước khi tiến hành cài đặt Asterisk được trình bày như sau
Cần thiết lập cho server một địa chỉ IP tĩnh để tiện cho việc truy cập vào giao diện web của Server Ở đây hệ thống Server có địa chỉ IP tĩnh là: 192.168.1.10