277 просмотров
от (610 баллов) в категории Тонкая настройка
Здравствуйте. Подскажите пожалуйста, можно ли без модуля редактора маршрутов сделать голосовое меню в  askozia 3.3.4 ? Там вроде какой то встроянный язык есть, пробовал на нем писать "приложения" но толку мало.
от (610 баллов)
Много проблем было с пониманием как правильно вызывать номер. Сначала вызов делал стандартной функцией Dial():

Dial(SIP/101$SIP/102)

Но потом заметил что не работает перевод вызова.

Потом заметил что файл extension.conf изобилует макросами, и видимо поэтому астериск не понимает че я хочу. Начал делать вызов так:

n,Macro(main,${CF_DIALSTRING},${ARG1},${ARG2},${ARG3},${ARG4})
n,Macro(main,SIP/101,101,101,tM(set-dynamic-feature)co,15)

Потом опять заметил что нифига не работает как я хочу. Было интересно как же вызвать группы вызовов. Нача делать так:

 n,Dial(Local/413@internal-caller-transfer/n)

Пять минут - полет нормальный. Оставляем так. Перевод работает, группы вызываются. Даже можно вызывать приложения.
от (610 баллов)
Поправил свое голосовое меню:

  1,Answer()
  2,Set(menu="/storage/usbdisk1/askoziapbx/menu/")
  n,Read(DESTINATION,${menu}welcome,5)
  n,GotoIf($[${EXISTS(${DESTINATION})}]?sucess:timeaut)
  
  n(timeaut),Verbose(-> таймаут: перевод на секретаря)
  n,Dial(Local/503@internal-caller-transfer/n)
  n,Hangup()
  
  n(sucess),Verbose(когда переменная содержит номер)
  n,GotoIf($["${DESTINATION}" = "1"]?advanced)
  n,Dial(Local/${DESTINATION}@internal-caller-transfer/n)
  n,GotoIf($[${DIALSTATUS} != ANSWER]?invalid)
  n(invalid),Verbose(ошибка: возврат в начало)
  n,Playback(${menu}invalid)
  n,Goto(2)
  
  n(advanced),Verbose(-> переход в доп. меню)
  n,Read(MENU,${menu}menu,1)
  n,GotoIf($[${EXISTS(${MENU})}]?menu:timeaut)
  
  n(menu),Verbose(когда переменная меню содержит номер)
  n,GotoIf($["${MENU}" = "1"]?CDS)
  n,GotoIf($["${MENU}" = "2"]?CDC)
  n,GotoIf($["${MENU}" = "3"]?GDS)
  n,GotoIf($["${MENU}" = "4"]?GDK)
  n,Goto(invalid)
  
  n(CDS),Verbose(--> комм.пред. отдел продаж)
  n,Dial(Local/503@internal-caller-transfer/n)
  n,Hangup()
  
  n(CDC),Verbose(--> комм.пред. линия консультаций)
  n,Dial(Local/501@internal-caller-transfer/n)
  n,Hangup()
  
  n(GDS),Verbose(--> гос. уч. отдел продаж)
  n,Dial(Local/404@internal-caller-transfer/n)
  n,Hangup()
  
  n(GDK),Verbose(--> гос. уч. линия консультаций)
  n,Dial(Local/413@internal-caller-transfer/n)
  n,Hangup()

1 Ответ

от (13.2 тыс. баллов)

Теоретически это возможно.
С помощью панели интегратора можно вручную изменять конфигурационные файлы астериска, в том числе extensions.conf.

от (610 баллов)
Спасибо. Насколько понял, это обычный конфиг астерикса. Буду смотреть в гугле по настройке астерикса.
от (610 баллов)
Написал голосовое меню как "приложение" (Меню -> План набора -> Приложения). Все работает отлично за исключением того что не работает перевод вызова.
Тоесть когда звонок с приложения соединяется с внутренним номером, то человек ответивший на звонок при нажатии на трубке "*" или "#" не слышит привычного "перевод".  Ничего не происходит вообще.

