Elastixからのコールバックによる自動リダイヤル

すべてのsip-phoneが自動的にダイヤルできるわけではないため、場合によってはそれを使いたいので、*を使用して実装しようとしました。 呼び出しファイルによるオプションはそれ自体を示唆していますが、1つの迷惑があります:両方の加入者に接続すると、電話が同時に鳴り、ダイヤラーの受信者が電話を拾って待機トーンを聞くと、時々怖がって電話が切れます(ただし、私のオフィスでは、すべてがきれいです)すぐに使用されます)。 2つのオプションを試しましたが、2番目のオプションはより普遍的で論理的なものに思えました。 デフォルトのコンテキストを内部から編集(再割り当て)する必要性が異なります。



したがって、すべてに共通:

ファイル/etc/asterisk/extensions_custom.confに以下を追加します。

[macro-autodial] ;    (  3),    exten => s,1,ExecIf($["${ARG1:0:1}" = "*" | ${LEN(${ARG2})} != 3 ],Hangup) ; .call- exten => s,n,System(echo "Channel: Local/${ARG1}@from-internal" > /tmp/${ARG2}${UNIQUEID}.call) exten => s,n,System(echo "MaxRetries: 10" >> /tmp/${ARG2}${UNIQUEID}.call) exten => s,n,System(echo "RetryTime: 20" >> /tmp/${ARG2}${UNIQUEID}.call) exten => s,n,System(echo "WaitTime: 40" >> /tmp/${ARG2}${UNIQUEID}.call) exten => s,n,System(echo -e "Callerid: \\x22CallBack ${ARG1}\\x22 \\x3C${ARG2}\\x3E" >> /tmp/${ARG2}${UNIQUEID}.call) ;   ,   exten => s,n,System(echo "Context: autodial-internal" >> /tmp/${ARG2}${UNIQUEID}.call) exten => s,n,System(echo "Extension: ${ARG2}" >> /tmp/${ARG2}${UNIQUEID}.call) exten => s,n,System(echo "Priority: 1" >> /tmp/${ARG2}${UNIQUEID}.call) ;    exten => s,n,System(sleep 15 && mv -f /tmp/${ARG2}${UNIQUEID}.call /var/spool/asterisk/outgoing/ &) ;  -  exten => s,n,Playback(ozhidajte-soedinenija) [autodial-internal] exten => _XXX,1,Dial(SIP/${EXTEN}) exten => _XXX,2,Hangup()
      
      







しかし、その後、違いが始まります。

最初のバージョンでは、/ etc / asterisk / extensions_custom.confファイルに進みます。

コンテキストの最後に[from-internal-custom]追加:

 ; *20<>   <> exten => _*20X.,1,Macro(autodial,${EXTEN:3},${CALLERID(number)}) exten => _*20X.,2,Hangup()
      
      







2番目のオプションでは、/ etc / asterisk / extensions_override_elastix.confファイルに移動します。これにより、Webインターフェースを介して設定を変更する機能を失うことなく、デフォルトのコンテキストを再割り当てできます。

その中:

 [from-internal] ;     exten => _[0-9*#]X.,1,Set(DB(LASTCALLED/${CALLERID(number)})=${EXTEN}) ;    exten => _[0-9*#]X.,2,Goto(from-internal-my,${EXTEN},1) ; *20      exten => *20,1,Macro(autodial,${DB(LASTCALLED/${CALLERID(number)})},${CALLERID(number)}) exten => *20,2,Hangup() ; *20<>   <> exten => _*20X.,1,Macro(autodial,${EXTEN:3},${CALLERID(number)}) exten => _*20X.,2,Hangup() ;  [from-internal]   ,     ,    ,  ,        [from-internal-my] include => from-internal-xfer include => bad-number
      
      







その結果、* 20番号は自動リダイヤルに番号を入れますが、単に* 20は最後のリダイヤルをダイヤルされた番号にし、最後の組み合わせは2番目の実装オプションでのみ使用可能になります。



All Articles