asterisk 11 버전에서 특정번호를 수신거부하는 코드입니다.
수신거부하는 번호를 DB테이블에 저장하고 관리합니다.
테이블스키마
CREATE TABLE `ban` ( `phone` VARCHAR(32) NOT NULL COMMENT '전화번호', `reg_date` DATETIME NOT NULL COMMENT '등록일', INDEX `phone` (`phone`) ) COMMENT='수신거부 전화번호' COLLATE='utf8_general_ci' ENGINE=MyISAM;
extensions.conf
[inbound]
exten => 07010002000,1,Answer
exten => 07010002000,n,NoOp("caller id: ${CALLERID(number)}")
exten => 07010002000,n,MYSQL(Connect connid 호스트 유저 비밀번호 데이터베이스명)
exten => 07010002000,n,MYSQL(Query resultid ${connid} SELECT COUNT(*) AS cnt_blockcaller FROM ban WHERE phone='${CALLERID(number)}')
exten => 07010002000,n,MYSQL(Fetch fetchid ${resultid} cnt_blockcaller)
exten => 07010002000,n,MYSQL(Clear ${resultid})
exten => 07010002000,n,MYSQL(Disconnect ${connid});
exten => 07010002000,n,GotoIf($["${cnt_blockcaller}" != "0"]?inbound,07010002000,blockcaller)
.
.
.
exten => 07010002000,n(blockcaller),NoOp("blockcaller!!!")
exten => 07010002000,n,Hangup()