Top Banner
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
38

VoIP with Opensips

May 25, 2015

Download

Documents

Tran Thanh

Build VOIP system with opensips
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: VoIP with Opensips

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 opensipsGiảng viên : Dương Lê Minh

1

Page 2: VoIP with Opensips

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

Page 3: VoIP with Opensips

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

Page 4: VoIP with Opensips

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

Page 5: VoIP with Opensips

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

Page 6: VoIP with Opensips

Giao th c SIPứ

6

Page 7: VoIP with Opensips

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

Page 8: VoIP with Opensips

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

Page 9: VoIP with Opensips

Ho t đ ng c a SIPạ ộ ủ• Hoạt động của máy chủ ủy quyền(Proxy Server)

9

Page 10: VoIP with Opensips

Ho t đ ng c a SIPạ ộ ủ• Hoạt động của máy chủ chuyển đổi địa

chỉ(Redirect Server)

10

Page 11: VoIP with Opensips

M t phiên h i tho i SIPộ ộ ạ

11

Page 12: VoIP with Opensips

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

Page 13: VoIP with Opensips

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

Page 14: VoIP with Opensips

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

Page 15: VoIP with Opensips

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

Page 16: VoIP with Opensips

H th ng th c hànhệ ố ự

16

Page 17: VoIP with Opensips

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

Page 18: VoIP with Opensips

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

Page 19: VoIP with Opensips

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

Page 20: VoIP with Opensips

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

Page 21: VoIP with Opensips

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)

• modparam(“tm”, ”fr_inv_timer_avp”, ”$avp(tm_timeout)”)

• Multi-module parameters• modparam(“usrloc|auth_db”, ”db_url”,

“mysql:openser@localhost/openser”)

parameter name

parameter valuemodule name

21

Page 22: VoIP with Opensips

Đ 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

Page 23: VoIP with Opensips

Đ 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

Page 24: VoIP with Opensips

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

Page 25: VoIP with Opensips

Xác th c v i MYSQLự ớNội dung chính1. Trình tự xác thực đăng ký2. Trình tự xác thực mời

25

Page 26: VoIP with Opensips

1. TRÌNH T XÁC TH C ĐĂNG KÝỰ Ự Mô hình xác thực đăng ký

26

Page 27: VoIP with Opensips

2. TRÌNH T XÁC TH C M IỰ Ự Ờ Mô hình xác thực mời

27

Page 28: VoIP with Opensips

Nat Traversal

28

Page 29: VoIP with Opensips

Gi i pháp TURNả• Xử lý gói tin SIP• Xử lý gói tin RTP

29

Page 30: VoIP with Opensips

X lý gói tin SIPử

30

Page 31: VoIP with Opensips

X lý gói tin RTPử

31

Page 32: VoIP with Opensips

ASTERISK

Page 33: VoIP with Opensips

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.

Page 34: VoIP with Opensips
Page 35: VoIP with Opensips

C u hình t ng đài asteriskấ ổ

Page 36: VoIP with Opensips

M t s ng d ng v i Asteriskộ ốứ ụ ớ

Page 37: VoIP with Opensips

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.

Page 38: VoIP with Opensips

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ý.