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

Как исключить из шаблона спецсимволы

Добавлено: 20 дек 2011, 13:49
kudesnik
Здравствуйте Гуру. Есть шаблон типа

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

 exten => _X.,1,(Чтоугодно) 
Вопрос состоит в следующем. При данном шаблоне юзер может набрать в конце (или середине) экстеншена например решетку(#) или звездочку. Как исключить такой вариант, при том что должны разрешены быть только цифры, но длинна цифр не должна ограничиваться.
З.Ы.Гугл не помог, на форуме подобной темы не нашел. За ранее спасибо.

Re: Как исключить из шаблона спецсимволы

Добавлено: 20 дек 2011, 13:53
ded

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

pbx*CLI> core show application Read                                                            
pbx*CLI>                                                                                       
  -= Info about application 'Read' =-                                                          
                                                                                               
[Synopsis]                                                                                     
Read a variable                                                                                
                                                                                               
[Description]                                                                                  
  Read(variable[,filename[&filename2...]][,maxdigits][,option][,attempts][,timeout])           
                                                                                               
Reads a #-terminated string of digits a certain number of times from the                       
user in to the given variable.                                                                 
  filename   -- file(s) to play before reading digits or tone with option i                    
  maxdigits  -- maximum acceptable number of digits. Stops reading after                       
                maxdigits have been entered (without requiring the user to                     
                press the '#' key).                                                            
                Defaults to 0 - no limit - wait for the user press the '#' key.                
                Any value below 0 means the same. Max accepted value is 255.                   
  option     -- options are 's' , 'i', 'n'                                                     
                's' to return immediately if the line is not up,                               
                'i' to play  filename as an indication tone from your indications.conf         
                'n' to read digits even if the line is not up.                                 
  attempts   -- if greater than 1, that many attempts will be made in the                      
                event no data is entered.                                                      
  timeout    -- The number of seconds to wait for a digit response. If greater                 
                than 0, that value will override the default timeout. Can be floating point.   
This application sets the following channel variable upon completion:                          
    READSTATUS - This is the status of the read operation.                                     
                 Possible values are:                                                          
                 OK | ERROR | HANGUP | INTERRUPTED | SKIPPED | TIMEOUT     
в сочетании с регулярными выражениями Regexp и/или sed

Re: Как исключить из шаблона спецсимволы

Добавлено: 20 дек 2011, 14:03
Vlad1983
CLI> core show function REPLACE

Re: Как исключить из шаблона спецсимволы

Добавлено: 20 дек 2011, 14:06
kudesnik
2 DED ///Изначально был опробован данный метод, но он не подходит так как не нужно чтобы юзер нажимал #. (read имеет такую возможность но при этом тогда необходимо указать длинну, что не представляется возможным)

Re: Как исключить из шаблона спецсимволы

Добавлено: 20 дек 2011, 14:11
kudesnik
Vlad1983 писал(а):CLI> core show function REPLACE
На сколько я знаю это функция замены одного на другое. Мне же нужно чтобы при наборе спецсимвола в экстеншене прозвучало "неправильный набор повторите попытку используя только цифры"

Re: Как исключить из шаблона спецсимволы

Добавлено: 20 дек 2011, 14:19
Vlad1983
ХЗ зачем пользаку это слышать, но этим можно
CLI> core show function REGEX

Read умеет по таймауту отправлять и без #

Re: Как исключить из шаблона спецсимволы

Добавлено: 20 дек 2011, 14:24
jugatsu
core show function FILTER

exten => _X.,n,Dial(SIP/${FILTER(0-9,${EXTEN})})

Re: Как исключить из шаблона спецсимволы

Добавлено: 20 дек 2011, 14:55
kudesnik
Всем спасибо это подходит. Буду пробовать.