VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

объявление caller position

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Ответить
Dmitriy_V
Сообщения: 14
Зарегистрирован: 29 дек 2021, 16:02

объявление caller position

Сообщение Dmitriy_V »

Здравствуйте,

подскажите пожалуйста как решить следующую проблему.
Имеем FreePBX. В IVR Announcement у нас есть объявление: Вы позвонили в нашу компанию.
Затем звонок проходит в очередь, где у нас настроено предупреждение в разделе Join Announcement: Наш разговор записывается.
После этого у нас имеется стандартная процедура caller position announcement с частотой 30 секунд.
Проблема в том, что первое объявление о caller position происходит после 30 секунд ожидания.
Нам нужно чтобы первое объявление caller position происходило сразу же после Join Announcement и в дальнейшем повторялось стандартно каждые 30 секунд.

Как это можно реализовать?
ded
Сообщения: 15618
Зарегистрирован: 26 авг 2010, 19:00

Re: объявление caller position

Сообщение ded »

Непонятно, у вас модель с вэб-оболочкой, или самописные конф. файлы?
Всё это реализовано штатно, в модуле Очереди FreePBX.
Если там, то нужна версия оболочки, возможно там недоработка.
Если же пишете руками сценарий очереди в диал-плане, то проще посмотреть как всё уже реализовано. Макросы сложные, но учитывается всё что только возможно. Копировать сюда нет смысла.
Dmitriy_V
Сообщения: 14
Зарегистрирован: 29 дек 2021, 16:02

Re: объявление caller position

Сообщение Dmitriy_V »

Да, это веб версия, FreePBX 15.0.21. Нам нужно, чтобы сразу после Join Announcement выдавалось сообщение о номере очереди и затем повторялось каждые 30 секунд.
В нашем случае, после Join Announcement включается ожидание и только через 30 секунд выдаётся сообщение о номере очереди.
В настройках модуля ничего похожего найти не можем, возможно не замечаем.
ded
Сообщения: 15618
Зарегистрирован: 26 авг 2010, 19:00

Re: объявление caller position

Сообщение ded »

Все нужные настройки по этому функционалу находятся на вкладке Caller announcement.
Читайте книгу Руководство FreePBX 13. на http://asterisk.ru/knowledgebase/books

Если взялись за обслуживание Контакт-центра, то вы не новичок, нужно самостоятельно подтягивать проф. уровень. Напомню условия форума, с которыми вы согласились:
Форум нужен для того, чтобы Вы САМИ нашли ответ на свой вопрос.

Форум нужен для того, чтобы Вы САМИ опубликовали на нем ответ на вопрос, интересный многим.
Dmitriy_V
Сообщения: 14
Зарегистрирован: 29 дек 2021, 16:02

Re: объявление caller position

Сообщение Dmitriy_V »

Мануал прочитал, но там нет ничего, что указывало бы на мою проблему.
ded
Сообщения: 15618
Зарегистрирован: 26 авг 2010, 19:00

Re: объявление caller position

Сообщение ded »

Нет такой проблемы.
Вот вызов сделан в очередь которую только что создал и сам позвонил:

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

    -- Executing [912@from-internal:1] Macro("SIP/721-0000021b", "user-callerid,") in new stack
    -- Executing [s@macro-user-callerid:1] Set("SIP/721-0000021b", "TOUCH_MONITOR=1676387441.1193") in new stack
    -- Executing [s@macro-user-callerid:2] Set("SIP/721-0000021b", "AMPUSER=721") in new stack
    -- Executing [s@macro-user-callerid:3] GotoIf("SIP/721-0000021b", "0?report") in new stack
    -- Executing [s@macro-user-callerid:4] ExecIf("SIP/721-0000021b", "1?Set(REALCALLERIDNUM=721)") in new stack
    -- Executing [s@macro-user-callerid:5] Set("SIP/721-0000021b", "AMPUSER=721") in new stack
    -- Executing [s@macro-user-callerid:6] GotoIf("SIP/721-0000021b", "0?limit") in new stack
    -- Executing [s@macro-user-callerid:7] Set("SIP/721-0000021b", "AMPUSERCIDNAME=Name Surname") in new stack
    -- Executing [s@macro-user-callerid:8] GotoIf("SIP/721-0000021b", "0?report") in new stack
    -- Executing [s@macro-user-callerid:9] Set("SIP/721-0000021b", "AMPUSERCID=721") in new stack
    -- Executing [s@macro-user-callerid:10] Set("SIP/721-0000021b", "__DIAL_OPTIONS=Ttr") in new stack
    -- Executing [s@macro-user-callerid:11] Set("SIP/721-0000021b", "CALLERID(all)="Name Surname" <721>") in new stack
    -- Executing [s@macro-user-callerid:12] GotoIf("SIP/721-0000021b", "0?limit") in new stack
    -- Executing [s@macro-user-callerid:13] ExecIf("SIP/721-0000021b", "0?Set(GROUP(concurrency_limit)=721)") in new stack
    -- Executing [s@macro-user-callerid:14] GotoIf("SIP/721-0000021b", "0?continue") in new stack
    -- Executing [s@macro-user-callerid:15] Set("SIP/721-0000021b", "__TTL=64") in new stack
    -- Executing [s@macro-user-callerid:16] GotoIf("SIP/721-0000021b", "1?continue") in new stack
    -- Goto (macro-user-callerid,s,27)
    -- Executing [s@macro-user-callerid:27] Set("SIP/721-0000021b", "CALLERID(number)=721") in new stack
    -- Executing [s@macro-user-callerid:28] Set("SIP/721-0000021b", "CALLERID(name)=Name Surname") in new stack
    -- Executing [s@macro-user-callerid:29] GotoIf("SIP/721-0000021b", "0?cnum") in new stack
    -- Executing [s@macro-user-callerid:30] Set("SIP/721-0000021b", "CDR(cnam)=Name Surname") in new stack
    -- Executing [s@macro-user-callerid:31] Set("SIP/721-0000021b", "CDR(cnum)=721") in new stack
    -- Executing [s@macro-user-callerid:32] Set("SIP/721-0000021b", "CHANNEL(language)=ru") in new stack
    -- Executing [912@from-internal:2] Answer("SIP/721-0000021b", "") in new stack
       > 0x9458ebb0 -- Probation passed - setting RTP source address to 192.168.158.5:29682
    -- Executing [912@from-internal:3] Macro("SIP/721-0000021b", "blkvm-set,reset") in new stack
    -- Executing [s@macro-blkvm-set:1] ExecIf("SIP/721-0000021b", "1?Set(__BLKVM_CHANNEL=SIP/721-0000021b)") in new stack
    -- Executing [s@macro-blkvm-set:2] Set("SIP/721-0000021b", "SHARED(BLKVM,SIP/721-0000021b)=TRUE") in new stack
    -- Executing [s@macro-blkvm-set:3] Set("SIP/721-0000021b", "GOSUB_RETVAL=TRUE") in new stack
    -- Executing [s@macro-blkvm-set:4] MacroExit("SIP/721-0000021b", "") in new stack
    -- Executing [912@from-internal:4] ExecIf("SIP/721-0000021b", "1?Set(_DIAL_OPTIONS=TtrM(auto-blkvm))") in new stack
    -- Executing [912@from-internal:5] Set("SIP/721-0000021b", "__NODEST=912") in new stack
    -- Executing [912@from-internal:6] Set("SIP/721-0000021b", "QCIDPP=") in new stack
    -- Executing [912@from-internal:7] Set("SIP/721-0000021b", "VQ_CIDPP=") in new stack
    -- Executing [912@from-internal:8] ExecIf("SIP/721-0000021b", "0?Macro(prepend-cid,)") in new stack
    -- Executing [912@from-internal:9] Set("SIP/721-0000021b", "QAINFO=") in new stack
    -- Executing [912@from-internal:10] Set("SIP/721-0000021b", "VQ_AINFO=") in new stack
    -- Executing [912@from-internal:11] ExecIf("SIP/721-0000021b", "0?Set(__ALERT_INFO=)") in new stack
    -- Executing [912@from-internal:12] Set("SIP/721-0000021b", "QJOINMSG=") in new stack
    -- Executing [912@from-internal:13] Set("SIP/721-0000021b", "VQ_JOINMSG=") in new stack
    -- Executing [912@from-internal:14] Set("SIP/721-0000021b", "QRETRY=") in new stack
    -- Executing [912@from-internal:15] Set("SIP/721-0000021b", "VQ_RETRY=") in new stack
    -- Executing [912@from-internal:16] Set("SIP/721-0000021b", "QOPTIONS=t") in new stack
    -- Executing [912@from-internal:17] Set("SIP/721-0000021b", "VQ_OPTIONS=") in new stack
    -- Executing [912@from-internal:18] Set("SIP/721-0000021b", "QGOSUB=") in new stack
    -- Executing [912@from-internal:19] Set("SIP/721-0000021b", "VQ_GOSUB=") in new stack
    -- Executing [912@from-internal:20] Set("SIP/721-0000021b", "QAGI=") in new stack
    -- Executing [912@from-internal:21] Set("SIP/721-0000021b", "VQ_AGI=") in new stack
    -- Executing [912@from-internal:22] Set("SIP/721-0000021b", "QRULE=") in new stack
    -- Executing [912@from-internal:23] Set("SIP/721-0000021b", "VQ_RULE=") in new stack
    -- Executing [912@from-internal:24] Set("SIP/721-0000021b", "QPOSITION=") in new stack
    -- Executing [912@from-internal:25] Set("SIP/721-0000021b", "VQ_POSITION=") in new stack
    -- Executing [912@from-internal:26] Gosub("SIP/721-0000021b", "sub-record-check,s,1(q,912,dontcare)") in new stack
    -- Executing [s@sub-record-check:1] GotoIf("SIP/721-0000021b", "0?initialized") in new stack
    -- Executing [s@sub-record-check:2] Set("SIP/721-0000021b", "__REC_STATUS=INITIALIZED") in new stack
    -- Executing [s@sub-record-check:3] Set("SIP/721-0000021b", "NOW=1676387441") in new stack
    -- Executing [s@sub-record-check:4] Set("SIP/721-0000021b", "__DAY=14") in new stack
    -- Executing [s@sub-record-check:5] Set("SIP/721-0000021b", "__MONTH=02") in new stack
    -- Executing [s@sub-record-check:6] Set("SIP/721-0000021b", "__YEAR=2023") in new stack
    -- Executing [s@sub-record-check:7] Set("SIP/721-0000021b", "__TIMESTR=20230214-161041") in new stack
    -- Executing [s@sub-record-check:8] Set("SIP/721-0000021b", "__FROMEXTEN=721") in new stack
    -- Executing [s@sub-record-check:9] Set("SIP/721-0000021b", "__MON_FMT=wav") in new stack
    -- Executing [s@sub-record-check:10] NoOp("SIP/721-0000021b", "Recordings initialized") in new stack
    -- Executing [s@sub-record-check:11] ExecIf("SIP/721-0000021b", "0?Set(ARG3=dontcare)") in new stack
    -- Executing [s@sub-record-check:12] Set("SIP/721-0000021b", "REC_POLICY_MODE_SAVE=") in new stack
    -- Executing [s@sub-record-check:13] ExecIf("SIP/721-0000021b", "0?Set(REC_STATUS=NO)") in new stack
    -- Executing [s@sub-record-check:14] GotoIf("SIP/721-0000021b", "1?checkaction") in new stack
    -- Goto (sub-record-check,s,17)
    -- Executing [s@sub-record-check:17] GotoIf("SIP/721-0000021b", "0?sub-record-check,q,1") in new stack
    -- Executing [s@sub-record-check:18] NoOp("SIP/721-0000021b", "Generic q Recording Check - 721 912") in new stack
    -- Executing [s@sub-record-check:19] Gosub("SIP/721-0000021b", "recordcheck,1(dontcare,q,912)") in new stack
    -- Executing [recordcheck@sub-record-check:1] NoOp("SIP/721-0000021b", "Starting recording check against dontcare") in new stack
    -- Executing [recordcheck@sub-record-check:2] Goto("SIP/721-0000021b", "dontcare") in new stack
    -- Goto (sub-record-check,recordcheck,3)
    -- Executing [recordcheck@sub-record-check:3] Return("SIP/721-0000021b", "") in new stack
    -- Executing [s@sub-record-check:20] Return("SIP/721-0000021b", "") in new stack
    -- Executing [912@from-internal:27] ExecIf("SIP/721-0000021b", "0?Playback(, )") in new stack
    -- Executing [912@from-internal:28] QueueLog("SIP/721-0000021b", "912,1676387441.1193,NONE,DID,") in new stack
    -- Executing [912@from-internal:29] Set("SIP/721-0000021b", "QAANNOUNCE=") in new stack
    -- Executing [912@from-internal:30] Set("SIP/721-0000021b", "VQ_AANNOUNCE=") in new stack
    -- Executing [912@from-internal:31] Set("SIP/721-0000021b", "QMOH=") in new stack
    -- Executing [912@from-internal:32] Set("SIP/721-0000021b", "VQ_MOH=") in new stack
    -- Executing [912@from-internal:33] ExecIf("SIP/721-0000021b", "0?Set(__MOHCLASS=)") in new stack
    -- Executing [912@from-internal:34] ExecIf("SIP/721-0000021b", "0?Set(CHANNEL(musicclass)=)") in new stack
    -- Executing [912@from-internal:35] Set("SIP/721-0000021b", "QMAXWAIT=") in new stack
    -- Executing [912@from-internal:36] Set("SIP/721-0000021b", "VQ_MAXWAIT=") in new stack
    -- Executing [912@from-internal:37] Set("SIP/721-0000021b", "QUEUENUM=912") in new stack
    -- Executing [912@from-internal:38] Set("SIP/721-0000021b", "QUEUEJOINTIME=1676387441") in new stack
    -- Executing [912@from-internal:39] Queue("SIP/721-0000021b", "912,t,,,,,,,,") in new stack
    -- Started music on hold, class 'default', on channel 'SIP/721-0000021b'
    -- Stopped music on hold on SIP/721-0000021b
    -- <SIP/721-0000021b> Playing 'queue-youarenext.ulaw' (language 'ru')
Сразу же воспроизвелось 'queue-youarenext.ulaw' - "вы первый в очереди...."
Dmitriy_V
Сообщения: 14
Зарегистрирован: 29 дек 2021, 16:02

Re: объявление caller position

Сообщение Dmitriy_V »

У нас тоже так просходит, но только в том случае, когда в очередь помещён незарегистрированный екстеншен.
Если же его зарегистрировать, то в этом случае будет просходить отчёт времени и только после этого сообщение о номере очереди.
Проверьте, возможно у вас этот тестовый екстеншен не зарегистророван (не привязан к телефону).
ded
Сообщения: 15618
Зарегистрирован: 26 авг 2010, 19:00

Re: объявление caller position

Сообщение ded »

Dmitriy_V писал(а):в очередь помещён незарегистрированный екстеншен...(не привязан к телефону).
Не понимаю что это такое.
721 - этот экстен и есть телефон.
Есть общепринятая терминология, которой лучше придерживаться. А то каждый про своё толкует.
Есть операторы очереди - агенты. Есть статические агенты, а есть динамические.
Статические (условно) - это SIP-телефоны, аппаратные или софтфоны. По определению - они есть в системе, пусть и не все, что перечислены в списке агентов, видны в выхлопе
CLI> sip show peers
Динамических агентов пока отложим в сторону. Их смысл в другом: они могут присоединяться, поработать в очереди, через сервисный код.

Они работают, отвечают на звонки клиентов, которые попадают в эту очередь входящим звонком. И там клиенту сообщается сразу, который он в очереди. Если у вас другая модель, например - через обзвоны, когда в очередь попадает не входящий вызов, а автомат вызывает по списку удалённых клиентов, и подбрасывает их в очередь только при их ответе - это плоховыдуманная кривота, которую обсуждать-разбирать не хотелось бы. Ну и как в этом изложении понять "в очередь помещён незарегистрированный екстеншен"?
Незарегистрированный екстеншен - это агент очереди? Статический? Динамический?
Dmitriy_V
Сообщения: 14
Зарегистрирован: 29 дек 2021, 16:02

Re: объявление caller position

Сообщение Dmitriy_V »

Смотрите, у нас всё очень просто.
Есть очередь, есть статические агенты очереди. Обзвонов нет. Задача в том, чтобы при попадании звонка в очередь сразу же выдавалось сообщение о номере в очереди. У нас это сообщение выдаётся через интервал времени.

Однако мы заметили, что если в очередь добавлены номера, которые физически не привязаны к телефону (Unspecified, UNKNOWN), тогда сообщение выдаётся сразу. Но если номера привязаны к аппаратам, тогда сообщение выдаётся через интервал времени.

Возможно у вас такой же случай, вы создали тестовый номер, поместили его в тестовую очередь, но физически номер к аппарату не привязан (Unspecified, UNKNOWN). В этом случае сообщение о номере очереди выдаётся сразу.

Однако, если в очередь поместить реальные номера, с привязаными аппаратами, тогда сообщение начинает выдаваться спустя интервал времени.
ded
Сообщения: 15618
Зарегистрирован: 26 авг 2010, 19:00

Re: объявление caller position

Сообщение ded »

Нет, никакого тестового номера не создавал, была создана только очередь, в которую были включены реальные существующие и действующие номера. И всё работает как надо, без задержек.
Смотрите в консоль, проверяйте наличие айдиофайла queue-youarenext.* (language 'ru')
Может быть его просто нет.
Ответить
© 2008 — 2024 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH