アスタリスクコールバック、または格安通話の発信方法

出張中の従業員が携帯電話から本社まで長距離電話をかける場合がありますが、オフィスには電話交換機があり、そこにおいしい価格の優れた安価な電気通信事業者が電話をかけたり、加入者の内線番号を外線番号で呼び出したりして、さまざまな状況を思いつくことができますその問題はコールバックです。 これらの目的のために、従業員が電話をかけるだけで、PBXが電話をかけ直し、被呼加入者が携帯電話、市のオペレーターなどの残高を犠牲にして不要なことをPBXで行えるという別のシナリオを実装しました。別の通信サービスプロバイダー。たとえば、PBXに接続された安価なサービスが原因です。

この状況の特殊なケースは、今日のダイヤルプランの例に実装されています。

外線番号へのコール-> 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は加入者に到達しません。

Source: https://habr.com/ru/post/J238819/


All Articles