chuyên đề voip
Trang 1đ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
Trang 2Chương I: Đề xuất 3 giải pháp VoIP, so sánh và quyết định giải pháp triển khai
Chương II : Triển khai VoIP trên hệ thống Asterisk
Chương III: Thực hiện cuộc gọi
Chương IV: Bắt và phân tích các gói tin
Chương IV: Kết luận
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 Nhóm 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!
1.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í thực hiện cuộc gọi 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 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
Trang 3truy nhập sử dụng dịch vụ thoại không tính cước (free), 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ọ
1.1.2 Tính năng – ưu và nhược điểm 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
2.1 OpenSIP
2.1.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à
Trang 4nhanh 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.
2.1.1.2Tính năng và lợi ích của OpenSIPS
2.1.1.1 OpenSIPS trong VoIP
Hình 1: OpenSIPS trong VoIP
.1.2.2 Kiến trúc OpenSIPS
OpenSIPS là một SIP proxy,nó đơn giản hơn B2BUA trong Asterisk bởi vì một
SIP proxy chỉ liên quan đến báo hiệu.OpenSIPS bao gồm hơn 70 module, mỗi module
có một chức năng riêng, với giao diện module PLUG and PLAY thì OpenSIPS dễ dàng
mở rộng và nâng cấp các tính năng của mà không ảnh hưởng tới phần lõi và càng làm tăng sự ổn định của hệ thống lõi
.1.2.3 Khả năng kết nối đến PSTN
OpenSIPS cần một SIP gateway để kết nối tới PSTN.Nó không có khả năng cài đặt thẻ điện thoại trong server.Thông thường,người ta sẽ thực hiện Asterisk như là một cổng PSTN cho OpenSIPS
.1.2.4 Giao tiếp với NAT
OpenSIPS có liên quan nhiều đến NAT,cho phép thoại hoặc luồng dữ liệu từ điện thoại IP hoặc phần mềm VoIP của khách hàng trực tiếp đến một nhà cung cấp dịch vụ
Trang 5VoIP.Thuật toán “chuyên ngành băm” trongOpenSIPS có thể được cấu hình để cân bằng tải bởi các"tên người dùng", "ruri", "callid",và các đặc tính khác.OpenSIPS là
"failover aware" và có thể làm một phần bổ sung rất hữu ích của giải pháp Asterisk
.1.2.6 Giao diện quản lí và cơ sở dữ liệu
Giao diện quản lí (cho tích hợp ngoài) thông qua FIFO file, XMLRPC hoặc Datagram (UDP hoặc Unixsockets)
OpenSIPS đa cơ sở dữ liệu backends - MySQL, PostgreSQL, Oracle, Berkeley, flat files và các loại database khác có thể xử lý unixodbc
.1.2.8 Dịch vụ truyền thông
OpenSIPS là một Proxy SIP và không có khả năng của bất kỳ mạng lưới dịch vụ truyền thông tin liên quan (phần tiếng nói của một cuộc điện thoại).OpenSIPS không phải là một nền tản mà ta sử dụng để tạo ra hệ thống như IVR,thư thoại,TTS và nhận biết tiếng nói…Điều này là do thiết kế
.1.2.8 Khả năng nâng cấp OpenSIPS
OpenSIPS có thể chạy trên hệ thống nhúng, hiệu suất thiết lập cuộc gọi có thể lên đến hàng trăm cuộc gọi/giây
Với hệ thống có bộ nhớ 4GB, OpenSIP có thể phục vụ hơn 300.000 thuê bao trực tuyến
Hệ thống có thể dễ dàng mở rộng bằng cách thêm máy chủ OpenSIPS
OpenSIPS hỗ trợ IPv4 và IPv6 và có thể phục vụ được Multiple domain
.1.3 Kết luận
OpenSIPS là Carrier Class SIP proxy server được sử dụng chủ yếu bởi các nhà cung cấp VoIP Nó được thiết kế để xử lý khối lượng lớn các cuộc gọi, cân bằng truyền tải SIP,giải quyết các kịch bản nâng cao cho NAT và liên quan đến báohiệu trong SIP.Nổi bật về tính năng linh hoạt và sự ổn định, OpenSIPS đang liên tục phát triển các tính năng đó trong Viễn thông Rất phổ biến trong các dịch vụ cung cấp VoIP/Internet Telephony, OpenSIPS cung cấp nền tảng truyền thông hoàn chỉnh: Vocie,Video, Instant Messaging và Presence.Hơn thế nữa cấu hình OpenSIPS server không phải là dễ dàng,nhưng đó là chìa khóa thành công và bảo mật cho dự án IP.Với đặc tính linh hoạt của OpenSIPS cho phép triển khai dich vụ tiên tiến và tiết kiệm được thời gian và chi phí
.1 Kamailio
Cũng giống như OpenSIP, Kamailio được phát triển lên từ OpenSER, nhưng OpenSIP thì lại đi theo hướng khác, hai nhánh này do sự xung đột về nhóm core nên được tách ra làm hai Đến Kamailio phiên bản 3.0 thì hai nhóm lại kết hợp và cùng chia
sẻ nhiều chức năng chungđể tương thích với nhau, có thể sẽ hợp nhất lạitrong tương lai
Trang 6- SIP Client (UA).
Asterisk là IP PBX, hỗ trợ rất đầy đủ tính năng của một tổng đài nội bộ, còn Kamailio thì được gọi là SIP Server, một phần của hệ thống SIP (chỉ quan tâm tới control), chứ không gọi là IP PBX (một bộ hoàn chỉnh cả control lẫn media) Cũng vì
lý do chỉ quan tâm tới control, nên khả năng xử lý của Kamailio là rất khủng khiếp Một server bình thường (2 core, vài GB RAM) có khả năng quản lý hàng chục ngàn subsciber, định tuyến hàng ngàn hướng khác nhau, và hàng trăm cuộc gọi/giây Asterisk
để đạt được khả năng đó thì phải sử dụng rất nhiều server mạnh.Nhìn chung cả Asterisk
và Kamailio đều hỗ trợ SIP Điểm khác nhau là ở chỗ, trong khi Asterisk là một hệ thống khá hoàn chỉnh, hỗ trợ cả điều khiển và các dịch vụ đa phương tiện thì Kamailio đơn thuần chỉ là SIP server trong mô hình VoIP, chính vì tính chuyên biệt như vậy nên hiệu suất của nó là rất cao Tuy nhiên, một mình Kamailio thì chưa đủ để 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
Trang 7CHƯƠNG II: TRIỂN KHAI HỆ THỐNG ASTERISK
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ú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 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
2.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
2.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:
Trang 8Hình 2: Các thiết bị trong hệ thống Asterisk
PBX là một máy chủ sử dụng OS là Windows, cài đặt Asterisk 1.6 Cấu hình máy chủ:
- RAM: 1GB
- CPU: 2GHz
- HDD: 250GB
2 Laptop sử dụng có cài đặt softphone X-Lite
Switch có đủ cổng để kết nối tới các máy tính khác
Kết quả mong muốn đạt được là thực hiện được cuộc gọi VoIP trong mạng LAN, dùng phần mềm Wireshark bắt và phân tích các gói tin SIP
2.3 Cài đặt phần mềm
.3.1 Máy chủ PBX
Cài đặt OS là Windows7giao diện của hệ điều hành:
Trang 9Hình 3: Giao diện hệ điều hành
.3.2 Cài đặt phần mềm Asterisk trên máy chủ
Trang 10Hình 4 – Cài đặt Net Framework 4.0 để hỗ trợ cài đặt Asterisk
Trang 13Hình 5- Quá trình cài đặt phần mềm Tổng đài PBX Asterisk
.3.3 Cài đặt softphone trên các laptop
Softphone được sử dụng là phần mềm X-Lite 4( download phần mềm miễn phí từ địa chỉ: http://www.counterpath.com/x-lite-4.0-for-windows-download.html)
Trang 14Hình 5- Quá trình cài đặt softphone X-Lite 4
Trang 15CHƯƠNG III: THỰC HIỆN CUỘC GỌI VOIP
Ta tiến hành khai báo 2 thuê bao 3000(IP:192.168.1.190) và 3001 (IP:192.168.1.101) tại tổng đài rồi nhập user name, passwordvào (hoặc để trống) trong giao diện X Lite, chọn Domain là IP của tổng đài PBX 192.168.1.100, khai báo các thông số thuê bao
Hình 6: Giao diện của phần mềm X Lite
Trang 16Hình 7 – Khai báo Account cho các Client
Trang 17Hình 9- Client 3001 đã kết nối đàm thoại thành công với client 3002 và đang
nhận cuộc gọi thứ 2 từ tổng đài PBX
Hình 10- Client 3001 đang giữ cuộc gọi (hold) với client 3002 và kết nối đàm
Trang 18.2 Khởi tạo phiên
Quá trình thiết lập phiên khởi tạo cuộc gọi giữa 2 thuê bao 3000( 192.168.1.190)
và 3001(192.168.1.101) được thực hiện bởi giao thức SIP (Session Initiation Protocol) Đầu tiên, 3000(192.168.1.190) gửi bản tin Invite thuê bao 3001(192.168.1.101) đến
Trang 19thuê bao.Tiếp theo 3001 chấp nhận cuộc gọi nên nó gửi một đáp ứng ACK cho PBX, PBX xác nhận lại bằng bản tin Ack Sau đó, PBX gửi đáp ứng về cho 3000 để thông báo cho 3000 biết được là 3001 đã chấp nhận cuộc gọi của 3000,3000 xác nhận đã nhận được bản tin 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.
Hình 12- bắt gói bản tin SIP trong cuộc gọi VoIP
.3 Quá trình đàm thoại
Sau khi phiên đàm thoại được khởi tạo, ở cả 2 softphone sẽ thực hiện mã hóa tín hiệu rồi truyền đi theo giao thức RTP Đầu tiên chúng ta tìm hiểu khái niệm giao thức RTP: RTP ( viết tắt của Real-time Transport Protocol) là một giao thức Internetchuẩn được sử dụng rộng rãi trong các ứng dụng thời gian thực như điện thoại Internet, video streaming Giao thức RTP định nghĩa cách thức cho phép các ứng dụng quản lý việc truyền tải thông tin với thời gian thực (real-time transmission)
Dưới đây là cấu trúc khung của một gói tin RTP:
Trang 20Hình 13: Cấu trúc khung của gói tin RTP
- 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
RTP packet
Trang 21hiệ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ứ 29900 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 có địa chỉ IP: 192.168.1.200 gọi tới máy đích có địa chỉ IP: 192.168.1.100
Hình 14- Bắt gói bản tin RTP
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
.4 Kết thúc phiên:
Khi 3000 hay 3001 muốn kết thúc cuộc gọi thì chúng sẽ đưa ra yêu cầu BYE, bất
cứ bên nào trong cuộc gọi đều có thể đưa ra yêu cầu này, trong trường hợp này thì bên
3000 yêu cầu kết thúc cuộc gọi trước, gửi bản tin bye đến PBX, PBX xác nhận lại Sau
đó, PBX gửi tới 3000 chấp nhận kết thúc cuộc gọi
Trang 22Hình 15- Bắt gói bản tin SIP kết thúc cuộc gọi
CHƯƠNG V: KẾT LUẬN
SIP là giao thức báo hiệu linh hoạt, mềm dẻo và rất thích hợp khi sử dụng trong
Trang 23xây dựng tài liệu chuẩn cho các phần mở rộng liên quan.
Asteriskđang liên tục phát triển các tính năng đó trong Viễn thông
Rất phổ biến trong các dịch vụ cung cấp VoIP/Internet Telephony, Asterisk cung cấp nền tảng truyền thông hoàn chỉnh : Vocie ,Video, Instant Messaging và Presence Hơn thế nữa.Cấu hình Asterisk server không phải là dễ dàng ,nhưng đó là chìa khóa thành công và bảo mật cho dự án IP Với đặc tính linh hoạt của Asterisk cho phép triển khai dich vụ tiên tiến và tiết kiệm được thời gian và chi phí
Hạn chế và hướng phát triển của đề tài
- Hạn chế của đề tài
Chưa khai thác và thể hiện được hết các chức năng của Asterisk Mới thực hiện thiết lập cuộc gọi giữa PC – PC , chưa thực hiện được những ứng dụng của Asterisk trong mô hình thực tế khác ví dụ như thực hiện cuộc gọi call video, cuộc gọi từ IP telephone – PC, IP telephone – IP telephone thông qua Asterisk…
- Hướng phát triển của đề tài
Tìm hiểu và nghiên cứu cách cấu hình Asterisk để có thể ứng dụng được tất cả các chức năng của nó trong mạng VoIP, phục vụ cho các doanh nghiệp, các ngành Công nghiệp một cách tối ưu nhất
DANH MỤC TỪ VIẾT TẮT
HTTP Hypertext Transfer Protocol