markdown:
*HOÀNG Hồng-Minh*
Lâu rồi, trong một dịp sang một nước bạn, bây giờ nước nào chả là nước bạn, tôi rơi tõm đúng vào thời khắc của giáp Tết Noel.
Anh Tất, người bạn quen, thấy tôi bơ vơ, ngơ ngác, lại không phải là nai vàng… Anh rủ tôi đến dự Tết Noel ở một gia đình người thân quen. Ngại, và lo đủ đường. Mình vừa ngơ, vừa nghèo… Nhưng được mời nhiệt tình quá. Chưa kể cái văn hóa người Việt trong tôi, nói “không”, hay nói “có”, làm gì có được cái nghĩa 100% bao giờ đâu. “Không”, hay “có” của người Việt trong tôi là để hoãn binh, để rồi loay hoay tiếp…
Cuối cùng tôi lại nhận được cả điện thoại trực tiếp của chủ nhà nọ, qua máy nói của anh Tất. Tôi hiểu lõm bõm, đại để “đến đi, vui lắm, thật lòng”. Giọng nói của anh chủ nhà rõ ràng là nói ra được nhiều hơn bản thân lời nói. Chúng tôi chuẩn bị đôi chút, rồi sớm hôm sau lên đường.
Con tàu chạy một mạch, êm ắng, lừ đừ, trong đất trời trắng tuyết. Cốc nước trên bàn trước mặt tôi thỉnh thoảng sủi lên tí chút bong bóng, nhưng không sóng sánh. Nhìn xuống đường cao tốc phía dưới kia, hội xe pháo đang đua nhau, thế mà kì, tàu của mình vượt họ cứ như không, như mình đang ở trong một thế giới khác. Anh Tất đoán ra câu hỏi trong đầu tôi, bảo “nom thế thôi, tàu mình đang chạy ít ra cũng phải trên hai trăm rưởi cây số một giờ”. Không gian tuyết xốp xáp ngoài kia là cả một cái phòng cách âm khổng lồ, tôi đã cảm nhận ra sự êm đềm cổ tích đó hồi sáng sớm nay khi đi bộ đến nhà ga, một thực tế khoa học, chứ không phải là tưởng tượng.
Đúng giờ, chi li tới phút, anh bạn giục tôi ra cửa, phải sẵn sàng ngay như lính biệt kích nhảy dù. Thế thật. Vừa đặt chân xuống được bờ ke nhà ga xong, con tàu đã rời bánh. Sự chi li tốc độ này rõ ràng hạn chế cái cơ hội rình mò đùa cợt mọi lúc của con người Việt trong tôi. Chưa kịp định thần, thì một nụ cười nhẹ nhàng, một vòng tay ấm áp đã chào đón chúng tôi. “Jean, hân hạnh!”. Vừa chào hỏi, chúng tôi vừa ra lấy xe của Jean. Băng qua khu rừng nhỏ, về đến cửa nhà, chị vợ Christelle, cô bé Sophie, cậu bé Thomas diện ngất trời nồng nhiệt chào đón chúng tôi, sự nồng nhiệt làm tan giá ngay mọi e ngại “gây phí thì giờ”, để kéo xộc chúng tôi vào ngay cuộc lễ Tết bề bộn của gia đình.
Giờ thì tôi mới tỉnh ra, ngôi nhà của Christelle và Jean là một nhà bảo tàng văn hóa thế giới! Các đồ dùng, tranh, tượng, kỉ vật phần lớn được mua chở về từ những chuyến ở, chuyến đi từ bao nhiêu miền đất xứ sở khác nhau. Ngay cả chiếc bàn nặng chịch ở phòng khách này cũng đã chu du từ miền đảo viễn đông về! Nhiều kỉ vật, cùng những kỉ niệm của đời sống xứ Việt hóa ra chẳng xa lạ với gia đình này. Nhưng đấy là cả nhiều pho truyện dài, thật dài khác…
—-
Chiều về, sau khi đã dã ngoại thưởng thức đôi chút khí lạnh nhưng ngọt ngào tinh khiết, chúng tôi vào bữa ăn tối Noel thiêng liêng, chuyện trò, đùa bợt. Bọn trẻ thì cứ chốc chốc lại liếc mắt hoài đến gốc cành thông lớn dựng ở cạnh lò sưởi đang đỏ củi. Số lượng các gói quà to nhỏ lóng lánh ở chỗ đấy vừa gây phấn khích, vừa thỉnh thoảng làm tôi thoáng chút lo âu.
Rồi cũng đến lúc bọn trẻ chợt reo ầm lên. Bố mẹ chúng đã đồng ý, rằng phút mở quà đã đến!
Hóa ra có hai loại quà. Loại “riêng tư”, và loại “công cộng”.
Loại “riêng tư” được đi trước.
Tôi thì mải lo nghĩ về giá trị của các món quà, nhất là trong một gia đình khá giả như thế này, còn câu chuyện thì lại đang được triển khai theo một hướng khác hẳn.
Quà cáp được chuẩn bị nhiều nhất, kĩ nhất, cho nhiều người nhất, hóa ra là quà cáp của hai cô cậu bé! Của cô Sophie, và của cậu Thomas.
Jean loay hoay mở gói quà to tướng của Thomas. Năm lần mở, mỗi hộp carton lại chứa một hộp carton nhỏ hơn nữa ở bên trong… Cuối cùng… chỉ là một tờ giấy con, ghi những chỉ dẫn nơi giấu quà trong nhà, nhưng bằng phép đố toán học. Jean gãi đầu, đếm ngón tay, đo bước chân… đi lùng khắp nhà, mãi không thấy ra.
Christelle mở bảy hộp quà lớn. Rốt cục năm hộp nọ, mỗi hộp chứa một cái chén con. Hộp thứ sáu là cái ấm trà. Hộp thứ bảy là cái khay nhỏ cho bộ ấm chén… Christelle nghiện trà xanh ! Món quà trà Việt của anh Tất sau đó vừa khéo gặp gỡ bộ ấm trà của lũ nhỏ, được chị nhiệt thành tán thưởng !
Tôi được tặng mấy món quà vui vẻ xinh xắn… Và một món quà đặc biệt trong một cái hộp to đùng : trong đấy có mỗi một mẩu giấy viết về “cái lợi của việc hút thuốc lá”, với chữ kí của cả nhà ! Chà, mọi người đã kịp điều tra ra cả cái thói hút thuốc lá của tôi rồi! Sau này tôi bỏ được thuốc lá, không biết có hiệu ứng của mẩu giấy này không ?
Ngôi nhà rộn rã tiếng cười, tiếng xé giấy quà. Chú chó « Tôt » quá hưng phấn, lăn lộn khắp nơi, cuối cùng nằm im gặm món quà cái xương nhựa. Cô mèo « Tard » cũng mon men lăn vần đồ khắp chốn, cuối cùng yên tâm nằm ườn ra divan lim dim ngủ với món quà cái nơ đỏ xíu được đính vòng quanh cổ.
Về phần mình, tôi đã yểm sẵn mấy cái phong bì con con đựng ít tiền, để cộm ở trong túi, khéo tính toán mãi, sao cho đừng đắt quá, mà cũng đừng keo kiệt bủn xỉn quá, một bài toán thật hiểm hóc. Lúc này tôi bỗng chợt thấy mình đã nghèo, lại còn loay hoay xôi thịt. Tôi khéo léo ra góc nhà rút chúng ra, cất tống hết vào ba lô.
Tôi tặng chung cả nhà một cái tranh thêu cảnh đất nước mình, mọi người vui vẻ thích thú ngắm nghía. Nhưng tôi cũng chợt hiểu ra rằng món quà của tôi nó chung chung quá, nó thiếu sự tìm tòi quan tâm đến từng con người cụ thể tinh tế, rõ ràng là tôi không có ý tứ tìm hiểu gì về mỗi người trong nhà trước đó. Tôi tự thấy tôi mòn vẹt, sáo rỗng, thay vì cứ tưởng mình những là minh triết phương Đông của khỉ. Món quà của tôi kể ra chỉ chấp nhận được, thông cảm được, một khi tôi đã ở tầm lãnh tụ của một xứ sở nào đó, của một siêu cường chẳng hạn, đang dở bận trăm công nghìn việc gì đấy…
Nửa tiếng đồng hồ tặng quà nhau, mà vẫn chưa xong! Jean cuối cùng cũng đã tái xuất, mạng nhện dính đầy đầu. Jean tìm ra cái bức tranh anh vẽ Thomas từ ngày cậu còn bé tí, bức vẽ dở dang, ở trong hầm nhà, bức tranh mà anh đã từng kể mãi với Thomas mà không còn biết nó nằm ở đâu, còn Thomas thì mãi không biết đó là câu chuyện thật, hay câu chuyện hư. Jean ôm dừ Thomas vào lòng trong cái nhìn ướt mắt của cả nhà.
Cả nhà mở rượu Champagne, và chuyển sang trò chơi “quà công cộng”. Quà công cộng là đủ các thứ linh tinh ngộ nghĩnh, phần lớn là những thứ đồ ẩm ương trong nhà chui lẩn ở đâu, nay được gói ghém tinh tươm lại, buộc nơ ở trên. Mỗi người được phát một cần câu, và câu quà theo lượt, trúng gì được nấy, trong tiếng cười ngất ngây.
Quà cáp, hóa ra trước hết, và trên hết, không phải là nợ tiền nhau, là cúng tiền nhau, là dạy nhau năng lực hối lộ sau này. Mà là sáng kiến, là tìm tòi, là sự quan tâm chi tiết đến những rung cảm nhỏ bé, kín đáo, riêng tư của mỗi con người cụ thể xung quanh mình. Là gây dựng niềm vui cùng nhau, cho nhau.
Và với cây đàn guitar, suốt đêm chúng tôi lục lọi từ trí nhớ ra đủ các loại bài hát đông tây kim cổ, hát hò với nhau giục anh Mặt Trời thức dậy.
—-
Sau bữa ăn trưa hôm sau, anh Tất và tôi bịn rịn hôn chào Sophie, Thomas, chị Christelle, cả chú chó Tôt, và cô mèo Tard, để ra về. Chia sẻ với nhau mấy chục tiếng đồng hồ, mà lòng cảm thông nay đã đọng lại thành vô biên.
Ra đến bờ ke nhà ga, Jean dặn chúng tôi phải đứng đúng vạch sơn đã vẽ cửa lên xuống cho số của toa tàu đã in trên vé của chúng tôi. “Đây là bến phụ, tàu chỉ dừng đúng một phút thôi”. Con tàu cao tốc vào ke, đây rồi, cửa tàu soạt nhẹ mở. Đúng là chính xác tới phút giây và tới centimètre! Chúng tôi ôm hôn Jean thật nhanh, trèo vụt lên tàu, và hình bóng Jean thân thương đã từ từ ngược toa tàu trôi về phía xa…
## 3 thoughts on “Ngày Tết, gói quà”
Một bút ký rất hay. NC vừa đọc vừa hình dung mình như đang được xem một bộ phim đẹp.
NC đồng ý rằng : “Quà cáp, hóa ra trước hết, và trên hết, không phải là nợ tiền nhau, là cúng tiền nhau, là dạy nhau năng lực hối lộ sau này. Mà là sáng kiến, là tìm tòi, là sự quan tâm chi tiết đến những rung cảm nhỏ bé, kín đáo, riêng tư của mỗi con người cụ thể xung quanh mình. Là gây dựng niềm vui cùng nhau, cho nhau.”
Ôi em tưởng tượng cảnh CH cứ loay hoay làm toàn chuyện ngốc nghếch, lại tưởng mình là cái rốn của vũ trụ, ai cũng để ý ngắm nhìn, thì em nhớ đến một đoạn ở trong Les Confessions, Rousseau kể là trong bữa tiệc, đang say sưa nói một chuyện gì đấy, thì một bà ngồi kế bên nhắc khẽ :”Jean-Jacques, im đi, không ai nghe anh đâu !”, làm anh ấy đỏ bừng cả mặt.
Em lại tưởng tượng CH đi uống cà phê với Mỵ Châu, trong lúc nàng đang bận ăn kem, thì CH lại căng thẳng lo nghĩ sao hôm nay mình lại đi nhầm hai cái tất khác màu nhau ?
Bữa nào mình đi uống cà phê đi ?
Cụ Hinh học thuộc lòng ở đâu mà viết lại hay thế?
,-))

X-ac: 3.dca _dca

X-hacker: If you're reading this, you should visit automattic.com/jobs and apply to join the fun, mention this header.

Link: <http://wp.me/pASld-2D8>; rel=shortlink

Vary: Cookie


