Для начала скачиваем базу кодов:
wget -N 
www.rossvyaz.ru/docs/articles/DEF-9x.html
wget -N 
www.rossvyaz.ru/docs/articles/ABC-3x.html
wget -N 
www.rossvyaz.ru/docs/articles/ABC-4x.html
wget -N 
www.rossvyaz.ru/docs/articles/ABC-8x.html Создаем таблицу:
CREATE TABLE `abcdef` (
  `def` smallint(6) NOT NULL,
  `start` int(11) NOT NULL,
  `finish` int(11) NOT NULL,
  `count` int(11) NOT NULL,
  `operator` varchar(64) NOT NULL DEFAULT '',
  `region` varchar(128) NOT NULL DEFAULT '',
  `region_last` varchar(64) DEFAULT NULL,
  `region_first` varchar(64) DEFAULT NULL,
  KEY `a_b` (`def`,`start`),
  KEY `a` (`def`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Создаем хранимку:
CREATE DEFINER=`root`@`localhost` FUNCTION `abcdef_region`(n char(10)) RETURNS varchar(64) CHARSET utf8
BEGIN
	DECLARE l VARCHAR(3);
	DECLARE r VARCHAR(7);
	DECLARE tmp VARCHAR(64);
    DECLARE tmp2 VARCHAR(64);
	DECLARE i INT;
	SET l=LEFT(n, 3);
	SET r=RIGHT(n, 7);
	SELECT region_last INTO tmp FROM abcdef where `def`=l and `start`<=r and `finish`>=r;
	IF (length(TRIM(tmp))=0 OR tmp like NULL) THEN
		SET tmp='---';
	END IF;
	RETURN tmp;
END
Парсим скачанные файлы:КодПрописываем хп для использования в диалплане через odbc (мой случай):
func_odbc.conf:
[CALLREGION]
dsn=MySQL_asterisk_utf8
readsql=SELECT abcdef_region('${SQL_ESC(${ARG1})}');
Использование:
NoOp(${ODBC_CALLREGION(${CALLERID(num)})});