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

Модификация номера

Проблемы Asterisk без вэб-оболочек и их решения

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

Huawei05
Сообщения: 10
Зарегистрирован: 06 июн 2017, 11:16

Модификация номера

Сообщение Huawei05 »

Здравствуйте!Помогите пожалуйста разобраться с моей проблемой.
Со станции софт-свитча настроена переадресация А номера на Б номер. Дозвон на Б номер осуществляется через астериск
Так вот проблема в том, что когда звонит номер С на номер А , то астериск к номеру С добавляет префикс из правила exten прописаного в конфиге, и вызов не осуществляется


-- Executing [119288780430@from-trunk:1] Set("SIP/softx-000056ee", "CALLERID(num)=787229285888505") in new stack
-- Executing [119288780430@from-trunk:2] NoOp("SIP/softx-000056ee", "callerid is '787229285888505'") in new stack
-- Executing [119288780430@from-trunk:3] Dial("SIP/softx-000056ee", "SIP/mtt/79288780430") in new stack

Эта проблема встречается только при переадресации. Когда вместо положеного городского номера приходит номер мобильный:
В этом случае вызов успешный:

-- Executing [119282776543@from-trunk:1] Set("SIP/softx-000056f0", "CALLERID(num)=78722460000") in new stack
-- Executing [119282776543@from-trunk:2] NoOp("SIP/softx-000056f0", "callerid is '78722460000'") in new stack
-- Executing [119282776543@from-trunk:3] Dial("SIP/softx-000056f0", "SIP/mtt/79282776543") in new stack
Возможно ли создать правило префикс анализа? Например если С номер короткий(меньше 6 символов то добавлять к нему 78722, если длинный то не добавлять ничего. Или же добавлять префикс только если С номер начинается на 46

Вот правила прописаные в extensions_custom.conf

exten => _11X.,1,Set(CALLERID(num)=78722${CALLERID(num):1})
exten => _11X.,n,Noop(callerid is '${CALLERID(num)}')
exten => _11X.,n,Dial(SIP/mtt/7${EXTEN:2})
exten => _11X.,n,Hangup
fecyt
Сообщения: 148
Зарегистрирован: 17 янв 2017, 17:51

Re: Модификация номера

Сообщение fecyt »

Возможно.
Repz
Сообщения: 169
Зарегистрирован: 04 мар 2015, 11:35

Re: Модификация номера

Сообщение Repz »

shamil
Сообщения: 14
Зарегистрирован: 18 дек 2016, 04:58

Re: Модификация номера

Сообщение shamil »

Привет 05 регион

я бы сделал так

exten => _11X.,1,Goto(manage-prefix,${CALLERID(num)},1)

[manage-prefix]
exten => _XXXXXX,1,Goto(78722${EXTEN},1)) ; Для коротких номеров

exten => _[78]XXXXXXXXXX,1,Dial(SIP/mtt/7${EXTEN:1}) ; Для национальных номеров
same => n,Hangup
Huawei05
Сообщения: 10
Зарегистрирован: 06 июн 2017, 11:16

Re: Модификация номера

Сообщение Huawei05 »

Спасибо за помощь.Поставил такой конфиг, но не сработало.


Вот логи

-- Executing [119285891430@from-trunk:1] Goto("SIP/softx-000057c9", "manage-prefix,7465044,1") in new stack
-- Goto (manage-prefix,7465044,1)
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Executing [119288780430@from-trunk:1] Goto("SIP/softx-000057ca", "manage-prefix,79285888505,1") in new stack
-- Goto (manage-prefix,79285888505,1)
-- Executing [79285888505@manage-prefix:1] Dial("SIP/softx-000057ca", "SIP/mtt/79285888505") in new stack
Huawei05
Сообщения: 10
Зарегистрирован: 06 июн 2017, 11:16

Re: Модификация номера

Сообщение Huawei05 »

Может быть у меня не подходит версия под этот конфиг?
fecyt
Сообщения: 148
Зарегистрирован: 17 янв 2017, 17:51

Re: Модификация номера

Сообщение fecyt »

Вы хотите присваивать префикс всем А-номерам? Даже если они мобильные? Это некорректно, либо присваивайте конкретный А-номер, либо модифицируйте его:
Что то вроде, если CALLERID(num):0:1=9?def:fix, в ветке def меняете callerid как хотите, в fix, что то типа callerid=78722${exten}:5.
Но нужно понимать, что номер звонящего может быть и другой области, тогда ваш префикс 78722 не подходит, определитесь для себя, что Вам нужно сделать.
shamil
Сообщения: 14
Зарегистрирован: 18 дек 2016, 04:58

Re: Модификация номера

Сообщение shamil »

С коротким номером 7465044 не сработало потому что там 7 знаков, а не 6. Почему?
Huawei05
Сообщения: 10
Зарегистрирован: 06 июн 2017, 11:16

Re: Модификация номера

Сообщение Huawei05 »

fecyt писал(а):Вы хотите присваивать префикс всем А-номерам? Даже если они мобильные? Это некорректно, либо присваивайте конкретный А-номер, либо модифицируйте его:
Что то вроде, если CALLERID(num):0:1=9?def:fix, в ветке def меняете callerid как хотите, в fix, что то типа callerid=78722${exten}:5.
Но нужно понимать, что номер звонящего может быть и другой области, тогда ваш префикс 78722 не подходит, определитесь для себя, что Вам нужно сделать.
Извиняюсь за неточность.Номер звонящего будет только с области 78722(так как номера только из этого пула имеют доступ к астериск),
либо А номером может идти мобильный номер через Redirect, это в случае если идет переадресация при которой дозвон до Б номера осуществляется через Астериск.
Вы хотите присваивать префикс всем А-номерам?
Как раз таки такое сейчас и происходит и это я и хотел бы исправить.Сейчас когда включена переадресация и в качестве А номера идет мобильный то к нему тоже добавляется 78722. Возможно ли создать правило которое анализирует А номер и в зависимости от его длины или начальных цифр добавляет или не добавляет 78722?То что вы написали для этого применяется?
fecyt
Сообщения: 148
Зарегистрирован: 17 янв 2017, 17:51

Re: Модификация номера

Сообщение fecyt »

Как и писал выше, можно или через GotoIf или через If все это дело сделать.
http://asterisk.ru/knowledgebase/Asterisk+cmd+GotoIf
http://asterisk.ru/knowledgebase/Asterisk+func+if
http://asterisk.ru/knowledgebase/Asterisk+variables
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH