По какой-то причине последнее время часто подглючивает. Пришлось использовать альтернативный вариант с мегафоном.
mnp.sh:
#!/bin/bash
curl -s -X POST "
moscow.shop.megafon.ru/get_ajax_page.php?action=ge..." |sed -e :a -e 's/<[^>]*>//g;/;//ba' |iconv -c -f cp1251 -t utf8 |sed 's/\"/\n/g' |awk '{if($0 ~ /tele2/) print "Tele2"; if($0 ~ /МТС/) print "MTS"; if($0 ~ /Билайн/) print "Beeline"; if($0 ~ /МегаФон/) print "Megafon"; }'
На всякий случай напишу как использовать (увы не все знают):
./mnp.sh 79111111111
А в диалплане примерно так (соль и перец по вкусу):
...
same => n(L_check_mnp),NoOP(${ARG1} "Определение оператора по базе MNP - скрипт whois.sh")
same => n,Set(operator_${ARG1}=${SHELL(/my_scripts/mnp.sh 7${ARG1:1:10})})
...
same => n,NoOP(Operator is ${operator_${EXTEN}})
same => n(L_choice),GotoIf($[${operator_${EXTEN}} = Mts]?dial_to_mts,${EXTEN},1)
same => n,GotoIf($[${operator_${EXTEN}} = Other]?dial_to_other_channels,${EXTEN},1)
same => n,GotoIf($[Other${operator_${EXTEN}} = Other]?dial_to_other_channels,${EXTEN},1)
same => n,Set(GLOBAL(D_N_for_h1)=${EXTEN})
same => n,Set(GLOBAL(F_N_for_h1)=${CALLERID(num)})
same => n,GotoIf($[${operator_${EXTEN}} = Megafon]?dial_to_megafon,${EXTEN},1)
same => n,HangUp()