teddy_nhojbong

New Member
Link tải luận văn miễn phí cho ae Kết nối
CHƯƠNG I: TÌM HIỂU KỸ THUẬT VOIP 1
1.1 Giới thiệu về voip 1
1.1.1 VoIP là gì 1
1.1.2 cách hoạt động 1
1.1.3 Các kiểu kết nối sử dụng VoIP 1
1.1.4 Các thành phần trong mạng VoIP 2
1.1.5 Các giao thức báo hiệu phổ biến trong VoIP 2
1.2 Đặc tính của voip 3
1.2.1 Ưu điểm 3
1.2.2 Nhược điểm 3
1.2.3 Yêu cầu chất lượng đối với VoIP 4
1.3 Tổng quan về giao thức sip 4
1.3.1 Tổng quan về giao thức khởi tạo phiên SIP 4
1.3.2 Cấu trúc của SIP 5
1.3.3 Hoạt động và các bản tin của SIP 6
1.3.3.a Địa chỉ của SIP 6
1.3.3.b Định vị server SIP 7
1.3.3.c Định vị người dùng 7
1.3.3.d Thay đổi một phiên đang tồn tại 7
1.3.3.e Các bản tin của SIP 7
1.3.3.f Tiêu đề bản tin 8
1.3.3.g Bản tin yêu cầu 10
1.3.3.h Bản tin đáp ứng 11
1.3.4 Thiết lập và hủy cuộc gọi SIP 14
1.4 chức năng của sip 16
CHƯƠNG II: TÌM HIỂU DỰ ÁN OPENSIPS 18
2.1 Giới thiệu opensips 18
2.2 Đặc điểm opensips 18
2.2.1 Giao diện module PLUG and PLAY 18
2.2.2 Hỗ trợ ENUM 19
2.2.3 Hỗ trợ thoại 19
2.2.4 Chức năng Load-Balancer 19
2.2.5 NAT traversal 20
2.2.6 Định tuyến với chi phí thấp nhất (Least cost routing) 20
2.2.7 Hỗ trợ SRV và NAPTR DNS 20
2.2.8 Call Processing Language (CPL) 21
2.2.9 XCAP hỗ trợ cho các Presence Agent 21
2.2.10 Giao diện quản lí và cơ sở dữ liệu 22
2.2.11 Linh hoạt và mạnh mẽ về ngôn ngữ lập trình 22
2.2.12 XMPP gateway 22
2.2.13 Gateway to SMS 22
2.2.14 IP blacklist 23
2.2.15 Xác nhận, ủy quyền,thống kê 23
2.2.16 Các giao thức vận chuyển 23
2.2.17 Khả năng nâng cấp OpenSIPS 23
2.3 Ứng dụng của opensips 24
2.3.1 Ứng dụng trong dịch vụ VoIP 24
2.3.2 Ứng dụng trong các doanh nghiệp 25
2.3.3 SIP trunking 25
CHƯƠNG III: PHÂN TÍCH XỬ LÍ CUỘC GỌI TRONG OPENSIPS 26
3.1 Core and modules 26
3.2 Các thành phần trong tệp tin opensips.cfg 26
3.3 Quá trình xử lí bản tin trong tệp tin opensips.cfg 27
3.3.1 SIP proxy 28
3.3.2 Hoạt động của Stateful 28
3.3.3 Scripting OpenSIPs : 29
3.3.4 Listen interfaces: 29
3.3.5 Logging 29
3.3.6 Số lượng process 30
3.3.7 Các thông số khác 31
3.3.8 Modules và các thông số của chúng. 31
3.3.9 Các script cơ bản. 34
3.3.10 Các hàm của lõi. 34
3.3.11 Các giá trị của lõi. 34
3.3.12 Các biến giả. 35
3.3.13 Các biến script 35
3.3.14 Tổng quan Attribute-Value Pair (AVP) 36
3.3.15 Flag 36
3.4 Cơ bản định tuyến 38
3.4.1 Định tuyến bản tin yêu cầu và phản hồi. 38
3.4.2 Các bản tin yêu cầu đầu tiên và sau đó. 40
3.4.3 Các đoạn Script định tuyến 41
CHƯƠNG IV: XÂY DỰNG MẠNG VOIP DÙNG OPENSIPS 47
4.1 Cài đặt opensips 47
4.1.1 Hỗ trợ hệ điều hành và các gói phụ thuộc 47
4.1.2 Các bước cài đặt OpenSIPS trên Linux Ubuntu 47
4.2 Thiết lập cuôc gọi từ pc – pc thông qua sip server 51
4.2.1 Mô hình 52
4.3 Phân tích cuộc gọi: 55
KẾT LUẬN VÀ HẠN CHẾ, HƯỚNG MỞ CỦA ĐỀ TÀI 65
TÀI LIỆU THAM KHẢO 66
Khối định tuyến Error : khối này được thi hành khi một lỗi của bản tin yêu cầu phát hiện.
Sessions, dialogs và transactions.
Các định nghĩa được sử dụng trong OpenSIPS:
SIP transaction: là một yêu cầu được gửi đi và nhận lại các bản tin trả lời ( như là: register và 200 OK).
SIP dialog: một kết nối tồn tại trong một khoảng thời igan giữa hai thực thể SIP ( như là một dialog được thiết lập giữa hai UAC từ bản tin INVITE tới bản tin BYE)
SIP session: một luồng dữ liệu (audio/video/text) giữa hai thực thể SIP.

