ну я написал как сделать так, чтоб были РАЗНЫЕ callerid. а так конечно проще. но человек который наткнется поиском может так не считать. порчитайте faq на этом сайте.
meral ( 2014-12-01 15:03:32 +0400 )редактироватьДобрый день, прошу помочь с задачей: Есть Астериск, пользователь при наборе определённой комбинации попадает на sip trunk в сторону шлюза, и в этом случае его внутренний номер должен менять, а точнее к его внутреннему номер спереди должно добавиться 3 цифры.
Например: Внутренний абонент c номер 170 набирает номер 7XXXXX, звонок отправился на шлюз и на принимающий стороне должен определиться номер YYY170, но при звонке на другой внутренний номер должен оставаться 170.
На FreePBX это сделать можно - в настройках самого Extension можно прописать Outbound CID YYY170, тогда все гладко, при звонке на внутренний номер отображается как 170, при звонке на транк который ведет на шлюз отображается как YYY170, а если использовать транк провайдера с указанным fromuser - то берет значение отсюда.
А вот в Астериске так не получается сделать, пробовал в настройках пользователя прописывать callerid=YYY170 <170> - то он определяется как YYY170 и на внутренних номерах и на шлюзе. пробовал различные комбинации - не вышло. Конфиг: sip.conf
[Шлюз]
type=friend
host=x.x.x.x
qualify=yes
nat=no
disallow=all
allow=alaw
allow=ulaw
allow=g729
dtmfmod=rfc2833
context=ael-in
permit=x.x.x.x
--------------
[170]
type=friend
host=dynamic
context=ael-out
qualify=yes
secret=*
pickupgroup=1
callgroup=1
callerid=730170 <170>
extension.ael
context ael-out {
_7XXXXXX => {
&record(${EXTEN},${UNIQUEID});
Dial(SIP/ШЛЮЗ/${EXTEN:1});
Set(CALLERID(name)=430);
};
Set(CALLERID(name)=430);
тут тоже пробовал менять значение - ноль реакции на любые изменения.
Спасибо за помощь! протупил, что set должен быть выше Dial Правильное решение оказалось проще: в sip.conf нечего прописывать не надо,
а extension.ael:
_7XXXXXX => {
&record(${EXTEN},${UNIQUEID});
Set(CALLERID(num)=YYY${CALLERID(num)});
Dial(SIP/ШЛЮЗ/${EXTEN:1});
};
Как раз перед внутренним номером добавляется нужный "префикс" (YYY) при звонке через этот транк
ну я написал как сделать так, чтоб были РАЗНЫЕ callerid. а так конечно проще. но человек который наткнется поиском может так не считать. порчитайте faq на этом сайте.
meral ( 2014-12-01 15:03:32 +0400 )редактироватьОчевидно вам прийдется сделать как в freepbx
а именно, сначала выставить cid потом звонить на транк
в sip.conf добавляете
setvar: outbound_cid=1234567
в каждую секцию
потом
context ael-out {
_7XXXXXX => {
&record(${EXTEN},${UNIQUEID});
Set(CALLERID(num)=${outbound_cid})
Dial(SIP/ШЛЮЗ/${EXTEN:1});
};
Задан: 2014-11-30 15:48:24 +0400
Просмотрен: 3,202 раз
Обновлен: Dec 01 '14
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
zzuz ( 2014-11-30 16:52:22 +0400 )редактироватьSet(CALLERID(name)=430);
нужно выставлять до Dial . И не name , а num .Set(CALLERID(num)=430);