アスタリスク付き基本的なIVR



毎週共有
こんにちは皆さん、私はエム、新鮮なブートキャンプの卒業生とITヘルパー(私はまだプログラマを呼び出すことを敢えてしないでください)です.毎週金曜日に、私は先週、私はあなたからのフィードバックを得るために入札し、プログラマになるために私の旅を記録入札で行われた仕事の一部を共有します.

以前

導入
今日、私はどのように我々は簡単な対話型音声応答(IVR)を行うことができます共有したいと思います.私はあなたがそれといくつかの恐ろしい経験を持っている可能性があります知っているが、それは奇妙な楽しい経験をするときに電話であなたの声を聞いて話をする.

どのような対話型の音声応答(IVR)メニューですか?
  • IVRメニューは、選択をするよう要求するインバウンド発信者に提示されるオプションのリストです.したがって、呼び出しを修飾して、それを最も適切な接触に向けます.

  • IVRのためのアスタリスクを通して我々自身のオーディオトラックを記録すること
  • 私の前の記事を読んだなら、テレフォニーがサポートするコーデックが限られていることを知っているでしょう.
  • 場合でも、非常に良い品質のオーディオトラックを記録した場合でも、我々の携帯電話のサポートをフォーマットに変換する必要があります.
  • 時間を節約する
  • 、私は再びffmpegの部分を通過するつもりはない.代わりに、私はRecord DialPlanアプリケーションを介してすべてのIVRオーディオトラックを記録するつもりです.
  • PJSIPの
  • .conf
  •     [transport-udp-nat]
        type = transport
        protocol = udp
        bind = 0.0.0.0
    
        [calling](!)                 
        type=endpoint                
        context=interaction          
        allow = !all, ulaw, alaw     
        direct_media=no              
        trust_id_outbound=yes
        rtp_symmetric=yes
        force_rport=yes
        rewrite_contact=yes
        device_state_busy_at=1
        dtmf_mode=rfc4733
    
        [auth-userpass](!)       
        type = auth              
        auth_type = userpass     
        [aor-single-reg](!)     
        type = aor
        max_contacts = 1         
    
        [7000](calling)          
        auth=7000                
        aors=7000                
        callerid = 7000 <7000>   
    
        [7000](auth-userpass)    
        password = 7000
        username = 7000
    
        [7000](aor-single-reg)
        mailboxes = 7000@main
    
        [7100](calling)
        auth=7100
        aors=7100
        callerid = 7100 <7100>
    
        [7100](auth-userpass)
        password = 7100
        username = 7100
    
        [7100](aor-single-reg)
        mailboxes = 7100@main
    
    延長中の
  • .conf
  • [interaction]
    exten = *555,1,NoOp(recording)
    same = n,Answer
    same = n,Record(record/greeting.wav)
    same = n,Playback(vm-received)
    same = n,Playback(en/digits/1)
    same = n,Record(record/press1.wav)
    same = n,Playback(vm-received)
    same = n,Playback(en/digits/2)
    same = n,Record(record/press2.wav)
    same = n,Playback(vm-received)
    same = n,Playback(en/digits/3)
    same = n,Playback(vm-last)
    same = n,Record(record/wrong-key.wav)
    same = n,Playback(vm-received)
    same = n,Playback(en/digits/4)
    same = n,Hangup
    
    ;exten = _7X00,1,NoOp(Call for ${EXTEN})    
    ;same = n,Dial(PJSIP/${EXTEN})      
    ;same = n,Hangup    
    
    exten = 8888,1,NoOp(Call IVR)
    same = n,Goto(ivr,s,1)
    
    [ivr]
    exten = s,1,NoOp(You are in IVR now)
    same = n,Answer                     ; here is the start of the SIP protocol
    same = n(play),Playback(record/greeting)
    same = n,WaitExten(10)              ; wait 10 seconds for the caller to press key
    
    exten = 1,1,NoOp(Pressed 1)
    same = n,Playback(record/press1)
    same = n,Goto(s,play)               ; go back to 'n(play),Playback(record/greeting)'
    
    exten = 2,1,NoOp(Pressed 2)
    same = n,Playback(record/press2)
    same = n,Goto(s,play)
    
    exten = i,1,NoOp(unknown key)       ; handle invalid keys --> when keys other than 1 and 2 are pressed
    same = n,Playback(record/wrong-key)
    same = n,Goto(s,play)
    
    exten = t,1,NoOp(Waited too long for exten)     ; handle WaitExten timeout
    same = n,Goto(s,play)
    

    実装
  • 最初に、すべての必要なナビゲーションメニュートラックを記録しましょう.
  • 私たちが電話するとき、私はダイヤルプランをセットしました*555各オーディオファイルを1つずつ録音を開始します.
    -最初の'ビープ音'を聞くと、それは挨拶の記録です.
    例えば、「呼び出し、英語、プレス1、ドイチェ、プレス2」に感謝します.
    -各録音を終了すると、プレスを覚えて#保存する.
  • 成功した場合は、受信した録音の数を聞くことができます.
  • あなたが1枚の記録を終えたならば、あなたは「受信された1」
  • あなたが最後のオーディオを録音するつもりであることを意味します.

  • ここでは、記録セクションのシーケンスです
  • グリーティング
  • キーを押した後のナビゲーション
  • を押した後のナビゲーション
  • 間違ったキーが押されたときのナビゲーション
  • IVRに入る
  • 、ダイヤル8888、それはIVRメニューを開始します.

  • 結論
    今、あなたは自分でIVRのメニューを作った.あなたがタイトに従うならば、あなたは全体のIVRがループであると理解するでしょう.どこに好き242479142 DialPlanアプリケーションを追加するには無料で感じることができる.私がここで強調したいのは、このIVR構造は、物事が反復的であり、別の方法でリファクタリングされることができるので、非常に基本的なものであるということです.より高度なものは、しばらく後に導入されるかもしれませんデータベースとAGI(アスタリスクゲートウェイインターフェイス)の使用.今日はこれで終わりです.また会いましょう.