Вот листинг моего приложения "голосовое меню":

1,Answer()
2,Set(menu="/storage/usbdisk1/askoziapbx/menu/")
n,Verbose(Прочитать тона)
n,Read(DESTINATION,${menu}welcome,5)
n,Verbose(Введено:[${DESTINATION}] статус: ${READSTATUS})
n,Verbose(Если переменная не пуста)
n,GotoIf($[${EXISTS(${DESTINATION})}]?sucess:timeaut)
n(timeaut),Verbose(Таймаут: перевод на секретаря)
n,Dial(SIP/50391&SIP/5034&SIP/101)
n,Hangup()
n(sucess),Verbose(Когда переменная содержит номер)
n,GotoIf($["${DESTINATION}" = "1"]?advanced)
n,Dial(SIP/${DESTINATION})
n,Verbose(Набран номер:SIP/${DESTINATION} статус ответа:${DIALSTATUS})
n,Verbose(Если статус звонка)
n,GotoIf($[${DIALSTATUS} != ANSWER]?invalid)
n(invalid),Verbose(Ошибка: возврат в начало)
n,Playback(${menu}invalid)
n,Goto(2)
n(advanced),Verbose(Переход в доп. меню)
n,Read(MENU,${menu}menu,1)
n,Verbose(Введено:[${MENU}] статус: ${READSTATUS})
n,Verbose(Если переменная не пуста)
n,GotoIf($[${EXISTS(${MENU})}]?menuOk:timeaut)
n(menuOk),Verbose(Когда переменная меню содержит номер)
n,GotoIf($["${MENU}" = "1"]?comShip)
n,GotoIf($["${MENU}" = "2"]?comCons)
n,GotoIf($["${MENU}" = "3"]?gosShip)
n,GotoIf($["${MENU}" = "4"]?gosCon)
n,Goto(invalid)
n(comShip),Verbose(Коммерческие предприятия отдел продаж)
n,Dial(SIP/50391&SIP/5034)
n,Hangup()
n(comCons),Verbose(Коммерческие предприятия Линия консультаций)
n,Dial(SIP/50191)
n,Hangup()
n(gosShip),Verbose(Государственные учреждения отдел продаж)
n,Dial(SIP/40491&SIP/4043&SIP/4041)
n,Hangup()
n(gosCon),Verbose(Государственные учреждения Линия консультаций)
n,Dial(SIP/41391&SIP/4132)
n,Hangup()

Сейчас буду пробовать писать непосредственно сами экстеншены в extensions.conf.
На этом сайте можно бесплатно задать вопрос разработчикам MikoPBX и другим членам сообщества. Время ответа не регламентированно, но мы стараемся несколько раз в день заглядывать сюда. Для срочного решения проблем обращайтесь на платную линию поддержки

Популярные теги

askozia входящие-вызовы настройка исходящие маршрутизация провайдер запись-разговоров входящие ivr исходящие-звонки обновление битрикс24 ошибка очередь провайдеры очередь-вызовов переадресация запись установка маршрут история-звонков mikopbx транк панель-телефонии-1с перевод-вызова перевод askozia7 askozia6 битрикс callerid интеграция голосовая-почта логи модуль перехват-вызова ростелеком нерабочее-время bitrix24 факс nat docker запись-разговора веб-интерфейс goip настройка-провайдер история диалплан почта журнал-звонков релиз gsm вызовы звонок внешние-номера web-интерфейс zabbix маршруты cdr sip панель pjsip переадресация-мобильный voicemail ascozia телефонная-книга аон мобильный звонков лицензирование вызовов редактор номер asterisk лицензия ami регистрация оповещения провайдеров время голосовая fax trunk разговоров группы-пользователей #mikopbx пропущенные-звонки донабор beeline monitoring тишина smtp cisco мобильные мультифон мегафон шлюз не-работает электронная-почта не-слышно-звук

2.8 тыс. вопросов

2.4 тыс. ответов

6.7 тыс. комментариев

465 тыс. пользователей

...