アスタリスクPBXを使用してソフトフォンを使用しています。私はthiseコマンドを使用します。ダイヤルプラン内に「発信SIP/100内線4004」があります。変数ですが、この場合は常に空です!アスタリスク:発信コールでダイヤルプランのCALLERIDが設定されない
P.S:ソフトフォン(100)から内線番号(4004)を呼び出した場合、CALLERIDが設定され、${CALLERID(num)}
で取得できます。
元のケースで発信者IDを取得するにはどうすればよいですか?
アスタリスクPBXを使用してソフトフォンを使用しています。私はthiseコマンドを使用します。ダイヤルプラン内に「発信SIP/100内線4004」があります。変数ですが、この場合は常に空です!アスタリスク:発信コールでダイヤルプランのCALLERIDが設定されない
P.S:ソフトフォン(100)から内線番号(4004)を呼び出した場合、CALLERIDが設定され、${CALLERID(num)}
で取得できます。
元のケースで発信者IDを取得するにはどうすればよいですか?
私は今使用しています最終的な解決策:私は、PHPスクリプトから私の拡張子を呼び出す
(CALLERID(NUM)= $ {caller_id}としてこの変数を設定します。
発信時には、自分で発信者番号を設定します。これを行うには、元のアプリケーションで自分自身で行うか、ダイヤルプランで行うかの2つの方法があります。その一例を以下に示します。
Action: Originate
Channel: local/[email protected]
Application: Echo
CallerID: Asterisk <12345>
extensions.confファイル:
[outgoing]
exten => 12345,1,NoOp()
same => n,Verbose(1, Outgoing Caller ID: {$CALLERID(all)})
same => n,Dial(SIP/${EXTEN})
same => n,Hangup()
またはあなたのような何かを行うことができます:あなたはあなたがすることを選択した場合、あなたの発信者IDは、セットのいずれかAMIに発信または表示されるはずです
exten => 12345,1,NoOp()
same => n,Set(CALLERID(num)=54321)
same => n,Set(CALLERID(name)=Asterisk)
same => n,Verbose(1, Outgoing Caller ID: {$CALLERID(all)})
same => n,Dial(SIP/${EXTEN})
same => n,Hangup()
をこれらの値をダイヤルプランで上書きします。
詳細については、Manager Action OriginateおよびCallerID Functionを参照してください。
私はこれが遅刻だと知っていますが、あなたがAsterisk 1.8の場合、Originateアプリはそれを普通に許可しません。
私はフォーラムで前に尋ねたところ、その機能は後で追加されると言いました。ですから、私がしたのは、app_originate.cを修正して番号と名前を渡すことでした。 https://github.com/cmendes0101/asterisk-originate-callerid
は一年以上生産されて良い仕事をしています。ここ
は私が去年まで書いたものです。 1.8のために書かれました。それは簡単な変更だったので、異なるバージョンを使用している場合は、変更を単純に比較し、それらの小さな変更を行ってバージョンを実現させることができます。
hello あなたの答えはありがたいですが、私はあなたのソリューションを使用する方法がわかりません。なぜなら、呼び出し側IDは動的でなければならないからです(私はパラメータとして拡張を受け取るPHPスクリプトから彼を呼び出します)。 とにかく、同じスクリプトを使用してファイルにエクステンションを書き込んでいます。次に、このファイルをアスタリスクからAGIスクリプトで読み込みます。これは私が今使っているソリューションです。 exten => 4004、n、AGI(get_caller_id.php) exten => 4004、n、(CALLERID(num)= $ {caller_id}) ありがとうございます。 –
上記の例は、AMI発信元から作成されたチャネルで発信者IDを設定する方法について質問しています。私はあなたのためにあなたのアプリケーションを書くことを試みていませんでした。ダイナミックな発信者IDが必要な場合は、上記のハードコーディングされた値の代わりにダイヤルプラン変数を使用し、AGIスクリプトから変数を設定します。 –
私はAMIを使っているとは言いませんでした!私は単に別のスクリプトから発信を呼び出します。 とにかくありがとうございます:) –