GroupWise sang Exchange 2007 Phần 5
lượt xem 9
download
Trong phần 4 của loạt bài này, chúng ta đã cấu hình Calendar Connector để có thể làm việc với Microsoft Connector cho Novell GroupWise. Tiếp đến chúng ta sẽ thiết lập hệ thống của mình nhằm có thể kiểm tra các luồng thông tin giữa Exchange và GroupWise Phần 5 của loạt bài này sẽ giới thiệu về: • • • Các thông tin free/busy được yêu cầu và được chuyển qua giữa GroupWise và Exchange 2003 như thế nào Cách kiểm tra các thông tin đang được chuyển qua có đúng không Cách Exchange 2007 phức tạp hóa các vấn...
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: GroupWise sang Exchange 2007 Phần 5
- GroupWise sang Exchange 2007 Phần 5: Khả năng cộng tác và chuyển đổi Trong phần 4 của loạt bài này, chúng ta đã cấu hình Calendar Connector để có thể làm việc với Microsoft Connector cho Novell GroupWise. Tiếp đến chúng ta sẽ thiết lập hệ thống của mình nhằm có thể kiểm tra các luồng thông tin giữa Exchange và GroupWise Phần 5 của loạt bài này sẽ giới thiệu về: • Các thông tin free/busy được yêu cầu và được chuyển qua giữa GroupWise và Exchange 2003 như thế nào • Cách kiểm tra các thông tin đang được chuyển qua có đúng không • Cách Exchange 2007 phức tạp hóa các vấn đề như thế nào Tuyên bố hỗ trợ của Microsoft Microsoft không hỗ trợ khả năng cộng tác của GroupWise 7 với Exchange Server. Microsoft đã tuyên bố rõ rằng: • Microsoft Exchange Server 5.5, Microsoft Exchange 2000 Server và Microsoft Exchange Server 2003 có hỗ trợ các phiên bản Novell GroupWise 4.1x, 5.0, 5.1, 5.2x, và 5.5x. • Exchange Server 2003 Service Pack 2 hỗ trợ các phiên bản Novell GroupWise 4.1x, 5.0, 5.1, 5.2x, 5.5x, 6.x và 6.5x. • Phiên bản Novell GroupWise 7 không được kiểm thử với các thành phần Exchange được liệt kê trong phần này. Chính vì vậy Novell GroupWise version 7 không được hỗ trợ. • Sẽ không có sự hỗ trợ cho các phiên bản của Novell GroupWise với Connector hoặc Migration Tools từ các phiên bản Microsoft Exchange Server khác. Lưu ý cuối cùng là lưu ý quan trọng nhất. Không cần quan tâm đến sự hỗ trợ về khả năng cộng tác của GroupWise bên trong Exchange 2007 hoặc bất kỳ các phiên bản nào của Exchange sau này. Theo chúng tôi được biết về tuyên bố này là không thể thay đổi và: • Sẽ không có connector của GroupWise cho Exchange 2007. • Exchange 2003 không được hỗ trợ ngoài GroupWise 6.5. Tuyên bố đó có ngụ ý rằng nếu bạn muốn chuyển từ GroupWise sang Exchange Server 2007 thì cần sử dụng Exchange 2003 Server và trong môi trường GroupWise 7 bạn cần cài đặt một GroupWise 6.5 Post Office bổ sung để quản lý GroupWise API. Bản ghi cho phép phân biệt rõ ràng khả năng cộng tác giữa 2003 Service Pack 2 và GroupWise 7 thực sự vẫn làm việc, mặc dù nó không được hỗ trợ một cách chính thức và sử dụng quá trình chuyển đổi không được hỗ trợ để đưa ra các rủi ro có thể dự đoán trong các dự án chuyển đổi.
- Với các nội dung của loạt bài này chúng tôi sẽ sử dụng • Exchange 2003 Service Pack 2 • GroupWise 7 trên Netware 6.5 Ở đây chúng tôi đã không tạo bất kỳ một thay đổi nào đối với cài đặt Exchange 2003 cơ bản. Trước khi đi sâu vào vấn đề, chúng tôi phải chỉ ra một sự điều chỉnh nhỏ. Trong phần hai của loạt bài này chúng tôi đã cấu hình API gateway và External Foreign Domain cả hai với cùng một tên. Chúng tôi đã gọi cả hai là Exchange. Giờ đây, chúng tôi vẫn gọi External Foreign Domain là Exchange vì nó có liên quan với chính sách người nhận của Exchange. Để phân biệt sự khác nhau giữa các đối tượng DNS, chúng tôi đã chọn và gọi Gateway GW2MEX. GroupWise và Exchange 2003 Trong phần 4 của loạt bài này, chúng ta đã cấu hình Calendar Connector để có thể làm việc với Microsoft Connector cho Novell GroupWise. Chúng ta khởi tạo API và tất cả các dịch vụ Microsoft Exchange, ngoài ra cũng đã biết những gì có thể bảo đảm rằng cả API và các dịch vụ này được khởi tạo đúng cách. Tiếp đến chúng ta sẽ thiết lập hệ thống của mình nhằm có thể kiểm tra các luồng thông tin giữa Exchange và GroupWise để xem những gì xảy ra khi thực hiện thao tác tìm kiếm free/busy giữa các hệ thống. Trong phần 4 chúng ta đã tạo etry đăng ký DWORD với tên gọi là Archive và có giá trị bằng 1 trong HKLM\SYSTEM\CurrentControlSet\Services\LME-GWISE\Parameters trên Exchange Server đang chạy các connector. Thao tác này đã tạo một copy lưu trữ tất cả các thông báo luân chuyển giữa GroupWise và Exchange thông qua cấu trúc thư mục \Program Files\Exchsrvr\conndata\gwrouter. Chúng ta cũng đã thực hiện theo các hướng dẫn trong cách ghi các Connectivity Controller Connector của Exchange để tăng mức ghi. Với mục đích của bài này, chúng tôi sẽ thay đổi các mức ghi chuẩn đoán lỗi cho MSExchangeCalCon thành Maximum cho tất cả các hạng mục như thể hiện trong hình 1.
- Hình 1: Thiết lập mức ghi (logging level) cho các đối tượng MSExchangeCalCon Không cần các phần mô phỏng của i phần khắc phục sự cố hiện có sẵn rất nhiều, chúng tôi sẽ cho các bạn thấy được những gì xảy ra khi bạn yêu cầu các thông tin free/busy giữa Exchange và GroupWise. Có hai thư mục trên Exchange server nằm trong \conndata\gwrouter đã được sử dụng sử dụng xử lý các yêu cầu free/busy và các đáp trả. Các thư mục đó là \togwise và \freebusy. Bên trong GroupWise API cũng có hai thư mục được sử dụng đó là wpgate\API\API_IN và wpgate\API\API_OUT Cuối cùng bên trong bản thân GroupWise cũng có các thư mục WPCSIN và WPCSOUT. Luồng thông báo giữa Exchange và GroupWise gửi thông qua tất cả 6 thư mục này, xem thể hiện trong sơ đồ 1 cho yêu cầu và đáp trả free/busy.
- Sơ đồ 1: Sáu thư mục được sử dụng để xử lý các yêu cầu Free/Busy Các yêu cầu Free/Busy từ Exchange sang GroupWise được đặt trong thư mục \togwise, và Router cho Novell GroupWise chuyển các thông báo đó sang thư mục \API_IN nằm bên trong cấu trúc thư mục API. Từ đây, API gateway mới xử lý thông báo và chuyển nó vào\WPSCIN, đây chính là nơi nó được chọn và được xử lý bởi GroupWise MTA. Theo hướng ngược lại, các thông báo từ GroupWise sang Exchange được bắt đầu trong \WPCSOUT, đây chính là nơi chúng được chọn ra bởi API gateway và được chuyển sang \API_OUT và sau đó được truyền tải bởi Router cho Novell GroupWise sang thư mục \freebusy. Đây là một quá trình khá đơn giản. Cả hai yêu cầu và các đáp trả free/busy từ Exchange sang GroupWise đều sử dụng cùng một đường dẫn, trong quá trình ngược lại cũng vậy. Với việc soạn thảo registry lưu trữ mà đã thực hiện trong phần 4, chúng ta có thể giữ một bản ghi tất cả thông báo từ các thư mục \togwise và \freebusy, bên cạnh đó chúng ta sẽ có thể kiểm tra các yêu cầu lẫn các đáp trả. Kiểm tra Outlook Chúng tôi đã tìm ra cách đơn giản nhất để test free/busy từ GroupWise vào Exchange là cách sử dụng Group Schedule. Chúng ta sẽ chạy Outlook 2003 trên Windows XP SP2. Trong Outlook 2003 chúng ta đã tạo một lịch biểu nhóm có tên gọi GroupWise, như thể hiện trong hình 2, và đã bổ sung tất cả người dùng GroupWise như thể hiện trong danh sách địa chỉ toàn cục của Exchange.
- Hình 2: Tên của Group Schedule trong Outlook Khi mở Group Schedule cho GroupWise sẽ xuất hiện những vấn đề sau. Với mỗi người dùng GroupWise trong Group Schedule, Outlook sẽ truy vấn thư mục công Schedule+free/busy để lấy về các thông tin free/busy. Phụ thuộc vào các thuộc tính đã được cấu hình trên tab General của Calendar Connector như thể hiện trong hình 3, Exchange sẽ cung cấp thông tin free/busy trực tiếp cho Outlook nếu nó được lưu trữ và nhỏ hơn 15 phút hoặc nếu thông tin không được trình bày trong thư mục công free/busy hoặc nó đã gửi yêu cầu mất hơn 15 phút kể từ khi bắt đầu với GroupWise.
- Hình 3: Tab General của Calendar Connector thể hiện thời gian lưu trữ Free/Busy tối đa Các yêu cầu free/busy này có thể được quan sát thấy trong thư mục \Program Files\Exchsrvr\conndata\gwrouter\archive\togwise Cho ví dụ, một truy vấn free/busy đơn giản cho Ian West sẽ tạo ra một file có tên gọi EGW4C.api trong thư mục togwise. Nếu chúng ta quan sát API gateway trên máy chủ GroupWise bằng việc ghi chuẩn đoán lỗi được thiết lập là Verbose thì bạn có thể thấy EGW4C.API được xử lý như một thông báo đang được gửi đến như thể hiện trong hình 4. Chúng ta có thể thấy được thư gửi đi tương ứng sau đó 15 phút.
- Hình 4: API đang xử lý yêu cầu Free/Busy Nếu chúng ta chọn tùy chọn Outlook là Refresh free/busy bên trong 15 phút đối với phiên liên lạc gốc này thì sẽ không có thông báo bổ sung được gửi hoặc được nhận giữa hai hệ thống, và các thông tin free/busy đã được trình bày sẽ được lấy từ thư mục công free/busy. Khi API diagnostic Logging được thiết lập là Diag (F10, sau đó F2, F1) thì sẽ có thông tin bổ sung được trình bày trong các file bản ghi lưu trong thư mục wpgate\API\000.PRC. 03-29-08 18:40:35 Processing inbound message - File: EGW4C.API 03-29-08 18:40:35 Msg-ID: AAKEIJEI:2008.3.29.18.41:2008.5.28.19.41:2008.3.29.18.41.37; . 03-29-08 18:40:45 Processing outbound message... . 03-29-08 18:40:45 Orig-Msg-ID= AAKEIJEI:2008.3.29.18.41:2008.5.28.19.41 :2008.3.29.18.41.37; Msg-ID: và Orig-Msg-ID= là tương đương nhau và đều nằm trong file EGW4C.api đã lưu. WPC-API= 1.2; MSG-TYPE= Search; Msg-ID= AAKEIJEI:2008.3.29.18.41:2008.5.28.19.41:2008.3.29.18.41.37; From= WPD= dom1; WPPO= GW2MEX; WPU= EXCHANGE2003-SA; CDBA= dom1.GW2MEX.EXCHANGE2003-SA; ; To= WPD= DOM1; WPPO= PO1;
- WPU= Iain; CDBA= DOM1.PO1.Iain; ; Begin-Time= 29/3/2008 18:41; End-Time= 28/5/2008 19:41; -END- Yêu cầu free/busy có trong file EGW4C.api được lấy từ thư mục \gwrouter\togwise nằm trong Exchange Server, và được phân phối vào thư mục wpgate\API\API_IN trong GroupWise Server. Khi đó API nhận ra kiểu thông báo đó là một tìm kiếm. MSG-TYPE= Search; và phân phối nó đến GroupWise để xử lý GroupWise xử lý thông báo và đáp trả được đặt trong thư mục API_OUT, đây chính là nơi nó được nhặt ra bởi Microsoft Exchange Router cho Novell GroupWise và được chuyển vào thư mục gwrouter\freebusy. Đáp trả cho yêu cầu free/busy giống như những gì bạn thấy dưới đây. WPC-API= 1.2; Header-Char= T50; Msg-Type= SEARCH; Orig-Msg-ID= AAKEIJEI:2008.3.29.18.41:2008.5.28.19.41:2008.3.29.18.41.37; To= CDBA= dom1.GW2MEX.EXCHANGE2003-SA; ; Busy-For= CDBA= DOM1.PO1.Iain; Busy-Report= Start-Time= 29/3/08 0:00; End-Time= 31/3/08 8:00; , . . . Start-Time= 28/5/08 17:00; End-Time= 29/5/08 0:00; ; Send-Options= None; -END- Khoảng thời gian 60 ngày cho thời gian bắt đầu và kết thúc trong file này, đây là thiết lập mặc định cho số lượng ngày đối với các thông tin free/busy theo yêu cầu đến từ các lịch biểu ngoài được thiết lập trên tab General của Calendar Connector thể hiện trong hình 3 và như trích rút bên dưới hình 5.
- Hình 5: Một trích dẫn từ tab General của Calendar connector thể hiện giới hạn về thời hạn free/busy là 60 ngày Như được mô tả chi tiết trong PSS Article ID: 304726 “XFOR: Exchange Calendar Connector Free-and-Busy Searches Display Busy Time from 5:00 P.M. Through 8:00 A.M.” thông tin này đánh dấu người dùng GroupWise bận từ 17:00 tới 08:00 theo ngày và có khi bận cả tuần. Kết quả là các thông tin free/busy đã được hiển thị trong Group Schedule cho người dùng GroupWise sẽ như những gì hiển thị trong hình 6. Hình 6: Thông tin Free/Busy của người dùng GroupWise xem trong Outlook Đây là xác nhận tức thì rằng free/busy từ Outlook/Exchange sang GroupWise đang làm việc. Test trong GroupWise Từ bên trong máy khách GroupWise, hãy chọn New Appt như thể hiện trong hình 7.
- Hình 7: Tạo một hẹn gặp mới trong máy khách GroupWise Sau đó chọn Busy Search như thể hiện trong hình 8. Hình 8: Tạo “busy search” trên máy khách GroupWise Kích Invite to Meeting… như thể hiện trong hình 9. Hình 9: Mời một người dùng khác tới cuộc họp trên máy khách GroupWise Cuối cùng đánh tên của người dùng như thể hiện trong hình 10 và kích OK.
- Hình 10: Nhập vào tên người dùng Exchange để thêm vào cuộc họp Trên GroupWise PO đang chạy API bạn có thể thấy được thông báo gửi đi theo sau đáp trả tương ứng sau 5 giây như thể hiện trong hình 11. Hình 11: API đang xử lý yêu cầu Free/Busy gửi đi Quay trở lại máy khách GroupWise, trạng thái free/busy thay đổi từ Response Pending như thể hiện trong hình 12.
- Hình 12: Yêu cầu Free/Busy đang trong giai đoạn chờ trên máy khách GroupWise Thành Available như thể hiện trong hình 13. Hình 13: Yêu cầu Free/Busy đã thay đổi thành Available trên máy khách GroupWise Đến đây, chúng ta có thể thấy các thông tin được hiển thị trong Individual Schedule Grid như thể hiện trong hình 14. Hình 14: Các thông tin Free/Busy đã hiển thị trong Individual Schedule Grid trên máy khách GroupWise Chúng ta có thể quan sát trong thư mục \freebusy trên máy chủ Exchange để tìm yêu cầu free/busy từ GroupWise, bên cạnh đó chúng ta cũng có thể tìm đáp trả trong thư mục \togwise. Yêu cầu free/busy gửi đi từ GroupWise: WPC-API= 1.2; Header-Char= T50; Msg-Type= SEARCH; From-Text= Matt Dunkin; From= WPD= DOM1; WPPO= PO1; WPU= Matt; FN= Matt; LN= Dunkin; S= Dunkin; G= Matt; ;
- To= WPD= Exch; WPPO= First Administrative Group; WPU= Flavia; WPPONUM= 1; WPUNUM= 1; FN= Flavia; LN= Wright; UD5= Microsoft Exchange Connector for Novell GroupWise; S= Wright; G= Flavia; CDBA= 0001:0001; ; All-To= WPD= Exch; WPPO= First Administrative Group; WPU= Flavia; WPPONUM= 1; WPUNUM= 1; FN= Flavia; LN= Wright; UD5= Microsoft Exchange Connector for Novell GroupWise; S= Wright; G= Flavia; , WPD= DOM1; WPPO= PO1; WPU= Matt; WPPONUM= 2; WPUNUM= 1; FN= Matt; LN= Dunkin; S= Dunkin; G= Matt; ; Msg-Id= 47EFC6FC.B99A.04EB.000; To-Text= Flavia.First Administrative Group.Exch, Matt.PO1.DOM1@demo.local; Subject= BUSY SEARCH: Flavia Wright, Matt Dunkin; Date-Sent= 30/3/08 17:59; Security= Normal; Send-Options= None; Status-Request= Opened; Begin-Time= 31/3/08 0:00; End-Time= 7/4/08 0:00; Msg-Priority= Normal; -END- Và đáp trả tương ứng từ Exchange:
- WPC-API= 1.2; MSG-TYPE= Search; Orig-Msg-ID= 47EFC6FC.B99A.04EB.000; To= WPD= DOM1; WPPO= PO1; WPU= Matt; ; Busy-For= CDBA= 0001:0001; ; Busy-Report= Start-Time= 31/3/2008 9:0; End-Time= 31/3/2008 12:0;, Start-Time= 31/3/2008 13:0; End-Time= 31/3/2008 17:0;, Start-Time= 1/4/2008 14:0; End-Time= 1/4/2008 16:0; ; -END- Có một số thông tin có trong các file đã được chuyển qua giữa Exchange và GroupWise đáng được đề cập đến. Mặc định Exchange yêu cầu 60 ngày free/busy. Begin-Time= 29/3/2008 18:41; End-Time= 28/5/2008 19:41; Ngược lại GroupWise lại chỉ yêu cầu 7 ngày Begin-Time= 31/3/08 0:00; End-Time= 7/4/08 0:00; Cũng lưu ý rằng yêu cầu free/busy từ Exchange được gửi bởi hệ thống kèm theo. WPU= EXCHANGE2003-SA; Đây là một điều khá quan trọng vì hệ thống kèm theo cần đến địa chỉ proxy GWISE nếu không quá trình sẽ không làm việc. Đây chính là lý do tại sao chúng tôi khuyên các bạn trong phần 4 rằng bạn chỉ thay đổi một cách đơn giản Default Recipient Policy trong Exchange. Cuối cùng, nếu bạn đã thực hiện theo các hướng dẫn ghi trong hướng dẫn về cách cho phép ghi Connectivity Controller Connector của Exchange và đã tạo một thư mục \logs trong \conndata, thì các file bản ghi trong thư mục này sẽ cung cấp nhiều thông tin cho bạn để có thể nghiên cứu sâu và có thể trợ giúp trong việc khắc phục sự cố. Chạy trong chế độ Console
- Nếu thực hiện theo tất cả những hướng dẫn trên thì hệ thống của bạn sẽ làm việc. Mặc dù vậy, một phương pháp hữu dụng có thể cho phép bạn có được quan sát sâu hơn về những gì đang xảy ra bên dưới quang cảnh là chạy the calendar connector trong chế độ giao diện điều khiển (console) trên máy chủ Exchange. Vấn đề này được thực hiện bằng cách chạy Calcon.exe từ thư mục \Exchsrvr\bin. Một số thông tin chính cần phải lưu ý được đưa ra dưới đây [00000D70]: The Calendar Connector will process calendar requests made to the "Schedule+ Free Busy Information - first administrative group" system folder on the following servers : EXCHANGE2003 Thông tin này nói cho chúng ta thư mục công free/busy nào mà calendar connector đang mong muốn sử dụng. Chúng ta cần bảo đảm rằng các thông tin free/busy cho nhóm quản trị đầu tiên đều được sao chép thành EXCHANGE2003. [00000D70] (Debug): API_IN Directory is 'C:\Program files\Exchsrvr\conndata\gwrouter\togwise\' [00000D70] (Debug): API_OUT Directory is 'C:\Program Files\Exchsrvr\conndata\gwrouter\freebusy\' Hai dòng này xác nhận sự liên kết thư mục giữa \togwise và \API_IN, giữa \freebusy và \API_OUT như thể hiện trong hình 2. [00000D70]: The Calendar Connector has logged onto the "Schedule+ Free Busy Information - first administrative group" system folder on EXCHANGE2003 to process calendar queries for site first administrative group. [00000D70]: The Calendar Connector has logged onto the "Schedule+ Free Busy Information - first administrative group" system folder on EXCHANGE2003 to submit calendar query responses. Hai dòng này xác nhận Calendar Connector đã được ghi thành công vào thư mục Schedule + Free Busy cho nhóm quản trị đầu tiên, chính vì vậy đệ trình và sử lý các truy vấn về thông tin free/busy. Exchange 2007 Cách thay đổi với Exchange 2007 như thế nào? Hoàn toàn không, chúng tôi đã cài đặt Exchange 2007 vào Exchange 2003 của mình. Đã sử dụng một máy chủ Exchange 2007 multi-role, chạy mailbox, CAS và Hub Transport. Chúng tôi đã chuyển các mailbox của Exchange 2003 bằng tùy chọn Move Mailbox… từ Exchange Management Console.
- Ngay lập tức, cả hai luồng thông báo vẫn hoạt động. Tra cứu Free/busy từ GroupWise sang Exchange cũng làm việc, truy nhiên lúc ban đầu free/busy Exchange sang GroupWise thì không làm việc. Chúng tôi đã sử dụng các lệnh PowerShell dưới đây để bổ sung máy chủ Exchange 2007 vào các thư mục công sao chép. Trong các lệnh bên dưới, tên máy chủ Exchange 2003 là EXCHANGE2003 và cơ sở dữ liệu thư mục công trên máy chủ này là Public Folder Store (EXCHANGE2003) Set-PublicFolder –Identity “\NON_IPM_SUBTREE\SCHEDULE+ FREE BUSY\EX:/o=Company/ou=First Administrative Group” –Replicas “EXCHANEG2003\Public Folder Store (EXCHANGE2003)” Set-PublicFolder –Identity “\NON_IPM_SUBTREE\SCHEDULE+ FREE BUSY\EX:/o=Company/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)” –Replicas “EXCHANEG2003\Public Folder Store (EXCHANGE2003)" Tra cứu Free/busy giữa GroupWise 7 và Exchange 2007 thông qua Exchange 2003 Calendar Connector lúc này không làm việc theo cả hai hướng! Vậy chúng ta phải làm gì? Mỗi yêu cầu tra cứu free/busy được gửi một cách riêng biệt. Ví dụ có một Group Schedule với 14 mailbox GroupWise. Khi thực hiện refresh các thông tin free/busy thì 14 mailbox sẽ tạo ra 28 thông báo giữa Exchange và GroupWise. Phụ thuộc vào các thiết lập về thời gian của API Gateway một cách rõ ràng Idle Sleep Duration, như được thể hiện trong hình 15, (bạn có thể vào bằng cách kích chuột phải vào đối tượng GW2MEX Gateway trong NetWare Administrator và chọn Details…) một trong các cuộc đàm thoại free/busy này có thể lấy bất kỳ từ 10 đến 15s. Với 14 mailbox, khi refresh thông tin free/busy sẽ mất đến một khoảng thời gian lên đến 2 phút. Hình 15: Thiết lập Idle Sleep Duration của API Gateway Kết luận
- Trong phần 5 này chúng tôi đã minh chứng cho các bạn rằng hoàn toàn có thể lấy được các thông tin Free/busy khi truyền tải giữa GroupWise và Exchange, chúng tôi đề nghị các bạn chỉ sử dụng hoặc dựa vào nó một chút nếu có thể. Đây là một quá trình không có khả năng mở rộng và công bằng mà nói cũng cũng có thể xảy ra những vấn đề dừng đột ngột, hay những thứ gì đó có thể yêu cầu khởi động lại các connector để sửa chữa. Tuy nhiên các các nhóm cộng tác đều có khả năng chia sẻ thông tin free/busy tại cùng thời điểm và giữ được toàn bộ khả năng công tác một cách có thể!
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn