私はAsteriskPBXを使用してソフトフォンを呼び出しています。このコマンドを使用します:「originateSIP / 100 Extension 4004」、ダイヤルプランでCALLERID変数を取得する必要がありますが、この場合は常に空です。
PS:内線番号(4004)をソフトフォン(100)から呼び出すと、CALLERIDが設定され、:で取得できます${CALLERID(num)}
。
発信元のケースで発信者IDを取得するにはどうすればよいですか?
発信するときは、発信者番号を自分で設定します。これを行うには、元のアプリケーションで自分で行う方法と、ダイヤルプランで行う方法の2つがあります。この例を以下に示します。
Action: Originate
Channel: local/12345@outgoing
Application: Echo
CallerID: Asterisk <12345>
extends.conf:
[outgoing]
exten => 12345,1,NoOp()
same => n,Verbose(1, Outgoing Caller ID: {$CALLERID(all)})
same => n,Dial(SIP/${EXTEN})
same => n,Hangup()
または、次のようなことを行うことができます。
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()
発信者IDがAMI発信元に設定されているか、ダイヤルプランで上書きすることを選択した場合は、それらの値が表示されます。
詳細については、 ManagerActionOriginateおよびCallerIDFunctionを参照してください。
私はこれがかなり遅いことを知っていますが、Asterisk 1.8を使用している場合、Originateアプリはそれを正常に許可しません。
以前フォーラムで質問したことがありますが、機能は後で追加されるとのことでした。だから私がしたのは、app_originate.cを変更して、番号と名前を渡せるようにすることでした。
これが私が昨年書いたものです: https ://github.com/cmendes0101/asterisk-originate-callerid
1年以上生産されており、順調に稼働しています。1.8のために書かれました。これは簡単な変更だったので、別のバージョンを使用している場合は、変更を簡単に比較し、バージョンに小さな変更を加えてそれを実現できます。
私が今使っている最終的な解決策:
私は別の解決策を見つけられませんでした。