First time here? Check out the FAQ!

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

Звонок на внутренний номер из Dialplan и обход автоответчика

0

Добрый день, возник следующий вопрос.

Допустим имеется следующий call-файл (для простоты объяснений):

Channel: Local/s@custom-call
MaxRetries: 0
RetryTime: 15
WaitTime: 20
Context: custom-from-internal
Extension: +7961XXXXXXX
Priority: 1
Set:qNumber=111
,где qNumber - номер очереди.

[custom-call]
exten
=> s,1,Set(qNumber=${qNumber})
same
=> n,Queue(${qNumber},n)

[from-queue]
exten
=> _X.,1,Set(QAGENT=${EXTEN})
same
=> n,Set(GLOBAL(DIAL_OPTIONS)=D(*12))
same
=> n,GoTo(from-internal,${EXTEN},1)

[custom-from-internal]
exten
=> _X.,1,GoTo(from-internal,${EXTEN},1)

Пояснение: контексты я упростил, для понимания сути.

Имеется очередь 111 Static agent: +7XXXXXXXXXX (Какой-нибудь офисный общий номер)

Задача в следующем: Как видно из Dialplan, нужно чтоб звонок уходил на определенный внутренний номер (в примере 12), и уже его связывал с Extension(+7961XXXXXXX), но очевидно, что звонок сначала возьмёт офисный IVR, и, соответственно, будет считаться принятым и сразу же пойдёт на Extension.

Нужно, чтобы звонок ушёл на Extension только после того, как ответит внутренний номер.

Реализация через очереди должна остаться.

спросил Apr 15 '15

Zaak Gravatar Zaak
1 5 1

обновил Apr 15 '15

Comments

Callback реализуете ?

zzuz (Apr 15 '15)edit

Да, не трудно догадаться :)

Zaak (Apr 15 '15)edit

На этом форуме я уже писал про то, как это сделать. Поищите.

zzuz (Apr 15 '15)edit

3 Ответа

0

[Изменено] Суть понятна, НО в очереди у меня прописан офисный номер, то есть какой-то один общий. Звонок на внутренний номер осуществляется посредством DTMF, но в таком случае канал будет ANSWERED сразу же как звонок ушёл на офисный номер и там разговаривает их местный IVR, ожидая ввода внутреннего номера. Как мне получить ответ после DTMF? вот это мне не ясно...

ссылка удалить убрать флаг спам (1) редактировать

ответил Apr 15 '15

Zaak Gravatar Zaak
1 5 1

обновил Apr 15 '15

Comments

Задача то простая - соединить внутреннего оператор в офисе с каким-нибудь внешним абонентом.

Zaak (Apr 15 '15)edit

вам же написали как. если все еще не ясно, ищите здесь "книги" или нанимаете когото с алгоритмическим мышлением.

meral (Apr 16 '15)edit

Как мне кажется, zzuz описал реализацию, когда я звоню операторам своего офиса, мне же необходимо звонить на внешний офисный номер, затем там донабрать внутреннего оператор, с помощью DTMF, и уже после того, как послал DTMF, узнать ответил ли оператор, вот это мне не ясно как реализовать, Именно сам факт ответа номера, который донабрали.

Zaak (Apr 17 '15)edit

мне кажется вам ответили на вопрос который вы задали. то, что спосить вы хотели не то, это ВАША проблема. вы никак не можете узнать на удаленной системе неподконтрольной вам ответил ли оператор. кроме варианта написать систему ИИ разбирающую голосовой поток.

meral (Apr 18 '15)edit
0

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

но фиг с ним.

можно сделать так.

перед очередью определяете переменную __ACHANNEL=${CHANNEL(name)}

делает два звонка, один идет в какойто диалплан который крутит wait(1), проверка на SHARED(${ACHANNEL},ANSWERED)

второй идет на внутренний номер, по ответу макросом выставляет SHARED(${ACHANNEL},ANSWERED)

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

ответил Apr 15 '15

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

Чтобы выяснить в очереди ответил ли оператор , либо нет, то нужно вызвать при ответе оператора контекст, где будет расшариваться переменная , указывающая на ответ. В ожидании обратного вызова нужно следить за этой переменной и делать исходящий вызов, когда оператор ответит на очередь. Для этого Вам поможет реализация операторов в очереди через Local , опция команды Dial(,,U()) . А также функции наследования между каналами IMPORT() и SHARE() .

Задача коммерческая , поэтому примеров кода не будет.

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

ответил Apr 15 '15

zzuz Gravatar zzuz flag of Russian Federation
7174 2 6 75
http://line24.ru/

Ваш ответ

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)!
[скрыть предварительный просмотр]

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

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

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

Статистика

Задан: Apr 15 '15

Просмотрен: 579 раз

Обновлен: Apr 15 '15

Похожие вопросы:

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