Вход | Регистрация
Вы здесь: Главная / Форум / Главный форум по Asterisk / TrixBox, Elastix, FreePbx / изменения номера по условию

изменения номера по условию

Avatara of romariosar
Откуда: Саратов
Сообщений: 64

изменения номера по условию

Есть переменная QAZ в которой находится номер телефона звонющего в виде 7ХХХХХХХХХХ
нужно если первые 5 цифр в номере = 78452 то номер отрубается
exten => 1,n,Set(QAZ1=${QAZ:5:6}
если начинается вот так 79ХХХХХХХХХ
exten => 1,n,Set(QAZ1=${QAZ:1:10}

я пока только в голове следующее
exten => s,1,GotoIf($["${QAZ:0:4}" = "78452"]?1,1)
exten => 1,1,Set(QAZ1=${QAZ:5:6}
exten => s,1,GotoIf($["${QAZ:0:2}" = "79"]?2,1)
exten => 2,1,Set(QAZ1=${QAZ:1:10}

как нибудь попроще можно?
http://www.unix-sar.ru Астериск, Linux в Саратове
2010-12-21 16:44

Avatara of svoy
Откуда: Киев
Сообщений: 1096

Re: изменения номера по условию

кроме goto есть еще execif, где можно сразу задать действие

насколько помню, использование goto считается плохим стилем..
2010-12-21 17:01

Avatara of switch
Откуда: Уфа
Сообщений: 5856

Re: изменения номера по условию

svoy, использование goto считается плохим стилем для начинающих и дебилов
грамотный программист сумеет повысить читаемость программы и скорость ее работы с помощью goto, только вот не все это помнят.
Но в любом случае к диалплану астериска это не имеет отношения.
http://www.lynks.ru - Решения телефонии, мини-АТС, VoIP на основе Trixbox и Asterisk
2010-12-21 17:16

Avatara of romariosar
Откуда: Саратов
Сообщений: 64

Re: изменения номера по условию

сделал так:
exten => s,n,noop(${QAZ})
exten => s,n,ExecIf($["${QAZ:0:2}" = "79"]|Set(QAZ1=${QAZ:1:10}))
exten => s,n,ExecIf($["${QAZ:0:5}" = "78452"]|Set(QAZ1=${QAZ:5:6}))

exten => s,n,noop(${QAZ1})

в консоле:
-- Executing [s@macro-check_db:2] NoOp("SIP/78452572999-b6818078", "79173069666") in new stack
-- Executing [s@macro-check_db:3] ExecIf("SIP/78452572999-b6818078", "1|Set(QAZ1=9173069666)") in new stack
== Spawn extension (macro-check_db, s, 3) exited non-zero on 'SIP/78452572999-b6818078' in macro 'check_db'
== Spawn extension (ext-queues, 300, 5) exited non-zero on 'SIP/78452572999-b6818078'


астериск выдает звонящему сигнал занято

подскажите что я делаю не так.
http://www.unix-sar.ru Астериск, Linux в Саратове
2010-12-21 17:35

Avatara of svoy
Откуда: Киев
Сообщений: 1096

Re: изменения номера по условию

в вашем коде только манипуляции с переменными, а где dial, hangup ради чего все и затевалось?
2010-12-21 18:36

Avatara of romariosar
Откуда: Саратов
Сообщений: 64

Re: изменения номера по условию

это не важно.

exten => s,n,noop(${QAZ})
exten => s,n,ExecIf($["${QAZ:0:2}" = "79"]?Set(QAZ1=${QAZ:1:10}))
exten => s,n,ExecIf($["${QAZ:0:5}" = "78452"]?Set(QAZ1=${QAZ:5:6}))

exten => s,n,noop(${QAZ1})

теперь все работает.
http://www.unix-sar.ru Астериск, Linux в Саратове
2010-12-21 19:40

Avatara of zzuz
Откуда: SPb
Сообщений: 1307

Re: изменения номера по условию

"работа со строками - первый класс".

дайте человеку поиграться , он только только срезы освоил.
http://линия24.рф - Астериск и прочие бубны!
2010-12-21 21:32

Avatara of romariosar
Откуда: Саратов
Сообщений: 64

Re: изменения номера по условию

проблема была в операции Execif
со строками давно умею работать.
http://www.unix-sar.ru Астериск, Linux в Саратове
2010-12-22 11:57

Avatara of zzuz
Откуда: SPb
Сообщений: 1307

Re: изменения номера по условию

есть строка
+7921-232-2323
позвоните ..
на 89212322323
http://линия24.рф - Астериск и прочие бубны!
2010-12-22 17:18

Добавить страницу в закладки:  Delicious Google Slashdot Yahoo Yandex.ru Reddit Digg Technorati Bobrdobr.ru Newsland.ru Smi2.ru Rumarkz.ru Vaau.ru Memori.ru Rucity.com Moemesto.ru News2.ru Mister-Wong.ru Myscoop.ru 100zakladok.ru