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()