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

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

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) что тут писать тоо

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

спросил Jan 24 '12

avolon Gravatar avolon
9 22 2 15

обновил Jan 24 '12

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 ;кладём трубку
ссылка удалить спам редактировать

ответил Jan 24 '12

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

обновил Jan 24 '12

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

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

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

ответил Jan 25 '12

Ecuador Gravatar Ecuador
845 10 10 24

обновил Jan 25 '12

Comments

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

meral (Jan 25 '12)edit

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

Ecuador (Jan 25 '12)edit

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

meral (Jan 25 '12)edit

Да, там есть Return

Ecuador (Jan 25 '12)edit
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})

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

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

ответил Jan 26 '12

avolon Gravatar avolon
9 22 2 15

обновил Jan 26 '12

0

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

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

ответил Jan 25 '12

bolshoy_plohish Gravatar bolshoy_plohish
1388 25 20 38

Comments

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

meral (Jan 25 '12)edit

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

mrzayac (Sep 6 '12)edit

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

meral (Sep 6 '12)edit

Ваш ответ

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 ленту новостей

Статистика

Задан: Jan 24 '12

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

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

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