Здравствуйте. Никак не могу победить выход в город в связке * с сабжевым шлюзом. Конфигурация следующая
users.conf
[users](!)
type = friend
context = phones_osnk
transfer = yes
call-limit = 2
qualify=yes
host = dynamic
hassip = yes
hasiax = no
hash323 = no
[304](users)
secret = 23sdsDFF_73
fullname = Абонентский
cid_number = 304
[305](users)
secret = 23sdsDFF_73
fullname = Абонентский
cid_number = 305
[306](users)
secret = 23sdsDFF_73
fullname = Лена
cid_number = 306
[307](users)
secret = 23sdsDFF_73
fullname = (тест. номер)
cid_number = 307
[000195](users)
secret = 23sdsDFF_71
cid_number = 449330
permit = 10.20.0.195
disallow=all
allow=alaw
dtmfmode=rfc2833
extensions.conf
[globals]
[general]
autofallthrough=yes
[default]
[phones_nvkz]
exten => _ZXX,1,NoOp()
exten => _ZXX,n,Dial(SIP/nvkz/${EXTEN},,t)
exten => _ZXX,n,Hangup()
[internal]
exten => 304,1,Dial(SIP/304,,t)
exten => 304,n,Hangup()
exten => 305,1,Dial(SIP/305,,t)
exten => 305,n,Hangup()
exten => 306,1,Dial(SIP/306,,t)
exten => 306,n,Hangup()
exten => 307,1,Dial(SIP/307,,t)
exten => 307,n,Hangup()
[phones_osnk]
include => internal
include => outgoing_call
include => phones_nvkz
include => incoming_call
[incoming_nvkz]
include => internal
[outgoing_call]
;exten => _9[45]XXXX,1,SayDigits(${EXTEN})
exten => _9[45]XXXX,1,Dial(SIP/000195/${EXTEN},30,rtT)
exten => _9[45]XXXX,n,Congestion()
exten => _9[45]XXXX,n,Hangup()
exten => _90[1-3],1,Dial(SIP/000195/${EXTEN},60,rtT)
exten => _90[1-3],n,Congestion()
exten => _90[1-3],n,Hangup()
[incoming_call]
exten => 49330,1,Answer()
exten => 49330,n,Dial(SIP/304)
exten => 49330,n,Hangup()
sip.conf не привожу, здесь, я думаю, он не нужен.
Далее настройки на шлюзе
Если нужно больше данных, скажите, выложу.
Удалось победить эту проблему проанализировав дамп пакетов со шлюза. Во первых я указал в настройках шлюза Pulse Dial Mode Во вторых шлюзу не нравился fullname на русском языке, для исправления этого глюка можно использовать AGI скрипт на перле аля
exten => 305,1,AGI(translit.pl)
exten => 305,n,NoOp()
exten => 305,n,Dial(SIP/osnk/305)
exten => 305,n,Hangup()
но пока я ограничился цифрами в
[307](users)
secret = 23sdsDFF_73
fullname = 307
cid_number = 307
Проблема решена =)
ps
translit.pl
cat /var/lib/asterisk/agi-bin/translit.pl
#!/usr/bin/perl
use Asterisk::AGI;
use Encode;
# use http://search.cpan.org/dist/Lingua-Translit/translit
use Lingua::Translit;
$AGI = new Asterisk::AGI;
my %input = $AGI->ReadParse();
my $callerid = $input{'callerid'};
my $calleridname = $input{'calleridname'};
#Encode::from_to($calleridname, "cp1251", "utf8");
#Encode::from_to($calleridname, "utf8", "cp1251");
my $tr = new Lingua::Translit("GOST 7.79 RUS");
my $calleridname = $tr->translit($calleridname);
$calleridname =~ s/ /_/g;
$AGI->exec('Set', "CALLERID(name)=\"$calleridname\"");
exit(0);
сам играю, сам пою, сам билеты продаю ;))) Между тем в первом посте вопрос обозначен не был.
Задан: 2012-03-14 13:34:50 +0400
Просмотрен: 672 раз
Обновлен: Mar 14 '12
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.