2

私の目標は次のとおりです。アクティブな通話中に動的機能によってアクティブ化されるバックグラウンド タスクを実行し、別の EXT へのダイヤルを実行して DTMF を送信します。これは、ユーザーが誰かとアクティブな通話をしているときに、ユーザーが 5555 を押すと、ドアが開くことを意味します。今日ドアを開けるには、手動で EXT 6 (ドア) に電話して DTMF 数字を送信する必要があります: 00* ユーザーがアクティブな通話に干渉することなく 5555 を押すと、これらすべてが自動的に行われます。前にダイヤルでこれらすべてを実行しようとしましたが、ダイヤルが通話をブロックするか、別の内線番号とブリッジして、元の通話が失われます。ASYNC でこれを行う必要があることがわかりました。つまり、dialplan を使用できず、CLI を使用する必要があり、その後何らかの方法で発信する必要があります。

アスタリスクは、ローカル セッション/ローカル チャネルを作成し、ドア拡張機能を確立/接続する必要があります。次に、DTMF を送信し、これらすべてをバックグラウンドでハングアップします。

これは私がこれまでになんとかしたことです:

features_applicationmap_custom.conf

openthedoor=> 5555、発信者、マクロ、OpenIntercomCall

次に->

extensions_custom.conf

[macro-OpenIntercomCall] exten => s,1,System(アスタリスク -rx "channel originate SIP/6 extension@yoyo")

アスタリスクから (ローカルまたはランダム チャネルを使用して) SIP/6 に電話をかけ、応答時に DTMF を送信する方法がわかりません。

ドアの内線は SIP/6 で、00* はそれを開くための dtmf です。

私がやろうとしているのは、ユーザー 5555 が通話中にドアが開くということです。アスタリスクがインターホンを呼び出して dtmf を送信することを意味します

4

1 に答える 1

1

アスタリスクの中からアスタリスクを実行しても意味がありません。オリジネイトコマンドを実行できます。

Originate(tech_data,type,arg1[,arg2[,arg3[,タイムアウト]]])

たとえば、次のようなことができます

 exten => s,1,Originate(SIP/6,app,SendDTMF,ww00*)

あなたのニーズには十分なはずです。

于 2016-04-21T15:37:06.837 に答える