Интеграция IVR с использованием звездочки в CentOS 5

Как интегрировать систему IVR с помощью Asterisk в CentOS 5?
Я создал систему IPPABX с использованием asterisk и postgresql в CenOS 5. Агенты могут общаться между собой, и я могу делать исходящие вызовы.
В этом случае, как я могу интегрировать IVR для входящих вызовов?
Я искал через Интернет, но я не получаю конкретную / правильную процедуру для моей проблемы. Я пришел к выводу, что мне нужно что-то сделать в файлах extension.conf и sip.conf для asterisk.
Я знаю, что процедура длится долго, но я расстроился, что не могу заставить ее работать.

1 ответ

Вот простой пример IVR

  [mainmenu]
  exten => s,1,Answer
  exten => s,2,SetMusicOnHold(default)
  exten => s,3,DigitTimeout,5
  exten => s,4,ResponseTimeout,10
  ;SAI menu - 1 for tech support, 2 for voicemail, 3 for echo test
  exten => s,5,Background(sai-welcome)
  exten => s,6,Background(sai-choose)

  ; Tech Support
  exten => 1,1,AGI(dima-test.agi)
  exten => 1,2,SetGlobalVar(ACCOUNTCODE=${callerid})
  exten => 1,3,SetVar(testcallerid=${callerid})
  exten => 1,4,Background(sai-reptech-welcome)
  exten => 1,5,Queue(rep-tech)

  ; Leave Voicemail
  exten => 2,1,VoicemailMain()
  exten => 2,2,Hangup

  ; Echo Test
  exten => 3,1,Playback(demo-echotest)
  exten => 3,2,Echo
  exten => 3,3,Playback(demo-echodone)
  exten => 3,4,Goto(mainmenu,s,6)

  ; EAGI Test
  exten => 4,1,Answer()
  exten => 4,2,Wait(1)
  exten => 4,3,AGI(sai-repid.agi)
  exten => 4,4,Wait(1)
  exten => 4,5,Hangup

  ; Play Music-on-Hold
  exten => 5,1,MusicOnHold(default)
  exten => 5,2,Goto(mainmenu,s,6)
  ; #=hangup
  exten => #,1,Playback(sai-thanks)
  exten => #,2,Hangup

  exten => t,1,Goto(#,1)         ; If they take too long, give up
  exten => i,1,Playback(invalid) ; "That's not valid, try again"

Для db-управляемого ivr вы можете использовать интерфейс AGI (например, вы можете прочитать код проекта a2billing.org) или архитектуру asterisk REALTIME

http://www.voip-info.org/wiki/view/Asterisk+RealTime+Extensions

Также может быть смесь dialplan и func_odbc, что-то вроде этого

      [db_menu]
      exten => s,1,Answer
      exten => s,2,SetMusicOnHold(default)
      exten => s,3,DigitTimeout,5
      exten => s,4,ResponseTimeout,10
      ;SAI menu - 1 for tech support, 2 for voicemail, 3 for echo test

      exten => s,n,Set(invalid_filename=silence/1)
      exten => s,n,Set(filename=${ODBC_getfile(${menuid})})
      exten => s,n(loop),Background(${invalid_filename}&${filename})

      ; return no if no choice or goto line like new_context,ext,prio 
      exten => _X,1,Set(have_choice=${ODBC_getivr_choice(${menuid},${EXTEN})})
      exten => _X,2,GotoIF($[ "${have_choice}" == "no" ]?invalid,1)
      exten => _X,n,Goto(${have_choice});

      exten => invalid,1,Set(invalid_filename=${ODBC_getfile_invalid(${menuid})})
      exten => invalid,n,Goto(s,loop)
Другие вопросы по тегам