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

Добавочный номер после звездочки

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

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

Ответить
andrew
Сообщения: 6
Зарегистрирован: 19 май 2013, 08:06

Добавочный номер после звездочки

Сообщение andrew »

Здравствуйте!

Необходимо реализовать звонки из вне на внутренние номера.
Из вне звонящий на внутренний номер набирает:
внешний номер (шлюз) звездочка внутренний номер (например так 123456789*10).

Вопрос как получить внутренний номер после звездочки?
Благодарю за ответы!
Samael28
Сообщения: 1057
Зарегистрирован: 08 янв 2011, 18:32
Откуда: Киев
Контактная информация:

Re: Добавочный номер после звездочки

Сообщение Samael28 »

Очень просто. Функция

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

  -= Info about function 'CUT' =- 

[Synopsis]
Slices and dices strings, based upon a named delimiter.		 

[Description]
Cut out information from a string (<varname>), based upon a named delimit
er.

[Syntax]
CUT(varname,char-delim,range-spec)

[Arguments]
varname
    Variable you want cut
char-delim
    Delimiter, defaults to '-'
range-spec
    Number of the field you want (1-based offset), may also be specified
    as a range (with '-') or group of ranges and fields (with '&')
Большое пожалуйста
Мой профайл на Upwork
andrew
Сообщения: 6
Зарегистрирован: 19 май 2013, 08:06

Re: Добавочный номер после звездочки

Сообщение andrew »

Samael28. Благодарю за ответ.

В экстеншне оказывается номер без звездочки

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

[dongle-incoming]
exten => phonenumber,1,Set(CALLERID(all)=${CALLERID(num):3})
exten => phonenumber,n,Set(phone=${cut(${EXTEN}|*|2)})
exten => phonenumber,n,Dial(SIP/${phone},KTt)

Пробовал такой вариант

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

[dongle-incoming]
exten => phonenumber*X,1,Set(CALLERID(all)=${CALLERID(num):3})
exten => phonenumber*X,n,Set(phone=${CUT(${EXTEN}|*|2)})
exten => phonenumber*X,n,Dial(SIP/${phone},KTt)
Возникает ворнинг sent to invalid extension but no invalid handler

Как получить весь набранный номер (со звездочкой и добавочным номером), который далее будет разделен командой кат?
ded
Сообщения: 15627
Зарегистрирован: 26 авг 2010, 19:00

Re: Добавочный номер после звездочки

Сообщение ded »

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

[dongle-incoming]
exten => 123456789,1,Answer()
exten => 123456789,n,WaitExten(5)
exten => _*XX,1,NoOp(Call to ${EXTEN:1})
exten => _*XX,n,Dial(SIP/${EXTEN:1})
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: Добавочный номер после звездочки

Сообщение virus_net »

andrew писал(а):Пробовал такой вариант
он не верен, как минимум потому что ты пытаешся использовать шаблон, но при этом не делаешь указания что это шаблон
отсутствует символ нижнего подчеркивания перед твоим phonenumber, а именно он указывает на шаблон

так же лично мне не понятно твой phonenumber это ты так типа скрываешь свой номер или у тя действительно так в диалплане написано.
если уж заменяешь что то, то заменяй равнозначно, если это цифры, значит заменяй на цифры
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
andrew
Сообщения: 6
Зарегистрирован: 19 май 2013, 08:06

Re: Добавочный номер после звездочки

Сообщение andrew »

ded, Благодарю за ответ.
virus_net писал(а): так же лично мне не понятно твой phonenumber это ты так типа скрываешь свой номер или у тя действительно так в диалплане написано.
phonenumber так скрываю.
Далее номер для примера +71234567890

Пробовал так

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

[dongle-incoming]
exten => +71234567890,1,Answer()
exten => +71234567890,n,WaitExten(5)
exten => _*XX,1,NoOp(Call to ${EXTEN:1})
exten => _*XX,n,Dial(SIP/${EXTEN:1})
и такой вариант

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

[dongle-incoming]
exten => +71234567890_*XX,1,Set(CALLERID(all)=${CALLERID(num):3})
exten => +71234567890_*XX,n,Set(phone=${cut(${EXTEN}|*|2)})
exten => +71234567890_*XX,n,Dial(SIP/${phone},KTt)
и без +
Возникает ворнинг sent to invalid extension but no invalid handler

Не выходит получить весь набранный номер (со звездочкой и добавочным номером)?

Как временное решение сделал голосовое меню.
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: Добавочный номер после звездочки

Сообщение Vlad1983 »

прочитайте про функцию CUT
в первом аргументе не нужно раскрывать значение переменной, оно само там раскрывается

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

[dongle-incoming]
exten => _71234567890*XX,1,Set(CALLERID(all)=${CALLERID(num):3})
                same => n,Set(phone=${cut(EXTEN,*,2)})
                same => n,Dial(SIP/${phone},KTt)
ЛС: @rostel
virus_net
Сообщения: 2337
Зарегистрирован: 05 июн 2013, 08:12
Откуда: Москва

Re: Добавочный номер после звездочки

Сообщение virus_net »

andrew писал(а):и такой вариант
и ведь опять не верно....
прочти внимательно что я написал:
virus_net писал(а):отсутствует символ нижнего подчеркивания перед твоим phonenumber
Золотое правило:
когда ничего не помогает - прочти инструкцию
Следуй ему и все будет работать.
andrew писал(а):Возникает ворнинг sent to invalid extension but no invalid handler
ессно что он возникает, совпадений в диаплане не найдено, exten i в твоем контексте отсустсвует
мой SIP URI sip:virus_net@asterisk.ru
bitname.ru - Домены .bit (namecoin) .emc .coin .lib .bazar (emercoin)

ENUMER - звони бесплатно и напрямую.
ded
Сообщения: 15627
Зарегистрирован: 26 авг 2010, 19:00

Re: Добавочный номер после звездочки

Сообщение ded »

Пробовал так
и без +
Возникает ворнинг sent to invalid extension but no invalid handler

Не выходит получить весь набранный номер (со звездочкой и добавочным номером)?
Не информативно. Какрй там warning - это пол-дела, а вот прохождение всех шагов диалплана перед ним - в этом весь ответ.
IMHO: невозможно сходу набирать что-то больше, чем сам моб. номер симки типа 71234567890*XX ибо оттуда в Астериск ничего не прилетит большего, чем сам номер 71234567890 или IMEI (и это можно видеть при обработке входящего в консоли Астериск). Поэтому трюк с CUT не пройдёт.
Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH