Страница 1 из 1

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

Добавлено: 17 окт 2013, 12:22
andrew
Здравствуйте!

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

Вопрос как получить внутренний номер после звездочки?
Благодарю за ответы!

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

Добавлено: 17 окт 2013, 13:02
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 '&')
Большое пожалуйста

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

Добавлено: 19 окт 2013, 12:55
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

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

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

Добавлено: 20 окт 2013, 00:42
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})

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

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

так же лично мне не понятно твой phonenumber это ты так типа скрываешь свой номер или у тя действительно так в диалплане написано.
если уж заменяешь что то, то заменяй равнозначно, если это цифры, значит заменяй на цифры

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

Добавлено: 24 окт 2013, 16:01
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

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

Как временное решение сделал голосовое меню.

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

Добавлено: 24 окт 2013, 17:54
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)

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

Добавлено: 25 окт 2013, 08:32
virus_net
andrew писал(а):и такой вариант
и ведь опять не верно....
прочти внимательно что я написал:
virus_net писал(а):отсутствует символ нижнего подчеркивания перед твоим phonenumber
Золотое правило:
когда ничего не помогает - прочти инструкцию
Следуй ему и все будет работать.
andrew писал(а):Возникает ворнинг sent to invalid extension but no invalid handler
ессно что он возникает, совпадений в диаплане не найдено, exten i в твоем контексте отсустсвует

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

Добавлено: 26 окт 2013, 04:26
ded
Пробовал так
и без +
Возникает ворнинг sent to invalid extension but no invalid handler

Не выходит получить весь набранный номер (со звездочкой и добавочным номером)?
Не информативно. Какрй там warning - это пол-дела, а вот прохождение всех шагов диалплана перед ним - в этом весь ответ.
IMHO: невозможно сходу набирать что-то больше, чем сам моб. номер симки типа 71234567890*XX ибо оттуда в Астериск ничего не прилетит большего, чем сам номер 71234567890 или IMEI (и это можно видеть при обработке входящего в консоли Астериск). Поэтому трюк с CUT не пройдёт.