VoIP with Opensips

1,175 views

Published on

Build VOIP system with opensips

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,175
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
52
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Kiến trúc Sip proxy nhanh hơn một B2BUA vì nó xử lý với tín hiệu. B2BUA kiến trúc phức tạp hơn nhưng nó có khả năng xử lý các phương tiện truyền thông(tiếng nói) và các dịch vụ liên quan như thư thoại, nhận dạng giọng nói…Đôi khi Asterisk sẽ được sử dụng như một cổng SIP để kết nối với mạng PSTN\Nat: Network Address Translation (NAT)là một chức năng của một bộ định tuyến mạng để lập bản đồ địa chỉ IP riêng đến các địa chỉ IP công cộng (internet) Chức năng này khá giống nhau nhưng OpenSIPS tốt hơn rất nhiều
  • Load Balancing OpenSIPS là "chuyển đổi dự phòng" và có thể làm cho một giải pháp bổ sung của Asterisk .Nó có thể sử dụng tin nhắn chuyển hướng tiêu thụ rất ít tài nguyên từ máy cân bằng tải. Truy cập mức độ thấp vào SIP Header và giao dịch Đây là một tính năng quan trọng khi bạn có việc thực hiện SIP từ các nhà sản xuất khác nhau, có thể không tương thích với nhau.
  • VoIP with Opensips

    1. 1. Các vấn đề hiện đại mạng máy tính và truyền thông Đề tài : Xây dựng hệ thống VOIP với opensips Giảng viên : Dương Lê Minh 1
    2. 2. Danh sách nhóm 1. Trần Văn Thanh(cài đặt, cấu hình opensips, script & routing basic) 2. Hoàng Đình Quyền(cài đặt opensips,SIP NAT traversal) 3. Phạm Hồng Sơn(tìm hiểu giao thức SIP) 4. Đặng Thị Huyền( xác thực với MYSQL) 5. Trần Thị Tươi (tìm hiểu Askterisk ) 6. Vũ Viết Tùng (tìm hiểu opensips) 2
    3. 3. Nội dung • • • • • • Giới thiệu về VoIP và SIP Giới thiệu về opensips (các thành phần chính) Config and routing script Xác thực sử dụng MYSQL NAT traversal Asterisk 3
    4. 4. VoIP ? • VoIP (Voice over Internet Protocol) là công nghệ truyền giọng nói thông qua mạng sử dụng giao thức TCP/IP. Các gói dữ liệu IP được trao đổi là mã hóa của tín hiệu đàm thoại 4
    5. 5. Các giao thức được dùng trong VoIP Các giao thức báo hiệu của VoIP cho phép thiết lập giao tiếp cho các ứng dụng đa phương tiện như audio, video,.. Một số giao thức: • SIP • Mgcp • H323 Trong đó SIP phổ biến hơn cả 5
    6. 6. Giao thức SIP 6
    7. 7. Khái niệm • SIP ( Session Initiation Protocol) là giao thức điều khiển báo hiệu thuộc lớp ứng dụng trong mô hình OSI • 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 7
    8. 8. Kiến trúc của SIP • Gồm 5 thành phần chính: • • • • • User Agent(UA) Proxy Server Redirect Server Location Server Registrar Server 8
    9. 9. Hoạt động của SIP • Hoạt động của máy chủ ủy quyền(Proxy Server) 9
    10. 10. Hoạt động của SIP • Hoạt động của máy chủ chuyển đổi địa chỉ(Redirect Server) 10
    11. 11. Một phiên hội thoại SIP 11
    12. 12. OpenSIPS ? • Là một phiên bản mã nguồn mở hoàn chỉnh của một SIP proxy server, thành phần cốt lõi của các giải pháp VoIP. • OpenSIPS tích hợp voice, video ,IM (Instant Message) và các dịch vụ trình chiếu • Thiết lập module dễ dàng nâng cấp, mang lại hiệu quả cao • OpenSIPS kế thừa bởi dự án OpenSER 12
    13. 13. Opensips- Sip proxy Server • Nhận, kiểm tra, phân loại yêu cầu SIP xem chúng có đúng hay không rồi chuyển đến một đích thích hợp. • Trước khi chuyển lại yêu cầu, Opensips có thể thay đổi, thêm hoặc bỏ header và/hoặc thay đổi địa chỉ đích ban đầu. • Các yêu cầu không mong muốn sẽ được gửi lại cùng với trả lời từ chối. • Các yêu cầu được phép sẽ được chuyển tiếp đến một đích hoặc qua một Proxy Server khác. • Opensips có thể gửi và nhận nhiều yêu cầu đến nhiều đích tại cùng một thời điểm. 13
    14. 14. Opensips- Sip proxy Server(cont.) • Xử lý các câu trả lời gửi về server trước khi gửi lại cho nguồn(có thể giữ nguyên hoặc sửa trả lời cho phù hợp) • Chạy như một dịnh vụ nền để nghe các yêu cầu qua các cổng. • Có các kịch bản định tuyến được mô tả trong file config. Trong file config có thể thay đổi theo người quản lí. • Một số tính năng nổi trội của Opensips: • • • • Xử lí đăng kí: Register Server. An toàn thông tin: hỗ trợ TLS Lưu trữ thông tin vào cơ sở dự liệu. NAT traversal. 14
    15. 15. Hiệu suất cơ bản • Chạy trên hệ thống nhúng, hiệu suất hàng trăm thiết lập cuộc gọi/giây • Với một hệ thống yếu vẫn có thể phục vụ số lượng thuê bao trực tuyến lớn. • Hệ thống dễ dàng mở rộng bằng việc thêm máy chủ. • Opensips hộ trợ cả Ipv4 và Ipv6, phục vụ được multiple Domain. 15
    16. 16. Hệ thống thực hành 16
    17. 17. Cấu hình opensips • Opensips được cấu hình mặc định trong file opensips.cfg ,thực hiện điều khiển ,các modul, tham số, routing script. 17
    18. 18. Thành phần file config opensips • Tham số toàn cục (global parametter) • Các modul& cấu hình modul • Khối định tuyến • • • • • Khối định tuyến phản hồi Khối định tuyến thất bại Khối định tuyến nhánh Khối định tuyến lỗi ... • Script 18
    19. 19. Tham số toàn cục • Protocol control • disable_tcp=no • disable_tls=no • Listen interfaces • listen=udp:192.168.2.2:5060 • listen=tcp:192.168.2.3:5066 • listen=tls:192.168.2.3:5061 • Logging • • • • • debug=3 #logging level memlog=3 #log level for memory related debugging log_stderror=no #use syslog and not standard error log_facility=LOG_LOCAL0 log_name=”my-proxy” #default is argv[0] 19
    20. 20. Tham số toàn cục • Number of processes • fork = yes # fork ảnh hưởng công việc của hệ thống SIP • children = 4 # sô tiến trình / giao diện UDP • tcp_children = 6 # tổng số tiến trình SIP TCP hoạt động 20
    21. 21. Modules • Loading a module • loadmodule “/usr/lib/opensips/modules/tm.so” hoặc • mpath=”/usr/lib/opensips/modules/” • loadmodule “tm.so” • Setting module parameter • modparam(“tm”, ”fr_inv_timer”, 20) module name parameter name parameter value • modparam(“tm”, ”fr_inv_timer_avp”, ”$avp(tm_timeout)”) • Multi-module parameters • modparam(“usrloc|auth_db”, ”db_url”, “mysql:openser@localhost/openser”) 21
    22. 22. Định tuyến • Định tuyến chứa các hành động định tuyến logic • Có thể có nhiều định tuyến • Có nhiều loại định tuyến: • • • • • request route : route[n] {...} reply route: onreply_route[m] {...} failure route: failure_route[x] {...} branch route: branch_route[y] {...} error_route: error_route {...} • Trong định tuyến có thể sử dụng: • Các hàm trích xuất từ module • Từ khóa và các giá trị xác định từ lõi • Biến giả trích xuất từ lõi hoặc các module 22
    23. 23. Định tuyến • Ví dụ route { lookup("location"); t_on_failure("1"); if(!t_relay()) { sl_send_reply("500", "relaying failed"); } } failure_route[1] { if(is_method("INVITE")) { # call failed - relay to voice mail t_relay_to_udp("voicemail.server.com","5060"); } } 23
    24. 24. Script • Các giá trị đã được định nghĩa trước Vd: + TCP / TLS / UDP thiết lập dựa trên giao thức được sử dụng + INET/ INET6 thiết lập theo giao thức IPv4 hoặc IPv6 • Từ khóa • • • • • af / proto dst_ip / dst_port src_ip / src_port method / status / retcode uri / from_uri / to_uri • Ví dụ : if (proto==UDP && af==INET) { log(“message received use UDP and IPv4 ”)} • if (method==”INVITE” && uri=~”sip:[0-9]+@”) {...} • 24
    25. 25. Xác thực với MYSQL Nội dung chính 1. Trình tự xác thực đăng ký 2. Trình tự xác thực mời 25
    26. 26. 1. TRÌNH TỰ XÁC THỰC ĐĂNG KÝ  Mô hình xác thực đăng ký 26
    27. 27. 2. TRÌNH TỰ XÁC THỰC MỜI  Mô hình xác thực mời 27
    28. 28. Nat Traversal 28
    29. 29. Giải pháp TURN • Xử lý gói tin SIP • Xử lý gói tin RTP 29
    30. 30. Xử lý gói tin SIP 30
    31. 31. Xử lý gói tin RTP 31
    32. 32. ASTERISK
    33. 33. TỔNG QUAN • Asterisk là phần mềm mã nguồn mở được viết bằng ngôn ngữ C chạy trên HĐH 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 năm 1999 bởi Mark Spencer nhằm mục đích hỗ trợ công ty của anh ta 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. • 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.
    34. 34. Cấu hình tổng đài asterisk
    35. 35. Một số ứng dụng với Asterisk
    36. 36. Kiến trúc Back to back User Agent (B2BUA) Session Initiation Protocol (SIP) Proxy Kết nối với PSTN Có nhiều thẻ giao diện để kết nối với mạng PSTN. Dễ dàng cài đặt thẻ điện thoại và cấu hình trong các máy chủ Asterisk OpenSIP luôn cần một cổng SIP để kết nối với mạng PSTN. Không có khả năng cài đặt thẻ điện thoại trong máy chủ NAT Traversal Có thể giao dịch với NAT traversal để cho phép bạn gửi các bằng giọng nói (hoặc dòng video) từ Điện thoại IP hoặc các phần mềm VoIP khách hàng của bạn trực tiếp đến một nhà cung cấp dịch vụ điện thoại VoIP OpenSIPS đề tốt hơn rất nhiều với NAT traversal. Cho phép bạn thao tác trực tiếp giao tiếp SIP để xử lý trường hợp đặc biệt như khi có 2 máy điện thoại VoIP phía sau router NAT cùng và muốn gửi phương tiện truyền thông trực tiếp giữa chúng.
    37. 37. Load Balancing Có thể được cấu hình để cân bằng tải bởi "tên người dùng", "Ruri", "callid” và một số khác. Một thế mạnh độc đáo của OpenSIPS là khả năng cân bằng tải các cuộc gọi VoIP với việc sử dụng các hàm băm chuyên dụng. Truy cập mức độ thấp vào Header và giao dịch IAX. Điều này làm cho nó có thể chuyển tín hiệu Header và Truyền thông trong cùng một gói dữ liệu và cùng một cổng! Với OpenSIPS bạn có thể xử lý dịch giữa hai phiên bản không tương thích của SIP, xử lý trực tiếp các tiêu đề SIP, yêu cầu, và câu trả lời. Kết Luận Đơn giản để cấu hình và có thể xử lý thấp với khối lượng trung bình. Khi có một số nhu cầu đặc biệt, chẳng hạn như cân bằng tải hoặc khi bạn có khối lượng lớn người sử dụng đã đăng ký.

    ×