VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

callerid

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Arty
Сообщения: 38
Зарегистрирован: 05 окт 2012, 12:18

callerid

Сообщение Arty »

здравствуйте еще раз,
ситуация: есть пул внешних номеров(выдано оператором). задача была, чтоб при вызове извне на определённые номера(из пула) попадал на определенных сотрудников(на их внутренние номера)
Например: пришел вызов на 555-55-55 - отправляю его на 101, пришел вызов на 555-55-56 - отправляю его на 102.
Теперь задача такая, чтоб при исходящих вызовах на городские/мобильные от номера 101 его callerid был 555-55-55. тоже самое и в случае с номером 102. его callerid должен быть 555-55-56.
Пробовал так
exten => _9XXXXXXX/101,1,Set(CALLERID(num)=5555555)
same => n,Dial(SIP/МОЙ_ОПЕРАТОР/${EXTEN:1})
такой вариант с внутренними номерами у меня не сработал.
Можно конечно создать контексты с нужными callerid для исходящих, пользователей разбить на группы и присвоить каждому свое. тоже вариант. Но может уже кто-то сталкивался с таким вопросом используя астериск? Какие еще могут быть варианты для достижения цели?
Буду рад любым советам. Заранее спасибо.
ded
Сообщения: 15622
Зарегистрирован: 26 авг 2010, 19:00

Re: callerid

Сообщение ded »

А что значит не сработал? Где это было видно?
Добавьте перед шагом Dial ещё и проверку
same => n,NoOp(Caller ID is ${CALLERID(all)})
same => n,Dial(SIP/МОЙ_ОПЕРАТОР/${EXTEN:1})
и посмотрите вывод в CLI.
Arty
Сообщения: 38
Зарегистрирован: 05 окт 2012, 12:18

Re: callerid

Сообщение Arty »

не сработал - в консоле я получил ошибку (в данном случае была учетная запись 577 вместо 101)
Channel 'SIP/577-0000099d' sent into invalid extension '96885566' in context 'fortest', but no invalid handler
не сработала маска. но стоит только убрать /577 после _9ХХХХХХХ как номер набирается и происходит вызов.
Arty
Сообщения: 38
Зарегистрирован: 05 окт 2012, 12:18

Re: callerid

Сообщение Arty »

вот что показала проверка:
NoOp("SIP/577-000009a7", "Caller ID is "577" <577>") in new stack

я в маску уже и так "577" и так <577> и так "577" <577> вписывал. не срабатывает.
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: callerid

Сообщение Vlad1983 »

${CALLERID(all)} может перекрываться fromuser в пире МОЙ_ОПЕРАТОР
ЛС: @rostel
Arty
Сообщения: 38
Зарегистрирован: 05 окт 2012, 12:18

Re: callerid

Сообщение Arty »

вот учетная запись оператора
[МОЙ_ОПЕРАТОР]
type=peer
host=ХХХ.XXX.XXX.XXX
context=incoming_calls_from_ОПЕРАТОР
nat=yes
dtmfmode=rfc2833
canreinvite=no
insecure=invite
disallow=all
allow=ulaw
allow=alaw
allow=gsm
да и как-бы до оператора еще не доходит дело. надо бы еще попасть под маску, пройти проверку по callerid
ded
Сообщения: 15622
Зарегистрирован: 26 авг 2010, 19:00

Re: callerid

Сообщение ded »

Синтаксис может быть чуть иной
exten => _9XXXXXXX/101,1,Set(CALLERID(number)=5555555)
Arty
Сообщения: 38
Зарегистрирован: 05 окт 2012, 12:18

Re: callerid

Сообщение Arty »

ded
и так тоже не хочет.
Дед, в настройках учетной записи в sip.conf один и параметров есть callerid, где указывается имя в "" и номер в <>. Я правда уже пробовал и callerid=101 и callerid="101" и callerid=<101> - не помогло. Может и в этом поле есть какой-то недокументированный синтаксис?
[username]
callerid="User name" <101>
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: callerid

Сообщение Vlad1983 »

Код: Выделить всё

exten => _9XXXXXXX,1,ExecIf($["${CALLERID(num)}"="101"]?Set(CALLERID(num)=5555555))
   same => n,ExecIf($["${CALLERID(num)}"="121"]?Set(CALLERID(num)=2222222))
...
   same => n,Dial(SIP/МОЙ_ОПЕРАТОР/${EXTEN:1})
ЛС: @rostel
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: callerid

Сообщение Vlad1983 »

можно по другому:
в описание пира

Код: Выделить всё

[101]
...
setvar=OUTCID=5555555
в диалплане две строки для всех

Код: Выделить всё

exten => _9XXXXXXX,1,ExecIf($["foo${OUTCID}" != "foo"]?Set(CALLERID(num)=${OUTCID}))
   same => n,Dial(SIP/МОЙ_ОПЕРАТОР/${EXTEN:1})
ЛС: @rostel
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH