1. Trang chủ
  2. » Luận Văn - Báo Cáo

NGHIÊN CỨU THIẾT KẾ TỔNG ĐÀI IP PBX VÀ PHẦN MỀM THOẠI MÁY TRẠM

81 304 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 81
Dung lượng 1,62 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

TÓM TẮT LUẬN VĂN Cấu trúc luận văn chia làm 5 chương, nội dung luậnvăn bao quát ñầy ñủ các vấn ñề cơ bản về tổng ñài IP PBX và phần mềm máy trạm do nhómxây dựng. Với nội dung chính của từng chương ñược mô tả như sau: Chương 1: Lý thuyết cơ bản. Chương này nhằm mục đích chuẩn bị cho người đọc một số kiến thức cơ bản về các khái niệm và giao thức mạng có liên quan đến hệ thống tổng đài IP PBX và chương trình truyền thoại trên máy trạm Chương 2: Trong chương này, nhóm trình bày về tổng đài IP PBX, đưa ra các mô hình PBX, các tính năng cần thiết cho một tổng ñài IP PBX ñể xây dựng cho một doanh nghiệp. Từ đó, nhóm trình bày việc xây dựng tổng đài IP PBX, việc xây dựng tổng đài IP PBX cần phần mềm hệ thống với nhiệm vụ cung cấp, điều khiển các tính năng của tổng đài cung cấp cho các máy trạm. Bên cạnh đó nhóm sẽ trình bày thư viện ngoài hệ thống, có khả năng kết nối với phần mềm hệ thống tổng đài IP PBX, dựa trên thư viện này nhóm đã lập trình tương tác cơ sở dữ liệu của công ty, giúp nhóm xây dựng thành công hệ thống trả lời tự động cho khách hàng. Chương 3: Giới thiệu lý thuyết và xây dựng chương trình phần mềm thoại máy trạm. Chương 4: Xây dựng hệ thống Call Center cho công ty Chứng Khoán. Trong chương này, nhóm đưa ra mô hình, tiến trình xây dựng hệ thống Callcenter . Chương 5: Tổng kết đề tài. Nhóm tổng kết lại toàn bộ đề tài, các công việc mà nhóm đã thực hiện thành công trong đề tài này.

Trang 1

KHOA ðIỆN-ðIỆN TỬ

BỘ MÔN ðIỆN TỬ-VIỄN THÔNG -o0o -

LUẬN VĂN TỐT NGHIỆP ðẠI HỌC

NGHIÊN CỨU THIẾT KẾ TỔNG ðÀI IP PBX VÀ

PHẦN MỀM THOẠI MÁY TRẠM

GVHD: ThS Nguyễn Chí Ngọc SVTH: Hoàng Hải Nguyên-40301853 Trần Nhật Huy -40301114

Tp Hồ Chí Minh, Tháng 12/2007

Trang 2

Luận văn tốt nghiệp là kết quả của quá trình phấn ựấu học tập suốt 4,5

n năm trên giảng ựường ựại học đó là khoảng thời gian tuy không phải là ngắn nhưng chúng em biết rằng ựối với kiến thức mênh mông của khoa học

kỹ thuật thì không bao giờ có giới hạn cả Tuy nhiên, chắnh nhờ sự giảng dạy tận tình của thầy cô khoa điện-điện tử trường đại học Bách Khoa, chúng em ựã nắm bắt ựược những kiến thức cơ bản của ngành Viễn Thông, ựây là hành trang quý báu giúp chúng em vững tiến trên bước ựường lập nghiệp

Sau thời gian gần 4 tháng làm việc, ựề tài luận văn tốt nghiệp của chúng

em ựã hoàn thành để hoàn thành Luận văn tốt nghiệp này trong thời gian cho phép, chúng em ựã phải nỗ lực rất nhiều, dồn toàn lực cho ựề tài này ựể

ựề tài hoàn thành tốt nhất và ựúng tiến ựộ

Chúng em gửi lời tri ân sâu sắc ựối với sự hướng dẫn tận tình, nhiệt huyết của thầy hướng dẫn Nguyễn Chắ Ngọc Thầy là người ựã truyền nhiệt huyết làm việc cho chúng em, hết lòng chỉ bảo và truyền ựạt những kiến thức và kinh nghiệm rất quý giá cho chúng em

Chúng em gửi lời cảm ơn chân thành ựến các anh chị trong công ty chứng khoán Phú Gia ựã hỗ trợ chúng em thực hiện ựề tài

Chúng em chân thành cảm ơn, thầy Trương Tấn đức Anh, thầy Bùi Quang Huy, ở bộ môn Viễn Thông, ựã bổ trợ cho chúng em các kiến thức cần thiết, bên cạnh ựó các thầy hết lòng chỉ dẫn chúng em thực nghiệm tại phòng Thắ nghiệm Viễn Thông Việt-Pháp, chúng em cũng cám ơn anh Trần đoàn Anh Quân, cựu sinh viên K2002, ựã nhiệt tình hỗ trợ cho chúng em trong quá trình thực hiện luận văn

Chúng con xin gởi ựến gia ựình sự phấn ựấu, rèn luyện, sự trưởng thành của chúng con ựể bày tỏ lòng biết ơn của chúng con với những hi sinh vất vả của gia ựình ựể cho chúng con những ựiều tốt nhất

Mặc dù ựã cố gắng rất nhiều trong suốt quá trình làm việc, nhưng chúng

em sẽ vẫn còn ựó sự sai sót, chúng em rất mong sự ựóng góp ý kiến của thầy

cô, của các bạn và của mọi người

Xin chân thành cảm ơn

Tp Hồ Chắ Minh ngày 20 tháng 12 năm 2007 Hoàng Hải Nguyên

Trần Nhật Huy

Trang 3

Hiện nay, trên thế giới cũng như ở Việt Nam, công nghệ ñang phát triển như vũ bão Việc áp dụng công nghệ vào công việc kinh doanh của các doanh nghiệp ñã và ñang ñóng góp thiết yếu cho sự thành công của doanh nghiệp Việt Nam ñang trong quá trình hội nhập và phát triền, công nghiệp hóa và hiện ñại hóa ñang diễn ra, các doanh nghiệp Việt Nam ñang nỗ lực hết mình ñể hội nhập thế giới, việc ñầu tư công nghệ cao là rất cần thiết

Tại các doanh nghiệp Việt Nam, việc liên lạc bằng ñiện thoại cho công việc kinh doanh là thiết yếu, tại mỗi doanh nghiệp ñều có trang bị tổng ñài nội bộ ða số ñều có mạng

hạ tầng internet với chất lượng khá tốt Tuy nhiên, hàng tháng các doanh nghiệp phải trả một khoản tiền ñiện thoại lớn cho Bưu ñiện Vì vậy, việc xây dựng hệ thống có thể tận dụng ñường truyền internet ñể truyền thoại ñang là cấp thiết, ñể giảm chi phí cho doanh nghiệp

Bên cạnh ñó, ñối với một doanh nghiệp, khách hàng chính yếu tố sống còn của doanh nghiệp Việc chăm sóc khách hàng tốt nhất là yêu cầu hàng ñầu, Khách hàng hài lòng với các dịch vụ của một doanh nghiệp, tạo cho doanh nghiệp ñó sự uy tín cao, và ñó sẽ là sức mạnh

vô cùng lớn trên thị trường và có thể cạnh tranh với các doanh nghiệp khác Việc xây dựng một hệ thống trả lời tự ñộng, cung cấp các thông tin chính yếu cho khách hàng Phương thức này khá hiệu quả, giảm chi phí cho doanh nghiệp, tăng tính tương tác giữa doanh nghiệp với khách hàng, khách hàng có thể biết nhanh chóng và chính xác các thông tin họ mong muốn

Trước tình hình trên, nhóm tập trung nghiên cứu xây dựng hệ thống toàn diện bao gồm: Tổng ñài thoại IP PBX và phần mềm thoại cho máy trạm Với hệ thống này, doanh nghiệp có thể tận dụng những thứ sẵn: tổng ñài nội bộ, ñường truyền internet tốc ñộ cao, liên kết cơ sở dữ liệu của doanh nghiệp,… từ ñó doanh nghiệp có thể truyền thoại qua mạng internet và mạng ñiện thoại công cộng (PSTN), có trung tâm trả lời tự ñộng cho khách hàng

Với mô hình nhóm ñưa ra, có thể áp dụng rộng rãi cho các trường ðại học, các trung tâm cung cấp thông tin, ……

Nhóm tác giả Hoàng Hải Nguyên Trần Nhật Huy

Trang 4

Cấu trúc luận văn chia làm 5 chương, nội dung luận văn bao quát ñầy ñủ các vấn ñề cơ bản về tổng ñài IP PBX và phần mềm máy trạm do nhóm xây dựng Với nội dung chính của từng chương ñược mô tả như sau:

Chương 1: Lý thuyết cơ bản Chương này nhằm mục ñích chuẩn bị cho người ñọc một số kiến thức cơ bản về các khái niệm và giao thức mạng có liên quan ñến hệ thống tổng ñài IP PBX và chương trình truyền thoại trên máy trạm

Chương 2: Trong chương này, nhóm trình bày về tổng ñài IP PBX, ðưa ra các mô hình PBX, các tính năng cần thiết cho một tổng ñài IP PBX ñể xây dựng cho một doanh nghiệp Từ

ñó, nhóm trình bày việc xây dựng tổng ñài IP PBX, việc xây dựng tổng ñài IP PBX cần phần mềm hệ thống với nhiệm vụ cung cấp, ñiều khiển các tính năng của tổng ñài cung cấp cho các máy trạm Bên cạnh ñó nhóm sẽ trình bày thư viện ngoài hệ thống, có khả năng kết nối với phần mềm hệ thống tổng ñài IP PBX, dựa trên thư viện này nhóm ñã lập trình tương tác cơ sở

dữ liệu của công ty, giúp nhóm xây dựng thành công hệ thống trả lời tự ñộng cho khách hàng Chương 3: Giới thiệu lý thuyết và xây dựng chương trình phần mềm thoại máy trạm Chương 4: Xây dựng hệ thống CallCenter cho công ty Chứng Khoán Trong chương này, nhóm ñưa ra mô hình, tiến trình xây dựng hệ thống Callcenter

Chương 5: Tổng kết ñề tài Nhóm tổng kết lại toàn bộ ñề tài, các công việc mà nhóm ñã thực hiện thành công trong ñề tài này

Trang 5

GIỚI THIỆU ðỀ TÀI iii

TÓM TẮT LUẬN VĂN iv

MỤC LỤC v

DANH SÁCH HÌNH VẼ vii

DANH SÁCH CÁC BẢNG viii

CHƯƠNG I: Lý thuyết cơ bản 1

1.1 Giới thiệu về TCP/IP: 1

1.2 Giới thiệu RTP (Real-Time Transport Protocol) 3

1.3 Giới thiệu giao thức SIP 5

CHƯƠNG II: Nghiên cứu tổng ñài nội bộ IP PBX 9

2.1 Giới hiệu tổng ñài PBX: 9

2.1.1 Hệ thống tổng ñài PBX là gì? 9

2.1.2 Hệ thống PBX truyền thống: 10

2.1.3 Hệ thống PBX Hybrid: 10

2.2 Các tính năng cần thiết cho một tổng ñài nội bộ PBX ngày nay: 11

2.2.1 Tổng ñài chuyển mạch cuộc gọi trên nền IP: 11

2.2.2 Hệ thống trả lời tự ñộng: 12

2.2.3 Hệ thống hộp thư thoại: 12

2.2.4 Hệ thống VoIP: 12

2.2.5 Hệ thống phân phối tự ñộng cuộc gọi: 13

2.3 Giới thiệu về phần mềm hệ thống cho tổng ñài IP PBX: 14

2.3.1 Asterisk là gì? 14

2.3.2 Kiến trúc Asterisk: 15

2.3.3 Cài ñặt, cấu hình Asterisk 16

2.3.3.1 Cài ñặt Asterisk 16

2.3.3.2 Hướng dẫn cấu hình các file cần thiết trong Asterisk: 17

2.3.3.2.1 Cấu hình file zaptel.conf 17

2.3.3.2.2 Cấu hình file zapata.conf: 18

2.3.3.2.3 Cấu hình file sip.conf: 18

2.3.3.2.4 Cấu hình file voicemail.conf: 19

2.3.3.3 Cấu hình Dialplan: 20

2.3.3.3.1 Cú pháp của dialplan: 20

2.3.4 Giới thiệu Asterisk Gateway Interface (AGI) 23

2.3.4.1 Asterisk Gateway Interface ( AGI ) là gì ? 23

2.3.4.2 Cấu trúc cơ bản AGI 24

2.3.4.3 Phân loại AGI 24

2.3.4.4 FastAGI 25

2.3.4.4.1 Giới thiệu FastAGI 25

2.3.4.4.2 Cấu hình gọi FastAGI trong Dialplan 25

2.3.5 Giới thiệu Thư viện Asterisk dot net: 25

2.3.5.1 Giới thiệu: 25

2.3.5.2 Các lệnh FastAGI trong Asterisk.NET: 25

CHƯƠNG III: Xây dựng phần mềm thoại máy trạm 28

3.1 Giới thiệu tổng quát về thư viện PJSIP 28

3.1.1 Tổng quan: 28

3.1.2 Kiến trúc thư viện PJSIP: 31

Trang 6

3.2.1 Giới thiệu PJSUA: 34

3.2.2 Tạo và khởi ñộng PJSUA 34

3.2.3 ðăng ký và hủy tài khoản SIP trong PJSUA 35

3.2.4 Các hàm quản lý cuộc gọi trong PJSUA 36

3.3 Giới thiệu Bkphone 39

3.3.1 Chức năng và cấu trúc Bkphone : 40

3.3.2 Các trạng thái hoạt ñộng của chương trình Bkphone 41

3.3.3 Quá trình khởi ñộng của chương trình Bkphone .43

3.3.4 Quá trình thực hiện cuộc gọi ñi 43

3.3.5 Quá trình nhận cuộc gọi ñến 45

3.3.6 Hướng dẫn sử dụng Bkphone 46

CHƯƠNG IV: Xây dựng hệ thống CallCenter ứng dụng cho công ty chứng khoán 48

4.1 Giới thiệu hệ thống CallCenter ứng dụng cho công ty chứng khoán : 48

4.2 Các bước xây dựng hệ thống CallCenter .50

4.2.1 Thiết lập tổng ñài IP nội bộ: 50

4.2.1.1 Tạo kết nối phần cứng: 50

4.2.1.2 Tạo tài khoản SIP: 51

4.2.1.3 Cấu hình Dialplan trong Asterisk server 51

4.2.1.4 Cấu hình phần mềm thoại trên máy nhân viên .52

4.2.2 Thiết lập hệ thống ContactCenter: 53

4.2.2.1 Giới thiệu về hệ thống ContactCenter: 53

4.2.2.2 Sơ ñồ dịch vụ của hệ thống ContactCenter: 53

4.2.2.3 Hướng dẫn sử dụng dịch vụ: 55

4.2.2.4 Mô hình thực hiện: 56

4.2.2.5 Phương thức thực hiện: 59

4.2.2.5.1 Cấu hình Asterisk: 59

4.2.2.5.2 Cấu hình file sip.conf: 59

4.2.2.5.3 Cấu hình file extensions.conf: 60

4.2.2.5.4 Các thư mục cần chú ý: 63

4.2.3 Tạo giao diện quản lý cho máy chủ Asterisk-Asterisk GUI: 64

4.2.3.1 Khái niệm: 64

4.2.3.2 Các yếu tố của Asterisk GUI: 64

4.2.3.3 Hướng dẫn cài ñặt Asterisk GUI: 65

4.3 Các ứng dụng khác của hệ thống: 67

Chương V: Tổng kết ñề tài 68

TÀI LIỆU THAM KHẢO 70

Trang 7

Hình 1.1: Sự tương ñương của TCP/IP và mô hình OSI 1

Hình 1.2: Sự di chuyển dữ liệu giữa các lớp trong mô hình TCP/IP 3

Hình 1.3: Các trường tiêu ñề của RTP 4

Hình 1.4: Mô tả các quá trình diễn ra cho một cuộc gọi SIP ñiển hình qua 16 bước 7

Hình 2.1: Mô hình PBX truyền thống 10

Hình 2.2: Mô hình hệ thống PBX Hybrid ñơn 11

Hình 2.3: Mô hình cơ bản kết nối của IP PBX 11

Hình 2.4: Mô hình kết nối của một mạng VoIP 13

Hình 2.5: Mô hình phân phối cuộc gọi cơ bản 13

Hình 2.6: Kiến trúc Asterisk 15

Hình 2.7: Hình ảnh về card TDM kết nối PSTN (loại TDM800P) 16

Hình 2.8: Sơ ñồ giao tiếp giữa Asterik và AGI Script 24

Hình 3.1: Hiệu suất xử lý cuộc gọi của máy chủ khi dùng PJSIP 29

Hình 3.2: Cấu trúc thư viện PJSIP 30

Hình 3.2: Lược ñồ tương tác của các khối trong thư viện PJSIP 31

Hình 3.4: Lược ñồ trạng thái module 32

Hình 3.4: Lược ñồ tương tác giữa các module 32

Hình 3.3: Giao diện chính của BKphone 40

Hình 3.5: Quá trình khởi ñộng của BKphone 43

Hình 3.6: Quá trình thực hiện cuộc gọi của BKphone 44

Hinh 3.7: Quá trình nhận cuộc gọi của BKphone 45

Hình 3.8: Hướng dẫn thiết lập phần setting trong BKphone 46

Hình 3.9: Hình ảnh BK phone khi ñăng ký tài khoản SIP thành công 46

Hình 3.10: Trạng thái BKphone khi nhận cuộc gọi vào 47

Hình 3.11: BKphone ở trạng thái ACTIVE 47

Hình 4.1: Mô hình hệ thống tổng ñài IP PBX kết hợp máy trạm 49

Hình 4.2: Lược ñồ phân bố cuộc gọi cho các phòng ban 52

Hình 4.3 Cấu hình tài khoản SIP trong X-lite 53

Hình 4.4: Sơ ñồ dịch vụ của hệ thống ContactCenter 54

Hình 4.5: Lược ñồ tổng quát hệ thống contactcenter: 56

Hình 4.6: Lược ñồ chi tiết các dịch vụ của hệ thống contactcenter 57

Hình 4.7: Tiến trình thực hiện trong chương trình báo giá cổ phiếu 58

Hình 4.8: Tiến trình thực hiện trong chương trình báo số dư tài khoản 58

Hình 4.9: Tiến trình thực hiện trong chương trình báo số dư chứng khoán 58

Hình 4.10: Tiến trình thực hiện trong chương trình báo thông tin thị trường 59

Hình 4.11: Màn hình ñăng nhập vào Asterisk GUI 66

Hình 4.12: Màn hình thiết lập các thông số trong Asterisk GUI 66

Hình 4.13: Giao diện chính của Asterisk GUI sau khi ñăng nhập và thiết lập hệ thống 67

Trang 8

Bảng 1.1: Các loại tải audio ñược hỗ trợ bởi RTP 4 Bảng 1.2: Các loại tải video ñược hỗ trợ bởi RTP 4

Trang 9

A

ABNF Augmented Backus-Naur Format

ACD Automatic call Distribution

ACELP Algebraic Code Excited Linear Prediction

ACK Acknowledgement

AEC Acoustic Echo Cancellation

AF Assured Forwarding

AGI Asterisk Gateway Interface

AOR Address of Record

API Application Program Interface

ARP Address Resolution Protocol

ASCII American Standard Code for Information Interchange

ASN Abstract Syntax Notation

C

CB WFQ Class-Based Weighted Fair Queuing

CCITT Culsultative Committee for International Telephony and Telegraphy

CDR Call Detail Records

CID Context Identifier

CNG Comfort Noise Generator

CPU Central Processing Unit

CQ Custom Queuing

cRTP Compressed Real-Time Protocol

CSRC Contributing source

D

DISA Direct Inwards Services Access

DMA Direct Memory Access

DNS Domain Name System

DSCP Differentiated Service Code Point

DSP Digital Signal Process

DTMF Dual Tone Multi_Frequency

FXO Foreign exchange office

FXS Foreign exchange station

Trang 10

I

IANA Internet Assigned Numbers Authority

IAX Inter-Asterisk eXchange

ICE Interactive Connectivity Establishment

ICMP Internet Control Message Protocol

ID Identifier

IEEE Institute of Electrical and Electronic Engineers

IETF Internet Engineering Task Force

IGMP Internet Group Management Protocol

IP Internet Protocol

ISDN Integrated Services Digital Network

ISO International Standard Organization

ITU International Telecommunication Union

IVR Interactive voice response

L

LAN Local Area Network

LDAP Lightweight Directory Access Protocol

LLQ Low Latency Queuing

LSP Label Switching Path

LSR Label Switch Router

M

MAC Media Access Control

MCU Multipoint Control Unit

MGC Media Gateway Controller

MGCP Media Gateway Control Protocol

MIME Multipurpose Internet Mail Extensions

MPLS MultiProtocol Label Switch

MTU Maximum Transmission Unit

N

NAPTR Naming Authority pointer

NAT Network Address Translation

PCM Pulse Code Modulation

PENH Perceptual Enhancement

PLC Packet Lost Concealment

PQ Priority Queuing

PRI Primary rate interface

Trang 11

QoS Quality of Service

R

RARP Reverse Address Resolution Protocol

RAS Registration, Admission and Status

RFC Request for Comment

RPC Remote Procedure Call

RR Resource record

RSVP Resource Reservation Protocol

RTCP Real Time Control Protocol

RTP Real Time Transport Protocol

RTT Round-trip Time

S

SCTP Stream Control Transport Protocol

SDP Session Description Protocol

SER SIP Express Router

SIP Session Initiation Protocol

SMTP Simple Mail Transfer Protocol

SNMP Simple Network Management Protocol

SS7 Signaling System 7

STDERR Standard Error

STDIN Standard Input

STDOUT Standard Output

STUN Simple Traversal of UDP through NATs

T

TCP Transport Control Protocol

TDM Time Division Multiplexing

TLS Transport Layer Security

ToS Type of Service

TTL Time - to - Live

TU Transaction User

U

UAC User Agent Client

UAS User Agent Server

UDP User Datagram Protocol

URI Uniform Resource Indicator

URL Uniform Resource Locator

V

VAD Voice Activity Detector

VoIP Voice over Internet Protocol

W

WAN Wide Area Network

WFQ Weighted Fair Queuing

Trang 12

CHƯƠNG I: Lý thuyết cơ bản

Chương này nhằm mục ñích chuẩn bị cho người ñọc một số kiến thức cơ bản về các khái niệm và giao thức mạng có liên quan ñến hệ thống tổng ñài IP PBX và chương trình truyền thoại trên máy trạm Sau ñây là phần trình bày ngắn gọn các khái niệm và giao thức : mạng TCP/IP, RTP, SIP

1.1 Gii thi u v TCP/IP:

Bộ giao thức TCP/IP là một bộ các giao thức truyền thông cài ñặt chồng giao thức mà Internet và hầu hết các mạng máy tính thương mại ñang chạy trên ñó Bộ giao thức này ñược ñặt tên theo hai giao thức chính của nó là TCP (Giao thức ðiều khiển Giao vận) và IP (Giao thức Liên mạng) Chúng cũng là hai giao thức ñầu tiên ñược ñịnh nghĩa

Như nhiều bộ giao thức khác, bộ giao thức TCP/IP có thể ñược coi là một tập hợp các tầng, mỗi tầng giải quyết một tập các vấn ñề có liên quan ñến việc truyền dữ liệu, và cung cấp cho các giao thức tầng cấp trên một dịch vụ ñược ñịnh nghĩa rõ ràng dựa trên việc sử dụng các dịch vụ của các tầng thấp hơn

Mặc dù OSI và TCP/IP khác nhau, mô hình bảy lớp vẫn có ích ñể tham khảo khi nói về truyền dữ liệu Kiến trúc TCP/IP chia làm 4 lớp tương ñương với 7 lớp của mô hình OSI Sự tương ñương ñó ñược thể hiện cụ thể như sau:

Hình 1.1: Sự tương ñương của TCP/IP và mô hình OSI

 Lớp ứng dụng:

Lớp ứng dụng bao gồm các ứng dụng ñược sử dụng trong mạng Lớp ứng dụng và lớp ñại diện của mô hình OSI nằm trong lớp này của kiến trúc TCP/IP Ví dụ, nếu dữ liệu ñược truyền

Trang 13

giữa hai chương trình ngang hàng ñược nén thì ứng dụng sẽ có trách nhiệm nén và giải nén Thực

ra lớp vận chuyển cũng có liên quan ñến lớp ứng dụng chứ không tách ra thành một thực thể như trong mô hình OSI

Ví dụ của ứng dụng là Telnet, FTP, SMTP và Gopher Giao diện giữa lớp ứng dụng và lớp vận chuyển ñược ñịnh nghĩa bởi số cổng và socket

 Lớp vận chuyển:

Lớp vận chuyển cung cấp phân phối dữ liệu từ ñầu cuối ñến ñầu cuối Lớp vận chuyển và lớp phiên trong mô hình OSI nằm trong lớp này của kiến trúc TCP/IP Một socket TCP/IP là một ñầu cuối của giao tiếp bao gồm một ñịa chỉ máy tính và một cổng ñặc biệt cho máy tính ñó Lớp vận chuyển của OSI hơi giống với TCP của TCP/IP TCP cung cấp phân phối dữ liệu tin cậy và bảo ñảm cho các gói dữ liệu ñến ñúng thứ tự chúng ñã ñược gửi, không có dữ liệu trùng và không có mất dữ liệu

 Lớp Internet:

Còn gọi là lớp Network hay Internetwork Lớp này ñịnh nghĩa gói dữ liệu và xử lý ñịnh tuyến cho datagram Datagram là một gói dữ liệu ñược ñiều khiển bởi giao thức IP Một datdagram chứa một ñịa chỉ nguồn, ñịa chỉ ñích, dữ liệu cũng như các trường ñiều khiển Chức năng của lớp này tương ñương với chức năng của lớp mạng trong mô hình OSI Nó có trách nhiệm ñóng gói vào mạng sẵn có từ những lớp trên cũng như xử lý ñịa chỉ và phân phát các datagram IP không cung cấp tính tin cậy, ñiều khiển dòng và khắc phục lỗi Những chức năng này phải ñược cung cấp ở lớp cao hơn Những giao thức lớp Internet bao gồm IP, ICMP, IGMP, ARP và RARP

 Lớp giao diện mạng (Network Interface):

TCP/IP không ñịnh nghĩa những kết nối vật lý cho mạng sẵn có Thay vào ñó, nó sử dụng những chuẩn ñã tồn tại trước do các tổ chức ví dụ như IEEE ñịnh nghĩa RS232, Ethernet và các giao diện ñiện tử khác dùng trong truyền dữ liệu Lớp này có thể hoặc không cung cấp phân phát tin cậy, có thể ñịnh hướng dòng hay ñịnh hướng gói TCP/IP không ñặc tả bất kỳ giao thức nào ở ñây nhưng có thể sử dụng hầu hết các giao diện mạng có sẵn, thể hiện sự linh ñộng của lớp IP

Sự di chuyển dữ liệu giữa các lớp trong mạng TCP/IP ñược thể hiện trong hình:

Trang 14

Hình 1.2: Sự di chuyển dữ liệu giữa các lớp trong mô hình TCP/IP Khi một gói ñược gửi, nó ñến lớp vận chuyển và header của lớp vận chuyển ñược thêm vào Sau ñó, lớp Internet cũng thêm header của nó vào Cuối cùng lớp Network Interface cũng thêm header của nó vào Khi một gói dữ liệu nhận ñược, quá trình ñược tiến hành ngược lại ñể tạo ra

dữ liệu ban ñầu cho lớp ứng dụng

1.2 Gii thi u RTP (Real-Time Transport Protocol)

Giao thức RTP cung cấp các chức năng vận chuyển thích hợp cho các ứng dụng truyền tải thời gian thực như tín hiệu audio, video hay tín hiệu mô phỏng qua các dịch vụ mạng ña chiều (multicast) hay hai chiều (unicast).Và giao thức RTCP giúp quản lý việc cấp phát băng thông cho quá trình ñàm thoại ña chiều, ñồng thời cung cấp một số chức năng ñiều khiển RTCP dựa vào việc phát ñịnh kì các gói ñiều khiển cho tất cả các thành phần trong mạng trong một phiên, sử dụng cùng một kỹ thuật phân phát gói như các gói dữ liệu RTP và RTCP ñược thiết kế ñể chạy ñộc lập với các lớp bên dưới Do RTP và RTCP chạy ñộc lập với nhau nên cần phải thiết lập hai kênh truyền riêng biệt bằng việc sử dụng hai cổng UDP khác nhau

Trường tiêu ñề của các gói RTP

Bốn loại tiêu ñề chính trong gói RTP là loại tải, số thứ tự, timestamp và bộ xác ñịnh nguồn ñồng bộ như ñược chỉ ra trong hình

Trang 15

Hình 1.3: Các trường tiêu đề của RTP Loại tải: trường này dài 7 bit ðối với dịng audio, trường loại tải được sử dụng để chỉ ra loại

mã hĩa audio được sử dụng (ví dụ, điều chế PCM, điều chế delta thích nghi, mã hĩa dự đốn tuyến tính) Nếu bên gửi quyết định thay đổi kiểu nén giữa phiên, bên gửi cĩ thể thơng báo cho bên nhận về sự thay đổi thơng qua trường này Bên gửi cũng cĩ thể muốn thay đổi kiểu nén để tăng chất lượng âm thanh hay giảm tốc độ bit dịng RTP Bảng liệt kê một số loại tải âm thanh thường được hỗ trợ bởi RTP

Số của loại tải ðịnh dạng audio Tốc độ lấy mẫu Tốc độ bit

Bảng 1.1: Các loại tải audio được hỗ trợ bởi RTP

ðối với dịng video, loại tải được sử dụng để chỉ ra các kiểu nén video Cũng như trên, bên gửi cũng cĩ thể thay đổi kiểu nén video trong suốt quá trình diễn ra một phiên Bảng liệt kê danh sách các loại tải video thường được hỗ trợ bởi RTP

Bảng 1.2: Các loại tải video được hỗ trợ bởi RTP

Số thứ tự: Trường này dài 16 bit Số thứ tự tăng lên một mỗi khi gĩi RTP được gửi đi và cĩ thể được sử dụng bởi bên thu để phát hiện sự mất mát gĩi và lưu trữ số thứ tự của các gĩi Ví dụ, nếu bên nhận của ứng dụng nhận được một dịng gĩi RTP với một khoảng trắng giữa số thứ tự 86

và 89 thì bộ thu biết rằng gĩi 87 và 88 đã bị mất Sau đĩ, bộ thu cố gắng thơng báo về sự mất dữ liệu

Timestamp: trường timestamp dài 32 bit Nĩ phản ánh thời điểm lấy mẫu của byte đầu tiên Loại tải Số thứ tự Timestamp SSRC Các trường khác

Trang 16

ñể cung cấp sự ñồng bộ ở bộ nhận Timestamp ñược lấy ra từ ñồng hồ lấy mẫu ở bên gửi Ví dụ, ñối với audio, xung clock của timestamp tăng lên một sau mỗi chu kỳ lấy mẫu (125µs) Nếu ứng dụng audio tạo ra những chunk gồm 160 mẫu ñã ñược mã hóa, timestamp sẽ tăng thêm 160 cho mỗi gói RTP khi nguồn ñang hoạt ñộng ðồng hồ timestamp sẽ tiếp tục tăng với một tốc ñộ không ñổi cho dù nguồn có thể không hoạt ñộng

Bộ xác ñịnh nguồn ñồng bộ (SSRC): Trường SSRC dài 32 bit Nó xác ñịnh nguồn của dòng RTP Thông thường nhất, mỗi dòng trong một phiên RTP có một SSRC ñặc trưng SSRC không phải là ñịa chỉ IP của bên gửi mà thay vào ñó là một số mà nguồn ñăng ký một cách ngẫu nhiên khi dòng mới ñược bắt ñầu Khả năng ñể hai dòng ñăng ký cùng một SSRC là rất nhỏ Nếu ñiều

ñó xảy ra, hai nguồn sẽ lấy một giá trị SSRC mới

1.3 Gii thi u giao th$c SIP

SIP ( Session Initiation Protocol ) là một giao thức ñiều khiển thuộc lớp ứng dụng, có thể thiết lập, thay ñổi và kết thúc các phiên ña phương tiện như các cuộc gọi ñiện thoại qua Internet SIP cũng có thể mời thêm các thành viên tham gia vào những phiên ñã tồn tại sẵn, ví dụ như các hội nghị multicast Media có thể ñược thêm vào, hoặc lấy ra từ các phiên có sẵn SIP hỗ trợ một cách thông suốt việc ánh xạ tên và các dịch vụ chuyển hướng, từ ñó hỗ trợ cho tính di ñộng của con người, tức là người sử dụng có thể ñảm bảo một sự xác ñịnh duy nhất một cách trực quan mà không cần biết ñến vị trí mạng của họ

SIP thực hiện các công việc sau :

_ SIP cung cấp cơ chế ñể thiết lập cuộc gọi giữ người gọi và người nhận cuộc gọi qua mạng

IP Nó cho phép người gọi báo hiệu cho người nhận cuộc gọi rằng người gọi muốn bắt ñầu một cuộc thoại Nó cho phép các bên ñồng ý về cách mã hóa thoại ðồng thời người tham gia thoại

Các thành phần của giao thức SIP :

_ SIP User Agent (UA) : User Agent là thành phần hệ thống ñầu cuối của cuộc gọi và SIP Server là thiết bị mạng quản lý các báo hiệu liên kết với sự thiết lập nhiều cuộc gọi, ñịnh vị, hội thảo

_ SIP Network Server : là các thành phần chuyển tiếp bản tin trên mạng Network server có thể lưu trữ thông tin về các ñầu cuối trên mạng, phục vụ cho các quá trình tìm gọi

Có 5 loại SIP server như sau:

Trang 17

1 Proxy Server : giữ thông tin về vị trí, nằm ở giữa cuộc gọi, chuyển các cuộc gọi và thông tin báo hiệu ñến mỗi ñiểm cuối / host UA

2 Re-direct Server (Server chuyển hướng): giữ thông tin vị trí, nhưng không giống như proxy server, nó làm việc với ñiểm ñầu cuối/host UA, cho phép cuộc gọi và báo hiệu giữa các UA’s

3 Registrar Server : ñăng ký, quản lý và xác nhận các UA

4 Conference Server: cho phép chia nhánh các cuộc gọi và tiếp xúc ñể tạo cơ sở cho hội nghị

5 Applications Server : cung cấp cơ sở cho sự nhất quán, các chức năng và ñặc ñiểm – ví dụ như Instant Messaging (IM)

Một UA có thể gọi một UA trên cơ sở peer – to – peer không cần một network server

SIP ñịnh ñịa chỉ các user bởi một ñịa chỉ ñịnh dạng như sau: “sip:users@host”

Quá trình thiết lập cuộc gọi trên mạng ñược thực hiện thông qua quá trình trao ñổi các bản tin giữa các user agent trên mạng Các bản tin SIP ñược phân thành hai nhóm:

Nhóm các bản tin yêu cầu (request message): ñược gửi ñi từ các thành phần ñóng vai trò client trên mạng Các bản tin này sẽ thực hiện các chức năng xác lập cũng như quản lý các cuộc gọi Ví dụ như các yêu cầu : INVITE, REGISTER, OPTIONS …

Các bản tin ñáp ứng (responde message): là các bản tin ñược phúc ñáp tương ứng từ các server cho các yêu cầu từ các client.Nó có dạng là một số từ 1xx ñến 6xx, mỗi số có một

ý nghĩa khác nhau Ví dụ: 100/Trying, 180/Ringing, 200/OK, 302/Moved Temporarily, 408/Resquest Timeout, 486/Busy Here, 502/Bad Gateway, 603/Decline …

Ta xem hình sau ñể có thể biết ñược toàn bộ quá trình thiết lập và kết thúc một cuộc gọi bằng SIP, truyền thoại bằng RTP:

Trang 18

Hình 1.4: Mô tả các quá trình diễn ra cho một cuộc gọi SIP ñiển hình qua 16 bước

Bước 1 – Người sử dụng ở UA 1 muốn kết nối tới người ñược gọi Khi ñó phần mềm UA chạy trên UA1 sẽ tạo một yêu cầu INVITE và gửi ñến proxy ðịa chỉ của proxy ñã ñược cấu hình trước trên chương trình

Bước 2 – Proxy tiếp nhận ñược yêu cầu của sofpthone nhờ listen trên port 5060/UDP lập tức trả lời bằng một ñáp ứng 100 (TRYING) nhằm yêu cầu client chờ kết nối Sau ñó qua bước 3 Bước 3 – Proxy xem xét yêu cầu INVITE, xác ñịnh host mà ở ñó người ñược gọi ñang login vào, chuyển tiếp yêu cầu INVITE ñến ñó

Bước 4 – UA 2 trả lời cho proxy bằng ñáp ứng 100 (TRYING)

Bước 5 – UA 2 gởi ñáp ứng 180 (RINGING) về cho proxy ñể báo rằng ñang ñổ chuông Bước 6 – proxy chuyển tiếp 180(RINGING) về UA 1

Bước 7 – UA 1 nhận ñược 180(RINGING) lập tức tự phát âm hiệu ringback tone dạng

colorring dựa vào cấu hình nhạc chuông ñược thiết lập sẳn

Bước 8 – Người ñược gọi ở UA 2 nhấc máy UA 2 thông báo cho proxy tín hiệu nhấc máy bằng 200 (OK)

Bước 9 – proxy chuyển tiếp 200(OK) cho UA 1

Bước 10 – UA 1 gửi yêu cầu ACK cho proxy nhằm confirm rằng nó ñã nhận ñược tín hiệu

200 (OK)

Trang 19

Bước 11 – proxy chuyển tiếp ACK tới UA 2

Bước 12 – UA 1 tạo RTP stream với UA 2 và bắt ñầu truyền voice

Bước 13, 14 – Giả sử người gọi ở UA 1 gác máy trước UA 1 tạo yêu cầu BYE và gửi ñến

UA 2 thông qua proxy

Bước 15, 16 – UA 2 nhận ñược yêu cầu BYE của UA 1, nó trả lời bằng ñáp ứng 200 (OK), ñồng thời kết thúc cuộc gọi

Trang 20

CHƯƠNG II: Nghiên cứu tổng ñài nội bộ IP PBX

2.1 Gii hi u t&ng ñài PBX:

2.1.1 Hệ thống tổng ñài PBX là gì?

PBX là từ viết tắt của Private Branch Exchange PBX là một tổng ñài nội bộ, nó cung cấp cho hệ thống thoại nội bộ Khởi ñầu, tổng ñài ñiện thoại ñược ñiều khiển bởi những nhà cung cấp thoại, như AT&T ở Mỹ, British Telecom ở Anh Những công ty này cung cấp tất cả ñường dây và ñịnh tuyến cuộc gọi giữa các công ty và công cộng Khởi ñầu, việc ñịnh tuyến cuộc gọi ñược thực hiện bởi một nhóm các nhân viên (nữ) trong các văn phòng của những công ty thoại và việc ñịnh tuyến ñược thực hiện bằng cách thay ñổi

vị trí các cable ñể kết nối từ người gọi này ñến người gọi khác Khi sự tín nhiệm và nhu cầu dịch vụ này ngày càng gia tăng, ñòi hỏi phải có hệ thống tổng ñài chuyển mạch tự ñộng ñể quản lý các cuộc gọi

Khi các mạng ñiện thoại hình thành, các công ty ñã thấy ñược sự tin cậy hơn và lợi ích của thông tin thoại Một số quyết ñịnh thực hiện những dịch vụ riêng cho họ ñể họ có thể ñiều chỉnh ñược các cuộc gọi nội bộ Thông thường, các thiết bị ñược cung cấp bởi các công ty thoại, vì vậy các công ty này cũng sẵn lòng hỗ trợ các dịch vụ này Các công

ty sử dụng các ñường dây và kết nối cuộc gọi ra bên ngòai công ty phải trả một khoản phí cho các công ty cung cấp thoại

Có nhu cầu rõ ràng ở các công ty, nhu cầu cài ñặt các thiết bị và ñịnh tuyến cuộc gọi nội bộ và cuộc gọi ra vào công ty ñược thực hiệnmột cách chắc chắn và ñịnh tuyến ñúng Vì vậy có ñòi hỏi cho tổng ñài PBX là hiệu quả quản lý cuộc gọi và chắc chắn các thông tin liên lạc bằng thoại giữa các bộ phận và nhân viên trong công ty và với khách hàng ñược duy trì tình trạng tốt nhất

Về hình thức cơ bản, PBX là giao tiếp giữa mạng thoại chung bên ngòai và mạng thoại nội bộ riêng của công ty PBX có thể ñịnh tuyến hiệu quả tất cả cuộc gọi ra vào công ty PBX có thể ñiều khiển ñược các cuộc gọi trong công ty, vì thế một cuộc gọi từ một số nội bộ ñến một nơi khác không phải ra chuyển qua hệ thống mạch ñiện thoại khác

PBX ngày càng trở nên phổ biến hơn, các công ty và nhân viên của họ ñòi hỏi nhiều tính năng hơn như: hộp thư thoại, chuyển cuộc gọi, nghe nhạc trong lúc chờ cuộc gọi, mục trả lời tự ñộng, ñịnh tuyến giá trị thấp nhất, và phân bố tự ñộng cuộc gọi Với nhu cầu ngày càng tăng cho thông tin liên lạc trong tất cả khía cạnh của việc kinh doanh, các tính năng ñược yêu cầu trong hệ thống thoại trở nên phức tạp hơn, ñắt hơn Nếu các công ty phải dựa vào các nhà cung cấp dịch vụ cho tất cả các tính trên, thì thông tin sẽ trở nên ñắt và có thể không mua nổi

Trang 21

Khi một công ty muốn nâng cấp tổng ñài PBX của mình ñể ñáp ứng nhu cầu ngày một gia tăng, họ phải trả một khoản phí cho các nhà cung cấp dịch vụ PBX, và thông thường khoản chi phí là không nhỏ Ví dụ: muốn thêm chức năng voicemail vào hệ thống PBX,

họ gần như phải thay ñổi toàn bộ cấu trúc của PBX truyền thống, và ñiều này là rất tốn kém

Vấn ñề ñặt ra, hiện nay internet phát triển rất mạnh, nên người ta mới nghĩ ñến việc kết hợp truyền thoại qua internet với ñiện thoại truyền thống, từ ñó người ta nghĩ ra hệ thống PBX hybrid

2.1.3 Hệ thống PBX Hybrid:

Hệ thống PBX Hybrid là sự kết hợp các ñặc tính của hệ thống PBX truyền thống với hệ thống truyền thoại VoIP Với mạng VoIP, ta có thể sử dụng các ñiện thoại IP hoặc Soft phone, và khả năng dùng ITSP (Internet Telephone Service Providers), không chỉ là dịch vụ ñiện thoại truyền thống Ưu ñiểm chinh của việc kết hợp hai hệ thống là, ta vừa có thể sử dụng ưu ñiểm chất lượng

Trang 22

của ñiện thoại truyền thống, cũng như là cơ sở hệ thống mạng ñiện thoại truyền thống có sẵn, kết hợp với những tính năng mới của công nghệ VoIP ñem lại, tính kiệm chi phí ñầu tư

Mô hình hệ thống PBX Hybrid ñơn:

Internet

Public telephone Network

Phone Stations

PBX hybrid

Hình 2.2: Mô hình hệ thống PBX Hybrid ñơn

2.2 Các tính năng c.n thi/t cho m0t t&ng ñài n0i b0 PBX ngày nay:

2.2.1 Tổng ñài chuyển mạch cuộc gọi trên nền IP:

Hình 2.3: Mô hình cơ bản kết nối của IP PBX

Trang 23

- Hỗ trợ các ñường trung kế cho phép nhiều cuộc gọi cùng ñược chuyển tải trên một ñường dây trung kế ñến mạng

- Tra cứu các thuộc tính của cuộc gọi và ra quyết ñịnh chuyển cuộc gọi dựa trên các thuộc tính ñó

- Lưu trữ các thông tin cuộc gọi trong cơ sở dữ liệu ñể tiện việc tra cứu Cũng như ta có thể

so sánh các thông tin này với hóa ñơn hàng tháng của công ty ñiện thoại gởi cho ta Nó cho phép

ta phân tích lưu lượng thoại trong công ty , tìm ra 10 số phone thường gọi nhất , xem thời gian của các cuộc gọi , so sánh với thời gian trung bình trong các cuộc gọi Nhờ vậy , ta hoàn toàn có thể phát hiện ñược việc liệu nhân viên công ty có sử dụng ñiện thoại một cách hoang phí trong giờ làm việc hay không

-Các cuộc gọi sẽ ñược lưu tại dưới ñịnh dạnh file nào ñó ta có thể nhận biết, Khi ñó các cuộc gọi quan trọng sẽ ñược lưu lại, và có thể nghe lại bất cứ khi nào người dung muốn

2.2.2 Hệ thống trả lời tự ñộng:

Các doanh nghiệp có thể xây dựng hệ thống dịch vụ phục vụ 24/24 trong khi vẫn có thể giảm công sức thuê muốn nhân viên cho việc này Hệ thống cho phép phát lại giọng nói, ñọc văn bản, hoặc thu thập thông tin từ cơ sở dữ liệu Các chức năng này thường cần trong dịch vụ ñiện thoại của ngân hàng , hoặc hệ thống tính cước Ví dụ khi bạn gọi ñến ngân hàng , bạn sẽ nghe lời chào mừng , bạn nhập vào các thông tin chứng thực , sau ñó bạn sẽ ñược nghe các thông tin cá nhân ñược trích ra từ cơ sở dữ liệu …

2.2.3 Hệ thống hộp thư thoại:

Hệ thống có thể sắp xếp sao cho nhiều hộp thư có thể ñược lưu trữ trên cùng một máy chủ, ñiều này phù hợp cho một doanh nghiệp khi triển khai cho công ty mình Hệ thống hỗ trợ việc ñiều chỉnh nhiều múi giờ khác nhau nên người sử dụng có thể biết khi nào cuộc gọi ñến, và bên cạnh ñó cung cấp khả năng thông báo cho người sử dụng khi có voicemail mới bằng email trong

ñó có ñính kèm tin nhắn thoại

2.2.4 Hệ thống VoIP:

Hệ thống cho phép nhân viên có thể sử dụng các dịch vụ văn phòng (voicemail, ñiện thoại ñường dài …) giữa các chi nhánh với nhau dựa trên ñường truyền internet tốc ñộ cao

Trang 24

Hình 2.4: Mô hình kết nối của một mạng VoIP

2.2.5 Hệ thống phân phối tự ñộng cuộc gọi:

Hệ thống tiếp nhận các cuộc gọi từ bên ngoài ñể ñưa vào hệ thống hàng ñợi (nơi cuộc gọi ñược chờ cho ñến khi cuộc gọi ñó ñược thực thi), sau ñó chuyển ñến nhân viên trả lời theo những chiến lược thích hợp, ñiều này sẽ làm cho việc trả lời các cuộc gọi linh hoạt và hiệu quả Trong lúc các thuê bao gọi ñến sẽ ñược ñưa ñến hàng ñợi và tại ñây thuê bao có thể nghe nhạc hoặc ñược giới thiệu các thông tin về công ty Mục tiêu chính của hệ thống nhằm phục vụ khách hàng gọi ñến ñể ñược hỗ trợ kỹ thuật, tìm hiểu thống tin hay trao ñổi mua bán một cách tốt nhất

Hình 2.5: Mô hình phân phối cuộc gọi cơ bản

Những công việc chính của một hệ thống phân phối cuộc gọi có thể ñược trình bày như sau: -Tiếp nhận các cuộc gọi vào, hệ thống có số lượng cuộc gọi vào lớn hơn hoặc bằng số lượng người trả lời thường là lớn hơn số lượng người trả lời, nếu thuê bao gọi ñến trong trường hợp tất

Trang 25

cả người trả lời ựều bận thì cuộc gọi sẽ ựược ựặt vào hàng ựợi

-Người trả lời sẽ trả lời các cuộc gọi ựến theo các chiến lược phân phối cuộc gọi phù hợp -Thuê bao có thể nghe nhạc khi trong hàng ựợi

-Thuê bao có thể nghe thông báo vị trắ của mình trong hàng ựợi

Trong một hệ thống có thể thiết lập hàng ựợi ựể giải ựáp các thông tin khác nhau của công ty

Có hai phương pháp phục vụ trả lời cuộc gọi qua hàng ựợi:

+ Phương pháp thứ nhất: là mỗi người trả lời làm việc cố ựịnh trên một máy ựiện thoại, khi

có cuộc gọi ựến người trả lời chỉ việc nhấc máy trả lời cuộc gọi, tất nhiên cuộc gọi sẽ phân phối ựến các người trả lời một cách thắch hợp Phương pháp này còn gọi là phương pháp tĩnh

+ Phương pháp thứ hai: Người trả lời sử dụng tai phone ựeo thường trực trên tai luôn sẵn sàng trả lời cuộc gọi, khi có cuộc gọi ựến người trả lời sẽ nghe một âm hiệu báo hiệu cuộc gọi ựã hiện diện tại vị trắ mình, lúc này thuê bao chỉ việc lên tiếng trả lời cuộc gọi, thường làm việc với phần mềm thoại Phương pháp này còn gọi là phương pháp ựộng

Hiện nay, có nhiều công ty ựã cung cấp các tổng ựài phần cứng trên thị trường, các tổng ựài phần cứng này cung cấp ựầy ựủ các tắnh năng cho tổng ựài PBX cho một công ty Nhưng giá thành của các tổng ựài là rất ựắt, việc ựầu tư chi phắ ban ựầu rất cao, ựây là một thách thức cho các doanh nghiệp Việc xây dựng một tổng ựài mềm có cũng có ựầy ựủ các tắnh năng là một trong hướng phát triển, làm giảm chi phắ (ựầu tư và sử dụng), bên cạnh ựó cung cấp các dịch vụ linh hoạt phù hợp với khách hàng của mỗi công ty

để xây dựng một tổng ựài nội bộ PBX mềm trên nền IP ựòi hỏi một phần mềm hệ thống ựể tạo, quản lý, hiệu chỉnh các dịch vụ do tổng ựài PBX

2.3 Gii thi u v ph.n m m h th3ng cho t&ng ựài IP PBX:

Trong quá trình nghiên cứu, nhóm nhận biết ựược phần mềm hệ thống có thể áp dụng cho tổng ựài IP PBX đó là phần mềm Asterisk

2.3.1 Asterisk là gì?

Asterisk là phần mềm mã nguồn mở ựược viết bằng ngôn ngữ lập trình C chạy trên hệ ựiều hành Linux Asterisk ra ựời vào năm 1999 ựược viết bởi Mark Spencer, với phần mềm có thể thực hiện các tắnh năng cần thiết của tổng ựài IP PBX

Asterisk có các ựặc trưng như sau:

+ Tổng ựài nội bộ (Private Branch Exchange-PBX)

+ Máy chủ hội họp thoại (Conferencing Server): máy chủ thoại gói, âm thanh ựược ựịnh dạng dưới hình thức gói, và có thể truyền ựi trên nền IP

+ Gateway giao tiếp với nhiều giao thức báo hiệu như: H.323, SIP, MGCP, IAX

+ Hệ thống trả lời thoại tự ựộng cho máy trạm

+ Hệ thống chuyển mạch mềm

+ Chuyển ựổi số gọi ựến người dùng

+ Gọi các thành viên trong hàng ựợi với các Agent ựiều khiển bên ngoài

+ Các dịch vụ thoại cho các người dùng hoặc văn phòng ở xa

+ Hệ thống Voicemail chuẩn

Với sự hỗ trợ của Asterisk, nhóm sẽ sử dụng phần mềm này làm phần mềm hệ thống cho tổng ựài IP PBX

Trang 26

2.3.2 Kiến trúc Asterisk:

Hình 2.6: Kiến trúc Asterisk

Về cơ bản kiến trúc của Asterisk là sự kết hộp giữa nền tảng công nghệ ñiện thoại và ứng dụng ñiện thoại công nghệ ñiện thoại cho VOIP như SIP, H323, IAX, MGCP các công nghệ ñiện thoại cho hệ thống chuyển mạch mạch TDM như T1, E1, ISDN và các giao tiếp ñường truyền thoại Analog Các ứng dụng thoại như chuyển mạch cuộc gọi, tương tác thoại, caller ID, voicemail, chuyển cuộc gọi…

Asterisk có một số chức năng chính ñóng vai trò quan trọng trong hệ thống chuyển mạch cuộc gọi Khi khởi ñộng hệ thống Asterisk thì chức năng Dynamic Module Loader thực hiện nạp driver của thiết bị, nạp các kênh giao tiếp, các format, codec và các ứng dụng liên quan, ñồng thời các hàm API cũng ñược liên kết nạp vào hệ thống

Sau ñó hệ thống PBX Switching Core của Asterisk chuyển sang trạng thái sẵn sàng hoạt ñộng chuyển mạch cuộc gọi, các cuộc gọi ñược chuyển mạch tuỳ vào kế hoạch quay số (Dialplan) ñược thực hiện cấu hình trong file extension.conf

Chức năng Application Launcher ñể rung chuông thuê bao, quay số, ñịnh hướng cuộc gọi, kết nối với hộp thư thoại…

Scheduler and I/O Manager ñảm nhiệm các ứng dụng nâng cao, các chức năng ñược phát triển bởi cộng ñồng phát triển Asterisk

Codec Translator xác nhận các kênh nén dữ liệu ứng với các chuẩn khác nhau có thể kết hợp liên lạc ñược với nhau

Tất cả các cuộc gọi ñịnh hướng qua hệ thống Asterisk ñều thông qua các giao tiếp như SIP, Zaptel, IAX Nên hệ thống Asterisk phải ñảm trách nhiệm vụ liên kết các giao tiếp khác nhau ñó

Trang 27

ñể xử lý cuộc gọi

Hệ thống cũng bao gồm 4 chức năng API chính:

Codec translator API: các hàm ñảm nhiệm thực thi và giải nén các chuẩn khác nhau như G711, GSM, G729…

Asterisk Channel API : Giao tiếp với các kênh liên lạc khác nhau, ñây là ñầu mối cho việc kết nối các cuộc gọi tương thích với nhiều chuần khác nhau như SIP, IAX, H323 Zaptel… Asterisk file format API: Asterisk tương thích với việc xử lý các loại file có ñịnh dạng khác nhau như Mp3, wav, gsm…

Asterisk Aplication API: Bao gồm tất cả các ứng dụng ñược thực thi trong hệ thống Asterisk như voicemail, callerID…

Ngoài ra, Asterisk còn có thư viện Asterisk Gateway Interface (AGI, tương tự như CGI) - cơ chế kích hoạt ứng dụng bên ngoài, cho phép viết kịch bản phức tạp với một số ngôn ngữ như PHP hay Perl Nói chung, khả năng viết các ứng dụng tùy biến rất lớn

Sau khi nắm các tính năng và toàn bộ kiến trúc Asterisk, nhóm tiến hành cài ñặt và cấu hình Asterisk

2.3.3 Cài ñặt, cấu hình Asterisk

2.3.3.1 Cài ñặt Asterisk

Asterisk hoạt ñộng trên hệ ñiều hành Linux

Asterisk có thể ñược download tại ñịa chỉ website: www.asterisk.org Bạn có thể download các gói zaptel, Asterisk, Asterisk-sounds, Asterisk-addon

Trong ñó zaptel là driver, Asterisk dùng cho giao tiếp phần cứng analog hoặc digital hardware, kết nối với mạng PSTN Nếu ta không kết nối với mạng PSTN thì có thể bỏ qua gói này, ta chỉ cần dùng một gói Asterisk ñể cài ñặt và sử dụng chương trình Asterisk ) Nếu ta có kết nối với mạng PSTN, ta phải cài ñặt gói này trước khi cài ñặt gói Asterisk

Giới thiệu về hình ảnh của một card giao tiếp với ñường dây thoại

Hình 2.7: Hình ảnh về card TDM kết nối PSTN (loại TDM800P)Nếu một tổng ñài muốn kết nối với mạng PSTN thì cần cài ñặt gói zaptel ñầu tiên ðây là driver của card giao tiếp Digium trong Asterisk

Trang 28

Cài ñặt gói zaptel với các bước như sau:

# make samples ; cài ñặt các ñoạn code mẫu

# make config ;ñảm bảo Asterisk sẽ ñược khởi ñộng cùng HðH Linux

Tiếp theo cài ñặt gói Asterisk-sound, phần này bổ sung thêm các file âm thanh với các chuẩn codec khác nhau: gsm, wav, G.711,… Các bước cài ñặt

2.3.3.2 Hướng dẫn cấu hình các file cần thiết trong Asterisk:

Trong các file cấu hình của Asterisk, ta có file zaptel.conf là file khai báo về card giao tiếp phần cứng, nhóm ñặt nó riêng biệt trong thư mục etc/ Ngoài ra, các file cấu hình còn lại ñều nằm trong thư mục etc/Asterisk/ ðầu tiên nhóm sẽ tìm hiểu việc cấu hình file zaptel.conf

2.3.3.2.1 Cấu hình file zaptel.conf

Việc cấu hình Asterisk cho kết nối phần cứng với mạng PSTN nằm trong file zaptel.conf tại thư mục etc/

fxsks : chỉ ra các port kết nối với máy trạm

fxoks : chỉ ra các port kết nối với tổng ñài

loadzone : chỉ ra tên quốc gia mà dữ liệu ñược sử dụng khi khởi tạo

defaultzone : chỉ ra tên quốc gia mà dữ liệu mặc ñịnh

Trang 29

Tuy nhiên, việc card giao tiếp với tín hiệu thoại analog, nhóm sẽ cấu hình trong file zapata.conf

2.3.3.2.2 Cấu hình file zapata.conf:

Các lựa chọn cấu hình trong file zapata:

language: là ngôn ngữ mặc ñịnh sử dụng Việc thiết lập mặc ñịnh là “en” cho tiếng Anh context: thông báo cho Asterisk context mà cuộc gọi từ line analog qua phần cứng vào Asterisk

switchtype: chỉ dùng cho mạng ISDN, các thông số

pridiaplan: Thiết lập cho kết nối PRI

overlapdial: VIệc thiết lập này quyết ñịnh gửi hoặc không gửi trùng các số trong khi dialing Giá trị lựa chọn là “yes” hoặc “no”

signaling: chọn lựa phương thức báo hiệu Các giá trị lựa chọn là

em: báo hiệu E&M

em_w: E&M Wink

featd: Feature Group D, Adtran

featdmf: Feature Group D, US

featb: Feature Group B, US

pri_cpe: báo hiệu PRI, CPE (Customer Premises Equipment)

Pri_net: báo hiệu PRI, network

sf: báo hiệu SF

usecallerid: thiết lập là “yes” nếu chúng ta mong muốn dùng ñịnh danh người gọi (caller ID)

và ngược lại là “no”

callwaiting: thiết lập là “yes” ñể cho phép call waiting trên các thiết bị phần cứng giao tiếp bằng cổng FXO

group: chúng ta chỉ ñịnh các group cho các line

Callgroup: chỉ ñịnh một group mà

amaflags: ảnh hương ñến CDR () Biến này có thể thiết lập là ”default”, “omit”, “billing”,

‘documentation’ (các ký tự này sẽ ñược giải thích trong phần sau)

Accountcode: gán cho các kênh truyền các mã tài khoản với mục ñích tính toán (billing) Busydetect: thiết lập là “yes” ñể tìm những line bị ngắt kết nối hoặc ñang bận

Busycount: biến thiết lập thời gian busy tones có thể nghe trước khi ngắt kết nối kênh truyền Giá trị mặc ñịnh là 4

Musiconhold: thiết lập âm nhạc nghe trong lúc chờ

Channel: có thể là 1 kênh hoặc dãy các kênh Các kênh này phải phù hợp với các kênh ñịnh nghĩa trong file zaptel.conf

2.3.3.2.3 Cấu hình file sip.conf:

SIP là giao thức dùng ñể thiết lập, chỉnh sửa và kết thúc các phiên làm vụ trong các dịch vụ multimedia, chẳng hạn như các cuộc gọi ñiện thoại qua Internet

Trang 30

Việc cấu hình sip là tạo tài khoản trong file sip.conf, user sẽ sử dụng tài khoản này ñể sử dụng các dịch vụ hay tiện ích do Asterisk cung cấp cho một SIP account Các thông tin cấu hình SIP ñược lưu trữ trong file /etc/Asterisk/sip.conf

ðịnh nghĩa cho các tài khoản

type: có 3 chọn lựa

user: cho phép thực hiện cuộc gọi ñến user

peer: cho phép user thực hiện cuộc gọi ñi

Friend: cho phép user nhận cuộc gọi ñến và gửi cuộc gọi ñi

Username: thiết lập username cho việc chứng thực

Secret: thiết lập password cho việc chứng thực

Md5secret: MD5 băm và mã hoá username và password

Callerid: thiết lập ñịnh danh caller ID

Host: thiết lập ñịa chỉ host của user Ở ñây ñược chỉ ra IP tĩnh hoặc từ khoá “dynamic” Defaultip: với host = dynamic, ở ñây thiết lập ñịa chỉ IP mặc ñịnh cho việc khi nhánh không ñược ñăng ký

Nat: thiết lập “yes”, hoặc “no” tuỳ việc thiết bị SIP có nằm sau firewall không

Mailbox: thiết lập hộp mail cho việc kiểm tra thông ñiệp từ các user khác

Outgoinglimit: thiết lập số lượng tối ña cuộc gọi, mà thiết bị có thể thực hiện trong một thời gian nhất ñịnh

Incominglimit: thiết lập số lượng tối ña cuộc gọi, mà thiết bị có thể khởi tạo tại một thời ñiểm

Callgroup and pickupgroup: ñược thiết lập giống trong file Zapata.conf

Deny: là danh sách các ñịa chỉ IP loại bỏ khỏi máy chủ Asterisk

Permit: danh sách các ñịa chỉ IP ñược phép truy cập máy chủ Asterisk

2.3.3.2.4 Cấu hình file voicemail.conf:

Thông qua file /etc/Asterisk/voicemail.conf, chúng ta có thể cấu hình toàn bộ lựa chọn cho hệ thống voicemail tốt như ñịnh nghĩa của các hộp voicemail khác

Trong file cấu hình, chúng ta cấu hình những lựa chọn chung:

serveremail: ñịa chỉ server mà email có ñính kèm voicemail ñược gửi ñến

fromstring: tên hiển thị email ñến

attach: thông số ñáp ứng của serveremail, ta sẽ cấu hình là “yes” hoặc “no”

maxmessage: thời gian tối ña của thông ñiệp voicemail (ñơn vị: giây)

Minmessage: thời gian tối thiểu của thông ñiệp voicemail (ñơn vị: giây)

Maxgreet: thời gian tối ña mà các user có thể thu âm lời chào (ñơn vị: giây)

Maxsilence: thời gian im lặng trước khi kết thúc viêc thu âm (ñơn vị: giây)

Maxlogin: thiết lập số lần users login không ñược, khi ñạt ñến số lần này sẽ bị ngắt kết nối

Trang 31

Tạo vùng thời gian (timezone)cho thông ñiệp ðiều này làm cho Comedian mail biết nó nên nói vùng thời gian chính xác khi báo cho các user về thông ñiệp mà các users nhận ñược Ví dụ: chúng ta sống ở vùng thời gian Central, ta sẽ cấu hình như sau:

[zonemessages]

Central=Vietnam/Chicago|’vm-received’ Q ‘digits/at’ IMp

Vùng thời gian ñược ñịnh nghĩa trong thư mục /usr/share/zoneinfo/

Cuối cùng ta ñịnh nghĩa các hộp mail mailboxes Chúng ta phải ñặt mỗi hộp mailbox trong một context, hộp voicemail box nên giống với extension của user Cấu hình:

Voicemailbox => password,username,emailaddress,pageraddress,options

Chúng ta có thể cấu hình một hoặc nhiều option cho một user

tz: là thiết lập vùng thời gian timezones, ñược ñịnh nghĩa trong [zonemessages]

attach: 1 user muốn file voicemail của họ ñược ñính kèm vào email

Saycid: làm Comedian Mail speak Caller ID của caller, người gửi thông ñiệp

Operator: cho phép chúng ta ñịnh nghĩa việc một caller có thể nhấn số 0 cho việc gửi thông ñiệp

Mỗi option ñược tách biệt ký hiệu “|”

Nếu chúng ta muốn có hộp voicemail cho nhánh 1000, với password là 1234, chấp nhận mọi

sự mặc ñịnh, không gửi mail, chúng ta sẽ cấu hình trong file voicemail.conf như sau:

Dialplan gồm 4 phần chính: contexts, extensions, priorities, và applications

Nhóm giải thích chi tiết từng phần như sau

a) Contexts:

Contexts là tên của một nhóm các nhánh, với mỗi nhánh có một ứng dụng Như vậy, trong mỗi context này sẽ thực hiện các chức năng mà nhóm mong muốn cho mỗi context Ví dụ: Context A thì nhóm quy ñịnh chỉ thực hiện ñược gọi ñến tài khoản X, có thể sử dụng ñược hộp thư thoại, trong khi context B nhóm quy ñịnh có thể thực hiện ñược gọi ñến tài khoản Y, và không sử dụng ñược hộp thư thoại

Các nhánh trong những context khác nhau là cách li hoàn toàn, tức là nhánh trong context có thể giống với nhánh trong context khac, nhưng Asterisk vẫn phân biệt ñược các nhánh này Context ñược chứa trong dấu ngoặc vuông “[]”

Tên của context có thể ñược thiết lập với các chữ cái (A Z),chữ số (09) và gạch nối

Ví dụ: [abc]

Có 2 loại context ñặc biệt là [globals] và [general] Chúng ta sẽ tìm hiểu trong phần sau

Trang 32

b) Extension:

Extension là một cấu trúc mà Asterisk sẽ cho phép thực hiện cuộc gọi vào một kênh extensions chỉ rõ những cái mà xảy ra trong cuộc gọi khi chúng thực hiện những cách thức thông qua dialplan

Cú pháp thực hiện extension là:“exten =>”

Một extension hoàn chỉnh bao gồm 3 thành phần:

+ Tên (hoặc số)

+ Thứ tự thực hiện lệnh

+ Ứng dụng (hoặc lệnh)  thực hiện vài hành ñộng trong cuộc gọi

Cả 3 thành phần này ñược tách biệt bởi các dấu phẩy

exten=> name,priority,application()

Ví dụ: exten => 123,1,Answer()

Các các tên của nhánh ñặc biệt:

S Khi những cuộc gọi ñến một context với không một nhánh ñích

xác ñịnh, chúng ñược ñiều chỉnh tự ñộng bởi nhánh này

i (invalid) Khi người gọi nhấn phím không có giá trị, thì cuộc gọi sẽ ñược

chuyển ñến nhánh i

t (timeout) Người gọi không nhấn phím nào trong 1 khoảng thời gian nhất

ñịnh (timeout), thì cuộc gọi sẽ ñươc chuyển ñến nhánh t

Ta có thể thiết lập các nhánh tùy biến, bằng cách sử dụng những ký tự hoặc ký hiệu ñể ñại diện cho những số có thể chúng ta muốn làm cho phù hợp Những hình thức luôn luôn bắt ñầu dấu gạch dưới (_)

Sau dấu gạch dưới, bạn có thể sử dụng 1 hoặc nhiều ký tự theo sau:

X: những số từ 09

Y: những số từ 19

Z: những số từ 29

[15-7]: một số hoặc dãy số ñặc biệt

.(period): từ kết hợp 1 hoặc nhiều ký tự

“.”: dùng cho nhiều số

ðể sử dụng tùy biến trong Dialplan của bạn, ñặt hình thức (pattern) tại nơi tên (số) nhánh

Ví dụ: exten => _NXX,1,Playback(auth-thankyou)

Ở ñây hình thức là bất kỳ nhánh gồm 3 số từ 200 ñến 999 (N là 1 trong các số từ 2 >9) mà khi người gọi gọi vào nhánh bất kỳ trong 3 số này (NXX) thì họ sẽ nghe âm thanh từ file auth-thankyou.gsm

Sử dụng biến kênh truyền ${EXTEN}:

Khi gọi ñến 1 nhánh, Asterisk thiết lập biến kênh truyền ${EXTEN} ñến số ñược gọi Biến này nhận giá trị mà chúng ta nhấn vào

Chúng ta có thể sử dụng ứng dụng gọi SayDigits() ñể kiểm tra biến:

exten=> _XXX,1,SayDigits(${EXTEN})

SayDigits(): ñọc trở về 3 số mà bạn gọi

Trang 33

Xóa x số ñứng ở vị trí bên trái bằng cú pháp:

