Страница 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 не пройдёт.