minh dang hoc ve VoIP, xin moi nguoi noi cho minh biet ve hoat dong cua VoIP dua tren giao thuc SIP dc ko, cam on nhieu.
Announcement
Collapse
No announcement yet.
VoIP su dung giao thuc SIP
Collapse
X
-
SIP và các chuẩn của nó
SIP và các chuẩn của nó
SIP là một giao thức peer-to-peer. Các peer trong một session gọi là UA. Một UA chứa 2 thành phần chính:
- User agent client (UAC): ứng dụng client mà khởi tạo yêu cầu SIP.
- User agent server(UAS): ứng dụng server mà kết nối với user khi nhận được lời mời SIP và nó sẽ gửi về trả lời dựa trên cách cư xử của user đối với người gởi lời mời.
SIP UA có thể đóng vai trò là một SIP UAC hoặc SIP UAS nhưng không bao giờ đóng cả 2 vai trò trong 1 session. Vai trò làm UAC hoặc UAS phụ thuộc vào UA khởi tạo yêu cầu. UA khởi tạo là UAC và UA phía cuối là UAS.
Từ kiến trúc, những thành phần của SIP có thể được nhóm làm 2 mục chính sau:
- User Agent: gồm các thiết bị sau:
IP Telephone:
Gateway: đóng vai trò là UAS hoặc UAC và cung cấp hỗ trợ điều khiển cuộc gọi.
- SIP servers: gồm các loại sau:
Proxy server: thành phần chính giữa nhận các yêu cầu SIP từ client, sau đó nó sẽ gửi các yêu cầu dựa trên với tư cách của client để đến SIP server kế tiếp trong mạng. server bên kia có thể là một proxy server khác hoặc là một UAS. Proxy server có các tính năng sau: authen, author, network access control, routing, reliable request transmission, và bảo mật.
Redirect server: cung cấp cho UA các thông tin về server kế tiếp mà UA nên contact. Server có thể là một sever thuộc mạng khác hoặc là một UA. UA chuyển lời mời đến sever đã được định nghĩa trong redirect server.
Registrar server: yêu cầu đăng ký từ UAC từ location của nó. Loại server này thường nằm ở gần hoặc nằm trong những loại server khác như là location server.
Location server: cung cấp phân giải tên cho SIP proxy hoặc redirect server. Sever này có thuật toán để phân giải tên. Các cơ chế này bao gồm một database của nhà đăng ký hoặc truy nhập đến những công cụ phân giải tên được sử dụng phổ biến như rwhois, LDAP, hoặc các hệ thống hoạt động độc lập khác. Registrar server có thể là một thành phần con của location server; registrar server chịu trách nhiệm một phần trong việc populating database mà được liên kết với location server
SIP message
Có 2 loại message trong truyền thông SIP
- Request from a client to a server: chứa các dòng yêu cầu, header lines, và message body.
- Respone from a server to a client: chứa các dòng trạng thái, header lines, và message body.
SIP có 4 loại header: general header, entity header, request header, và respone header. 2 loại đầu xuất hiện trong cả 2 loại message, 2 cái sau xuất hiện trong loại message là request hoặc response
SIP Request messages
- Invite: client gửi thông điệp invite đến server. Thông điệp invite bao gồm các tham số của session.
- ACK: Trả lời cho sever biết rằng nó đã nhận được hồi âm từ server.
- BYE: client hoặc server sinh ra thông điệp BYE để báo hiệu chấm dứt cuộc gọi.
- CANCEL: client hoặc server sinh ra thao tác CANCEL để chấm dứt bất kỳ yêu cầu nào đang diễn ra.
- OPTIONS: Phương thức OPTIONS này đế lấy được các yêu cầu từ sever. Phương pháp này dùng để xác nhận thông tin được cache của một UA hoặc kiểm tra khả năng của UA để có thể chấp nhận cuộc gọi đến.
- REGISTER: UA dùng phương pháp này để cung cấp thông tin cho một server mạng. Các đăng ký này là một life có hạn và phải được renew periodically. Nó ngăn chặn việc sử dụng các thông tin cũ khi UA di chuyển
SIP Respone message
1xx – Information: báo hiệu rằng yêu cầu đang được tiến hành.
2xx – Success: Báo hiệu rằng yêu cầu đã được hoàn tất và thành công.
3xx – Redirection: báo hiệu rằng requestor yêu cầu một số action khác nữa.
4xx – Client error: (fantal response – lỗi không tránh được) báo hiệu rằng thông điệp yêu cầu của client bị sai hoặc không thể hoàn tất.
5xx – Server error: (fantal response) báo hiệu rằng yêu cầu hợp lệ nhưng server không thể hoàn tất được.
6xx – Global failure: (fantal response) báo hiệu rằng yêu cầu không được thi hành bởi bất cứ server nào
Địa chỉ
SIP dùng dạng địa chỉ giống như cấu trúc địa chỉ email, và có các kiểu như sau:
Full-quanlifies domain names: - SIP: joe@Cisco.com
E.164 address: - SIP: 237217@gateway.com; user = phone
Mixed address: - SIP: 83729472; password = changeme@10.1.1.1
SIP:joe@10.1.1.1
Address Registration
SIP có thể lấy địa chỉ bằng nhiều cách. Ví dụ như, người dùng đặt cho, bằng thông tin được cache lại từ session trước, hoặc bằng cách tương tác với network server. Với sự trợ giúp của server, nó phải nhận ra được các endpoint trong mạng. để đóng góp cho sự thành công này, một endpoint phải đăng ký địa chỉ người dùng của nó với registrar server
Các kiểu thiết lập cuộc gọi
Direct call setup
Khi một endpoint nhận hoặc phân giải được địa chỉ của endpoint, UAC có thể sẽ tiến hành direct call setup (UAC-to-UAS).
Đây là phương pháp thiết lập cuộc gọi nhanh nhất, tuy nhiên, nó dựa trên thông tin địa chỉ cache lại hoặc các cơ chế phân giải địa chỉ có thể đã quá hạn.
Các bước của call setup như sau:
1. UAC gốc send INVITE đến UAS của người nhận. thông điệp này bao gồm một mô tả endpoint của UAC và SDP.
2. Nếu UAS chấp nhận các thông số, nó sẽ trả lời chắc chắn cho UAC ban đầu.
3. UAC gốc sẽ phát hành ACK.
Tại thời điểm này, UAC và UAS đã có đầy đủ các thông tin để thiết lập RTP session giữa chúng
Call Setup sử dụng Proxy Server
Proxy server procedure thì transparent đối với UA, proxy server chặn đứng hoặc chuyển invite đến UA đích với tư cách là đại diện người gửi.
Các bước thiết lập như sau:
1. UAC gốc sẽ gửi invite đến proxy server.
2. nếu được yêu cầu, proxy server sẻ hỏi ý kiến của location server để quyết định đường đi đến người nhận và địa chỉ IP của nó.
3. proxy server gửi invite đến UAS của người nhận.
4. nếu UAS của người nhận chấp nhận các thông số, nó sẽ trả lời chấp nhận cho proxy server.
5. proxy server sẽ đáp lại UAC ban đầu.
6. UAC ban đầu phát sinh ra một tín hiệu ACK.
7. proxy server này sẽ chuyển ACK này đến người nhận UAS.
UAC và UAS đã có đầy đủ thông tin để yêu cầu thiết lập RTP session
Call Setup sử dụng Direct Server
Direct server được lập trình để khám phá đường đi đến đích; thay vì chuyển invite đến đích, redirect server sẽ báo cáo ngược trở lại cho UA biết đích đến thích hợp mà UA cần thử kế tiếp.
Các bước thiết lập như sau:
1. UAC gốc sẽ gửi invite đến proxy server.
2. nếu được yêu cầu, redirect sẻ hỏi ý kiến của location server để quyết định đường đi đến người nhận và địa chỉ IP của nó
3. redirect server sẽ trả về tín hiệu “move” cho UAC gốc với địa chỉ IP mà nó chứa được từ location server.
4. UAC gốc xác nhận sự chuyển hướng.
5. UAC gốc sẽ gửi invite đến UAS từ xa.
6. Nếu UAS chấp nhận các thông số, nó sẽ trả lời cho UAC.
7. UAC ban đầu phát ra gói tin ACK
UAC và UAS đã có đầy đủ thông tin để yêu cầu thiết lập RTP session
Survivability Strategies
- Cấu hình UA với ít nhất 2 địa chỉ của server. Nếu cái đầu tiên bị chết thì nó sẽ chuyển qua cái thứ 2.
- Nếu tất cả mọi server được cấu hình tên giống nhau, bạn phải cấu hình cho UA dò tìm tên bằng DNS. DNS sẽ trả về tất cả các server ứng với tên đó, và UA sẽ tiến hành với danh sách đó theo trình tự từ trên xuống dưới
Comment
-
mình hiện đang có một con Cisco Ip phone 7941G, giờ muốn xây dựng một mạng VoIP nên cần thêm những gì nữa (cả soft lẫn hardware), bạn có thể đưa ra qui trình với việc quản lý bằng Cisco CallManager hay Trixbox được không? Search trên mạng nhiều quá, mình chưa thật sự hiểu cách hoạt động của nó nên việc triển khai lắp đặt gặp nhiều khó khăn. Mong được giúp đỡ.
Cảm ơn nhiều.trying....
Comment
-
cảm ơn Hưng nhiều về sự giúp đỡ nhiệt tình. Nhưng ở đây mình chỉ muốn kết nối con CIsco IP Phone của mình với Trixbox đã dựng lên rồi. Cả 2 đều dùng IP tĩnh Public, ping thông lẫn nhau, nhưng đến khi thực hiện cuộc gọi thì không được, con Cisco IP Phone nó cứ "registering" hoài.
Thanks again.trying....
Comment
-
@tindecken: bạn xem IP Phone Cisco chạy giao thức gì, có thể đang chạy giao thức H323, server lại chạy SIP thì làm sao kết nối được.Diễn đàn công nghệ VoIP Việt Nam
http://www.vnvoip.info
Comment
-
Hiện tại em đang làm đồ án môn học Về giao thức SIP,phần lý thuyết về SIP thì em có tìm hiểu qua rồi.bây giờ yêu cầu của đề tài là " ứng dụng giao thức SIP phát triển tiện ích VOIP" .
các AC cho em hỏi hướng phát triển nó như nào,hiện tại em đang ko biết làm sao với cái này hết?anh chị nào có tài liệu nào tham khảo hoặc có code ứng dụng tham khảo ko send cho em tham khảo với.em cảm ơn.
Comment
-
Registering có nghĩa là IPphone của bạn đang dùng firmware sccp (skinny của cisco). Bạn phải đổi firmware sang SIP thì mới có thể chạy với Trixbox được. Bạn có thể download firmware tại cisco.com hoặc email cho mình.
Làm theo bước sau:
Cài đặt tftp server.
Host SIP firmware trên TFTP
Default gateway IP cua IPPHONE là IP của tftp server
Reload IPPhone
Originally posted by tindecken View Postcảm ơn Hưng nhiều về sự giúp đỡ nhiệt tình. Nhưng ở đây mình chỉ muốn kết nối con CIsco IP Phone của mình với Trixbox đã dựng lên rồi. Cả 2 đều dùng IP tĩnh Public, ping thông lẫn nhau, nhưng đến khi thực hiện cuộc gọi thì không được, con Cisco IP Phone nó cứ "registering" hoài.
Thanks again.
Comment
Comment