Hình 3.1 :Transaction và Dialog
3.3 Quá trình xử lí bản tin trong tệp tin opensips.cfg
Tệp tin opensips.cfg la một script được thi hành khi nhận được một bản tin SIP. Ví dụ, nếu người dùng A muốn nói chuyện vơi người dung B, thì nó gửi một bản tin INVITE. Bản tin này được xử lí trong khối định tuyến chính. Quá trình xử lí này chứa một t_relay() (chuyển bản tin) hay một t_reply/s1_send_reply( gửi một hồi âm phủ định), hay quá trình này có thể hủy bản tin đó tại cuổi khối định tuyến đó sử dụng lệnh exit().

3.3.1 SIP proxy
Mỗi proxy sẽ có các quyết định định tuyến khác nhau, chỉnh các bản tin yêu cầu trước khi gửi chúng đi tới thành phần tiếp theo. Các bản tin response se được định tuyến qua cùng các proxy mà các bản tin yêu cầu đã đi qua theo chiều ngược lại.
Một SIP proxy có thể hoạt động ở chế độ statless hay là stateful. Khi một SIP proxy làm việc như là một công cụ gửi các gói tin SIP đơn giản, thì nó sẽ chuyển các bản tin đó tới đích được xác định bởi bản tin yêu cầu. Chế độ stateless sẽ hủy bỏ bất kì thông tin nội nào về bản tin đó, sau khi bản tin đã được chuyển đi. Đặc điểm này giới hạn về việc tính cước và cư xử với trường hợp cuộc gọi thất bại.
Khi OpenSIP biết rằng bản tin 200 OK tương ứng với bản tin INVITE trước đó, thi nó đang làm việc ở chế độ stateful. Việc này quản lí các bản tin response trong một khối on_reply_route(). Với quá trình xử lí stateless, mỗi bản tin được xử lí mà không đi kèm với một ngữ cảnh nào.
Khi yêu cầu các công việc phức tạp hơn như là tính cước, chuyển cuộc gọi, và voicemail, thì sử dụng chế độ stateful. Mỗi transaction sẽ được lưu lại trong bộ nhớ và các trường hợp thất bại, các bản tin response và việc truyền lại các bản tin sẽ được gắn liền với transaction này. Stateful transaction được xử lí bởi modun TM và thường sử dụng lệnh t_relay().
3.3.2 Hoạt động của Stateful
Khi hoạt động ở chế độ stateful, một proxy đơn giản là một bộ xử lí SIP transaction.
Các bước xử lí :
1. Kiểm tra sự hợp lệ của bản tin yêu cầu
2. Tiền xử lí thông tin đinh tuyến.
3. Xác định đích của bản tin yêu cầu.
4. Chuyển bản tin yêu cầu đến đích.
5. Xử lí tất cả các bản tin response.
Một stateful proxy tạo ra một server transaction mới khi nhận được mỗi bản tin yêu cầu mới. Bất kì sự truyền lại một bản tin yêu cầu nào sẽ được xử lí bởi server trancsaction đó.
Ví dụ: Mỗi bản tin yêu cầu đi ngang qua một SIP proxy, thi nó sẽ làm các bước sau:
Bước 1: Kiểm tra sự hợp lệ của bản tin yêu cầu.
• Kiểm tra kích thước bản tin để tránh tràn bộ đệm
• Kiểm tra Max-forwards của header để tránh các vòng lặp
Bước 2: Tiền xử lí các thông tin định tuyến.
• Nều một thông tin định tuyến trong header tồn tại thì xử lí nó.
Bước 3: Xác định đích của bản tin yêu cầu đó.
• Có phải nằm trong cơ sở dữ liệu vị trí hay không ( các thuê bao đã đăng kí)?
• Có một đường đi đến đích đó hay không ( các đích đến cổng)
• Có phải nó được gửi đến một domain ngoài hay không?
Bước 4: chuyển các bản tin yêu cầu.
• Gọi hàm t_relay và OpenSIPs sẽ làm tất cả công việc.
Bước 5: Xử lí các bản tin response
3.3.3 Scripting OpenSIPs :
Có một tệp tin cấu hình cơ bản nhất cho OpenSIPs. Tệp tin này có tên là opensips.cfg. Nó chứa nhiều phần; như là “Global Parameters”, “Load Modules”, “Module Parameters”, và “Routing Script”. Để tạo tệp tin này phải có nhiều lệnh và các hàm lấy từ lõi và các module.
Global parameters
Nó điều khiển hành vi của daemon.
Và sau đây là một vài tham số:
3.3.4 Listen interfaces:
Tham số này chỉ ra cổng IP nào sẽ sử dụng cho OpenSIPs để nhận các lưu lượng, và tham số này chỉ thiết lập cho các giao diện nào đang được sử dụng. Nếu không thay đổi thông số đó, nó sẽ tự động tìm tất cả các giao diện có thể và nó sẽ tiêu thụ nhiều tài nguyên hơn cần thiết. Tham số cổng định nghĩa cổng nào của máy chủ SIP sẽ lắng nghe. Mặc định là 5060.
listen=udp:192.168.152.148:5060
listen=tcp:192.168.152.148:5061
listen=tls:192.168.152.148:5062
port=5060
3.3.5 Logging
Có một vài tham số điều khiển hệ thống log.Và quan trọng nhất là tham số debug. Sử dụng debug=3 thì nó chỉ in ra các bản tin lỗi quan trọng trong khi đó debug=9 sẽ in tất cả các bản tin. Để thay đổi các mức của debug ta sử dụng một lệnh như là opensipsctl fifo debug 1. Mặc định là 2. Các mức cao hơn thì các thông tin được ghi trong log nhiều hơn. Sau đây là mô tả các mức của log:
• L_ALERT (-3) mức này được sử dụng nếu lỗi cần hành động tức thì.
• L_CRIT (-2) mức này được sử dụng nếu lỗi là nghiêm trọng.
• L_ERR (-1) mức này nên được sử dụng để báo cáo các lỗi trong suốt quá trình xử lí dữ liệu mà không gây cho hệ thống trục trặc.
• L_WARN (1) mức này được sử dụng để viết các bản tin cảnh báo.
• L_NOTICE (2) mức này được sử dụng để báo cáo các tình huống không bình thường.
• L_INFO (3) mức này được sử dụng để viết các bản tin thông tin.
• L_DBG (4) mức này được sử dụng để viết các bản tin cho việc sửa lỗi.
3.3.6 Số lượng process
Fork trực tiếp bảo quá trình OpenSIPs thực thi foreground hay là background. Để hoạt động background thì fork= yes. Thỉnh thoảng ta có thể thấy hữu ích bắt đầu trong foreground để định các lỗi của script. Nếu fork =no, OpenSIPs sẽ không thể lắng nghe nhiều hơn một gia diện và hỗ trợ TCP/TLS sẽ tự động vô hiệu hóa. Một chế độ xử lí đơn nhất, chỉ một giao diện UDP được chấp nhận. Children trực tiếp xác nhận bao nhiêu quá trình xử lí “con” mỗi giao diện được tạo ra để xử lí các bản tin yêu cầu hướng vào. Bốn quá trình là khá tốt cho hầu hết các hệ thống. Thông số này chỉ áp dụng trên giao diện UDP. Nó không tác động đến các quá trình của TCP.


Link Download bản DOC
Do Drive thay đổi chính sách, nên một số link cũ yêu cầu duyệt download. các bạn chỉ cần làm theo hướng dẫn.
Password giải nén nếu cần: ket-noi.com | Bấm trực tiếp vào Link để tải:

 

binhnguyen5757

New Member
Re: [Free] Xây dựng mạng voip sử dụng opensip

bài viết này rất hay và mình đang cần để làm chuyên đề thi hết môn
 

Các chủ đề có liên quan khác

Top