Comments 9
Зачем по сто раз в каждой статье писать как установить Астериск? Этой информации в интернете с головой, в том числе и на официальном wiki.
По DIALPLAN зачет, только макрос — это громозкое решение, которое вскоре будет depricated.
Если на то уж пошло то можно использовать GoSub, а еще лучше Lua. Там вообще все правильно можно сделать, без вот этих костылей с макросами. И работать это будет быстрее
По DIALPLAN зачет, только макрос — это громозкое решение, которое вскоре будет depricated.
Если на то уж пошло то можно использовать GoSub, а еще лучше Lua. Там вообще все правильно можно сделать, без вот этих костылей с макросами. И работать это будет быстрее
+2
Ну а почему бы и не писать? Те, кто знают что к чему, просто пропустят эту информацию. Те, кто ищет описание решения от и до, скажут спасибо за развернутую информацию.
Касательно макросов вынужден согласиться, но решение легко адаптирвать под GoSub.
Касательно макросов вынужден согласиться, но решение легко адаптирвать под GoSub.
+2
Более того, рекомендация по установке дана во вреднючем стиле:
Уже есть и пост по этой проблеме и мой комментарий с предложением вместо хотя бы указывать make собирать параллельно:
А костыль бережно переносится из руководство в руководство и конца этому не видно.
make && make install
Уже есть и пост по этой проблеме и мой комментарий с предложением вместо хотя бы указывать make собирать параллельно:
make -j [количество процессов]
А костыль бережно переносится из руководство в руководство и конца этому не видно.
+3
Для целей определения мобильного оператора корректнее использовать базу перенесенных номеров MNP.
При исходящем звонке запрашивать и кэшировать оператора и даже регион, можно с сайта мегафона moscow.shop.megafon.ru/get_ajax_page.php?action=getMsisdnInfo&msisdn=79000000000 или с теле2 mnp.tele2.ru/gateway.php?9000000000
Если нужно список кодов мобильных операторов www.rossvyaz.ru/docs/MNC_25.11.2013-1.rtf
и список кодов регионов (он не совпадает с автомобильными) www.rossvyaz.ru/docs/Identifikator_regiona.doc
У меня как-то так получается /var/lib/asterisk/agi-bin/mnp:
и в extensions.ael
для простоты результаты кэшируем в бд самого астериска: первые 2 цифры — регион, вторые 2 цифры — код оператора
(ессно если нужно только определить регион абонента, то база rossvyaz работает намного лучше, надежнее, быстрее и тд)
При исходящем звонке запрашивать и кэшировать оператора и даже регион, можно с сайта мегафона moscow.shop.megafon.ru/get_ajax_page.php?action=getMsisdnInfo&msisdn=79000000000 или с теле2 mnp.tele2.ru/gateway.php?9000000000
Если нужно список кодов мобильных операторов www.rossvyaz.ru/docs/MNC_25.11.2013-1.rtf
и список кодов регионов (он не совпадает с автомобильными) www.rossvyaz.ru/docs/Identifikator_regiona.doc
У меня как-то так получается /var/lib/asterisk/agi-bin/mnp:
#!/bin/bash
declare -a array
while read -e ARG && [ "$ARG" ] ; do
array=(` echo $ARG | sed -e 's/://'`)
export ${array[0]}=${array[1]}
done
checkresults() {
while read line
do
case ${line:0:4} in
"200 " ) echo $line >&2
return;;
"510 " ) echo $line >&2
return;;
"520 " ) echo $line >&2
return;;
* ) echo $line >&2;; #keep on reading those Invlid command
#command syntax until "520 End ..."
esac
done
}
echo "DATABASE GET MNP $agi_extension"
read line
if [[ ${line:0:14} != "200 result=1 (" ]]; then
MNP=$(/usr/bin/wget -q "http://mnp.tele2.ru/gateway.php?${agi_extension:1}" -O - | /usr/local/bin/jq -r '.response.geocode.code+.response.mnc.code')
[[ -n $MNP ]] && echo DATABASE PUT MNP $agi_extension \"$MNP\" && checkresults
fi
exit 0;
и в extensions.ael
if (${DB_EXISTS(MNP/${EXTEN})} = 0)
{
AGI(mnp);
}
if ("${DB(MNP/${EXTEN}):2}" = "02" && ${DB(balance/multifon)} > 100)
{
if (${GROUP_COUNT(megafon)} < 5) {
GROUP()=megafon;
Dial(SIP/megafon/${EXTEN},90);
if (${DIALSTATUS} = BUSY) Busy();
};
}
для простоты результаты кэшируем в бд самого астериска: первые 2 цифры — регион, вторые 2 цифры — код оператора
(ессно если нужно только определить регион абонента, то база rossvyaz работает намного лучше, надежнее, быстрее и тд)
+2
С учетом возможности перехода от оператора к оператору с сохранением номера в обозримом будущем может стать не актуальным.
+1
На основе той же базы Россвязи есть модуль под node.js numcap для поиска региона и оператора по номеру телефона
github.com/antirek/numcap
github.com/antirek/numcap
0
Sign up to leave a comment.
Как легко и просто научить ваш Asterisk звонить через нужного оператора