Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

перебор транка макрос

0

Привет всем есть Номера

890332[3-4]xxxx 890501[5-6]xxxx 890536[5-7]xxxx 890615[6-9]xxxx 890639[5-9]xxxx 890931[5-9]XXXX

8909322XXXXX 896031[5-9]XXXX 8960329xxxx И есть 4 канала GSM (d0 d1 d2 d3)

Теперь как сделать проще если например 1 gsm занят то переходил на 2 GSM и так далее На ум приходит вот такая конструкция Для одного

890332[3-4]xxxxX.,1, DIAL(dongle/d0/${EXTEN},100,RrT)
890332[3-4]xxxxX.,1, DIAL(dongle/d1/${EXTEN},100,RrT)
890332[3-4]xxxxX.,1, DIAL(dongle/d2/${EXTEN},100,RrT)
890332[3-4]xxxxX.,1, DIAL(dongle/d3/${EXTEN},100,RrT)

Но для каждого делать этоже пипеец На ум приходит макрос но тут я вступор стал как

[macro-dial-mob] ;макрос “что делать при наборе на мобилу”
exten => s,1,Answer() ;поднимаем трубку
exten => s,2,Dial(${ARG2},20,tT)  **что тут писать тоо**
exten => s,3,Goto(s-${DIALSTATUS},1) ;отрабатываем код полученный от приложения Dial.
exten => s-BUSY,1, **что тут писать тоо**
exten => _s-.,1,Hangup ;кладём трубку

exten => _890332[3-4]xxxx,1,Macro(dial-mob,100,RrT) что тут писать тоо

Может кто нить подскажет как быть.

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

спросил 2012-01-24 11:29:18 +0400

avolon Gravatar avolon
9 22 2 15

обновил 2012-01-24 12:12:44 +0400

4 Ответа

2

там написать Noop. тоесть ничего не делать. выйдет из макроса и продолжит дальше. а в dial добавить ключ g

а вообще проще так

[macro-dial-mob] ;макрос “что делать при наборе на мобилу”
exten => s,1,Answer() ;поднимаем трубку
exten => s,2,Dial(${ARG2},20,tgT)  **что тут писать тоо**
exten => s,3,GotoIF($[ "${DIALSTATUS}" != "BUSY" ]?Hangup,1) ;отрабатываем код полученный от приложения Dial.

exten => Hangup,1,Hangup ;кладём трубку
ссылка удалить спам редактировать

ответил 2012-01-24 15:25:53 +0400

meral Gravatar meral flag of Ukraine
21228 23 18 169
http://pro-sip.net/

обновил 2012-01-24 15:26:43 +0400

0

Не совсем так meral. Правильнее контролировать через DongleStatus.

exten => _890332[3-4]xxxx,1,DongleStatus(dongle0,Dongle0_Status)
same => n,DongleStatus(dongle1,Dongle1_Status)
same => n,GotoIf($[${Dongle0_Status} = 2]?dongle0dial:dongle1check)
same => n(dongle0dial),Dial(Dongle/dongle0/${EXTEN:1},60,tT)
same => n,Hangup
same => n(dongle1check),GotoIf($[${Dongle1_Status} = 2]?dongle1dial:utel)
same => n(dongle1dial),Dial(Dongle/dongle1/${EXTEN:1},60,tT)
same => n,Hangup

Как то так. Можно еще в группу объединить если вас это устроит.

ссылка удалить спам редактировать

ответил 2012-01-25 19:09:27 +0400

Ecuador Gravatar Ecuador
845 10 9 23

обновил 2012-01-25 19:10:40 +0400

Comments

м? а он вроде не запрашивал для донгле. может у него они по сипу часть? и кстати то что твы написал сильно куострубатое. надо както структурировать. а если у етбя их 50 будет?

meral ( 2012-01-25 19:16:00 +0400 )редактировать

Согласен что громоздко. Но у меня их всего 2. Будет больше - буду структурировать в макрос.

Ecuador ( 2012-01-25 19:37:51 +0400 )редактировать

текущее веяние использовать gosub. оно коректнее отрабатывает. даже фрипкс 2.10 его использует вместо части макросов.

meral ( 2012-01-25 19:39:57 +0400 )редактировать

Да, там есть Return

Ecuador ( 2012-01-25 20:16:46 +0400 )редактировать
0

Пока состряпал такой макрос

[macro-perebor];
;
; Standard extension macro:
;   ${ARG1} - Extension 

s,1, DIAL(dongle/d0/${ARG1},100,RrT)
s,1, DIAL(dongle/d1/${ARG1},100,RrT)
s,1, DIAL(dongle/d2/${ARG1},100,RrT)
s,1, DIAL(dongle/d3/${ARG1},100,RrT)

exten => 890332[3-4]xxxxX,1, Macro(perebor,${EXTEN})

Во пока вот нету возможности проверить так как жду симки ((( Поправьте если не правильно??

ссылка удалить спам редактировать

ответил 2012-01-26 07:46:43 +0400

avolon Gravatar avolon
9 22 2 15

обновил 2012-01-26 07:47:03 +0400

0

Еще это можно было через очереди сделать.

ссылка удалить спам редактировать

ответил 2012-01-25 07:58:59 +0400

bolshoy_plohish Gravatar bolshoy_plohish
1358 21 16 37

Comments

опа. а не поделитесь как сделать? чтоб через очереди и всегда с новым номером? может я чтото не заню и есть какието новые простые способы?

meral ( 2012-01-25 15:25:22 +0400 )редактировать

в dongle.conf пишешь всем транкам group=1 и вызываешь в экстеншене через Dongle/g1/${EXTEN}

mrzayac ( 2012-09-06 16:25:50 +0400 )редактировать

ну ну. еще один теоретик. так по busy позвонит на ОДИН.

meral ( 2012-09-06 16:44:23 +0400 )редактировать

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку
1 закладка

подписаться на rss ленту новостей

Статистика

Задан: 2012-01-24 11:29:18 +0400

Просмотрен: 1,272 раз

Обновлен: Dec 15 '14

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.