この状況の特殊なケースは、今日のダイヤルプランの例に実装されています。
外線番号へのコール-> ATSコールバック->加入者の内線番号をダイヤル->トランクからPBXへの発信のために通信します。
必要なもの:
着信接続と発信接続を処理するダイヤルプラン回線のペア
.callファイルを生成するためのスクリプト。
など。 コールを終了するために必要な最初のステップ:
[callback-context]
exten => _7XXXXX.,1,Hangup
さらに、すべての処理(この単語は大声処理です...だから...処理)は、既に電話を切っているため、同じコンテキストの「h」拡張子で行われます。
スクリプトを実行して、.callファイルを作成します。
exten => h,1,System(/usr/local/scripts/callback.sh ${CALLERID(num)})
スクリプト自体は次のようになります。
#!/bin/bash callee=$1 Channel="SIP/"$callee MaxRetries=10 RetryTime=10 WaitTime=20 Context="call-to" Extension="callback" Priority=1 DATA=`date` echo "Channel: $Channel CallerId: EXTERNAL_PBX_NUM <EXTERNAL_PBX_NUM> MaxRetries: $MaxRetries RetryTime: $RetryTime WaitTime: $WaitTime Context: $Context Extension: $Extension Priority: $Priority" > /var/spool/asterisk/outgoing/$callee.call
このスクリプトは、PBXを呼び出した人を呼び出し、電話を拾った後、処理のために内線コールバックの 呼び出し先コンテキストにチャネルを転送します。
このコンテキストでは、番号を入力するウェルカムおよび招待のファイルを再生します(カピパスタに携わる人のために、ファイル名はカスタムです。デフォルトでは、アスタリスクにはこのファイルがありません。 -最大4、5秒待機し、1回だけ入力を試みます。
番号を入力したら、彼に電話をかけ、ダイヤル機能を使用して2つのチャネルをブリッジに接続します。
[電話]
exten =>コールバック、1、読み取り(NUM、入力番号、4、n、1,5)
exten =>コールバック、n、DIAL(PJSIP / $ {NUM})
したがって、内線番号は私たち自身の費用ではなく、電話交換の費用で呼び出します。
PS
1.完璧主義者向け:はい、ピンコード入力を設定しませんでした。 必要に応じて自分で実行してください(教えてください-もう一度読み取り機能を使用する必要があります)。
1.はい。番号が割り当てられていない(動的な番号が発行されている)トランクから電話をかけた場合、PBXは加入者に到達しません。