markdown:
Ai sống một trăm năm, lười nhác không tinh tấn, tốt hơn sống một ngày, tinh tấn tận sức mình.Kinh Pháp cú (Kệ số 112)
Ngủ dậy muộn là hoang phí một ngày;tuổi trẻ không nỗ lực học tập là hoang phí một đời.Sưu tầm
Như ngôi nhà khéo lợp, mưa không xâm nhập vào. Cũng vậy tâm khéo tu, tham dục không xâm nhập.Kinh Pháp cú (Kệ số 14)
Con người chỉ mất ba năm để biết nói nhưng phải mất sáu mươi năm hoặc nhiều hơn để biết im lặng.Rộng Mở Tâm Hồn
Bạn đã từng cố gắng và đã từng thất bại. Điều đó không quan trọng. Hãy tiếp tục cố gắng, tiếp tục thất bại, nhưng hãy thất bại theo cách tốt hơn. (Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.)Samuel Beckett
Đừng than khóc khi sự việc kết thúc, hãy mỉm cười vì sự việc đã xảy ra. (Don’t cry because it’s over, smile because it happened. )Dr. Seuss
Có những người không nói ra phù hợp với những gì họ nghĩ và không làm theo như những gì họ nói. Vì thế, họ khiến cho người khác phải nói những lời không nên nói và phải làm những điều không nên làm với họ. (There are people who don't say according to what they thought and don't do according to what they say. Beccause of that, they make others have to say what should not be said and do what should not be done to them.)Rộng Mở Tâm Hồn
Sự hiểu biết là chưa đủ, chúng ta cần phải biết ứng dụng. Sự nhiệt tình là chưa đủ, chúng ta cần phải bắt tay vào việc. (Knowing is not enough; we must apply. Willing is not enough; we must do.)Johann Wolfgang von Goethe
Điều kiện duy nhất để cái ác ngự trị chính là khi những người tốt không làm gì cả. (The only thing necessary for the triumph of evil is for good men to do nothing.)Edmund Burke
Tinh cần giữa phóng dật, tỉnh thức giữa quần mê.Người trí như ngựa phi, bỏ sau con ngựa hèn.Kính Pháp Cú (Kệ số 29)
Chúng ta không học đi bằng những quy tắc mà bằng cách bước đi và vấp ngã. (You don't learn to walk by following rules. You learn by doing, and by falling over. )Richard Branson
[Trang chủ](Home.html) »»
[Danh mục](danh-muc_thu-vien_tongquat_rong-mo-tam-hon.html) »»
[Từ điển Hán Anh](tu-dien_han-anh_none_rong-mo-tam-hon.html) »»
Đang xem mục từ: a nhã đa - 阿若多 »»
Quý vị có thể nhập âm Hán-Việt hoặc copy chữ Hán dán vào
**Quý vị đang truy cập từ IP 54.204.217.140 và chưa ghi danh hoặc đăng nhập trên máy tính này. **Nếu là thành viên, quý vị chỉ cần đăng nhập một lần duy nhất trên thiết bị truy cập, bằng email và mật khẩu đã chọn.
Chúng tôi khuyến khích việc
**ghi danh thành viên **để thuận tiện trong việc chia sẻ thông tin, chia sẻ kinh nghiệm sống giữa các thành viên, đồng thời quý vị cũng sẽ nhận được sự hỗ trợ kỹ thuật từ Ban Quản Trị trong quá trình sử dụng website này.
** Việc ghi danh là hoàn toàn miễn phí và tự nguyện**.
Ghi danh hoặc đăng nhập

WARC-Type: response

Content-Type: application/http; msgtype=response

WARC-Truncated: length

Server: nginx

Content-Type: text/html; charset=UTF-8

Connection: close

Vary: Accept-Encoding

Cache-Control: public

Pragma: public


markdown:
Nếu muốn người khác được hạnh phúc, hãy thực tập từ bi. Nếu muốn chính mình được hạnh phúc, hãy thực tập từ bi.Đức Đạt-lai Lạt-ma XIV
Giữ tâm thanh tịnh, ý chí vững bền thì có thể hiểu thấu lẽ đạo, như lau chùi tấm gương sạch hết dơ bẩn, tự nhiên được sáng trong.Kinh Bốn mươi hai chương
Những người hay khuyên dạy, ngăn người khác làm ác, được người hiền kính yêu, bị kẻ ác không thích.Kinh Pháp cú (Kệ số 77)
Chấm dứt sự giết hại chúng sinh chính là chấm dứt chuỗi khổ đau trong tương lai cho chính mình.Tủ sách Rộng Mở Tâm Hồn
Người ta trói buộc với vợ con, nhà cửa còn hơn cả sự giam cầm nơi lao ngục. Lao ngục còn có hạn kỳ được thả ra, vợ con chẳng thể có lấy một chốc lát xa lìa.Kinh Bốn mươi hai chương
Ta sẽ có được sức mạnh của sự cám dỗ mà ta cưỡng lại được. (We gain the strength of the temptation we resist.)Ralph Waldo Emerson
Nếu bạn nghĩ mình làm được, bạn sẽ làm được. Nhưng nếu bạn nghĩ mình không làm được thì điều đó cũng sẽ trở thành sự thật. (If you think you can, you can. And if you think you can't, you're right.)Mary Kay Ash
Hãy làm một người biết chăm sóc tốt hạt giống yêu thương trong tâm hồn mình, và những hoa trái của lòng yêu thương sẽ mang lại cho bạn vô vàn niềm vui và hạnh phúc.Tủ sách Rộng Mở Tâm Hồn
Ví như người mù sờ voi, tuy họ mô tả đúng thật như chỗ sờ biết, nhưng ta thật không thể nhờ đó mà biết rõ hình thể con voi.Kinh Đại Bát Niết-bàn
Tôi không hóa giải các bất ổn mà hóa giải cách suy nghĩ của mình. Sau đó, các bất ổn sẽ tự chúng được hóa giải. (I do not fix problems. I fix my thinking. Then problems fix themselves.)Louise Hay
Hành động thiếu tri thức là nguy hiểm, tri thức mà không hành động là vô ích. (Action without knowledge is dangerous, knowledge without action is useless. )Walter Evert Myer
[Trang chủ](Home.html) »»
[Danh mục](danh-muc_thu-vien_tongquat_rong-mo-tam-hon.html) »»
[Đại từ điển Hán Việt](tu-dien_han-viet_none_rong-mo-tam-hon.html) »»
Đang xem mục từ: tề cư - 齊居 »»
**Chú ý**: Nếu quý vị copy chữ Hán dán (paste) vào đây để tra thì kết quả sẽ chính xác hơn rất nhiều.
Quý vị cũng có thể bôi đen (select) những chữ Hán đã hiển thị trên màn hình rồi dùng chuột kéo thả vào khung để tra.
Ở cùng nhau. Sống chung. (
*Từ điển Nguyễn Quốc Hùng*) **Quý vị đang truy cập từ IP 54.204.217.140 và chưa ghi danh hoặc đăng nhập trên máy tính này. **Nếu là thành viên, quý vị chỉ cần đăng nhập một lần duy nhất trên thiết bị truy cập, bằng email và mật khẩu đã chọn.
Chúng tôi khuyến khích việc
**ghi danh thành viên **để thuận tiện trong việc chia sẻ thông tin, chia sẻ kinh nghiệm sống giữa các thành viên, đồng thời quý vị cũng sẽ nhận được sự hỗ trợ kỹ thuật từ Ban Quản Trị trong quá trình sử dụng website này.
** Việc ghi danh là hoàn toàn miễn phí và tự nguyện**.
Ghi danh hoặc đăng nhập


markdown:
Khi gặp phải thảm họa trong đời sống, ta có thể phản ứng theo hai cách. Hoặc là thất vọng và rơi vào thói xấu tự hủy hoại mình, hoặc vận dụng thách thức đó để tìm ra sức mạnh nội tại của mình. Nhờ vào những lời Phật dạy, tôi đã có thể chọn theo cách thứ hai. (When we meet real tragedy in life, we can react in two ways - either by losing hope and falling into self-destructive habits, or by using the challenge to find our inner strength. Thanks to the teachings of Buddha, I have been able to take this second way.)Đức Đạt-lai Lạt-ma XIV
Hãy tự mình làm những điều mình khuyên dạy người khác. Kinh Pháp cú
Hạnh phúc giống như một nụ hôn. Bạn phải chia sẻ với một ai đó mới có thể tận hưởng được nó. (Happiness is like a kiss. You must share it to enjoy it.)Bernard Meltzer
Quy luật của cuộc sống là luôn thay đổi. Những ai chỉ mãi nhìn về quá khứ hay bám víu vào hiện tại chắc chắn sẽ bỏ lỡ tương lai. (Change is the law of life. And those who look only to the past or present are certain to miss the future.)John F. Kennedy
Hãy học cách vui thích với những gì bạn có trong khi theo đuổi tất cả những gì bạn muốn. (Learn how to be happy with what you have while you pursue all that you want. )Jim Rohn
Những người hay khuyên dạy, ngăn người khác làm ác, được người hiền kính yêu, bị kẻ ác không thích.Kinh Pháp cú (Kệ số 77)
Người duy nhất mà bạn nên cố gắng vượt qua chính là bản thân bạn của ngày hôm qua. (The only person you should try to be better than is the person you were yesterday.)Khuyết danh
Hãy sống như thế nào để thời gian trở thành một dòng suối mát cuộn tràn niềm vui và hạnh phúc đến với ta trong dòng chảy không ngừng của nó.Tủ sách Rộng Mở Tâm Hồn
Nay vui, đời sau vui, làm phước, hai đời vui.Kinh Pháp Cú (Kệ số 16)
Cuộc sống ở thế giới này trở thành nguy hiểm không phải vì những kẻ xấu ác, mà bởi những con người vô cảm không làm bất cứ điều gì trước cái ác. (The world is a dangerous place to live; not because of the people who are evil, but because of the people who don't do anything about it.)Albert Einstein
Cách tốt nhất để tìm thấy chính mình là quên mình để phụng sự người khác. (The best way to find yourself is to lose yourself in the service of others. )Mahatma Gandhi
[Trang chủ](Home.html) »»
[Danh mục](danh-muc_thu-vien_tongquat_rong-mo-tam-hon.html) »»
[Đại từ điển Hán Việt](tu-dien_han-viet_none_rong-mo-tam-hon.html) »»
Đang xem mục từ: bào - 孢 »»
**Chú ý**: Nếu quý vị copy chữ Hán dán (paste) vào đây để tra thì kết quả sẽ chính xác hơn rất nhiều.
Quý vị cũng có thể bôi đen (select) những chữ Hán đã hiển thị trên màn hình rồi dùng chuột kéo thả vào khung để tra.
【孢子】bào tử [baozi] (thực) Bào tử. (
*Từ điển Trần Văn Chánh*) **Quý vị đang truy cập từ IP 54.204.217.140 và chưa ghi danh hoặc đăng nhập trên máy tính này. **Nếu là thành viên, quý vị chỉ cần đăng nhập một lần duy nhất trên thiết bị truy cập, bằng email và mật khẩu đã chọn.
Chúng tôi khuyến khích việc
**ghi danh thành viên **để thuận tiện trong việc chia sẻ thông tin, chia sẻ kinh nghiệm sống giữa các thành viên, đồng thời quý vị cũng sẽ nhận được sự hỗ trợ kỹ thuật từ Ban Quản Trị trong quá trình sử dụng website này.
** Việc ghi danh là hoàn toàn miễn phí và tự nguyện**.
Ghi danh hoặc đăng nhập


markdown:
Khó thay được làm người, khó thay được sống còn. Khó thay nghe diệu pháp, khó thay Phật ra đời!Kinh Pháp Cú (Kệ số 182)
Nếu người có lỗi mà tự biết sai lầm, bỏ dữ làm lành thì tội tự tiêu diệt, như bệnh toát ra mồ hôi, dần dần được thuyên giảm.Kinh Bốn mươi hai chương
Tinh cần giữa phóng dật, tỉnh thức giữa quần mê.Người trí như ngựa phi, bỏ sau con ngựa hèn.Kính Pháp Cú (Kệ số 29)
Kẻ hung dữ hại người cũng như ngửa mặt lên trời mà phun nước bọt. Nước bọt ấy chẳng lên đến trời, lại rơi xuống chính mình.Kinh Bốn mươi hai chương
Nhà lợp không kín ắt bị mưa dột. Tâm không thường tu tập ắt bị tham dục xâm chiếm.Kinh Pháp cú (Kệ số 13)
Không làm các việc ác, thành tựu các hạnh lành, giữ tâm ý trong sạch, chính lời chư Phật dạy.Kinh Đại Bát Niết-bàn
Dầu mưa bằng tiền vàng, Các dục khó thỏa mãn. Dục đắng nhiều ngọt ít, Biết vậy là bậc trí.Kinh Pháp cú (Kệ số 186)
Kẻ không biết đủ, tuy giàu mà nghèo. Người biết đủ, tuy nghèo mà giàu. Kinh Lời dạy cuối cùng
Chớ khinh tội nhỏ, cho rằng không hại; giọt nước tuy nhỏ, dần đầy hồ to! (Do not belittle any small evil and say that no ill comes about therefrom. Small is a drop of water, yet it fills a big vessel.)Kinh Đại Bát Niết-bàn
Ai bác bỏ đời sau, không ác nào không làm.Kinh Pháp cú (Kệ số 176)
Khó thay được làm người, khó thay được sống còn. Khó thay nghe diệu pháp, khó thay Phật ra đời!Kinh Pháp Cú (Kệ số 182)
[Trang chủ](Home.html) »»
[Kinh Bắc truyền](kinh-bac-truyen_hien-thi_none_0.html?welcome=welcome) »»
Bản khắc gỗ Vĩnh Lạc Bắc tạng Thánh Thiện Trụ Ý Thiên Tử Sở Vấn Kinh [聖善住意天子所問經] »»
Bấm
[ vào đây](?PDF) để xem và tải dạng PDF. **Quý vị đang truy cập từ IP 54.204.217.140 và chưa ghi danh hoặc đăng nhập trên máy tính này. **Nếu là thành viên, quý vị chỉ cần đăng nhập một lần duy nhất trên thiết bị truy cập, bằng email và mật khẩu đã chọn.
Chúng tôi khuyến khích việc
**ghi danh thành viên **để thuận tiện trong việc chia sẻ thông tin, chia sẻ kinh nghiệm sống giữa các thành viên, đồng thời quý vị cũng sẽ nhận được sự hỗ trợ kỹ thuật từ Ban Quản Trị trong quá trình sử dụng website này.
** Việc ghi danh là hoàn toàn miễn phí và tự nguyện**.
Ghi danh hoặc đăng nhập


markdown:
Một lần tình cờ ngồi vào máy vi tính con trai vừa dùng, anh Phú tá hỏa khi phát hiện đường link "phim 18+". Ông bố rất tức giận nhưng vẫn giữ thái độ bình thản chờ con ăn cơm xong rồi gọi vào phòng riêng nói chuyện.
"Bố vừa phát hiện ra một bí mật về con", câu nói của người cha khiến cậu quý tử 14 tuổi tái xanh mặt. "Con của bố giờ đã lớn. Bố biết rồi cũng đến lúc con cần hiểu về những bí mật liên quan đến chuyện giới tính. Bây giờ bố con mình nói chuyện với nhau như 2 người đàn ông trưởng thành nhé. Bố hứa không kể cho ai đâu", sau lời gợi mở của anh Phú, cậu con trai mới hoàn hồn hiểu ra "bí mật" bố đang đề cập đến là gì.
Hôm ấy, hai bố con dành hơn một tiếng đồng hồ để chia sẻ thẳng thắn mọi vấn đề trong cuộc sống. Anh Phú kể cho con trai nghe về thời tuổi trẻ với những rung động đầu đời, những tò mò về giới tính và cách quản lý bản thân như thế nào để không xao nhãng việc học tập. Qua đó, người cha khuyến khích con nói ra những tâm tư tình cảm, suy nghĩ, tâm sự thầm kín xoay quanh chủ đề về tình cảm với bạn khác phái và "bí mật" về web sex kia.
Sau khi nghe quý tử giãi bày, ông bố đặt mình vào vị trí một người bạn và nói cho con hiểu rằng sex và tò mò về giới tính là một nhu cầu rất bình thường của con người, nhất là ở tuổi như con. "Thế nhưng nếu con xem nhiều quá sẽ ảnh hưởng đến sức khỏe, suy nghĩ, tinh thần, kết quả học tập và nhiều hệ lụy khác. Hơn nữa, tình tiết trong phim không giống ngoài đời thật dễ khiến con suy nghĩ lệch lạc về tình yêu...".
Từ sau tối hôm đó, hai bố con trở nên thân thiết hơn. Vợ chồng anh Phú còn mua sách giáo dục giới tính cho con đọc. Mỗi buổi chiều đi làm về, anh rủ con đi chơi thể thao và tranh thủ trò chuyện nhiều hơn. "Tôi không yêu cầu con từ bỏ hẳn thói quen xấu ấy nhưng quan trọng là để cháu hiểu và sống có trách nhiệm hơn. Tôi tin khi gia tăng những hoạt động lành mạnh, cháu sẽ có thái độ sống tích cực hơn, tránh để 'nhàn cư vi bất thiện'", anh Phú, nhân viên tư vấn luật tại TP HCM chia sẻ.
*Trẻ đến tuổi dậy thì có nhu cầu tò mò về giới tính. Khi không được người lớn chỉ bảo, các em có xu hướng tự tìm kiếm nên dễ sa đà vào các trang web "đen"*
Có con ở tuổi dậy thì, vì lo sợ "công chúa" tò mò vào web xấu, chị Hòa
"Khi ứng dụng này được kích hoạt sẽ tạo ra một màn hình riêng dành cho trẻ
Theo một nghiên cứu trên thế giới, cứ 100 website có 12 trang chứa nội dung khiêu dâm. Số lượng trẻ vị thành niên truy cập vào các trang này rất nhiều và ngày càng gia tăng, độ tuổi ngày càng trẻ hóa, thậm chí có em mới 9 tuổi, nam giới chiếm tỷ lệ cao hơn.
Mark B. Kastleman, tác giả cuốn "Ma túy của thiên niên kỷ mới", cho rằng, người nghiện nội dung sex dường như không thể cai được. Hễ có cơ hội, họ lại xem ngày càng nhiều và cực đoan hơn để đạt được khoái cảm. Khi phim ảnh không đáp ứng đủ, "con nghiện" có xu hướng thực hiện những hành vi bắt chước những gì đã xem.
Thạc sĩ tâm lý Nguyễn Thị Ngọc Nhung, Viện Tâm lý và Giáo dục Pháp luật nhìn nhận, trẻ ở độ tuổi dậy thì có nhiều thay đổi tâm sinh lý nên tò mò giới tính như thế là hoàn toàn bình thường. Tuy nhiên, khi lạm dụng thói quen trên với tần suất cao sẽ bị ám ảnh sex dẫn đến quan hệ tình dục bừa bãi hay thủ dâm tiềm ẩn nhiều mối nguy hại về tinh thần và sức khỏe.
"Vì phần đại não luôn ở trong trạng thái hưng phấn, làm mất sự tập trung và giảm trí nhớ. Theo đó, chất lượng cuộc sống, kết quả học hành sẽ giảm. Thói quen này còn gây hại cho sức khỏe sinh sản về sau", bà khuyến cáo.
Mặt khác, bà cho rằng để xảy ra tình trạng như thế, một phần lỗi nằm ở người lớn vì mải mê kiếm sống và vô tình quên mất con em mình đang cần được quan tâm. Phần lớn người Việt xem sex là vấn đề nhạy cảm nên ngại đề cập, tỏ thái độ giận dữ, quát mắng khi con hỏi về tình dục hoặc trả lời cho qua chuyện vì không đủ kiến thức. Đây chính là lý do khiến cho phần lớn con trẻ không muốn chia sẻ với bố mẹ nên tự tìm hiểu qua các kênh thông tin "trôi nổi".
Bà Nhung cho rằng, thay vì cấm con xem phim sex, cha mẹ nên chủ động trang bị cho trẻ những kiến thức liên quan đến tình dục để tự bảo vệ mình. Cần nhắc nhở rằng bất cứ ai rủ con làm "chuyện ấy" đều là người xấu, nên tránh xa. Như thế sẽ tránh cho bé có thể bị xâm hại tình dục vì bản tính tò mò muốn “thử”.
Ở góc độ khác, thạc sĩ giáo dục Phạm Phúc Thịnh khuyên, khi trẻ sử dụng các thiết bị công nghệ có kết nối Internet, nguyên tắc đầu tiên là phải thường xuyên giám sát các ứng dụng cũng như thời gian truy cập.
Có thể cài đặt những phần mềm lọc nhằm mục đích ngăn chặn không cho bé vào những trang web đen hoặc chơi những game có yêu tố sex. Một phần mềm quản lý thông dụng là Salfed Child, có thể đáp ứng được các yêu cầu như định giờ sử dụng máy, giờ truy cập mạng, chặn các trò chơi, trang web "đen" dựa trên từ khóa như sex, porn…
Theo ông, không nên cho trẻ dưới 15 tuổi sở hữu thiết bị thông minh. Các em chỉ có thể dùng máy tính đặt ở phòng sinh hoạt chung, không để trong phòng riêng. Trong trường hợp cho con sử dụng thiết bị công nghệ, thỉnh thoảng cha mẹ nên kiểm tra các nội dung chứa trong đó (audio, video, hình ảnh). Ngoài giờ học nên cho trẻ tham gia vào các hoạt động thể chất, hạn chế thời gian ngồi bên máy tính. Từ đó giúp các em giải phóng nguồn năng lực thừa trong cơ thể, giảm thời gian suy nghĩ những chuyện không lành mạnh.
**Theo Vnexpress**

Set-Cookie: _CookiesCustomerId=PC6913D34F5AC34,1; expires=Sun, 22-Oct-2017 16:15:58 GMT; path=/

X-Powered-By: KNiC Co.,Ltd

Cache-Control: private

Content-Type: text/html; charset=utf-8


markdown:
DNTN Vương Đạo có địa chỉ tại 4 An Dương Vương Phường 16 - Phường 16 - Quận 8 - TP Hồ Chí Minh. Mã số thuế
**0302977867** Đăng ký & quản lý bởi Chi cục Thuế Quận 8
Ngành nghề kinh doanh chính:
**Bán lẻ hàng may mặc, giày dép, hàng da và giả da trong các cửa hàng chuyên doanh**
Cập nhật: 12 tháng trước (07/11/2015)
|Mã số ĐTNT||
|0302977867 |Ngày cấp||11-07-2003||Ngày đóng MST|
|Tên chính thức||
||Tên giao dịch|
|Nơi đăng ký quản lý||Chi cục Thuế Quận 8||Điện thoại / Fax||/|
|Địa chỉ trụ sở||
|
## 4 An Dương Vương Phường 16 - Phường 16 - Quận 8 - TP Hồ Chí Minh
|Nơi đăng ký nộp thuế||Điện thoại / Fax||/|
|Địa chỉ nhận thông báo thuế||4 An Dương Vương P.16 - Phường 16 - Quận 8 - TP Hồ Chí Minh|
|QĐTL/Ngày cấp||/||C.Q ra quyết định|
|GPKD/Ngày cấp||4101006382 / 29-05-2003||Cơ quan cấp||Sở KH Và ĐT TP.HCM|
|Năm tài chính||01-01-2003||Mã số hiện thời||Ngày nhận TK||10-07-2003|
|Ngày bắt đầu HĐ||01/08/2003 12:00:00 SA||Vốn điều lệ||Tổng số lao động|
|Cấp Chương loại khoản||3-755-190-195||Hình thức h.toán||Độc lập||PP tính thuế GTGT||Khấu trừ|
|Chủ sở hữu||Địa chỉ chủ sở hữu||
|
## -
|Tên giám đốc||
|
## Trần Thị ánh Nguyệt
|Địa chỉ||4 An Dương Vương P.16|
|Kế toán trưởng||Địa chỉ|
|Ngành nghề chính||
|**Từ khóa:**
[0302977867](/tim-kiem?kwd=%220302977867%22), [4101006382](/tim-kiem?kwd=%224101006382%22), [TP Hồ Chí Minh](/tim-kiem?kwd=%22TP Hồ Chí Minh%22), [Quận 8](/tim-kiem?kwd=%22Quận 8%22), [Phường 16](/tim-kiem?kwd=%22Phường 16%22), [Trần Thị ánh Nguyệt](/tim-kiem?kwd=%22Trần Thị ánh Nguyệt%22)
|STT||Tên ngành||Mã ngành|
|1||
|
|STT||Mã số thuế||Tên doanh nghiệp||Địa chỉ|
|1||0302977867||Chi Nhánh DNTN Vương Đạo||481 Trần Hưng Đạo B TTTM Đồng Khánh Quầy Số 9 P.14|
|STT||Mã số thuế||Tên doanh nghiệp||Địa chỉ|
|1||0302977867||Chi Nhánh DNTN Vương Đạo||481 Trần Hưng Đạo B TTTM Đồng Khánh Quầy Số 9 P.14|


markdown:
Công Ty TNHH Thương Mại Du Lịch Việt Sing - VIET SING TRAVEL TRADING CO.,LTD có địa chỉ tại 511/21 Trường Chinh - Phường 14 - Quận Tân Bình - TP Hồ Chí Minh. Mã số thuế
**0312299297** Đăng ký & quản lý bởi Chi cục Thuế Quận Tân Bình
Ngành nghề kinh doanh chính:
**Đại lý du lịch**
Cập nhật: 12 tháng trước (07/11/2015)
|Mã số ĐTNT||
|0312299297 |Ngày cấp||28-05-2013||Ngày đóng MST||28-02-2014|
|Tên chính thức||
||Tên giao dịch||
|
## VIET SING TRAVEL TRADING CO.,LTD
|Nơi đăng ký quản lý||Chi cục Thuế Quận Tân Bình||Điện thoại / Fax||0832299297 /|
|Địa chỉ trụ sở||
|
## 511/21 Trường Chinh - Phường 14 - Quận Tân Bình - TP Hồ Chí Minh
|Nơi đăng ký nộp thuế||Điện thoại / Fax||0832299297 /|
|Địa chỉ nhận thông báo thuế||511/21 Trường Chinh - Phường 14 - Quận Tân Bình - TP Hồ Chí Minh|
|QĐTL/Ngày cấp||/||C.Q ra quyết định|
|GPKD/Ngày cấp||0312299297 / 28-05-2013||Cơ quan cấp||Thành phố Hồ Chí Minh|
|Năm tài chính||01-01-2013||Mã số hiện thời||Ngày nhận TK||21-05-2013|
|Ngày bắt đầu HĐ||28/05/2013 12:00:00 SA||Vốn điều lệ||3||Tổng số lao động||3|
|Cấp Chương loại khoản||3-754-430-441||Hình thức h.toán||PP tính thuế GTGT||Trực tiếp doanh thu|
|Chủ sở hữu||
|
## Trần Thị Vinh
|Địa chỉ chủ sở hữu||
|
## ấp 2-Xã Lộc Thuận-Huyện Lộc Ninh-Bình Phước
|Tên giám đốc||
|
## Trần Thị Vinh
|Địa chỉ|
|Kế toán trưởng||Địa chỉ|
|Ngành nghề chính||
|**Từ khóa:**
[0312299297](/tim-kiem?kwd=%220312299297%22), [0832299297](/tim-kiem?kwd=%220832299297%22), [VIET SING TRAVEL TRADING CO.,LTD](/tim-kiem?kwd=%22VIET SING TRAVEL TRADING CO.,LTD%22), [TP Hồ Chí Minh](/tim-kiem?kwd=%22TP Hồ Chí Minh%22), [Quận Tân Bình](/tim-kiem?kwd=%22Quận Tân Bình%22), [Phường 14](/tim-kiem?kwd=%22Phường 14%22), [Trần Thị Vinh](/tim-kiem?kwd=%22Trần Thị Vinh%22)
|STT||Tên ngành||Mã ngành|
|1||
|


markdown:
Công Ty TNHH Nông Trại Hạnh Phúc - HAPPY FARM COMPANY LIMITED có địa chỉ tại 162/47 Đường số 10, Tổ 61 - Phường 9 - Quận Gò Vấp - TP Hồ Chí Minh. Mã số thuế
**0312308745** Đăng ký & quản lý bởi Chi cục Thuế Quận Gò Vấp
Ngành nghề kinh doanh chính:
**Bán buôn thực phẩm**
Cập nhật: 12 tháng trước (07/11/2015)
|Mã số ĐTNT||
|0312308745 |Ngày cấp||03-06-2013||Ngày đóng MST|
|Tên chính thức||
||Tên giao dịch||
|
## HAPPY FARM COMPANY LIMITED
|Nơi đăng ký quản lý||Chi cục Thuế Quận Gò Vấp||Điện thoại / Fax||0838312469 /|
|Địa chỉ trụ sở||
|
## 162/47 Đường số 10, Tổ 61 - Phường 9 - Quận Gò Vấp - TP Hồ Chí Minh
|Nơi đăng ký nộp thuế||Điện thoại / Fax||0838312469 /|
|Địa chỉ nhận thông báo thuế||162/47 Đường số 10, Tổ 61 - Phường 9 - Quận Gò Vấp - TP Hồ Chí Minh|
|QĐTL/Ngày cấp||/||C.Q ra quyết định|
|GPKD/Ngày cấp||0312308745 / 03-06-2013||Cơ quan cấp||Thành phố Hồ Chí Minh|
|Năm tài chính||01-01-2013||Mã số hiện thời||Ngày nhận TK||29-05-2013|
|Ngày bắt đầu HĐ||05/06/2013 12:00:00 SA||Vốn điều lệ||5||Tổng số lao động||5|
|Cấp Chương loại khoản||3-754-190-194||Hình thức h.toán||PP tính thuế GTGT||Khấu trừ|
|Chủ sở hữu||
|
## Nguyễn Việt Dũng
|Địa chỉ chủ sở hữu||
|
## 13/4G Phạm Văn Chiêu-Phường 8-Quận Gò Vấp-TP Hồ Chí Minh
|Tên giám đốc||
|
## Nguyễn Việt Dũng
|Địa chỉ|
|Kế toán trưởng||Địa chỉ|
|Ngành nghề chính||
|**Từ khóa:**
[0312308745](/tim-kiem?kwd=%220312308745%22), [0838312469](/tim-kiem?kwd=%220838312469%22), [HAPPY FARM COMPANY LIMITED](/tim-kiem?kwd=%22HAPPY FARM COMPANY LIMITED%22), [TP Hồ Chí Minh](/tim-kiem?kwd=%22TP Hồ Chí Minh%22), [Quận Gò Vấp](/tim-kiem?kwd=%22Quận Gò Vấp%22), [Phường 9](/tim-kiem?kwd=%22Phường 9%22), [Nguyễn Việt Dũng](/tim-kiem?kwd=%22Nguyễn Việt Dũng%22)
|STT||Tên ngành||Mã ngành|
|1||
|


markdown:
Công Ty TNHH Sản Xuất Thương Mại May Mặc Minh Tâm - MINH TAM GARMENT COMMERCIAL MANUFACTURE COMPANY LIMITED có địa chỉ tại D21 ấp Mỹ Hòa 4 - Xã Xuân T Đông - Huyện Hóc Môn - TP Hồ Chí Minh. Mã số thuế
**0312415440** Đăng ký & quản lý bởi Chi cục Thuế Huyện Hóc Môn
Ngành nghề kinh doanh chính:
**Sản xuất hàng may sẵn (trừ trang phục)**
Cập nhật: 12 tháng trước (07/11/2015)
|Mã số ĐTNT||
|0312415440 |Ngày cấp||13-08-2013||Ngày đóng MST|
|Tên chính thức||
||Tên giao dịch||
|
## MINH TAM GARMENT COMMERCIAL MANUFACTURE COMPANY LIMITED
|Nơi đăng ký quản lý||Chi cục Thuế Huyện Hóc Môn||Điện thoại / Fax||0903188936 /|
|Địa chỉ trụ sở||
|
## D21 ấp Mỹ Hòa 4 - Xã Xuân T Đông - Huyện Hóc Môn - TP Hồ Chí Minh
|Nơi đăng ký nộp thuế||Điện thoại / Fax||0903188936 /|
|Địa chỉ nhận thông báo thuế||D21 ấp Mỹ Hòa 4 - Xã Xuân T Đông - Huyện Hóc Môn - TP Hồ Chí Minh|
|QĐTL/Ngày cấp||/||C.Q ra quyết định|
|GPKD/Ngày cấp||0312415440 / 13-08-2013||Cơ quan cấp||Thành phố Hồ Chí Minh|
|Năm tài chính||01-01-2015||Mã số hiện thời||Ngày nhận TK||06-08-2013|
|Ngày bắt đầu HĐ||13/08/2013 12:00:00 SA||Vốn điều lệ||2||Tổng số lao động||2|
|Cấp Chương loại khoản||3-754-070-074||Hình thức h.toán||PP tính thuế GTGT||Khấu trừ|
|Chủ sở hữu||
|
## Trần Thị Tâm
|Địa chỉ chủ sở hữu||
|
## 277/8 Tôn Thất Thuyết-phường 03-Quận 4-TP Hồ Chí Minh
|Tên giám đốc||
|
## Trần Thị Tâm
|Địa chỉ|
|Kế toán trưởng||Địa chỉ|
|Ngành nghề chính||
|**Từ khóa:**
[0312415440](/tim-kiem?kwd=%220312415440%22), [0903188936](/tim-kiem?kwd=%220903188936%22), [MINH TAM GARMENT COMMERCIAL MANUFACTURE COMPANY LIMITED](/tim-kiem?kwd=%22MINH TAM GARMENT COMMERCIAL MANUFACTURE COMPANY LIMITED%22), [TP Hồ Chí Minh](/tim-kiem?kwd=%22TP Hồ Chí Minh%22), [Huyện Hóc Môn](/tim-kiem?kwd=%22Huyện Hóc Môn%22), [Xã Xuân T Đông](/tim-kiem?kwd=%22Xã Xuân T Đông%22), [Trần Thị Tâm](/tim-kiem?kwd=%22Trần Thị Tâm%22)
|STT||Tên ngành||Mã ngành|
|1||
|


markdown:
Công Ty Trách Nhiệm Hữu Hạn Đầu Tư Thương Mại Dịch Vụ Và Xây Dựng Thuận Hưng - THUAN HUNG INVESTMENT TRADING SERVICE AND CONSTRUCTION COMPA có địa chỉ tại 242 Lê Văn Lương - Phường Tân Hưng - Quận 7 - TP Hồ Chí Minh. Mã số thuế
**0312493537** Đăng ký & quản lý bởi Chi cục Thuế Quận 7
Ngành nghề kinh doanh chính:
**Xây dựng nhà các loại**
Cập nhật: 12 tháng trước (07/11/2015)
|Mã số ĐTNT||
|0312493537 |Ngày cấp||07-10-2013||Ngày đóng MST|
|Tên chính thức||
||Tên giao dịch||
|
## THUAN HUNG INVESTMENT TRADING SERVICE AND CONSTRUCTION COMPA
|Nơi đăng ký quản lý||Chi cục Thuế Quận 7||Điện thoại / Fax||0968675676 /|
|Địa chỉ trụ sở||
|
## 242 Lê Văn Lương - Phường Tân Hưng - Quận 7 - TP Hồ Chí Minh
|Nơi đăng ký nộp thuế||Điện thoại / Fax||0968675676 /|
|Địa chỉ nhận thông báo thuế||242 Lê Văn Lương - Phường Tân Hưng - Quận 7 - TP Hồ Chí Minh|
|QĐTL/Ngày cấp||/||C.Q ra quyết định|
|GPKD/Ngày cấp||0312493537 / 07-10-2013||Cơ quan cấp||Thành phố Hồ Chí Minh|
|Năm tài chính||01-01-2015||Mã số hiện thời||Ngày nhận TK||04-10-2013|
|Ngày bắt đầu HĐ||11/10/2013 12:00:00 SA||Vốn điều lệ||5||Tổng số lao động||5|
|Cấp Chương loại khoản||3-754-160-161||Hình thức h.toán||PP tính thuế GTGT||Khấu trừ|
|Chủ sở hữu||
|
## Phạm Kim Dũng
|Địa chỉ chủ sở hữu||
|
## 242 lê Văn Lương-Phường Tân Hưng-Quận 7-TP Hồ Chí Minh
|Tên giám đốc||
|
## Phạm Kim Dũng
|Địa chỉ|
|Kế toán trưởng||Địa chỉ|
|Ngành nghề chính||
|**Từ khóa:**
[0312493537](/tim-kiem?kwd=%220312493537%22), [0968675676](/tim-kiem?kwd=%220968675676%22), [THUAN HUNG INVESTMENT TRADING SERVICE AND CONSTRUCTION COMPA](/tim-kiem?kwd=%22THUAN HUNG INVESTMENT TRADING SERVICE AND CONSTRUCTION COMPA%22), [TP Hồ Chí Minh](/tim-kiem?kwd=%22TP Hồ Chí Minh%22), [Quận 7](/tim-kiem?kwd=%22Quận 7%22), [Phường Tân Hưng](/tim-kiem?kwd=%22Phường Tân Hưng%22), [Phạm Kim Dũng](/tim-kiem?kwd=%22Phạm Kim Dũng%22)
|STT||Tên ngành||Mã ngành|
|1||
|


markdown:
This action might not be possible to undo. Are you sure you want to continue?
**TỔNG QUAN VỀ ASTERISK
**
I. Giới thiệu:
Asterisk là phần mềm nguồn mở, được viết bằng ngôn ngữ C, ra đời năm 1999 bởi Mark Spencer, đầu tiên được thiết kế và triển khai trên GNU/Linux nền x86 (của Intel). Nhưng hiện nay Asterisk có thể chạy trên các hệ điều hành khác như: Mac OS X, FreeBSD, OpenBSD và Microsoft Windowns. Asterisk được xem như là một tổng đài PBX (Private Branch eXchange) và được thêm nhiều tính năng mới. Ngoài những tính năng của một tổng đài PBX thông thường, Asterisk còn được tích hợp cả chuyển mạch TDM và chuyển mạch VoIP, có khả năng mở rộng đáp ứng nhu cầu cho từng ứng dung như mở rộng giao tiếp với mạng PSTN (Public Switched Telephone Network). Với một máy tính rẻ tiền đã cài hệ điều hành (một trong các hệ điều hành nói trên, ở đây ta thiên về hệ điều hành Microsoft Windowns) và có thêm phần mềm Asterisk đã cấu hình, khi đó máy tính này sẽ có đầy đủ tính năng của một tổng đài điện thoại và có thể hơn thế. Asterisk là một phần mềm nguồn mở, miễn phí, có độ tin cậy cao nên được xem là phần mềm mang tính cách mạng. Bởi những tiện ích: hệ thống và giá cước rẻ, dễ sử dụng, đầy đủ các tính năng của một tổng đài và con hơn thế nên đã có nhiều hệ thống Asterisk được cài đặt thành công trên thế giới. Hiện nay hệ thống Asterisk đang được phát triển mạnh, nhiều doanh nghiệp, công ty đã và đang triển khai hệ thống tạo liên lạc bên trong và ra cả mạng ngoài thông qua mạng máy tính, gọi điện thoại.
Hình 1: Sơ đồ giao tiếp tổng quát.
**Tổng quan về Asterisk
**
Từ hình 1 ta thấy Asterisk không chỉ giao tiếp, kết nối giữa các điện thoại với nhau mà còn có thể mở rộng kết nối đến các tổng đài khác, với IP Phone và nhiều dịch vụ như: Softswitch, Media Gateway, Voicemail Services, Conference Server, Music on hold…
**II. Kiến trúc hệ thống Asterisk:
**
Asterisk là thiết bị trung gian dùng để liên kết công nghệ điện thoại và Internet. Asterisk được ứng dụng để kết nối điện thoại, đường dây điện thoại hoặc gói thoại đến một kết nối dịch vụ khác. Asterisk có độ tin cậy cao và dễ dàng triển khai cho các hệ thống ( từ hệ thống nhỏ đến các hệ thống lớn), Asterisk hỗ trợ ở mật độ cao và yêu cầu sự phức tạp. Asterisk hỗ trợ cho nhiều loại điện thoại có công nghệ khác nhau. Các công nghệ điện thoại: VoIP, SIP, H.323, IAX và BGCP (dùng cho điện thoại đi quốc tế). Asterisk có thể kết nối với hầu hết loại điện thoại truyền thống mạng ISDN qua luồng T1 và E1. Các ứng dụng cho điện thoại: chuyển mạch cuộc gọi, cuộc gọi hội nghị, voicemail, chuyển hướng cuộc gọi, … Một Asterisk server được kết nối tới một mạng vùng nội hạt sẽ điều khiển các điện thoại trong mạng kết nối đến mạng khác, các điện thoại trong mạng có thể thực hiện cuộc gọi và kết nối Internet thông qua Asterisk server. Cổng FXS dùng để Asterisk server điều khiển các điện thoại tương tự trong nội hat. Cổng FXO và kênh T được dùng để kết nối giữa Asterisk server với mạng PSTN. Thuê bao trong mạng PSTN thực hiện cuộc gọi đến các thuê bao được quản lý bởi Asterisk server, các thuê bao của Asterisk cũng có thể thực hiện cuộc gọi đến thuê bao trong mạng PSTN.
Hình 2: Kiến trúc của Asterisk
**Tổng quan về Asterisk
**
Một số chức năng của Asterisk trong hệ thống chuyển mạch cuộc gọi: Khi khởi động hệ thống Asterisk thì Dynamic Module Loader thực hiện nạp driver của thiết bị, nạp các kênh giao tiếp, định dạng file, thu thập thông tin đầu cuối, 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. Hệ thống Asterisk PBX Switching Core chuyển sang trạng thái sẵn sàng thực hiện chuyển mạch cuộc gọi, các cuộc gọi được thực hiện tuỳ vào kế hoạch quay số (Dialplan). Chức năng Application Launchar để rung chuông thuê bao, kết nối với hộp thư thoại hoặc gọi ra đường trung kế… Scheduler and I/O Manager đảm nhiệm các ứng dụng nâng cao như: lập thời biểu và quản lý các cuộc gọi đến – đi ra ngoài. Đây là 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 or IAX. Mọi cuộc gọi vào và ra ngoài đều được thực hiện thông qua các giao tiếp trên. Vì thế hệ thống Asterisk phải đảm trách nhiệm vụ liên kết các giao tiếp khác nhau đó để xử lý cuộc gọi. Chức năng của các giao tiếp chương trình ứng dụng (API: Application Program Interface): 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ư: GMS, G723, Mu-Law… 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, ISDN, 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, AU… Asterisk Aplication API : Bao gồm tất cả các ứng dụng được thực thi trong hệ thống Asterisk như: cuộc gọi hội nghị, 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.
**III. Một số tính năng cơ bản:
**
III.1. Voicemail Voicemail: hộp thư thoại với tính năng cho phép hệ thống nhận các thông điệp tin nhắn thoại, mỗi máy điện thoại được khai báo trong hệ thống Asterisk cho phép khai báo thêm chức năng hộp thư thoại. Khi số điện thoại bị gọi bận hay ngoài vùng phủ sóng thì hệ thống asterisk định hướng trực tiếp cuộc gọi đến hộp thư thoại tương ứng đã khai báo trước. Voicemail cung cấp cho người sử dụng nhiều tính năng như: xác nhận password khi truy cập vào hộp thư thoại, gửi mail báo khi có thông điệp mới. III.2. Call Forwarding Call Forwarding: chuyển hướng cuộc gọi.
**Tổng quan về Asterisk
**
Khi bạn không ở nhà, hoặc đi công tác nhứng bạn không muốn bỏ lỡ tất cả các cuộc gọi đến thì tại sao lại không nghĩ đến việc chuyển cuộc gọi? Asterisk có tính năng chuyển hướng cuộc gọi để giúp bạn việc đó. Đây là tính năng thường được sử dụng trong hệ thống Asterisk. Chức năng cho phép chuyển một cuộc gọi đến một hay nhiều số máy điện thoại được định trước. Một số trường hợp cần chuyển cuộc gọi như : Chuyển cuộc gọi khi bận, chuyển cuộc gọi khi không trả lời, chuyển cuộc gọi tức thời, chuyển cuộc gọi với thời gian định trước. III.3. Caller ID: Caller ID: cuộc gọi có hiển thị số. Với chức năng này thí số điện thoại của người gọi đến máy điện thoại của bạn sẽ được hiển thị, nhằm giúp bạn có thể biết được ai đang gọi tới. Ngoài ra Caller ID cũng cho phép chúng ta xác nhận số thuê bao gọi đến có nghĩa là dựa vào caller ID chúng ta có tiếp nhận hay không tiếp nhận cuộc gọi từ phía hệ thống Asterisk. Ngăn một số cuộc gọi ngoài ý muốn. III.4. Interactive Voice Response Interactive Voice Response (IVR) hay Automated Attendant (AA): đều được dùng để chỉ chức năng tương tác thoại (tổng đài trả lời tự động). Chức năng tương tác thoại có rất nhiều ứng dụng trong thực tế, khi gọi điện thoại đến một cơ quan hay xí nghiệp thuê bao thường được nghe thông điệp như:“Xin chào mừng bạn đã gọi đến công ty chúng XXX hãy nhấn phím 1 để gặp phòng kinh doanh, phím 2 gặp phòng kỹ thuật, phím 3 gặp phòng hỗ trợ khách hàng…” sau đó tuỳ vào sự tương tác của thuê bao gọi đến, hệ thống Asteisk sẽ định hướng cuộc gọi theo mong muốn. Dịch vụ xem điểm thi, tiền cước điện thoại của thuê bao, tỉ giá t i ề n t ệ hiện nay như thế nào, hay kết quả sổ số, bản tin dự báo thời tiết… tất các những mong muốn trên đều có thể thực hiện qua chức năng tương tác thoại. III.5. Time and Date Nhằm chỉ định các khoảng thời gian cụ thể cuộc gọi sẽ định hướng đến một số điện thoại hay một chức năng cụ thể khác, ví dụ trong công ty giám đốc muốn chỉ cho phép nhân viên sử dụng máy điện thoại trong giờ hành chánh còn ngoài giờ thì sẽ hạn chế hay không cho phép gọi ra bên ngoài. III.6. Call Parking Chức năng Call Parking cũng thực hiện việc chuyển cuộc gọi nhưng có quản lý. Có một số điện thoại trung gian và hai thuê bao có thể gặp nhau khi thuê bao được gọi nhấn vào số điện thoại mà thuê bao chủ gọi đang chờ trên đó và từ đây có thể gặp nhau và đàm thoại. III.7. Remote call pickupe Với tính năng này sẽ cho phép chúng ta từ máy điện thoại này có thể nhận cuộc gọi từ máy điện thoại khác đang rung chuông. III.8. Privacy Manager
**Tổng quan về Asterisk
**
Khi một người chủ doanh nghiệp triển khai Asterisk cho hệ thống điện thoại của công ty mình nhưng lại không muốn nhân viên trong công ty gọi đi ra ngoài trò chuyện với bạn bè, khi đó Asterisk cung cấp một tính năng tiện dụng là chỉ cho phép số điện thoại được lập trình được phép gọi đến những số máy cố định nào đó thôi, còn những số không có trong danh sách định sẵn sẽ không thực hiện cuộc gọi được. III.9. Backlist Backlist cũng giống như Privacy Manager nhưng có một sự khác biệt là những máy điện thoại nằm trong danh sách sẽ không gọi được đến máy của mình (sử dụng trong tình trạng hay bị quấy rối điện thoại). Và còn rất nhiều tính năng nữa mà hệ thống asterisk có thể cung cấp cho người sử dụng, trên đây chỉ là một số tính năng thường được sử dụng.
**IV. Ngữ cảnh ứng dụng
**
Asterisk thực hiện rất nhiều ngữ cảnh ứng dụng khác nhau tuỳ vào nhu cầu sử dụng, dưới dây s ẽ g i ớ i t h i ệ u m ộ t s ố ngữ cảnh ứng dụng thường được sử dụng trong thực tế và đã được triển khai trên hệ thống asterisk. IV.1. Tổng đài VoIP IP PBX
Hình 3: IP BPX
Đây là hệ thống chuyển mạch VoIP được xây dựng phục vụ các công ty có nhu cầu thực hiện trên nền tảng mạng nội bộ đã triển khai. Thay vì lắp đặt một hệ thống PBX cho nhu cầu liên lạc nội bộ thì nên lắp đặt hệ thống VoIP, vớ mô hình này chi phí phải trả sẽ được giảm đáng kể. Hệ thống liên lạc với mạng PSTN qua giao tiếp TDM.
**Tổng quan về Asterisk
**
IV.2. Kết nối IP PBX với PBX
Hình 4: Kết nối IP PBX với PBX
Một ngữ cảnh đặt ra ở đây là hiện tại Công ty đã trang bị hệ thống PBX bây giờ cần trang bị thêm để đáp ứng nhu cầu liên lạc trong công ty sao cho với chi phí thấp nhất, giải pháp để thực hiện đó là trang bị hệ thống Asterisk và kết nối với hệ thống PBX đang tồn tại qua luồng E1. Ngoài ra để tăng khả năng liên lạc với mạng PSTN và VoIP khác, Công Ty sẽ đăng ký kết nối dịch vụ với nhà cung cấp dịch vụ VoIP. IV.3. Kết nối giữa các server Asterisk
Hình 5: Kết nối giữa các server asterisk
Phương pháp trên ứng dụng rất hiệu quả cho các công ty nằm rãi rác ở các vị trị địa lý khác nhau nhằm giảm chi phí đường dài. Ví dụ Công ty Mẹ có trụ sở đặt tại nước Mỹ và có các Chi nhánh đặt tại Việt Nam với hai địa điểm là Hà Nội và thành phố Hồ Chí Minh. Thông
**Tổng quan về Asterisk
**
qua mạng WAN của Công Ty các cuộc gọi nội bộ giữa các vị trí khác nhau sẽ làm giảm chi phí đáng kể. IV.4. Các ứng dụng IVR, VoiceMail, Conference Call
Hình 6: Triển khai server IVR, VoiceMail, Conference Call
Ứng dụng thực hiện các server kết nối với hệ thống PSTN hay tổng đài PBX để triển khai các ứng dụng như tương tác thoại IVR. Một ví dụ cho ứng dụng tương tác thoại đó là cho biết kết quả sổ số, kiểm tra cước cuộc, dịch vụ giải trí – tra cứu thông tin thông qua số 19001260. Ứng dụng VoiceMail thu nhận những tin nhắn thoại từ phía thuê bao giống như chức năng hộp thư thoại của Bưu Điện triển khai. Chức năng cuộc gọi hội nghị được thiết lập cho nhiều máy điện thoại cùng nói chuyện với nhau. IV.5. Chức năng phân phối cuộc gọi tự động ACD
Hình 7: Phân phối cuộc gọi với hàng đợi
**Tổng quan về Asterisk
**
ACD (Automatic Call Distribution): Phân phối cuộc gọi tự động. Chức năng được ứng dụng cho nhu cầu chăm sóc khách hàng hay nhận phản hổi từ phía khách hàng. Giả sử một Công ty hệ thống điện thoại có khả năng tiếp nhận cùng một lúc 10 cuộc gọi, như thế nếu có thêm cuộc gọi thứ 11 gọi đến thì hệ thống giải quyết như thế nào? Bình thường thì sẽ nghe tín hiệu bận nhưng với chức năng phân phối cuộc gọi sẽ đưa thuê bao đó vào hàng đợi để chờ trả lời, trong khi chờ trả lời cuộc gọi thuê bao có thể nghe những bài hát hay do asterisk cung cấp và khi nào một trong mười số điện thoại đang gọi trở về trạng thái rỗi thì cuộc gọi đang chờ sẽ được trả lời. Giống như chức năng của dịch vụ: dịch vụ hỗ trợ thông tin 1080, dịch vụ hẹn giờ 116 của Bưu Điện, dịch vụ hỗ trợ khách hàng của các tổng đài điện thoại.
**Asterisk với VoIP ASTERISK VỚI VoIP I. Giới thiệu về VoIP:
**
VoIP (Voice Over Internet Protocol) là một công nghệ cho phép truyền thoại sử dụng giao thức mạng IP trên cơ sở hạ tầng sẵn có của mạng Internet. VoIP là một trong những công nghệ viễn thông đang được quan tâm nhất không chỉ đối với nhà khai thác, nhà sản xuất mà còn cả với người sử dụng dịch vụ. VoIP vừa có thể thực hiện mọi loại cuộc gọi như trên mạng điện thoại thông thường vừa có thể truyền dữ liệu trên mạng truyền số liệu. Do các ưu điểm về giá thành dịch vụ và sự tích hợp nhiều loại hình dịch vụ nên VoIP hiện nay đã được triển khai rộng rãi. Dịch vụ điện thoại VoIP bao gồm việc số hóa tín hiệu tiếng nói, thực hiện nén tín hiệu số, chia nhỏ các gói nếu cần và truyền gói tin này qua mạng. Tại nơi nhận, các gói tin này được ráp lại theo đúng trình tự bản tin, giải mã tương tự để phục hồi lại tiếng nói ban đầu. Các cuộc gọi trong VoIP dựa trên cơ sở sử dụng kết hợp cả chuyển mạch kênh và chuyển mạch gói. Trong mỗi loại chuyển mạch đều có ưu và nhược điểm. Trong khi chuyển mạch kênh dành riêng một kênh có tốc độ truyền dẫn cố định (trong mạng PSTN, tốc độ này là 64Kbit/s) do đó cho độ trễ nhỏ và độ chính xác cao do không thể xảy ra tắc nghẽn. Trong chuyển mạch gói, các bản tin được chia thành các gói nhỏ, sử dụng hệ thống lưu trữ và chuyển tiếp các gói thông tin trong nút mạng. Đối với loại chuyển mạch gói này không tồn tại khái niệm kênh riêng và băng thông hoàn toàn có thể thay đổi được. Tuy nhiên, kỹ thuật này lại cho độ trễ lớn vì trong chuyển mạch này không quy định thời gian mỗi gói tới đích do đó không đáp ứng được tính thời gian thực như trong thoại. Như vậy để truyền dẫn thoại trong môi trường mạng chuyển mạch gói, VoIP phải kết hợp cả ưu điểm của hai loại chuyển mạch trên. Ưu điểm của VoIP: + Đối với điện thoại Internet có các cơ chế để phát hiện khoảng lặng (khoảng thời gian không có tiếng nói) nên sẽ làm tăng hiệu suất mạng. + Điện thoại IP là bước đột phá về công nghệ và dịch vụ, mang lại khả năng gọi đường dài và quốc tế với giá rẻ. + Điện thoại IP còn mang lại lợi ích tiềm tàng trong việc phát triển các dịch vụ viễn thông tích hợp và mở rộng . Khuyết điểm của VoIP: + Không thể thực hiện mọi cuộc gọi qua Internet nếu như người gọi không trực tuyến trên mạng. + Không đảm bảo tính bảo mật.
**II. Các thiết bị dùng trong VoIP:
**
II.1. VoIP phone: là thiết bị phần cứng kết nối với VoIP giống như máy điện thoại cố định thông thường. Tuy nhiên để sử dụng cho VoIP cần phải cấu hình trước khi sử dụng. Một số tính năng khi thực hiện mua thiết bị điện thoại VoIP:
**Asterisk với VoIP
**
+ Low Bandwidth: hỗ trợ cho loại Codec nào, thường hiện nay người ta sử dụng G729. + Web Interface: phải có giao tiếp thiết lập cấu hình thân thiện dễ sử dụng. + Audio Interface: có speaker phone hay không.
II.2. Softphone: là một phần mềm được cài trên máy tính, thực hiện tất cả các chức năng giống như thiết bị điện thoại VoIP. Khi sử dụng softphone, để giao tiếp máy tính phải có card âm thanh, headphone và firewall không bị khóa. Đối với hệ thống Asterisk, nên dùng softphone với công nghệ giao thức mới dành cho Asterisk là IAX.
II.3. Card giao tiếp với PSTN: Muốn cho phép các máy điện thoại nội bộ trong hệ thống Asterisk kết nối và thực hiện cuộc gọi với mạng PSTN, chúng ta cần phải có thiết bị phần cứng tương thích. Thiết bị phần cứng sử dụng cho hệ thống Asterisk do chính tác giả lập công ty Digium phân phối, xuất phát từ ý tưởng phân phối phần mềm Asterisk và hệ thống ngùôn mở miễn phí. Thiết bị phần cứng thường ký hiệu bắt đầu bằng cụm từ TDMxyB trong đó x là số lượng port FXS, y là số lượng port FXO. Giá trị tối đa của cả x và y là 4.
Asterisk với VoIP
Hình Card TDM22B gồm 4 port 2 FXS và 2 FXO II.4. ATA (Analog Telephone Adaptors): ATA là thiết bị kết nối với điện thoại Analog thông thường đến mạng VoIP, một thiết bị ATA gồm có hai loại port: RJ-11 để kết nối với máy analog thông thường và RJ-45 để kết nối với mạng VoIP. ATA là thiết bị FXS chuyển đổi tín hiệu Analog sang tín hiệu số sử dụng cho mạng VoIP để tận dụng thiết bị Analog cho kết nối VoIP. Thiết bị ATA sử dụng với giao thức IAX được Digium phân phối là thiết bị ATA được sử dụng rộng rãi với Asterisk có tên gọi là IAXy.
III. Các giao thức VoIP của Asterisk: Việc sử dụng kết nối VoIP liên quan đến việc trao đổi báo hiệu giữa các đầu cuối (có thể thông qua gateway). Có một vài giao thức thực hiện chức năng này. Trong phần này ta sẽ đề cập đến một vài giao thức VoIP nói chung và Asterisk nói riêng. III.1 IAX ( Inter-Asterisk eXchange): IAX là một giao thức mở, có nghĩa là mọi người đều có thể download và phát triển nó. Phiên bản hiện tại của nó là IAX2, nhưng tất cả các hỗ trợ cho IAX1 không còn tồn tại nữa. Vì vậy khi nói đến IAX có nghĩa là IAX2. Trong Asterisk, IAX được hỗ trợ bởi module chan_iax2. IAX được phát triển bởi Digium với mục đích giao tiếp với các server Asterisk khác, vì thế nó được gọi là Inter-Asterisk eXchange. IAX là giao thức truyền tải (giống như SIP), sử dụng port UDP 4569 cho cả kênh tín hiệu lẫn dòng dữ liệu RTP.
**Asterisk với VoIP
**
IAX có khả năng kết hợp lại nhiều phiên kết nối thành một dòng dữ liệu duy nhất. Việc kết hợp này làm tăng khả năng sử dụng băng thông. Thêm vào đó việc sử dụng một header chung duy nhất làm giảm thời gian overhead cho mỗi kênh riêng lẽ. Giao thức này thích hợp khi có nhiều kênh kết nối giữa hai đầu cuối. Vì IAX được tối ưu hóa cho thoại, nên trên thực tế nó không ưu việc lắm khi truyền tín hiệu video. Tuy nhiên, vì nó là một giao thức mở, nên các việc mở rộng dành cho các loại dữ liệu khác ngoài thoại là điều hoàn toàn có thể. Về khía cạnh bảo mật, IAX có khả năng nhận thực bằng 3 cách khác nhau như sau: + Plain text:e + Mã hóa MD5 + Mã hóa trao đổi khóa RSA. Điều này tất nhiên không mã hóa phần header giữa hai đầu cuối. Có nhiều giải pháp sử dụng mạng riêng ảo (VPN) và các phần mềm mã hóa khác đã được sử dụng, đòi hỏi đầu cuối phải thiết lập trước các phương pháp tunnel và hoạt động. Trong tương lai, IAX có thể mã hóa dòng dữ liệu giữa hai đầu cuối sử dụng việc trao đổi khóa RSA hoặc trao đổi hóa động tại thời điểm thiết lập cuộc gọi. Điều này rất hấp dẫn vì nó có tính bảo mật khá cao, đặc biệt trong các lĩnh vực đòi hỏi tính bảo mật như ngân hàng. IAX và NAT: IAX2 được thiết kế để tương thích với các thiết bị sử dụng giao thức NAT. Việc sử dụng duy nhất một port UDP cho cả tín hiệu báo hiệu và truyền dẫn dẫn đến tăng cườg tính năng bảo mật của firewall. Điều này làm cho IAX là một trong các giao thức bảo mật tốt nhất cho mạng. III.2 SIP (Session Initiation Protocol): Sự ra đời của SIP đã giúp phát triển mạnh VoIP. SIP có ưu điểm là nó là giao thức đơn giản, có cấu trúc syntax khá giống với các giao thức như HTTP hay SMTP. SIP được hỗ trợ bởi module trong Asterisk là chan_sip.so module. SIP được phát triển bởi IETF vào tháng 2-1996. Ban đầu SIP chỉ có chức năng yêu cầu thiết lập cuộc gọi. Vào tháng 3-1999, phiên bản thứ 11 có tên gọi là SIP RFC 2543 ra đời. SIP được coi như là giao thức thông dụng của VoIP. Tất cả các user và doanh nghiệp đều có xu hướng hỗ trợ SIP. SIP còn được trông chờ hỗ trợ cả những chức năng không có trong VoIP như video, âm nhạc và các dịch vụ multimedia thời gian thực khác. Về khía cạnh bảo mật, SIP sử dụng hệ thống challenge/response để nhận thực user. Khởi đầu là câu lệnh INVITE được gởi đển proxy để đến các thiết bị đầu cuối mong muốn. Proxy lúc này sẽ gởi đến một gói tin là 407 Proxy Authorization Request, chứa các ký tự được cài đặt một các ngẫu nhiên thường được gọi là “nonce”. Con số này được xem như là password để tạo ra mã MD5 được gởi ngược trở lại cho lệnh INVITE. Giả sử mã MD5 phù hợp với mã mà proxy tạo ra, client được xác thực.
**Asterisk với VoIP
**
DoS (Denial of Service) được xem như phương thức tấn công thông dụng nhất trên mạng VoIP. Một phiên tấn công DoS sẽ diễn ra khi có một số lượng lớn các lời mời INVITE không hợp lện đến proxy server để làm quá tải hệ thống. SIP có một vài phương thức để giảm thiểu tác động của DoS nhưng không thể hoàn toàn phòng ngừa nó. Một lược đồ hỗ trợ tính bảo mật được cài đặt thêm bởi SIP là mật mã phương thức truyền tải (TLS- Transport Layer Security). Nó được sử dụng để thiết lập kết nối giữa người gọi và domain. Yêu cầu được gởi một các bí mật đến đầu cuối, dựa trên các chính sách bảo mật của mạng. Lưu ý rằng phương thức mật mã không nằm trong khả năng của SIP và phải được kết hợp một cách độc lập. SIP và NAT: Một trong những vấn đề lớn nhất khi triển khai SIP là truyền tải thông qua lớp NAT. Bởi vì SIP mật mã thông tin địa chỉ trong cấu trúc khung của nó. NAT ở lớp mạng sẽ không nhận đúng địa chỉ này và do đó dòng dữ liệu sẽ không được truyền tải đúng như mong muốn. Như vậy, các firewall được tích hợp chức năng NAT sẽ loại bỏ các kết nối SIP này. III.3 H.323 Được tổ chức ITU thiết lập với mục đích là phục vụ các cuộc hội thoại đa điểm. H323 nhanh chóng trở thành nền tảng IP cho các thiết bị hội nghị truyền hình. Dù có nhiều tranh cãi xung quanh việc sử dụng H323 hay là SIP và trên thực tế mạng VoIP, H323 có vài trò thống trị thì trên hệ thống Asterisk, SIP vẫn là sự lựa chọn số 1. Hai phiên bản của H323 được hỗ trợ trong Asterisk được hỗ trợ bởi 2 module chan_h323.so và chan_oh323.so (được hỗ trợ cho các bổ sung mở). H323 được phát triển bởi ITU từ tháng 5-1996, để hỗ trợ truyền thoại, video, dữ liệu ,fax… trong mạng IP trong khi vẫn duy trì kết nối với mạng PSTN truyền thống. Từ thời điểm đó, H323 đã có một vài phiên bản với các tính năng bổ sung cho phép nó hoạt động trong một mạng thuần VoIP và các mạng phân bố khác. H323 được xem như một giao thức có nhiều ưu việc hơn SIP nhưng với các kỹ thuật khác, đôi lúc sự phức tạp của nó lại là một vấn đề so với sự đơn giản của giao thức SIP. Về khía cạnh bảo mật. H323 là một giao thức có tính bảo mật tương đối cao và không cần nhiều bổ sung cho đặc tính bảo mật của mình. Vì H323 sử dụng RTP cho kết nối media, nó không hỗ trợ việc mật mã. Việc sử dụng VPN hay các phương pháp tunnel khác giữa đầu cuối là cách thức thông dụng nhất để đảm bảo tính bảo mật. Tất nhiên là nó cũng gây ra một vài vấn đề. Khi VoIP được sử dụng cho các lĩnh vực đòi hỏi tính bảo mật cao như ngân hàng, đòi hỏi giao thức VoIP phải hỗ trợ một phương pháp mật mã mạnh. H323 và NAT: H323 cũng gặp những vấn đề tương tự như SIP khi triển khai với NAT. Phương pháp đơn giản nhất là cho forward những port nhất định qua thiết bị tích hợp NAT đối với các client nội bộ. Để tiếp nhận cuộc gọi, TCP port 1720 phải luôn được forward. Thêm vào đó, port UDP cho các dữ liệu RTP và RTCP cũng phải được forward. Những client cũ như MS Netmeeting cũng yêu cầu forward port TCP cho việc tunnel của giao thức H245. Nếu có một số lượng các client đằng sau thiết bị có tích hợp NAT, chúng ta phải sử dụng gatekeeper chạy proxy mode. Gatekeeper sẽ cần một Interface liên lạc với một mạng IP subnet và mạng Internet. H323 client trên mạng riêng sẽ đăng ký đến gatekeeper, sau đó
**Asterisk với VoIP
**
gatekeeper sẽ gọi cuộc gọi thay mặt cho client. Các client bên ngoài muốn gọi bên trong cũng phải thực hiện thủ tục đăng ký đến proxy server. Vào thời điểm hiện tại, Asterisk không thể đóng vai trò gatekeeper, chúng ta phải sử dụng các ứng dụng độc lập như Open H323 Gatekeeper. III.4 MGCP (Media Gateway Control Protocol): Cũng được định nghĩa bởi IETF. Việc triển khai MGCP tuy được tiến hành khá nhanh nhưng nó không có tính khả dụng bằng SIP và IAX. Tuy nhiên do đặc tính mã nguồn mở của Asterisk nên nó vẫn có thể được sử dụng. MGCP được thiết kế để đơn giản hóa thiết bị đầu cuối. Việc thực hiện xử lý đều được tiến hành tại media gateway và call agent. Không giống như SIP, MGCP sử dụng cấu trúc tập trung. Cuộc gọi MGCP không thể được tiến hành trực tiếp mà phải đi qua controller. Asterisk hỗ trợ MGCP qua module chan_mgcp.so và đầu cuối được đinh nghĩa thông qua file cấu hình mgcp.conf. Bởi vì Asterisk cung cấp các cuộc gọi cơ bản nên nó không thể giả lập MGCP phone. Nếu có một MGCP phone, chúng ta có thể sử dụng chúng với Asterisk. Tuy nhiên không thể xem MGCP phone như một sản phẩm của hệ thống Asterisk vì nó đã có những chuẩn riêng. III.5 Các giao thức khác: 3.5.1 Skinny/SCCP (Skinny Client Control Protocol): là giao thức của Cisco cho các thiết bị VoIP. Nó là giao thức mặc định cho các đầu cuối của Cisco Call Manager PBX. Skinny được hỗ trợ bởi Asterisk, như nếu chúng ta kết nối Cisco phoen đến Asterisk, thông thường chúng ta mặc định sử dụng giao thức SIP. 3.5.2 UNISTIM: là giao thức hỗ trợ của Nortel cho VoIP, cũng đã được bổ sung vào Asterisk. Điều đáng nói ở đây là Asterisk là tổng đài PBX đầu tiên hỗ trợ đầu cuối IP cho cả hai nhà sản xuất lớn nhất trên lĩnh vực VoIP là Nortel và Cisco.
File cấu hình
**FILE CẤU HÌNH
**
I. Giới thiệu: Sự linh động của Asterisk được điều khiển thông qua các file cấu hình được chứa trong thư mục /etc/asterisk ngọai trừ file zaptel.conf cấu hình cho phần cứng TDM nằm tại thư mục /etc. Định dạng của các file cấu hình trong Asterisk tương tự với dạng file .ini (trong Window). File này định dạng theo mã ASCII được chia ra thành nhiều phần (sections). Các nội dung sau dấu chấm phẩy là chú thích trong file cấu hình. Các dòng trắng, khoảng trắng không có ý nghĩa trong file cấu hình. Các phép gán được sử dụng: “=” dùng để gán các biến, “=>”để gán các đối tượng ; ; The first non-comment line in a config file ; must be a section title ; [section1] keyword = value ; Variable assignment [section2] keyword = value object => value ; Object declaration II. Các kiểu của file cấu hình: Mặc dù các file cấu hình của Asterisk có định dạng giống nhau, nhưng chúng được phân ra làm 3 kiểu cơ bản thường được sử dụng. II.1 Simple Group: Simple Group là dạng đơn giản nhất được sử dụng bởi các file cấu hình mà mỗi đối tượng chỉ có ý nghĩa trên dòng đó. Ví dụ: [mysection] object1 => option1a,option2a,option3a object2=> option1b,option2b,option3b Tương ứng với object1 là các đối tượng option1a, option2a, option3a. Còn object2 được gán cho các đối tượng option1b, option2b, option3a. Cấu hình này thường được sử dụng trong các file: extensions.conf, meetme.conf, voicemail.conf… II.2 Inherited option object: Kiểu cấu hình này thường được sử dụng bởi các file: zapata.conf, phone.conf, mgcp.conf . Trong kiểu cấu hình này, các dòng phía dưới thừa kế các thông số của các dòng trên nó. Ví dụ:
**File cấu hình
**
[mysection] option1 = foo option2 = bar object => 1 option1 = baz object => 2 Hai dòng đầu tiên gán hai giá trị foo, bar cho option1, option2. Đối tượng “1” được tạo ra bởi hai thông số là option1=foo và option2=bar. Khi option1 được thay đổi thành baz thì đối tượng “2” được tạo thành từ hai thông số là option1=baz và option2=bar. Như vậy thay đổi giá trị option1 sau khi đối tượng “1” đã được gán chỉ ảnh hưởng đến đối tượng “2” mà không ảnh hưởng đến đối tượng “1”. II.3 Complex entity object: Kiểu cấu hình này sử dụng bởi các file: iax.conf, sip.conf, được tổ chức thành nhiều thực thể (entity), ứng với mỗi entity có nhiều thông số được khai báo, mỗi entity là các section để khai báo. Ví dụ: [myentity1] option1=value1 option2=value2 [myentity2] option1=value3 option2=value4 Entity myentity1 có các giá trị value1, value2 cho các thông số option1, option2. Trong khi đó entity myentity2 cũng có các thông số là option1, option2 nhưng với các giá trị là value3, value4. III. Channel interfaces: Phần này giới thiệu các file cấu hình cho các Asterisk channel drivers. Asterick có thể được cấu hình với nhiều mục đích khác nhau, nhưng mô hình thông thường nhất là Client/Server. Mô hình này cho phép các client – hay còn gọi là UAC – user agent client kết nối vào server là Asterisk – hay còn gọi là UAS – User Agent Server. Các UAC là nơi sinh ra các session trong khi UAS thì xử lý thụ động các session nhận được dựa trên tập hợp rule có sẳn. Phần IV sẽ đi rỏ hơn về các dạng ứng dụng này. Ta có thể cấu hình Asterisk trong console mode, hoặc có một cách tiện lợi hơn là edit trực tiếp các file cấu hình trong /etc/asterisk. Mổi ứng dụng riêng của Asterisk như voicemail, zaptel, music-on-hold, meetme, conference, iax … đều có configuration riêng của mình, tuy nhiên có 2 file cấu hình quan trọng nhất là sip.conf và extension.conf: - Sip.conf : file cấu hình về các thông tin của các UAC như username, password, IP, type, security, codec, là thành phần căn bản nhất lưu giử thông tin trong Asterisk.
**File cấu hình
**
- Extension.conf: file cấu hình về các luật định tuyến cuộc gọi, luật quay số, các extension trong ngoài và những tính năng đặc biệt khác. Extensions.conf là file quan trọng nhất trong bất kỳ cấu hình Asterisk nào Các file cấu hình khác: - Voicemail.conf: file cấu hình cho hệ thống voice-mail của asterisk. Asterisk có thể dùng lệnh Sendmail trên CentOS để gởi mail đến cho các địa chỉ được lưu trong file cấu hình này. - Zaptel.conf: File này nằm ngoài /etc, là file chứa thông số index, driver dành cho Linux khi kích hoạt các thiết bị Telephony cắm trực tiếp vào Asterisk thông qua cổng PCI - Zapata.conf: Cũng thuộc module zaptel, nhưng là file kết nối các thiết bị Telephony đã được khai báo vào hệ thống chính của Asterisk - Iax(2).conf: Các thông số về IAX (inter-asterisk protocol) dùng khi kết nối 2 asterisk box với nhau - MeetMe.conf: Một chức năng tạo room conference căn bản.
Dialplan DIALPLAN
Dialplan là trái tim thật sự của bất kì hệ thống Asterisk nào, nó định nghĩ Asterisk xử lý các cuộc gọi đến và đi như thế nào. Một cách ngắn gọn, nó chứa danh sách các lệnh hoặc các bước mà Asterisk sẽ theo. Không giống như hệ thông điện thoại truyền thống, dialplan của Asterisk có thể tùy biến hoàn toàn. Để hiểu và cài đặt hệ thống Asterisk thành công, điều thiết yếu nhất là phải hiểu được dialplan. Trong phần này, ta sẽ từng bước xây dựng nên một dialplan đơn giản và dần dần phát triển nó.
I. Dialplan Syntax:
Dialplan của Asterisk chỉ được đặc tả trong file cấu hình “extensions.conf”. Dialplan được tạo thành từ 4 phần chính: contex, extensions, priorities và application. Các thành phần này làm việc với nhau để tạo nên một dialplan. I.1 Contexts: Dialplan được chia thành các phần gọi là context. Context tách biệt các nhóm thuê bao. Nó giữ cho các thành phần khác nhau không tác động lẫn nhau, mỗi extension được định nghĩa trong 1 context hoàn toàn tách biệt với bất kì extension nào trong context khác, trừ khi việc tương tác giữa chúng được đặc biệt cho phép. Lấy một ví dụ đơn giản để dễ hiểu, giả sử 2 công ty cùng chia sẽ một Asterisk Server. Khi đặt menu voice của mỗi công ty trong context của chính công ty đó, khi đó sẽ có sự cách biệt rõ ràng giữa chúng với nhau, khi cả hai cùng gọi extension 0 thì chuyện gọi này sẽ là độc lập giữa 2 công ty, không có một sự liên hệ nào ở đây. Context được chỉ định bằng cách đặt tên của context đó vào trong dấu ngoặc vuông. Tên của context có thể là kí tự từ a z, 0 9, - và _. Ví dụ: [outcommingcall] Tất cả các chỉ dẫn đặt sau đó là các phần của context đó cho tới khi context tiếp theo được định nghĩa. Trong phần đầu của dialplan đó, có 2 context đặc biệt là [general] và [globals]. Một trong những công dụng quan trọng của context là thực thi bảo mật. Bằng cách sử dụng context chính xác, có thể giúp cho caller A có thể truy cập vào các dịch vụ, đặc tính mà các caller khác không có. Nếu hệ thống không được xây dựng một cách cẩn thận, nó có thể bị gian lân, sử dụng lậu bởi người khác. Điều này là đặc biệt nghiêm trọng. Hệ thống Asterisk chứa file SECURITY rất quan trọng, nó phát thảo các bước thực hiện để giúp cho hệ thống chúng ta được an toàn. Từ chối các cảnh báo này có thể “giúp” cho nhiều người có thể truy cập và gọi các cuộc gọi đường dài, mà chi phí là chúng ta phải chịu I.2 Extension: Chúng ta cần xác định, định nghĩa một hoặc nhiều extension. Một extension là một lệnh mà Asterisk phải theo, nó được kích bởi một cuộc gọi đến hay là một phím được nhấn trên kênh. Extension đặc tả việc xử lý cuộc gọi khi nó đi xuyên qua dialplan. Cú pháp cho extension như sau: exten => name,priority,application( )
Dialplan
Ví dụ: exten => 123,1,Answer() Theo sau là tên của extension. Trong hệ thống điện thoại, extension như là một số dùng để gọi. Trong Asterisk, extension được tạo thành từ sự tổng hợp của các số và các kí tự. Đây là đặc điểm giúp cho Asterisk hoạt động một cách mạnh mẽ và linh hoạt bởi hầu hết các giao thức VoIP đều hỗ trợ việc sử dụng tên, địa chỉ email thay vì sử dụng số. I.3. Priorities: Mỗi extension có nhiều bậc khác nhau, gọi là Priorites (độ ưu tiên). Các độ ưu tiên này được đánh số tuần tự. Mỗi độ ưu tiên đó thực thi một ứng dụng cụ thể. Ví dụ: exten => 123,1,Answer( ) exten => 123,2,Hangup( ) Trong ví dụ trên, đầu tiên user đó trả lời điện thoại (độ ưu tiên 1), và sau đó gác máy (độ ưu tiên 2). Các độ ưu tiên này phải được đặt một cách tuần tự, không được ngắt quãng giữa chừng vì khi thế, Asterisk sẽ bỏ qua các thao tác phía sau. Unnumbered Priorities: Trong phiên bản Asterisk mới, có thể dùng ‘n’ thay cho số thứ tự để chỉ độ ưu tiên kế tiếp. Cách làm này rất thuận tiện, người viết không cần phải nhớ số thứ tự. I.4. Applications: Application (ứng dụng) gánh vác hầu như toàn bộ công việc của dialplan. Mỗi ứng dụng thực hiện một hành động cụ thể trên kênh đang hoạt đông, như: nghe máy, gác máy, chơi nhạc, chấp nhận dial tone…. Trong vài ứng dung, như answer(), hangup(), không cần các lệnh khác để thực hiện. Tuy nhiên, trong vài ứng dụng lại cần them các thông tin bổ xung. Các phần thông tin thêm vào đó được gọi là argument. Argument được đặt trong dấu ngoặc đơn, các argument phân biệt với nhau bằng dấu phẩy.
**II Xây dựng dialplan đơn giản:
**
Giả sử như có trước ít nhất một kênh Zap đã được tạo ra và cấu hình, và mọi cuộc gọi đến được xét dựa trên context [incoming]. Ta có thể xây dựng một diaplan đơn giản như sau: [incoming] exten => s,1,Answer( ) exten => s,2,Playback(hello-world) exten => s,3,Hangup( )
Dialplan
Các application ở trên có thể hiểu một cách dễ dàng, riêng ứng dụng playback dùng để phát đi một đoạn âm thanh đã được lưu sẵn thành file, trong trường hợp trên nó có ten là “hello-world”.
**III. Thêm tính logic cho Dialplan:
**
III.1 Ứng dụng background() và goto(): Ứng dụng Background() là chìa khóa để giúp cho hệ thống Asterisk có tính tương tác cao. Cũng giống như playback(), nó mở một đoạn âm thanh đã thu sẵn, khác ở chổ là khi caller nhấn phím (hay tổ hợp phím), nó sẽ ngắt âm thành và đưa đến extension tương ứng với phím nhấn đó. Một trong những công dụng thông dụng nhất của Background() là để tạo voice menu (hay còn gọi là phone-tree). Nhiều công ty sử dụng phone-tree để chuyển caller cho extension thích hợp, tiếp tân của họ không cần phải trả lời cho từng cuộc gọi riêng biệt. Cú pháp của Background() cũng giống với Playback() exten => 123,1,Background(hello-world) Một ứng dụng khác tiện ích không kém đó là Goto(). Nó được sử dụng để gởi một cuộc gọi vào một context, extension, và priority khác. Ứng dụng Goto() tạo ra sự dễ dàng để di chuyển cuộc gọi giữa các phần khác nhau của dialplan. Cú pháp như sau: exten => 123,1,Goto(context,extension,priority) Với việc sử dụng, Background() và Goto(), ta có thể xây dựng một dialplan có chức năng chuyển tiếp cuộc gọi đến extension và sử dụng như voice menu như sau [incoming] exten => s,1,Answer( ) exten => s,2,Background(enter-extof-person) exten => 1,1,Playback(digits/1) exten => 1,2,Goto(incoming,s,1) exten => 2,1,Playback(digits/2) exten => 2,2,Goto(incoming,s,1) III.2. Xử lý entry không thực và timeout: Để xây dựng nên một dialplan thực tế, cần phải xét đến nhiều trường hợp thực tế như: caller nhấn số không có trong danh sách, và không nhấn bất kì số nào trong thời gian quá lâu. Như cách xử lý thông thường khác, ta đưa nó vào các extension i (invalid), và extension t (timeout). Ta có thể cấu hình như sau:
Dialplan
[incoming] exten => s,1,Answer( ) exten => s,2,Background(enter-ext-ofperson) exten => 1,1,Playback(digits/1) exten => 1,2,Goto(incoming,s,1) exten => 2,1,Playback(digits/2) exten => 2,2,Goto(incoming,s,1) exten => i,1,Playback(pbx-invalid) exten => i,2,Goto(incoming,s,1) exten => t,1,Playback(vm-goodbye) exten => t,2,Hangup( ) III.3 Sử dụng ứng dụng dial(): Một trong những đặc tính có giá trị của Asterisk là khả năng kết nối các caller khác nhau lại với nhau. Đó là điều đặc biệt hữu dụng khi các caller sử dụng phương thức truyền thông khác nhau. Asterisk có thể dùng để có thể kết nối và chuyển thể giữa các mạng riêng biệt với nhau. Tất cả đều cần làm là sử dụng ứng dụng Dial(). Vì thể, cú pháp của Dial() có một chút phức tạp hơn so với các ứng dụng khác đã biết. Dial() có 4 argument. Argument thứ nhất là: Đích của cuộc gọi(gồm công nghệ truyền dẫn, Forward slash,tài nguyên từ xa ( tên channel hoặc số)) Ví dụ: để gọi vào một Zap Channel tên là Zap/1 (analog phone), ta cấu hình như sau: exten => 123,1,Dial(Zap/1) Khi extension này được thực thi, Asterisk sẽ rung chuông của điện thoại kết nối với kênh Zap/1. Ta cũng có thể gọi nhiều channel khác nhau cùng một lúc, bằng cách kết nối các đích lại với nhau sử dụng dấu “&”.Dial() sẽ nối cuộc gọi vào với kênh đích nào trả lời trước nhất. exten => 123,1,Dial(Zap/1&Zap/2&Zap/3) Argument thứ 2 của Dial() là timeout, tính bằng giây (s). Nếu một time out được sử dụng, Dial sẽ nhắm đến việc gọi một số trong một thời lượng nào đó trước khi từ bỏ và chuyển sang một priority khác trong extension có độ ưu tiên tiếp theo. Nếu timeout không được sử dung, Dial() sẽ tiếp tục gọi cho đến khi có ai đó trả lời hay gác máy. Trường hợp đích gọi bị bận thì cuộc gọi sẽ được chuyển qua extension đó với priority là n+101(nếu có) để xử lý tùy chọn. Ứng dụng này dễ thấy ở các tổng đài trả lời 1080, dịch vụ khách hang… Ví dụ: exten => 123,1,Dial(Zap/1,10) Cách xử lý máy bận có thể như sau:
Dialplan
exten => 123,1,Dial(Zap/1,10) exten => 123,3,Hangup( ) exten => 123,102,Playback(ttallbusy) exten => 123,103,Hangup( ) Argument thứ 3 của Dial() là string tùy chọn. Nó chứa một hoặc một vài đặc điểm để định ra hành vi của Dial(). Ví dụ: -r: người gọi sẽ được nghe âm chuông khi đích đã được thông báo có cuộc gọi đến. exten => 123,1,Dial(Zap/1,10,r) exten => 123,2,Playback(vmnobodyavail) exten => 123,3,Hangup( ) exten => 123,102,Playback(tt-allbusy) exten => 123,103,Hangup( ) Một ví dụ cụ thể hơn như sau: [incoming] exten => s,1,Answer( ) exten => s,2,Background(enter-ext-ofperson) exten => 101,1,Dial(Zap/1,10) exten => 101,2,Playback(vmnobodyavail) exten => 101,3,Hangup( ) exten => 101,102,Playback(tt-allbusy) exten => 101,103,Hangup( ) exten => 102,1,Dial(SIP/Jane,10) exten => 102,2,Playback(vmnobodyavail) exten => 102,3,Hangup( ) exten => 102,102,Playback(tt-allbusy) exten => 102,103,Hangup( ) exten => i,1,Playback(pbx-invalid) exten => i,2,Goto(incoming,s,1) exten => t,1,Playback(vm-goodbye) exten => t,2,Hangup( )
Dialplan
Argument thứ 4 của Dial() là URL, nếu đầu nhận hỗ trợ chứ năng nhận một URL tại thời điểm của cuộc gọi, một URL cụ thể sẽ được gởi ( được sử dụng trong IP phone và softphone). Argument này hiếm khi được sử dụng Nếu muốn tạo một cuộc gọi ra ngoài trên một kênh FXO Zap /4 , có thể làm như sau: exten => 123,1,Dial(Zap/4/<destination>) <Destination> có thể là số bị gọi (Trong kênh Zap) hoặc là địa chỉ email….trong các kênh khác như SIP, IAX. Ví dụ: exten => 123,1,Dial(SIP/1234) exten => 124,1,Dial(IAX2/john@asteriskdocs.org) Bất cứ argument nào đều có thể bỏ trống bằng đoạn trống giữ 2 dấu phẩy. III.4 Thêm context cho cuộc gọi nội bộ: Như đã nói, một trong những chức năng quan trọng của Asterisk là phân đặc quyền (gọi nội bộ, nội hạt, đường dài. …) cho các nhóm người gọi khác nhau. Để làm điều này đối với extension nội bộ, ta tạo thêm một context [internal]. [internal] exten => 101,1,Dial(Zap/1,,r) exten => 102,1,Dial(SIP/jane,,r) Bằng cách này, người sử dụng kênh Zap/1 có thể sử dụng số 102 để gọi cho người đang ở kênh SIP/jane và ngược lại. Mặc khác, ta cũng có thẻ thay thế các số 101, 102…bằng tên. III.5 Sử dụng biến: Biến có thể sử dụng trong Asterisk dialplan để giúp giảm bớt khối lượng đánh máy, các logic thêm vào… Chúng ta có thể tạo một biến là Jonh và gán giá trị là Zap/1. Như thế, khi viết, chúng ta có thể sử dụng Jonh thay vì Zap/1, mà nhớ từ John thì luôn dễ dàng hơn nhớ Zap/1? Cú pháp gán như sau: <Var_name>=<value> Ví dụ: JONH=Zap/1 Có 2 cách để tham chiếu đến biến. Để chỉ đến tến biến, cách đơn giản là sử dụng luôn tên biến đó, hoặc có thể đặt giữa ${<var_name>}. Có sự khác nhau là khi sử dụng cách thứ 2, Asterisk sẽ tự động thay thế biến bằng giá trị mà biến đó được gán. Có 3 kiểu biến được sử dụng trong dialplan: biến global , biến channel, biến environment.
Dialplan
a) Biến Global: Biến Global được dùng trong mọi extension, mọi context như tên gọi của nó. Sử dụng biến Global rất hiệu quả khi ta cần nó ở bất cứ đâu trong dialplan để tăng tính dễ quản lý, dể đọc, dễ hiểu. Chỉ cần thay đổi 1 lần, ta có thể thay đổi toàn bộ dialplan. Biến Global được khai báo trong context [global] trong phần đầu của file extensions.conf. Hoặc sử dụng ứng dụng SetGlobal(). Ví dụ: [globals] JOHN=Zap/1 [internal] exten => 123,1,SetGlobalVar(JOHN=Zap/1) b) Biến Channel: Một biến Channel là một biến chỉ liên hện với một cuộc gọi cụ thể. Không giống như biến Global, biến Channel được xác định chỉ trong thời gian cuộc gọi đang thực hiện và chỉ có giá trị trong kênh tham gia cuộc gọi đó.Có nhiều biến được định nghĩa trước cho việc sử dụng trong dialplan, có thể tìm thấy trong tập tin README.variables trong thư mục của Asterisk. Biến Channel được khai báo bằng cách sử dụng ứng dụng Set() tương tự như sau exten => 123,1,Set(MAGICNUMBER=42) c) Biến Environment: Biến environment là cách để truy cập vào môi trường Unix từ Asterisk. Nó được tham chiếu trong dạng ${ENV(var)} trong đó var là biến môi trường trong UNIX mà ta muốn sử dụng. III.6 Pattern Matching Sẽ thật dài dòng để bổ xung mỗi extension trong dialplan. Đặc biệt là cho trường hợp gọi hướng ra ngoài. Asterisk sử dụng pattern maching giúp một đoạn code có thể sử dụng lại trên nhiều extension. Như vậy pattern matching cũng khá giống với cách dùng hàm, thủ tục trong các chương trình lập trình khác. a) Cú pháp Khi sử dụng pattern matching, chúng ta sử dụng nhiều kí tự, kí hiệu để biểu diễn các số mà muốn match. Mẫu luôn luôn bắt đầu bằng ‘_’. Sau dấu ‘_’ là các kí tự sau: X: đại diện cho các số từ 09 Z: 19 N: 29
Dialplan
…… Để sử dụng pattern matching, chỉ cần đặt nó ở vị trí extension như thông thường. exten => _NXX,1,Playback(auth-thankyou) exten => _555XXXX,1,Playback(digits/1) b) Sử dụng ${exten}: Khi sử dụng pattern matching, làm sao biết các số nào được nhấn? Khi gọi một extension, Asterisk tạo ra một biến channel ${channel} để cho biết digits nào được gọi.Và có thể sử dụng hàm SayDigits() để biết thông tin về phím nào được nhấn. exten => _XXX,1,SayDigits(${EXTEN}) Có thể cắt một phần chuỗi số, bằng cách sử dụng ${EXTEN:x} với x là số các số bị tách ra. Ví dụ giá trị của EXTEN là 95551212, giá trị nhận về của ${EXTEN:2} là 551212. x cũng có thể là số âm để chỉ đến các số được nhấn sau cùng. III.7 Cho phép gọi ra ngoài: Công việc đầu tiên là phải thêm biến vào trong context [globals] để xác định channel nào được sử dụng cho cuộc gọi ra ngoài. Ví dụ: [globals] JOHN=Zap/1 JANE=SIP/jane OUTBOUNDTRUNK=Zap/4 Sau đó là thêm contexts cho dialplan cho việc gọi ra ngoài. Bước thứ nhất là cho local call. Để phù hợp với chuyển mạch thoại truyền thống, phím đầu tiên nđược nhấn để gọi ra ngoài là phím số 9. [outbound-local] exten => _9NXXXXXX,1,Dial(${OUTBOUNDTRUNK}/${EXTEN:1}) exten => _9NXXXXXX,2,Congestion( ) exten => _9NXXXXXX,102,Congestion( ) Chúng ta đã thêm OUTBOUNDTRUNK làm biến Global để điều khiển channel nào sử dụng cho cuộc gọi ra ngoài, đã thêm context cho cuộc gọi ra ngoài nội bộ. Sau đó, với mức độ ưu tiên 1 ta, loại bỏ số 9 đầu tiên, vào gọi số trên channel được chọn bơi OUTBOUNDTRUNK. Nếu cuộc gọi thành công, caller sẽ được nối với kênh bên ngoài, ngược lại, ứng dụng Congestion() được thực thi ( có thể phát tín hiệu bận…) Cuộc gọi đến số khẩn cấp cần được cho phép
Dialplan
exten => 113,1,Dial(${OUTBOUNDTRUNK}/911) exten => 115,1,Dial(${OUTBOUNDTRUNK}/911) Công việc kế tiếp là thêm context cho cuộc gọi đường dài: [outbound-long-distance] exten => _90NXXNXXXXXX,1,Dial(${OUTBOUNDTRUNK}/${EXTEN:1}) exten => _90NXXNXXXXXX,2,Congestion( ) exten => _90NXXNXXXXXX,102,Congestion( ) III.8 Include Asterisk cho phép sử dụng context bên trong một context khác dựa vào include. Đây là sự cho phép truy nhập vào các phần khác nhau của dialplan. Cú pháp của include như sau: include => context Trong đó, context là tên của context mà ta muốn thêm vào context hiện tại. Khi đó, thứ tự của context được thêm vào là không đổi. Tổng hợp, tất cả các điều làm được ở trên, ta được như sau: [globals] JOHN=Zap/1 JANE=SIP/jane OUTBOUNDTRUNK=Zap/4 [incoming] exten => s,1,Answer( ) exten => s,2,Background(enter-ext-of-person) exten => 101,1,Dial(${JOHN},10) exten => 101,2,Playback(vm-nobodyavail) exten => 101,3,Hangup( ) exten => 101,102,Playback(tt-allbusy) exten => 101,103,Hangup( ) exten => 102,1,Dial(${JANE},10) exten => 102,2,Playback(vm-nobodyavail) exten => 102,3,Hangup( ) exten => 102,102,Playback(tt-allbusy)
Dialplan
exten => 102,103,Hangup( ) exten => i,1,Playback(pbx-invalid) exten => i,2,Goto(incoming,s,1) exten => t,1,Playback(vm-goodbye) exten => t,2,Hangup( ) [internal] include => outbound-local include => outbound-long-distance exten => 101,1,Dial(${JOHN},,r) exten => 102,1,Dial(${JANE},,r) [outbound-local] exten => _9NXXXXXX,1,Dial(${OUTBOUNDTRUNK}/${EXTEN:1}) exten => _9NXXXXXX,2,Congestion( ) exten => _9NXXXXXX,102,Congestion( ) exten => 911,1,Dial(${OUTBOUNDTRUNK}/911) exten => 9911,1,Dial(${OUTBOUNDTRUNK}/911) [outbound-long-distance] exten => _91NXXNXXXXXX,1,Dial(${OUTBOUNDTRUNK}/${EXTEN:1}) exten => _91NXXNXXXXXX,2,Congestion( ) exten => _91NXXNXXXXXX,102,Congestion( ) Lưu ý, vấn đề bảo mật phải luôn luôn được quan tâm đúng mức, vì thực hiện include sẽ cho phép các chức năng có trong context được thêm vào thực hiện một cách đây đủ. Ngoài ra, context [inbound] cũng không được dùng cho thực hiện cuộc gọi ra ngoài.
**Dialplan and more Dialplan and more
**
Chúng ta đã xây dựng được một Dialplan đơn giản như trên, tuy nhiên chỉ bấy nhiêu chưa đủ sức cho Asterisk hấp dẫn tất cả những người làm viễn thông. Sức mạnh của nó nằm ở sự hoàn toàn tùy biến, linh hoạt và đầy thông minh. Phần này sẽ từng bước tạo nên một Dialplan như thế.
**I. Vận dụng biểu thức và biến:
**
Vận dụng các biểu thức và biến làm cho Dialplan trở nên linh hoạt hơn bởi sự quyết định trong Asterisk có thể dựa trên các ngưỡng tự tạo ra. Từ đây ta có thể làm được nhiều thứ mà ta muốn hơn I.1 Biểu thức: Biểu thức là sự kết hợp của các biến, các toán tử và các hằng để tạo ra một kết quả nào đó. Biểu thức có thể dùng để kiểm tra biến, thực hiện cá tính toán toán học, thay đổi string….Trong Asterisk, biểu thức luôn bắt đầu bằng ‘$’, biểu thức sau đó được đặt giữa 2 dấu ngoặc vuông. $[expression] Ví dụ: $[${COUNT} + 1] $[${COUNT} / 2] Khi Asterisk bắt gặp một biểu thức trong Dialplan, nó tính toán thay thế toàn bộ biểu thức đó bằng giá trị kết quả mà nó nhận được (giống như sự thay thế giá trị biến đã nói ở trên) Ví dụ: exten => 321,1,Set(COUNT=3) exten => 321,2,Set(NEWCOUNT=$[${COUNT} + 1]) exten => 321,3,SayNumber(${NEWCOUNT}) I.2 Toán tử: Bất cứ một ngôn ngữ nào cũng cần có các toán tử để có thể liên kết các toán hạng (biến, hằng,…) lại với nhau. Do Asterisk được viết trên C nên các toán tử trong nó cũng khá quen thuộc và không cần giải thích nhiều. Do cú pháp của Asterisk khá đơn giản nên cần ít nhất một khoảng trắng giữa các toán tử. Các toán tử trong Asterisk gồm: a) Toán tử logic: expr1 | expr2: toán tử or expr1 & expr2: toán tử and
**Dialplan and more
**
expr1 {=, >, >=, <, <=, !=} expr2: toán tử quan hệ, so sánh
**b) Toán tử toán học:
**
‘+’, ‘-‘, ‘*’, ‘/’, ‘%’ Lưu ý là trong Asterisk chỉ tính toán trên các giá trị nguyên.
II. Hàm:
Hàm là một cách dùng không có gì mới, nhiều ứng dụng thực hiện các công việc khá tương tự nhau. Sử dụng hàm giúp tiết kiệm thời gian và công sức rất nhiều. Hàm trong Asterisk cho phép tính toán độ dài string, ngày và giờ, check MD5, …tất cả trong biểu thức. Cú pháp của hàm như sau: FUNCTION_NAME(argument) Cũng giống như biến, để tham chiếu đến giá trị của hàm thì cần đặt tên của hàm đó trong dấu ngoặc nhọn và với $ ở trước. ${FUNCTION_NAME(argument)} Và hàm trong Asterisk cũng có thể đặt làm tham số trong hàm khác (nhớ đặt tên của hàm trong dấu ngoặc kép, phía trước là dấu $ nhé bạn!)
**III. Nhánh điều kiện:
**
Nhắm mục đích chính là đưa ra quyết định cho mỗi giá trị của biểu thức và hàm nói trên. III.1 Ứng dụng GotoIf(): Ứng dụng GotoIf() tính toán giá trị của biểu thức, hàm và đưa caller tới một đích có địa chỉ nào đó (chuyển sang extension?, priority?...) dựa trên giá trị nhận được là true hay false. Cú pháp của GotoIf() như sau: GotoIf(expression?destination1:destination2) Cấu trúc lựa chọn này, có lẽ lấy ra từ C nên cũng không quá khó hiểu. Giá trị được cho là false khi nó là một chuỗi trống hay là giá trị 0, ngược lại là giá trị được cho là true (quá giống C). Đích đến của nó có thể là một trong các điểm sau: + Priority trong cùng một extension + Extension và priority trong cùng một context. + Context, extension, priority + Tên của priority trong cùng một extension. Một trong 2 địa chỉ đích có thể được bỏ trống, nhưng không được bỏ trống cả 2. Khi địa chỉ bỏ trống được lựa chọn, thì Asterisk sẽ chuyển sang extension có độ ưu tiên tiếp theo trong chính extention đó. Cách dùng này của Asterisk rất hữu dụng khi bạn muốn phân loại cuộc gọi đến dựa trên số người gọi để xử lý khác nhau (phát một message nào đó chẳng hạn), ví như phân biệt giữa cuộc gọi của bạn gái với người khác? Hay là với các bạn gái khác nhau???
**Dialplan and more
**
III.2 Ứng dụng GotoIfTime(): Nếu như GotoIf() là ứng dụng quyết định dựa trên giá trị của biểu thức nhận được thì GotoIfTime() lại đưa ra quyết định dựa trên ngày,giờ... của hệ thống (để chia ra giờ làm việc, thời gian rảnh, ngày nghỉ … ). Cú pháp của nó như sau: GotoIfTime(times,days_of_week,days_of_month,months?label) Ví dụ: exten => s,1,GotoIfTime(09:00-17:59,mon-fri,*,*?open,s,1) exten => s,1,GotoIfTime(*,*,4,jul?open,s,1) exten => s,2,GotoIfTime(09:00-17:59|mon-fri|*|*?open,s,1) exten => s,3,GotoIfTime(09:00-11:59|sat|*|*?open,s,1) exten => s,4,Goto(closed,s,1)
IV. Voicemail:
Asterisk là một hệ thống voicemail rất linh hoạt với các đặc điểm sau: + Không giới hạn số hộp voicemail, mỗi mailbox đều có folder để dễ dàng quản lý. + Áp dụng lời chào tùy biến, linh động khi bận hoặc các trạng thái khác. + Có khả năng kết hợp 1 điện thoại với nhiều hộp voicemail, nhiều điện thoại trong một voicemail. + Email thông báo có voicemail (nếu enable) + Chuyển tiếp voicemail hay broadcast + Thư mục cá nhân trong 1 tập thể. Cấu hình của voicemail được xác định trong file cấu hình là voicemail.conf. Context voicemail cho phép bạn định nghĩa các tập mailbox khác nhau, tách biệt với nhau (cùng 1 server có thể chưa nhiều host cho voicemail của nhiều công ty, doanh nghiệp). IV.1 Tạo mailbox: [default] mailbox => password,name[,email[,pager_email[,options]]] Trong đó mailbox biểu thị bằng một số, nó thường tương ứng với số của extension mà nó kết hợp, password là một số để truy cập vào voicemail, name là tên của chủ hộp mail, email là địa chỉ email của chủ mailbox (Asterisk có thể dùng hộp mail này để gởi các thông báo cho chủ mailbox, pager_email là địa chỉ emai, hay số cell phonel, số máy nhắn tin của chủ mailbox dùng để gởi thông báo, options là trường chứa các tùy chọn cho mailbox: timezone, các thiết lập chung….gồm: attach, serveremail, tz, saycid, review, operator, callback, dialout, and exitcontext. Đưa các option này vào như sau: option=value pairs, phân cách các option bằng ‘|’. Ví dụ:
**Dialplan and more
**
[default] 101 => 1234,Joe Public, jpublic@somedomain.com,jpublic@pagergateway.net, tz=central|attach=yes 101 =>1234,John Doe,john@asteriskdocs.org,jdoe@pagergateway.tld 102 =>4444,Jane Doe,jane@asteriskdocs.org,jane@pagergateway.tld IV.2 Thêm voicemail vào Dialplan Ứng dụng VoiceMail() chuyển caller vào trong mailbox, để ta có thể để lại lời nhắn. Số mailbox có thể được tiếp đầu bằng kí tự b, hay u. Nếu b được sử dụng, caller sẽ nghe âm thanh báo bận của chủ sở hữu mailbox, nếu u được sử dụng, caller sẽ nghe âm thanh báo nếu không nhấc máy mailbox. Ví dụ: exten => 101,1,Dial(${JOHN},,r) exten => 101,102,VoiceMail(b101@default) Một ví dụ khác exten => 101,1,Dial(${JOHN},10,r) exten => 101,2,VoiceMail(u101@default) exten => 101,102,VoiceMail(b101@default) IV.3 Truy cập vào Voicemail User có thể truy cập vào voicemail để nghe tin nhắn, thay đổi các tùy chọn, ghi âm lời chào bằng ứng dụng VoiceMailMain(). exten => 500,1,VoiceMailMain( ) IV.4 Dial-by-name Khi không nhớ số của người bị gọi, caller có thể dùng dịch vụ này. Dịch vụ này được thực hiện nhờ ứng dụng Directory(). Directory() có 3 thông số chính là: voicemail context ( để đọc tên), dialplan contex (để gọi số), và tùy chọn tên (ki tự f) hay họ. Ví dụ: exten => 8,1,Directory(default,incoming,f) exten => 9,1,Directory(default,incoming) Nếu caller nhấn phím 8, họ sẽ nhận được thư mục theo họ, 9 sẽ nhận theo tên
**Dialplan and more V. Macro:
**
Macro là cấu trúc rất hữu dụng được thiết kế để tránh sự lặp lại trong Dialplan, thay đổi Dialplan. Macro giải quyết được vấn đề xảy ra khi có quá nhiều mailbox, các option gần gần giống nhau, ta phải “copy and paste” rất nhiều, làm thủ công nên không tránh khỏi sai sót trong đó. Thay vào đó, ta có thể định nghĩ một Macro chức các bước thực hiện (giống nhau cho nhiều extension). V.1 Định nghĩa một Macro: Định nghĩ một macro cũng gần giống như định nghĩa một context khác ở chỗ là thêm từ “macro-“ trước tên của macro đó (để phân biệt với extension). [macro-name] Ví dụ: [macro-voicemail] exten => s,1,Dial(${JOHN},10,r) exten => s,2,VoiceMail(u101@default) xxten => s,102,VoiceMail(b101@default) V.2 Sử dụng Macro trong Dialplan: Dùng ứng dụng Macro(), ứng dụng này sẽ gọi một macro cụ thể nào nó. Ví dụ như để gọi một voicemail macro, có thể làm như sau: exten => 101,1,Macro(voicemail) Ứng sụng Macro cũng định nghĩa một số các biến để sử dụng như sau: ${MACRO_CONTEXT} ${MACRO_EXTEN} ${MACRO_PRIORITY} ${ARG n} Ví dụ: [macro-voicemail] exten => s,1,Dial(${JOHN},10,r) exten => s,2,VoiceMail(u${MACRO_EXTEN}@default) exten => s,102,VoiceMail(b${MACRO_EXTEN}@default)
**Dialplan and more
**
V.3 Sử dụng Argument: Bằng cách sử dụng Argument để thay thế các thông số, ta có thể sử dụng nó tại bất cứ đâu mà chỉ cần thay đổi argument tương ứng. Để thấy rõ ràng hơn, ta xét macro sau: [macro-voicemail] exten => s,1,Dial(${ARG1},10,r) exten => s,2,VoiceMail(u${MACRO_EXTEN}@default) exten => s,102,VoiceMail(b${MACRO_EXTEN}@default) Khi đó, để sử dụng chúng, giúp đơn giản hóa quá trình coding, ta chỉ cần làm đơn giản như sau cho tất cả các user exten => 101,1,Macro(voicemail,${JOHN}) exten => 102,1,Macro(voicemail,${JANE}) exten => 103,1,Macro(voicemail,${JACK})
**VI. Các thao tác khác:
**
Ngoài các tính năng trên, Asterisk còn cho phép lưu trữ thông tin trên Database(AstDB), và thao tác trên đó như: lưu thông tin, truy vấn, sửa đổi, xóa… Ví dụ: exten => 456,1,Set(${DB(test/count)=1}) //lưu trữ exten => 456,2,Set(COUNT=${DB(test/count)}) //truy vấn exten => 457,1,DBdel(test/count) //xóa. Một số ứng dụng thông thường khác có thể kể đến như: Zapateller() <phát âm thanh thông báo đặc biệt> , Call packing <kiềm giữ cuộc gọi ….>, Meetme() <chức năng hội thoại>. Chi tiết của các ứng dụng này có thể tìm thấy trong ebook “Asterisk Handbook” kèm theo.
**Giới thiệu Trixbox
**
GIỚI THIỆU TRIXBOX I. Giới thiệu TRIXBOX được phát triển từ nhân của ứng dụng Asterisk, được tổng hợp từ một số thành phần chính được phát triển bởi cộng đồng phát triển nguồn mở Asterisk dưới bản quyền GPL. Trixbox bao gồm những thành phần chính cho việc cấu hình ứng dụng, thống kê tình trạng hoạt động hệ thống, lưu trữ dự phòng, và nhân là hệ điều hành CentOS một phiên bản khác của Redhat, tất cả kết hợp với nhau tạo thành một gói hoàn chỉnh. Khi cài gói này vào máy tính thì có thể sử dụng như một tổng đài PBX. Các thành phần chính trong gói TRIXBOX là - Asterisk PBX: Thành phần chính của hệ thống Trixbox. - CentOS: Một phiên bản Linux khác của Redhat hoàn toàn miển phí sử dụng. Là nhân chính cho Trixbox. - SugarCRM: Hệ thống quan hệ khách hàng CRM. - A2Billing – Là thành phần dành cho việc xây dựng hệ thống điện thoại trả trước hay còn gọi là điện thọai thẻ (Calling Card). - Flash Operator Panel: Bảng điều khiển giám sát tình trạng hoạt động của các máy điện thoại trong hệ thống. - Web MeetMe Control: Quản lý triển khai hệ thống điện thoại hội nghị. - FreePBX: Đây là công cụ với giao diện web dành cho việc cấu hình hệ thống Asterisk. - Hệ thống Lưu trữ dự phòng và thống kê: Là thành phần của TRIXBOX, cung cấp các công cụ cần thiết cho việc bảo trì bảo dưỡng hệ thống. - Hệ thống Apache-Php-Mysql dành cho giải pháp Webserver của hệ thống. II. Cấu hình địa chỉ IP cho card mạng: Thiết lập địa chỉ IP bằng cách gõ lệnh: #netconfig Chọn OK để thiếp lập Nếu trong mạng có hỗ trợ DHCP thì hãy chọn mục này còn nếu không hãy nhập địa chỉ IP tĩnh. • IP: 192.168.0.1 • Netmask: 255.255.255.0 • Gateway: 192.168.93.254 • Primary nameserver: 192.168.1.1 Chọn OK để chấp nhận các thiết lập trên.
**Giới thiệu Trixbox
**
Sau khi hoàn tất hãy làm cho thiết lập có hiệu lực bằng cách reset lại máy tính hoặc dùng lệnh sau: #Service network stop #Service network start Đến đây xem như cài đặt hoàn tất bây giờ để cấu hình được Asterisk chúng ta vào một máy khác và mở Internet Explorer hoặc một trình duyệt web bất kỳ, nhập vào http://192.168.0.1 đã cấu hình ở trên, và tiến hành cấu hình hệ thống với tài khoản username: maint và password: password III. Các lệnh thường dùng: + trixbox-update.sh : lệnh này dùng dể update trixbox sau khi cài đặt. + mc : lệnh này dùng để mở các file hệ thống asterisk. + asterisk -r : lệnh này để vào asterisk1*CLI>, sau đó gõ : reload : 2 lệnh này thực hiện sau khi config. để thoát ra gõ exit. + nmap -sS -O 127.0.0.1 : lệnh này dùng để coi các port đã mở + shutdown -r now : lệnh tắt máy + help-trixbox : lệnh yêu cầu giúp đỡ + genzaptelconf : cấu hình card zaptel tự động + vi : sửa nguồn. Ví dụ vi etc resolv.conf + :q : thoát không save + :wq! : thoát có save
Từ viết tắt
**Từ viết tắt
**
ACD AGI API CGI CRM E1 GSM GNU H323 I/O IAX ID ISDN Intergrated service digital network MGCP Media Gateway Control Protocol PBX PHP SIP T1 TDM VOIP Voice over IP WAN Wide Area Network SCCP Skinny Client Control Protoco Public basis exchange Hypertext Preprocessor Session Initiation Protocol Input/ Output Inter-Asterisk Exchange Automatic Call Distribution Asterisk Gateway Interface Application Program Interface
PSTN Public Switched Telephone Network
This action might not be possible to undo. Are you sure you want to continue?
We've moved you to where you read on your other device.
Get the full title to continue reading from where you left off, or restart the preview.

Set-Cookie: stg=872; Domain=.scribd.com; Path=/; Expires=Tue, 20-Oct-26 16:06:30 GMT

Cache-Control: no-cache

Via: 1.1 varnish

X-Page-Type: docview

X-Served-By: cache, cache-iad2150-IAD

X-Cache: MISS from squid07, MISS

X-Frame-Options: SAMEORIGIN

Vary: Accept-Encoding, User-Agent

Accept-Ranges: bytes


markdown:
# Hontoria del Pinar
Bách khoa toàn thư mở Wikipedia
|Hontoria del Pinar, Tây Ban Nha|
|
|![]()
|
|![]()
**Cờ hiệu** [Quốc gia](/wiki/Danh_s%C3%A1ch_qu%E1%BB%91c_gia) ![ ](http://upload.wikimedia.org/wikipedia/commons/thumb/9/9a/Flag_of_Spain.svg/23px-Flag_of_Spain.svg.png)
[Tây Ban Nha](/wiki/T%C3%A2y_Ban_Nha) [Cộng đồng tự trị](/wiki/V%C3%B9ng_h%C3%A0nh_ch%C3%ADnh_(T%C3%A2y_Ban_Nha)) [Castile và León](/wiki/Castile_v%C3%A0_Le%C3%B3n) [Tỉnh](/wiki/T%E1%BB%89nh_(T%C3%A2y_Ban_Nha)) [Burgos](/wiki/Burgos_(t%E1%BB%89nh)) [Đô thị](/wiki/Danh_s%C3%A1ch_%C4%91%C3%B4_th%E1%BB%8B_t%E1%BA%A1i_Burgos) 2(30 mi 2) [Mật độ](/wiki/M%E1%BA%ADt_%C4%91%E1%BB%99_d%C3%A2n_s%E1%BB%91) 2(250/mi 2) [Múi giờ](/wiki/M%C3%BAi_gi%E1%BB%9D) [CET](/wiki/Gi%E1%BB%9D_chu%E1%BA%A9n_Trung_%C3%82u)( [UTC+1](/wiki/UTC%2B1)) [DST](/wiki/Quy_%C6%B0%E1%BB%9Bc_gi%E1%BB%9D_m%C3%B9a_h%C3%A8)) [CEST](/wiki/Gi%E1%BB%9D_M%C3%B9a_h%C3%A8_Trung_%C3%82u)( [UTC+2](/wiki/UTC%2B2)) **Hontoria del Pinar** là một đô thị trong [tỉnh Burgos](/wiki/Burgos_(t%E1%BB%89nh)), [Castile và León](/wiki/Castile_v%C3%A0_Le%C3%B3n), [Tây Ban Nha](/wiki/T%C3%A2y_Ban_Nha). Theo [điều tra dân số](/wiki/%C4%90i%E1%BB%81u_tra_d%C3%A2n_s%E1%BB%91) [2004](/wiki/2004) ( [INE](/w/index.php?title=Instituto_Nacional_de_Estad%C3%ADstica_(T%C3%A2y_Ban_Nha)&action=edit&redlink=1)), đô thị này có dân số là 787 người.

Set-Cookie: GeoIP=US:VA:Ashburn:39.04:-77.49:v4; Path=/; secure; Domain=.wikipedia.org

X-Content-Type-Options: nosniff

Cache-Control: private, s-maxage=0, max-age=0, must-revalidate

X-Cache-Status: miss

P3P: CP="This is not a P3P policy! See https://vi.wikipedia.org/wiki/%C4%90%E1%BA%B7c_bi%E1%BB%87t:CentralAutoLogin/P3P for more info."

Via: 1.1 varnish, 1.1 varnish

Content-Language: vi

X-UA-Compatible: IE=Edge

X-Cache: cp1065 miss, cp1067 miss

Vary: Accept-Encoding,Cookie,Authorization


markdown:
# Rignano Garganico
Bách khoa toàn thư mở Wikipedia
|
|
Thị trưởng Độ cao |590 m
|Diện tích |88,94 km²
|Dân số | - Tổng số (31/12/2003)
||2258
|| - Mật độ
||25,4/km²
|Múi giờ Tọa độ |Rignanesi
||0882
|Mã bưu điện |71010
|Thánh bảo trợ | - Ngày
|**Rignano Garganico** là một đô thị tại [tỉnh Foggia](/wiki/Foggia_(t%E1%BB%89nh)) trong vùng [Apulia](/wiki/Apulia) miền nam nước [Ý](/wiki/%C3%9D).
Đô thị này giáp
[Apricena](/wiki/Apricena), [Foggia](/wiki/Foggia), [San Marco in Lamis](/wiki/San_Marco_in_Lamis), [San Severo](/wiki/San_Severo) và [San Giovanni Rotondo](/wiki/San_Giovanni_Rotondo).
## Biến động dân số[
[sửa](/w/index.php?title=Rignano_Garganico&veaction=edit&vesection=1) | [sửa mã nguồn](/w/index.php?title=Rignano_Garganico&action=edit§ion=1)] ![](http://upload.wikimedia.org/wikipedia/vi/timeline/4e276bf5c38cbddcee6908f625175baf.png)
## Tham khảo[
[sửa](/w/index.php?title=Rignano_Garganico&veaction=edit&vesection=2) | [sửa mã nguồn](/w/index.php?title=Rignano_Garganico&action=edit§ion=2)]
|Bài viết này
|không được .

X-Cache: cp1068 miss, cp1067 miss