exten => _XXX,1,SayDigit(${EXTEN:x})

Ví dụ: giá tri của EXTEN là 95551212, ${EXTEN:1} bằng 5551212

ðọc ngược lại y số ñứng ở vị trí bên phải

Answer() Là trả lời một kênh ðiều này thực hiện thiết lập ban ñầu cho kênh

mà nó nhận cuộc gọi vào Playback() Chạy file âm thanh ñược ghi lại sẵn trên 1 kênh Khi sử dụng ứng

dụng này, ngõ vào từ người sử dụng bị từ chối, tức là user không thể thực hiện bất kỳ thao tác nào

Background(): Giống như Playback() nó play file âm thanh, và khác với

Playback() là khi người gọi nhấn một phím hay một chuỗi phím trên ñiện thoại, nó sẽ ngắt Background() và chạy nhánh mà ñáp ứng với việc nhấn số

Thông thường việc dùng ứng dụng Background() nhằm tạo ra những menu voice ñể những công ty hướng người sử dụng vào nhưng extension thích hợp

Hangup() Từ chối kênh chủ ñộng Ngừơi gọi sẽ nhận tín hiệu cuộc gọi bị từ

chối Bạn sẽ sử dụng ứng dụng khi bạn muốn kết thúc một cuộc gọi Goto() ðược sử dụng ñể gửi cuộc gọi ñến context, extension và priority

khác Ứng dụng này làm cho nó dễ dàng di chuyển một cách lập trình cuộc gọi giữa những phần khác của dialplan

Dial() Ứng dụng này giúp kết nối những máy trạm lại với nhau ðiều này

là lợi ích ñặc biệt cho những máy trạm ñang sử dụng những phương pháp thông tin liên lạc khác nhau Ví dụ, máy trạm A có thể thông tin liên lạc qua chuẩn mạng ñiện thoại tương tự, trong khi máy trạm

B sử dụng IP phone Cả 2 có thể liên lạc với nhau bằng tổng ñài sử dụng Asterisk với ứng dụng Dial()

Cú pháp: Dial(channel,timeout,r) Một số kênh truyền ñược hỗ trợ: SIP, IAX, ZAP

Trang 34

GotoIf() Cú pháp:

GotoIf(expression?destination1:destination2) Nếu giá trị expression là true, người gọi se ñược chuyển ñến destination1 và ngược lại

Destination có thể là:

_ Một priority trong cùng extension, như 10 _ Một extension và một priority trong cùng context, như 123,10 _ Một context, extension, priority, như incoming, 123,10 _ Tên priority trong cùng extension

GotoIfTime() Dựa vào thời gian hiện hành của hệ thống và sử dụng nó ñể quyết

ñịnh hoặc không ñể thực hiện các ứng dụng khác nhau trong dialplan

Cú pháp cho hàm GotoIfTime():

GotoIfTime(times,days_of_week,days_of_month,months?label) Hàm GotoIfTime() chuyển cuộc gọi ñến label ñặc biệt nếu ngày hiện hành và thời gian phù hợp vời tiêu chuẩn chỉ ñịnh bởi times, days_of_week, days_of_month và months

Chi tiết về các thông số:

times: ñây là danh sách một hay nhiều khoảng thời gian, trong mặc ñịnh là 24h

days_of_week: gồm 1 hay nhiều ngày trong tuần Các ngày ñược chỉ ñịnh là: mon, tue, wen, thu, fri, sat, sun

days_of_month: gồm 1 hay nhiều ngày trong tháng Các ngày ñược chỉ ñịnh bởi những số từ 1 ñến 31

Thông số label là : _ Một priority trong cùng extension

_ Một extension và một priority trong cùng context

_ Một context, extension, và priority

_ Tên priority trong cùng extension

MeetMe() Ứng dụng này cho phép nhiều người nói chuyện với nhau trong

phòng thoại Các ñặc ñiểm chính:

_ Khả năng tạo mật mã bảo vệ

_ Quản trị hội thảo (chặn tiếng hội thoại, khóa hội thoại, lọai bỏ một thành viên)

_ Sự tạo ra hội thoại tĩnh hoặc ñộng

Kết hợp file cấu hình cho hệ thống hội thoại MeetMe là meetme.conf

2.3.4 Giới thiệu Asterisk Gateway Interface (AGI)

Trong kiến trúc Asterisk, Asterisk hỗ trợ kênh giao tiếp với chương trình ngoài, cho phép ta viết các ứng dụng bên ngoài tương tác với Asterisk

2.3.4.1 Asterisk Gateway Interface ( AGI ) là gì ?

Trang 35

Asterisk Gateway Interface ( AGI ) là một chuẩn giao tiếp với Asterisk AGI cho phép Astersik gọi thực thi một chương trình ngoài ñể mở rộng nhiều chức năng của Astersik như ñiều khiến các kệnh thoại , phát âm thanh , ñọc số DTMF , liên kết với cơ sở dữ liệu … Các chương trình ngoài ñược gọi là AGI Script , ta có thể lập trình ra các AGI Script bằng nhiều ngôn ngữ lập trình khác nhau như Perl, PHP, C, C#, Java …

2.3.4.2 Cấu trúc cơ bản AGI

AGI Script liên lạc với Asterisk bằng các kênh thông tin STDOUT, STDIN và STDERR

STDOUT : AGI script gửi thông tin ñến Asterisk

STDIN : Asterisk gửi thông tin về AGI script

STDERR: Thông tin lỗi

Hình 2.8: Sơ ñồ giao tiếp giữa Asterik và AGI Script

Trong sơ ñồ trên cho chúng ta thấy AGI giao tiếp với rất nhiều các thành phần khác nhau Giao tiếp với database ñể lưu trữ thông tin như chi tiết cuộc gọi, hệ thống tính cước…, giao tiếp với web cho chúng ta phát triển các ứng dụng trên nền web như kiểm tra mail, Coffiee Maker thực hiện rất nhiều công việc còn lại trong hệ thống Asterisk như kiểm tra cấu hình hệ thống, liệt kê các extension, kiểm tra password, cấu hình hệ thống Asterisk…

Nhìn chung AGI cho phép chúng ta thực hiện nhiều công việc giúp khai thác và quản lý Asterisk một cách hiệu quả nhất

2.3.4.3 Phân loại AGI

AGI gồm một số loại như sau :

• AGI : ðây là loại AGI bình thường AGI Script có thể ñược lập trình bởi nhiều loại ngôn ngữ khác nhau , có khả năng ñiều khiển Dialplan,và phải ñặt trên máy chủ Asterisk

• EAGI (enhanced AGI) : ðây là loại AGI nâng cấp có các chức năng giống như AGI ,

Trang 36

• DeadAGI : có chức năng tương tư như AGI nhưng DeadAGI còn có khả năng làm việc trên các kênh “chết” ( kênh “chết” là kênh thoại ñã ñược kết thúc ) , ñây là khả năng mà AGI bình thường không có

• FastAGI : cho phép Asterisk gọi AGI Script qua mạng TCP/IP , AGI Script không cần phải ñặt ngay trên máy chủ Asterisk

2.3.4.4 FastAGI

2.3.4.4.1 Giới thiệu FastAGI

FastAGI giúp Asterisk gọi các AGI Script trên các TCP sockets Ưu ñiểm khi dùng FastAGI là giúp máy chủ Asterisk giảm bớt ñược công việc thực hiện các AGI Script , ngoài ra nếu có nhiều máy chủ Asterisk thì chúng có thể gọi các AGI Script từ một máy trung tâm

2.3.4.4.2 Cấu hình gọi FastAGI trong Dialplan

ðể gọi AGI Script từ Dialplan , ta cần cấu hình Dialplan như sau :

exten => 100,1,AGI(agi://IP_Address:Port/AGI_Script)

Trong câu lệnh trên :

- IP_Address : là ñịa chỉ IP của máy chứa AGI Script

- Port : là port của chương trình AGI Script , mặc ñịnh là port 4573 ( TCP ) Nếu ta muốn thay ñổi port khác thì ta cần lập trình lại trong AGI Script

- AGI_Script : ðây là tên của AGI Script là mà ta muốn gọi

Ví dụ ta muốn gọi AGI Script tên noaction ở máy 192.168.16.70 thì ta cấu hình trong Dialplan như sau :

exten => 100,1,AGI(agi:// 192.168.16.70/filename)

2.3.5 Giới thiệu Thư viện Asterisk dot net:

2.3.5.1 Giới thiệu:

Asterisk.NET là một thư viện ñược viết bằng C# , giúp ta có thể lập trình các ứng dụng giao tiếp với tổng ñài Asterisk Asterisk NET hỗ trợ ñầy ñủ 2 chuẩn tiếp của Asterisk với các chương trình ngoài , ñó là FastAGI và Manager API Asterisk.NET hỗ trợ tất cả các lệnh mà FastAGI của Asterisk hỗ trợ Còn với Manager API , ta có thể nhận các sự kiện từ máy chủ Asterisk ( ví dụ như tình trạng ñăng ký của các người dùng, quá trình gọi ….) và gởi các lệnh ñiều khiển ñến máy chủ Asterisk (ví dụ như : mở hoặc dừng thu âm …) Ta có thể download thư viện này tại ñịa chỉ website: http://sourceforge.net/projects/asterisk-dotnet/

Dựa vào thư viện này, nhóm lập trình trên thư viện này làm một chương trình trung gian có thể kết nối với Asterisk server và database server, nhằm mục ñích xây dựng hệ thống trả lời tự ñộng Hệ thống trả lời tự ñộng do nhóm xây dựng sẽ ñược trình bày chi tiết trong phần sau

2.3.5.2 Các lệnh FastAGI trong Asterisk.NET:

ðây cũng là các ứng dụng trong Asterisk, và các ứng dụng này ñược hỗ trợ trong thư viện Asterisk dot net với mục ñích ñiều khiển Asterisk

Trang 37

1 Answer() Nhận cuộc gọi

ðặt callerId cho người gọi trên kênh thoại hiện thời

5 PlayMusicOnHold() Thực hiện chức năng Music On Hold

6 GetChannelStatus() Cho biết trạng thái kênh thoại , kết quả trả về là giá trị số

nguyên như sau :

0 Kênh thoại rảnh, có thể gọi

1 Kênh thoại rảnh , nhưng ñã bị ñặt trước , không thể gọi

2 Kênh thoại không có tone ( offhook )

3 Số ñã ñược gọi

4 Line ñang reo chuông

5 ðầu cuối ñang reo chuông

6 Line ñang nhấc máy

Trang 38

15 SayDigits(string

digits)

Asterisk ñọc số digits giới hạn là 0 – 999999999 Các file

âm thanh ñược chứa tại /var/lib/asterisk/sounds/digits Ví

dụ khi thực hiện lệnh SayDigits (“1000”) thì Asterisk ñọc

17 SayAlpha(string text) Asterisk sẽ ñọc rời rạc từng chữ trong text

18 SayTime(long time) Asterisk sẽ ñọc giờ trong time

- Trong AGI Script , ta lập trình như sau : GetVariable(extension);

Kết quả trả về của hàm này sẽ cho giá trị của biến

${EXTEN}

21 SetVariable(string

name, string val)

Hàm ñặt giá trị biến của kênh thoại

int timeout, int offset,

bool beep, int

maxSilence)

Thu âm cuộc gọi

file : là tên file lưu

format : là ñịnh dạng file , thường là wav

escapeDigits : là phím quy ñịnh ñể khi nhấn thì việc thu

âm dừng lại

timeout : là thời gian thu âm tối ña , -1 thì sẽ không giới hạn

beep : nếu là true thì sẽ có tiếng beep trước khi thu âm

maxSilence : khoảng im lặng tối ña ( tính theo giây)

Trang 39

CHƯƠNG III: Xây dựng phần mềm thoại máy trạm

ðể có thể lập trình phần mềm thoại máy trạm, nhóm dựa trên thư viện cung cấp giao thức SIP và

xử lý âm thanh Trong số các thư viện mã nguồn mở có trên Internet thì PJSIP là một thư viện hỗ trợ ñầy ñủ các tính năng nhóm cần

3.1 Gii thi u t&ng quát v th5 vi n PJSIP

3.1.1 Tổng quan:

PJSIP là một thư viện mã nguồn mở, giúp dễ dàng lập trình phần mềm thoại có hỗ trợ giao thức SIP và xử lý âm thanh Toàn bộ thư viện ñược viết theo ngôn ngữ C Ta có thể download dễ dàng thư viện này tại http://pjsip.org/ Sau ñây là một số ñặc ñiểm quan trọng của thư viện này :

- ðặc ñiểm hỗ trợ SIP :

• ðăng ký nhiều tài khoản

• Nhiều cuộc gọi

• PRACK (100rel, RFC 3262)

• UPDATE (RFC 3311)

• OPTIONS

• Giữ cuộc gọi ( Hold )

• Chuyển cuộc gọi ( RFC 3515, 3891, 3892, 4488)

• SIMPLE với PIDF và XPIDF (SUBSCRIBE/NOTIFY, RFC 3265, 3856, 3863)

• Hỗ trợ tên trạng thái tùy chọn (RPID, RFC 4480)

- ðặc ñiểm hỗ trợ về âm thanh :

• Nhiều cuộc gọi cùng lúc

• Hội thảo

• Codec : Speex, iLBC, GSM, G711, và L16

• Hỗ trợ thu âm thoại , phát , truyền file âm thanh dạng WAV

Trang 40

• AEC (Accoustic echo cancellation)

• Adaptive jitter buffer

• Adaptive silence detection

• PLC (Packet Lost Concealment)

• Giả lập mất gói

• Gởi nhiều khung trong một gói RTP

• Bảo mật SRTP (còn ñang phát triển )

- ðặc ñiểm hỗ trợ NAT:

• ICE (Interactive Connectivity Establishment)

• STUN (rfc3489-bis)

• Luôn cập nhật SIP TCP và TLS

• Tự ñộng phát hiện và phục hồi ñịa chỉ SIP UDP bị thay ñổi

• Tự ñộng phát hiện sự thay ñổi khi truyền âm thanh thanh ICE

- Hiệu năng cao: hàng ngàn cuộc gọi có thể ñược xử lý trên một máy tính ñể bàn

Intel/2.66Ghz Sau ñây là kết quả ño vào ngày 11 tháng 07 năm 2006 , phiên bản PJSIP 0.5.6.5 Kết quả cho thấy chỉ cần một máy P4/2.66GHz cũng có thể xử lý ñược 7000 giao dịch trên 1 giây (Số liệu lấy từ http://pjsip.org/)

Hình 3.1: Hiệu suất xử lý cuộc gọi của máy chủ khi dùng PJSIP

- Có thể hoạt ñộng trên nhiều hệ ñiều hành: Linux, BSD, Windows 95 (win95/win98/winME), WinNT (WinNT/2000/XP/2003/Vista), Symbian, Microsoft Windows Mobile , Windows CE (WinCE), PocketPC, SmartPhone, Solaris … Có thể biên dịch bởi nhiều loại compiler như : MSVC 6, VS.NET 2003, VC.NET 2005, GCC

... II: Nghiên cứu tổng ñài nội IP PBX

2.1 Gii hi u t&ng ñài PBX:

2.1.1 Hệ thống tổng đài PBX gì?

PBX từ viết tắt Private Branch Exchange PBX tổng. .. Xây dựng phần mềm thoại máy trạm

ðể lập trình phần mềm thoại máy trạm, nhóm dựa thư viện cung cấp giao thức SIP

xử lý âm Trong số thư viện mã nguồn mở có Internet PJSIP thư viện...

Trong trình nghiên cứu, nhóm nhận biết ựược phần mềm hệ thống áp dụng cho tổng ựài IP PBX phần mềm Asterisk

2.3.1 Asterisk gì?

Asterisk phần mềm mã nguồn mở ựược

Ngày đăng: 18/04/2015, 12:31

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
7. Barrie Dempster, Kerry Garrison, TrixBox Made Easy, Packt Publishing, 2006 8. Paul Hazlett, Simon Miles, Greger V.Teigre, SER - Getting Started Sách, tạp chí
Tiêu đề: TrixBox Made Easy
Tác giả: Barrie Dempster, Kerry Garrison
Nhà XB: Packt Publishing
Năm: 2006
1. Leif Madsen, Jared Smith, Jim Van Meggelen, Asterisk: The Future of Telephony, v1, O’Relly, 2005 Khác
2. Jim Van Meggelen, Leif Madsen, Jared Smith, Asterisk: The Future of Telephone, v2, O’Relly, 2007 Khác
3. Theodore Wallingford, VoIP Hacks, O'Reilly, December 2005 Khác
4. David Gomillion, Barrie Dempster, Building Telephony Systems with Asterisk, Packt Publishing, 2005 Khác
5. Paul Mahler, VoIP Telephony with Asterisk, Signate, 2004 Khác
6. Theodore Wallingford, Switching to VoIP, O'Reilly, June 2005 Khác
9. Rosenberg, J., et al., SIP: Session Initiation Protocol, RFC 3261, June 2002 Khác
10. Handley, M., et al., SIP: Session Initiation Protocol, RFC 2543, March 1999 Khác
11. Handley, M., and V. Jacobson, SDP: Session Description Protocol, RFC 2327, 1998 Khác
12. Schulzrinne, H., et al., RTP: A Transport Protocol for Real-Time Applications, RFC 3550, 2003 Khác
13. Donovan, S., The SIP INFO Method, RFC 2976, 2000 Khác
14. Rosenberg, J., The Session Initiation Protocol (SIP) UPDATE Method, RFC 3311, 2002 Khác
15. Rosenberg, J., and H. Schulzrinne, Session Initiation Protocol (SIP): Locating SIP Servers, RFC 3263, 2002 Khác
16. Schulzrinne, H., RTP Profile for Audio and Video Conferences with Minimal Control, RFC 3550, 2003 Khác
17. James F. Kurose, Keith W.Ross , Computer Networking : A top-down approach featuring the Internet 3rd ed, Pearson, 2005 Khác

HÌNH ẢNH LIÊN QUAN

Hỡnh 1.1: Sự tương ủương của TCP/IP và mụ hỡnh OSI   Lớp ứng dụng: - NGHIÊN CỨU THIẾT KẾ TỔNG ĐÀI IP PBX VÀ  PHẦN MỀM THOẠI MÁY TRẠM
nh 1.1: Sự tương ủương của TCP/IP và mụ hỡnh OSI Lớp ứng dụng: (Trang 12)
Hình 1.2: Sự di chuyển dữ liệu giữa các lớp trong mô hình TCP/IP - NGHIÊN CỨU THIẾT KẾ TỔNG ĐÀI IP PBX VÀ  PHẦN MỀM THOẠI MÁY TRẠM
Hình 1.2 Sự di chuyển dữ liệu giữa các lớp trong mô hình TCP/IP (Trang 14)
Hỡnh 1.3: Cỏc trường tiờu ủề của RTP - NGHIÊN CỨU THIẾT KẾ TỔNG ĐÀI IP PBX VÀ  PHẦN MỀM THOẠI MÁY TRẠM
nh 1.3: Cỏc trường tiờu ủề của RTP (Trang 15)
Hỡnh 1.4: Mụ tả cỏc quỏ trỡnh diễn ra cho một cuộc gọi SIP ủiển hỡnh qua 16 bước. - NGHIÊN CỨU THIẾT KẾ TỔNG ĐÀI IP PBX VÀ  PHẦN MỀM THOẠI MÁY TRẠM
nh 1.4: Mụ tả cỏc quỏ trỡnh diễn ra cho một cuộc gọi SIP ủiển hỡnh qua 16 bước (Trang 18)
Hình 2.1: Mô hình PBX truyền thống - NGHIÊN CỨU THIẾT KẾ TỔNG ĐÀI IP PBX VÀ  PHẦN MỀM THOẠI MÁY TRẠM
Hình 2.1 Mô hình PBX truyền thống (Trang 21)
Hỡnh 2.2: Mụ hỡnh hệ thống PBX Hybrid ủơn - NGHIÊN CỨU THIẾT KẾ TỔNG ĐÀI IP PBX VÀ  PHẦN MỀM THOẠI MÁY TRẠM
nh 2.2: Mụ hỡnh hệ thống PBX Hybrid ủơn (Trang 22)
Hình 2.3: Mô hình cơ bản kết nối của IP PBX - NGHIÊN CỨU THIẾT KẾ TỔNG ĐÀI IP PBX VÀ  PHẦN MỀM THOẠI MÁY TRẠM
Hình 2.3 Mô hình cơ bản kết nối của IP PBX (Trang 22)
Hình 2.5: Mô hình phân phối cuộc gọi cơ bản - NGHIÊN CỨU THIẾT KẾ TỔNG ĐÀI IP PBX VÀ  PHẦN MỀM THOẠI MÁY TRẠM
Hình 2.5 Mô hình phân phối cuộc gọi cơ bản (Trang 24)
Hình 2.4: Mô hình kết nối của một mạng VoIP - NGHIÊN CỨU THIẾT KẾ TỔNG ĐÀI IP PBX VÀ  PHẦN MỀM THOẠI MÁY TRẠM
Hình 2.4 Mô hình kết nối của một mạng VoIP (Trang 24)
Hình 2.6: Kiến trúc Asterisk - NGHIÊN CỨU THIẾT KẾ TỔNG ĐÀI IP PBX VÀ  PHẦN MỀM THOẠI MÁY TRẠM
Hình 2.6 Kiến trúc Asterisk (Trang 26)
Hình 2.7: Hình ảnh về card TDM kết nối PSTN (loại TDM800P) - NGHIÊN CỨU THIẾT KẾ TỔNG ĐÀI IP PBX VÀ  PHẦN MỀM THOẠI MÁY TRẠM
Hình 2.7 Hình ảnh về card TDM kết nối PSTN (loại TDM800P) (Trang 27)
Hỡnh 2.8: Sơ ủồ giao tiếp giữa Asterik và AGI Script - NGHIÊN CỨU THIẾT KẾ TỔNG ĐÀI IP PBX VÀ  PHẦN MỀM THOẠI MÁY TRẠM
nh 2.8: Sơ ủồ giao tiếp giữa Asterik và AGI Script (Trang 35)
Hình 3.1: Hiệu suất xử lý cuộc gọi của máy chủ khi dùng PJSIP - NGHIÊN CỨU THIẾT KẾ TỔNG ĐÀI IP PBX VÀ  PHẦN MỀM THOẠI MÁY TRẠM
Hình 3.1 Hiệu suất xử lý cuộc gọi của máy chủ khi dùng PJSIP (Trang 40)
Hình 3.2: Cấu trúc thư viện PJSIP - NGHIÊN CỨU THIẾT KẾ TỔNG ĐÀI IP PBX VÀ  PHẦN MỀM THOẠI MÁY TRẠM
Hình 3.2 Cấu trúc thư viện PJSIP (Trang 41)
Hỡnh 3.2: Lược ủồ tương tỏc của cỏc khối trong thư viện PJSIP - NGHIÊN CỨU THIẾT KẾ TỔNG ĐÀI IP PBX VÀ  PHẦN MỀM THOẠI MÁY TRẠM
nh 3.2: Lược ủồ tương tỏc của cỏc khối trong thư viện PJSIP (Trang 42)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w