Asterisk cung cấp một cơ chế mạnh mẽ cho việc lưu trữ các giá trị, gọi là asterisk database (AstDB). AstDB cung ứng một cách đơn giản cho việc lưu trữ dữ liệu dùng trong kế hoạch quay số.
Cơ sở dữ liệu Asterisk lưu trữ dữ liệu trong nhóm (grouping) gọi là family, giá trị định danh được xác định bằng key, với mỗi family chỉ được dùng một key duy nhất DB(family/key). Ví dụ ta có một family là test, với key là count. Việc lưu trữ dữ liệu phải liên kết với family là test.
Để lưu trữ dữ liệu, ta dùng ứng dụng Set( ) gán key là count trong family là
test giá trị là 1:
exten => 456,1,Set(${DB(test/count)=1})
Nếu một key là count đã tồn tại trong test family, thì giá trị cũ sẽ bị ghi đè bởi giá trị mới.
Truy vấn dữ liệu từ AstDB:
Để truy vấn giá trị từ cơ sở dữ liệu Asterisk và gán nó vào một biến. Ta lại sử dụng ứng dụng Set( ) và gán nó vào một biến COUNT:
exten => 456,1,Set(DB(test/count)=1)
SVTH: NGUYỂN THANH HIẾU GVHD: Ths. PHẠM THỊ XUÂN PHƯƠNG NGUYỄN THANH PHƯỚC - 82 -
exten => 456,3,SayNumber(${COUNT})
Có thể kiểm tra lại giá trị của key bằng cách dùng dòng lệnh trong asterisk:
#database get family key
Để xem lại tất cả nội dung của AstDB, ta dùng lệnh:
#database show
Xóa dữ liệu từ AstDB: có 2 cách để xóa dữ liệu từ cơ sở dữ liệu của asterisk. Để xóa key, ta dùng ứng dụng Dbdel( ). Nó sẽ lấy family và key như là đối số:
exten => 457,1,DBdel(test/count)
Hoặc có thể xóa toàn bộ key và family thông qua ứng dụng DBdeltree( ). Ứng dụng này chỉ cần một đối số đơn: tên của family. Ví dụ dưới ta xóa toàn bộ family test:
exten => 457,1,DBdeltree(test)
Để xóa các key hoặc cả family bằng dòng lệnh, ta dùng:
#database del key #database deltree family